Gated two-step chain for adverse action notice compliance. Step 1 builds the notice skeleton from SHAP-ranked principal-factor codes (Reg B §1002.9, CFPB Circulars 2022-03 and 2023-03, FCRA §615(a) rights). A §21.4 gate checks action_taken: if the application was approved, no notice is required and the chain exits immediately. For denied, counteroffer, or incomplete applications, Step 2 validates the built notice for completeness, prohibited vague codes, factor count, and FCRA disclosure requirements.
build_adverse_action_notice{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "build_adverse_action_notice",
"arguments": {
"action_taken": "denied",
"creditor_name": "Acme Bank",
"notice_date": "2026-07-04",
"factor_codes": [
{"rank": 1, "code": "08", "source": "fico", "shap_value": -0.42},
{"rank": 2, "code": "14", "source": "fico", "shap_value": -0.31},
{"rank": 3, "code": "23", "source": "fico", "shap_value": -0.18}
],
"credit_score_used": true,
"credit_score_value": 618,
"credit_score_model": "FICO Score 8",
"credit_score_range_min": 300,
"credit_score_range_max": 850
}
},
"id": 1
}
validate_adverse_action_notice{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "validate_adverse_action_notice",
"arguments": {
"action_taken": "denied",
"reason_code_source": "fico",
"reason_codes": ["08", "14", "23"],
"has_creditor_name": true,
"has_date": true,
"has_applicant_right_to_obtain_copy": true,
"has_ecoa_notice": true,
"credit_score_used": true,
"has_credit_score_disclosure": true
}
},
"id": 2
}