Gated four-step mortgage compliance preflight. Fetches version-pinned Reg Z thresholds, verifies TRID APR accuracy (exits immediately on understatement violation), checks QM points-and-fees (exits on failure), then classifies QM APR-APOR spread. The first live OpenChainGraph chain to use §21.4 decision gates — early exit prevents unnecessary downstream calls when a blocking violation is detected.
skipped_by_gate in the run artifact.lookup_reg_z_thresholds{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "lookup_reg_z_thresholds",
"arguments": {
"table": "qm_points_fees",
"year": 2026
}
},
"id": 1
}
verify_trid_apr_accuracy{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "verify_trid_apr_accuracy",
"arguments": {
"disclosed_apr_pct": 6.875,
"actual_apr_pct": 6.82
}
},
"id": 2
}
check_qm_points_and_fees{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "check_qm_points_and_fees",
"arguments": {
"loan_amount": 450000,
"total_points_and_fees": 12000,
"table_year": 2026
}
},
"id": 3
}
classify_qm_apr_apor_spread{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "classify_qm_apr_apor_spread",
"arguments": {
"apr_pct": 6.875,
"apor_pct": 5.0,
"lien_type": "first",
"loan_type": "fixed",
"qm_fees_passed": true
}
},
"id": 4
}
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this whole workflow on the server and check one field that answers a real question.
Question: Before this file is priced as a QM, do the points and fees clear the 2026 cap?
Run the AINumbers MCP tool `run_chain` with {"chain":"mortgage-compliance-preflight"} and read `art-218-qm-points-and-fees.pass`.
Re-run with `inputs` for `art-218-qm-points-and-fees`, reusing the values that result echoed, with `points_and_fees` set to 15000. Compare the same field.
Verify: call `verify_execution_hash` (https://mcp.ainumbers.co/mcp) with `claimed_hash` set to `composite_execution_hash` and the full `composite_artifact`.
Ledger, for a human re-check: https://ledger.ainumbers.co/
PII rule: send synthetic or anonymised inputs only. The MCP server runs these kernels and logs no payloads.
Chain page: https://ainumbers.co/chaingraph/chains/mortgage-compliance-preflight.html