SpecsCLIWayfinder Lifecycle Upgrade
Wayfinder Lifecycle Upgrade Implementation Notes
Wayfinder Lifecycle Upgrade Implementation Notes
Progress
- T0-T11 complete. Canonical skills were reviewed, committed, and pushed at
9f1e1a057c50a7074f1bb6a9d9c15c358c0c5bff; Harness synced that exact SHA. - Harness integration was committed and pushed at
4f89074315a7c04e418d5bfb08c7b51e25862941. - Private/internal and public docs ingest are complete. No baseline or package release was performed.
Decisions And Deviations
- The user explicitly authorized implementation without
SPEC.md; none was created, repaired, or marked implemented. - Execution changed from sequential to parallel by explicit user instruction. Ownership was narrowed: this lane owns T2-T5 only.
- The first required behavior in every T2-T5 slice captured real RED. Additional focused RED cycles covered UI safety and out-of-scope convergence. Remaining invariants were checked through behavior-focused aggregate contracts rather than brittle prose snapshots.
- One planned search command was corrected after zsh treated an unquoted backtick as an unmatched quote; the rerun used single-quoted patterns.
- Readonly review found four in-scope gaps. Each received a focused RED/GREEN cycle: compiler dependency/coverage integrity, durable-report parent ownership, Finder provider-mutation delegation, and decision-rich prototype verdicts.
- Later cross-lane reviews found provider preflight, update-existing mutation, immutable remote authority, retention, taxonomy fallback, provider body parity, and stale consumer/docs gaps. Each was fixed with a focused RED/GREEN cycle.
- Canonical directory parity excludes three untracked empty local directories. All 645 tracked files at the pushed SHA match all 645 CLI files byte-for-byte; the CLI tree contains no extra files.
apps/cli checkreaches one unrelated pre-existing Oxlint finding atsrc/scripts/publish-release.test.ts:226: six assertions exceed the configured maximum of five. Targeted touched-scope lint, format, types, and tests pass.
UI Evidence Links
No UI evidence applies. This work changes reusable instruction contracts, catalog/routing text, and Markdown documentation; it does not change interactive product UI.
Runtime Validation Evidence
- Canonical branch:
team/stefan/wayfinder-lifecycle - Canonical commit:
9f1e1a057c50a7074f1bb6a9d9c15c358c0c5bff - Local HEAD, upstream, and remote branch SHA matched before sync.
- Harness sync receipt records the same SHA.
- Harness branch:
team/stefan/wayfinder-lifecycle - Harness commit:
4f89074315a7c04e418d5bfb08c7b51e25862941 - Harness local HEAD, upstream, and remote branch SHA match; its worktree is clean.
- 645 tracked canonical files equal 645 CLI files byte-for-byte; no extra CLI files exist.
- Local baseline contains
prototype-phase; context/projection tests ran in owned temporary roots. Active.agentsmirrors were not updated from an unpublished baseline.
Sanity Checks
node --test --test-name-pattern="prototype" tests/wayfinder-lifecycle.contract.test.mjs— 4/4 passed.node --test --test-name-pattern="wayfinder|finder" tests/wayfinder-lifecycle.contract.test.mjs— 3/3 passed.node --test --test-name-pattern="research|docs ingest" tests/wayfinder-lifecycle.contract.test.mjs— 3/3 passed.node --test --test-name-pattern="create-spec|requirements phase|spec compiler" tests/wayfinder-lifecycle.contract.test.mjs— 3/3 passed.node --test tests/*.test.mjsin canonical skills — 54/54 passed.- Canonical changed-Markdown relative-link audit — 38 files passed.
git diff --checkin canonical skills — passed before commit; source clean after push.- Harness sync tests — 9/9 passed.
- Harness focused aggregate — 87/87 passed.
- Harness context/projection subset — 50/50 passed.
- Harness TypeScript and targeted Oxlint/Oxfmt — passed.
bun run --cwd apps/wiki check:content— passed.bun run --cwd apps/wiki check— passed.- Broad
apps/cli check— blocked only by pre-existingpublish-release.test.ts:226vitest(max-expects)(6 > 5).
Manual Review Checklist
| Area | Check | How to perform | Expected result |
|---|---|---|---|
| Prototype | Human verdict loop | Read prototype-phase/SKILL.md and follow accept, iterate, and reject branches | Iterate commits updated decision evidence; reject records rationale and returns the unresolved question; accept/reject return immutable verdict evidence to Finder |
| Finder | Resumable frontier | Read finder-phase/SKILL.md plus references/convergence.md with a claimed ticket | Destination, mode, dependencies, semantic claim/resolution, delegated provider writes, child evidence, repair, and recomputed frontier remain explicit |
| Research | Durable mode boundary | Compare ordinary parallel-research output with DURABLE-REPORT.md | Ordinary audits remain response-only; durable mode has 2-4 readonly lanes and one report writer |
| Spec | Compiler boundary | Read create-spec/SKILL.md, readiness reference, fixture, and template | It asks no questions; blocked dependencies, uncovered stories, and dangling Covers fail atomically; valid input is remotely retained and yields a verified stable blob URL |
| Backlog | Projection and lifecycle update | Read write-backlog/SKILL.md, REFERENCE.md, and one provider adapter | Pre-spec intake, claim/release/resolve, and post-spec epic/story projection are distinct; every graph is preflighted before mutation |
| Distribution | Immutable sync | Inspect apps/cli/.devpunks-cache/skills-sync.json and run the focused sync test | Receipt and default source equal 9f1e1a057c50a7074f1bb6a9d9c15c358c0c5bff |
| Routing | Phase discovery | Inspect the planning pack and generated root guidance | Planning exposes Finder, Wayfinder, and prototype-phase; research keeps the prototype primitive; spec precedes backlog |
Remaining Work
- None in scope. The broad CLI check still reports the pre-existing unrelated
publish-release.test.ts:226max-expects finding; focused touched-scope proof is green and that file was not changed.