generated from coulomb/repo-seed
85 lines
3.0 KiB
Markdown
85 lines
3.0 KiB
Markdown
## Session Protocol
|
|
|
|
State Hub: http://127.0.0.1:8000
|
|
|
|
**Step 1 — Orient**
|
|
|
|
Read the offline-safe brief first — it works without a live hub connection:
|
|
```bash
|
|
cat .custodian-brief.md
|
|
```
|
|
Then call the MCP tool for richer cross-domain context when MCP tools are exposed:
|
|
```
|
|
get_domain_summary("vergabe_teilnahme")
|
|
```
|
|
If MCP tools are unavailable in the current agent session, use the REST API:
|
|
```bash
|
|
curl -s "http://127.0.0.1:8000/state/summary" | python3 -m json.tool
|
|
```
|
|
If the hub is offline: `cd ~/state-hub && make api`
|
|
|
|
**Step 2 — Check inbox**
|
|
With MCP tools:
|
|
```
|
|
get_messages(to_agent="vergabe_teilnahme", unread_only=True)
|
|
```
|
|
Mark read with `mark_message_read(message_id)`. Reply or act on coordination
|
|
requests before proceeding.
|
|
|
|
Without MCP tools:
|
|
```bash
|
|
curl -s "http://127.0.0.1:8000/messages/?to_agent=vergabe_teilnahme&unread_only=true" \
|
|
| python3 -m json.tool
|
|
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
|
|
-H "Content-Type: application/json" -d '{}'
|
|
```
|
|
|
|
**Step 3 — Scan workplans**
|
|
```bash
|
|
ls workplans/
|
|
```
|
|
For each file with `status: ready`, `active`, or `blocked`, note pending
|
|
`todo`/`in_progress` tasks.
|
|
|
|
**Step 4 — Present brief**
|
|
|
|
1. **Active workstreams** for `vergabe_teilnahme` — title, task counts, blocking decisions
|
|
2. **Pending tasks** from `workplans/` + any `[repo:vergabe_teilnahme]` hub tasks
|
|
3. **Goal guidance** — if `goal_guidance` in summary:
|
|
- `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"*
|
|
- `alignment_warnings`: flag if active work is not aligned with current goal
|
|
4. **Suggested next action** — highest-priority open item
|
|
5. **SBOM status** — flag if `last_sbom_at` is unset for this repo
|
|
|
|
If no workstreams: follow First Session Protocol (`first-session.md`).
|
|
|
|
**During work:** `record_decision()` · `add_progress_event()` · `resolve_decision()`
|
|
|
|
> State Hub is a *read model*. Bootstrap tools (`create_workstream`, `create_task`)
|
|
> are First Session Protocol only. Work structure belongs in repo files (ADR-001).
|
|
|
|
**Session close:**
|
|
With MCP tools:
|
|
```
|
|
add_progress_event(summary="...", topic_id="7d4d3e35-312f-4723-bde9-ddb43799109e", workstream_id="<uuid>")
|
|
```
|
|
Without MCP tools:
|
|
```bash
|
|
curl -s -X POST http://127.0.0.1:8000/progress/ \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"topic_id":"7d4d3e35-312f-4723-bde9-ddb43799109e","workstream_id":"<uuid>","event_type":"note","summary":"what changed","author":"codex"}'
|
|
```
|
|
If workplan files were modified, ensure the local copy is up to date first:
|
|
```bash
|
|
git -C <repo_path> pull --ff-only
|
|
cd ~/state-hub && make fix-consistency REPO=vergabe_teilnahme
|
|
```
|
|
For repos where implementation runs on a remote machine (e.g. CoulombCore),
|
|
use the combined target which pulls before fixing:
|
|
```bash
|
|
cd ~/state-hub && make fix-consistency-remote REPO=vergabe_teilnahme
|
|
```
|
|
**C-15** (DB task ahead of file) is normal in multi-machine workflows — writeback
|
|
will sync the file to match DB. **C-16** (repo behind remote) blocks all writes
|
|
until you pull — intentional to prevent clobbering remote progress.
|