{
  "lab_id":"LAB-006","title":"Hard Filter vs Soft Score","version":"1.0","date":"2026-08-24",
  "related_modules":["Compo 7.01","Compo 7.03","Compo 7.06"],
  "research_question":"Can a soft numeric penalty allow a hard-invalid candidate to outrank valid candidates?",
  "hypothesis":"Treating hard-safe breaches as numeric penalties can select an invalid candidate; canonical hard filtering must reject the candidate before soft scoring.",
  "independent_variables":["hard_breach","soft_local_fit"],"controlled_variables":["candidate set","penalty formula","seed"],
  "dependent_metrics":["penalty_score","canonical_survival","invalid_top_selection"],
  "dataset":{"type":"SYNTHETIC","case_count":100,"seed":24082026},
  "canonical_impact":{"change_required":"NO","affected_modules":[],"recommendations":["Keep hard filter before soft score; retain rejected counterexamples."]},
  "reproducibility":{"deterministic":true,"seeded":true,"environment":"PowerShell 7+","command":"pwsh -File run_lab_006.ps1"}
}
