Skip to content

Commit 94d41ae

Browse files
committed
Add task completion receipt guidance
1 parent 161834d commit 94d41ae

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

docs/experimental/task-receipts.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Task completion receipts
2+
3+
MCP clients and servers can exchange rich task and tool data, but a task result is not always the same thing as an auditable completion state.
4+
5+
For safety-sensitive workflows, consider adding a small receipt to the end of a task or tool-driven workflow. A receipt separates what the agent or tool claims from the evidence that supports the claim, the next owner, and any human approval boundary.
6+
7+
## Why this matters
8+
9+
A final task message such as:
10+
11+
```text
12+
Done. All tests passed. Ready to publish.
13+
```
14+
15+
contains multiple operational claims:
16+
17+
- the task is complete
18+
- tests passed
19+
- the output is ready for an external action
20+
21+
Those claims may require different evidence, such as tool output, logs, file diffs, test output, trace items, or human approval.
22+
23+
## Minimal receipt shape
24+
25+
```yaml
26+
status_code: 412
27+
status_text: missing_evidence
28+
summary: "The task claimed completion and test success, but did not attach command output."
29+
claims:
30+
- claim: "Task is complete."
31+
support_status: unverified
32+
evidence: []
33+
required_fix: "Attach the relevant tool result, file diff, log, or trace item."
34+
- claim: "All tests passed."
35+
support_status: unsupported
36+
evidence: []
37+
required_fix: "Attach the test command and output, or downgrade the claim."
38+
next_owner: ProducingAgent
39+
human_decision_required: false
40+
```
41+
42+
## Safety boundaries
43+
44+
Receipts are useful when a task result may cross a boundary:
45+
46+
- publishing or deploying
47+
- writing to long-term memory
48+
- sending messages or comments
49+
- spending money
50+
- changing external systems
51+
- reporting tests or verification as complete
52+
53+
If a boundary requires approval, the receipt should say so explicitly:
54+
55+
```yaml
56+
human_decision_required: true
57+
required_fix: "Require approval before publishing."
58+
```
59+
60+
## Relationship to MCP data
61+
62+
MCP data can provide evidence for a receipt:
63+
64+
```text
65+
tool result -> evidence item
66+
task state -> status code
67+
client/server trace -> evidence path
68+
approval or user confirmation -> human approval evidence
69+
```
70+
71+
The receipt does not replace MCP protocol messages. It is a final-state summary that helps humans and downstream systems audit whether a completion claim is supported.
72+
73+
Reference protocol:
74+
75+
```text
76+
SACP: https://github.com/aDragon0707/sacp
77+
```

0 commit comments

Comments
 (0)