Protection policy: Codex structural review (2026-09-25)
Recorded by the orchestrator from Codex's final message (its sandbox is read-only). Verdict: FAIL.
The references are clean: 44 rules, 24 clauses, 21 cases, no duplicates and no orphans. All 5 child duty-to-report clauses (ON, BC, AB, CA-OTHER, US) contain "If a child is in immediate danger, call 911" and the agency placeholders.
| id | sev | location | problem | fix |
|---|---|---|---|---|
| F-01 | blocker | C-12-VA BC/AB/generic-refer | The vulnerable-adult clauses say "Regardless, our rule is: report … to the coordinator … and to police where a crime is suspected". Internal reporting can end up as the only instruction while the external adult-protection duty is unresolved. | Require contact with the adult-protection authority where it applies, say internal notice never replaces an external report, and block adoption until the contact is confirmed. |
| F-02 | major | test-cases globals vs TC-05/08/11/17/21 | The child-only global strings (911, agency) are required in adults-only cases. | Scope the globals to children/youth, and add vulnerable-adult invariants. |
| F-03 | major | C-11-DUTY-CA-OTHER / TC-12–14 | {{provincial_statute_name}} has no jurisdiction-to-value mapping. | Add a structured per-jurisdiction display value, or separate refer clauses. |
| F-04 | major | VA-ALL-01 → C-12-VA-* | The rule is recommended_practice, but the clauses are labelled REFER with no "recommended practice, not law" label. | Add the label. |
| F-05 | major | C-12-VA-ON | Labelled REFER, but it quotes a binding Ontario duty ("shall immediately report … to the Director"). | Make it a gated LAW clause, or remove the binding statement. |
| F-06 | major | C-11-DUTY-CA-OTHER / TC-12 | The refer variant injects the Nova Scotia "clergy must report" rule. | Remove it, or create a verified NS LAW variant. |
| F-07 | major | clause-library variables | No variable has validation metadata; screening_renewal_years and provincial_statute_name aren't declared; blank contacts render unusable instructions. | Define every variable, and block generation while required reporting contacts are blank. |
| F-08 | major | C-04-CODE-OF-CONDUCT | Grooming concerns go to the coordinator only. | Tell people to report externally immediately under sections 10–11; internal notice is in addition. |
| F-09 | major | C-09-ONLINE | "Show the coordinator the same day", with no external report. | Same fix as F-08. |
Missing-variable risks to guard against: church_name, province_or_state, policy_adoption_date, review_date, safeguarding_coordinator_name/contact, local_child_protection_agency_name/phone, local_police_non_emergency_phone, adult_protection_contact, waiting_period, screening_renewal_years ("Renew every years"), state_name, state_child_abuse_hotline, state_statute_lookup_url, provincial_statute_name ("that law is .").