Investor update with proof
The AI Source of Truth figure check is live. Four parts to go.
Use case
Investor update with proof: a workflow across Sales as Code, CommitOps, RepoOps, PromptCompute, AI Source of Truth that starts from the first Monday of each month.
Who would use it
Founders writing the monthly investor update.
What value it provides
Forecast grades, promises kept, reliability and shipped work, each number linked to its record, checked and approved before it is sent.
Why it matters to the user
Investors trust a number they can click. Each month's update builds on the last instead of starting over.
The problem
Investor updates are assembled by hand from five tools, and the numbers drift from one month to the next.
Expected outcomes
- Numbers with a record link: target 100%
- Hours to assemble the update
- Corrections issued after sending: target 0
Each run records its outcome as met, not met or not measured.
How it runs
Products and connections
| Product | Role in this workflow | Docs |
|---|---|---|
| Sales as Code | Forecast grades for the month | Reference · Sales as Code docs |
| CommitOps | Promises kept and broken | Reference · CommitOps docs |
| RepoOps | Reliability and shipped work | Reference · RepoOps docs |
| PromptCompute | A person approves the update | Reference · PromptCompute docs |
| AI Source of Truth | Check each figure against its record | Reference · AI Source of Truth docs |
Outside the family: Your email.
What a person approves
| Action | Default risk |
|---|---|
investor.update.send | high |
Action keys are from the PromptCompute catalog.
How to access it from an agent
An agent will run this workflow through the PromptReports MCP server or API, with an ID agent token. The runner will then call each product for it. Proposed
// MCP: https://mcp.promptreports.ai/mcp (Proposed)
start_run({
workflow: "investor-update",
inputs: { "month": "2026-10", "recipients": "Investor list" },
dry_run: false
})
// returns { run_id, status: "running", approvals_url }
get_run({ run_id }) // poll, or subscribe to run eventscurl -X POST https://api.promptreports.ai/v1/runs \
-H "Authorization: Bearer $PROMPTREPORTS_AGENT_TOKEN" \
-d '{"workflow":"investor-update"}'Or call the products yourself, step by step:
| Product | Endpoint | Tools |
|---|---|---|
| Sales as Code | To confirm | to confirm |
| CommitOps | https://commitops.ai/api/mcp | whoami list_assertions get_assertion promised_not_started |
| RepoOps | https://mcp.repoops.ai/mcp | search_brain get_pre_edit_context propose_brain_entry get_incident_attribution |
| PromptCompute | https://mcp.promptcompute.ai/mcp | request_approval get_approval cancel_approval answer_approver |
| AI Source of Truth | https://aisourceoftruth.com/v1/family/facts | to confirm |
Set it up
- Sign in at app.promptreports.ai with PromptReports ID, and pick your org.
- Connect Sales as Code, CommitOps, RepoOps, PromptCompute, AI Source of Truth on the Connections page. Link Your email through the product that uses it.
- Register the agent that will run it on the Agents page, and give it a version manifest.
- Set the approval policy for investor.update.send. Start with Require approval; critical actions are never auto.
- Fill in the inputs (Month, Recipients) and choose the trigger: the first Monday of each month.
- Start a dry run. It will count no workflow request, and it shows which steps would record missing evidence.
- Start the run. Approve each gate in the approvals inbox, then read the signed record when it ends.