By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Mutation redundancy: kill-matrix via structured per-test output (P3) Add the accurate 'kill' basis. New sydtest child mode --mutation-kill-row-one runs one mutation's covering tests with the mutation active and within-set fail-fast OFF, walks the result forest to record each covering test's pass/fail, and writes a TestKillRow. Canonical TestIds come from flattening the full definition forest and positionally zipping with the result leaves (filter + synchronous run preserve source order; randomisation disabled), so ids match the coverage phase exactly. Driver RedundancyKill spawns one kill-row child per (mutation, covering suite) — the same run count as the mutation phase, not one per (test,mutation) pair — aggregates the rows into the per-test killset relation (buildKillRelations), and runs analyzeRedundancy BasisKill. runRedundancy now dispatches coverage/kill and shares output emission. Tests: TestKillRow gen/json roundtrips, buildKillRelations unit test. Kill-row child validated end-to-end against the example suite's real forest (correct canonical TestIds, correct alignment).