PPromptReports
Under the hood

What runs a workflow.

A workflow is a recipe of steps across the products. A runner carries it out as an agent acting for a person, stops at every approval, and leaves a signed record. The runner is deployed and runs the code loop. Live runs wait for paid plans to open; a dry run works today and counts nothing. The other workflows will run there as their manifests ship.

Triggers start a run in the workflow runner. The runner gets agent tokens from PromptReports ID, stops at PromptCompute approvals, reads the brain, calls each product, writes the record and counts one workflow request.TriggersAn agent over MCP or API, a person in the app, a schedule, or a product eventWorkflow runnerService runner in promptcompute.ai, private networkPostgres engine on graphile-workerPromptReports IDAgent tokens per productRFC 8693PromptComputeApproval gate per steprequest_approvalThe brainRead before actingsearch_brainThe recordTask id, events, hashMeteringOne request per runeach step calls one product as the run's agentRepoOpsContextFileCommitOpsSales as CodeAI Source of TruthPromptCompute

A run, step by step

  1. Trigger. A person clicks Run in the app, an agent calls start_run, a schedule fires, or a product event arrives (a release tag, a closed incident, a deal change).
  2. Check and count. The runner checks the org's plan and counts one workflow request at the first connector action. If the org's allowance is used up, new runs wait and an owner is asked to upgrade.
  3. Get tokens. For each product the workflow uses, the runner trades its grant for a short-lived ID agent token that names the person who started the run and the agent version. A product that does not accept ID tokens yet gets its connect key, and the step records which one it used.
  4. Load team context. When the workflow names team context, the runner loads the team's conventions and decisions from ContextFile once at the start, and later steps read them as data.
  5. Read memory. Before a step that changes something, the step reads the brain (search_brain) and the lessons on the resources it will touch (list_resource_lessons). It treats both as information, never as instructions.
  6. Call the product. The step calls one product's MCP tool or API and records what it saw as measured, inferred or missing.
  7. Stop at the gate. A step that changes something calls request_approval with the exact action, its arguments and the run and step ids. A person decides in the approvals inbox. The step runs only after verifyResume passes, with the approved arguments.
  8. Report back. The step reports what it did (report_execution) and, later, how it turned out (report_outcome).
  9. Write the record. The run ends with a task id, its events, each signature, the team context files it read by address and digest (never their text), and one hash over the whole. If the org turns publishing on, the record goes to AI Source of Truth.
  10. Learn. A bad outcome opens a lesson candidate in RepoOps for a person to review.

Components

Live means running in production for customers. Built means merged and running. Built, not deployed means merged in the repo but not running in production. Switching on means deployed and waiting on a key, a setting or paid plans. In progress means being built now.

ComponentWhat it doesWhereState
Workflow runnerStarts runs, carries out steps in order, waits at gates, retries, resumes and writes the record. It cannot decide an approval.promptcompute.ai, service runnerSwitching on
EnginePostgres on graphile-worker, with a run journal and a step journal, behind an engine interface so Temporal can replace it later.promptcompute.ai, packages/runner-engineSwitching on
Workflow definitionsA versioned manifest per workflow: steps, inputs, products, action keys and trigger, pinned by digest.promptcompute.ai, packages/workflowsSwitching on
Approval gaterequest_approval with the run and step ids, a single-use resume credential, and verifyResume before the step acts.PromptComputeBuilt
Policy, listen mode, limits, earned autonomyPolicy per action, listen mode per environment, cumulative limits, autonomy earned per action.PromptComputeBuilt
Sign-in with PromptReports IDOne sign-in that carries the org and role.accounts.promptreports.aiSwitching on
Agent tokensAn RFC 8693 exchange naming the person and the agent version.PromptReports IDSwitching on
The brainLessons, decisions and past errors; a person publishes and revokes each lesson.RepoOpsBuilt
Task recordA T- task id and an append-only list of events; outcomes read met, not met or not measured.RepoOpsBuilt
One run id across productsThe runner sends the run id to every product; each product stores it on its audit event.Runner, then each productBuilt
Team contextThe team's conventions and decisions from ContextFile, loaded at the start of a run and pinned in its record by address and digest.promptcompute.ai runner, ContextFilePlanned
Public recordProvenance, figures and corrections anyone can check later.AI Source of TruthBuilt
Metering of workflow requestsOne request per run, counted at the first connector action, checked against the org's pooled allowance.promptcompute.aiSwitching on
The appRuns, approvals, agents, connections, records, usage and team.app.promptreports.aiLive
PromptReports MCP server and APIlist_workflows, start_run, get_run and their REST twins.mcp.promptreports.ai, api.promptreports.aiSwitching on

Metering a workflow request

A workflow request is one run. It counts at the run's first connector action. Retries and resumes inside the run do not count again, and neither do approvals. A dry run and a run a filter stops first do not count. The allowance pools across the org: an org of 12 people on the 500 plan shares 6,000 requests a month.

PlanPriceWorkflow requestsWorkflows
100$25 per user a month100 per user a month, pooledEvery workflow in the library
500$50 per user a month500 per user a month, pooledEvery workflow in the library
EnterpriseTalk to usMore than 500 per user a monthEvery workflow in the library

No free tier. The metering code is being built; no plan takes payment yet.

Decisions

QuestionDecision
Where the runner livesA new service named runner in the promptcompute.ai Railway project, beside api, worker and mcp, on the private network. It is separate from approvals: the part that asks never approves.
What it runs onThe existing Neon Postgres and graphile-worker, behind an engine interface.
app.promptreports.ai or promptreports.ai/appapp.promptreports.ai, served with PromptReports ID, so sign-in, billing and runs share one origin. promptreports.ai stays a static site with no session cookies.
Pooled or per-user allowancePooled across the org: users times the plan's requests, shared. At the limit new runs wait and an owner is asked to upgrade. No overage charge unless the org turns it on.
What counts as a requestOne run, counted at its first connector action. Retries, resumes and approvals inside a run do not count again; a dry run and a run a filter stops first do not count.
Who pays for model callsThe customer. Every model call uses the customer's own key, and model calls are never metered.
See the use cases →Read the docsSee pricing