Fleet Rebuild · Capstone Investigation
The Provenance Bug
A three-day demonstration that "who did that?" is not answerable from git log alone — and a proposal for what to do about it.
01The Bug
"No Claude session UUID stamped on git commits → who did that?"
— Wes Hines, 2026-05-19 02:33 CDT
Provenance exists in narrative prose. It does not exist in structured, greppable form. The 3-day demonstration of this bug is itself the evidence.
02The Live Evidence
The Monday 10:04 → 10:08 commit burst. Four commits, four minutes, one git actor (hinescreative) — and four different source sessions behind them.
| Commit | Wall time | Body claims work came from |
|---|---|---|
| f4e3768 | 10:04 | "future-vault session" (414ac530) |
| 26af83b | 10:05 | "sourced from transcript 414ac530" |
| 4ca8e17 | 10:06 | "branched session zrx6u1tr coordinating with peers enrfiezk + 6966fvzc" |
| 56c52f3 | 10:08 | "this session's own audit + pre-mortem + telegram synthesis" (vague — no UUID) |
03The Audits
Task A · Git Trailers
Zero structured provenance, twelve commits
- 12 commits since 2026-05-15. 100% authored by
hinescreative. Single trailer:Co-Authored-By. Zero session/machine/variant fields. - Multi-session signals exist only in commit-body prose — UUIDs, peer IDs, variant names. Not greppable, not structured.
- Seven distinct durable sessions contributed to those 12 commits. None visible from git alone.
- Proposed 6-field trailer block:
Session-Id,Session-Lineage,Machine,Variant,Peer-Id,Authored-At. Order matters;git interpret-trailerscompatible. - Companion machinery:
SessionStarthook caches state;commit-msghook resolves durable-vs-shim UUID per doc 17 §1; stretchpre-commithook WARN-only on missinglast_touched_by.
Task B · Frontmatter
The convention nothing follows
- Doc 12 specifies
last_touched_by+last_touched. Applied to 0 of 17 docs/ files, including doc 12 itself. Top irony. - Three competing pre-existing vocabularies emerged independently:
metadata.originSessionId(memory),transcript:+read_by:(archaeology),session_origin:(doc 16 only). - Coverage scoreboard: 8 files with
originSessionId, 5 withtranscript:, 1 withsession_origin:. Everything else: empty---blocks or no frontmatter at all. - Proposed unified schema (additive, not replacive): 7 required fields + 7 optional fields. Memory + archaeology shapes survive intact alongside.
- P0 backfill = 6 docs (12, 13, 14, 15, 16, 17). Flagged: convention may have only ever meant project-root READMEs, not every doc — needs Wes input before backfill.
The fix isn't inventing a convention.
It's choosing which existing one to canonize.
metadata.originSessionIdsurvived three days of multi-session pressure without drift. The project's strongest provenance pattern.session_origin:(doc 16) is the second-best — human-readable session aliases (future-vault-state) beat raw UUIDs for skimmability.read_by:(transcript reports) is the only field that names a model identity. Useful for audit but not durable enough alone.- A unified schema carries all three. The proposal in
frontmatter-coverage-audit.md §4is the synthesis.
06Loops Closing In Vivo
Two pieces of the proposed solution shipped to production while this page was being researched. The convention locked at 02:33 CDT was running in Slack 37 minutes later; Wes iterated on it 60 seconds after that. The full loop — diagnosis, implementation, real-world test, refinement — compressed into 38 minutes. This section is that loop on display.
Tonight, 2026-05-19
Convention: durable UUID stays present, role-name leads the daily form
- 02:33 CDT · Wes Diagnosis crystallized: "stamp every change with durable session UUID at the surface where it happens."
-
03:09 CDT · v1 adopted
All three peers updated
set_summaryto lead with their durable UUID short-form. Rule v1:<uuid-short> — <role>, <context> -
03:10 CDT · v1 verified in production
Slack
#fleet-peer-meshrendered the next cross-team message as414ac530/mac → b760fdc9/mac. Distinguishable and traceable — but Wes flagged the UUID-first form as not human-friendly. -
03:11 CDT · Wes amended (v2)
Verbatim: "cant we do Future state - future state clone - fleet build - fleet build clone lol". Rule v2: role-name leads, UUID moves to body.
<Role-Name> — <uuid-short>, <context> -
03:12 CDT · v2 adopted, both layers retained
Slack renders
Future-state-clone/mac → Future-state/macfor daily readability. UUID remains in the summary body for forensic queries. Two surfaces, one substrate.
Δt v1 diagnosis → prod: ~37 min · Δt v1 verified → v2 amended: ~60 sec
07Five Ratification Gates
No automatic next step. Each gate is a discrete Riff / Ask / Plan / Work decision.
Ratify the trailer schema.
Session-Id+ 5 companion fields — or reject and counter-propose.Ratify the unified frontmatter schema in
frontmatter-coverage-audit.md §4.Resolve §7 of Task B. Does doc 12's
last_touched_by:apply to alldocs/files, or only project-root READMEs?Decide hook installation strategy. Per-project
.git/hooks/vscore.hooksPathglobal vs both.Decide enforcement posture. WARN-only forever (matches doc 12 spirit) or WARN-now-FAIL-later.
08Sources
View every claim's evidence
Primary audits (this session)
/Users/wesleyhines/Work/active-projects/fleet-rebuild-2026-05/research/provenance-2026-05-19/git-trailer-audit.md/Users/wesleyhines/Work/active-projects/fleet-rebuild-2026-05/research/provenance-2026-05-19/frontmatter-coverage-audit.md/Users/wesleyhines/Work/active-projects/fleet-rebuild-2026-05/research/provenance-2026-05-19/page-data-summaries.md
Convention reference
/Users/wesleyhines/Work/active-projects/fleet-rebuild-2026-05/docs/12-fleet-build-convention-2026-05-14.md
Harness facts reference
/Users/wesleyhines/Work/active-projects/fleet-rebuild-2026-05/docs/17-session-mobility-and-harness-facts-2026-05-15.md
Multi-session evidence (the seven contributing sessions)
/Users/wesleyhines/Work/active-projects/fleet-rebuild-2026-05/research/transcript-archaeology-2026-05-19/SYNTHESIS.mdresearch/transcript-archaeology-2026-05-19/2c324612-report.md· founding sessionresearch/transcript-archaeology-2026-05-19/3cbd63bb-report.md· day 2research/transcript-archaeology-2026-05-19/237e0c0d-report.md· day 3 (halt + CF-OS)research/transcript-archaeology-2026-05-19/414ac530-report.md· future-vault-stateresearch/transcript-archaeology-2026-05-19/d3fa4929-report.md· telegram parentresearch/transcript-archaeology-2026-05-19/e05f620b-report.md· zrx6u1tr (branched)
Git evidence
git log -30 --pretty=fuller· cited verbatim ingit-trailer-audit.md §1git log --since=2026-05-15 --oneline· 12 commits, all enumerated ingit-trailer-audit.md §8
Peer-mesh participants (tonight, in-flight)
- TEAM 1 lead · peer
za4obbdq· durable414ac530-3856-4ea9-8e05-d2e3e9fb80ea - TEAM 1 clone · this session · durable
b760fdc9-2bcf-4688-84b9-a705839a7b20 - TEAM 2 lead · peer
d3fa4929· durabled3fa4929-b0b8-4a7d-a851-989a5be3d789 - TEAM 2 clone · UUID TBD