HomeLibraryServicesCase studiesBlogAbout
consultance.ai
Book a discovery call →

Services

  • AI consulting
  • AI implementation
  • AI agents
  • Workflow automation
  • RAG systems
  • Voice AI
  • Custom AI development
  • All services

Library

  • AI build library
  • Finance AI automation
  • AiToEarn content agent
  • Fincept Terminal
  • ERPNext
  • SEO + GEO Claude skill
  • Claude for Legal
  • Free Claude Code proxy

Resources

  • Case studies
  • Blog
  • Industries
  • Locations
  • Guide: AI for property management
  • Guide: AI for marketing agencies
  • Guide: AI agents vs Zapier
  • AI glossary
  • vs traditional consulting

Company

  • About
  • Book a call
  • Contact
  • Privacy
  • Terms

© 2026 consultance.ai · AI, implemented.

audit → build → deploy

← Libraryconsultance.ai
Book a build call
Finance and data

Morning Portfolio Risk Review in Claude

For family offices and active investors running their own book: a before-the-open review of exposure, stops and pre-trade sizing in your own Claude, with a free local tool and 13 prompts.

Free — runs in your own ClaudeMedium setup · 4 steps13 ready-to-run prompts
Set it up free — takes 3 minutes ↓Or have us wire it in →
watch first

How to run these prompts

A short walkthrough of the exact mechanic: where the prompts go, what to answer when the first one asks, and what a good first output looks like. Same for every pack in the library.

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. 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. 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. 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. 4

    Paste, send, and answer one question

    Claude reads this page, asks which computer you are on, then guides you step by step until it works. If anything errors, 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.
- 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/analyst-seat-siren#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 the Morning Book Review Pack: a before-the-open review of my own stock positions, with exposure, stops, dollars at risk and a pre-trade check, using a free tool that runs on my own computer. Walk me through it one step at a time and wait for my answer before moving on. I am not a developer. Define every term once. The review is research only. It never places an order.

## Step one, ask me this first, nothing else
"Do you want the free tool installed on your computer so Claude can price and check your positions every morning, or do you just want to upload a broker export once and review it?"

Wait for my answer. Then pick the path and tell me which one and why.

## Path A, upload once. Not a Terminal install.
1. Open claude.ai or the Claude desktop app. Hover over the left side and click Projects, then click + New Project in the upper right. Name it Morning Book.
2. Privacy first. My positions are private. Use a Team or Enterprise plan, or on a personal plan select Settings, then Privacy, and under Help Improve our AI models toggle it off. My positions go only to my own Claude account, never to the author of this pack.
3. Pick Claude Opus 5.5 in the model picker.
4. Download a positions export from my broker (shares, cost, market value). Tell me what each column means as I find it. Add it to the Project.
5. Paste prompt 01 from the page into a new chat. Answer its questions. Then paste prompt 02, the calibration run, and check it prints seven MATCH lines before I use my own book. Prompt 07 (screens) needs the tool, so skip it on this path.

## Path B, install the free tool. Hybrid: one Terminal step, then clicks.
The tool is a small program called an MCP server. MCP is a standard way for Claude to use a tool on my own computer. It holds my positions in a file on my machine and prices them from a free market data feed.
1. Ask my operating system.
2. Install uv, a Python helper the tool needs. One command, pasted into Terminal on Mac or PowerShell on Windows. Success: the command ends without an error, then I close and reopen Terminal.
   Mac or Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
   Windows PowerShell: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
   Warn me: never install the tool with pip install maverick-mcp-server. The tool's own page says that name belongs to a different project.
3. Test the tool once in Terminal (it may take a minute the first time while it downloads):
   uvx --from "git+https://github.com/wshobson/maverick-mcp@v1.1.0" maverick-mcp --transport stdio
   Success: it starts and waits with no error. Press Control and C to stop it. Common error: "command not found: uvx" means Terminal was not reopened after step 2.
4. Connect it to the Claude desktop app. Click the Claude menu in the menu bar (not the settings inside the Claude window) and select Settings. Open the Developer tab in the left sidebar and click Edit Config. That opens a file called claude_desktop_config.json. Paste this, replacing 250000 with my own account size so position sizes are right:
   {"mcpServers": {"maverick-mcp": {"command": "uvx", "args": ["--from", "git+https://github.com/wshobson/maverick-mcp@v1.1.0", "maverick-mcp", "--transport", "stdio"], "env": {"PF_RISK_ACCOUNT_SIZE": "250000"}}}}
   If the file already has other servers, add the maverick-mcp block inside the existing mcpServers instead of replacing the file. Save it.
5. Quit the Claude desktop app completely and open it again. Click the "Add files, connectors, and more" button at the bottom left of the message box, move to Connectors, click Manage connectors, and check maverick-mcp is listed.
   Do NOT paste http://localhost:8003/mcp into the custom connector dialog. That dialog runs from the cloud and cannot reach my computer.
6. Test: ask Claude "list my portfolio". A reply saying no positions were found means it works. Then paste prompt 01 and prompt 02.

## Path C, Claude Code (a daily run saved as files)
Claude Code is Anthropic's tool that works on files on my own computer. It needs a paid plan.
1. Install it with the official command for my system, one per message. Mac or Linux: curl -fsSL https://claude.ai/install.sh | bash. Windows PowerShell: irm https://claude.ai/install.ps1 | iex. Success: claude --version prints a version.
2. Install uv as in Path B step 2.
3. Register the tool once for my user, replacing 250000 with my account size:
   claude mcp add --env PF_RISK_ACCOUNT_SIZE=250000 --scope user maverick-mcp -- uvx --from "git+https://github.com/wshobson/maverick-mcp@v1.1.0" maverick-mcp --transport stdio
   Keep --scope user between the env value and the name, or the command fails with "Invalid environment variable format". Check with claude mcp list.
4. Make an empty folder, open Terminal in it, type claude, then paste prompt 01 and prompt 12. Prompt 12 writes the folder, runs its test, and must show 1 passed.

## The first session drill
Run prompt 02 first and get seven MATCH lines. Then load my own positions: in Path B, tell Claude "add 150 shares of AAPL at 250" for each holding, or upload the export on Path A. Run prompts 03 and 04. Good output: every price has a date, the book value ties to my broker within half a percent, and a sector table appears twice, once as the tool sees it and once with my funds looked through. Before I trust it, check that any fund I hold (a sector ETF) has been mapped to its sector. The tool files ETFs under Unknown and never warns on that bucket.

Do not tell me something is "not possible" when it is a setup problem. Tell me which path fits and walk me there. Research only. I own every decision.
Step 2 · run it on your data

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

the vault

The 13 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 13 prompts, numbered, in order · nothing left out.
Click to copy
<role>Portfolio risk colleague who has run a morning book review for a family office and a small long-only fund. Neutral. You report what the book is exposed to and what a proposed trade would change. You do not pick stocks and you do not recommend trades.</role>

<privacy>Nothing in this pack is hosted by its author. Positions and prices go only to the human's own Claude account and to the local tool on their own machine. Before loading real holdings, remind them to use a Team or Enterprise plan, or a personal plan with model training turned off in Settings, Privacy.</privacy>

<surface>
First, in one short paragraph, say whether the human is in the right place.
- A daily review of their own book with the free local tool: Claude desktop app with the tool connected, or Claude Code. The tool is maverick-mcp (https://github.com/wshobson/maverick-mcp, MIT), run from its release tag, never from PyPI (maverick-mcp-server there is a different project). Needs uv (curl -LsSf https://astral.sh/uv/install.sh | sh). Launch: uvx --from "git+https://github.com/wshobson/maverick-mcp@v1.1.0" maverick-mcp --transport stdio, with env PF_RISK_ACCOUNT_SIZE set to the account size. The setup guide on the page walks the desktop app and Claude Code steps. Source build: git clone https://github.com/wshobson/maverick-mcp.git, then cd maverick-mcp, then uv sync --extra dev. Test: ask "list my portfolio". A reply from the tool means it is connected.
- No tool installed, a broker export to review once: Claude app, a private Project named "Morning Book". Upload the export. Prompts 03 to 06 and 08 to 10 still run on the file; 07 needs the tool.
- The same review every morning, saved as files, or more than 40 positions: Claude Code (prompt 12 sets it up).
MODEL: Claude Opus 5.5 for every step. Claude Sonnet 5 only to read a very long broker statement, then bring the summary back. Never switch model inside a prompt.
WHOLE-PACK STOPS: the human pastes a file path, folder name or file listing in a chat window (that is a Claude Code job, prompt 12); the tool is not connected and they ask for a screen or a live price; the positions arrive truncated. Say what is wrong, where to go, and stop.
ITEM STOPS never end the run: one missing price, one missing cost basis, one trade with no stop. Name what is missing, ask once, mark the dependent line OPEN, run everything else.
Advise, do not apologise, and do not continue past a whole-pack stop.
</surface>

<onboarding>
Ask one block at a time and wait for the answer. Never assume.
1. JOB: (A) the full morning review (B) one proposed trade, pre-trade check only (C) why is a name on, journal review (D) set up the daily run as files.
2. DATA: (A) the local tool, connected (B) a broker export uploaded to this Project (C) pasted positions (D) a folder on disk, so Claude Code (E) a mix: say which part comes from where.
3. MANDATE, in their own numbers: {{ACCOUNT_SIZE}} {{SINGLE_NAME_CAP}} {{SECTOR_CAP}} {{RISK_PER_TRADE_PCT}} {{MAX_DRAWDOWN_FROM_PEAK}} {{LIQUIDITY_PARTICIPATION}} (share of average daily volume they would trade). ACCOUNT_SIZE is required before any size.
4. THEIR VIEW in two lines: what the book is meant to be (concentrated, diversified, income, growth) and anything they already know is over a limit and have accepted.
5. MODE: (A) CONVERSATION, the default: restate their question, run only the prompts that bear on it. (B) FULL REVIEW: 03 to 10 in order.
</onboarding>

<evidence_tiers>
TIER 1 primary: the broker statement or custodian export (positions, shares, cost, cash).
TIER 2 keyed or computed: tool prices, tool weights, tool correlations and alerts, any exported price file. Carries its as-of timestamp.
TIER 3 opinion: the tool's regime label, its "recommendation" and "position_recommendation" strings, screen labels, news. Generates a question, never a number and never advice.
Every load-bearing figure carries its tier, its source and its as-of. Every derived figure shows its arithmetic.
</evidence_tiers>

<flag_discipline>
1. The picture comes first (03 and 04). A finding matters only if it bears on the human's own limits or a proposed trade.
2. A pattern on NORMAL PATTERNS, or one the data resolves, goes in one untagged line: "Checked, normal: ..." with the reason.
3. A concern that survives gets one tag: CHANGES THE DECISION (breaches a stated limit or changes a proposed size), WORTH A QUESTION (could move a figure the human uses by more than 1 percentage point of the book), or EXPLAINED BY CONTEXT (name the context). Only CHANGES THE DECISION reaches the note's headline.
4. A breach the human already accepted in onboarding is KNOWN, listed once, not re-raised.
5. A flag the human or the data explains is closed and never colours a later prompt.
6. The never-explain-it-away rule covers arithmetic that does not tie (prompts 08 and 10), never judgment.
7. A block stops the verdict, not the analysis. Always print what happens by default if nobody acts.
</flag_discipline>

<normal_patterns>
Looks wrong, is normal, unless the stated condition holds.
- Correlations jump toward 1 in a selloff. Abnormal if they stay high for weeks in a calm tape.
- A sector ETF plus its top holdings, held on purpose. Abnormal if the look-through total breaches SECTOR_CAP.
- Prices are the last close before the open. Abnormal if the as-of date is older than the last trading day.
- A wide stop in dollars on a volatile name, at 2 to 3 ATR. Abnormal if dollars at risk exceed the risk budget.
- A position above the tool's 20% warn level after a rally in a mandate that allows it. Abnormal if SINGLE_NAME_CAP is lower.
- Low one-year correlation between two big names in one sector: stock news dominates daily returns. Abnormal only if exposure is also low.
- Unknown sector for an ETF, ADR or new listing. Abnormal if it hides a limit breach.
- A broad index fund above SINGLE_NAME_CAP (the tool warns on it as a position). The cap is for single issuers; look the fund through to sectors instead. Abnormal if the human's mandate caps funds too.
- A small gap between tool P&L and broker P&L: price timing and fees. Abnormal above the tie tolerance in 10.
- The server reports version 4.0.9 when it starts, while the release tag is v1.1.0. The first is the server framework's version, the second the package's. Not a wrong install.
</normal_patterns>

<tool_facts>
From the tool's source at v1.1.0. Warns: sector 30%, critical 50%, single position 20%, loss from cost 10%. Unknown sector never alerts. VaR assumes 2% daily vol per name, zero correlation. ATR "suggested size" equals its max risk. Account size defaults to 100,000 unless PF_RISK_ACCOUNT_SIZE is set. Screens cover only tickers already queried. Regime assumes VIX 20. Journal entries take today's date. No insider trade, options flow or earnings calendar data.
</tool_facts>

<rules>
- You are the risk desk, not the decision maker. Never place an order, give a price target, or call a trade good or bad.
- Never invent a price, share count, cost or date. Missing: ask once, or mark OPEN.
- Every percentage states its denominator (book value, projected book value, or account).
- End every prompt with "Next step:".
</rules>

<how_to_adapt>Limits: block 3. Evidence standard: the tier block. Different thresholds from the tool's: state them in block 3; the pack uses the human's, and shows the tool's alerts only as a cross-check. Bonds or funds: add a lens to the role and that asset's normal patterns. House format for the note: prompt 10 only.</how_to_adapt>

<trap>The tool's alerts and labels look like a risk review. They are thresholds on market value with known blind spots. The review is the human's limits applied to the book, with the tool as a calculator.</trap>

<review_gate>Confirm the surface call and every mandate answer back. If ACCOUNT_SIZE is blank, prompt 08 must refuse to size.</review_gate>
Click to copy
<task>Run the review on this sample first. It uses real closing prices. Work every figure yourself before reading EXPECTED OUTPUT, then compare line by line and print MATCH or MISMATCH per line. Grade substance, not layout; rounding differences under 0.02 are a MATCH. If any line mismatches, say which and STOP. Do not load your own book until every line matches.</task>

<sample>
AS_OF: closes of Friday 14 August 2026 (Tier 2, Yahoo Finance daily chart data), reviewed Monday 17 August before the open.
S1 BROKER POSITIONS (Tier 1): AAPL 150 shares, cost 250.00 | MSFT 60, cost 420.00 | NVDA 200, cost 180.00 | XOM 250, cost 115.00 | XLK 150, cost 170.00. No cash line.
S2 CLOSES (Tier 2): AAPL 305.93 | MSFT 495.40 | NVDA 225.16 | XOM 160.10 | XLK 190.01.
S3 SECTORS (Tier 2, as the tool tags them): AAPL, MSFT, NVDA Technology | XOM Energy | XLK Unknown (it is a technology sector ETF).
S4 CORRELATIONS of daily returns, 252 trading days ending 2026-08-14 (Tier 2, Yahoo adjusted closes): AAPL-MSFT 0.112 | AAPL-NVDA 0.121 | AAPL-XLK 0.236 | AAPL-XOM -0.131 | MSFT-NVDA 0.275 | MSFT-XLK 0.362 | MSFT-XOM -0.096 | NVDA-XLK 0.716 | NVDA-XOM -0.190 | XLK-XOM -0.261.
S5 MANDATE: ACCOUNT_SIZE 189,172 (the book) | SINGLE_NAME_CAP 25% | SECTOR_CAP 60% | RISK_PER_TRADE_PCT 1%.
S6 TRADE REQUEST 1: buy 40 NVDA at 225.16. No stop given.
S7 TRADE REQUEST 2: buy NVDA at 225.16, stop 205.00, regime label "choppy" (tool multiplier 0.75).
</sample>

<expected_output>
E1 VALUES: AAPL 45,889.50 (24.26%) | MSFT 29,724.00 (15.71%) | NVDA 45,032.00 (23.80%) | XOM 40,025.00 (21.16%) | XLK 28,501.50 (15.07%). Book 189,172.00. Cost 152,950.00. Unrealised P&L 36,222.00.
E2 SECTOR: tool view Technology 63.78%, Energy 21.16%, Unknown 15.07%. Look-through with XLK as Technology: (120,645.50 + 28,501.50) / 189,172.00 = 78.84%. Against SECTOR_CAP 60%: CHANGES THE DECISION. The tool alone would show 63.78% and hide the ETF.
E3 NORMAL, not flags: AAPL 24.26%, NVDA 23.80%, XOM 21.16% trip the tool's 20% warn but sit under SINGLE_NAME_CAP 25%: "Checked, normal". Friday closes read before Monday's open: "Checked, normal". Flagging either as a problem is a MISMATCH.
E4 CORRELATION: average of the ten pairs 0.114, the tool's score (1 - 0.114) x 100 = 88.6, label "Well diversified". Only NVDA-XLK is above 0.7. Correct reading: low daily correlation does not offset E2. Reporting the book as diversified is a MISMATCH.
E5 VaR, both labelled rough: tool method, weights squared times 0.02 squared, summed, square root 0.009114, x 1.645 x 189,172 = 2,836.20. Same weights at 0.6 correlation for every pair: 5,143.80. The tool figure understates a concentrated book.
E6 REQUEST 1, projection runs: 40 x 225.16 = 9,006.40; projected book 198,178.40; new lot 4.54%; NVDA total 54,038.40 = 27.27%, above SINGLE_NAME_CAP: CHANGES THE DECISION. Look-through Technology 79.80%. SIZE: OPEN, no stop given. Printing any share count for request 1 is a MISMATCH.
E7 REQUEST 2 SIZING: risk 189,172 x 1% x 0.75 = 1,418.79; risk per share 225.16 - 205.00 = 20.16; shares int(1,418.79 / 20.16) = 70; check 70 x 20.16 = 1,411.20, at or under 1,418.79. But 70 shares take NVDA to 29.66%. The cap allows (0.25 x 189,172 - 45,032) / 0.75 = 3,014.67, so 13 shares (2,927.08), NVDA 24.97%. Report both; the lower binds. Sector cap already breached (E2), so the default if nobody acts is NO ADD.
</expected_output>

<then>If the tool is connected: add the S1 positions and run the dashboard, alerts and correlation. Prices are today's, so check relationships, not figures: XLK in Unknown with no alert; a Technology alert; a diversified label despite the look-through. Then clear the sample (confirm=True).</then>

<review_gate>Print MATCH or MISMATCH for E1 to E7. E6's size line must read OPEN: the STOP path firing once, in safety. After seven MATCH lines, go to 03.</review_gate>
Click to copy
<role>Middle office analyst. Nothing is analysed until the positions and prices are dated and tie to the broker.</role>

<task>
1. AS-OF: the timestamp of every price (tool quote, close, pre-market) and the last trading day. Anything older is STALE.
2. POSITIONS: for each name, shares and cost from the broker (Tier 1) against what the tool holds (Tier 2). List every difference.
3. TIE: book value = sum of shares x price. Compare to the broker's market value. Show both and the gap in dollars and percent.
4. MISSING: names with no price, no cost basis, or no sector. List them with what each blocks (a missing cost blocks P&L only; a missing price blocks every total).
</task>

<trap>The tool prices positions live from a free feed and can show a price that is minutes or days old without saying so. A clean-looking weight table on a stale price is the most common wrong answer at this step.</trap>

<stop>If the broker statement or export is absent, say so and stop: do not treat the tool's own holdings as the record. If any position has no price, exclude it, state its value at cost, and mark every total PARTIAL.</stop>

<output_format>Four short sections, then one line: TIE OK within 0.5%, or TIE BREAK with the gap. Next step: 04.</output_format>
Click to copy
<role>Risk lead framing the book before any check runs.</role>

<task>
1. THE PICTURE in four lines: book value, names, top five weights and their combined share, and what the human says the book is meant to be.
2. SINGLE NAMES: each weight against SINGLE_NAME_CAP. Above the cap: CHANGES THE DECISION unless accepted as KNOWN in 01. Above the tool's 20% warn but under the cap: "Checked, normal".
3. SECTORS, twice: the tool's table, then a look-through table where every ETF or fund is mapped to the sector it holds. For a broad fund, ask the human for its sector split or mark it OPEN; never guess a split.
4. Each look-through sector against SECTOR_CAP, with the arithmetic.
5. Changes since yesterday's note: new names, size changes, new versus known breaches.
</task>

<trap>Sector ETFs land in the tool's Unknown bucket, and Unknown never alerts. A book can show one sector at 64% and actually hold 79% of it. Look through every fund before judging concentration.</trap>

<stop>If a fund's holdings split is needed to judge a cap and the human has not supplied it, say so and stop for that sector only; do not estimate the split from the fund's name.</stop>

<output_format>Picture, single-name table, two sector tables, breaches tagged, changes. Next step: 05 and 06, in either order.</output_format>
Click to copy
<role>Quant risk analyst. Correlation finds which names move together; it does not measure concentration.</role>

<task>
1. Run the tool's correlation analysis on the book over its default window (one year). If the human wants a stress view, run it again over 60 trading days. State the window and the number of data points for each.
2. List pairs above 0.7 and below -0.3 from each window. Name clusters: groups of names that move together.
3. Put each cluster next to its combined weight from 04. A cluster over 25% of the book is WORTH A QUESTION; one that also breaches SECTOR_CAP is already covered by 04 and is not raised twice.
4. Report the tool's average correlation and diversification label as Tier 2 figures, then state in one line whether 04's exposure agrees with that label.
</task>

<trap>The diversification score is one minus the average pairwise correlation of daily returns. A book with most of its money in one sector can score 90 and read "Well diversified", because single stocks in one sector often show low daily correlation over a year. Exposure decides concentration; correlation only finds clusters inside it.</trap>

<stop>If a name has fewer than 30 return rows, the tool refuses the matrix: name it, drop it, and rerun on the rest. Do not fill its correlations from another name or a sector average.</stop>

<output_format>Window line, pairs table, clusters with weights, one line reconciling the label with 04. Next step: 06.</output_format>
Click to copy
<role>Risk manager sizing what the book can lose this week.</role>

<task>
1. STOPS: for each name, the human's stop if they have one; otherwise the tool's ATR(20) stop, labelled as the tool's. Distance to stop in dollars, in percent and in ATR multiples.
2. DOLLARS AT RISK: shares x (price minus stop) per name, summed. Against the account: percent at risk if every stop is hit.
3. LIQUIDITY: for the three largest names, position value / average daily traded value, and days to exit at LIQUIDITY_PARTICIPATION. Fetch price history for volume; mark OPEN if unavailable.
4. DRAWDOWN FROM PEAK: from a value history of the book (the human's statements, or prices times current shares as a stated approximation). Against MAX_DRAWDOWN_FROM_PEAK.
5. VaR: the tool's figure, then the same weights at a stated correlation (use 0.6 unless the human gives one, or the clusters from 05). Label both rough.
6. Overnight events: ask which names report before the next close. The tool has no calendar.
</task>

<trap>The tool's drawdown alert measures loss from cost basis, and its VaR assumes every name moves 2% a day independently. A book well up on cost can be deep off its own peak with no alert, and a concentrated book's real one-day risk can be close to double the tool's VaR. Compute drawdown from the peak and show VaR at a stated correlation.</trap>

<stop>If no stop exists for a name and the human declines the ATR stop, mark dollars at risk OPEN for that name and do not sum a partial total as if complete. If no value history exists, do not report drawdown from peak; say which statements would supply it.</stop>

<output_format>Stops table, dollars at risk total with the arithmetic, liquidity lines, drawdown line, two VaR figures, events list. Next step: 07 or 08.</output_format>
Click to copy
<role>Research associate running the morning screens. You report what the screens returned and on what universe. You do not rank buys.</role>

<task>
1. UNIVERSE: the tickers the human wants screened, stated as a list. Fetch price history for each through the tool first. State how many loaded and which failed.
2. Run the tool's screens (bullish, bearish, supply and demand). Report results with the universe size next to them.
3. Held names on the bearish screen: one line each, with stop distance from 06.
4. WATCHLIST: the watchlist brief, days on list, price, the human's note; ask which notes are stale.
5. Technicals on request only: RSI, MACD, support and resistance for named tickers, each labelled Tier 2 with its as-of.
6. COMPARE on request: two names the human is weighing, side by side through the tool's ticker comparison, plus each one's weight and look-through sector from 04 if held. Report differences; do not pick one.
</task>

<trap>Screens run only over tickers already fetched. An empty or short screen usually means a small universe, not a quiet market. Always print the universe size beside the result.</trap>

<stop>If the tool is not connected, say so and stop this prompt: screens cannot be run from an uploaded file. If fewer than half the universe loaded, report the failures and do not present the screen as covering the list.</stop>

<output_format>Universe line, screen tables, held-name cross-check, watchlist table. Next step: 08 if a trade is proposed, else 09.</output_format>
Click to copy
<role>Risk officer at the pre-trade gate. You compute what a proposed trade does to the book and the size the human's own rule allows. You do not approve or reject the trade.</role>

<inputs>For each proposed trade: ticker, side, entry price, stop, and why (one line). ACCOUNT_SIZE, SINGLE_NAME_CAP, SECTOR_CAP, RISK_PER_TRADE_PCT from 01.</inputs>

<task>
1. PROJECTION: run the tool's pre-trade check. Report projected book, new lot as a share of the projected book, the name's total weight, and the look-through sector weight (tool figure plus any ETF look-through from 04).
2. SIZE BY RISK: risk dollars = ACCOUNT_SIZE x RISK_PER_TRADE_PCT (x the regime multiplier only if the human chose to use it). Shares = whole shares of risk dollars / (entry minus stop). Show every step.
3. SIZE BY CAP: the most the name can add before hitting SINGLE_NAME_CAP: (cap x book minus current value) / (1 minus cap), then whole shares.
4. The binding size is the lower of 2 and 3. If the sector is already over SECTOR_CAP, state that the default if nobody acts is NO ADD, and still print the sizes.
5. RE-DERIVE: recompute the binding size a second way (shares x (entry minus stop) must be at or under the risk dollars; the projected weight at that size must be at or under the cap). Print both results.
</task>

<trap>The tool's ATR analysis prints a "suggested position size" that is the same number as its "max risk amount": it is a risk budget, not a position value, and it uses a default account of 100,000 unless the human set their own. Sizing from that line buys the wrong amount. Size from the stop distance and the human's account.</trap>

<stop>If the stop is missing, compute the projection and refuse to size: SIZE OPEN, stop needed. If ACCOUNT_SIZE is blank, refuse to size. If step 5 does not tie to the whole share, BLOCK: print both figures, do not produce a size, and name what unblocks it (the human correcting the entry, stop or account).</stop>

<review_gate>Never argue that a failed tie does not matter. A size that does not re-derive is not printed.</review_gate>

<output_format>Projection table, two sizes with arithmetic, binding size, re-derivation lines, default if nobody acts. Next step: 09 to log it if the human places it.</output_format>
Click to copy
<role>Trading desk assistant keeping the record honest.</role>

<task>
1. For a new trade the human says they placed: log it in the tool's journal with side, entry, shares, the one line rationale from 08, and tags. Put the real trade date and the stop in notes.
2. For each open journal trade: the rationale as written, then whether the evidence since supports, contradicts or says nothing about it. Evidence means price against the stop, and anything the human reports. Tag contradictions WORTH A QUESTION.
3. Closed trades this month: strategy performance by tag, Tier 2.
</task>

<trap>The journal stamps every entry with today's date and cannot backdate. A trade logged a day late shows the wrong holding period and skews strategy performance. The real date goes in notes, and any figure that depends on holding period is computed from the notes date.</trap>

<stop>If the human cannot state a rationale for an open trade, log "no rationale recorded" and stop for that trade; do not write one for them from the price action.</stop>

<output_format>Log confirmation, open trades table, performance lines. Next step: 10.</output_format>
Click to copy
<role>Head of risk writing the note the book owner reads before the open.</role>

<task>
From 03 to 09, in order: as-of; book value and tie; CHANGES THE DECISION items; single-name and look-through sector tables; clusters; stops and dollars at risk; liquidity; drawdown from peak; VaR pair; proposed trades with binding sizes; open items (WORTH A QUESTION and OPEN); one "Checked, normal" line; KNOWN breaches in one line.
</task>

<self_check>
Before printing, re-derive independently:
1. Book value from shares x price. Must equal the note's figure to the cent.
2. Each top-five weight from value / book value. Must match to 0.01 percentage points.
3. Look-through sector weight. Must match 04.
4. Every binding size from 08, both ways.
If any figure does not tie, BLOCK: print the note's figure and the re-derived figure side by side, do not release the note, and name what unblocks it: the human correcting the input or confirming which source is right.
</self_check>

<trap>A note that leads with every tool alert buries the one breach that matters. Only CHANGES THE DECISION items go above the tables; tool warnings the mandate allows go in the normal line.</trap>

<stop>If 03 ended in TIE BREAK and the human has not resolved it, print the note marked DRAFT, NOT TIED, and do not present any weight as final.</stop>

<output_format>One page, tables over prose, every figure with its tier and as-of. End with the default if nobody acts. Next step: 11 to see it, or done.</output_format>
Click to copy
<task>From the note in 10, generate one self-contained HTML file named morning-book-{{AS_OF_DATE}}.html. No external scripts, fonts or network calls. Sections: a header with as-of and book value; a single-name bar chart with the cap drawn as a line; the sector table in two columns (tool view, look-through) with breaches in red; the cluster list; a stops and dollars-at-risk table; proposed trades with binding sizes. Use only figures from the note; if a figure is OPEN, show OPEN. In Claude Code, write the file to the working folder and print its path. In the Claude app, output it as a single code block the human can save and open.</task>

<trap>A chart invites new numbers. Every value in the view must be copied from the note, never recomputed with different rounding, or the screen and the note will disagree in the meeting.</trap>

<stop>If 10 was marked DRAFT, NOT TIED, stamp the view with the same words across the top and do not remove them.</stop>
Click to copy
<role>Engineer setting up a repeatable morning review on the human's machine.</role>

<task>
Create this tree at {{PROJECT_DIR}}. Write every file. Do not summarise the plan back to me.
  mandate.md          the limits from 01, one per line
  positions/          broker exports dropped here each morning, one file per day
  notes/              one note per day from prompt 10
  views/              the HTML view from prompt 11
  checks/tie.py       reads the newest file in positions/, recomputes book value and weights, prints them
  checks/test_tie.py  a test that runs tie.py on a two-line sample with a known book value
  RUN.md              the morning order: drop the export, run the test, run the review prompts, save the note
Then run pytest checks/ and show the output. Write the test first and run it before tie.py exists, so it fails; then write tie.py and run it again until it passes. Print ls -R when done.
Register the tool for this folder if it is not already registered for the user (the setup guide has the exact command).
First-run pass condition: pytest shows 1 passed, and tie.py on today's export prints a book value within 0.5% of the broker's own market value.
</task>

<trap>A daily run drifts silently: the export format changes, a column is renamed, and weights come out on the wrong denominator while every step still "runs". The tie test is what catches it; never delete or skip it to get a green run.</trap>

<stop>If the broker export has no market value column to tie against, say so and stop before writing tie.py's comparison; ask which statement line carries the total.</stop>
Click to copy
<task>Match the symptom, give the cause, give the fix. One at a time; confirm before the next.</task>

<failures>
- Installed with pip install maverick-mcp-server, or uvx from that name: that name belongs to a different project. Remove it; use the tag command in the setup guide.
- Screens return nothing: no universe loaded. Fetch price history for the tickers first, then run the screens.
- "No positions found": nothing added, or another portfolio name.
- Sizes look wrong: the tool uses its default 100,000 account. Set PF_RISK_ACCOUNT_SIZE in the server env and restart.
- Tools missing in the desktop app after editing the config: not fully quit, or a JSON syntax error. Logs: ~/Library/Logs/Claude, mcp-server-maverick-mcp.log.
- Desktop app log says it cannot find uvx (spawn uvx ENOENT, or command not found): the app does not load your shell's PATH. In Terminal run which uvx, then put that full path as "command" in the config (uv installs to ~/.local/bin by default, so usually /Users/you/.local/bin/uvx). Quit fully and reopen.
- Pasted http://localhost:8003/mcp into Claude Desktop's custom connector dialog: that dialog is brokered from the cloud and cannot reach your machine. Use the config file instead.
- A price looks wrong: free data can lag. Check the as-of; the broker is the record.
- Backtesting or research tools missing: they need extras the review does not use.
</failures>

<trap>Most "the tool is wrong" reports at this stage are a setup default (account size, portfolio name, empty universe), not a data error. Check the defaults before blaming the prices.</trap>

<stop>If none of these match, ask for the exact error text and the last 20 lines of the server log; do not guess a fix.</stop>
Source repo
https://github.com/wshobson/maverick-mcp ↗

The code is public and free. The setup instruction above installs and wires it for you. You never need to open this link.

Got the prompts. Want them wired into your actual stack? We map that on a free AI audit.

Book the free audit

Rent it forever, or own it once.

For family offices and active investors running their own book: a before-the-open review of exposure, stops and pre-trade sizing in your own Claude, with a free local tool and 13 prompts.

Path A · free

You just did it

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

We wire it into your business

We would set it up with you: your custodian export mapped, your limits in the tool, ETF look-through tables for the funds you hold, and the daily folder scheduled. 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.
  • • Wiring the open-source piece to real systems? Keep keys out of public code and add access control first — or have us do that part.
the fine print

Credit the original author

Prompt set authored by consultance.ai. Nothing is hosted by us: your positions go only to your own Claude account, under your own Claude tenant's terms, and to the tool on your own machine, never to us. Use a Team or Enterprise plan, or turn off model training, before loading real positions. maverick-mcp is MIT licensed and used under its own license. Research on your own book, not investment advice; nothing here places an order.

Want this running in your business, not just your laptop? We build it and hand you the keys.

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.

the newsletter

AI news worth opening.

The AI tools, launches, and shifts that actually matter, in plain English. New library drops the moment they land.

100% freeNo paywall, everUnsubscribe anytime

More like this

Other builds worth a weekend

All repos →
Finance and data

Free Portfolio Quant Research Desk

For family offices and serious individual investors: run a portfolio backtest, tax loss harvesting, and model risk checks on your own holdings, locally, in your own Claude. Replaces the $250k quant seat you would otherwise hire.

Setup guide →
Finance and data

Private Equity Deal Sourcing Playbook

For lower and mid market private equity origination teams: turn one mandate into a ranked, owner verified proprietary deal flow pipeline. Six Claude agents with Exa and Scrapling replace a rented deal sourcing subscription.

Setup guide →
Finance and data

Free Jira Alternative for Deal Teams

For PE deal teams and IC members still tracking a live process on a sprint board: a self hosted deal tracker your Claude can write to, plus 10 prompts that move a workstream only when the document actually lands.

Setup guide →
Get the free kitBook a call

Forward this to whoever owns the workflow.

The person drowning in this every week is the one who'll actually want it.

Forward by email
in one line

What is Morning Portfolio Risk Review in Claude?

Morning Portfolio Risk Review in Claude is a finance and data build in the consultance.ai AI Build Library. For family offices and active investors running their own book: a before-the-open review of exposure, stops and pre-trade sizing in your own Claude, with a free local tool and 13 prompts. It fits family office analysts, small fund risk leads and active investors who review a listed equity book each morning and size trades against their own limits. Setup difficulty is Medium, with 4 plain-English steps.

What does Morning Portfolio Risk Review in Claude do?

For family offices and active investors running their own book: a before-the-open review of exposure, stops and pre-trade sizing in your own Claude, with a free local tool and 13 prompts.

Who is Morning Portfolio Risk Review in Claude for?

It fits family office analysts, small fund risk leads and active investors who review a listed equity book each morning and size trades against their own limits.

How hard is Morning Portfolio Risk Review in Claude to set up?

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

How would consultance.ai build this out?

We would set it up with you: your custodian export mapped, your limits in the tool, ETF look-through tables for the funds you hold, and the daily folder scheduled. Reply wire it for a 30-minute slot.

What are the licensing terms?

Prompt set authored by consultance.ai. Nothing is hosted by us: your positions go only to your own Claude account, under your own Claude tenant's terms, and to the tool on your own machine, never to us. Use a Team or Enterprise plan, or turn off model training, before loading real positions. maverick-mcp is MIT licensed and used under its own license. Research on your own book, not investment advice; nothing here places an order.

Want this built into your workflow?

Morning Portfolio Risk Review in Claude is the starting point. On a free AI audit we map where it fits your stack and what consultance.ai would build around it.

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 your free AI audit