Cases
Materialize only shared state that people and agents need.
Use epismo_case_start when an outcome must be shared or resumed. Start from a playbook version or create an ad hoc case with a title.
For work collaborators, epismo_case_get returns the case, current tasks, the latest five records from that case (newest first), direct handoffs, and the readable source playbook and pinned version. Public-only readers receive the current title, input, the latest five records from that case, and readable handoffs, without tasks, assignment, or collaborator identities. Making a case public exposes this live content immediately, including later records. Continue older records with epismo_case_record_list (cursor: recordsNextCursor, scope: recordsScope) and the returned records_scope (self). CLI output uses snake_case; API/MCP return recordsNextCursor and recordsScope.
Public case reads cost 0 credits without login on Web, CLI, API, and MCP. Work-detail reads on API / CLI / MCP bundle supporting reads into one 1-credit case get; ordinary Web reads remain free.
- Keep local intermediate work in the agent runtime.
- Append outcomes, decisions, verdicts (
kind=reviewwithdata.verdict), and handoff summaries with epismo_case_record_append. - Edit or redact a record you created with epismo_case_record_update or epismo_case_record_delete.
- Create tasks with epismo_case_task_create only for explicit responsibility or approval.
- Any case editor can ask Epismo AI to review shared evidence with epismo_case_review. The call queues the review and returns immediately; poll records with
kinds=reviewandorigins=system. Optionalpromptadds caller guidance after the fixed review rules. That request and auto reviews fromautoReviewcharge the case billing account captured at start. - Any case editor can ask Epismo AI for a one-shot situational brief with epismo_case_overview. It runs synchronously and returns the text in the response. Replay the same idempotency key to receive the prior brief without regenerating. Credits charge the case billing account captured at start.
- Connect related workflows using epismo_case_handoff_create, and inspect the DAG with epismo_case_handoff_graph_get.
- Query eligible next or previous cases with epismo_case_handoff_candidates_list (
direction=outgoingordirection=incoming) to avoid loops and duplicate links. - Generate a fresh idempotency key for each new mutation.
- Read the latest lock version before changing a case or task.
After a conflict, re-read the object and decide whether the intent remains valid. Never replay a stale request by changing only its lock version.
Do not invent an agent assignee. When a user assignment is needed, select an ID from the users resource and ensure that user is already in the case ACL.
Use epismo_case_record_list with the case ID to resume from that case's timeline. Pass scope (self, ancestors, descendants, neighbors, connected) to include records across connected handoffs while respecting individual case ACLs. Filters only narrow that timeline; an ACL filter is not authorization.