076-a-stray-shard-is-orphaned-at-the-verbs

A stray shard is orphaned at the verbs

Lifecycle approvedImplementation completeVerification unknownQualification unknown

Spec 069 §3.1 says `orphaned` covers "a stray file in either shard directory", and `compare_shard_dir` classifies by name without parsing, so the library holds to it. The verbs do not. `check_report` and `check_freshness_json` compute the freshness verdict and then call `diagnostics::committed_counts(config, repo_root)?`, which parses every file in the shard directories; an unparseable stray makes that `?` throw the computed verdict away, and `index check` and `check` exit 3 with a parse error where `couple` and `index coverage` exit 2 and name the orphan. Measured at 0.19.0, and the same at 0.18.0, so it is not a regression and not a bypass. 069's acceptance asserted the classification on the library function only, which is exactly how it passed. This spec makes the tally best-effort and the verdict authoritative, and asserts it at the verbs.

Read the full pinned specification ↗

Relationships

Claimed units

  • extends
    {
      "nature": "corrective",
      "spec": "044-index-diagnostics-reach-a-gate",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/diagnostics.rs"
      }
    }
  • extends
    {
      "nature": "corrective",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "corrective",
      "spec": "004-codebase-index",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/cmd_index.rs"
      }
    }
  • extends
    {
      "nature": "corrective",
      "spec": "062-one-name-one-freshness-verb",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/cmd_check.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "069-the-committed-index-is-compared-not-trusted",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/tests/index_body.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "034-machine-readable-verdicts",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/tests/cli.rs"
      }
    }

Source headings

  1. 076: A stray shard is orphaned at the verbs
  2. 1. Purpose
  3. 1.1 The verdict is computed and then discarded
  4. 1.2 Measured, at the verbs
  5. 1.3 Why the library test did not catch it
  6. 2. Territory
  7. 3. Behavior
  8. 3.1 The verdict outranks the tally
  9. 3.2 An unparseable file in the shard directory is drift, not a parse error
  10. 3.3 The tally is best-effort and says what it skipped
  11. 3.4 One path, four entry points
  12. 3.5 What does not change
  13. 3.6 The acceptance runs the verbs
  14. 4. Out of scope
  15. 5. Resolved decisions
  16. Verification

Frozen anchors

No frozen anchors declared.