Future state — where each surface is going
The three surfaces in this repo (thesis kickoff, deal triage, holdings monitoring) are deliberately scoped down to one job each. Each is the entry point into a larger workflow inside a real fund. This doc captures what the production shape of each surface looks like — beyond what's demoed today.
Thesis kickoff
The rendered memo is the demo's end-state. The production end-state is the memo plus a connected lifecycle:
- One-click "add to research tracker" — the structured kickoff pushes into the team's existing system (Notion / Sheets / Linear) rather than living on the demo page. Fields land in their canonical columns; the memo body becomes a linked artifact.
- Recurring re-kickoff on cadence — as the thesis evolves, the agent re-runs the same kickoff against fresh financials and news. The memo on file is always the latest one; the prior versions are accessible as a diff trail.
- Cross-surface memory — the same per-ticker memory the kickoff writes to becomes the source-of-truth that triage and anomaly read from. Triage flags "we've seen this name before" with the agent's prior take. Anomaly opens with the kickoff thesis when explaining a move.
Deal triage
The current surface processes one teaser at a time on demand. The production shape is automated, routed, and learning-enabled:
- Inbox / CRM intake — forward a teaser email to a fund alias, the structured memo lands back in your inbox or Slack in ~60s. The pursue / monitor / pass decision becomes the subject line prefix; no paste step.
- Auto-routing on the decision — pass goes into a weekly digest; monitor lands on a watchlist; pursue creates a deal card in the team's existing tracker with overlap, IC scoring, and gaps pre-filled.
- "We've seen this name" link — if a teaser is on a ticker (or a private with a familiar sponsor / founder) the kickoff has touched, the triage memo opens with a callout to the prior memory: "You evaluated this in March; flagged regulatory risk; here's the diff vs. then."
- Bulk triage — drop a folder of a week's worth of inbounds, get one digest sorted pursue / monitor / pass with reasoning, with the pursues promoted automatically.
- Pipeline feedback loop — every pass / monitor / pursue gets logged with rationale. A quarterly view shows "names we passed on, how did they trade since?" — both calibrates the IC criteria and surfaces re-look candidates.
- Sponsor / banker intel — when a teaser comes in, the agent enriches with what the fund has seen from this counterparty before: win rate, quality of past deals shown, whether their teasers tend to match the diligenced reality.
Holdings monitoring (anomaly)
Today the surface is pull-based — you click "Explain" when you want a write-up. The production shape inverts that and grows from classification to action:
- Push, not pull — the agent watches positions continuously. When something crosses a materiality threshold (price, mark, news beat, peer move), it DMs the PM with a draft explanation already prepared. The PM reads instead of starting from scratch.
- Action recommendation, not just classification — instead of stopping at thesis-intact / questionable / thesis-breaking, the agent proposes hold / trim / exit / add with sizing math against the IC mandate. The PM accepts or overrides; overrides become training signal.
- Auto re-kickoff on thesis-break — a thesis-breaking verdict automatically triggers a fresh kickoff on the name, so by the time the PM reads the anomaly memo, the refreshed structured memo is already attached for the next IC conversation.
- Thesis decay tracking — every anomaly verdict logs against the position. Each name accumulates a thesis-decay curve over time. Portfolio review opens with "names whose thesis has decayed the most this quarter, in priority order."
- Peer cohort early-warning — when one holding breaks, the agent scans other holdings in the same sector / factor / geography cohort for early indicators of the same risk landing on them.
- Scheduled anomaly sweeps — instead of waiting for price moves, every earnings cycle the agent runs a planned anomaly check across the entire book — even on names that haven't moved. Catches slow-burn thesis drift that price hasn't surfaced yet.
The underlying architecture
positions / fills] S2[Deal pipeline
teasers / CIMs / IC memos] S3[Portco reports
monthly KPIs / cashflow] S4[Public filings
10-Ks / S-1s / news] end subgraph ING["2 · Ingestion + canonical layer"] I1[Typed write-layer
schema discipline] I2[Canonical store
BigQuery / DuckDB] I3[dbt models
positions · deals · KPIs] end subgraph AGENTS["3 · Agent surfaces"] A1[Portfolio analytics
P&L attribution
risk + concentration] A2[Deal triage
teaser → structured memo
IC criteria scoring] A3[IC memo review
thesis · risks · evidence
against rubric] end subgraph GATES["4 · Human review gates"] G1[Pricing review
weekly] G2[IC meeting
per deal] G3[Portfolio review
monthly] end subgraph OUT["5 · Outputs into existing rituals"] O1[Notion / Linear
tickets + memos] O2[Sheets / Looker
dashboards] O3[Slack digests
daily / on-event] end SRC --> ING ING --> AGENTS AGENTS --> GATES GATES --> OUT OUT -.feedback loop.-> AGENTS classDef src fill:#fef3c7,stroke:#92400e classDef ing fill:#dbeafe,stroke:#1e40af classDef agt fill:#dcfce7,stroke:#166534 classDef gat fill:#fce7f3,stroke:#9f1239 classDef out fill:#e0e7ff,stroke:#3730a3 class S1,S2,S3,S4 src class I1,I2,I3 ing class A1,A2,A3 agt class G1,G2,G3 gat class O1,O2,O3 out
Most of the work lives in layer 2 — a clean data store makes the agent surfaces straightforward; without it, no amount of model capability rescues the system. The three demoed surfaces sit in layer 3, and they work only as well as layer 2 is honest: clean positions, clean deal records, clean portco data.