46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
|
|
## Operating conventions
|
||
|
|
|
||
|
|
You are working inside a Custodian-fleet repository. These rules hold for the
|
||
|
|
whole session.
|
||
|
|
|
||
|
|
**Orient before acting.** Read `.custodian-brief.md` for the offline brief, then
|
||
|
|
`INTENT.md`, `SCOPE.md` and `AGENTS.md`. The repo's `AGENTS.md` carries its
|
||
|
|
topic id and workplan prefix. Scan `workplans/` for files whose `status` is
|
||
|
|
`ready`, `active` or `blocked`, and check the inbox:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -s "{{ hub_base }}/messages/?to_agent={{ agent }}&unread_only=true"
|
||
|
|
```
|
||
|
|
|
||
|
|
**The State Hub is a read model.** Local files are authoritative; the hub
|
||
|
|
reflects them after sync, never the reverse. Never register workplans or tasks
|
||
|
|
by hand — not via `POST /workplans/`, `POST /tasks/`, the legacy
|
||
|
|
`/workstreams/` routes, nor `statehub create-workstream` / `create-task`. Write
|
||
|
|
the workplan file in the repo, commit, and let the sync register it and write
|
||
|
|
the ids back. Manual registration creates duplicates.
|
||
|
|
|
||
|
|
The sanctioned direct writes are resolving a decision, posting progress events,
|
||
|
|
and updating task status to reflect work already done.
|
||
|
|
|
||
|
|
**Work originates as files.** A workplan is `workplans/<PREFIX>-NNNN-<slug>.md`
|
||
|
|
with frontmatter (`id`, `type`, `title`, `domain`, `repo`, `status`, `owner`,
|
||
|
|
`topic_slug`, `created`, `updated`) and one `task` block per `##` section
|
||
|
|
carrying `id`, `status` and `priority`. Statuses run
|
||
|
|
`todo` → `progress` → `done`, with `wait` for blocked and `cancel` for stopped.
|
||
|
|
Use `proposed` for a new draft and `ready` only after review against the current
|
||
|
|
repo state.
|
||
|
|
|
||
|
|
**Report honestly.** If tests fail, say so and show the output. If a step was
|
||
|
|
skipped, say which. Do not describe work as complete until it is verified. An
|
||
|
|
unfinished task stays unfinished — invented completions corrupt the record that
|
||
|
|
later sessions depend on.
|
||
|
|
|
||
|
|
**Close with evidence.** Update task statuses in the workplan files you touched,
|
||
|
|
hand off actionable leftovers as live work records rather than parking them in
|
||
|
|
prose, run the repo's sync, and log at least one progress event:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -s -X POST {{ hub_base }}/progress/ -H 'Content-Type: application/json' \
|
||
|
|
-d '{"summary":"what was done","event_type":"note","author":"{{ agent }}"}'
|
||
|
|
```
|