Tasks: Owned issue-verdict authority (#6320)

Mission: owned-issue-verdict-authority-01M55KGY Topology: single_branch (WPs run sequentially in the write checkout) Planning base / merge target: kitty-base-6320

Subtask completion is event-sourced — record with spec-kitty agent tasks mark-status Txxx --status done. The rows below are references, not checkboxes.

Subtask Index

IDDescriptionWPParallel
T001Thread owned through resolve_write_target_or_degradeWP01
T002Owned-aware _mission_meta_existsWP01
T003Owned param on assert_coord_write_materialized + establish_coord_write_location passthroughWP01
T004Owned passthrough on resolve_for_writeWP01
T005Red-first unit test: owned-only mission resolves; unresolved owned fact still refusesWP01
T006Byte-identity test for the 3 unrelated gate callersWP01
T007Add --owned-checkout option to issue_verdict_commandWP02
T008Resolve ownership once in do_issue_verdict; pass owned to the gate callWP02
T009Thread owned through _resolve_write_dirWP02
T010Thread owned through the coord-owned read + migration pathWP02
T011Forward owned into write_issue_matrixWP02
T012Red-first integration test (owned --owned-checkout + flagless adoption + fail-closed control)WP02
T013p0-repro test (p0_repro(issue=6320))WP02
T014Changelog Fixed entry for #6320WP03
T015Document issue-verdict --owned-checkout in agent-subcommands.mdWP03

Work Packages

WP01 — Write-target gate owned-awareness

  • Goal: Make the fail-closed write-target gate (mission_runtime.write_target_degrade + coordination.surface_resolver.resolve_for_write) recognize an owned-only mission given the owned fact, keeping its three unrelated callers byte-identical.
  • Priority: P1 (foundation). Dependencies: none.
  • Requirements: FR-002, FR-005, NFR-001, NFR-002.
  • Independent test: unit tests in tests/mission_runtime/test_write_target_degrade_owned_6320.py.
  • Subtasks: T001, T002, T003, T004, T005, T006.
  • Prompt: tasks/WP01-write-target-gate-owned-awareness.md.

WP02 — issue-verdict command wiring, coord-owned read path, and red-first proof

  • Goal: Wire --owned-checkout into issue-verdict, resolve ownership once (mirror #6023), and thread the owned fact through resolution, the write dir, the coord-owned read/migration path, and the locked writer.
  • Priority: P1
  • Dependencies: WP01
  • Requirements: FR-001, FR-003, FR-004, FR-006, NFR-001, C-001, C-002, C-003.
  • Independent test: tests/integration/test_owned_issue_verdict_authority_6320.py (+ p0-repro).
  • Subtasks: T007, T008, T009, T010, T011, T012, T013.
  • Prompt: tasks/WP02-issue-verdict-command-and-read-path.md.

WP03 — Deliverable hygiene: changelog + CLI reference

  • Goal: Record the user-facing change (changelog) and document the new CLI option.
  • Priority: P2
  • Dependencies: WP02
  • Requirements: SC-001, SC-002.
  • Independent test: changelog-style + docs-freshness gates.
  • Subtasks: T014, T015.
  • Prompt: tasks/WP03-deliverable-hygiene.md.

MVP

WP01 + WP02 deliver the headline capability (owned verdict recorded). WP03 is deliverable hygiene.