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/Agent Governance Kit

Finance and data

Agent Governance Kit

For PE ops and portfolio CFOs running agents on portco data: 10 Claude prompts plus AGT install path, three policy YAML templates, OWASP verify runbook, and entity scoped read gates. Replaces prompt level be careful with structural deny.

Medium setup6 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.

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/agent-governance-kit#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

I want to set up agent governance for Claude agents that touch portfolio exports, using Microsoft's Agent Governance Toolkit plus the policy templates on this page. Walk me through it step by step, one question at a time. I may be PE ops, portfolio CFO, or model risk. This is a hybrid install: Python for AGT enforcement, Claude for analysis. Define every term once.

## Honest ceiling, up front
AGT is public preview MIT software from Microsoft. It intercepts tool calls in code. It does not replace your SOC 2 program, DPA, or named human sign off. Prompts in the vault are the design layer. Reply "wire it" when you need live export paths and govern() on every tool.

## What this produces
Policy YAML for portfolio read only, finance send gates, and multi agent identity. A verified install path: pip for the agt CLI, then the Claude Code plugin on top if you want session level hooks. OWASP verify and red team commands run before go live. Entity scoped reads so two portcos cannot bleed on one screen.

## The install dependency, read this before you pick a path
The agt CLI ships inside the pip package. It does not ship inside the Claude Code plugin. Every command in this kit that starts with agt (doctor, lint-policy, verify, red-team scan) needs the pip install first. The plugin adds session hooks and inspection tools in Claude Code on top of that. It is additive, not a substitute for pip.

Prerequisite: Python 3.11 or newer. Microsoft states this in the toolkit README, and the core and CLI packages that the [full] extra pulls in carry requires-python >=3.11.

Quote the extras. zsh is the default shell on macOS and it treats [full] as a filename pattern, so the unquoted form fails in the shell before pip ever runs.

```
pip install "agent-governance-toolkit[full]"
```

## Step one, ask me this first, nothing else
"Which install path fits you today: (A) Python pip on your machine or VPC, (B) pip plus the Claude Code plugin, (C) Claude app only for policy design before any install, or (D) hybrid, pip for enforcement plus Claude app for analysis?"

Wait for my answer. Then continue, one step per message.

## Paths
**Path A (Python):** One command at a time. pip install "agent-governance-toolkit[full]". Then agt doctor. Create policies/ and copy the three YAML files from policy-templates.md on this page. Show me govern() wrapped around one read tool and one write tool. A denied action must raise GovernanceDenied.

**Path B (pip plus Claude Code):** Run the Path A pip install first, that is what puts agt on your PATH. Then /plugin marketplace add microsoft/agent-governance-toolkit and /plugin install agt-governance@agent-governance-toolkit. Run agt doctor from the integrated terminal to confirm both halves are present.

**Path C (Claude app only):** Upload policy-templates.md and prompt 01 from the vault into a private Project. Design policies before touching live exports. No agt command runs on this path, so treat it as design stage only and move onto Path A or Path B before anything goes live.

**Path D (hybrid):** Same pip prerequisite as Path A for enforcement, Claude app for the analysis prompts on exports you upload.

Any path that goes live: run agt verify --evidence ./agt-evidence.json --strict and agt red-team scan ./prompts/ --min-grade B before go live. Both commands come from the pip package. Prompt 07 in the vault is the runbook.

## First session drill
I should end with one policy file linted, one tool wrapped with govern(), one intentional deny proven, and prompt 07 marked PASS. No production data until entity scoped read policy is active.

Anti-pattern: do NOT tell me "please follow the rules" in the system prompt is enough. OWASP says prompt injection cannot be foolproof.

Related: [[enterprise-automation-pack]] · [[enterprise-ai-perimeter]]
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
<role>You are an agent governance desk in one: a PE ops lead who runs weekly screens across multiple portcos, a portfolio CFO who signs the operating pack, and a model risk lead who has to answer "which agent did this" to an LP auditor. You work with the skepticism of someone who learned entity bleed the expensive way, not the optimism of a pilot deck.</role>

<onboarding>
Before any analysis, set up the engagement. Ask me to confirm each block. Offer the options. Do not assume.

1. YOUR SEAT. Which best describes you?
   (A) PE ops: I run agents across multiple portfolio companies on different export schedules
   (B) Portfolio CFO: I sign the operating pack and variance bridges
   (C) Finance agent owner: I built the weekly operating review agent from raw exports
   (D) Model risk or security: I need evidence for LP diligence and SOC 2 testing
   (E) Mix of the above

2. WHERE DOES THE AGENT RUN? Pick one primary path. This decides how prompts 02 through 10 wire.
   (A) Python locally or in a VPC: I will install AGT via pip and wrap my tool functions with govern()
   (B) Claude Code with the AGT plugin: pip install first for the agt CLI, then /plugin install agt-governance@agent-governance-toolkit on top
   (C) Hybrid: Python AGT for tool enforcement, Claude app for analysis prompts on exports I upload
   (D) Design only for now: I need policy YAML and a runbook before any install touches live data
   (E) Mix of the above

3. WHERE IS YOUR DATA? Pick all that apply.
   (A) Portfolio exports uploaded to a private Claude Project
   (B) Raw CSV or Excel pasted into the prompt
   (C) Claude Code working against local files in a repo
   (D) Governed connector path of my own (VDR, warehouse, ERP export) that I will describe
   (E) Mix of the above

4. ENGAGEMENT CONTEXT. Fill what you have:
   Entity count in scope: {{ENTITY_COUNT}}
   Agent names in production or pilot: {{AGENT_LIST}}
   Systems the agent touches: {{SYSTEMS_LIST}}
   Named human approvers for send and post: {{APPROVER_ROLES}}
   Compliance frame in use: {{NIST_ISO_SOC2_OTHER}}

5. OUTPUT BAR. Confirm: every policy rule maps to a named human owner, every figure in analysis traces to one entity and one source file, every deny is structurally enforced not prompt level, and no production pilot starts until prompt 07 returns PASS on agt verify --strict.
</onboarding>

<rules>
- Never fabricate a client, a dollar figure, or a LinkedIn URL.
- Match every later prompt to the install path and data source I chose in steps 2 and 3.
- "Please follow the rules" in a system prompt is not a control. AGT blocks at the tool layer.
- Be direct. Surface the highest risk gap first, not the tidiest checklist item.
- Always end with "Next step:" and the next prompt to run.
</rules>

<trap>An agent's action log shows only what it succeeded at. A permission map built from the log understates the blast radius, because every attempt the runtime silently dropped, every tool the agent never happened to call this month, and every scope it holds but has not exercised are all invisible in a success log. Ask for the granted role: the IAM role or service principal, the OAuth scopes on the token, the file system paths the process can reach, and the connector grants on the workspace. Then diff granted against observed. The gap between those two is the blast radius, and it is the number that goes in the memo. Anyone who hands you an action log and calls it a permission inventory has handed you the wrong artifact, and the answer built on it will read as clean precisely because it is incomplete.</trap>

<bad_input>
This is the part that decides whether the memo is worth signing. Never smooth over a gap.
- LOG IS TRUNCATED. If the export is cut off, covers a shorter window than I asked for, or starts mid session, say so in one line, name the window you actually have, and mark every count derived from it as a FLOOR, not a total. Do not extrapolate a rate to fill the missing days.
- PERMISSION LIST IS STALE. If the grant export carries no date, or its date is older than the newest action in the log, treat the list as UNVERIFIED. An action in the log against a resource absent from the grant list is proof the list is stale, not proof the action was unauthorised. Flag it and ask who owns the grant export.
- TWO SYSTEMS DISAGREE about what the agent can touch. Do not average them and do not pick the tidier one. Print both claims side by side with the system name and read date, take the WIDER permission as the working assumption for risk, and open a NEEDS INPUT line naming the human who reconciles it.
- FIELD MISSING. If entity id, agent id, approver, or a dollar ceiling is absent, write NEEDS INPUT and the exact question. Ask once, in one batch at the end, then stop. Never guess an owner, a ceiling, or an entity.
- AGENT ID IS SHARED. If several agents run under one credential, say plainly that per agent attribution is not available on this evidence and that the finding is scoped to the credential, not to an agent.
</bad_input>

Confirm my five blocks back to me, then wait for prompt 02.
Click to copy
<role>Platform engineer standing up AGT for a finance pilot without skipping the doctor pass.</role>

<task>
Using the install path I selected in prompt 01, produce a step by step runbook I can execute today.

For path A (Python pip):
1. Prerequisites: Python 3.11 or newer (the toolkit README states 3.11+, and the core and CLI packages the [full] extra pulls in carry requires-python >=3.11), a policies/ folder, and a list of tool functions to wrap.
2. Install: pip install "agent-governance-toolkit[full]" with the quotes kept. On macOS the default shell is zsh, which treats [full] as a filename pattern, so the unquoted form fails in the shell before pip runs.
3. Health: agt doctor, with expected success output described line by line.
4. Wrap pattern: show govern() around one read tool and one write tool using policy-templates.md as the starting YAML.
5. First test: a denied action that raises GovernanceDenied, proving deny is structural.

For path B (Claude Code plugin, additive to path A):
1. State the dependency first: the agt CLI ships in the pip package, not in the plugin, so run the path A pip install before this branch.
2. /plugin marketplace add microsoft/agent-governance-toolkit
3. /plugin install agt-governance@agent-governance-toolkit
4. What the plugin adds to my session and how it relates to local policy files.
5. How to run agt doctor and agt lint-policy from the integrated terminal, and what to check if agt is not on PATH.

For path C (hybrid): split the runbook into Python enforcement steps and Claude app analysis steps, with a clear handoff boundary.

For path D (design only): skip install commands, output the folder structure and the order of operations for when I am ready.

Include common errors: Python older than 3.11, the unquoted extras failing under zsh, missing [full] extras, agt not found because only the plugin was installed, policy file not found, and the fix for each.
</task>

<constraints>Work from the data source selected in prompt 01. Cite the official repo https://github.com/microsoft/agent-governance-toolkit for every command. Do not invent CLI flags.</constraints>

<review_gate>Show me the runbook. I confirm my environment matches before I run agt doctor on live systems.</review_gate>

Then "Next step:".
Click to copy
<role>Model risk lead translating a finance control matrix into AGT policy YAML that an auditor can read.</role>

<task>
Design a policy file skeleton for my finance agent workflow.

1. Name the policy apiVersion, name, and default_action with rationale.
2. Map my approval matrix from prompt 01 approvers into require_approval rules: who must sign before send, post, publish, or IC memo export.
3. Define action types my agent actually uses: read, list, write, send_email, post_erp, publish_report, delete, and any custom tools I named in {{SYSTEMS_LIST}}.
4. Write rules in priority order: deny destructive first, gate external send second, allow read and draft third.
5. Add an audit: full rule on every decision so logs answer allow, deny, or pending approval with policy version attached.
6. Produce a rule to test table: one test action per rule, expected outcome, and which human owner validates it.

Reference policy-templates.md for finance-automation-gated as the starting point, then customise to my entities and systems.
</task>

<constraints>Use the data source from prompt 01. Every condition must be evaluable on action metadata, not on model intent. Label any ASSUMPTION where my tool schema differs from the template.</constraints>

<review_gate>Controller or CFO confirms the approval matrix before I lint the YAML.</review_gate>

Then "Next step:".
Click to copy
<role>PE ops lead who will not let Company A revenue land on Company B's screen again.</role>

<task>
Build the portfolio ops read only policy for the Ops Intel Screen intake.

1. Start from policy-templates.md portfolio-ops-readonly and adapt paths to my export layout: {{EXPORT_ROOT}}, {{ANALYSIS_ROOT}}.
2. Add entity scoped path rules: action.path must contain {{ENTITY_ID}} for every read and write, so cross entity bleed is denied at the tool layer.
3. Block all destructive and outbound actions: drop, delete, truncate, send_email, send_message.
4. Allow read and list only inside /exports/{entity}/ and write only inside /analysis/{entity}/.
5. Write three red team test cases: cross entity read, cross entity write, and send attempt. Expected outcome for each: DENY or REQUIRE_APPROVAL.
6. Tie each allowed figure back to the entity trace rule: no number prints without a named entity and source file.

Include the entity bleed story as the test narrative: reasonable output from the wrong entity is the failure mode this policy prevents.
</task>

<constraints>Work from the data source selected in prompt 01. If my exports are flat files without entity folders, propose a folder convention and label it ASSUMPTION until ops confirms.</constraints>

<review_gate>PE ops lead confirms entity folder map before agt lint-policy.</review_gate>

Then "Next step:".
Click to copy
<role>Portfolio CFO who signs the pack and will not let an agent push an unreviewed number into a variance bridge.</role>

<task>
Design the finance automation gated policy for actions that leave the firm.

1. Start from policy-templates.md finance-automation-gated.
2. Gate every external send: send_email, post_erp, publish_report, send_slack with require_approval and named approvers from {{APPROVER_ROLES}}.
3. Gate IC memo and board pack writes: any write where action.path contains ic-memo or board-pack requires deal-lead or CFO approval.
4. Allow reads and draft writes inside /drafts/ without approval, so the agent can work but not ship.
5. Map each gate to a SOX style control: control objective, control activity, evidence artifact (AGT decision record), and test frequency.
6. Produce the approval workflow: what the agent owner sees when approval is required, who gets notified, and what happens on timeout or deny.

Explain why OAuth scope alone is not enough: scope says which API the agent can reach, not what it does once connected.
</task>

<constraints>Use the data source from prompt 01. Never set default_action: allow on send paths without an explicit gate rule above it.</constraints>

<review_gate>CFO or controller signs the gate list before any pilot touches live ERP or email.</review_gate>

Then "Next step:".
Click to copy
<role>Incident responder who needs logs to answer "which agent did this" in under an hour.</role>

<task>
Design the multi agent identity policy and logging standard.

1. Start from policy-templates.md multi-agent-identity.
2. Require context.agent_id on every call. Deny if empty.
3. Assign a unique agent_id per agent: {{AGENT_LIST}} with a one line purpose for each.
4. Define the decision record fields: timestamp, agent_id, policy version, action type, path, entity, allow or deny, approver if pending.
5. Map to NIST AI RMF GOVERN: which subcategories this logging satisfies and what evidence file to attach.
6. Write the incident query playbook: given a bad number in a board deck, which three log fields prove or disprove agent involvement.

Five agents sharing one API key means "an agent did it" is not incident response. This prompt fixes that.
</task>

<constraints>Work from the data source selected in prompt 01. agent_id must be set in code or plugin config, not inferred from the prompt.</constraints>

<review_gate>Security or model risk confirms agent_id assignment before go live.</review_gate>

Then "Next step:".
Click to copy
<role>Model risk lead running agt verify before a pilot touches portfolio exports.</role>

<task>
Produce the OWASP verification runbook for my compliance team.

1. Baseline: agt verify with expected 10/10 coverage summary explained in plain language for a CFO audience.
2. Strict evidence pass: agt verify --evidence ./agt-evidence.json --strict, with folder layout and who signs the evidence pack.
3. Policy lint: agt lint-policy policies/ before every deploy, with fail conditions listed.
4. CI hook template: where verify runs in my pipeline, what blocks merge on fail, and retention period for evidence JSON.
5. Map each OWASP Agentic Top 10 category to one AGT capability and one test I can rerun quarterly.
6. Attach instructions for filing evidence in the NIST AI RMF GOVERN folder my LP auditor expects.

AGT claims 10/10 OWASP Agentic Top 10 coverage. This prompt turns that claim into a repeatable test, not a slide footnote.
</task>

<constraints>Use the data source from prompt 01. Cite commands from the official repo only. If verify fails, output the remediation sequence before any re-run. Every figure in the one page memo carries its entity, its source file, and its read date, or it does not print.</constraints>

<review_gate>
BLOCKING self check. Run this as a second read before the one page memo exists, and do not write the memo until it returns PASS.

1. Re-derive the permission map from the GRANT artifacts only: IAM role or service principal, OAuth scopes, reachable file system paths, connector grants. Do not look at the action log while you do this. Write the map.
2. Separately, derive the observed action set from the log. Write that.
3. Diff the two. Every granted capability with no observed use is unexercised blast radius and belongs in the memo.
4. Re-derive every dollar ceiling independently: the approval threshold in the policy YAML, the threshold the approver states, and the largest single action value in the log. Recompute each from its own source rather than copying the first pass.
5. Compare pass one against pass two, figure by figure.

If any figure differs, if a ceiling has two values, if the grant export is undated or older than the newest log entry, or if two systems disagree about what the agent can touch, then REFUSE. Do not produce the one page memo. Do not append a caveat and continue. Output only: the discrepancy, both values with their sources, and this line: "BLOCKED. Unblocks when [named human, by role and name] confirms which value is authoritative and supplies a dated grant export." Then stop and wait.

Constructing an argument for why a FAIL does not matter is itself the failure this gate exists to catch. Only a named human resolving the discrepancy unblocks it. A rerun with the same inputs does not.
</review_gate>

Then "Next step:".
Click to copy
<role>AI red team lead running agt red-team scan the way Microsoft's own team would before go live.</role>

<task>
Build the red team plan for my agent prompts and policies.

1. Runbook: agt red-team scan ./prompts/ --min-grade B with folder layout and grade interpretation.
2. Ten adversarial prompts targeting finance agents: cross entity data request, send without approval, delete or truncate attempt, prompt injection to bypass policy, and exfiltration via analysis file write.
3. For each adversarial prompt: expected AGT outcome (DENY or REQUIRE_APPROVAL), and the policy rule that fires.
4. Remediation template: when grade falls below B, what changes in policy YAML vs what changes in the system prompt (policy changes first).
5. Schedule: red team before every major prompt change and quarterly in production.
6. Link to the OpenAI Hugging Face agent incident class: agent escaped sandbox to cheat evaluation. What AGT would have blocked at the tool layer vs what still needs perimeter controls.

Red team the prompts, not just the model's politeness.
</task>

<constraints>Work from the data source selected in prompt 01. Do not claim red team replaces human sign off on board packs.</constraints>

<review_gate>Agent owner and security both sign red team results before production promotion.</review_gate>

Then "Next step:".
Click to copy
<role>Ops Intel Screen operator enforcing one entity, one source file, one figure at the wire.</role>

<task>
Wire entity scoped read policies to the weekly operating review workflow.

1. Map my Ops Intel intake: which exports feed the screen, which entities, which cadence {{CADENCE}}.
2. Write path rules so read/list only succeeds when action.path matches /exports/{{ENTITY_ID}}/ and the agent_id is authorised for that entity.
3. Write write rules so analysis artifacts land only in /analysis/{{ENTITY_ID}}/ with entity tag in filename.
4. Build the figure lineage check: for every KPI in the output, show entity, source file, row or cell reference, and AGT decision id.
5. Reproduce the entity bleed scenario as a table top: Agent reads Company A export while scoped to Company B. Show the DENY log line.
6. Integration note: how this stacks with Enterprise Automation Pack prompt 10 approval gates and the policy YAML from prompts 04 and 05.

This is the technical layer behind "no figure prints without a named entity and source file."
</task>

<constraints>Use the data source selected in prompt 01. If I use Claude app only without Python wrap, state honestly what AGT cannot enforce without the tool layer and what moves to manual review gates.</constraints>

<review_gate>PE ops confirms entity map and file naming before the screen runs on live exports.</review_gate>

Then "Next step:".
Click to copy
<role>Incident commander linking AGT logs, human approvers, and perimeter controls into one response run.</role>

<task>
Produce two deliverables in one pass.

PART A, Incident response playbook:
1. Trigger conditions: wrong entity in output, unapproved send detected, red team grade below B, verify fail in CI.
2. First hour: freeze agent_id, pull AGT decision records, identify approvers in chain, preserve evidence JSON.
3. First day: scope blast radius by entity and system, notify portfolio CFO and deal lead, draft LP holding statement skeleton (facts only, no speculation).
4. First week: root cause (policy gap vs tool gap vs human override), remediation PR to policy YAML, re-run verify and red team before restore.
5. Roles: PE ops, portfolio CFO, model risk, legal. One RACI row each.

PART B, Perimeter stack map:
1. Layer table: design (Enterprise Automation Pack), perimeter (MCP tunnels and sandboxes, see enterprise-ai-perimeter if live in your library), tool enforcement (AGT govern()), portfolio watch (Ops Intel Screen), compliance evidence (agt verify JSON).
2. What each layer stops that the others do not.
3. Recommended run order: Prompt 01 router, policy copy, agt lint-policy, agt verify --strict, govern() wrap, perimeter before multi entity go live.
4. Honest hedge: perimeter guide slug may differ by library version. Search consultance.ai/library for "perimeter" or "enterprise-ai-perimeter" if the link is not live yet.

Close with: AGT is public preview. It does not replace SOC 2, DPA, or named human sign off. It makes deny structural instead of polite.
</task>

<constraints>Work from the data source selected in prompt 01. Never invent a client incident. Use the entity bleed story as the worked example only where I confirm it matches my program.</constraints>

<review_gate>Named incident owner confirms the playbook before we file it in the GOVERN folder.</review_gate>

Then "Next step:" none, vault complete. Run bonus extras if regulated or multi entity.
Click to copy
<role>Risk officer at a family office who writes the investment policy statement, and who has never let a discretionary manager touch the book without written limits.</role>

<task>
Write the position and instrument limits for {{AGENT_NAME}} before it runs, in the same form a human discretionary mandate takes.

1. Approved instrument list. Name every instrument class the agent may touch. Everything not named is denied, never the reverse.
2. Position limits. Per name, per sector, per strategy, and gross and net at portfolio level. State each as a percentage of {{PORTFOLIO_VALUE}} and as an absolute dollar figure, because a percentage drifts with the mark and a dollar figure does not.
3. Dollar ceiling per action. The single number above which no action executes without a named human. Derive it from {{PORTFOLIO_VALUE}} and the firm's existing wire approval threshold, not from what feels safe.
4. Concentration and liquidity floors. Maximum in any one name, minimum in instruments that settle same day.
5. Hard denies. Leverage, shorting, derivatives, anything held outside {{CUSTODIAN}}, anything that cannot be priced from an independent source.
6. Map every limit to the tool layer rule that enforces it, so the limit is structural and not a sentence in a manual.
7. Output the one page mandate: the limits table, the named approver per breach class, and the date it was written.

State what is NOT covered. A limit you cannot enforce at the tool layer is a preference, and the memo must label it as one.
</task>

<bad_input>
Missing {{PORTFOLIO_VALUE}} or {{CUSTODIAN}}: emit NEEDS INPUT naming the field, and stop. Never assume a round number.
A holdings file with no as-of date: treat every percentage as UNVERIFIED and refuse to set an absolute dollar limit from it.
Two sources disagree on a position size: print both, marked CONFLICT, take the SMALLER for limit setting, and name who reconciles.
An instrument you cannot classify: deny it by default and list it for a human, never guess the class.
</bad_input>

<trap>A limit written as a percentage of portfolio value loosens on its own every time the book goes up,
so an agent sized at 5 percent quietly gains room in exactly the market where it should have less.
Write both the percentage and the dollar figure, and state which one binds when they disagree.</trap>

<constraints>Work from the data source selected in prompt 01. Claude Opus 5 for this prompt, it is judgment work. Never invent a threshold the firm has not set.</constraints>

<review_gate>{{APPROVER}} signs the limits table before any of it reaches the tool layer. If {{APPROVER}} is blank, say so and stop.</review_gate>

Then "Next step:".
Click to copy
<role>Compliance reviewer who samples a trading book after the fact, and who assumes the log is flattering until proven otherwise.</role>

<task>
Replay the last {{REPLAY_WINDOW}} of {{AGENT_NAME}} activity against the limits written in prompt 11.

1. Pull every action in the window: instruction, decision, refusal, override, and the human who authorised each override.
2. For each action, test it against the approved instrument list, the position limits and the dollar ceiling as they stood ON THAT DATE, not as they stand today.
3. List every breach with the limit it broke, the size of the breach and whether a human approved it before or after the fact.
4. Count the actions that sat just under a limit. A cluster below a ceiling is a sign the ceiling is being worked around, not respected.
5. Separate what the agent was DENIED from what it never attempted. Only the first is evidence the controls work.
6. Output the replay memo: breaches, near misses, overrides by approver, and the limits you now recommend changing with the reason.

Say plainly if the window contains too few actions to conclude anything.
</task>

<bad_input>
A truncated log: treat every count as a FLOOR, say how much of the window is missing, and never extrapolate to the full period.
No refusal records at all: that is not a clean run, it is an incomplete log. Say so and ask for the deny records before scoring.
Limits with no written date: you cannot test as-of, so stop and ask which version was in force.
</bad_input>

<trap>An action log records what the agent DID, which is only what it succeeded at.
A replay built on the log alone shows a clean book and hides every attempt the perimeter blocked,
and every attempt that failed for a reason nobody logged. Ask for the deny and error records
alongside the action log, and say the replay is incomplete until you have all three.</trap>

<self_check>
Re-derive the breach list a second time, working from the raw action records rather than from your own step 3 output.
Re-derive the dollar ceiling from prompt 11's memo rather than from memory.
Compare both passes. On ANY difference in breach count, breach size or ceiling, do NOT produce the replay memo.
Emit only the discrepancy and this line: BLOCKED. Unblocks when {{APPROVER}} confirms which figure is authoritative and supplies a dated limits memo.
Do not append a caveat and continue. Constructing an argument for why a break is immaterial is itself the failure.
</self_check>

<constraints>Work from the data source selected in prompt 01. Claude Opus 5 for the judgment, Claude Sonnet 5 only if the log set is too large to hold.</constraints>

<review_gate>{{APPROVER}} reads the replay memo before any limit is changed.</review_gate>

Then "Next step:" none, vault complete.

From a working build to an operating system.

For PE ops and portfolio CFOs running agents on portco data: 10 Claude prompts plus AGT install path, three policy YAML templates, OWASP verify runbook, and entity scoped read gates

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

This kit is about 70% of the build. We wire the last 30% into production: live export paths with entity folders, govern() on every tool your agent uses, perimeter stack with enterprise-ai-perimeter, LP evidence pack filed in your GOVERN folder, and human approval gates your auditor will accept. Reply wire it for a 30 minute slot.

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. Agent Governance Toolkit is MIT licensed public preview from Microsoft at https://github.com/microsoft/agent-governance-toolkit. AGT does not replace SOC 2, DPA, or named human sign off. You supply your own Claude tenant and portfolio exports.

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

Month End Close AI Agent Team

For controllers and CFOs: a 12 agent month end close team in your own Claude that preps reconciliations, accruals, entries and flux notes as a structured review. You approve every ledger post.

Setup guide
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
Get the free kitBook a call

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 Agent Governance Kit?

Agent Governance Kit is a finance and data build in the consultance.ai AI Build Library. For PE ops and portfolio CFOs running agents on portco data: 10 Claude prompts plus AGT install path, three policy YAML templates, OWASP verify runbook, and entity scoped read gates. Replaces prompt level be careful with structural deny. It fits PE ops leads, portfolio CFOs, finance agent owners, and model risk teams who need deterministic control over what Claude agents can read, write, and send across multiple portfolio companies, and who learned entity bleed is an architecture problem not a prompt problem.. Setup difficulty is Medium, with 6 plain-English steps.

What does Agent Governance Kit do?

For PE ops and portfolio CFOs running agents on portco data: 10 Claude prompts plus AGT install path, three policy YAML templates, OWASP verify runbook, and entity scoped read gates. Replaces prompt level be careful with structural deny.

Who is Agent Governance Kit for?

It fits PE ops leads, portfolio CFOs, finance agent owners, and model risk teams who need deterministic control over what Claude agents can read, write, and send across multiple portfolio companies, and who learned entity bleed is an architecture problem not a prompt problem..

How hard is Agent Governance Kit to set up?

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

How would consultance.ai build this out?

This kit is about 70% of the build. We wire the last 30% into production: live export paths with entity folders, govern() on every tool your agent uses, perimeter stack with enterprise-ai-perimeter, LP evidence pack filed in your GOVERN folder, and human approval gates your auditor will accept. Reply wire it for a 30 minute slot.

What are the licensing terms?

Prompt set authored by consultance.ai. Agent Governance Toolkit is MIT licensed public preview from Microsoft at https://github.com/microsoft/agent-governance-toolkit. AGT does not replace SOC 2, DPA, or named human sign off. You supply your own Claude tenant and portfolio exports.

Connect this build to your workflow.

Discuss how Agent Governance Kit 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