Build Log · July 18, 2026

The Read-and-Map Audit — Why Every Session Got Heavier

Zeb suspected OS ceremony was dragging sessions out. A read-only audit found the real cause — schema accretion, not over-activation — and shipped a short-form/full-form compression instead of a parallel telemetry system a first-draft proposal had suggested.

  • ForgeKit OS
  • Ignition
  • Schema
real session JSONs inspected via file listing/line-count to establish the size trend
156

real session JSONs inspected via file listing/line-count to establish the size trend

full session JSONs read end-to-end as representative samples (smallest, largest, oldest, newest, one mid-sized normal fix)
6

full session JSONs read end-to-end as representative samples (smallest, largest, oldest, newest, one mid-sized normal fix)

growth in typical session JSON line count from the project's first week (45-283 lines) to the most recent two weeks (350-730 lines) — artifact mass, not a proven effort multiplier
~10x

growth in typical session JSON line count from the project's first week (45-283 lines) to the most recent two weeks (350-730 lines) — artifact mass, not a proven effort multiplier

sessions eligible for gate_accounting_policy: canonical-v1 since it shipped 2026-07-18 — both used it (corrected from an earlier miscomputed '2 of 156' framing that used the wrong denominator)
2

sessions eligible for gate_accounting_policy: canonical-v1 since it shipped 2026-07-18 — both used it (corrected from an earlier miscomputed '2 of 156' framing that used the wrong denominator)

Timeline

  1. Start

    Zeb reports session drag, suspects OS mechanics, asks for a cost/effort/bloat-capturing mechanism

  2. First draft flagged

    GPT's first proposal (Forge Yield/Slag/heat-classes) flagged to Zeb as ungrounded before acting — new vocabulary, new schema, ironic given the ask was to reduce ceremony

  3. Audit charge received

    Zeb's corrected charge: read-only audit first, no new terminology, prove where the bloat lives before proposing a fix

  4. Evidence gathering

    Read _SCHEMA.md, gates.md, triggers.md, engine-health.md; sampled 6 real session JSONs across the full date range and size range

  5. Real finding

    Session JSON size grew ~10x over one month independent of task size — schema accretion, not over-activation, is the primary driver. Crucible/Spin Triage/crucible_wrap show real value; Shaping/Risk Forecast/Anvil Check go ceremonial on bounded work.

  6. First proposal corrected

    GPT's review of Claude's audit caught 3 real overstatements (line-count-as-effort-proof, wrong denominator on the canonical-v1 stat, comparing non-equivalent fixes) and one real gap (no escalation clause, build_type alone too narrow a switch)

  7. Implementation

    Retracted the wrong stat, added short-form/full-form rule to ignition.md §3.5 gated on Trigger Map + boundedness (not build_type alone), added escalation clause, documented the omission convention in _SCHEMA.md

  8. Done

    Both files updated, retro written, no new schema fields, no new vocabulary

What shipped

  • .claude/rules/ignition.md §3.5 — new 'Short form vs. full form' subsection: eligibility test (no Trigger Map row, bounded/understood outcome, no new schema/auth/automation/OS mechanism, reversible), explicit non-reliance on build_type alone, mandatory escalation clause, and a worked example of genuine structural compression (field omission, not shorter prose in a full scaffold)

  • forgekit-os/sessions/_SCHEMA.md — session_contract section now documents the same short-form convention so it's discoverable from the schema reference, not only from ignition.md's prose

“This keeps the Forge sharp without replacing the bellows with a compliance department.”
— Zeb, approving the short-form/full-form fix over a new telemetry subsystem