SpecsCLIProject Backlog Operating Model
Project Backlog Operating Model Implementation Notes
Implementation Notes
Summary
- Implemented the accepted Finder/backlog operating model in canonical shared skills and synchronized it into Harness.
- Canonical source is committed and pushed from
mainat2f46794de41b7510eb3bde279203628c310f93ce; a fresh detached checkout passed its contract suite 212/212. - PR #172 merged as
6abf31ed68e773f1898399d96e014fe1aa390f65from feature headd612f5846b3e42b4fdbbb4ae896e8bcfb5d03196. - Harness exposes three human-only Finder wrappers, migrates Linear destination validation through
hi ensure, uses CLI4.0.0, declares baseline compatibility>=4.0.0 <4.1.0, and includes durable flow documentation. @punks/cli@4.0.0, GitHub releasev4.0.0, and baselinebaseline/stable/2026.08.27-6abf31edare live at merge commit6abf31ed68e773f1898399d96e014fe1aa390f65.- Protected release run
33050738154succeeded after its initial npm readback convergence lag. Affected Verification and Stable Aggregate passed; Vercel apps passed or were skipped as unaffected. - Implementation is complete. Live structural initialization remains an operator action because
.devpunks/settings.jsonstill selects a legacy Linear Project URL and structural writes require explicit approval. No unapproved provider topology was created.
Deviations From the Plan
- T4, T5, T8, and T9 are complete as provider-safe contracts. Their live mutation branches remain conditional on an approved destination and topology.
- T16 is complete for implementation closeout: canonical source, exact projection, release classification, merged PR evidence, published npm/baseline artifacts, and existing Linear issue readback are retained. Live product-backlog initialization, destination migration, and Normalization remain separate operator actions.
- Individual RED command transcripts from canonical test-first work were not retained in this Harness checkout. The committed test contracts and final 212/212 detached aggregate are retained; the plan states this limitation instead of inventing RED output.
- IP-389 through IP-404, created during the incorrect task-projection pass, were canceled as superseded history. IP-380 through IP-388 remain the sole delivery work set and receive the final implementation evidence.
Surprises and Decisions
- The configured Linear destination still uses
/project/. The new CLI correctly diagnoses it, but changing the real repository setting requires the operator to select the Root Initiative throughhi ensure. $simplifyfound one exact duplicate focused CLI test. Removing it changed the final focused count from 18 to 17 without reducing behavioral coverage.- GitHub and Linear runtime mutations were deliberately skipped. Structural initialization and Normalization need an approved topology, not test fixtures created against an unapproved destination.
- Protected hosted validation is green for the merged implementation: Affected Verification and Stable Aggregate passed, while Vercel apps passed or were skipped as unaffected.
- The protected release rerun completed after npm registry readback converged; the initial readback lag did not require another product change.
- The final review repair validates Business hierarchy and Functional Story placement/provenance, requires same-milestone Tasks and a complete acyclic blocker graph, keeps the Effect prepare command root-owned, and moves the backlog model into the existing Harness foundations route. Canonical and focused contracts cover these rules; no full scaffold-suite result is claimed for this repair.
Sanity Checks
| Check | Result | Notes |
|---|---|---|
| Canonical shared-skill source | PASS | Pushed main authority is 2f46794de41b7510eb3bde279203628c310f93ce. |
| Canonical contract suite | PASS | Fresh detached source at the authority SHA passed 212/212. |
| Focused Harness CLI suite | PASS | 11/11 across settings, ensure, Finder catalog/prompt, and sync contracts. |
| Effect prepare ownership | PASS | Focused scaffold contract keeps the root package as sole hook and omits workspace receipt entries. |
| CLI type check | PASS | bun run --cwd apps/cli check-types. |
| CLI build | PASS | bun run --cwd apps/cli build. |
| Wiki content and routes | PASS | Content current; sidebar 1/1 and public wiki/routes 12/12. |
| Published npm CLI | PASS | @punks/cli@4.0.0 and GitHub release v4.0.0 are live at 6abf31ed68e773f1898399d96e014fe1aa390f65. |
| Published baseline | PASS | baseline/stable/2026.08.27-6abf31ed is live at 6abf31ed… with compatibility >=4.0.0 <4.1.0. |
| Scoped formatting/diff | PASS | Changed docs formatted; git diff --check passed. |
| Candidate and classification | PASS | PR #172 merged as 6abf31ed… from feature head d612f584…; CLI and baseline changelogs classify mixed. |
| Review | PASS | PR #172 merged with required checks green. |
| Docs ingest | PASS | Spec, implementation notes, Finder flow, glossary, root docs, and wiki bookkeeping reflect final truth. |
| Hosted validation | PASS | Affected Verification and Stable Aggregate passed; Vercel apps passed/skipped as unaffected. |
| Protected release | PASS | Run 33050738154 rerun succeeded after initial npm readback convergence lag. |
| Live Linear evidence | PASS | IP-380 through IP-388 were read back; erroneous IP-389 through IP-404 were canceled with evidence. |
| Live product-backlog mutation | NOT RUN | Structural initialization requires an operator-selected Root and explicit topology approval. |
Skill Application Evidence
Exactly one row follows for every implementation_skill_guidance entry in PLAN.md.
| Task | Skill | Status | How/where | Not-applicable reason and assessment location |
|---|---|---|---|---|
| T2 | writing-for-agents | applied | Thin Business wrapper points to Finder-owned gates and references. | |
| T2 | write-graph-based-skills | applied | Finder graph has explicit gates, evidence-selected routing, handback, and target-depth return. | |
| T2 | tdd | applied | Finder/Wayfinder contract tests cover routes and invocation metadata. | |
| T2 | codebase-design | applied | Audience policy stays in wrappers; lifecycle state stays in the engine. | |
| T3 | writing-for-agents | applied | Writer keeps universal mutation steps in SKILL.md and conditional behavior in references. | |
| T3 | tdd | applied | Writer lifecycle and operating-model contracts cover the replacement behavior. | |
| T3 | codebase-design | applied | write-backlog is the single deep provider mutation seam. | |
| T3 | show-me | applied | Structural topology preview is required before approval and cannot grant approval. | |
| T3 | wait-what | applied | Writer repitches unclear terms while preserving accepted project language. | |
| T4 | writing-for-agents | applied | Linear mechanics live in the Linear-only provider reference. | |
| T4 | tdd | applied | Linear contract covers fail-closed identity, hierarchy, metadata, and readback requirements. | |
| T4 | codebase-design | applied | Linear remains an adapter behind provider-neutral intent. | |
| T5 | writing-for-agents | applied | GitHub mechanics and runtime proof gate live in the GitHub-only reference. | |
| T5 | tdd | applied | GitHub contracts cover Projects V2 fields/views, nested Tasks, milestones, and blockers. | |
| T5 | codebase-design | applied | GitHub storage details stay behind the provider adapter. | |
| T6 | effect | applied | URL validation returns typed prompt failures at the existing selector boundary. | |
| T6 | tdd | applied | Focused tests cover legacy rejection, Root Initiative acceptance, preservation, and idempotence. | |
| T6 | codebase-design | applied | Selector validates; project-settings service persists; hi ensure stays the public seam. | |
| T7 | writing-for-agents | applied | Functional wrapper contains only audience, depth, inputs, presentation, and return shape. | |
| T7 | tdd | applied | Functional contract covers cumulative resume, Story split, and V*. | |
| T7 | show-me | applied | Wrapper requires authority-derived workflow, split, dependency, milestone, and write views. | |
| T7 | wait-what | applied | Wrapper repitches unclear product behavior in accepted project terms. | |
| T8 | writing-for-agents | applied | Normalization rules are co-located in one conditional reference. | |
| T8 | tdd | applied | Contract covers drift classes, safe repair, and structural approval boundary. | |
| T8 | show-me | applied | Normalization requires exact current/proposed topology before approval. | |
| T9 | writing-for-agents | applied | Delivery facts, evidence bounds, completion, and result live together. | |
| T9 | tdd | applied | Delivery contract rejects merge-as-deploy and premature Fog completion. | |
| T9 | codebase-design | applied | Delivery supplies facts; writer adapters own provider mapping/readback. | |
| T10 | writing-for-agents | applied | Technical wrapper points to requirements, spec, and writer authorities. | |
| T10 | write-graph-based-skills | applied | One Technical child per Story re-enters the shared router with explicit outcomes. | |
| T10 | tdd | applied | Technical and Task-graph contracts cover ordering, cardinality, V*, and blockers. | |
| T10 | codebase-design | applied | Requirements closure and provider mutation remain separate deep seams. | |
| T11 | writing-for-agents | applied | Consumer skills use sharp pointers to writer delivery-status and identity contracts. | |
| T11 | tdd | applied | Planning/delivery contracts preserve provider Task IDs and blockers. | |
| T11 | codebase-design | applied | Planning and Delivery are shallow consumers of the writer result. | |
| T12 | writing-for-agents | applied | Aggregate review checked pointer strength, disclosure, co-location, and duplication through 2f46794…. | |
| T13 | writing-for-agents | applied | Generated prompts expose concise human-only pointers without copying engine policy. | |
| T13 | tdd | applied | Focused CLI contracts cover source pin, catalog, pack, and prompt behavior. | |
| T13 | codebase-design | applied | The sync script remains the sole canonical-source-to-generated-assets adapter. | |
| T14 | writing-for-agents | applied | Agent-consumed docs point to owning skills and avoid becoming a second runtime policy source. | |
| T14 | show-me | applied | Finder flow, topology, evidence states, and provider mappings use compact diagrams/tables. | |
| T15 | tdd | applied | Operator compatibility test covers CLI 4 target selection. | |
| T15 | codebase-design | applied | Compatibility stays in the existing target seam; classification stays separate. | |
| T16 | verify-behavior | applied | Public-seam evidence was classified; live structural scenarios remain conditional on exact authority. | |
| T16 | show-me | applied | Architecture and evidence-state diagrams preserve implementation versus operator-action boundaries. | |
| T16 | writing-for-agents | applied | Notes and handoff keep proof, conditional operator actions, and closeout criteria co-located. |
Architecture Conformance Evidence
Observed ownership:
wearedevpunks-skills @ 2f46794…
├── finder-phase # one lifecycle engine
├── business/functional/technical-finder
├── write-backlog # sole provider writer
└── planning + delivery consumers
harness-intelligence
├── hi ensure # destination migration only
├── exact-SHA skill projection
├── CLI 4 / baseline metadata
└── durable docsObserved dependency direction:
human wrapper -> Finder gate -> accepted stage evidence -> write-backlog branch
technical Story -> requirements-grill -> SPEC.md -> provider Task intent
provider Task IDs/blockers -> create-plan -> delivery observed facts -> write-backlog| Architecture wave id | Target ownership topology and observed state | Declared dependency graph and observed state | Due criterion ids, evidence, and prior-met regression status | Public seam delta | Migration ledger delta, expiry waves, and final empty-ledger status | Validation evidence | Verdict or exact drift |
|---|---|---|---|---|---|---|---|
| A1 | One Finder engine and one writer seam implemented. | Wrapper → engine and intent → writer boundaries match plan. | RAC-1 implementation met; RAC-2 contract portion met. | Added Business wrapper and writer router. | MIG-1/MIG-2 retired; no replacement seam. | Focused contracts included in 212/212. | Conformant. |
| A2 | Provider adapters, Functional/Technical wrappers, Normalization remain in their declared owners. | Provider mechanics do not leak into Finder. | RAC-1 and RAC-2 contract regressions green. | Added Linear/GitHub result contracts and Functional/Technical surfaces. | No active migration; former A2 temporary seam retired. | Shared aggregate 212/212. | Conformant. |
| A3 | Planning and Delivery consume provider Task identity and writer status branch. | No second Task graph; no merge-to-deploy edge. | RAC-4 contract green; RAC-1/RAC-2 regressions green. | Delivery handoff now carries observed facts. | MIG-3 retired; no active migration. | Shared aggregate 212/212. | Conformant. |
| A4 | CLI settings, projections, release metadata, and docs match canonical source. | hi ensure changes destination only; sync is sole projection adapter. | RAC-3/RAC-5/RAC-6 met; release classification proof met. | Added three human entrypoints; CLI 4 migration guidance. | MIG-4/MIG-5 retired; active ledger empty. | Fresh focused gates, PR, and mixed classification. | Conformant. |
| Final | Target ownership has zero observed implementation drift. | Declared edges remain intact in contract evidence. | All implementation criteria have source, contract, docs, or provider-closeout evidence. | No undeclared seam. | Active ledger empty. | Focused gates green; live structural writes remain approval-gated. | Implementation complete. |
UI Evidence Links
No UI surface changed. Finder diagrams and operator docs are text/MDX artifacts validated through wiki route tests.
Runtime Validation Evidence
| Task | Scenario and target | Public action | Correlation or provenance | Expected result | Observed result and durable evidence | Cleanup | Status or exact blocker |
|---|---|---|---|---|---|---|---|
| T4 | Configured Linear Root hierarchy | Invoke approved Linear initialization through write-backlog | .devpunks/settings.json destination | Native hierarchy and exact readback | Contract implemented; live structural invocation remains operator-gated. | None; zero fixtures created. | CONDITIONAL |
| T5 | Authenticated GitHub Projects V2 nested Task | Invoke approved GitHub initialization/Technical projection | Configured Product/Backlog Root | Project membership, parent, V*, fields, blocker, Fog/source links | Contract implemented; no unapproved GitHub topology was created. | None; zero fixtures created. | CONDITIONAL |
| T8 | Safe repair plus structural no-write | Run explicit Normalization against approved provider fixture | Stable provider + durable wiki identities | Exact repair readback; zero structural mutation before approval | Contract implemented; each invocation still requires exact authority and approval. | None. | CONDITIONAL |
| T9 | Start through production facts | Submit directly observed facts for linked run-owned Tasks | Stable linked provider Task IDs | Distinct readback and production-only Fog completion | Contract implemented; no delivery facts were invented for this code-only change. | None. | CONDITIONAL |
| T16 | Provider-linked implementation closeout | Read existing issues and retain GitHub/Linear evidence | PR #172, IP-380..IP-388, canonical 2f46794… | Mixed release and exact issue readback | PR merged; npm and baseline published; IP-389..IP-404 canceled with no replacements. | Superseded Tasks canceled. | PASS |
Behavior Verification Evidence
| Story and criterion | Ref | Channel | Scenario | Status | Durable evidence or exact blocker |
|---|---|---|---|---|---|
| US-001 / AC-001..AC-008 | 2f46794… | contract | Human-only Business depth and coherent product path | met | Finder/Business contracts in 212/212. |
| US-002 / AC-009..AC-010, AC-033..AC-035 | 2f46794… | contract | Functional Story definition and contextual V* | met | Functional/provider contracts in 212/212. |
| US-003 / AC-011..AC-017 | 2f46794… | contract | Technical spec-before-Task, exact parent-Story milestone equality, and blocker graph | met | Technical/Task validator contracts in 212/212. |
| US-001..US-003 / AC-018 | 2f46794… | contract | Fog completion from full production evidence | met | Contract rejects merge/staging and requires complete production scope. |
| US-004 / AC-019, AC-021..AC-024, AC-027 | 2f46794… | contract/docs | Initialization authority, reconciliation, metadata, views, and approval | met | Writer/provider contracts and wiki checks. |
| US-004 / AC-020, AC-025, AC-026 | 2f46794… | contract | Exact Linear/GitHub mutation and readback | met | Adapters fail closed unless exact provider readback succeeds. |
| US-005 / AC-028 | current branch | CLI | Legacy URL rejection and same-key migration | met | Focused CLI 11/11 with filesystem-backed readback. |
| US-006 / AC-029 | 2f46794… | contract | Safe Normalization repair and structural approval gate | met | Normalization contracts cover repair and no-write branches. |
| US-001..US-006 / AC-030 | 2f46794… | contract | New work uses Fog-child lifecycle only | met | Obsolete-semantics assertions in 212/212. |
| US-007 / AC-031 | 2f46794… | contract | Immediate linked work-state updates | met | Delivery-status branch requires direct observed facts and readback. |
| US-007 / AC-032 | 2f46794… | contract/docs | Merge distinct from deployment; no CI/CD design | met | Delivery contract and durable docs. |
Visual Evidence Acceptance Map
No screenshot or visual asset acceptance applies. The $show-me evidence is retained as Mermaid/text diagrams in durable wiki/docs and in the architecture section above.
Acceptance Criteria Status
| Criterion | Status | Notes |
|---|---|---|
| AC-001 | met | Four Finder surfaces are human-only. |
| AC-002 | met | One Fog create/resume contract covered. |
| AC-003 | met | Three wrappers compose one engine. |
| AC-004 | met | Fresh state reconstruction and resume covered. |
| AC-005 | met | Cardinality and ambiguity fail-closed behavior covered. |
| AC-006 | met | Business atomic grilling, $wait-what, and $show-me covered. |
| AC-007 | met | Business create/enrich intent routes through writer. |
| AC-008 | met | Boundary split/proceed approval covered. |
| AC-009 | met | Functional decision fields covered. |
| AC-010 | met | One Story per Functional child covered. |
| AC-011 | met | Requirements grill, spec, then Tasks ordering covered. |
| AC-012 | met | Stage-child cardinality and pointers covered. |
| AC-013 | met | Research/Prototype support cannot authorize projection. |
| AC-014 | met | One grilling kind with Stage metadata. |
| AC-015 | met | Story/Task same-V* contract covered. |
| AC-016 | met | Existing milestone reuse and movement approval covered. |
| AC-017 | met | Required Tasks and blocker validation covered. |
| AC-018 | met | Contract requires exact production evidence over accepted scope. |
| AC-019 | met | Writer preserves structuring behavior through references. |
| AC-020 | met | Every provider write path requires exact post-write readback. |
| AC-021 | met | Stable provider plus durable wiki identity contract covered. |
| AC-022 | met | Complete project context contract and docs covered. |
| AC-023 | met | Four semantic views covered. |
| AC-024 | met | Structural preview/approval classifications covered. |
| AC-025 | met | Linear adapter verifies workspace and native hierarchy mapping. |
| AC-026 | met | GitHub adapter fails closed until nested hierarchy is proven. |
| AC-027 | met | Provisioning approval boundary covered. |
| AC-028 | met | hi ensure migration passed focused public tests. |
| AC-029 | met | Normalization repair/no-write decision contract is covered. |
| AC-030 | met | No compatibility writer remains for new work. |
| AC-031 | met | Observed-fact delivery updates and exact readback are required. |
| AC-032 | met | Merge/deployment separation and CI/CD exclusion covered. |
| AC-033 | met | Exact Business-path Functional fast path covered. |
| AC-034 | met | Functional $wait-what and $show-me checkpoints covered. |
| AC-035 | met | Full milestone metadata/name-only fallback covered. |
Manual Review Checklist
| Area | Check | How to perform | Expected result |
|---|---|---|---|
| Canonical skills | Re-run complete shared contracts | Check out 2f46794de41b7510eb3bde279203628c310f93ce detached, then run node --test tests/*.test.mjs. | 212 tests pass at the exact canonical authority. |
| Finder entrypoints | Inspect invocation policy and cumulative flow | Open the three wrapper SKILL.md files and Finder entrypoint docs. | All wrappers and engine are human-only; Business, Functional, Technical depths are cumulative. |
| CLI migration | Re-run focused settings tests | bun run --cwd apps/cli test -- settings-selection ensure-command | Legacy /project/ rejected; Root Initiative accepted; unrelated settings preserved; second run unchanged. |
| Operator migration | Select the real Linear root | Run hi ensure from the repository root and choose the approved top-level Initiative URL. | Only backlogProjectUrl and selected operator-owned settings change; the URL uses /initiative/. |
| Generated projection | Inspect catalog and root prompt | Run the focused catalog/prompt/sync tests or inspect generated entries. | Three Finder entrypoints are present and no prompt auto-invokes Finder. |
| Backlog topology | Review durable diagrams | Open /docs/harness/entrypoints/finder-phase and the operating-model glossary. | Root→Area→Initiative→Epic→Story@V*→required Task is shown; Fog is lateral. |
| Provider approval | Preview initialization/Normalization before any write | Invoke write-backlog only after migration, with an approved semantic intent. | Existing stable-ID objects are reused; structural changes stop at explicit approval. |
| Delivery truth | Review state evidence handling | Inspect delivery-status reference and contract test. | Start, blocked, PR, merge, staging, and production remain distinct; merge does not complete Fog. |
| Published release | Inspect immutable provider artifacts | Read npm @punks/cli@4.0.0, GitHub release v4.0.0, and baseline baseline/stable/2026.08.27-6abf31ed. | All three are live at 6abf31ed…; the baseline manifest reports >=4.0.0 <4.1.0. |
| Live provider proof | Exercise approved Linear and GitHub roots | Run the T4/T5/T8/T9 scenarios after destination migration and structural approval. | Exact provider hierarchy, milestone, blocker, provenance, status, and readback evidence is retained; only run-owned fixtures are cleaned. |
Pre-existing Issues
- The repository's configured Linear destination predates this model and still points to an Epic Project.
Out of Scope Observations
- CI/CD trigger and adapter design remains parked.
- Sprint, Cycle, and provider Iteration-field modeling remains excluded.
- Release publication completed through protected run
33050738154; local build evidence alone was not used as publication proof.
Remaining Operator Actions
- Run
hi ensurewhen this repository is ready to select its approved Product/Backlog Root Initiative. - Preview and approve an exact provider topology before initializing or normalizing a live product backlog.
- Keep merge, deployment, and production claims behind their independent evidence gates.
Steering
| Date | Feedback | Changes |
|---|---|---|
| 2026-08-26 | Implement existing tasks by editing skills; do not create a replacement task graph. | Canonical skills, Harness integration, docs, and release inputs were implemented against IP-380/IP-381..IP-388 and T1..T16. |
| 2026-08-26 | Keep CI/CD design out of scope and all Finder entrypoints human-only. | Contracts and docs preserve those boundaries. |
| 2026-08-26 | Record real evidence without claiming provider success. | Provider-runtime branches remain evidence-gated; zero unapproved structural mutations claimed. |
| 2026-08-27 | Keep only IP-380 through IP-388 as the delivery work set. | Canceled erroneous IP-389 through IP-404 and linked final evidence to the existing issues. |