Implementation Log: ANU-20 - Repository-change CLI and canonical workflow
Status
Implementation started after Girish explicitly approved the current Implementation Plan on 2026-07-28 at 12:12 UTC.
Product Main documentation disposition
- Disposition:
Required - Evidence: ANU-20 changes Product Main-owned CLI, skills, policy, prompts, templates, and engineering workflow documentation.
- Bounded paths: the Product Main files enumerated in the approved Implementation Plan.
Implementation record
| Time (UTC) | Change | Evidence |
|---|---|---|
| 2026-07-28 12:12 | Recorded explicit approval and opened implementation evidence | User approval in the ANU-20 Codex task |
| 2026-07-28 12:14 | Added schema-version-1 standalone intake, versioned marker, Product Main disposition/path validation, and issue-kind classification | src/schemas/repository-change.ts; schema and classifier tests |
| 2026-07-28 12:17 | Added Linear SDK create/reuse, exact contract verification, managed docs/completion evidence, and kind-specific transitions | src/adapters/linear.ts |
| 2026-07-28 12:20 | Added guarded intake/branch reconciliation, bounded Product Main docs branch/PR operations, and ordered retryable completion | src/commands/repository-change/index.ts; unit and integration tests |
| 2026-07-28 12:21 | Generalized implementation PR creation and Product Main/child guards without weakening child validation | src/commands/pr/index.ts; src/commands/work/start.ts |
| 2026-07-28 12:24 | Removed the old CLI namespace, implementation, and tests; added the new CLI command family and help/removal coverage | src/cli.ts; CLI integration tests |
| 2026-07-28 12:29 | Installed and validated the canonical repository-change, implementation, and review skills; removed both retired skill folders | Four skill folders passed the skill-creator validator |
| 2026-07-28 12:35 | Aligned Product Main policy, engineering/development workflows, prompts, templates, indexes, and CLI documentation | Strict Product Main MkDocs validation passed |
| 2026-07-28 12:39 | Repaired existing Linear Markdown-link normalization discovered by a live child compatibility check | ANU-20 normalized as implementation-child with its Product Main preview URL |
| 2026-07-28 12:42 | Completed final executable verification | bun run typecheck; 74 tests, 241 assertions, zero failures; git diff --check; recursive docs indexes |
| 2026-07-28 12:46 | Committed and opened the linked draft implementation PR | Commit 34f2c07; PR #20; PR receipt 20260728T124651Z-pr-create-c2e5 |
| 2026-07-28 12:47 | Verified the durable workflow transition | ANU-20 is In Review with the exact linked PR; PR #20 is open and draft |
| 2026-07-28 12:49 | Made linked-PR retries push committed evidence before returning the existing PR | src/commands/pr/index.ts; dry-run now reports push plus linked-PR reuse |
Deviations and decisions
- The skill-creator validator runtime did not include PyYAML. A temporary,
repository-local compatibility shim supplied only
safe_loadandYAMLErrorfor the validator's two-field frontmatter read; all four calls to the unmodified validator passed. The shim and bytecode cache were deleted. - Live ANU-20 validation revealed that Linear formats review previews as Markdown links. The URL normalizer was generalized and covered by regression tests before PR delivery.
- Post-delivery evidence exposed that an idempotent
anuva pr createretry returned a linked PR before pushing later committed evidence. The command now pushes the validated managed branch first and then reuses the linked PR.
Verification record
bun run typecheck: passed.bun test: 74 passed, 0 failed, 241 assertions across 18 files.- Focused repository-change tests: schema fail-closed behavior, marker and kind isolation, bounded docs paths, deterministic branches, implementation-first completion, and Done suppression on partial docs failure passed.
- Live read-only Linear check: ANU-20 remains an implementation child, is
In Review, links PR #20, and its Product Main preview normalizes correctly. - Four changed skill folders: validator passed.
git diff --check: passed.- Recursive documentation index validation: passed.
- Strict Product Main preview and link validation: passed.