External Suite Protocol
June 26, 2026 ยท View on GitHub
Use this protocol when adding blinded or externally authored PolicyStrata evidence.
Roles
- Detector owner: maintains PolicyStrata code, mutation operators, scanner, and docs.
- Suite author: creates cases after a detector freeze or without tuning against detector output.
- Reviewer: checks that labels, fixtures, and claims match the evidence boundary.
One person may play multiple roles for internal engineering work, but paper claims should identify when no independent suite author was involved.
Freeze
Before collecting blinded evidence, record:
- PolicyStrata git SHA;
- mutation operator IDs;
- scanner config schema version;
- domain policy version;
- allowed adapters;
- scorer rules;
- whether the suite author can see detector output.
After freeze, detector changes that improve results should trigger a new evidence snapshot rather than silently replacing the original result.
Static PolicyStrata suite files should record the freeze boundary in top-level suite_metadata:
suite: external_blinded
suite_metadata:
provenance: externally_authored
evidence_level: blinded_suite
detector_frozen: true
detector_freeze_id: ps-freeze-YYYY-MM-DD
authored_after_detector_freeze: true
notes:
- externally authored after the detector freeze
The runner copies this block into metadata.json; policystrata evidence reports the evidence
level, provenance, and detector-freeze status beside the suite score.
Suite Contents
Each case should include:
- domain or adapter source;
- principal and policy context;
- semantic IR or trace input;
- expected policy outcome;
- expected witness class when applicable;
- expected localized surface when known;
- regression case label:
fail_to_pass,pass_to_pass,contain_to_contain,deny_to_deny, orallow_to_allow; - whether labels were externally authored, detector-frozen, reconstructed, or synthetic.
Do not put private customer data in public fixtures. Sanitize rows and preserve only the policy distinctions required to reproduce the witness.
Reporting
Report blinded suites separately from public/generated suites:
- total cases;
- killed/caught cases;
- survived cases;
- equivalent or stillborn cases;
- false positives on
pass_to_passandallow_to_allow; - containment rate for
contain_to_contain; - evidence levels and adapter coverage.
Do not merge externally authored results into the deterministic artifact-suite score. Report them as their own evidence level with separate provenance.