[
 {"assertion_id":"A001","description":"Hard-breach candidates are rejected by canonical pipeline","expected":"canonical_survival = false"},
 {"assertion_id":"A002","description":"Soft-penalty pipeline can rank a breach first","expected":"invalid_top_selection > 0"},
 {"assertion_id":"A003","description":"Soft deviations remain eligible","expected":"valid candidate is kept with lower local fit"},
 {"assertion_id":"A004","description":"Rejected counterexamples remain published","expected":"all 100 rows available"}
]
