The overnight R1 run (epic #375) closed 16 of 31 domains with
reduced-depth batched masters; the quality firewall was self-attested
and bent under controller context pressure. Post-hoc review caught it;
this change makes depth mechanically checkable so the failure class
cannot recur silently.
- scripts/research_gate_check.py: stage-file presence + substance
floors + adversarial provenance + R0 reconciliation + source
traceability; R1_FULL / R1_LITE grades, LITE requires registry
pre-declaration (silent scope reduction = gate drift).
- research_standard.md: five binding rules — mechanical gate,
breadth-before-depth as the only legal trade, declared grades,
adversarial independence, depth checkpointing between domains.
- domain_registry.md: stale statuses corrected, P–AE marked R1_LITE
retroactively, 39 grandfathered findings across 8 pre-gate domains
recorded (C-cognitive-architectures passes R1_FULL clean as the
calibration domain).
Version intent: patch (tooling + research governance, no runtime
behavior change). Fixes#409.