Skip to content

fix(gate): stop flagging exclusion rows and prose out-of-scope destinations as structural failures - #18

Open
beomeodev wants to merge 1 commit into
masterfrom
fix/structural-gate-exclusion-false-positive
Open

fix(gate): stop flagging exclusion rows and prose out-of-scope destinations as structural failures#18
beomeodev wants to merge 1 commit into
masterfrom
fix/structural-gate-exclusion-false-positive

Conversation

@beomeodev

Copy link
Copy Markdown
Owner

Summary

  • The structural checker (2026-07-19 three-layer adoption) rejected two map conventions that predate it and passed every prior audit.
  • Exclusion rows: Commitment Index rows of type Exclusion legitimately have no owning Feature; the established convention marks them — (non-goal). The checker now requires the explicit em-dash marker for Exclusion rows (empty owners still fail); non-Exclusion rows keep the exactly-one-Feature rule.
  • Out-of-scope destinations: destinations may be non-Feature prose (successor PRD, backlog, frozen branch). The deterministic layer now checks only the arrow-and-named-destination form; destination validity stays with Layer-2 semantic verifiers.

Context

Surfaced by spade-ace-backtester /ms.expand (Amendment 2): the legacy map — immutable inside that command — failed 14 index rows and 17 out-of-scope items that had passed the 2026-07-14 global audit.

Test plan

  • 5 new regression tests (2 false-positive reproductions + 3 guards against over-loosening)
  • uv run pytest tests/specter/ → 224 passed

🤖 Generated with Claude Code

…ations as structural failures

The structural checker (added with the 2026-07-19 three-layer adoption)
rejected two conventions that predate it and passed every prior audit:

- Commitment Index rows of type Exclusion carry an explicit "— (non-goal)"
  owner marker, not an owning Feature. The checker now requires the em-dash
  marker for Exclusion rows (empty owners still fail) while non-Exclusion
  rows keep the exactly-one-Feature rule.
- Explicitly-out-of-scope destinations may be non-Feature prose (a successor
  PRD, a backlog, a frozen branch). The deterministic layer now checks only
  the arrow-and-named-destination form; destination validity stays with the
  Layer-2 semantic verifiers.

Surfaced by spade-ace-backtester's /ms.expand (Amendment 2), where the
legacy map — immutable inside that command — failed 14 index rows and 17
out-of-scope items that had passed the 2026-07-14 global audit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant