A venture firm's quarterly LP update pulls from three systems: relationship history in Affinity, cap-table data in Carta, and portfolio commentary in Notion. An agent can assemble the draft. A managing partner has to sign it. Dock holds the row in between, with the agent's draft, the partner's approval, and a pointer back to each source. The LP receives an update a named human stood behind.
Affinity, Carta, and Notion stay the system of record for the raw data. Dock is the system of record for what the AGENT INTERPRETS. Each Dock row carries a pointer back to the platform record, agent identity, decision, reviewer, and timestamp. The agent re-fetches platform data via fresh API reads when it needs current state.
Dock surface: LPUpdateDrafts
| Portfolio company | Carta ownership | Affinity last touch | Draft commentary | Agent | Approver | Status |
|---|---|---|---|---|---|---|
| Lumen Health | 8.4% (Series B) | 2026-05-12, board call | "Q1 revenue +34% QoQ; hiring CFO; runway 22mo." | ir-agent | gp.partner@firm.vc | approved 2026-05-29 |
| Northwind Robotics | 12.1% (Series A) | 2026-04-30, founder 1:1 | "Pilot signed with Maersk; gross margin still negative; bridge under discussion." | ir-agent | gp.partner@firm.vc | flagged for edit |
| Hearth Foods | 5.7% (seed) | 2026-03-02, email | "Pivoted to B2B; CEO transition in progress; reserve unlikely." | ir-agent | gp.partner@firm.vc | approved 2026-05-29 |
The Carta cell links to the cap table snapshot. The Affinity cell links to the relationship record. The commentary cell stores the draft and the prompt the agent ran. The approver column records the partner who clicked approve, not the agent that drafted.
Worked workflow
On the 25th of the quarter-end month, ir-agent opens LPUpdateDrafts. For each active portfolio row, it re-fetches ownership from Carta, the last interaction from Affinity, and the most recent founder update from Notion. It writes a three-sentence commentary and sets status to awaiting-partner.
The managing partner sees one Dock view with every draft. She edits Northwind because the bridge language is too soft, then approves each row. Dock stamps her identity, her edits, and the timestamp. A second agent, ir-compiler, reads only status = approved rows and assembles the LP email.
If a number changes between draft and send, the compiler re-fetches Carta and surfaces the diff. The partner re-approves or the row drops.
Why this matters
LP reporting is one of the few GP outputs where attribution is non-negotiable. The Institutional Limited Partners Association publishes a reporting template because LPs want to know who said what. Bain's 2026 Global Private Equity Report documents how GP-LP communication has tightened as fundraising has gotten harder. An agent-drafted update without a named approver is a liability. A Dock row with the partner's identity on it is a record an LP, an auditor, or a future fund's diligence team can rely on.
This is the same pattern that runs in Dock for finance close packets and agent audit and compliance trails: agent drafts, human approves, Dock stores both halves with agent identity attached.
Try it
See the full pattern at Dock for investors. Related rails: Dock for founders for the other side of the cap table, and Dock for research for the deal-side workflow that feeds portfolio companies into the pipeline.
FAQ
Can the agent send the LP update directly? No. The compiler agent only reads rows where a managing partner has approved. Send authority sits with the partner's identity, not the agent's.
What if Carta ownership changes after the partner approves?
The compiler re-fetches at send time. If a row's underlying number has moved, the row goes back to awaiting-partner and the partner sees a diff.
Does Dock store the LP email itself? Dock stores the approved row, the prompt the agent ran, and the diff history. The outbound email is sent from the firm's mail system. The row is the durable record.
How is this different from a Notion doc with track changes? Notion holds the draft text. Dock holds the structured row: which agent drafted, which platform records it read, which partner approved, what changed between draft and send. Track changes does not carry agent identity.