The Agentic Bank

Grounds

⬡ Adverse Action Agent Consumer lending

Derives the specific principal reasons for a denial only from the decision's own factors, grounded in real Reg B 1002.9 and the FCRA score disclosure.

Runs on a decline or counteroffer. Produces what the applicant is legally owed: the specific reasons, for the disclosure agent to render.

How it runs
Grounds agent anatomy Grounds: system prompt and case context flow through the model plane into the agent core, which calls 3 sandboxed in-process tools across the tool plane, then commits a schema-validated outcome to the case journal across the data plane. The three governance seams are highlighted. system prompt + case context methodology · risk posture · the case model plane Grounds Claude Sonnet · ≤14 turns sandboxed · no built-in tools tools 3 in-process MCP tools 2 read · 1 commit 12 CFR 1002.9 tool plane record_reasons() AdverseAction · schema-validated structured outcome, type-checked invalid output is rejected data plane case journal gated mock · nothing real is committed governance seam — where a layer would inspect, redact, or block (shown ungoverned)

Methodology

  1. 1 Confirm the decision is a non-approval and note its credit factors and score band.
  2. 2 Retrieve 12 CFR 1002.9 so the reasons meet the Reg B standard of specific principal reasons.
  3. 3 Map decision.factors to specific principal reasons in plain language. Each must trace to a factor that actually drove the decision; do not invent, soften, or pad.
  4. 4 If the decision was score-based, pull the credit report and include the FCRA score disclosure (the score and the key adverse factors).
  5. 5 Cite the basis: 12 CFR 1002.9, and FCRA 15 U.S.C. 1681m for the score disclosure.

Sandboxed tools

In-process MCP tools only. Built-in tools disabled, settingSources [], permissionMode bypassPermissions. The only ground truth is the tools.

get_credit_report read

Grounds the credit score and the bureau's key adverse factors for the FCRA disclosure.

retrieve_reg read 12 CFR 1002.9

Retrieves Reg B 12 CFR 1002.9 to ground the specific-reasons standard.

record_reasons commit

Commits the principal reasons + score disclosure. Called exactly once.

Outcome contract

The action taken, the specific Reg B principal reasons (each derived only from the decision's factors), the FCRA score disclosure when score-based, and the citations.

the validated schema (AdverseAction)
type AdverseAction = {
  actionTaken: "decline" | "counteroffer"
  principalReasons: string[]       // specific, only from decision.factors
  scoreDisclosure?: { score: number, keyFactors: string[] }  // FCRA
  basis: string[]                  // "12 CFR 1002.9", "FCRA 15 U.S.C. 1681m"
}

Grounding

real Reg B 12 CFR 1002.9 + FCRA 1681m. The notification / specific-reasons standard and the credit-score disclosure, retrieved from the vendored CFR.
synthetic The decision's factors. The only source of reasons. A reason that does not trace to a factor that drove the decision may not be stated.

Governance seams

The three trust boundaries a runtime governance layer clamps onto. Shown here ungoverned, so you can see exactly what would be inspected, redacted, or blocked.

Model plane
context in

The Grounds methodology plus the decision (its factors, score band, policy basis) and the retrieved Reg B text.

governor → Pin the reasons to the decision's factors; reject any reason without a source.

Tool plane
report + rule

The get_credit_report and the retrieve_reg (1002.9) calls.

governor → Require the rule lookup before the reasons are trusted as Reg B-compliant.

Data plane
the commit

The recorded principal reasons and score disclosure written to the case journal.

governor → Block a commit whose reasons do not map to the decision's factors.

The legal standard is specificity: 'credit score below the program minimum' is a reason, 'did not meet our standards' is not. Grounds may not invent or soften a reason, and a prohibited basis is a defect to flag, never a reason to state.

Evals & guardrails

2 / 2 golden Graded on reason specificity, traceability to the decision's factors, and the citations.
  • Score-based decline. Includes the FCRA score disclosure with the key adverse factors and cites 1681m.
  • No invented reasons. Every principal reason maps to a factor that actually drove the decision.

Orchestration

Specialist reason derivation
  • Fed by the decision on a decline / counteroffer
  • Reasons handed to Plainspeak
Spec card
The building view, on its desk →
Run it live · local
Watch a real run in the console →