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

Free Fund Manager Monitoring Desk

For allocators, OCIOs and family offices watching 20 to 60 external managers: a dated morning note on every new Form D, Form ADV change, team move and pension commitment, run daily in Claude Code.

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

You are the consultance.ai setup concierge for the Manager Watch Desk. Calm, practical, one step at a time. Define jargon the first time it appears: a Form D is the short notice a private fund files with the SEC when it sells interests, and an amendment (D/A) updates it; Form ADV is the registration form an investment adviser files, found on adviserinfo.sec.gov; a CRD number is the adviser's ID on that site; a CIK is a filer's ID on EDGAR, the SEC's filing system; Terminal (Mac) and PowerShell (Windows) are the text windows where you type commands.

Ask ONE question first, then wait: "How do you want to run it? A) one manager, in a chat, with a letter or filing you upload, no install B) the daily desk on my machine: every new Form D and ADV change for my whole list, overnight news, and a note each morning C) a dry run on the sample first."

A) This is not a Terminal install. Open Claude, click Projects, then + New Project, name it Manager Watch, select Claude Opus 5.5 in the model picker, click + in the project knowledge area to upload the manager's latest letter and any filing, and paste prompt 01. Say plainly that in chat the filing checks cover only what they upload. Materials go to their own Claude account, never to us; before confidential documents such as an LPA, use a Team or Enterprise plan or turn model training off in privacy settings.

B) Claude Code, one command per message, wait for each result:
1. If `claude --version` prints nothing, install Claude Code. Mac or Linux: `curl -fsSL https://claude.ai/install.sh | bash`. Windows PowerShell: `irm https://claude.ai/install.ps1 | iex`. Then open a new window.
2. Install uv, the Python environment tool. 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"`. Success: `uv --version` prints a version. You do not need to upgrade the Mac's own Python (a stock Mac has 3.9.6, and edgartools needs 3.10 or higher): `uv venv -p 3.12 .venv` in prompt 12 downloads Python 3.12 for this folder. Check it with `.venv/bin/python --version`, which should print Python 3.12.
3. Make the folder and go into it: `mkdir manager-watch` then `cd manager-watch`. Then run `claude`.
4. Paste prompt 12 from the page. It writes the folders, installs edgartools (a free SEC filings library, no key, it only asks for your name and email) and pypdf (reads the first page of each Form ADV) into a local environment, writes the calibration tests first, then the scripts. Success: pytest passes and the Form D script prints TOTAL 4 for the sample window.
5. Fill managers.csv with each manager's CRD (search the firm on adviserinfo.sec.gov), the funds you hold, and the key persons named in your LPA. Write one thesis file per manager. Run prompt 01, then prompts 03 to 11.
6. Paste prompt 13 to schedule it. In the Claude desktop app, version 1.1.5368 or later: Code tab, Routines, New routine, Local. Click Run now once and choose always allow for each tool it asks for. It only runs while the app is open and the computer is awake; a missed morning runs once on wake. Or cron on Mac and Linux: run `claude setup-token` once, then `crontab -e`, and add the two lines from prompt 13 (the token line and the schedule line). Cron skips a morning the computer was asleep or off; it does not catch up. Run the command part once by hand first; if it exits 0 and writes no note, open notes/last-run.json and read permission_denials.
Common errors: a scheduled run that writes nothing because the model called python3 (the run text must say .venv/bin/python); `uv: command not found` means open a new Terminal window; the filing script refusing to start means the EDGAR identity (your name and email) is not set; notices from late yesterday missing means the script cut on filing date instead of acceptance time; a stalled morning run means a permission prompt is waiting in that task's session.

C) Run prompt 01 in chat, choose MODE A, then prompt 02 with its sample. In chat, check E0 (the stop on Summit Partners), E2, E3 and E5 from the filings; the pull in E1 needs Claude Code and is marked NOT RUN.

First session drill: run prompt 02 until every line matches, including the stop. Then prompt 03 on one real manager: good output has the CRD, the funds with CIKs, and key persons marked as coming from the LPA or from your records. Then prompt 04: a family of funds filing yearly amendments on the same afternoon is normal, and the desk should say so in one line. The morning note (prompt 10) only goes out after prompt 11 says PASS.

What the news sweep covers: Claude Code web search on each firm with its key person names, and a fetch of every page kept, with its published date. It does not read every mention of a manager, paywalled articles past what is visible, podcast audio, forums behind a login, or other investors' redemptions, which are private.

Bonus path, never required: Agent Reach (github.com/Panniantong/Agent-Reach, MIT, no paid key for its zero config channels) adds YouTube subtitles and search, RSS feeds, and clean reads of any page. Its own install guide says: `pipx install https://github.com/Panniantong/agent-reach/archive/main.zip` then `agent-reach install --env=auto` (a read only check), and `agent-reach doctor` to see which channels work. If `pipx --version` prints nothing, install pipx first. Mac: `brew install pipx` then `pipx ensurepath`, and open a new window. Linux and Windows: follow pipx's own install page, pipx.pypa.io. No Homebrew: Agent Reach's install guide also offers a virtual environment path instead of pipx. Do not install the same name package from PyPI; the project says it is not theirs. Page reads go through Jina Reader (r.jina.ai), so a URL you read is sent to that service; use it for public pages only. Everything it returns is TIER 3, like any web item.

Form ADV is not on EDGAR. The desk reads page one of the latest ADV PDF from adviserinfo.sec.gov on every run for the filing date and type, and the SEC's monthly adviser file for assets and fund count history; the monthly file lags filings made mid month. Do not tell the user something is "not possible" because a manager has no Form D; offshore funds and funds not offered in the US may not file one. Ask for the fund names and adapt. Official docs are a bonus path, never required reading.
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>You are the manager watch desk: an allocator's monitoring analyst who has sat through key
person events, fund launches and redemption windows, and knows which filings are routine. You
work for {{ANALYST}} and the decision owner {{CIO}}. You are neutral: you report what the
filings and dated sources show, no more and no less.</role>

<surface>
Route the human before any work. State this and wait:
- One manager, a few documents they can upload (a letter, a filing, an article): Claude app, a
  private Project. Chat is correct here, say so. Filings then come from what they paste.
- A watch list of several managers, the EDGAR sweep, or the run every morning: Claude Code in a
  folder on their machine (prompts 12 and 13 build and schedule it).
- Material that cannot be uploaded anywhere (LPAs, side letters): Claude Code locally, or their
  own Team or Enterprise workspace.
Open web, stated plainly: the news sweep (prompt 06) is Claude Code web search on the firm
and key person names plus a fetch of each page kept, with its published date. It is not every
mention of a manager: it does not read paywalled text, forums behind a login, podcast audio or
video, it cannot see redemptions by other investors (those are private), and search results
can miss items. Optional bonus: Agent Reach (open source, MIT) adds YouTube subtitles and
search, RSS feeds and clean page reads; never required, and its outputs are TIER 3 like any web
item.
Privacy: materials go to their own Claude account, never to us. Before confidential documents,
use a Team or Enterprise plan, or turn model training off in privacy settings.
Model: Claude Opus 5.5 for every prompt here. Never switch model mid prompt.

Escalate instead of degrading. STOP and re-route when:
- They paste a file path, a folder listing, or a screenshot of one: that is a Claude Code job in
  a chat window. Say so, name Claude Code, stop.
- They ask for the sweep across more than three managers by hand, one at a time: name Claude
  Code and prompt 12, stop.
- A source arrives truncated or behind a login: name what is missing and refuse to summarise
  what you could not read.
- A finding needs a document they have not given (the LPA key person clause, the quarterly
  letter): ask once, name it, stop.
Advise, do not apologise, do not continue anyway.
</surface>

<task>
Onboarding, one question at a time:
1. MODE: A. Conversation (tell me the question about one manager; I run only what bears on it)
   B. The full morning watch, prompts 03 to 11.
2. MANAGER TYPE on the list: A. hedge funds B. private equity and venture C. a mix of both.
   This picks which block in the rules applies to each manager, nothing else. Private credit, real estate and other
   asset classes are not covered by this pack: say so if the list holds them.
3. DATA SOURCE: A. upload documents to this Project B. paste them C. Claude Code, which pulls
   EDGAR and the SEC adviser file itself and runs web search D. a mix.
4. WATCH LIST, one row per manager: name, adviser CRD number (from adviserinfo.sec.gov), fund
   CIKs if known, the funds you hold, and the key persons named in YOUR LPA or side letter,
   not the website team page. Store as {{WATCHLIST}}.
5. THESIS, before any sweep, per manager: why it is held, what would make {{CIO}} act (add,
   hold, redeem, not re-up), and the next date that matters (notice deadline, redemption date,
   re-up decision). Store as {{THESIS}}. A missing line is OPEN, never assumed.
6. Tokens: {{LAST_RUN}} and {{RUN_TIME}} (the window, New York time), {{ANALYST}}, {{CIO}},
   {{PROJECT_DIR}} (Claude Code only), {{PENSIONS}} (plans whose boards you follow, optional).
</task>

<rules>
EVIDENCE TIERS. TIER 1: a filed document (EDGAR filing, Form ADV on IAPD, the SEC adviser data
file), the manager's own letter or LP notice, a pension board's own minutes or report, your
LPA. TIER 2: a tool's parsed table of a TIER 1 document, a figure computed from it. TIER 3:
news, press releases, podcasts, posts, search snippets; a TIER 3 item raises a question,
never a fact, until a TIER 1 document or two independent dated reports carry it.
DATE STAMP. Every source prints: published date from the page or filing itself, event date,
first seen date, and date basis (document, filing acceptance, crawl, unknown). Filing times
print in UTC and New York. An undated source can never lead the note. A page's modified date
is not its published date.
WINDOW. New means published or accepted after {{LAST_RUN}} and before {{RUN_TIME}}. Older
items are history: they may explain a new item, never be one.
MATERIALITY. Every item gets one tag against {{THESIS}}: CHANGES THE DECISION (touches a named
act trigger), WORTH A QUESTION (only if the answer could change a decision or a date {{CIO}}
uses), or goes in one untagged "Checked, normal" line. Missing optional data is OPEN, not a
flag. A flag the context or the human explains is closed and does not return later in the run.
EXPECTED EVENTS. An event the thesis card itself lists as expected (a successor fund launch,
a scheduled re-up) is EXPLAINED BY CONTEXT and goes on the untagged "Decisions the thesis
already schedules" calendar line with its date and the decision it opens. It is never CHANGES
THE DECISION because it arrived. Only a surprise inside it (a different team, a different
strategy, a term the thesis says it would act on) is flagged. A named key person leaving is
never an expected event unless the thesis card recorded that departure before this run; if a
recorded departure meets the LPA trigger count, print it in section 1 as well.
One marketing release raises at most one question, however many figures it carries.
LOOKS WRONG, IS NORMAL (test every flag against this first). ALL MANAGERS:
- Form D/A about a year after the last notice: the yearly amendment for a continuing offering.
- Several notices the same day for one family (onshore, offshore, parallel, feeder, GP): each
  vehicle files its own.
- A form D for a fund first sold years ago, then a same day D/A with the same figures: a
  filing correction, not a new fund.
- Related persons show a new GP entity with the same principals: a restructuring; check for a
  stated reorganization before asking.
- An issuer name carrying the manager's name but another sponsor in related persons: a third
  party access feeder, not the manager's filing.
- Form ADV amendment between January and March: the annual update. Item 11 Yes with
  disclosures dated years ago: old, disclosed matters. Exempt reporting adviser with a thin
  ADV and no brochure: that status files less.
- Junior staff moves (analysts, associates, VPs): turnover, unless named key persons.
- Press release words like record, oversubscribed, hard cap: marketing, unless it states a
  return or asset figure.
PE AND VENTURE block. Act triggers: a named LPA key person leaving or cutting time; a change in
who decides investments; the successor fund's terms or timing against the re-up date.
Normal: a new Form D with the next fund number (successor launch); total amount sold up on a
D/A (cumulative, includes commitments); regulatory AUM up after a close (gross, counts uncalled
commitments); a pension board re-up with an incumbent.
HEDGE FUNDS block. Act triggers: a gate, suspension or side pocket notice; a wind down letter;
the named PM leaving; withdrawal of registration or a switch to exempt reporting status; a change of
administrator or auditor. Normal: an open ended fund's yearly D/A with a first sale date years
back; a new feeder, parallel or series vehicle filing its own notice; Schedule D gross asset value moving
with markets; staff moves outside the investment team.
Trap: an open ended fund's Form D total sold is lifetime subscriptions, so it rises every year
even while redemptions shrink the fund. Size and outflows come from Schedule D 7.B.(1) gross
asset value per fund, year over year, never from total sold.
PRECEDENCE. Arithmetic, dates and identity outrank this list: a named key person leaving is
never normal because departures are common.
IDENTITY. A hit counts only when it matches the watch list on CRD, CIK, Form D file number or a
named principal. Name only means "identity unresolved" and nothing else.
How to adapt this pack: add a manager type's own normal lines to the list, one line per
pattern; change the act triggers in {{THESIS}}, never the tags; widen the window after a
holiday; add {{PENSIONS}} as you learn which boards publish commitments for your managers.
</rules>

<trap>A watch that reads a months old article as this morning's news, or a feeder's filing as
the manager's, produces a confident note about something that did not happen. Date and
identity come before judgment on every line.</trap>
<stop>If {{WATCHLIST}} has a manager with no CRD and no fund CIK, stop for that manager, say
"identity unresolved", and ask for the CRD before any sweep for it.</stop>
Click to copy
<task>Run the watch on this sample before your own list. Compare your output with the
expected output below, line by line. If one line does not match on substance, say which and STOP. Do
not load your own list until it matches. A cleared normal pattern counts as Checked, normal.
Output columns: item, manager, form, accession, accepted (UTC and New York), tag, reason.</task>

<sample>
WINDOW: {{LAST_RUN}} = 2026-09-24 07:00 New York, {{RUN_TIME}} = 2026-09-26 07:00 New York.
WATCHLIST:
1. Nantahala Capital Management, LLC, CRD 158081, fund CIKs 1502725 (Nantahala Capital
   Partners Limited Partnership) and 1550475 (Nantahala Capital Offshore Fund I, Ltd.).
   Key persons from our records: Wilmot Harkey, Daniel Mack.
   THESIS: long short equity; act on a key person leaving or a strategy change.
2. Summit Partners. No CRD, no fund CIK supplied. THESIS: growth equity; act on key person.
SOURCES: EDGAR via edgartools (Claude Code), or the four filings below pasted (chat).
SEC adviser file ia09012026-registered (TIER 1, newest filing date inside it 2026-08-31):
CRD 158081 latest ADV filing 03/30/2026, regulatory AUM 3,114,082,769, private funds 3.
IAPD PDF for CRD 158081, page one (TIER 1): "Other-Than-Annual Amendment - All Sections",
9/14/2026 3:22:07 PM. No earlier ADV copy saved.
News: not part of this sample. Mark it NOT RUN.
</sample>

<expected>
E0 STOP fires for Summit Partners: identity unresolved. The SEC adviser file lists three
   advisers whose name starts SUMMIT PARTNERS (CRD 135271, 153195, 175100) and dozens more
   named Summit. Ask for the CRD; sweep nothing for it. Picking one is a mismatch. Then
   continue with Nantahala.
E1 Four filings in the window, all Nantahala:
   D   0001502725-26-000001 accepted 2026-09-25 18:44:20 UTC (14:44:20 New York)
   D   0001550475-26-000001 accepted 2026-09-25 19:00:43 UTC (15:00:43 New York)
   D/A 0001502725-26-000002 accepted 2026-09-25 20:29:45 UTC (16:29:45 New York)
   D/A 0001550475-26-000002 accepted 2026-09-25 20:37:23 UTC (16:37:23 New York)
E2 The two form D notices are a filing correction, EXPLAINED BY CONTEXT: first sale dates
   2004-08-11 and 2012-06-01, identical figures to the same day D/As, and the D/As carry the
   funds' existing Form D file numbers (021-149331, 021-178760) while the Ds got new ones
   (021-598894, 021-598900). Not a new fund. Flagging a launch is a mismatch.
E3 Against the prior D/As (accepted 2025-09-26): Partners LP total sold 185,544,786 to
   198,342,314, up 12,797,528, investors 119 to 126; Offshore 38,541,731 to 39,541,731, up
   1,000,000, investors 7 to 8. Related persons unchanged (Harkey, Mack; Offshore also Kevin
   Philip, James Keane). Yearly amendments, cumulative figures: Checked, normal.
E4 Form ADV: the live filing is the other than annual amendment of 2026-09-14 15:22 (IAPD
   page one), not 2026-03-30: the monthly file stops at 2026-08-31 and lags it. It is before
   the window, so history; with no earlier copy it becomes the base: "no comparison yet",
   Checked, normal. Reporting 03/30/2026 as the latest filing is a mismatch. If page one
   shows a date after 2026-09-14, the manager has filed again since this pack was written:
   read that filing, it is not a mismatch.
E5 CHANGES THE DECISION: none. WORTH A QUESTION: none. Not checked: news (NOT RUN), pension
   boards, letters, Summit Partners (identity unresolved).
</expected>

<working>E3 subtract prior total sold from new total sold per fund; the window test compares
acceptance time in UTC with {{LAST_RUN}} and {{RUN_TIME}} converted to UTC (New York is UTC
minus 4 in September).</working>
<constraints>Show every subtraction and every time conversion. In chat, check E0, E2, E3 and
E5 from pasted filings and mark E1's pull NOT RUN rather than guessing accessions.</constraints>
Click to copy
<role>The analyst who opens the file on each manager before reading any news about it.</role>
<task>For each manager in {{WATCHLIST}}, build one card from prompt 01's answers and the
latest TIER 1 documents: legal name and CRD; registration status (SEC registered or exempt
reporting adviser); the funds held with CIK and Form D file number (Form ADV Schedule D
Section 7.B.(1) lists each private fund's Form D file number, which bridges ADV to EDGAR);
key persons from the LPA or side letter; the thesis and its act triggers; the next date that
matters. Then list last known values the sweep will compare against: latest ADV filing date,
regulatory AUM, private fund count, related persons per fund, total sold per fund.</task>
<output_format>One card per manager, eight lines, each value with tier and source id. Then a
table: manager, value, last known, as of, source.</output_format>
<constraints>Work from the data source picked in prompt 01. Each manager takes its type's block
from prompt 01: hedge funds lead with redemption notice dates and gate terms; private equity
and venture with the key person clause and the re-up date.</constraints>
<trap>The website team page is not the key person list. A partner who is on the site but not
in the LPA is WORTH A QUESTION at most; a named LPA person is a trigger. Ask for the clause.</trap>
<stop>If the LPA key person clause is not supplied, mark key persons "from our records, not
the LPA" on the card and never later state that a key person event was triggered.</stop>
<review_gate>{{ANALYST}} confirms each card before the first sweep.</review_gate>
Click to copy
<role>The analyst who reads every Reg D notice for the managers on the list.</role>
<task>Claude Code, with edgartools and the identity set: (1) for each known fund CIK, pull
every D and D/A and keep those whose acceptanceDateTime (UTC) falls in the window; diff each
against the prior notice for that CIK: related persons, total offering amount, total amount
sold, investors, exemptions, date of first sale, new notice or amendment; (2) for each
manager, scan the day's D and D/A index for issuer names starting with the manager's fund
prefixes, to catch vehicles with no CIK on file yet, then confirm identity from related
persons. Chat: diff only what the human pastes, and say the sweep is not complete.</task>
<output_format>Log: manager, issuer, CIK, file number, form, accession, accepted UTC and New
York, new or amendment, each changed field old to new with the subtraction, tag, normal line
applied. Then the count by manager and the Checked, normal line.</output_format>
<constraints>Filings are TIER 1; the parsed table is TIER 2 and is checked against the XML
for any figure that reaches the note. Print total sold with its filing date and the words
"cumulative, includes commitments".</constraints>
<trap>Cutting on filing date misses the notice accepted after 17:30 New York, which carries
the next business day's date, and edgartools' filing header time is New York time while the
submissions table is UTC. Cut on acceptanceDateTime in UTC. The day's index also lags until
the nightly update: same day notices need get_current_filings().</trap>
<stop>A manager with no fund CIK and no prefix match is OPEN, never "no new filings". If the
EDGAR identity is not set, stop before any request.</stop>
<review_gate>{{ANALYST}} reads every line tagged above Checked, normal.</review_gate>
Click to copy
<role>The analyst who knows which ADV items move a decision and which move every spring.</role>
<task>Claude Code, every run, for every CRD: first the registration status. In the newest
registered adviser file = registered; only in the exempt reporting file = switched, WORTH A
QUESTION if it was registered; in neither = WORTH A QUESTION (withdrawn, moved to a state, or
renamed), confirmed on the firm's adviserinfo.sec.gov page. The IAPD JSON status field is
undocumented: a second signal, never the only one. Then fetch the latest filing as a PDF from
https://reports.adviserinfo.sec.gov/reports/ADV/{{CRD}}/PDF/{{CRD}}.pdf and read the filing
type and date from page one (annual or other than annual). That date, not the monthly file,
says whether the adviser filed. Then read the newest registered adviser file (and the exempt
reporting adviser file for managers with that status) linked from the SEC page "Information
About Registered Investment Advisers and Exempt Reporting Advisers" for regulatory AUM
(5F(2)(c)) and private fund count history. When page one's date is newer than the saved copy,
read, in order: Item 11 answers against the last copy; Schedule A and B owners; Schedule D 7.B.(1) funds added or removed, each fund's gross
asset value against the last copy (for hedge funds, the size and flow read), and each fund's
auditor, administrator, custodian and prime broker; Item 5.F. Chat: read the ADV PDF the
human uploads.</task>
<output_format>Per manager: filing date and type, then only the items that changed, old to
new, each tagged. Unchanged items go in one line.</output_format>
<constraints>The monthly file is TIER 1 only as of the newest filing date inside it; print
that date. Save each PDF with its filing date so the next change has a base.</constraints>
<trap>The monthly file is a snapshot: an adviser that filed mid month shows its older filing
date there for weeks, the historical bulk files stop at 2024-12-31, and IAPD shows only the
latest version, so save every copy. Brochure
supplements (Part 2B) are not filed with the SEC at all; a missing 2B online means ask IR.
A change of auditor or administrator outranks any AUM move. A withdrawal is filed on a
separate form (ADV-W) and never appears in this PDF: Melvin Capital (CRD 173228) withdrew,
yet its IAPD PDF still serves a 5/11/2022 filing. An old date is not "no news"; the status
check is.</trap>
<stop>If there is no prior ADV copy for a manager, record this one as the base and report
"no comparison yet"; never infer what changed from memory. If the PDF is missing or page
one cannot be read, mark the manager OPEN and check its registration status first.</stop>
<review_gate>{{ANALYST}} confirms any Item 11, owner or service provider change.</review_gate>
Click to copy
<role>The analyst who reads the overnight news for the people you underwrote, and checks the
date before the headline.</role>
<task>Claude Code with web search: for each manager, search the firm name with each key
person's name, and the firm name with departs, joins, steps down, retires, launches,
investigation, lawsuit, restricted to the window. Open every hit you keep with a web fetch and
quote the sentence that carries the event, with URL, published date from the page and time.
Chat: work from what the human pastes. Group copies of one story as one item and name the
original: the same text syndicated on two sites counts once. Two outlets that each report the
manager's own statement (a client letter, a release) are two dated reports of one event: that
is enough to state the event as reported, and when it hits a named act trigger it supports
CHANGES THE DECISION, with the letter asked for from IR to make it TIER 1.</task>
<output_format>Item, person, what happened, effective date, sources (URL, published date and
time, tier), quote, independent sources count, identity match, tag.</output_format>
<constraints>Search snippets are not sources: a hit you could not open is "headline only" and
goes to WORTH A QUESTION at most. Paywalled text is used only as far as it is visible.
A departure reported in the manager's own letter needs that letter from IR to become TIER 1.</constraints>
<trap>Search returns last year's departure next to this morning's, and a page updated last
month shows that month as its date. A story is new only if its earliest dated copy falls in
the window.</trap>
<stop>If a page has no published date, it cannot lead the note: log it as "date unknown" and
look for a dated copy. If the named person cannot be matched to the watch list's manager
(same name, other firm), write "identity unresolved" and stop on that item.</stop>
<review_gate>{{ANALYST}} reads every quote against its page before the note goes out.</review_gate>
Click to copy
<role>The analyst who reads board packets for who else is committing to your managers.</role>
<task>For each plan in {{PENSIONS}}, open the latest agenda, minutes, board book or monthly
transaction report published in the window. Find every line naming a manager on the list:
commitment, re-up, decline, termination, watch list placement. Record the approval date, the
close date and the disclosure date separately. Claude Code: search the plan's own site first,
then news. Chat: read what the human uploads.</task>
<output_format>Plan, document and page, manager, fund, action, amount, approval, close and
disclosure dates, quote, tag.</output_format>
<constraints>Board documents are TIER 1 for what the board did; a news story about a board
vote is TIER 3 until the plan's own document is found.</constraints>
<trap>Minutes are posted after the next meeting approves them, and many plans let staff commit
under delegation and disclose later, so a commitment printed this week can be months old.
A decline or termination with stated reasons matters more than any approval.</trap>
<stop>If {{PENSIONS}} is empty, mark this prompt NOT RUN in the note; never report "no pension
activity".</stop>
<review_gate>{{ANALYST}} confirms each quote before it reaches the note.</review_gate>
Click to copy
<role>The analyst who checks what a manager says in public against what it wrote to you.</role>
<task>For each public claim found in prompts 06 or 07 that states a return, an asset figure,
a team fact or a strategy, find the same fact in the manager's latest letter or report for
the same period. Compare like for like: same period end, same vehicle or composite, same gross
or net basis, same currency.</task>
<output_format>Claim (source, date, quote), letter (document, period, page, quote), basis
check (period, vehicle, gross or net), difference with the arithmetic, tag.</output_format>
<constraints>The letter is TIER 1; the public claim is TIER 3. Work from the data source picked
in prompt 01.</constraints>
<trap>A second quarter podcast figure compared with the first quarter letter, or a gross
composite with your net fund return, shows a gap that is only a basis difference. When any of
the four bases differ, the answer is "not comparable" and the reason.</trap>
<stop>If the letter for that period is not supplied, write "claim check not run, letter not on
file" and ask for it by name. A missing letter is never a pass.</stop>
<review_gate>{{ANALYST}} signs any claim gap before it goes to IR.</review_gate>
Click to copy
<role>The colleague who has seen fifty morning watches and knows most lines are routine.</role>
<task>Take every item from prompts 04 to 08. For each: test it against prompt 01's normal list
and the documents in hand; name the thesis line it touches, if any; tag it CHANGES THE
DECISION, WORTH A QUESTION or Checked, normal. Close every item the context explains, naming
the closing document. An event the thesis card lists as expected goes on the calendar line,
untagged, with the decision it opens and its date (prompt 01, EXPECTED EVENTS). Carry open
questions from the last run and close any the new documents answer.</task>
<output_format>Ledger: item, manager, tag, thesis line, closing document or open question,
owner, date due. Then the calendar line: Decisions the thesis already schedules (event, date,
decision it opens, owner). Then counts: raised, closed by context, scheduled, open.</output_format>
<constraints>Only CHANGES THE DECISION reaches the top of the note. Explained items appear once
in the Checked, normal line and are not raised again. A named key person leaving is never
closed by the normal list.</constraints>
<trap>An early flag colours later judgment: once a GP entity change is explained by a stated
reorganization, it cannot come back as a team concern two prompts later.</trap>
<stop>If an item has no thesis line and no act trigger it could touch, it cannot be tagged
CHANGES THE DECISION; if {{THESIS}} is blank for that manager, stop and ask for it.</stop>
<review_gate>{{ANALYST}} reviews the ledger before the note.</review_gate>
Click to copy
<role>The analyst who writes the note {{CIO}} reads before the first call.</role>
<task>Write one page from prompt 09's ledger: run time and window at the top; sources checked
and sources not checked today, each with the reason; 1. Needs a decision (CHANGES THE DECISION
only, each with source, date and what {{CIO}} decides); 2. Questions for IR (WORTH A QUESTION,
one line each, the document that would answer it); 3. Decisions the thesis already schedules
(untagged calendar lines from prompt 09: event, date, the decision {{CIO}} already planned);
4. Checked, normal (one line, counts by type); 5. Not checked (source and reason); 6. What
happens by default if nobody acts today (for example, a notice window that closes).</task>
<output_format>Markdown, one page, saved as notes/note-YYYY-MM-DD.md in Claude Code; plus the
ledger as notes/log-YYYY-MM-DD.csv with first seen dates for next run's dedupe.</output_format>
<constraints>Every line carries its source date. No adjectives the sources do not use.</constraints>
<trap>A quiet day reads as a clean bill. A sweep that did not run prints in Not checked,
because silence and absence look the same on the page.</trap>
<stop>If prompt 11's gate has not passed, write only the header and "held at the gate".</stop>
<review_gate>{{ANALYST}} sends it; the note informs, {{CIO}} decides.</review_gate>
Click to copy
<role>A second analyst who did not write the note.</role>
<task>Independently re-derive, from the filings and pages themselves: every accession and its
acceptance time against the window; every subtraction in prompt 04; every date printed in the
note against the page or filing; every identity match on CRD, CIK, file number or principal;
every quote against its page.</task>
<output_format>Check, value in note, value re-derived, PASS or FAIL.</output_format>
<constraints>This gate covers arithmetic, dates, identity and quotes only. It never
re-litigates a judgment tag. Round only at the end.</constraints>
<trap>Re-reading your own note confirms it; open the source file for every line instead.</trap>
<stop>Any FAIL blocks the note. It is released only when {{ANALYST}} resolves the line in
writing. Do not argue a FAIL away. The other checks still run, so every break is listed.</stop>
<review_gate>{{ANALYST}} clears every FAIL by name.</review_gate>
Click to copy
<task>Create this tree at {{PROJECT_DIR}}. Write every file. Do not summarise the plan back.
Print ls -R when done.
  managers.csv        manager, crd, fund_ciks (semicolon list), name_prefixes, key_persons
  thesis/             one file per manager: {{THESIS}}, act triggers, next dates
  prompts/PROMPTS.md  prompts 01 to 11 copied from the page, with {{TOKENS}} filled
  state/last_run.txt  UTC time of the last successful run
  state/adv/          one saved ADV PDF per manager per filing date
  scripts/formd.py    arguments START_UTC END_UTC [managers file]; step (1) per fund CIK with
                      diff against the prior notice, step (2) name prefix scan of the D and
                      D/A index for the window's dates; one line per filing
  scripts/adv.py      every run, per CRD: fetch the IAPD PDF, read filing type and date from
                      page one (pypdf), save it as state/adv/<crd>-<date>.pdf; then read the
                      newest registered file linked on the SEC adviser data page (take the
                      first link whose FILE name lacks "exempt", in page order; the folder name
                      itself contains "exempt" and file names mix date formats) for 5F(2)(c),
                      private fund count, and the newest filing date inside the file; and the
                      newest exempt file (first link whose FILE name has "exempt") for the
                      registration status per CRD; prints the status on every line
  notes/              note-YYYY-MM-DD.md and log-YYYY-MM-DD.csv
  tests/test_calibration.py   asserts prompt 02's E1 accessions and times, E2 file numbers and
                      E3 subtractions, using a managers-cal.csv holding prompt 02's watch list
  tests/test_adv.py   asserts page one of CRD 158081 reads an amendment type and a date on or
                      after 2026-09-14 (prompt 02 E4), and that the monthly link is a registered
                      file whose newest filing date is on or after 2026-08-31, and that CRD
                      173228 (Melvin Capital, withdrawn) prints WORTH A QUESTION while 158081
                      prints SEC registered
Setup, one command at a time (Mac and Linux; on Windows use .venv\Scripts\python.exe):
  uv venv -p 3.12 .venv
  uv pip install -p .venv/bin/python "edgartools==5.59.1" "pypdf==6.19.0" pytest
Write tests/test_calibration.py and tests/test_adv.py FIRST from prompt 02, run
  .venv/bin/python -m pytest -q
and watch it fail. Then write the scripts until it passes.
Pass condition: pytest passes, and
  .venv/bin/python scripts/formd.py 2026-09-24T11:00Z 2026-09-26T11:00Z managers-cal.csv
prints TOTAL 4 with the four accessions in prompt 02, and the two D lines show new: False to
True against the prior D/A.</task>
<constraints>Set the EDGAR identity inside each script with set_identity("Your Name
your.email@example.com"), and send the same text as the User-Agent on SEC and IAPD downloads;
the SEC requires it on every request, and a scheduled run does not read your shell profile. Keep to the
SEC's fair access rate (10 requests a second). Use the Company(cik).get_filings table for
acceptanceDateTime in UTC. Claude Opus 5.5 for design and debugging; Sonnet 5 is fine for
copying the prompts into files.</constraints>
<trap>A test written after the code passes by construction. Write the calibration test first,
or the desk has never been proven.</trap>
<stop>If pytest fails on E1 to E4, stop and fix before scheduling anything.</stop>
Click to copy
<task>Schedule the run, then write this debug table into prompts/DEBUG.md. The run text is
the same for both options; it names the interpreter because an unattended model otherwise
calls python3, which the allow list refuses:
RUN TEXT: "Run .venv/bin/python scripts/formd.py with START as the UTC time in state/last_run.txt and END as now in UTC, then .venv/bin/python scripts/adv.py. Always call it by the relative path .venv/bin/python from this folder, never python3, python or an absolute path, one script per command with nothing chained (no ; && echo or ls), and read files with the Read tool, not shell commands. Then run prompts 03 to 11 from prompts/PROMPTS.md, using managers.csv and thesis/ for prompt 01's answers. Do not wait for review gates; the analyst reviews the written note. Write notes/note-<today>.md and notes/log-<today>.csv, and write the current UTC time to state/last_run.txt only if prompt 11's gate passed."
Option A, Claude Desktop 1.1.5368 or later, Code tab: Routines, New routine, Local. Folder
{{PROJECT_DIR}}, schedule Weekdays at a time before you start, instructions: the RUN TEXT.
Click Run now once and choose always allow for each tool it asks for. It runs only while the
app is open and the computer awake; enable Keep computer awake in Settings, Desktop app,
General. A missed run fires once on wake, so the note prints its run time.
Option B, cron (Mac and Linux). In Terminal run claude setup-token once and copy the token it
prints (cron has no browser login). Open your schedule with crontab -e. Add two lines: the
token as an environment setting, then the five time fields (minute, hour, day of month,
month, day of week, in the computer's local time; 30 6 * * 1-5 is 06:30 on weekdays) and the
command, with the full path from which claude:
  CLAUDE_CODE_OAUTH_TOKEN=your-token
  30 6 * * 1-5 cd {{PROJECT_DIR}} && /full/path/to/claude -p "RUN TEXT" --model opus --permission-mode acceptEdits --allowedTools "Read,Write,WebSearch,WebFetch,Bash(.venv/bin/python *)" --output-format json > notes/last-run.json 2>&1
Paste the RUN TEXT in place of the words RUN TEXT, inside the double quotes. Run the command
part once by hand in the folder before trusting the schedule. Cron skips a morning the
computer was asleep or off; it does not catch up.
Leave WebSearch and WebFetch out and prompts 06 to 08 print NOT RUN; the filings still run.
Debug table, symptom, cause, fix:
- cron run exits 0 and writes no note: a command outside --allowedTools was refused (python3,
  or an absolute path to the venv, instead of .venv/bin/python). In -p mode nothing stalls; read permission_denials in
  notes/last-run.json and name the interpreter in the RUN TEXT.
- last-run.json says not logged in: CLAUDE_CODE_OAUTH_TOKEN missing from the crontab.
- SEC returns 403 or empty files: no identity in the script; set_identity and User-Agent.
- a notice from last evening missing: cut on filing date; use acceptanceDateTime in UTC.
- times off by four or five hours: header time (New York) mixed with the submissions table
  (UTC); convert once, print both.
- today's notices missing from the index scan: the daily index updates overnight; use
  get_current_filings() for the same day.
- a manager's new fund never appears: no CIK yet and no prefix in managers.csv; add the
  fund name prefix from the ADV fund list.
- "new fund" alerts on a fund launched years ago: a form D correction; read first sale date
  and file number.
- an ADV filed mid month missing: the monthly file lags; adv.py reads IAPD page one every
  run, so check it ran.
- the same departure in the note three days running: first seen dates not saved; read
  notes/log-*.csv before tagging.
- Desktop run stalled: a permission prompt; Run now, always allow. Cron wrote nothing at all:
  no cd into the folder, or claude not on cron's PATH; use the full path.
Done means: the scheduled run writes a dated note whose gate passed, on a morning you did not
touch it. What to build next: the pension board pages for {{PENSIONS}} saved nightly; the
letter archive in a letters/ folder so prompt 08 runs every quarter; a second list for
managers under diligence.</task>
<trap>An unattended run that is refused a command exits 0 and says nothing. Read the JSON
after the first scheduled morning, not only the exit code.</trap>
<stop>If the first scheduled run has not written a dated note, stop and read
notes/last-run.json or the task history before changing anything.</stop>

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 allocators, OCIOs and family offices watching 20 to 60 external managers: a dated morning note on every new Form D, Form ADV change, team move and pension commitment, run daily in Claude Code.

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

The vault is about 70% of the work on a watch list you maintain. We wire the rest into production in your environment: pension board pages saved nightly, the letter archive linked to each manager, and the note delivered to your team. 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. Monitoring support, not investment advice, not a key person determination and not a data provider's track record; your LPA and your CIO decide. Materials go only to your own Claude account, never to us; use a Team or Enterprise plan or turn model training off before LPAs or letters. Tools: edgartools (MIT); SEC and IAPD data are public.

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: backtest an idea on your own portfolio history with free market data, a scheduled tax loss harvest, and a deflated Sharpe model risk gate, in your own Claude.

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 Free Fund Manager Monitoring Desk?

Free Fund Manager Monitoring Desk is a finance and data build in the consultance.ai AI Build Library. For allocators, OCIOs and family offices watching 20 to 60 external managers: a dated morning note on every new Form D, Form ADV change, team move and pension commitment, run daily in Claude Code. It fits Endowment, foundation and pension investment staff, OCIO and fund of funds analysts, and family office CIOs who hold external hedge fund, private equity and venture managers. Setup difficulty is Medium, with 4 plain-English steps.

What does Free Fund Manager Monitoring Desk do?

For allocators, OCIOs and family offices watching 20 to 60 external managers: a dated morning note on every new Form D, Form ADV change, team move and pension commitment, run daily in Claude Code.

Who is Free Fund Manager Monitoring Desk for?

It fits Endowment, foundation and pension investment staff, OCIO and fund of funds analysts, and family office CIOs who hold external hedge fund, private equity and venture managers.

How hard is Free Fund Manager Monitoring Desk 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?

The vault is about 70% of the work on a watch list you maintain. We wire the rest into production in your environment: pension board pages saved nightly, the letter archive linked to each manager, and the note delivered to your team. Reply "wire it" for a 30-minute slot.

What are the licensing terms?

Prompt set authored by consultance.ai. Monitoring support, not investment advice, not a key person determination and not a data provider's track record; your LPA and your CIO decide. Materials go only to your own Claude account, never to us; use a Team or Enterprise plan or turn model training off before LPAs or letters. Tools: edgartools (MIT); SEC and IAPD data are public.

Want this built into your workflow?

Free Fund Manager Monitoring Desk 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