Work Packages: Truthful software-dev discovery step and finalize shim cleanup

Inputs: kitty-specs/truthful-discovery-step-01M3KABP/ (spec.md, plan.md, research.md) Tests: Required. Each WP opens with a red-first regression test pinned to its issue (ADR 2026-07-17-1), converted to focused tests before review.

Subtask Index

IDDescriptionWPParallel
T001Red-first: research mission scaffolds research.md/data-model.md from shipped templatesWP01
T002Route research.py asset lookup through canonical resolve_template with a destination→template tableWP01
T003Retire legacy resolve_template_path and its core exportWP01
T004Update tests pinning the legacy resolver / "no template for any type"WP01
T005Keep #4926 guards: positive + negative control on one fixtureWP01
T006Red-first: end-to-end discovery contract test through nextWP02
T007Rewrite the mission-step research prompt (discovery + /spec-kitty.research contract)WP02
T008Plan prompt Phase 0: extend, don't replace research.md (+ text invariant test)WP02[P]
T009Align spk-mission-research skill, command map, slash-command docWP02[P]
T010Changelog entry under [Unreleased] and doctrine regen gatesWP02
T011Delete _ensure_branch_checked_out and its three test patchesWP03[P]
T012Rebuild validate-only read-only fixture with HEAD ≠ targetWP03[P]
T013Drop dead fire_dossier_sync test patchWP03[P]

Work Package WP01: Research command resolves shipped templates canonically (Priority: P1)

Goal: spec-kitty research creates all four advertised artifacts for a research mission via the canonical resolver, keeping the #4926 guards. Independent Test: research mission with filled plan → 4/4 non-empty artifacts; software-dev mission → 0 created, 0 overwritten. Prompt: tasks/WP01-research-command-canonical-templates.md Requirement Refs: FR-005, FR-006, FR-007, NFR-001, NFR-002, NFR-003, C-003

Included Subtasks

T001 Red-first: research mission scaffolds research.md/data-model.md from shipped templates (WP01) T002 Route research.py asset lookup through canonical resolve_template with a destination→template table (WP01) T003 Retire legacy resolve_template_path and its core export (WP01) T004 Update tests pinning the legacy resolver / "no template for any type" (WP01) T005 Keep #4926 guards: positive + negative control on one fixture (WP01)

Dependencies

  • None.

Work Package WP02: Truthful discovery prompt, aligned guidance, e2e contract test (Priority: P1)

Goal: every instruction in the prompt next issues for discovery is executable before a plan exists; /spec-kitty.research states its per-type contract; all agent-facing research guidance agrees. Independent Test: new end-to-end test drives next to discovery, runs every spec-kitty invocation in the issued prompt (exit 0), and sees next advance. Prompt: tasks/WP02-truthful-discovery-prompt.md Requirement Refs: FR-001, FR-002, FR-003, FR-004, FR-008, FR-012, FR-013, NFR-004, C-001, C-002

Included Subtasks

T006 Red-first: end-to-end discovery contract test through next (WP02) T007 Rewrite the mission-step research prompt (discovery + /spec-kitty.research contract) (WP02) T008 Plan prompt Phase 0: extend, don't replace research.md (+ text invariant test) (WP02) T009 Align spk-mission-research skill, command map, slash-command doc (WP02) T010 Changelog entry under [Unreleased] and doctrine regen gates (WP02)

Dependencies

  • Depends on WP01 (prompt wording describes WP01's final command behaviour; changelog covers both).

Work Package WP03: Retire the finalize checkout shim (Priority: P3)

Goal: no test-only no-op in production; the read-only test proves the divergent-branch claim. Independent Test: git grep _ensure_branch_checked_out -- src tests is empty; finalize tests pass; read-only test fails if validate-only moves HEAD. Prompt: tasks/WP03-retire-finalize-checkout-shim.md Requirement Refs: FR-009, FR-010, FR-011, C-004, C-005

Included Subtasks

T011 Delete _ensure_branch_checked_out and its three test patches (WP03) T012 Rebuild validate-only read-only fixture with HEAD ≠ target (WP03) T013 Drop dead fire_dossier_sync test patch (WP03)

Dependencies

  • None (parallel with WP01).