Tasks: Arch/Perf Test-Guard Non-Vacuity Hardening

Mission: test-guard-non-vacuity-hardening-01M37EW8 | Branch: issue-4036-test-guard-non-vacuity-hardening Issues: #4036, #4105, #4210, #4388, #4408, #4536 — epic #4883

Dependency Graph

WP01 (architectural guards: #4105 #4388 #4408)   — independent
WP02 (perf + support guards: #4210 #4536 #4036)  — independent

Both parallel (disjoint edit sets). Only WP02 edits pytest.ini/ci-nightly.yml; WP01's #4388 only READS pytest.ini.

Subtask Index

IDDescriptionWP
T001#4105: frontmatter-scope is_retired_doc; drop kitty-specs/ prefix; fix commentWP01
T002#4388: assert pytest.ini has no python_files overrideWP01
T003#4408: _composite_action_path normalize/reject .. + containment checkWP01
T004WP01 non-vacuity demos (one per finding, RED-on-base)WP01
T010#4210: additive real-tree walk (preserve pure fn sig) + marker-desc fix + env-scope invariantWP02
T011#4536: min-scanned-file floor + dynamic-import coverage + docstring fixWP02
T012#4036: window-scope the self-test assert + document xdist-straddleWP02
T013WP02 non-vacuity demos (one per finding, RED-on-base; #4036 must prove a real cross-window straddle)WP02

Completion: spec-kitty agent tasks mark-status Txxx --status done.

WP01 — architectural census/coverage guards (#4105 #4388 #4408)

  • Goal: three disjoint tests/architectural/ guards go vacuous→discriminating. Prompt: tasks/WP01-architectural-guards.md
  • Deps: none. Requirement refs: FR-002, FR-004, FR-005, NFR-001, C-001, C-002.

WP02 — perf + support guards (#4210 #4536 #4036)

  • Goal: perf-marker + startup-budget + repo-root status guards go vacuous→discriminating (test-infra only). Prompt: tasks/WP02-perf-support-guards.md
  • Deps: none. Requirement refs: FR-001, FR-003, FR-006, NFR-001, NFR-003, C-001, C-002, C-003.

MVP

Either WP alone is a shippable dent; together they close the 6-finding non-vacuity slice.