Every @e2e anchor that CI actually runs points at nothing
hermiq's measured e2e coverage of its own spec tree is 0.0%. Part of that is #176 (69
refs sit in files the CI Playwright config never runs). The other part is this, and it is
invisible to the gate:
All six refs that CI does run are dangling.
DANGLING agent-object-leaf::a-new-finding-triggers-the-seeded-triage-flow
DANGLING agent-object-leaf::an-unresolvable-owner-blocks-dispatch
DANGLING agent-object-leaf::seeding-twice-creates-one-agent
DANGLING agent-object-leaf::the-flow-contains-no-hermiq-authored-http-step
DANGLING agent-object-leaf::the-user-is-told-the-object-contributed-no-context
DANGLING agent-tool-governance::the-agent-may-run-exactly-one-flow
Resolved against the 735 scenario refs actually present in openspec/specs/.
Why
openspec/specs/agent-object-leaf/ does not exist. That capability's spec lives only in
change directories:
openspec/changes/hermiq-agent-leaf/specs/agent-object-leaf/
openspec/changes/hydra-console-agent-leaves/specs/agent-object-leaf/
It was never promoted into the canonical tree. Five anchors therefore point at a spec with no
canonical home. The sixth names a scenario slug agent-tool-governance does not contain.
Across the whole e2e corpus (root-config arm): 75 live refs → 59 resolve, 16 dangling.
Why nobody noticed
gate-19 does not report a dangling anchor. It is silently not-coverage
(.github#354 / #357), so an anchor pointing at a spec that does not exist reads to any
human as traceability and counts for nothing. The scenarios are also, separately, not covered
— so the spec side and the test side each look fine in isolation.
This also means wiring #176 alone will not take these tests off zero.
Suggested fix
- Promote
agent-object-leaf from the change dirs into openspec/specs/agent-object-leaf/,
and confirm the five scenario slugs match.
- Fix the
agent-tool-governance slug.
- Add a check that every
@spec/@e2e anchor resolves — an anchor into
openspec/changes/… dies silently the moment that change is archived, which is exactly
what happened here.
Found while closing the E2E red in #189, and while measuring gate-19's floor and ceiling
(491 uncovered / 736 ceiling / 245 excluded).
Every
@e2eanchor that CI actually runs points at nothinghermiq's measured e2e coverage of its own spec tree is 0.0%. Part of that is #176 (69
refs sit in files the CI Playwright config never runs). The other part is this, and it is
invisible to the gate:
All six refs that CI does run are dangling.
Resolved against the 735 scenario refs actually present in
openspec/specs/.Why
openspec/specs/agent-object-leaf/does not exist. That capability's spec lives only inchange directories:
It was never promoted into the canonical tree. Five anchors therefore point at a spec with no
canonical home. The sixth names a scenario slug
agent-tool-governancedoes not contain.Across the whole e2e corpus (root-config arm): 75 live refs → 59 resolve, 16 dangling.
Why nobody noticed
gate-19 does not report a dangling anchor. It is silently not-coverage
(
.github#354/#357), so an anchor pointing at a spec that does not exist reads to anyhuman as traceability and counts for nothing. The scenarios are also, separately, not covered
— so the spec side and the test side each look fine in isolation.
This also means wiring #176 alone will not take these tests off zero.
Suggested fix
agent-object-leaffrom the change dirs intoopenspec/specs/agent-object-leaf/,and confirm the five scenario slugs match.
agent-tool-governanceslug.@spec/@e2eanchor resolves — an anchor intoopenspec/changes/…dies silently the moment that change is archived, which is exactlywhat happened here.
Found while closing the E2E red in #189, and while measuring gate-19's floor and ceiling
(491 uncovered / 736 ceiling / 245 excluded).