# EXP-22: generations, does key-door skill pass brain-to-brain (labels vs grading)

- Date: 2026-10-09 | Cadence version: 0.78.0 / `750c8ef` (iter15 header; not stamped in the output) | Program iter: iter15 (one sub-claim retracted in iter16)
- Script: `exp/EXP-22_generation_chains.py`, diagnostic `exp/EXP-22-diag.py` | Evidence: `exp/EXP-22-grade-s{0,2,4,6,8,10}.json/.out` (run B), `exp/EXP-22-label-s{0,2,4,6,8,10}.json/.out` (run A)

## Summary
- Question: does key-door skill pass down a chain of fresh Cadence brains, each taught only by its parent, and does doing well differ from teaching well?
- Setup: 24 lineages: 12 founders trained by lessons (route L: key + door, N=300 each, interleaved) and 12 trained end-to-end (route E: 600 full-task trips). Each generation is a fresh brain taught only by its parent for M=300 trips. Run A (labels): the parent labels each observation with its greedy action via `step(teacher=label)`, 4 generations. Run B (grading): the child acts, the parent pays +1 when the child's move matches its own and -COST otherwise, 5 generations. Per generation: do = clean full-task score (30 greedy trips), plus cold label correctness on 4 on-path and 3 off-path states.
- Prediction: none written before running (the docstring poses the question only).
- Result:
  - Run A (labels): 0/20 passing founders produced a passing child (every g1 child scores do 0.00). Diagnosis (EXP-22-diag, per iter15): the child's cold per-state answers match the parent, but in a live trip it keeps pressing lamp/levers after the floor run; knowledge transferred, habit did not.
  - Run B (grading), passing lineages by generation g0 to g5: L 10, 10, 9, 8, 8, 8; E 10, 9, 8, 8, 8, 7 (of 12 each).
  - Passing parent to passing child: 83/88 (94% per generation). Failing parent to passing child: 0/32. Passing parent to child with an identical 7-state label policy: 82/88 (all three re-counted from the json files). The typical inherited flaw is interacting at the chest while already holding the key (off-path 0.67).
- Verdict: SUPPORTIVE for inheritance by grading (94% per generation, labels fail, flaws are copied, a lost skill is never re-invented); these stand. The sub-claim "doing != teaching measured: 5/88 passing parents produced failing children" is RETRACTED (iter16): EXP-23 showed child failure is set by the child's random init, not the parent.

## Reflection
- What it means: in this one small world, parent-grading is a working inheritance channel and label teaching is not (it shapes the per-state answers but not the reward-trained actor). Without selection a lineage keeps the skill at about 0.94 per generation, so selection or pricing is needed to stop decay. Whether teaching quality varies between parents was not shown here, and the 5 failures turned out to be bad students, not bad teachers.
- Process: (1) the over-reach: 5 failures out of 88 were read as "doing != teaching" without a control for the child's own seed; child seeds are fixed per (lineage, generation) slot, so a student-side cause was never ruled out. iter16 caught and retracted it. (2) Run A cost about 20 minutes per seed file before the label route was diagnosed; a one-lineage pilot would have shown the 0.00 children first. (3) The docstring still describes only the label method and GENS=4; run B (MODE=grade, 5 generations) was added later without updating it, which is version drift between script text and evidence. The script file on disk was also last modified at 02:21, after the run A outputs (02:17 to 02:18) and before run B (02:45), so run A was produced by an earlier version of the code that is not kept. (4) The do score is effectively binary per brain (1.00 or 0.00), and the on/off probes are 7 cold states, so policy comparison is coarse. (5) One world, one skill, 24 lineages; grading needs the parent queried live every step.
- Lesson: before attributing a child's failure to the teacher, vary the teacher while holding the student seed fixed (or vice versa); a single failure count cannot separate teacher from student.
- Next: rung 3, select parents by teaching score vs doing score (EXP-23), which produced the retraction.
