- Run the Bash installer suite on Ubuntu and the PowerShell installer suite on
both Ubuntu and Windows through a dedicated
installer-testsGitHub Actions workflow. The existing shared-rule drift workflow remains separate.
First release after v1.0.0. Installer replacement, docs/ai/ lifecycle
rework, and behavioral-eval hardening, plus incremental skill wording
improvements carried over from post-v1 maintenance.
Installer replacement:
- Add one canonical, static package inventory for reusable Claude, reusable Codex, and Claude bootstrap installation, with LF-normalized SHA-256 content validation before and after copy.
- Add explicit normal install, overlay reinstall (
--force/-Force), and staged clean reinstall (--clean/-Clean) behavior across Bash and PowerShell installers. Conflicting flags and managed path type conflicts fail; overlay preserves and reports extra files. - Add installer behavior tests covering both managed packages, including a
Bash test suite (
scripts/test-installers.sh) mirroring the existing PowerShell coverage. - Fix a Bash installer defect where a successful normal install or
--cleanreinstall printed a success message but exited with status 1, because theEXITtrap's cleanup check used[ -d "$stage" ] && rm -rf "$stage"as a bare statement; a false test in that position is exempt fromset -ebut still sets the trap function's own exit status, which becomes the script's final exit code. Every Bash wrapper script (install-user.sh,install-project.sh,install-codex-user.sh,install-codex-project.sh,install-bootstrap-user.sh) ends by callinginstall-package.shas its last statement, so this previously caused those default-mode and--cleaninvocations to report failure to callers despite installing correctly. Fixed by using explicitif/fiinstead of&&for both the trap cleanup and the post-replace backup removal. Caught by the new Bash test suite.
docs/ai/ lifecycle rework:
- Establish the fixed
docs/ai/package withORIENTATION_STATE.json, manifest-backed freshness and provenance, full and scoped reconciliation, exact-current reuse, legacy adoption approval, dirty-tree handling, and no-Git behavior. - Retire automatic generation and mutation of project-local
.claude/skills/codebase-orient/SKILL.mdwithout adding an overlay or migration subsystem.
Behavioral-eval hardening:
- Extend the existing behavioral-evaluation runner with the authored no-date-only-churn and source-drift two-pass cases and an optional model override.
- Fix the behavioral-evaluation runner's Codex sandbox isolation:
CODEX_HOMEwas left pointing at the real user's.codexdirectory even thoughHOMEandUSERPROFILEwere overridden to a disposable sandbox, and the disposable.codexdirectory was never created. Both meant Codex could read real global state during a nominally isolated eval run. Fixed by pointingCODEX_HOMEat the disposable home and creating that directory before invocation. A fully empty disposableCODEX_HOMEcannot authenticate, so the runner now seeds it with a copy of the realauth.jsononly - no other real Codex state (skills, session history, config) is copied in. - Validation status for the two named two-pass cases: the isolation and
authentication fix above was confirmed against a real
codex execrun (the observed failure moved from a missing-directory error, to401 Unauthorized, to a real account usage-limit response, then to a real completed run once the account quota reset). A full live pass/fail verdict for either case is still not available: in the completed run, the Codex session reported itself as read-only despite the case requestingworkspace-write, so pass 1 correctly proposed the package instead of writing it, per the skill's own dry-run fallback rule, rather than exercising the intended write-then-rerun-unchanged check. This is recorded as a known Codex CLI environment limitation, not an Orient skill defect; unlikev1.0.0, this release does not carry an independent human-through-agent validation pass.
Orientation skill improvements (canonical + bootstrap):
- Treat existing docs/ai output as hypotheses on re-run: the staleness rule now explicitly applies the docs-as-hypotheses discipline to prior orientation output, preventing stale structural claims from being accepted as discovery input on subsequent passes.
- Add agent-closable vs human-required classification axis to open questions: the orientation-completion-rule now requires each unresolved question to be classified not only by urgency (Blocking / Relevant-but-non-blocking / Background) but also by who can act on it, letting a new agent immediately identify which items it can work on autonomously.
- Surface check script constraints in CHANGE_SURFACES docs-impact guidance: the change-surfaces-mapping-guidance rule now instructs orient to note what file types or patterns scripts/ check scripts enforce, so future agents know about constraints like ASCII-only requirements before writing.
- Add conditional release status section to CODEBASE_MAP: the discovery order now instructs orient to add a Release status section to CODEBASE_MAP.md when a release plan, milestone doc, or version changelog is found, summarizing current version, active milestone, and blockers.
- Clarify that docs/ai files should be committed in target repos: the output files section now states explicitly that these files are authored narrative that improves across sessions and should not be gitignored in target repos.
- Flag release validation records and gate scripts as a hidden-risk surface: the hidden-risk-reporting-rule now includes release validation records and gate scripts in its checklist, and instructs orient to note in CHANGE_SURFACES that file changes after a validated candidate require a re-check before tagging.
Post-v1 maintenance hardening (no installer behavior change at the time):
- Add a deterministic shared-rule drift guard for canonical
skills/codebase-orient/SKILL.mdvs the bootstrap embedded shared-rule snapshot inskills/install-codebase-orient/SKILL.md, including explicit shared-block markers, a validation script, and a GitHub Actions check that now guards those shared blocks against future accidental drift. - Align the bootstrap embedded shared-rule snapshot to canonical wording so future bootstrap-generated project-local skills receive the synchronized shared-rule content.
- Freeze the former
docs/V1_RELEASE_PLAN.mdcontents asdocs/releases/v1.0-validation-record.mdand keepdocs/V1_RELEASE_PLAN.mdas a short compatibility pointer now thatv1.0.0has shipped. - Add an initial local/manual Codex behavioral eval scaffold: an inspectable prompt corpus plus a PowerShell wrapper over a Node runner that uses isolated disposable fixtures, stores traces outside the repo by default, and currently emits evidence summaries for one validated single-case vertical slice with proxy-only invocation evidence from local
codex exec --jsontraces. - Clarify that the reusable canonical skill currently has an explicit tuned framework-probe section for SvelteKit, while other frameworks still rely on the generic discovery order unless later live-fire or eval evidence justifies dedicated tuned probes.
First stable public release of codebase-orient.
- Publish the reusable repository-orientation skill for Claude Code and Codex with guarded user-level and project-local install paths.
- Keep Claude Code bootstrap support available as a Claude Code only path.
- Preserve the agent-delegated installation contract: exact tagged source acquisition, checked-in installer execution, no reconstructed
SKILL.md, and stop-and-ask fallback when exact installation is not possible. - Keep explicit invocation guidance and the documented authority boundaries for generated
docs/ai/*orientation artifacts. - Include the public
SECURITY.mdreporting policy and the completed public-release/governance preparation record. - Record that independent human-through-agent validation passed against public
v1.0.0-rc.6. - No marketplace or plugin packaging is part of this release.
Candidate for rerunning independent human-through-agent validation. No orientation skill behavior change. No installer target, copy, or overwrite semantics change.
Exact-install integrity for agent-delegated onboarding:
- Add a compact README rule that agent-delegated installation must start from an exact local copy of the requested tagged source and must use the checked-in installer script for the selected tool and scope.
- Clarify that project-local delegated installation is valid when requested, but it must still use an exact tagged checkout/archive plus the checked-in installer rather than reconstructed skill content.
- Explicitly forbid manually recreating, pasting, summarizing, paraphrasing, or rewriting
SKILL.mdfrom web-fetched, rendered, transformed, or partial content; if exact acquisition or installer execution is not possible, the agent must stop and ask.
External validation evidence:
- Record that an independent
v1.0.0-rc.5human-through-agent attempt failed the external validation gate on installation integrity. - In that run, a new Claude Code session reasonably chose the supported project-local route from a minimal public tag handoff, but then began an approximate manual-install path that would have reconstructed installed skill content from fetched non-authoritative material.
- The attempt was interrupted before any installed skill file was written; only empty install directories were created in the target project, and no tracked target-project change was observed.
Release status:
v1.0.0-rc.5remains the prior public agent-delegated onboarding candidate and historical evidence for the failed exact-install integrity gate.v1.0.0-rc.6is the active candidate for rerunning independent human-through-agent validation.- Final
v1.0.0remains blocked until that external validation gate passes against publishedrc.6and the final release checklist is rerun.
Release candidate for independent human-through-agent validation. No orientation skill behavior change. No installer target, copy, or overwrite semantics change.
Onboarding and security:
- Add a first-class agent-delegated installation path to
README.md, including a pasteable prompt that tells a coding agent to follow the documented install contract, avoid silent overwrite, report explicit invocation, and stop before running orientation in a target repo. - Clarify existing-install decisions in
README.md: overlay refresh (-Force/--force), clean reinstall (delete first), and intentional project-local install. - Clarify the distinction between installation, Codex skill discovery, explicit invocation, and a later orientation run. Reading an installed
SKILL.mdis described as file-copy evidence, not proof that the tool discovered or invoked the installed skill. - Add a root
SECURITY.mdthat points reporters to GitHub private vulnerability reporting, with email fallback.
Codex installer wording alignment:
- Update Codex installer output only where needed to direct users to explicitly invoke
codebase-orientafter installation using the documented Codex skill-selection flow. - Align README and Codex installer wording to current official Codex documentation: Codex detects newly installed or updated skills automatically; if
codebase-orientdoes not appear, restart Codex; and in Codex CLI/IDE the explicit invocation path is/skillsor$.
Release status:
v1.0.0-rc.4remains the prior published sanitized candidate and is unchanged.v1.0.0-rc.5is the prior public agent-delegated onboarding candidate.- Final
v1.0.0remains blocked until that revised external validation gate passes and the final release checklist is rerun against the published candidate.
Pre-public sanitation candidate for external cold-user validation. No skill behavior or installer changes.
Documentation sanitation:
- Remove maintainer-local filesystem paths from tracked public-intended docs.
- Generalize private validation target names and local snapshot identifiers to public-safe repo-type descriptions while preserving the validation outcomes that matter for release confidence.
- Keep the public distribution model unchanged: documented manual installation only; no marketplace or plugin packaging work added.
Release status:
v1.0.0-rc.3remains the last pre-public contract-correction candidate, but it is blocked for publication because the tracked docs and reachable tags/history still carried private validation identifiers and local path disclosures.v1.0.0-rc.4is the new publication-safe candidate for independent cold-user validation.- External cold-user validation remains pending and must now run against
v1.0.0-rc.4.
Pre-validation contract correction before external cold-user testing. No skill behavior or installer changes.
README corrections:
- Narrow the early safety NOTE: distinguish normal-mode writes (
docs/ai/*creation or refresh) from dry-run mode (proposes changes without writing); disclose that Claude Code project-local installs may also update.claude/skills/codebase-orient/SKILL.mdwith verified project-specific discovery paths. - Add
### Claude Code project-local specializationunder## Important notes: concisely states what specialization writes, that canonical rules are not overwritten, that dry-run mode suppresses the write, and that Codex project-local installs do not use this behavior. - Restore a compact
## Limitations and trustsection: explicit invocation is the reliable path; orientation improves process not correctness; large monorepos may need scoped orientation; skills are agent instructions andSKILL.mdshould be reviewed before installing.
Release status:
v1.0.0-rc.1andv1.0.0-rc.2remain intact as immutable historical candidates.v1.0.0-rc.2should no longer be used for external cold-user validation; the mutation-scope and trust-posture wording corrected here was not present in that candidate.- At the time of
v1.0.0-rc.3, external cold-user validation was intended to run against that candidate. That intent was later superseded byv1.0.0-rc.4after the pre-public sanitation pass.
Promote the post-rc.1 user-facing corrections into the active release candidate for external cold-user validation.
User-facing corrections:
- Rewrite
README.mdaround a faster newcomer journey: what the skill is, which install path applies, the exact command to run, the first prompt to give the agent, and the expected repo changes. - Clarify local acquisition and shell-script invocation: README now supports clone or download flows and uses
bash ./scripts/...orbash /path/to/...for macOS/Linux examples where archive downloads may not preserve executable bits. - Fix project-local
.gitignoreguidance emitted by the Claude Code and Codex project-local installer scripts: all four scripts now print.claude/*or.agents/*with the required negations so the sharedSKILL.mdfile can actually be re-included and tracked. - Behaviorally verify the corrected
.gitignoreguidance withgit add -n/ ignore-state checks before promoting this candidate.
Release status:
v1.0.0-rc.1remains intact as the prior historical candidate and does not contain these README / installer-guidance fixes.- Final
v1.0.0remains blocked on the external cold-user validation gate and should be tested againstv1.0.0-rc.2, notv1.0.0-rc.1.
Freeze the cold-user validation baseline. All implementation and accumulated validation evidence are complete. Final v1.0.0 tag is gated by one remaining external acceptance result: an independent cold-user install simulation (G.2).
Validation and evidence (docs only):
- Add
docs/V1_RELEASE_PLAN.md: v1.0 definition, release criteria, test matrix, live-fire validation matrix, blockers, non-goals, known risks, definition of done, and next immediate step. - Record completed v0.3.2 install matrix validation: Windows PowerShell (5 scripts, 5 cases each) and Git Bash (18 checks, 18/18 PASS) from disposable tagged clone.
- Complete canonical/bootstrap embedded-template drift check: no material unintentional drift found; no edits to either SKILL.md required.
- Backfill live-fire validation evidence from prior Claude Code passes: one external SvelteKit/frontend repo (normal mode) and one external Laravel/backend/deployment-sensitive repo (normal mode). F-matrix Rows 1, 2, 7, 8 satisfied.
- Record external Codex live-fire pass in the external Laravel/backend/deployment-sensitive repo (project-local skill, cross-agent cache lifecycle, no date-only churn, no application code modified). Close G.4. F-matrix Row 6 PASS.
- Record a second cross-agent cache-lifecycle validation in an external SvelteKit/static-portfolio/deployment-workflow repo: Claude Code refreshed orientation cache; Codex found substantive README drift and pushed only documentation/orientation corrections. Corroborating second external cross-agent lifecycle evidence.
- Record blind no-Git dry-run validation in an unseen legacy PHP CMS snapshot (Codex user-level skill, no prior docs/ai). Codex surfaced a real maintenance-doc versus config contradiction and recommended dry-run only. F-matrix Row 4 PASS. F-matrix rows satisfied: 6/8.
- Polish README onboarding clarity before independent cold-user validation: surface the default install choice and make update guidance explicit without changing behavior.
No Skill or installer behavior changes.
Normalize and enforce ASCII punctuation in tracked repo-maintenance text.
Smart punctuation removal:
- Replace ~210 lines of em dashes across CHANGELOG.md, README.md, and both SKILL.md files.
- Replacement rules: closing markdown span (
**label**,_label_,`code`) followed by em dash converted to colon-space; all other em dashes converted to space-hyphen-space. - En dashes in numeric ranges (
3-5) replaced with hyphen-minus. <=150replaced withunder 150in CHANGELOG.
Enforcement:
- Add
scripts/check-ascii-punctuation.ps1andscripts/check-ascii-punctuation.sh- scan tracked text files for forbidden smart punctuation; exit 1 if found. - Update README development notes: strict ASCII-only convention now covers all tracked repo-maintenance text, not just terminal output strings. SKILL.md files are read as style templates by Claude/Codex; smart punctuation bleeds into generated orientation docs.
No skill or installer behavior changes.
v1 contract cleanup based on skeptical second-opinion audit.
Artifact policy - .gitignore:
- Add
.agents/to.gitignore: Codex project-local install artifacts in this source repo are local runtime artifacts and should not be tracked. - Add
docs/ai/to.gitignore: generated self-orientation cache is non-canonical in this source repo and should not be tracked.
Install refresh semantics - README.md:
- Document that
-Force/--forceis an overlay install: source files are copied over the target, but files removed from the source package since the last install are not pruned from the installed target. - Add delete-first workaround note for clean exact-sync reinstalls.
Project-local CWD contract - README.md:
- Add explicit note that project-local install scripts use the current working directory as the install root and do not verify it is a repository root.
Codex lifecycle parity - README.md:
- Add callout after Codex project-local install section: bootstrap skill and post-orientation project-local specialization are Claude Code only features; Codex project-local installs get the generic skill and require explicit invocation.
Manual copy example alignment - README.md:
- Change bash manual copy examples from
cp -R .../\*tocp -r .../.to match script semantics (includes hidden files; currently harmless since the package has none, but examples now match exactly).
Consolidates post-v0.2.0 work into a tagged release. The orientation behavior additions recorded in the v0.2.1 development entry (instruction-layer topology, CHANGE_SURFACES mapping guidance, agent handoff summary) are included under this tag - v0.2.1 was a named development checkpoint that was never separately tagged.
Installer output hardening - scripts/*.sh, README.md (9bc01df):
- Replace non-ASCII characters (em dashes, curly quotes) in installer script terminal output with ASCII equivalents.
- Reduces mojibake rendering in PowerShell 5.1 / Windows terminals on code page 1252.
- Added ASCII-only output encoding convention to README development notes.
- No install behavior changes.
Authority-boundary clarification - skills/codebase-orient/SKILL.md (a707995):
- Add thin-overlay framing to project-local specialization rule: project-specific paths are the thin customisable layer; canonical rules are the stable layer across all repos; keep them visually separated.
- Closes source/mirror inconsistency introduced in c75c675.
Authority-boundary clarification - skills/install-codebase-orient/SKILL.md (c75c675):
- Fix
Last refreshed:contradiction in idempotency rule: now defers to the no-date-only-churn rule. - Add generated-cache framing note after creates table:
docs/ai/files are orientation aids; source code and project config remain authoritative. - Add thin-overlay framing to project-local specialization rule in embedded template.
- Add SvelteKit subdirectory note and critical server-side route files callout to bootstrap discovery probes, matching canonical skill.
- Add internal changelog entries for v0.2.0 and v0.2.1 syncs (previously unrecorded).
- Bump
install-codebase-orientfrontmatter version to0.2.2.
Weaves orientation-core deep-research findings into the skill without adding new default docs files, hooks, or automation.
Findings woven in (canonical skill + bootstrap embedded template):
- Instruction-layer topology: discovery step 1 now notes which instruction files are present (
CLAUDE.md,AGENTS.md,.claude/settings.json) and at which scope (project-local vs user-level); recorded inCODEBASE_MAP.mdfor agent handoff clarity. - CHANGE_SURFACES mapping guidance: new section explicitly calls out three additional surface categories: auth/admin/operator UX changes (with a11y/WCAG note), deployment-sensitive changes (with smoke-check entry-point note), and docs-impact changes (which docs need updating per subsystem). Hard rule added: no separate smoke-check or handoff files in
docs/ai/. - Agent handoff summary: orientation report discipline now includes an optional compact handoff block (snapshot, blocking questions, critical surfaces, recommended first action; under 150 words, no new file).
Bootstrap sync: skills/install-codebase-orient/SKILL.md updated - CHANGE_SURFACES template section and embedded downstream template both reflect the three new findings.
Rejected: hooks, CI automation, release checklist, full a11y audit, separate AGENT_HANDOFFS.md / DEPLOYMENT_SMOKE_CHECKS.md by default, safe-cleanup behavior, sceptical review behavior - none are orientation-core.
Dual-runtime orientation skill with bootstrap support. Adds Codex install, recursive skill copy, user-level bootstrap install scripts, live-fire-driven refresh behavior, cross-file consistency rules, no-date-only-churn rule, and trigger-oriented / token-aware invocation guidance.
No-date-only-churn fix from second no-wrapper live-fire test:
- No-date-only-churn rule: do not rewrite a
docs/ai/file solely to bump theLast refresheddate. A verified-current doc is left unchanged.Last refreshedis updated only when content changes for a substantive reason. - Orientation report discipline: final report must label each
docs/ai/file as: Created / Substantively updated / Verified current (unchanged) / Proposed only / Skipped. Reporting a date-only rewrite as "updated" is not allowed. - Bootstrap embedded template synced: both rules added to
skills/install-codebase-orient/SKILL.md. - No installer behavior changes.
Invocation reliability and token-aware use improvements:
- Trigger-oriented skill description:
codebase-orientfrontmatterdescriptionrewritten to be richer in trigger signals: new/unfamiliar repo, new session, before multi-file work, before refactor/planning/handoff, staledocs/ai/, unclear structure. Includes explicit trigger phrases (scan,orient,survey,familiarize,before I start, etc.) and explicit skip signal (tiny single-file known edits). - When-to-use / when-to-skip guidance: "When to use this skill" section split into explicit use cases and explicit skip cases. Replaces the previous flat bullet list of task types.
- Token-aware orientation cache guidance: new "Token-aware use guidance" section explaining
docs/ai/as an orientation cache: use when cost amortizes over broad work or sessions; skip for tiny known tasks; do not save tokens by guessing instead. - Optional AGENTS.md / CLAUDE.md snippet: README now includes recommended project-instruction snippet for both Codex (
AGENTS.md) and Claude Code (CLAUDE.md). Marked optional; does not guarantee invocation; triggers when useful, suppresses when not needed. - Bootstrap embedded template synced: when-to-use/skip and token-aware guidance added to
skills/install-codebase-orient/SKILL.mdembedded downstream template. Also added "audit only" / "no writes" to dry-run triggers. - No installer behavior changes.
Live-fire findings from no-wrapper /codebase-orient test applied.
- Normal/dry-run mode surfaced earlier: moved to immediately after Hard rules, before discovery and output rules, so it is visible without scrolling through the full skill. Added "audit only" and "no writes" as recognized dry-run triggers.
- Cross-file consistency rule: new rule requiring
CODEBASE_MAP.md,CHANGE_SURFACES.md, andOPEN_QUESTIONS.mdto remain coherent with each other. Covers resolved questions, new surfaces, new uncertainty, and direct contradictions. Applied to both canonical skill and bootstrap embedded template. - SvelteKit route probing expanded: server-side route files (
+page.server.ts,+layout.server.ts,+server.ts) now listed explicitly alongside+page.svelteand+layout.sveltein the canonical skill and bootstrap discovery section. Note added that server-side files are critical for auth, data loading, form actions, and API endpoints. - Formatter fallback guidance: formatter guidance now explicitly handles the case where a formatter is missing, unavailable, or not configured for Markdown. Skip with a note; do not treat missing formatter support as an orientation failure.
- Read-depth clarification: new "Path existence vs content read" subsection clarifies when path existence alone is sufficient (low-risk inventory claims) versus when actual file content must be read (claims affecting behavior, architecture, risk, auth, routing, or change surfaces). Applied to both canonical skill and bootstrap embedded template.
- Project-local specialization path made explicit: target path
.claude/skills/codebase-orient/SKILL.mdnow stated explicitly. Added note that this applies only when a repo-local Claude Code skill exists or is being generated, and that Codex installs are handled separately. Applied to both canonical skill and bootstrap embedded template. - Bootstrap embedded template synced: all six findings reflected in
skills/install-codebase-orient/SKILL.md.
- Added
scripts/install-bootstrap-user.ps1andscripts/install-bootstrap-user.sh: user-level Claude Code install scripts for theinstall-codebase-orientbootstrap skill. - Updated README with bootstrap skill install instructions (user-level, Claude Code only).
- No project-local bootstrap install scripts added; no Codex bootstrap install support added.
- Added
skills/install-codebase-orient/SKILL.md: tracked source for the Claude Code bootstrap skill. Bootstrap skill source is now versioned here but is not yet part of the automated install flow. - Updated README with "Skills in this repo" section listing both skill sources and their tool targets.
- Added Codex install support:
scripts/install-codex-user.ps1,install-codex-project.ps1,install-codex-user.sh,install-codex-project.sh. - Single shared skill source
skills/codebase-orient/SKILL.mdunchanged - install scripts copy it to the appropriate target path for each tool. - All install scripts now copy skill contents recursively, preserving optional subdirectories (future
scripts/,references/,assets/etc). - README now positions the project as an Agent Skill for both Claude Code and Codex.
- README now documents install paths: Claude Code uses
.claude/skills/, Codex uses.agents/skills/. - README now explains invocation reliability: auto-invocation is model-driven and not guaranteed; explicit invocation is preferred.
- README now documents
AGENTS.mdas the Codex persistent instruction layer equivalent toCLAUDE.md. - README now includes
.gitignoreguidance for Codex project-local installs. - README now includes Codex uninstall instructions.
- Initial private release.
- Added
codebase-orientClaude Code skill.