00 — Skeleton & Measurement Foundation
Goal
Deliver the measurement substrate FIRST: a metrics probe + a plan-owned representative grind target + a recorded baseline. Nothing downstream can be judged ‘evolving’ without this. Read-only (no behavior change) — the safest first slice, and the probe the plan-wide functional criterion uses.
Implementation Sketch
- evolution_metrics.py reads via scripts.plan_corpus.read (load_plan / show_evolutions); emits a JSON record + a —field
selector for criterion probes. - coverage = count of distinct behavior_descriptor.mechanism_class niches with >=1 entry.
- surrogate-agreement = fraction where refuter majority verdict matched the eventual measured direction.
- Grind target: a real small subsystem with measurable reachable headroom + a probe.sh; lives in the plan’s fixtures/.
Spec References
- .claude/rules/learning-ledger.md §11 (evolution entries) + §13 (read API)
- scripts/plan_corpus/read.py (canonical plan-state read; NEVER open plan.json)
- Prior art: Mouret & Clune MAP-Elites (QD-score + coverage); QD-metrics literature
Work Items
- Build scripts/ledger_evolution_runtime/evolution_metrics.py computing measurement_rate (attempted/total), ratified count, mechanism-class QD-coverage (distinct niches), and surrogate-agreement (refuter verdict vs measured outcome), read from plan.json:evolutions[]+ledger[] via the scripts.plan_corpus.read API (NEVER opening plan.json directly per plan-read-discipline.md §2.1).
- Establish the plan-owned representative grind target under plans/evolution-empirical-redesign/fixtures/grind-target/ (a small real subsystem with reachable headroom + its gate_metric.probe_ref) so the >=1-ratification functional criterion is demonstrable independent of the two stalled grind plans.
- Capture the baseline: record the current corpus reading (0/24 ratified, 0.083 measurement_rate) as the comparison anchor; cover with pytest scripts/ledger_evolution_runtime/tests/test_evolution_metrics.py.
Fresh intel (regenerated)
{ “schema_version”: 1, “target”: { “kind”: “plan-section”, “ref”: “evolution-empirical-redesign/s-7b6f4a7b” }, “generated_at”: “2026-06-19T19:37:48.973793+00:00”, “graph_state”: { “head_sha”: “dbb10f0e”, “last_code_import_at”: “2026-06-19T19:35:48.477Z”, “embedding_stale”: false, “insights_stale”: false, “cpg_stale”: false }, “surfaces”: {}, “summary”: “intel-package[plan-section:evolution-empirical-redesign/s-7b6f4a7b] agent-authored dossier”, “degraded”: false, “dossier”: { “objective_symbols”: [], “tiers”: {}, “agent_authored”: true, “difficulty”: { “class”: “routine”, “research_online”: false, “research_mode”: “auto”, “signals”: [], “plan_dir”: “/home/eric/projects/ori_lang/plans/evolution-empirical-redesign” } } }
(full dossier: skeleton-metrics—s-7b6f4a7b.intel.json)