docs: define approved-plan continuity receipt storage
This commit is contained in:
0
state/approved-plan-continuity/.gitkeep
Normal file
0
state/approved-plan-continuity/.gitkeep
Normal file
62
state/approved-plan-continuity/README.md
Normal file
62
state/approved-plan-continuity/README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Approved Plan Continuity Receipt Storage
|
||||
|
||||
This directory stores file-backed continuity receipts for approved-plan flows.
|
||||
|
||||
## Scope
|
||||
|
||||
This storage definition is intentionally minimal.
|
||||
It defines only the receipt location, minimum receipt shape, and filename convention for continuity receipts.
|
||||
It does **not** implement receipt writing, hook integration, dispatch orchestration, or gate evaluation logic.
|
||||
|
||||
## Receipt file format
|
||||
|
||||
- Format: JSON
|
||||
- Encoding: UTF-8
|
||||
- One receipt per file
|
||||
|
||||
## Minimum receipt shape
|
||||
|
||||
Each continuity receipt file must contain a JSON object with at least these fields:
|
||||
|
||||
- `planId`
|
||||
- `currentTask`
|
||||
- `nextDerivedAction`
|
||||
- `dispatchedAt`
|
||||
- `dispatchRunId`
|
||||
- `childSessionKey`
|
||||
- `replyClosureState`
|
||||
|
||||
### Minimal example
|
||||
|
||||
```json
|
||||
{
|
||||
"planId": "plan_2026_04_24_example",
|
||||
"currentTask": "Task 15",
|
||||
"nextDerivedAction": "dispatch next approved-plan task",
|
||||
"dispatchedAt": "2026-04-24T12:00:00.000+08:00",
|
||||
"dispatchRunId": "dispatch_2026_04_24_example",
|
||||
"childSessionKey": "agent:engineering:subtask-example",
|
||||
"replyClosureState": "open"
|
||||
}
|
||||
```
|
||||
|
||||
## Filename convention
|
||||
|
||||
Continuity receipt filenames must follow this pattern:
|
||||
|
||||
```text
|
||||
receipt-<planId>-<dispatchRunId>.json
|
||||
```
|
||||
|
||||
## Naming rules
|
||||
|
||||
- `<planId>` should match the receipt `planId`
|
||||
- `<dispatchRunId>` should match the receipt `dispatchRunId`
|
||||
- Use lowercase kebab-case or other filesystem-safe identifiers
|
||||
- Do not reuse one file for multiple dispatch runs
|
||||
|
||||
## State interpretation
|
||||
|
||||
- A receipt in this directory represents a persisted continuity dispatch record for one approved-plan dispatch run.
|
||||
- `replyClosureState` is stored alongside the dispatch linkage so later tasks can distinguish an active dispatch record from an allowed non-dispatch closure state.
|
||||
- Legal non-dispatch closure values are defined by the plan/runbook logic outside this storage README.
|
||||
Reference in New Issue
Block a user