Skip to content

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@anuva version 0.2.0, twelve skills;
  • active CLI 0.2.1-g2fecf51439fc, previous 0.2.1-g3dd30bca40f1;
  • canonical active rules SHA-256 35eed0fb26bae95c7a45a4a1c83c119dcb012a4e5082758c1e02ef51379a4077, 9,924 bytes; and
  • prepared but uninstalled Phase 6 artifact 0.2.1-g011f29a884d1, SHA-256 2f8f19124742fb2cb2b87716c644d8e7f0a48ae61926ff5bdca128004314211b.

Phase 7 does not install the prepared artifact. It records the active machine state that actually passed acceptance.

Outcomes

Phase 7 will:

  1. verify the active plugin-qualified workflow from all five repositories on machine one;
  2. prove that no duplicated shared Anuva skill remains;
  3. preserve Web's Mastra and text-to-speech skills and Python's repository-local OpenSpec skills;
  4. identify active transitional instructions, if any, without rewriting historical docs/changes/**, archived, vendored, or product documentation;
  5. verify Product Main policy source against a fresh generated documentation candidate without publishing automatically;
  6. record the final plugin, active CLI, rollback CLI, toolchain, rules, and policy identities; and
  7. 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.toml or 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; and
  • docs/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:

  1. Reconfirm the six repository baselines and require clean worktrees. Stop on Bento's untracked file or any other difference.
  2. 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.
  3. 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.
  4. Prove no .agents/skills/anuva shared copy exists. Preserve Web's two domain-skill trees and Python's .codex/skills/openspec-* trees.
  5. 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.
  6. Run the representative policy routing scenarios from the parent plan.
  7. Build all five documentation sites into a temporary output root and compare the Product Main candidate with anuva-dev-docs without --push, --clean, or canonical publication.
  8. 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.0 validated with all twelve skills;
  • active CLI 0.2.1-g2fecf51439fc remained healthy with previous target 0.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-256 674cadce76a84d316f04023603f74bbdc2d50169bd2620cee327c06c8a130fb1;
  • 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/anuva copy or obsolete unqualified active invocation remained;
  • Web's Mastra tree remained 27d3ddd43e21dcec1e25e5144035117581b35149, its text-to-speech tree remained dd84f377254e264d24bb9191d502708fb574ef58, and Python's eleven OpenSpec skills remained under tree 568b224a0f0d661adeda10817dd6424bcc03a72f;
  • 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; and
  • docs/development/index.md when 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:

  1. any separately approved implementation-repository process-only correction;
  2. canonical generated documentation; and
  3. 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.0 with 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.