OQ-15 opened and resolved by ADR-018: the hash registry extends with
the single git-object derivation family — registry bytes 0x03/0x04,
preimage-identity hashing over git's loose-object form as the stored
preimage; the digest byte-identical to git's oid, every kind included.
- The five prototype-uncarried decisions owned: the ops kind question
(family explicit everywhere; from_git_oid_hex pinned blob-family;
the ops surface blob-family in 0.1; a family-explicit wire form is
a named-consumer + new-ADR door), the per-family stat semantic (the
stored-preimage length), ADR-002's annotated exception (the
invariants surviving verbatim), the namespace posture (ADR-017's
caveat stated for the family), and the public put shape
(put_git_object — known-length only, family members only).
- Fleet threading fixed as part of the family's contract (Decision 7)
— the derivation-parameterized sites + fleet forms land in
c1-git-object-family-impl, which this ADR gates.
- The prototype branch's deviations enumerated for the implementation:
fleet threading, the kind-decision delta, the stat-semantic record,
the fuzz-seed disposition (0x03 is a committed invalid-tag seed —
regeneration is expected), the derive-len inertness documented.
Spec updates with dated notes: hashing-and-keys.md (the
derivation-family section, the extended registry, the
from_git_oid_hex contract), store-api.md (the put_git_object seam,
the stat semantic), ops-surface.md (the digest wire form's posture),
ADR-002 (the annotation + registry note), the README ADR index;
open-questions.md register fully resolved; AGENTS.md status
parenthetical updated. No code changes.
Verification: cargo test (default, 209 passed), cargo clippy
--all-targets -- -D warnings, cargo fmt --check — all green (docs/ADR
only; the impl task runs the full block incl. --all-features + the
pg harness and the fuzz gate).