058-the-shipped-default-hashes-what-it-names
The shipped default hashes what it names
`IndexConfig::default().extra_hashed_inputs` ships as `["standards/**", ".github/workflows/**"]`. In the glob crate `dir/**` enumerates directories, and the hasher keeps only entries that are files, so the shipped default matches nothing: every adopter who has not overridden it folds zero extra files into the content hash and is told nothing. Spec 050 found the form in this repository's own config and fixed it there; spec 054 found it in the default behind it, emitted the key at its real value with a comment naming the trap, and deferred the fix to its own spec on the grounds that changing it restales every adopter's committed index. This is that spec. The default becomes `["standards/**/*", ".github/workflows/**/*"]`, the working form 054's comment already tells adopters to write, so an adopter who followed that advice sees no change and one who did not gets a one-time restale and a governance surface that is finally in the ledger. A regression test pins the property that was never asserted: that the shipped default matches files.
Read the full pinned specification ↗Relationships
depends on
depended on by
Claimed units
- extends
{ "nature": "additive", "spec": "055-a-version-pin-the-cli-can-check", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/config.rs" } } - extends
{ "nature": "additive", "spec": "054-the-scaffold-ships-what-adopters-wrote", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/scaffold.rs" } } - extends
{ "nature": "additive", "spec": "054-the-scaffold-ships-what-adopters-wrote", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/scaffold.rs" } } - extends
{ "nature": "additive", "spec": "048-the-ledger-answers-what-consumers-rebuild", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/index.rs" } } - extends
{ "nature": "additive", "spec": "057-the-docs-name-what-adopters-derived", "unit": { "kind": "file", "path": "docs/adoption-guide.md" } } - extends
{ "nature": "additive", "spec": "027-cargo-workflow-dependency-waiver", "unit": { "kind": "file", "path": "crates/spec-spine-cli/tests/couple.rs" } }
Source headings
- 058: The shipped default hashes what it names
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The default matches files
- 3.2 The scaffold stops describing the default as broken
- 3.3 A regression guard that fails on the old default
- 3.4 The documentation stops quoting the broken value
- 3.5 The migration note
- 3.6 A workflow bump stales the ledger, and the test says so
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.