spec   : /root/troupe-standup/wizard-work/null/schedkit/spec_schedkit.py
module : /root/troupe-standup/wizard-work/null/schedkit/schedkit.py
budget : 300s per run

CONTROL  unmutated module          rc=0   22.9s  124840 checks, 0 failed, 22.40s
BASELINE pre-fix module (v1)       CAUGHT   120.2s  did not finish in 120s
M1  CAUGHT  plan: waves not sorted (the pre-fix behaviour)           26.0s  D3 trial 1 perm 0
M2  CAUGHT  plan: wave depth uses max of deps, not 1+max              0.5s  (no failure line)
M3  SURVIVED find_cycles: cycles not canonically rotated
M4  CAUGHT  find_cycles: self-loops dropped                          25.9s  A10 self loop
M5  SURVIVED find_cycles: singleton SCCs never checked for self-loops
M6  CAUGHT  CIRCUIT: nodes never unblocked                           15.8s  C oracle chorded
M7  SURVIVED CIRCUIT: floor ignored (removed vertices stay visible)
M8  CAUGHT  topological_order: heap replaced by list pop             15.5s  I1 diamond topo
M9  SURVIVED plan_json: n_waves off by one
M10 CAUGHT  iter_plan: drops the last task of every wave              0.2s  (no failure line)
M11 CAUGHT  relabel: dependency ids not remapped                     11.4s  D3 trial 0 perm 0
M12 CAUGHT  PERF: Johnson's source-vertex skip removed (ring becomes O(k^2))   300s  wall-clock gate (no exit)

8/12 mutants caught, baseline caught, control passes

TEETH FAILED (4):
  - mutant 3 SURVIVED: find_cycles: cycles not canonically rotated
  - mutant 5 SURVIVED: find_cycles: singleton SCCs never checked for self-loops
  - mutant 7 SURVIVED: CIRCUIT: floor ignored (removed vertices stay visible)
  - mutant 9 SURVIVED: plan_json: n_waves off by one
