Files
Boden Fuller b49c1204a0 feat(overnight): wave 5 — e2e tests, fixture, v1 reader, contracts, skill docs
Dream nightly compounder plan rev 2, Wave 5 (Issues 11, 12, 13)
executed by two parallel workers.

Issue 11 — L2 e2e tests + 150+ learning fixture + frozen v1 reader:

- NEW cli/internal/overnight/fixture/gen_fixture.go: deterministic
  fixture generator producing 150 learnings + 20 findings + 5
  patterns + 3 knowledge files with realistic metadata distribution
  (maturity mix 0.50/0.30/0.15/0.05, source_bead on 60%, utility
  0.1-0.9, mtime spanning 180 days). Parked at fixture/ not
  testdata/ because Go excludes testdata/ from package resolution.
  Two non-obvious tunings: pseudo-random hex bodies avoid dedup
  trigram overlap, and pattern[0] embeds all learning filenames to
  avoid orphan pruning during REDUCE.

- NEW cli/internal/overnight/overnight_e2e_test.go: three L2 tests
  driving INGEST + REDUCE + MEASURE against the full 150-learning
  fixture. TestRunLoop_L2_FullIteration_CorpusQualityMoves asserts
  catalog build, checkpoint, stage-order, metadata round-trip,
  findings routed, next-work.jsonl written, and fitness vector
  populated. TestRunLoop_L2_MetadataStripDetected exercises the
  pm-005 regression at L2 scale with checkpoint rollback.
  TestRunLoop_L2_CompoundFilterCliff_DoesNotSilentlyKillCorpus is
  the pm-015 guard: asserts no corpus-quality metric drops by more
  than 0.30 between iterations (the "cliff" threshold from
  2026-04-02-flywheel-quality-fixes).

- NEW cli/cmd/ao/testdata/v1_reader/summary_v1.go: frozen v1
  reader struct snapshot of overnightSummary at 2026-04-09 HEAD.
  Only struct definitions, no methods, to prevent drift.

- EXTENDED cli/cmd/ao/overnight_test.go: added
  TestRunOvernight_SchemaV2IsV1BackwardCompatible (pm-008 fix).
  Constructs a minimal v2 summary, marshals it, unmarshals into
  the frozen v1 reader, and asserts every v1 field is populated.
  Previous tests untouched.

Issue 12 — Contract v2 bumps:

- docs/contracts/dream-run-contract.md: new v2 iteration-loop
  section. Documents INGEST -> REDUCE -> MEASURE, the 5
  checkpointed subpaths, 5 halt conditions, 5 anti-goals, 6 new
  flags, startup recovery protocol, and the pm-011 concurrency
  guard. V1 content + Wave 2's "Retrieval-bench determinism"
  subsection preserved.

- docs/contracts/dream-report.md: Schema v2 section documenting
  the 4 new top-level fields (iterations, fitness_delta,
  plateau_reason, regression_reason) and the IterationSummary
  shape (14 fields). Explicit backward-compat guarantee
  referencing TestRunOvernight_SchemaV2IsV1BackwardCompatible.

Issue 13 — Skill docs:

- skills/dream/SKILL.md: added Compounding Loop (v2) section with
  anti-goals, 3 new /dream start examples, iteration sub-summary
  bullet in Output, Delineation vs /evolve table. 207/250 line
  budget.
- skills/harvest/SKILL.md: nightly-usage blockquote pointing at
  /dream start as the primary nightly driver and noting the
  .agents/overnight/run.lock refusal during Dream runs.
- skills/evolve/SKILL.md: Delineation vs /dream section
  (identical verbatim table to dream/SKILL.md — must be kept in
  sync). Pointer added in See Also.

Verification:
- go build ./... OK
- go vet ./... OK
- go test ./internal/overnight/... all green (e2e + unit)
- go test ./cmd/ao/ all green (incl. schema v2 backward-compat)
- heal.sh --strict clean
- check-contract-compatibility.sh 0 failures / 0 warnings

Follow-up flagged (not blocking): skills-codex/ parity for dream/
harvest/evolve needs a pass of scripts/audit-codex-parity.sh +
regen-codex-hashes.sh to propagate the markdown changes.

Refs: plan Issues 11/12/13, pre-mortem pm-008/011/012/015.
2026-04-10 12:53:58 -04:00
..