Explore the build library
consultance.ai
Deal Copilot
Build libraryControlsAboutCase studiesBlogBook an audit
consultance.ai

Systems

WorkflowsDeal CopilotPrivate knowledgeFinance automationBuild library

Company

About usCase studiesBlogContact

Start a conversation

Free AI auditfounder@consultance.ai

Teams

Investment bankingCFOs & financePrivate equityPrivate creditReal estateProperty managementProfessional servicesOther industriesAll industries

Legal

Privacy policyTerms of service

Our approach

Audit the workflow.Build in your environment.Hand over a system you own.
Build something useful © 2026 consultance.ai
Build library/Free 42 Agent Finance Org Pack

Finance and data

Free 42 Agent Finance Org Pack

For CFOs, controllers and finance ops leads: install 42 ready made Claude Code agents, a CFO, 9 managers and 32 specialists, in one zip. Tested on a sample first. Humans approve anything that moves money.

Medium setup5 steps12 prompts
Open the setup guide Discuss an implementation
Finance and data

Start with the guided setup

Follow the setup below in your own workspace. For a demonstration of the prompt-copying process, open the optional walkthrough.

Watch the setup walkthrough
Step 1 · setup
Three minutes, four steps, nothing to install by hand

Claude sets it up for you. You just paste.

Never used Claude? It is free and takes 30 seconds to open. Copy the instruction below, paste it into Claude, and it reads this page and walks you through everything, one question at a time.

  1. Tell Claude how to talk to you

    One tap. It changes how much Claude explains, and how slowly it goes. You can change it any time.

  2. Copy your setup instruction

    A short instruction plus a link to this page lands on your clipboard. First copy asks for your email once. That unlocks every button across the whole library.

  3. Open Claude in a new tab

    Free account, no card, 30 seconds. This tab stays open so you can come back.

    Open claude.ai
  4. Paste, send, and answer one question

    Claude reads this page, asks one question about your work, then guides you step by step until your first output is right. If anything looks wrong, tell Claude what you see, and it fixes it with you.

▸Prefer the full prompt instead of the link? (optional)
Click to copy
I am comfortable copy-pasting and following instructions, but I am not a developer.
There is nothing to install for this one and no commands to type: it all happens inside Claude. If any instruction below implies a Terminal, translate it into the equivalent click path for me instead.
- Plain English. Define jargon the first time it appears.
- One step at a time, then wait for me to confirm before the next one.
- Tell me what success looks like at each step, and diagnose any error before moving on.

Follow the instructions below with those rules applied.

You are the consultance.ai setup concierge. You are helping one person install a ready made set of 42 finance agents in their own Claude Code. Calm, practical, one step at a time. Define any term the first time you use it.

If you can browse the web, open and read this page in full first, it has the complete guide and every prompt you will run (the vault is under the-vault anchor): https://consultance.ai/library/finance-42-agent-org#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

Say this early, because it decides everything else. These are Claude Code agents. Claude Code is Claude working inside a folder on their own computer. An agent (Claude Code calls it a subagent) is a small text file that gives Claude a job, a set of tools and a model, so the main Claude can hand it a task. This pack is 42 of those files: one CFO, 9 managers and 32 specialists. They come in one zip. A chat window cannot run them. If the person says it is "not possible" in the Claude app, correct them gently: only prompt 02 works in a chat, the rest needs Claude Code.

ASK ONE QUESTION FIRST, then wait:

"Quick one before we set up. Do you already have Claude Code running on your computer, or is this your first time?"

IF THIS IS THEIR FIRST TIME: this is a Terminal install (the Terminal is the text window where you type commands). Do not guess commands, use these from the official quickstart, https://code.claude.com/docs/en/quickstart , one at a time:
1. Open the Terminal. On a Mac: Applications, then Utilities, then Terminal. On Windows: PowerShell.
2. Paste the install line and press Enter. Mac, Linux or WSL: `curl -fsSL https://claude.ai/install.sh | bash`. Windows PowerShell: `irm https://claude.ai/install.ps1 | iex`. It shows no progress while it downloads.
3. Open a new Terminal window and run `claude --version`. Success: a version number followed by (Claude Code). If it says claude is not found, the quickstart's "Fix your PATH" section has the fix.
4. They need a paid Claude plan (Pro, Max, Team or Enterprise) or a Console account. The first `claude` run opens the browser to sign in.
5. Python 3, for the small check and tie scripts: `python3 --version` should print Python 3. On Windows try `python` or `py` and use whichever works wherever the pack says python3. If none works, install it from https://www.python.org/downloads/ .

INSTALL THE AGENTS, with them, step by step:
1. Download the kit: https://consultance.ai/library/downloads/finance-42-agents.zip
2. Unzip it where they keep work, for example Documents. It makes a folder called finance-42-agent-org. Keep the name. From a terminal: Mac `unzip finance-42-agents.zip`, Windows PowerShell `Expand-Archive -Path finance-42-agents.zip -DestinationPath .`
3. In the Terminal: `cd ~/Documents/finance-42-agent-org` (or wherever they unzipped it), then `claude`.
4. Inside Claude Code, ask it to run `python3 scripts/check_org.py`. Success: `OK: 42 agent files pass all checks`. If it says .claude/agents is missing, the unzip dropped the hidden folder: unzip again from the Terminal with the line in step 2.

Where the agents live, say it plainly: in .claude/agents/ inside that folder. That is called project scope. They only exist when Claude Code runs in that folder, and they read the org/ and data/ folders next to them. Tell them not to copy the files to ~/.claude/agents/ (their personal folder that loads in every project), because there the agents would look for files that are not there.

FIRST SESSION DRILL, once the check says OK. Do it with them, do not just describe it:
1. Paste prompt 01 from the library page. It fills org/settings.md: company, approver, stale days, tolerances. Good output is a run card and nothing else changed.
2. Run prompt 02 on the sample in data/sample/. It has a printed answer. If their run does not match line by line, stop there.
3. Run 03 (it breaks the org on purpose, sees the check fail, then fixes it) and 05 (the approval limits). Their approver signs org/authority.md before they continue.
4. Run prompt 06: in a second Terminal window in the same folder, `claude --agent chief-finance-officer`, then the request printed in prompt 06. It passes only when the handoffs go CFO to manager to specialist and the figures match. If a line fails, go to prompt 10.

AFTER THE FIRST RUN: point them to prompt 12, run in a plain `claude` session in the folder (not the CFO session). It asks up to 10 questions about their team, volumes, systems and pain points, then writes a diagnosis report and a drafted automation plan, plus a share version with names removed. They can send the share version to their team, or to founder@consultance.ai. It works even before a close, from the interview alone.

WHAT TO WATCH FOR:
- Claude Code asks permission before editing a file in .claude/agents/. That is expected: they pick "Yes, and allow Claude to edit files in this project's .claude folder for this session".
- If they paste a screenshot of a folder or a file path into a chat, they have a Claude Code job in the wrong place. Say so and switch them.
- If they ask the agents to pay a bill, post an entry or send something to an auditor or lender, say plainly that this pack does not do that, on purpose, and a named person does it.
- If they want to plug in a live ERP or bank connector, stop: the org works from exports in data/.
- Before real confidential material goes in, they should be on a Team or Enterprise plan, or have model training switched off. Nothing is uploaded to us.
- If they want to skip the sample, stop them. The sample is how they learn the org refuses instead of guessing.
- A real close is a long run: the first one can take an hour or more. Start with one team.

There is also a printable 7 page org chart and field guide with every agent, its job, model and tools: https://consultance.ai/library/downloads/finance-42-agent-org-chart.pdf . Offer it early.

The only outside sources this pack leans on are the Claude Code documentation pages above. Everything else is plain files in their own folder.

Related: [[finance-agent-pack-115]] · [[quarter-end-finance-skills]]
Step 2 · run it on your data

Step 1 set it up. These 12 prompts do the work.

the vault

The 12 prompts

Grab the whole pack as one file, or tap any prompt below to copy it on its own. Placeholders that look like {{THIS}} get swapped for your own numbers — and if you ran Step 1, Claude fills them in for you.

One .md file · all 12 prompts, numbered, in order · nothing left out.
Click to copy
You are the Finance Org Setup Router. Install first, then ask, wait for each answer, write the settings file and stop.

<what_this_is>
Say this plainly before anything else.
- These are 42 Claude Code subagents: plain markdown files in the folder's .claude/agents/ directory. A subagent is a helper Claude Code can hand a task to, with its own job, tools and model. Besides Claude Code you need Python 3, because the check and tie scripts are small Python files.
- Where they live: project scope, .claude/agents/ inside the unzipped folder finance-42-agent-org. They exist only when Claude Code runs in that folder, and they read the org/ and data/ folders beside them. Do not copy them to ~/.claude/agents/ (the personal folder that loads in every project): there they would look for files that are not there.
- What the org covers: bank recs, journal entries, accruals and prepaids, intercompany, payables, receivables, variances, cash, covenants, sales tax and the provision, approvals and policy tests. What it does not cover: fixed assets and depreciation, payroll, revenue recognition, inventory, leases, or a reconciliation of every balance sheet account. Say so if the human asks for those.
</what_this_is>

<install>
Walk the human through these, one at a time, and wait for each success line.
1. Claude Code installed: `claude --version` prints a version number followed by (Claude Code). If not, send them to https://code.claude.com/docs/en/quickstart . macOS, Linux, WSL: `curl -fsSL https://claude.ai/install.sh | bash`. Windows PowerShell: `irm https://claude.ai/install.ps1 | iex`.
2. Python 3 installed: `python3 --version` prints Python 3. On Windows the command may be `python` or `py`; use whichever prints Python 3 wherever this pack says python3. If none works, install it from https://www.python.org/downloads/ .
3. Download https://consultance.ai/library/downloads/finance-42-agents.zip and unzip it where they keep work. Keep the folder name. From a terminal: macOS or Linux `unzip finance-42-agents.zip`; Windows PowerShell `Expand-Archive -Path finance-42-agents.zip -DestinationPath .`
4. In a terminal: `cd` into finance-42-agent-org, then run `claude`.
5. Run `python3 scripts/check_org.py`. Success: `OK: 42 agent files pass all checks`. A missing .claude folder means the unzip dropped the hidden folder: unzip again from the terminal with the line in step 3.
6. Expect Claude Code to ask before it edits a file in .claude/agents/: that folder is guarded. Pick "Yes, and allow Claude to edit files in this project's .claude folder for this session".
</install>

<surface>
STOP AND RE ROUTE, do not degrade, if: the human is in a chat window and pastes a file listing or a screenshot; the human asks an agent to pay, post, file or send (decline that part, say a named human does it, and continue with the rest); the human wants a live ERP, bank or payment connector attached (work from exports in data/; a connector that can write or pay breaks the rule that no agent can move money, so say so and stop until it is detached or proven read only); or confidential files are about to go in and the human has not confirmed a Team or Enterprise plan or model training switched off.
</surface>

<ask_in_order>
Accept answers given together or out of order, read all back, ask only for what is missing.
1. What is the job today? A) set up and test the org: prompts 02 to 06. B) run a month end close: prompts 07 to 09. C) something is breaking: prompt 10. D) see the chart: prompt 11. E) a diagnosis report and a drafted automation plan to share with your team: prompt 12, which also works before a close. For B or D, first run the check in step 4 and confirm org/decision-log.md has a `PASS prompt 06` line; if not, route to A.
2. Where does the data live? A) exports dropped into data/ B) pasted by hand C) a mix. Work from this source in every later prompt.
3. Fill org/settings.md one line at a time and read it back: company; ERP name; the business day the close finishes; the named approver (one person, never a team); stale days; the match tolerance as a percent AND an amount; the variance threshold as a percent AND a dollar floor. Re ask any answer missing a part, once, naming the part. Never fill a default. Approval limits come in prompt 05.
</ask_in_order>

<rules>
Settings are configuration, not evidence. Evidence tiers, used in every prompt: TIER 1 the primary document (bank statement, ledger export, signed approval). TIER 2 a keyed or exported figure. TIER 3 anything typed from memory or a vendor claim, which generates a question and never a number. Every load bearing figure carries its tier and source file.
Flags: each finding is CHANGES THE DECISION, WORTH A QUESTION or EXPLAINED BY CONTEXT, tested first against the looks wrong, is normal line in each agent. Only the first reaches a verdict. A flag explained by context is closed and does not come back. Items checked and normal go on one untagged line.
Ties agree to the cent. The match tolerance is for matching invoices and intercompany only.
Blocks: a block stops the VERDICT, never the analysis. Only numbers that do not tie, suspense left at sign off, and integrity failures block. A missing document is a question. Always print what happens by default if the human does nothing.
Stance: neutral colleague who has done this before.
Humans own: payments, wires, vendor bank changes, credit memos and write offs, manual journal entries, anything to a board, lender, auditor or tax authority, and the severity of a control deficiency.
</rules>

<adapt>
Small team: keep close-manager, payables-manager, receivables-manager and controls-manager first. To drop a team, delete its manager file and its specialist files, remove them from scripts/roster.json and from the manager list and the count in "Delegate only to your 9 managers" in .claude/agents/chief-finance-officer.md, then rerun the check. To change an agent's model or tools, edit its file and its row in scripts/roster.json together. Never edit scripts/check_org.py to make a change pass.
</adapt>

After the answers, print a run card: the prompts to run in order, the settings, and the one thing that will stop the run. Then stop.
Click to copy
Before we trust any agent, check the job on a sample with a known answer. Work in Claude Code (the files are in data/sample/) or in chat. Use only the data below.

<role>Neutral senior accountant. You reconcile one bank account to the general ledger cash account.</role>

<sample>
bank_statement.csv
date,description,amount
2025-09-29,ACH receipt Brightline,1500.00
2025-09-30,Bank service fee,-25.00
closing_balance_2025-09-30,,118450.00

gl_cash.csv
gl_cash_balance_2025-09-30,,118425.00
gl_note,,the books hold no entry for the Brightline receipt or the bank fee

register.csv (items in the books, not yet on the statement)
2025-06-30,check 1038 Alder Supply,-1150.00,outstanding
2025-09-27,check 1041 Northgate Freight,-2300.00,outstanding
2025-09-30,deposit in transit,4900.00,outstanding

bank_statement_next_month.csv
2025-10-01,Deposit,4900.00
</sample>

<task>
Adjusted bank = statement closing balance + deposits in transit - outstanding checks. Adjusted book = GL cash balance + receipts not yet booked - fees not yet booked. Print both, the difference, and each reconciling item with origin date and age in days at 2025-09-30. Propose the two book adjustments as entries for a human to approve. You never post.
</task>

<expected>
Expected output, with the working:
Adjusted bank = 118450.00 + 4900.00 - 2300.00 - 1150.00 = 119900.00
Adjusted book = 118425.00 + 1500.00 - 25.00 = 119900.00
Difference = 0.00. Status TIES.
Flags: check 1038, 92 days old, over the stale days (use 90 here): WORTH A QUESTION, stale review. Check 1041, 3 days old: EXPLAINED BY CONTEXT. Deposit in transit, cleared on the 2025-10-01 statement (TIER 1): EXPLAINED BY CONTEXT. CHANGES THE DECISION: none.
Ages: deposit in transit 0, receipt 1, fee 0. The receipt and the fee are book adjustments, no flag. Book adjustments proposed: fee -25.00, receipt +1500.00, offset accounts left for the human to choose.
</expected>

<constraints>
Compare line by line. If one figure differs, say which and STOP, do not load real data until it matches. MATCH is judged on substance: a cleared normal item counts as EXPLAINED BY CONTEXT.
Then run it again with the line closing_balance_2025-09-30 deleted. The correct result is a STOP naming the missing statement closing balance and no reconciliation for that account, not even the book side. Back solving the statement balance from the GL is the failure: it makes every rec tie. Do not state what the balance would have to be.
<trap>A rec that ties because the balance was solved for, not read, proves nothing. The closing balance must come from the statement, TIER 1.</trap>
<review_gate>Your human signs off before any entry is posted anywhere.</review_gate>
</constraints>
Click to copy
<role>Engineer who trusts a check only after seeing it fail.</role>

<task>
In the finance-42-agent-org folder: rename .claude/agents/bank-reconciler.md to bank-reconciler.md.off, run python3 scripts/check_org.py and print the output. It must FAIL and name bank-reconciler. Rename it back, run the check again, print the output. It must say OK with 42 agents. Then print `ls .claude/agents | wc -l` (expect 42).
</task>

<checks>
What the check enforces, so the human knows what it protects: exactly 42 files matching scripts/roster.json; every file has name, a quoted description, a tools line and the roster model; no agent has a network tool and tools match the roster; the CFO has a bare Agent tool and names only the 9 managers; each manager names exactly its own specialists and says "Never to anyone else."; no specialist can spawn agents; every body names org/settings.md, a STOP, the default if nobody acts, and "You prepare. A named human approves."
</checks>

<trap>Do not put a type list in the CFO's Agent( ). The docs say that list applies to the main thread only, but in a test on Claude Code 2.1.295 it also hid the managers' specialists: the close manager reported bank-reconciler as not found and did the work itself. With a bare Agent the chain ran CFO to manager to specialist, so the guard is the delegate sentence in each body, which the check enforces.</trap>
<stop>If the first run does not fail, the check is not reading the folder: say so and stop. If the second run fails, print the failing lines and go to prompt 10.</stop>
Click to copy
<role>Engineer keeping the agent files and the roster in step.</role>

<task>
Print this roster as a table from .claude/agents/*.md: agent, manager, model, tools, job. Compare it with scripts/roster.json and say any difference. Change nothing unless the human asks; for a change, edit the agent file and its roster row together, then rerun python3 scripts/check_org.py.
</task>

<roster>
O = Claude Opus 5.5, S = Claude Sonnet 5.5. R = Read, Grep, Glob. B = R plus Bash. Specialists hand their work back as text; only excel-report-agent writes files, inside out/.
chief-finance-officer | O | Agent, R, Write, Bash | routes requests to the 9 managers, tests ties and conflicts, briefs the human, never computes, never approves
close-manager | O | bank-reconciler O B, journal-entry-preparer O R, accrual-specialist O R, intercompany-specialist O B
payables-manager | O | invoice-extractor S R, po-matcher O B, duplicate-checker S B, payment-run-preparer O B
receivables-manager | O | invoice-issuer S R, collections-chaser O R, cash-applier O B
planning-manager | O | budget-builder O B, forecast-updater O B, scenario-analyst O B, headcount-planner O R
reporting-manager | O | variance-analyst O B, board-pack-author O R, kpi-dashboard-builder S B
treasury-manager | O | cash-position-analyst O B, cash-forecaster O B, covenant-monitor O B
tax-manager | O | sales-tax-checker O B, provision-preparer O B, filing-calendar-tracker S R
controls-manager | O | approval-checker O B, policy-auditor O R, audit-trail-builder S R, exception-triager O R
systems-data-manager | O | erp-sync-agent O B, data-quality-monitor S B, excel-report-agent S B plus Write, slack-comms-agent S R
Managers all have Agent, R and Write, no Bash.
</roster>

<trap>Leaving tools off a file makes that agent inherit every tool, including write and network access. Every file names tools, and the check fails the org if one is missing.</trap>
<stop>If the files and scripts/roster.json disagree and the human did not ask for a change, stop and show the difference. Do not edit the check.</stop>
Click to copy
<role>Controller writing the delegation rules the agents will obey. You are not the approver.</role>

<task>
Ask the named approver in org/settings.md for the approval limits: a dollar limit per role per transaction type (vendor invoices, payment release, manual journal entries at least), and the named delegate when the approver is out. Then write org/authority.md. Its first line is exactly `Status: UNSIGNED` and nothing else on that line, and the file ends with a blank `Signed:` line. One row per transaction type and role: limit per item, limit per vendor per period, limit per user per period, named approver. Then the rules: missing authority record means no authority; split items from one requester are summed; the approver is never the requester or the preparer; the delegate counts only on dates the approver is out. Check org/never-auto-approve.md exists and read it back.
</task>

<constraints>
Work from the data source chosen in prompt 01. Any value the approver does not give, such as a per vendor limit or a name, is marked OPEN and asked once, never invented.
<trap>Agents that share a source and a prompt agree for the wrong reason. The CFO file already requires one check against the source document before any consensus is reported; do not remove it.</trap>
<review_gate>The approver reads org/authority.md, changes the first line to `Status: SIGNED` and fills `Signed: <name>, <date>`. Until both are done the file is unsigned and prompt 06 refuses to run. An unsigned matrix is a stop at prompt 06, never a control finding in prompt 08.</review_gate>
<stop>If the named approver is still OPEN in org/settings.md, say so and stop: do not invent limits or a name.</stop>
</constraints>
Click to copy
<task>
Prove the org works end to end on the sample in data/sample/. If org/authority.md does not start with `Status: SIGNED` and end with a filled `Signed:` line, STOP: say it is unsigned and wait for the approver.
Tell the human to open a second terminal in the finance-42-agent-org folder and run:
claude --agent chief-finance-officer
then type: Reconcile the sample bank account in data/sample/. Show every handoff.
That starts a session where the CFO agent is the main thread and hands work to its managers. When it answers, the human pastes the answer back here and you check it against the pass lines.
</task>

<pass>
1. The handoffs go down three layers, chief-finance-officer to close-manager to bank-reconciler, and the answer comes back up. Extra checker handoffs are fine.
2. The figures equal prompt 02's expected block: adjusted bank 119900.00, adjusted book 119900.00, difference 0.00, TIES.
3. Check 1038 is WORTH A QUESTION; the deposit in transit and check 1041 are EXPLAINED BY CONTEXT; nothing CHANGES THE DECISION. Questions about which invoice the receipt pays or which offset accounts to use are fine; a flag that treats the receipt or fee as a problem is not.
4. The two book adjustments are proposed, not posted.
Then the human copies data/sample/ to data/sample-nobal/, deletes the closing balance line there, and asks the CFO to reconcile data/sample-nobal/. Pass: STOP naming the missing statement closing balance, no reconciliation for that account. On a full pass, append `PASS prompt 06, <date>` to org/decision-log.md. Prompt 07 looks for that line.
</pass>

<stop>If any line fails, name which one and go to prompt 10. Do not run prompt 07 on a chain that has not passed.</stop>
<trap>A chain that returns the right number without the handoff lines may have skipped the managers: the CFO did the work itself. Handoff lines are part of the pass condition for that reason.</trap>
Click to copy
<role>Chief Finance Officer agent. Prepare, never approve. Run this in the `claude --agent chief-finance-officer` session.</role>

<task>
Close the company named in org/settings.md for the period the human names, using the files in data/. The first time, run one team at a time and compare with your normal close. Run at most 3 managers at a time. Give every manager the full list of files in data/ and say which is which. Run in this order and stop at the first gate that fails:
1. Cutoff and data: control totals source to target (systems-data-manager). Trial balance debits equal credits.
2. Cash: bank recs for every account, then the cash position (close-manager, treasury-manager).
3. Payables and receivables: duplicates, matching, cash application, then both agings tied to their control accounts to the cent (payables-manager, receivables-manager).
4. Accruals, prepaids, recurring entries, then intercompany netted before elimination (close-manager).
5. Tax: the provision and sales tax liability (tax-manager).
6. Rerun the bank recs and agings if any entry from steps 2 to 5 changed a balance.
7. Controls pass over every entry and approval in the period, after the last entry (prompt 08).
8. Variances above the threshold, the pack draft, then covenants, preliminary or final (reporting-manager, treasury-manager).
9. Self check (prompt 09), then the digest.
</task>

<constraints>
Every close task needs a named owner and a completion time: a task without both is not done. A missing statement or support document leaves that item OPEN and the close continues on the other accounts. Print which outputs a stop blocks and which still run.
<trap>Forcing a rec to zero with a plug to suspense or other, or an intercompany difference to FX gain or loss, hides an unrecorded item or a one sided entry. A rec that ties because an amount sits in suspense has not tied. Ask for the oldest unmatched item and the entity that has not booked its side.</trap>
<review_gate>Nothing leaves draft. The named approver releases each entry and the period lock.</review_gate>
<stop>If org/decision-log.md has no `PASS prompt 06` line, org/authority.md is not `Status: SIGNED`, or the period's bank statements are absent from data/, say so and stop. Do not close on estimated balances.</stop>
</constraints>
Click to copy
<role>Internal controls reviewer, neutral. A colleague, not a prosecutor.</role>

<task>
Through controls-manager, run approval-checker, policy-auditor, audit-trail-builder and exception-triager over the period's entries, approvals and payment proposal. Build the control test matrix: control, population, sample, result, exception, tag, owner, due date. The population count and total tie to the ledger or subledger before any sample is drawn.
</task>

<constraints>
Test every exception against the controls-manager normal line first. CHANGES THE DECISION, and a hold on the item, for integrity failures: an approval dated before its request, an approver who had left, an entry or payment approved by its own preparer or requester, an approval above the approver's limit with no named delegate, a payment to a bank account changed without a call back. A missing approval record is a control exception: WORTH A QUESTION to the process owner, never closed as explained. The ERP approval is the system of record, an email is supporting evidence. A block stops the verdict, other checks keep running, and the output prints the default: the payment stays on hold.
<trap>Marking a control failed because the approver was absent, when the policy or matrix names a delegate for that date. Check the delegate and the out of office record before the tag.</trap>
<stop>If the population does not tie to the ledger total, STOP the sample and name the difference. Severity of any deficiency stays with the named approver.</stop>
</constraints>
Click to copy
<role>Independent reviewer. You did not prepare these numbers.</role>

<task>
Before the digest is released, re-derive from the TIER 1 files with python3 scripts/tie.py, without reading the agents' working: adjusted bank and adjusted book for each account, where adjusted book = GL balance + statement receipts not yet booked - statement fees and charges not yet booked; the AP aging total against the AP control account; the AR aging total against the AR control account; debits against credits per journal batch and for the trial balance; suspense and clearing accounts at zero; net income and total assets in the pack draft against the trial balance.
</task>

<constraints>
Write each figure, its source file and the arithmetic so a human can redo it by hand. Ties agree to the cent; a difference left after every reconciling item is a BREAK. A fee or receipt on the bank statement that the books have not recorded is a reconciling item with a proposed entry, never a BREAK. This check BLOCKS: on a BREAK do not produce the final digest. Print the break, name the figure and the two sources, and wait for a named human to record the resolution in org/decision-log.md. Display rounding is not a break when the full precision figures agree.
<trap>Do not construct an argument for why an arithmetic BREAK does not matter. That rule covers numbers that do not tie, never judgment flags, which stay under prompt 08's tags.</trap>
<stop>Missing control account balance: name the file, STOP that tie, run the others.</stop>
</constraints>
Click to copy
<role>Engineer debugging a multi agent folder. Symptom first, then cause, then fix, then rerun the check.</role>

<failures>
1. check_org.py says .claude/agents is missing. Cause: the unzip dropped the hidden folder. Fix: unzip again from the terminal with the line in prompt 01 install step 3.
2. Claude Code cannot find an agent you just added. Cause: Claude Code watches only agent folders that existed when the session started. Fix: restart Claude Code in the folder.
3. Claude Code stops to ask before editing .claude/agents/. Cause: that folder is guarded in every mode that prompts. Fix: pick "Yes, and allow Claude to edit files in this project's .claude folder for this session".
4. A manager called an agent outside its team. Cause: a manager with Agent can spawn any subagent. Fix: the delegate sentence in its body; rerun the check.
5. A specialist is reported not found and the manager does the work itself. Cause: an Agent( ) type list on the CFO. Fix: a bare Agent on the CFO tools line, rerun the check and prompt 06.
6. A handoff is missing. Cause: nesting is limited to three layers below the main conversation by default from Claude Code v2.1.219; v2.1.217 and v2.1.218 defaulted to one. Check claude --version. The CFO is the main thread, managers layer 1, specialists layer 2.
7. A manager's specialists did not start and the manager did their work. Cause: too many agents at once. Fix: at most 3 managers at a time, rerun the failed manager when others finish.
8. The answer is right but no handoffs print. Cause: the CFO did the work. Fix: start it with claude --agent chief-finance-officer, rerun prompt 06.
9. Two agents agree and are both wrong. Cause: shared source and prompt. Fix: one check against the source document, already in the CFO file.
10. An agent read or edited something it should not. Cause: a tools line was removed. Fix: restore it from scripts/roster.json and rerun the check.
</failures>

<task>
Ask the human which symptom, confirm the cause by reading the file, make the smallest fix, rerun python3 scripts/check_org.py and prompt 06, and show both outputs.
</task>
<trap>Fixing a symptom by loosening the check. Never edit scripts/check_org.py to make a failing org pass.</trap>
<stop>If the cause is not in this list, say so and stop. Do not guess a fix.</stop>
Click to copy
<task>
Read .claude/agents/*.md and, if present, org/decision-log.md and the last digest in org/. Write org/chart.html: one self contained file, no network, no scripts from elsewhere. Show the CFO at the top, 9 managers beneath it, each manager's specialists under it, and for every agent its name, model, tools and job. Colour an agent amber when its last run left an OPEN item and red when a BREAK is unresolved. Show the count at the top, which must equal the files on disk. Open it in the browser when written.
</task>

<constraints>
Use only what is in the files. If the count differs from 42, show the real number and name the files that changed. Do not invent a status.
<trap>A chart drawn from a template instead of from the files shows an org that does not exist. Build it by reading the folder every time.</trap>
<stop>If .claude/agents is empty, say so and stop.</stop>
</constraints>
Click to copy
<role>Finance transformation lead, neutral. You write the report a finance leader hands to their team or an implementer to decide what to automate next. Run this in a plain `claude` session in the folder, not the CFO session: the CFO agent only routes, and this prompt needs to interview, count and write. Best after one close (prompt 07); it also works before one, from the interview alone.</role>

<task>
Read org/settings.md, org/decision-log.md, every digest in org/, and the files in data/ first. Then interview the human, one question at a time, waiting for each answer. Skip any question the files already answer and say what you found instead. Accept "don't know" and mark it OPEN. At most 10:
1. Who works on finance: people and roles for close, payables, receivables, reporting, treasury, tax; anything outsourced.
2. Which business day the close finishes today, and the step that most often slips, and why.
3. Volume per month: vendor invoices, customer invoices, bank accounts, entities, currencies.
4. Systems: the ERP, bank portals, AP or expense tools, the spreadsheets the close depends on, how data leaves each one (export, report, API) and who holds access.
5. Hours a month per workstream today, roughly.
6. Where errors come from: last year's audit adjustments or findings, recs that break every month, late entries.
7. How approvals happen today: in the system, by email, on paper.
8. Constraints: data that cannot leave a machine, IT or security sign off needed, what the auditor expects to see.
9. The one task to hand off first, and what done looks like for it in 90 days.
10. Who owns the budget for this and who decides.
Then write org/diagnosis-report.md with these sections:
1. Snapshot: company, ERP, close day, team, period tested.
2. What the org ran and found: the tie table, every CHANGES THE DECISION item, the open inputs, and what each digest says happens by default. Counts from the files: transactions, entries, invoices, exceptions.
3. Where the time goes: hours per workstream as the human gave them, labelled self reported, beside the volume the files show.
4. Automation map, one row per workstream: today, what the agents already prepare, what is blocked and by what (a missing feed, a missing document, a policy gap, a system limit), the human gate that stays, and a rank from the human's own hours and the exception count.
5. Drafted solution: the target setup in plain words: which agents run on which trigger, which read only exports or feeds they need and from which system, who approves what (from org/authority.md), what gets logged where. Then a phased plan: first 30 days, 60, 90, each with one measurable finish line.
6. Risks and what stays human: org/never-auto-approve.md, the gaps this org does not cover (fixed assets, payroll, revenue, inventory, leases), and every assumption the plan rests on.
7. Questions an implementer needs answered before building.
Then write org/diagnosis-report-share.md: the same report with company, people, vendor and customer names replaced by roles or letters, and amounts shown as ranges. That is the version to send outside the team.
</task>

<constraints>
Work from the data source chosen in prompt 01. Every figure carries its source file or "self reported". Hours saved are never stated as fact: show the human's hours, the share the agents prepare, and the arithmetic, labelled an estimate. No figure from outside the files and the human's answers. Plain words, no vendor or price claims.
<trap>A report that promises savings the run did not show. If the close produced a BREAK or many open inputs, the first phase is fixing data and documents, not more automation. Say so.</trap>
<review_gate>The human reads both files before either leaves the folder. The share version goes only where they choose to send it: their team, an implementer, or consultance.ai.</review_gate>
<stop>If no close has run (no digest in org/), still write the report from the interview, mark sections 2 and 3 NOT YET MEASURED, and make the first phase of the plan one close run beside the normal process. Never fill a measured figure from the interview.</stop>
</constraints>

Done means: python3 scripts/check_org.py prints OK, prompt 06 passed, prompt 09 shows no BREAK on your own close, org/authority.md is signed, and org/diagnosis-report.md exists.

From a working build to an operating system.

For CFOs, controllers and finance ops leads: install 42 ready made Claude Code agents, a CFO, 9 managers and 32 specialists, in one zip

Path A · free

Run the build independently

The setup rail and every prompt above are free and stay free. The cost is your time, and the risk of wiring it wrong on live data.

Back to the prompts
Path B · done with you

Connect it to your operation

We would wire the org into your systems: read only feeds from your ERP and bank into the project folder, your approval limits and close calendar built into the authority matrix, the decision log kept where your auditor expects it, and the tie table on the close checklist, all inside your own tenant.

Book a build call
data safety

Before you use live numbers

  • • Run last quarter's numbers first. Live data is not a test bed.
  • • Nothing here uploads to us. It runs in your own Claude account, on your own machine.
  • • A named human reviews and signs every output before it reaches a board, lender, or client.
  • • Mask account numbers and names to the minimum the task needs.
the fine print

Straight answers on ownership

Prompt set authored by consultance.ai. The agent file format follows the Claude Code documentation. Your documents and data go only to your own Claude account, in your own tenant on a Team or Enterprise plan or with training switched off, and stay on your own machine; we never see them. The agents prepare work for a named human to approve and move no money. This is not accounting, audit, tax or legal advice.

Bring this workflow into your operation.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI deal desk and finance automation service.

Newsletter

New builds, as they ship

One short note when a new build ships: what it does, who it is for, and how to run it in your own Claude.

Free. One email a week at most. Unsubscribe in one click.

More like this

Related builds

All builds
Finance and data
Finance and data

Ramp Claude Connector Setup Guide

For controllers and finance ops teams on Ramp: Claude setup steps plus 12 read only prompts for spend baseline, close readiness, accruals and flux. Replaces the manual Ramp export to Excel.

Setup guide
Finance and data
Finance and data

Claude and NetSuite Setup Guide

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

Setup guide
Finance and data
Finance and data

QuickBooks and Claude Setup Guide

For owners, controllers and fractional CFOs on QuickBooks Online: connect Intuit's QuickBooks connector to Claude, then run 11 prompts for cash, receivables, month end, billing drafts and a tie out.

Setup guide
Get the free kitBook a call

From independent build to integrated workflow

What you have

The free version above. It runs this read on a file you paste in, in your own Claude. Yours to keep.

What we install

The same read, wired into your cfo and back office stack, running the second a report lands. Nothing to upload, no new login.

See the installed version

Share with your workflow owner.

Bring the relevant team into the conversation with the build and setup guide.

Forward by email
in one line

What is Free 42 Agent Finance Org Pack?

Free 42 Agent Finance Org Pack is a finance and data build in the consultance.ai AI Build Library. For CFOs, controllers and finance ops leads: install 42 ready made Claude Code agents, a CFO, 9 managers and 32 specialists, in one zip. Tested on a sample first. Humans approve anything that moves money. It fits CFOs, controllers and finance ops leads who want a written org chart of AI agents for close, payables, receivables, FP&A, treasury, tax and controls, built as plain files in their own Claude Code and tested on a sample before any real data goes in. Setup difficulty is Medium, with 5 plain-English steps.

What does Free 42 Agent Finance Org Pack do?

For CFOs, controllers and finance ops leads: install 42 ready made Claude Code agents, a CFO, 9 managers and 32 specialists, in one zip. Tested on a sample first. Humans approve anything that moves money.

Who is Free 42 Agent Finance Org Pack for?

It fits CFOs, controllers and finance ops leads who want a written org chart of AI agents for close, payables, receivables, FP&A, treasury, tax and controls, built as plain files in their own Claude Code and tested on a sample before any real data goes in.

How hard is Free 42 Agent Finance Org Pack to set up?

Medium to set up — one guided setup instruction covering 5 plain-English steps, plus 12 ready-to-run prompts on the resource page.

How would consultance.ai build this out?

We would wire the org into your systems: read only feeds from your ERP and bank into the project folder, your approval limits and close calendar built into the authority matrix, the decision log kept where your auditor expects it, and the tie table on the close checklist, all inside your own tenant.

What are the licensing terms?

Prompt set authored by consultance.ai. The agent file format follows the Claude Code documentation. Your documents and data go only to your own Claude account, in your own tenant on a Team or Enterprise plan or with training switched off, and stay on your own machine; we never see them. The agents prepare work for a named human to approve and move no money. This is not accounting, audit, tax or legal advice.

Connect this build to your workflow.

Discuss how Free 42 Agent Finance Org Pack fits your systems, controls, and team. We define the integration, review process, and deployment requirements with you.

This build comes from our AI consulting and AI implementation practice — see the full AI in finance guide and how we work with CFO teams.

Book an audit