financial-services Documentation

Python repository by @anthropics. AI agent rules & system prompts with 34k stars.

34,026 stars Python Python 1 file ยท ~7,784 tokens
RAW Doc

File: README.md

Claude for Financial Services

Reference agents, skills, and data connectors for the financial-services workflows we see most โ€” investment banking, equity research, private equity, and wealth management.

Everything here is available two ways from one source: install it as a Claude Cowork plugin, or deploy it through the Claude Managed Agents API behind your own workflow engine. Same system prompt, same skills โ€” you choose where it runs.

[!IMPORTANT]
Nothing in this repository constitutes investment, legal, tax, or accounting advice. These agents draft analyst work product โ€” models, memos, research notes, reconciliations โ€” for review by a qualified professional. They do not make investment recommendations, execute transactions, bind risk, post to a ledger, or approve onboarding; every output is staged for human sign-off. You are responsible for verifying outputs and for compliance with the laws and regulations that apply to your firm.

What's in the repo:

  • Agents โ€” named, end-to-end workflow agents (Pitch Agent, Market Researcher, GL Reconciler, โ€ฆ). Each ships as a Cowork plugin and as a Claude Managed Agent template you deploy via /v1/agents.
  • Vertical plugins โ€” the underlying skills, slash commands, and data connectors, bundled by FSI vertical. Install these on their own if you just want /comps, /dcf, /earnings and the connectors without a full agent.

Agents

Each agent is named for the workflow it runs. They're starting points: install the ones that match your work, then tune the prompts, skills, and connectors to how your firm does it.

Each agent plugin is self-contained โ€” it bundles the skills it uses, so installing the agent is all you need.

Function Agent What it does
Coverage & advisory Pitch Agent Comps, precedents, LBO โ†’ branded pitch deck, end to end
Meeting Prep Agent Briefing pack before every client meeting
Research & modeling Market Researcher Sector or theme โ†’ industry overview, competitive landscape, peer comps, ideas shortlist
Earnings Reviewer Earnings call + filings โ†’ model update โ†’ note draft
Model Builder DCF, LBO, 3-statement, comps โ€” live in Excel
Fund admin & finance ops Valuation Reviewer Ingests GP packages, runs valuation template, stages LP reporting
GL Reconciler Finds breaks, traces root cause, routes for sign-off
Month-End Closer Accruals, roll-forwards, variance commentary
Statement Auditor Audits LP statements before distribution
Operations & onboarding KYC Screener Parses onboarding docs, runs the rules engine, flags gaps

For Managed Agent deployment โ€” agent.yaml, leaf-worker subagents, steering-event examples, and per-agent security notes โ€” see managed-agent-cookbooks/.

Repository Layout

text
plugins/
  agent-plugins/               # Named agents โ€” one self-contained plugin each
  vertical-plugins/            # Skill + command bundles by FSI vertical, plus MCP connectors
  partner-built/               # Partner-authored plugins (LSEG, S&P Global)
managed-agent-cookbooks/       # Claude Managed Agent cookbooks โ€” one dir per agent
claude-for-msft-365-install/   # Admin tooling to provision the Claude Microsoft 365 add-in
scripts/                       # deploy-managed-agent.sh ยท check.py ยท validate.py ยท orchestrate.py ยท sync-agent-skills.py

Getting Started

Cowork

In Cowork, open Settings โ†’ Plugins โ†’ Add plugin and either:

  • Paste this repo URL โ€” https://github.com/anthropics/financial-services โ€” then pick the agents and verticals you want from the marketplace list, or
  • Upload a zip โ€” zip any directory under plugins/ (e.g. plugins/agent-plugins/pitch-agent/) and drop it in.

Claude Code

bash
# Add the marketplace
claude plugin marketplace add anthropics/financial-services

# Core skills + connectors (install first)
claude plugin install financial-analysis@claude-for-financial-services

# Named agents โ€” pick the ones you want
claude plugin install pitch-agent@claude-for-financial-services
claude plugin install gl-reconciler@claude-for-financial-services
claude plugin install market-researcher@claude-for-financial-services

# Vertical skill bundles
claude plugin install investment-banking@claude-for-financial-services
claude plugin install equity-research@claude-for-financial-services

Once installed, agents appear in Cowork dispatch, skills fire automatically when relevant, and slash commands are available in your session (/comps, /dcf, /earnings, /ic-memo, โ€ฆ).

Claude Managed Agents

bash
export ANTHROPIC_API_KEY=sk-ant-...
scripts/deploy-managed-agent.sh gl-reconciler

Each template under managed-agent-cookbooks/ references the same system prompt and skills as its plugin counterpart. The deploy script resolves file references, uploads skills, creates leaf-worker subagents, and POSTs the orchestrator to /v1/agents. See scripts/orchestrate.py for a reference event loop that routes handoff_request events between agents via your own orchestration layer.

Research Preview: subagent delegation (callable_agents) is a preview capability. See per-agent READMEs for security and handoff guidance.

How It Fits Together

What it is Where it lives
Agents Self-contained plugins that own a workflow end to end โ€” system prompt plus the skills it uses. Cowork and the Managed Agent wrapper both reference the same directory. plugins/agent-plugins/<slug>/
Skills Domain expertise, conventions, and step-by-step methods Claude draws on automatically when relevant. Authored once in the verticals; each agent bundles a synced copy of the ones it needs. plugins/vertical-plugins/<vertical>/skills/ (source) ยท plugins/agent-plugins/<slug>/skills/ (bundled)
Commands Slash actions you trigger explicitly (/comps, /earnings, /ic-memo). plugins/vertical-plugins/<vertical>/commands/
Connectors MCP servers that wire Claude to your data โ€” terminals, research platforms, document stores. plugins/vertical-plugins/financial-analysis/.mcp.json
Managed-agent wrappers agent.yaml + depth-1 subagents + steering examples for headless deployment. managed-agent-cookbooks/<slug>/

Everything is file-based โ€” markdown and JSON, no build step.

Vertical Plugins

Start with financial-analysis โ€” it carries the shared modeling skills and all data connectors. Add verticals for the workflows you need.

Plugin What it adds
financial-analysis (core) Comps, DCF, LBO, 3-statement, deck QC, Excel audit. All 11 data connectors.
investment-banking CIMs, teasers, process letters, buyer lists, merger models, deal tracking.
equity-research Earnings notes, initiations, model updates, thesis and catalyst tracking.
private-equity Sourcing, screening, diligence checklists, IC memos, portfolio monitoring.
wealth-management Client reviews, financial plans, rebalancing, reporting, TLH.
fund-admin GL recon, break tracing, accruals, roll-forwards, variance commentary, NAV tie-out.
operations KYC document parsing and rules-grid evaluation.
lseg (partner) Bond RV, swap curves, FX carry, options vol, macro-rates monitoring on LSEG data.
sp-global (partner) Tear sheets, earnings previews, funding digests on S&P Capital IQ.

MCP Integrations

All connectors are centralized in the financial-analysis core plugin and shared across the rest.

Provider URL
Daloopa https://mcp.daloopa.com/server/mcp
Morningstar https://mcp.morningstar.com/mcp
S&P Global https://kfinance.kensho.com/integrations/mcp
FactSet https://mcp.factset.com/mcp
Moody's https://api.moodys.com/genai-ready-data/m1/mcp
MT Newswires https://vast-mcp.blueskyapi.com/mtnewswires
Aiera https://mcp-pub.aiera.com
LSEG https://api.analytics.lseg.com/lfa/mcp
PitchBook https://premium.mcp.pitchbook.com/mcp
Chronograph https://ai.chronograph.pe/mcp
Egnyte https://mcp-server.egnyte.com/mcp
Box https://mcp.box.com

MCP access may require a subscription or API key from the provider.

Claude for Microsoft 365 โ€” Install Tooling

If your firm runs Claude inside Excel, PowerPoint, Word, and Outlook via the Microsoft 365 add-in, claude-for-msft-365-install/ is the admin tooling to provision it against your own cloud โ€” Vertex AI, Bedrock, or an internal LLM gateway โ€” instead of Anthropic's API.

It's a Claude Code plugin (not a Cowork plugin) that walks an IT admin through generating the customized add-in manifest, granting Azure admin consent, and writing per-user routing config via Microsoft Graph. Install with:

bash
claude plugin install claude-for-msft-365-install@claude-for-financial-services
/claude-for-msft-365-install:setup

This is separate from the agents and vertical plugins above โ€” it's the on-ramp that gets the add-in deployed in a tenant, after which the agents and skills here are what runs inside it.

Making It Yours

These are reference templates โ€” they get better when you tune them to how your firm works.

  • Swap connectors โ€” point .mcp.json at your data providers and internal systems.
  • Add firm context โ€” drop your terminology, processes, and formatting standards into skill files.
  • Bring your templates โ€” /ppt-template teaches Claude your branded PowerPoint layouts.
  • Adjust agent scope โ€” edit agents/<slug>.md to match how your team actually runs the workflow.
  • Add your own โ€” copy the structure for workflows we haven't covered.

Skill & Command Reference

financial-analysis โ€” core modeling, Excel, deck QC

Skill Command Description
comps-analysis /comps Comparable company analysis with trading multiples
dcf-model /dcf DCF valuation with WACC and sensitivity analysis
lbo-model /lbo Leveraged buyout model
3-statement-model /3-statement-model Populate 3-statement financial model templates
audit-xls /debug-model Excel model audit โ€” formula tracing, hardcode detection, balance checks
clean-data-xls โ€” Normalize and clean tabular data in Excel
deck-refresh โ€” Re-link and refresh embedded charts/tables across a deck
competitive-analysis /competitive-analysis Competitive landscape and market positioning
ib-check-deck โ€” QC presentations for errors and consistency
pptx-author โ€” Produce a .pptx file headlessly (Managed Agent mode)
xlsx-author โ€” Produce a .xlsx file headlessly (Managed Agent mode)
ppt-template-creator /ppt-template Create reusable PPT template skills
skill-creator โ€” Guide for creating new skills

investment-banking โ€” deal materials and execution

Skill Command Description
strip-profile /one-pager One-page company profiles for pitch books
pitch-deck โ€” Populate pitch deck templates with data
datapack-builder โ€” Build data packs from CIMs and filings
cim-builder /cim Draft Confidential Information Memorandums
teaser /teaser Anonymous one-page company teasers
buyer-list /buyer-list Strategic and financial buyer universe
merger-model /merger-model Accretion/dilution M&A analysis
process-letter /process-letter Bid instructions and process correspondence
deal-tracker /deal-tracker Track live deals, milestones, and action items

equity-research โ€” coverage and publishing

Skill Command Description
earnings-analysis /earnings Post-earnings quarterly update reports
earnings-preview /earnings-preview Pre-earnings scenario analysis and key metrics
initiating-coverage /initiate Institutional-quality initiation reports
model-update /model-update Update financial models with new data
morning-note /morning-note Morning meeting notes and trade ideas
sector-overview /sector Industry landscape and thematic reports
thesis-tracker /thesis Maintain and update investment theses
catalyst-calendar /catalysts Track upcoming catalysts across coverage
idea-generation /screen Stock screening and idea sourcing

private-equity โ€” sourcing through portfolio ops

Skill Command Description
deal-sourcing /source Discover companies, check CRM, draft founder outreach
deal-screening /screen-deal Quick pass/fail on inbound CIMs and teasers
dd-checklist /dd-checklist Diligence checklists by workstream
dd-meeting-prep /dd-prep Prep for management presentations and expert calls
unit-economics /unit-economics ARR cohorts, LTV/CAC, net retention, revenue quality
returns-analysis /returns IRR/MOIC sensitivity tables
ic-memo /ic-memo Investment committee memo drafting
portfolio-monitoring /portfolio Track portfolio company KPIs and variances
value-creation-plan /value-creation Post-close 100-day plans and EBITDA bridges
ai-readiness /ai-readiness Assess a portfolio company's AI readiness

wealth-management โ€” advisor workflows

Skill Command Description
client-review /client-review Prep for client meetings with performance and talking points
financial-plan /financial-plan Retirement, education, estate, and cash-flow projections
portfolio-rebalance /rebalance Allocation drift analysis and tax-aware rebalancing
client-report /client-report Client-facing performance reports
investment-proposal /proposal Proposals for prospective clients
tax-loss-harvesting /tlh Identify TLH opportunities and manage wash sales

Contributing

Everything here is markdown and YAML. Fork, edit, PR. For new content:

  • New skill โ†’ add it under plugins/vertical-plugins/<vertical>/skills/, then run python3 scripts/sync-agent-skills.py to propagate to any agent that bundles it.
  • New agent โ†’ plugins/agent-plugins/<slug>/ (with agents/<slug>.md + skills/) and a matching managed-agent-cookbooks/<slug>/.
  • Run python3 scripts/check.py before pushing โ€” it lints every manifest, verifies all cross-file references resolve, and fails if any bundled skill has drifted from its vertical source.

License

Apache License 2.0


File: claude-for-msft-365-install/examples/python-bootstrap/README.md

Bootstrap endpoint โ€” Python reference

A minimal FastAPI implementation of the Claude in Office /bootstrap endpoint.
It validates the caller's Entra ID token and returns per-employee skills and
mcp_servers based on a simple first-match RBAC table.

Run against your real Entra tenant

bash
pip install -r requirements.txt
# Find your tenant ID:
python get_tenant_id.py [email protected]
export TENANT_ID=<your-tenant-guid>
python app.py

Run locally with a fake token

bash
pip install -r requirements.txt
export TENANT_ID=dev-tenant
TOKEN=$(python mint_dev_token.py --oid alice --group investment-banking)
DEV_JWKS_PATH=dev_jwks.json python app.py &
curl -H "Authorization: Bearer $TOKEN" \
     -H "X-Claude-User-Agent: claude-word/1.0.0" \
     http://127.0.0.1:8080/bootstrap

Customize

Everything you need to change lives in config.py โ€” app.py should not need edits.

  • Edit SKILLS and MCP_SERVERS โ€” the full catalog you can hand out.
  • Edit RULES โ€” first matching rule wins; the empty when: {} at the bottom is the default.
  • Replace the placeholder group/user names in RULES with your real Entra Object IDs (GUIDs).
  • Group membership is read from the token's groups claim. If your tenant
    doesn't emit it, swap the groups = ... line in app.py for a lookup against
    your internal directory.
  • Rules can be scoped per Office host with "app": "word" | "excel" | "powerpoint",
    parsed from the X-Claude-User-Agent header the add-in sends.
  • The groups claim is not in Entra tokens by default. Enable it under
    App registration โ†’ Token configuration โ†’ Add groups claim for your app.
  • Swap the in-memory RULES for your real source of truth (DB, config service, etc.).

Security

DEV_JWKS_PATH lets the server trust a self-issued signing key instead of
Microsoft's. It refuses to start unless bound to 127.0.0.1. Never set it
in a deployed environment.


File: claude-for-msft-365-install/README.md

Claude for Office โ€” Direct Cloud Setup

Admin tooling for configuring the Claude Office add-in to call your own cloud
(Vertex AI, Bedrock, or an LLM gateway) instead of Anthropic's API.

Install

bash
claude plugin marketplace add anthropics/financial-services
claude plugin install claude-for-msft-365-install@claude-for-financial-services

Then inside the session: /claude-for-msft-365-install:setup

Update

Pull the latest version of the plugin:

bash
claude plugin update claude-for-msft-365-install@claude-for-financial-services

Restart the session to apply. Re-run /claude-for-msft-365-install:setup only
if you need to regenerate the manifest with new options.

Bootstrap

For per-user MCP servers, skills, or dynamic config, host a bootstrap endpoint
and point the add-in at it:

bash
claude plugin marketplace add anthropics/financial-services   # if not already added
claude plugin install claude-for-msft-365-install@claude-for-financial-services

Then inside the session: /claude-for-msft-365-install:bootstrap

Commands

Command What it does
/claude-for-msft-365-install:setup Interactive wizard โ€” provisions cloud resources, admin consent, writes manifest
/claude-for-msft-365-install:manifest Generate the customized add-in manifest XML
/claude-for-msft-365-install:consent Azure admin consent URL for the add-in's app registration
/claude-for-msft-365-install:update-user-attrs Write per-user config via Microsoft Graph extension attributes
/claude-for-msft-365-install:bootstrap Build the bootstrap endpoint โ€” per-user MCP servers, skills, dynamic config
/claude-for-msft-365-install:debug Diagnose deployment issues โ€” stale config, connect failures, missing add-in
/claude-for-msft-365-install:export-data Export a copy of a user's chat history, skills, and MCP registrations

Exporting user data

Chat history, uploaded skills, MCP registrations, memory, and settings live in browser
storage on the user's own machine โ€” there is no server-side copy.

The export scripts are read only: they read Office's storage and write
only to the folder you name. They never modify, move, or delete anything in
Office. With no arguments they just print what they found.

bash
./scripts/export-addin-data.sh                       # macOS: list
./scripts/export-addin-data.sh --out ~/claude-export
powershell
.\scripts\export-addin-data.ps1                      # Windows: list
.\scripts\export-addin-data.ps1 -Out C:\claude-export

Changing the add-in does not move or delete the data. Storage is keyed by
the origin the add-in is served from, not by add-in ID, so replacing the
manifest, reinstalling, or moving between a sideloaded manifest and the store
listing all leave it in place. Export before a machine is rebuilt, or โ€” on
Windows especially โ€” before anyone clears the Office add-in cache, since
Wef holds the add-in's storage as well as the manifest cache.

See /claude-for-msft-365-install:export-data for the exact on-disk paths and
what to check when history looks missing.


File: managed-agent-cookbooks/pitch-agent/README.md

Pitch Agent โ€” managed-agent template

Overview

Comps, precedents, LBO โ†’ branded pitch deck, end to end. Same source as the pitch-agent Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export CAPIQ_MCP_URL=... DALOOPA_MCP_URL=...
../../scripts/deploy-managed-agent.sh pitch-agent

Steering events

See steering-examples.json.

Security & handoffs

Task-decomposition split โ€” less about untrusted inputs (data comes from CapIQ/Daloopa MCPs), more about parallelism and artifact isolation. Exactly one worker holds Write:

Leaf Tools Connectors
researcher Read, Grep CapIQ, Daloopa (read-only)
modeler Read, Bash (sandboxed) CapIQ, Daloopa (read-only)
deck-writer (Write-holder) Read, Write, Edit None

Artifacts land in ./out/pitch-<target>.pptx and ./out/model.xlsx via pptx-author / xlsx-author.

Handoff: to rebuild the model after a thesis change, the orchestrator emits a handoff_request for model-builder; scripts/orchestrate.py (or your workflow engine) routes it as a new steering event. See the script for the allowlist + payload-validation pattern.


File: managed-agent-cookbooks/month-end-closer/README.md

Month-End Closer โ€” managed-agent template

Overview

Accruals, roll-forwards, variance commentary. Same source as the month-end-closer Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export GL_MCP_URL=...
../../scripts/deploy-managed-agent.sh month-end-closer

Steering events

See steering-examples.json.

Security & handoffs

Supporting invoices and vendor statements are untrusted. Three-tier isolation:

Tier Touches untrusted docs? Tools Connectors
ledger-reader Yes Read, Grep only None
rollforward / Orchestrator No Read, Grep, Glob, Agent internal-gl (read-only)
poster (Write-holder) No Read, Write, Edit None

poster produces ./out/close-package-<entity>-.xlsx. JE drafts are staged, not posted to the GL.

Handoff: receives handoff_request events from gl-reconciler with verified breaks to fold into close commentary.


File: managed-agent-cookbooks/model-builder/README.md

Model Builder โ€” managed-agent template

Overview

DCF, LBO, 3-statement, comps โ€” built as a file artifact. Same source as the model-builder Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export CAPIQ_MCP_URL=... DALOOPA_MCP_URL=...
../../scripts/deploy-managed-agent.sh model-builder

Steering events

See steering-examples.json.

Security & handoffs

Task-decomposition split โ€” inputs come from trusted MCPs, so the split is about artifact isolation and re-verification. Exactly one worker holds Write:

Leaf Tools Connectors
data-puller Read, Grep CapIQ, Daloopa (read-only)
builder (Write-holder) Read, Write, Edit, Bash (sandboxed) None
auditor Read, Grep None

auditor re-checks ties and balances after builder writes ./out/model.xlsx.

Handoff: when invoked from earnings-reviewer or pitch-agent, the calling agent's handoff_request is routed here by scripts/orchestrate.py.


File: managed-agent-cookbooks/meeting-prep-agent/README.md

Meeting Prep Agent โ€” managed-agent template

Overview

Briefing pack before every client meeting. Same source as the meeting-prep-agent Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export CRM_MCP_URL=... CAPIQ_MCP_URL=...
../../scripts/deploy-managed-agent.sh meeting-prep-agent

Steering events

See steering-examples.json. Typically kicked from a calendar event by your workflow engine.

Security & handoffs

Client-provided documents and inbound emails are untrusted. Three-tier split:

Tier Touches untrusted docs? Tools Connectors
profiler No Read, Grep CRM, CapIQ (read-only)
news-reader Yes Read, Grep only None
pack-writer (Write-holder) No Read, Write, Edit None

pack-writer produces ./out/briefing-<client>.pptx; it never opens client-provided content directly.

Not guaranteed: this pack is for the advisor, not the client. No client-facing send.


File: managed-agent-cookbooks/market-researcher/README.md

Market Researcher โ€” managed-agent template

Overview

Sector or theme โ†’ industry overview โ†’ competitive landscape โ†’ peer comps โ†’ ideas shortlist โ†’ research note. Same source as the market-researcher Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export CAPIQ_MCP_URL=... FACTSET_MCP_URL=...
../../scripts/deploy-managed-agent.sh market-researcher

Steering events

See steering-examples.json. Kick from a research-queue event or fan out across a coverage map.

Security & handoffs

Third-party reports and issuer materials are untrusted. Three-tier isolation:

Tier Touches untrusted docs? Tools Connectors
sector-reader Yes Read, Grep only None
comps-spreader / Orchestrator No Read, Grep, Glob, Agent CapIQ, FactSet (read-only)
note-writer (Write-holder) No Read, Write, Edit None

sector-reader returns length-capped, schema-validated JSON. note-writer produces ./out/primer-<sector>.docx (and .pptx if slides requested).

Handoff: to model a single name surfaced in the ideas shortlist, emit a handoff_request for model-builder; scripts/orchestrate.py routes it as a new steering event.


File: managed-agent-cookbooks/kyc-screener/README.md

KYC Screener โ€” managed-agent template

Overview

Parses onboarding docs, runs the rules engine, screens sanctions/PEP, flags gaps. Same source as the kyc-screener Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export SCREENING_MCP_URL=...
../../scripts/deploy-managed-agent.sh kyc-screener

Steering events

See steering-examples.json.

Security & handoffs

Onboarding documents are untrusted. Three-tier isolation:

Tier Touches untrusted docs? Tools Connectors
doc-reader Yes Read, Grep only None
rules-engine / Orchestrator No Read, Grep, Glob, Agent screening (read-only)
escalator (Write-holder) No Read, Write, Edit None

doc-reader returns length-capped, schema-validated JSON. escalator produces ./out/escalation-.xlsx.

Not guaranteed: this agent recommends a risk rating; the compliance officer decides.


File: managed-agent-cookbooks/gl-reconciler/README.md

GL Reconciler โ€” managed-agent template

Overview

Finds breaks between general ledger and subledger for a trade date and set of asset classes, traces root cause, and produces an exception report for controller sign-off.

Same source as the gl-reconciler Cowork plugin โ€” this directory is the Managed Agent cookbook for POST /v1/agents.

Deploy

bash
export ANTHROPIC_API_KEY=sk-ant-...
export GL_MCP_URL=...           # read-only GL MCP
export SUBLEDGER_MCP_URL=...    # read-only subledger MCP
../../scripts/deploy-managed-agent.sh gl-reconciler

Steering events

See steering-examples.json. Kick a session with a trade date and asset-class list; follow-up events can re-trace a single break.

Security & handoffs

This agent reads counterparty/custodian statements โ€” documents authored by outsiders that may carry adversarial instructions. The template is structured so a payload in one of those documents cannot reach a shell, a write tool, or a firm system:

Tier Touches untrusted docs? Tools Connectors
reader Yes Read, Grep only None
Orchestrator No Read, Grep, Glob, Agent Read-only GL + subledger MCPs
resolver (Write-holder) No Read, Write, Edit None

The reader returns length-capped, schema-validated JSON only (validated by scripts/validate.py). The critic independently re-verifies each break against trusted sources before the orchestrator hands the set to resolver. The resolver writes the exception report to ./out/; it never opens an outsider file.

Handoff: to feed verified breaks into Month-End Closer, the orchestrator emits a handoff_request for month-end-closer in its final output; scripts/orchestrate.py (or your Temporal/Airflow worker) routes it as a new steering event. See the script for the allowlist + payload-validation pattern.

Not guaranteed: none of this writes to a system of record. Ledger adjustments require human approval outside the agent.