158-the-affected-selection-is-a-governed-read
The affected selection is a governed read
Spec 150's selector, which names every spec whose acceptance a change can break, lives in an embedded Python block of `scripts/verify-sweep.sh`, a script only this repository carries. Spec 157 moves the pre-merge sweep into the merge queue across every Statecraft-governed repository, and the Statecraft owner decided (2026-09-27) that spec-spine owns selection: the profile's sweep job calls a spec-spine read and shards the plan it returns. This spec adds that read, `verify --affected-by <base> --plan --json`: the CLI turns the Git range into changed paths, the core selects as a pure function of the configuration, the corpus and those paths, and the answer names each selected spec, the rule that selected it and its effective plan. The whole-corpus trigger becomes configuration rather than this repository's layout, and `verify-sweep.sh` calls the read instead of keeping a second selector.
Read the full pinned specification ↗Relationships
depends on
Claimed units
- establishes
{ "kind": "file", "path": "crates/spec-spine-core/src/affected.rs", "planned": true } - establishes
{ "kind": "file", "path": "crates/spec-spine-core/tests/affected.rs", "planned": true } - extends
{ "nature": "additive", "spec": "043-verify-declared-acceptance", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/cmd_verify.rs" } } - extends
{ "nature": "additive", "spec": "043-verify-declared-acceptance", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/verify.rs" } } - extends
{ "nature": "additive", "spec": "029-ownership-coverage", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/config.rs" } } - extends
{ "nature": "additive", "spec": "012-declared-extra-frontmatter-passthrough", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/version.rs" } } - extends
{ "nature": "additive", "spec": "092-the-engine-ships-governance-not-an-environment", "unit": { "kind": "file", "path": "spec-spine.toml" } } - extends
{ "nature": "additive", "spec": "089-nothing-reruns-a-merged-acceptance", "unit": { "kind": "file", "path": "scripts/verify-sweep.sh" } } - extends
{ "nature": "additive", "spec": "089-nothing-reruns-a-merged-acceptance", "unit": { "kind": "file", "path": "scripts/test-verify-sweep.py" } }
Source headings
- 158: The affected selection is a governed read
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The read
- 3.2 Selection is pure
- 3.3 The whole-corpus trigger is configured
- 3.4 The read is versioned
- 3.5 One selector
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.