Four-step per-template preflight for the Nov 16 2026 ISO 20022 structured-address harmonization deadline: CBPR+ address lint, purpose-code requirement check, LEI payment-binding lint, and MT-MX translation fidelity score. PASS only when all four checks pass; FAIL surfaces the failing check(s).
Each step's receipt entry carries that kernel's existing proof status honestly — this chain composes only already-shipped, already-proven kernels; there is no new groth16 proving step for this composition. Every receipt records which template/version was checked and its per-check PASS/FAIL breakdown; because each receipt is self-contained (no state store), drift toward compliance is a comparison across receipts, done by the reader on re-runs.
lint_cbpr_structured_address{
"jsonrpc": "2.0",
"method": "tools/call",
"params": { "name": "lint_cbpr_structured_address", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001", "template_version": "1.0" } },
"id": 1
}
check_purpose_code_requirement{
"jsonrpc": "2.0",
"method": "tools/call",
"params": { "name": "check_purpose_code_requirement", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001" } },
"id": 2
}
lint_lei_payment_binding{
"jsonrpc": "2.0",
"method": "tools/call",
"params": { "name": "lint_lei_payment_binding", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001" } },
"id": 3
}
score_mt_mx_translation_fidelity{
"jsonrpc": "2.0",
"method": "tools/call",
"params": { "name": "score_mt_mx_translation_fidelity", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001" } },
"id": 4
}