058-the-shipped-default-hashes-what-it-names

The shipped default hashes what it names

Lifecycle approvedImplementation completeVerification unknownQualification unknown

`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

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

  1. 058: The shipped default hashes what it names
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 The default matches files
  6. 3.2 The scaffold stops describing the default as broken
  7. 3.3 A regression guard that fails on the old default
  8. 3.4 The documentation stops quoting the broken value
  9. 3.5 The migration note
  10. 3.6 A workflow bump stales the ledger, and the test says so
  11. 4. Out of scope
  12. 5. Resolved decisions
  13. Verification

Frozen anchors

No frozen anchors declared.