Work Packages: Nightly reds B (2026-10-04)

Inputs: spec.md, plan.md, research/nightly-red-memo.md Prerequisites: plan.md, spec.md, research memo Tests: every WP is a test repair or a red-first product fix; each names the exact node ids it greens. Organization: one WP per independent failure group (not per GitHub issue), disjoint owned_files.

Subtask Format: [Txxx] [P?] Description

  • [P] indicates the subtask can proceed in parallel (different files/components).
  • Subtasks are reference rows; record completion with spec-kitty agent tasks mark-status <Txxx> --status done.

Work Package WP01: Stress fixture is a well-formed coordination Mission (Priority: P1)

Goal: tests/stress/test_concurrent_emits.py passes 2/2 against a fixture shaped like a real coordination Mission. Independent Test: PWHEADLESS=1 .venv/bin/python -m pytest -p no:cacheprovider -q -n0 -m "" tests/stress/test_concurrent_emits.py Prompt: /tasks/WP01-stress-fixture-coordination-mission.md Requirement Refs: FR-001, NFR-001, NFR-002, SC-001

Included Subtasks

T001 Write the Mission meta.json (declared coordination_branch) in _init_coord_repo T002 Make MID8 the first 8 characters of MISSION_ID T003 Show red on base and green on the lane; run the timing-coverage pin

Dependencies

  • None.

Risks & Mitigations

  • tests/architectural/test_timing_coverage_invariant.py pins the correctness test body verbatim: change only the fixture and constants.

Work Package WP02: Coordination single-home integration oracles (Priority: P1)

Goal: the three integration node ids that lag commit 5b5699e50 pin the intended contract and pass. Independent Test: the three node ids listed in the prompt. Prompt: /tasks/WP02-coord-single-home-oracles.md Requirement Refs: FR-002, FR-003, FR-004, NFR-001, NFR-002, SC-002

Included Subtasks

T004 [P] Golden path: assert the create-time coordination seed instead of committing an empty log T005 [P] Coordination-read residuals: spy on write_dir(STATUS_STATE); assert read_dir(STATUS_STATE) is not used T006 [P] Owned finalize: re-pin the exact post-mint ledger (16 → 18) with the frame-chain rationale

Dependencies

  • None.

Risks & Mitigations

  • Blind ledger bumps: the re-pin names the exact frame chain that added the reads.

Work Package WP03: Vibe pointer recovery in agent config sync (Priority: P1)

Goal: agent config sync --create-missing restores a missing .vibe/config.toml for an already-installed vibe agent, without rewriting the pinned manifest. Independent Test: tests/init/test_init_idempotent.py::test_initialized_clone_vibe_pointer_recovery_and_repeat plus tests/specify_cli/cli/commands/test_agent_config.py. Prompt: /tasks/WP03-vibe-pointer-recovery.md Requirement Refs: FR-005, NFR-002

Included Subtasks

T007 Record the pre-existing red test as the red-first evidence (no new test is needed; it already fails on base) T008 Restore the pointer in the already-installed branch of _check_or_create_configured_agent_dirs T009 Run the agent-config and init test files

Dependencies

  • None.

Risks & Mitigations

  • Regressing f4a2e63ed (normal sync must not rewrite pinned manifests): only the gitignored pointer is written.

Work Package WP04: Nightly integration-slice harness (Priority: P2)

Goal: the slice's corpus, status-guard and recover-characterization rows pass in the slice's real environment. Independent Test: the node ids listed in the prompt, with CI=true, and a --depth 1 clone check for the corpus row. Prompt: /tasks/WP04-integration-slice-harness.md Requirement Refs: FR-006, FR-007, FR-008, NFR-001, NFR-002, SC-003

Included Subtasks

T010 [P] ci-nightly.yml integration-slice job: fetch-depth: 0 with the reason T011 [P] Status-guard self-test: accept the CI-mode - <message> summary suffix T012 [P] Recover characterization: run against a materialized coordination worktree

Dependencies

  • None.

Risks & Mitigations

  • tests/ci/ pins of the nightly workflow: run tests/ci/test_nightly_integration_slice.py and tests/ci/test_nightly_exit_code_honesty.py.

Dependency & Execution Summary

  • Sequence: none required; all four WPs are independent.
  • Parallelization: all four can run in parallel.
  • MVP Scope: WP01 (closes the stress tracker).

Requirements Coverage Summary

Requirement IDCovered By Work Package(s)
FR-001WP01
FR-002WP02
FR-003WP02
FR-004WP02
FR-005WP03
FR-006WP04
FR-007WP04
FR-008WP04
NFR-001WP01, WP02, WP04
NFR-002WP01, WP02, WP03, WP04

Subtask Index (Reference)

Subtask IDSummaryWork PackagePriorityParallel?
T001Stress meta.jsonWP01P1No
T002Stress mid8WP01P1No
T003Stress evidenceWP01P1No
T004Golden-path seedWP02P1Yes
T005write_dir spyWP02P1Yes
T006Ledger re-pinWP02P1Yes
T007Vibe red evidenceWP03P1No
T008Vibe pointer restoreWP03P1No
T009Vibe testsWP03P1No
T010Slice full historyWP04P2Yes
T011CI-mode parserWP04P2Yes
T012Materialized recover fixtureWP04P2Yes