Anuva Development Policy Phase 7 Implementation Plan
Status and decision
Status: Gate 2 machine-one and cross-repository acceptance complete. Gate 3 is the focused Product Main completion-evidence draft. Canonical generated- documentation mutation, PR readiness, merge, machine-two work, and every later gate remain separately controlled.
On 2026-07-31 the user directed Product Main to defer machine-two replication because the second machine is unavailable and to proceed with Phase 7 on machine one. The deferral does not convert missing evidence into acceptance. The six machine-two hostnames were unresolved during the final Gate 4 preflight, no machine-two or Cloudflare mutation occurred, and the complete future procedure remains in the Windows Development Machine Bootstrap.
This is a development-process change under the Product Main policy. It does not use Linear.
Exact baseline
The planning branch started from clean Product Main main at
011f29a884d17825eece19dce8d9bd4c62dd71ae. Planning PR #34 merged as
117f7241f6f3e18440afdf49b11221d8fde5b80b, which is the exact Gate 2 and
Gate 3 base.
The reviewed repository baselines are:
| Repository | main commit |
|---|---|
| Product Main | 117f7241f6f3e18440afdf49b11221d8fde5b80b |
| Bento | 1ea2155dc706c222776624c1a6f05ace2ab25a8f |
| Web | 109ccd90de7d0f9bed488dfae02d2963600a40f6 |
| Python | 596190b65e64cfe7df124083df1d9ded904af026 |
| Unity | 326f457817e03532d29fb1edb5ea997a912ee660 |
| Canonical generated docs | 59bc9d31e38ca8af3e66b80e6e8bd65595bf614a |
Product Main, Web, Python, Unity, and canonical generated docs were clean at
planning preflight. Bento had one untracked generated file,
__pycache__/hooks.cpython-314.pyc, so Gate 2 stopped as planned. The user
removed it and acceptance resumed from six clean worktrees. A strict aggregate
build later regenerated the same 6,540-byte cache file; the separately approved
environment-only amendment removed only that generated file and repeated the
build with process-scoped PYTHONDONTWRITEBYTECODE=1. The final six worktrees
are clean and the cache did not reappear.
Machine-one identities at planning time are:
- installed plugin
anuva-development@anuvaversion0.2.0, twelve skills; - active CLI
0.2.1-g2fecf51439fc, previous0.2.1-g3dd30bca40f1; - canonical active rules SHA-256
35eed0fb26bae95c7a45a4a1c83c119dcb012a4e5082758c1e02ef51379a4077, 9,924 bytes; and - prepared but uninstalled Phase 6 artifact
0.2.1-g011f29a884d1, SHA-2562f8f19124742fb2cb2b87716c644d8e7f0a48ae61926ff5bdca128004314211b.
Phase 7 does not install the prepared artifact. It records the active machine state that actually passed acceptance.
Outcomes
Phase 7 will:
- verify the active plugin-qualified workflow from all five repositories on machine one;
- prove that no duplicated shared Anuva skill remains;
- preserve Web's Mastra and text-to-speech skills and Python's repository-local OpenSpec skills;
- identify active transitional instructions, if any, without rewriting
historical
docs/changes/**, archived, vendored, or product documentation; - verify Product Main policy source against a fresh generated documentation candidate without publishing automatically;
- record the final plugin, active CLI, rollback CLI, toolchain, rules, and policy identities; and
- retain machine-two bootstrap as an explicit deferred exception.
Exclusions
Phase 7 does not:
- claim machine-two, cross-machine, Cloudflare, route, Access, or snapshot acceptance;
- inspect or mutate machine two;
- create or change Cloudflare, DNS, certificates, Access policy, tunnel tokens, secrets, or routes;
- install, upgrade, roll back, or remove the CLI, plugin, toolchain, rules, or PATH;
- edit
config.tomlor restart Codex; - mutate Linear or create GitHub issues;
- change Product Main
src/**or implementation-repository product code; - remove
legacy-source, immutable CLI/rules rollback targets, repository-local domain skills, or historical evidence; or - publish or merge without a later exact gate approval.
Gate 1: planning-only Product Main draft PR
Create codex/development-policy-phase-7-plan from the exact baseline and
change only:
docs/development/AnuvaDevelopmentPolicyPhase6ImplementationPlan.md;docs/development/AnuvaDevelopmentPolicyPhase7ImplementationPlan.md;docs/development/AnuvaDevelopmentPolicyImplementationPlan.md;docs/development/DevelopmentProcessPolicy.md;docs/development/MachineBootstrap.md;docs/development/DevelopmentEnvironment.md; anddocs/development/index.md.
Record the deferral, future re-entry checklist, exact Phase 7 gates, baselines, exclusions, and acceptance matrix. Strictly verify all seven pages, commit and push one documentation-only change, create one focused draft PR, and stop before readiness or merge.
Gate 2: machine-one and cross-repository acceptance
After the planning PR merges and Gate 2 receives separate exact approval:
- Reconfirm the six repository baselines and require clean worktrees. Stop on Bento's untracked file or any other difference.
- From Product Main, verify plugin source and installed cache version
0.2.0, the twelve-skill inventory, the active and previous CLI pointers, canonical rules bytes, toolchain doctor/snapshot/dry-run, and repository registry. - From each implementation repository, verify repository context, read-only GitHub access, plugin-qualified skill discovery, one natural-language repository-change route, one explicit shared-skill route, and one stable documentation page.
- Prove no
.agents/skills/anuvashared copy exists. Preserve Web's two domain-skill trees and Python's.codex/skills/openspec-*trees. - Search only active instructions, prompts, and process/bootstrap pages for obsolete unqualified or checked-in-shared-skill guidance. Historical change records, archives, vendor content, and product compatibility language are evidence, not cleanup targets.
- Run the representative policy routing scenarios from the parent plan.
- Build all five documentation sites into a temporary output root and compare
the Product Main candidate with
anuva-dev-docswithout--push,--clean, or canonical publication. - Produce an exact finding and path report. Any tracked correction requires a separately approved Gate 3 scope; a clean result proceeds directly to the completion-evidence scope.
Gate 2 completion evidence
Gate 2 completed on machine one from Product Main
117f7241f6f3e18440afdf49b11221d8fde5b80b with the four implementation-
repository baselines and canonical generated-docs baseline recorded above.
Final verification established:
- all six repositories were clean, synchronized with their exact remote
main, and resolved through the configured repository registry; - read-only GitHub identity checks passed for all five source repositories;
- plugin source and installed cache
0.2.0validated with all twelve skills; - active CLI
0.2.1-g2fecf51439fcremained healthy with previous target0.2.1-g3dd30bca40f1; - active rules remained the canonical 9,924-byte file with SHA-256
35eed0fb26bae95c7a45a4a1c83c119dcb012a4e5082758c1e02ef51379a4077; - fixed-toolchain doctor and snapshot passed, and bootstrap dry-run proposed no actions;
- the complete source check passed typechecking, 123 tests, and 509 assertions;
- packaged verification passed 7 tests and 125 assertions and produced, but
did not install, clean build
0.2.1-g117f7241f6f3, 102,319,104 bytes, SHA-256674cadce76a84d316f04023603f74bbdc2d50169bd2620cee327c06c8a130fb1; - the canonical rules matrix passed all 48 cases, followed by 4 isolated installer tests and 41 assertions;
- plugin-qualified natural-language and explicit routing matched the expected Product Main, Routine, Material, and Product Main-required lanes in all five source repositories;
- no tracked
.agents/skills/anuvacopy or obsolete unqualified active invocation remained; - Web's Mastra tree remained
27d3ddd43e21dcec1e25e5144035117581b35149, its text-to-speech tree remaineddd84f377254e264d24bb9191d502708fb574ef58, and Python's eleven OpenSpec skills remained under tree568b224a0f0d661adeda10817dd6424bcc03a72f; - all five strict documentation builds passed in the isolated aggregate with
receipt
20260731T135222Z-docs-publish-393a; and - the Product Main candidate differed from canonical generated docs by 48
added paths, 50 changed paths, and no removed paths. The status/path manifest
has SHA-256
1efb9bc71d5dae586b5af1e5e08ae8d3c401aba2818fafeaa01bf18bfd21dc91.
The first source run exposed an execution-context difference: Bun-spawned
Windows PowerShell discovered the incompatible PowerShell 7 utility module
before the native Windows PowerShell module and could not resolve
Get-FileHash. The focused amendment used a process-scoped Windows-PowerShell-
only PSModulePath; the same source, packaged, and rules suites then passed.
No user or machine environment was persisted or changed.
The active-scope audit found no compatibility deletion or tracked correction. Gate 3 therefore changes Product Main completion evidence only. Machine two remains deferred and is not accepted.
Gate 3: bounded cleanup and completion source
Gate 3 must name every path discovered by Gate 2 before editing. The default scope is Product Main documentation only. No sibling tracked file is changed unless Gate 2 identifies a current, active process statement that contradicts the installed plugin workflow and the user separately approves that exact repository/path amendment.
Product Main completion evidence may update only:
docs/development/AnuvaDevelopmentPolicyPhase7ImplementationPlan.md;docs/development/AnuvaDevelopmentPolicyImplementationPlan.md;docs/development/DevelopmentProcessPolicy.md;docs/development/DevelopmentEnvironment.md; anddocs/development/index.mdwhen navigation changes.
Deliver one focused draft PR and stop before readiness or merge. If Gate 2 finds no active compatibility cleanup, record that no deletion was necessary. Gate 2 found no cleanup target, so this Gate 3 draft updates the four approved evidence pages and does not change navigation.
Gate 4: canonical generated documentation
From the exact reviewed Product Main completion head, build the aggregate into
an isolated temporary output root, compare it with clean
C:\Anuva\dev\anuva-dev-docs, and present the exact generated-only delta.
Creating a canonical-docs branch, replacing generated output, committing,
pushing, creating a PR, publishing, readying, or merging requires separate
exact approval. Never use --push or --clean during preview.
If approved, the generated-docs PR merges before Product Main so Product Main remains the final source-of-truth merge. Verify generated tree equality and then stop for Product Main merge approval.
Gate 5: final review and merge
Review exact heads, trees, allowed paths, checks, comments, review threads, plugin/CLI/rules/toolchain identities, repository cleanliness, generated-docs evidence, and the machine-two exception. After separate approval, merge in this order:
- any separately approved implementation-repository process-only correction;
- canonical generated documentation; and
- Product Main completion source last.
Synchronize each merged main and delete only its managed Phase 7 branch.
Verification matrix
- Product Main source, packaged, rules, and strict documentation checks pass.
- Installed plugin source/cache remain valid at
0.2.0with twelve skills. - Active and previous CLI pointers remain unchanged and healthy.
- Active rules remain the canonical 9,924-byte file.
- Toolchain diagnostics are read-only and every proposed action is reported.
- Five repository commits and GitHub identities match the reviewed baselines.
- Five repository working trees are clean before acceptance.
- Plugin-qualified routing works from all five repositories.
- No duplicated shared Anuva skill exists.
- Repository-local domain skills remain present and discoverable.
- Temporary aggregate output matches the reviewed Product Main source.
- No secret appears in output, receipts, diffs, or generated documentation.
- Machine-two requirements remain explicitly deferred and unclaimed.
Stop conditions
Stop for a focused amendment on any baseline, cleanliness, plugin, CLI, rules,
toolchain, route, documentation, generated-output, review, check, or path-scope
difference. Stop before any machine-two or Cloudflare work. Phase 7 completion
must say machine two deferred, never two-machine accepted.