mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-13 06:06:38 +00:00
A spec no row of the sweep reaches is dead weight that still reads as coverage: the file is there, the lint demanding it is satisfied, and nothing runs it. The matrix cuts rows for redundancy and for budget, so whether a spec runs is a property of the whole sweep rather than of any one role, and only a sweep-wide assertion can hold it. utils.roles.playwright_coverage classifies; the command renders and the integration test asserts, so both read one answer. It takes the entries and the chunk plan as arguments rather than building them, which keeps the lower layer free of the CI command layer. Two groups are not holes. A row the budget drops still counts as the trigger, because the cut belongs to the runner's wall clock and not to the coverage the matrix was built to give. And a role outside the tested lifecycle envelope is left out on purpose -- the first version of this report conflated the two, listed 14 phantom holes, and a peer session was about to write manual mail checks into a runbook for a deprecated role because of it. Current state: 542 specs, 528 triggered, none missing, 14 outside the envelope. The test asserts only that a spec has some triggering row, never which one. Two identical runs of the planner assign different modes to some rows -- bridgy-fed and chess moved between compose and swarm with nothing changed -- so an assertion pinning a role to a mode, variant or chunk would be flaky by construction. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>