Build Log
Arc Foundation Promotion — Transcript Provenance, Not Omniscience
July 18, 2026
Promoted only the transcript source-reference from the Arc spike into canonical session JSON — a durable pointer to an exact provider transcript range, with every analysis field (timings, hashes, chapters) deliberately left derived and recomputable, never persisted.
Timeline
What shipped
forgekit-os/sessions/_SCHEMA.md — documented transcript_reference as an optional top-level canonical field, with per-value session_coverage semantics tightened after Council review, an explicit list of what must never be persisted (derived-only), and the provider-boundary rule
forgekit-os/scripts/provider-adapters/claude-code.mjs — canonical, narrow provider adapter: locates a transcript by provider_session_id on this workstation, resolves a source range via the proven spike adapter, returns honest ok:false results (never throws) for not-found/unsupported/unresolvable cases
forgekit-os/scripts/provider-adapters/resolve-transcript-reference.mjs — validates reference shape (malformed syntax fails clearly), resolves every source through its registered adapter, derives structured metrics via the spike's buildArcPreview, and proves reproducibility by running resolution twice and comparing hashes
forgekit-os/scripts/provider-adapters/propose-transcript-reference.mjs — optional Harvest-time helper, not a gate, not wired into any validation path; proposes a transcript_reference with honestly-derived anchors or reports why it can't, always exits 0
forgekit-os/scripts/provider-adapters/tests/resolve-transcript-reference.test.mjs — 14 new tests covering malformed syntax, unsupported provider, inaccessible source, backward compatibility (a real historical session with no transcript_reference builds unchanged), valid-reference reproducibility, canonical-field exclusion of derived data, and privacy (no raw transcript content in the verification result or public HTML)
Populated forgekit-os/sessions/arc-slice-transcript-adapter-2026-07-18.json with a real, verified transcript_reference — the proof session, using its actual recovered Claude Code transcript anchors (session_coverage: complete, since both true ForgeKit session boundaries were independently confirmed against the real first/last entries)
.claude/rules/ignition.md §8 HARVEST — added one optional, non-blocking line describing how to run the proposal helper; explicitly not a gate, not required, does not affect any existing close behavior
“ForgeKit sessions gain provenance, not omniscience.”