Visitar URL original
Recording: Claude Code transcript compaction can erase the /prepare-build announcement bookend · Issue #19 · https-deeplearning-ai/spec-build-lab · GitHub
Skip to content

Recording: Claude Code transcript compaction can erase the /prepare-build announcement bookend #19

Open

Description

@Carr1005

Observed on run-08 (2026-09-07): the .session breadcrumb correctly pointed at the live transcript, but by extraction time the session had gone through context compaction and the transcript JSONL no longer contained the /prepare-build announcement text ("Run 08 — building in builds/run-08/") — the default opening bookend matched nothing and extract.py sliced from the start of the surviving transcript. The closing bookend (recent text) still matched. Recovered by re-running with --from="Spec fully absorbed", a phrase that survived compaction; the final log covers 138 turns of the build but has lost the allocation/checklist turns that preceded the compaction boundary.

Implication: the post-hoc recording design (CLAUDE.md "Recording is post-hoc") assumes the transcript retains raw turns for the whole build window. Long sessions violate that: compaction can drop any pre-boundary turn, including the opening bookend and early build activity.

Options to consider (next tooling pass):

  • /prepare-build writes the announcement text (or a unique token) into evals/run-NN/.session alongside the path, and extract.py falls back to slicing from the earliest surviving turn while WARNING loudly that the opening bookend was lost (today it says "no match — sliced from start" only in stdout).
  • Have /prepare-build note a timestamp at allocation; slice by timestamp rather than text.
  • Or extract eagerly (run /extract-build-log periodically during long builds) since re-runs are idempotent.

🤖 Generated with Claude Code

Activity

  1. Carr1005 commented on Sep 8, 2026

    @Carr1005
    CollaboratorAuthor

    New datapoint from run-09 (the guide-scope-and-residuals green-build gate): transcript compaction again erased the opening bookend — the run's /prepare-build allocation happened just before a compaction and the verbatim announcement never made it into the transcript, so the extractor's default opening regex found nothing and sliced from the start of the session (769 unrelated turns). Recovered with an explicit --from on the adoption-commit phrase (final slice: 331 turns, 0 materials reads). Second occurrence of the same failure shape (run-08 was the first); the --from escape hatch works but requires knowing a unique phrase, and a phrase quoted later in conversation can collide (the extractor matched my own later message quoting it once).

    🤖 Generated with Claude Code

  2. Carr1005 commented on Sep 10, 2026

    @Carr1005
    CollaboratorAuthor

    Still open and unscheduled — recorded here so the state is explicit. This was deliberately excluded from the last two batches (PR #23, PR #25), which were spec/guide work; this is lab tooling.

    Standing evidence: two occurrences (run-08, run-09). Both were recovered with an explicit --from bookend, and one of those attempts matched a later message that merely quoted the phrase, so the workaround has its own sharp edge. Proposed direction, unapplied: /prepare-build writes its announcement text into the run's breadcrumb file at allocation, and the extractor falls back to that when the transcript copy has been compacted away — the breadcrumb is already write-once at allocation, so it is the natural place.

    Forward-looking spec/guide work now lives in #26; this issue stays the tooling track.

    🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions