feat: add State Hub bulk status skill

This commit is contained in:
2026-06-07 20:11:07 +02:00
parent 8f17bc1f50
commit 55e36bdf2d
9 changed files with 496 additions and 5 deletions

View File

@@ -4,7 +4,7 @@ type: workplan
title: "State Hub Agent Skill — front-load tool schemas + batched writes"
domain: custodian
repo: state-hub
status: ready
status: finished
owner: codex
topic_slug: custodian
created: "2026-06-07"
@@ -37,7 +37,7 @@ of sessions).
```task
id: STATE-WP-0058-T01
status: todo
status: done
priority: high
state_hub_task_id: "6f211ccc-e505-419d-90cc-25874ba98f39"
```
@@ -54,7 +54,7 @@ model). Directly targets the `ToolSearch`-thrash finding.
```task
id: STATE-WP-0058-T02
status: todo
status: done
priority: high
state_hub_task_id: "2138505a-ea49-4ccc-9dec-a176badaa7a5"
```
@@ -69,7 +69,7 @@ preserve the automatic `progress_event` semantics on each write.
```task
id: STATE-WP-0058-T03
status: todo
status: done
priority: medium
state_hub_task_id: "cf8d41f8-7831-4c1b-9dfa-58660174294b"
```
@@ -83,3 +83,27 @@ workplan updates, notify the operator to run from `~/state-hub`:
```bash
make fix-consistency REPO=state-hub
```
## Verification Notes
Completed 2026-06-07:
- Added `skills/state-hub/SKILL.md` plus
`skills/state-hub/references/tool-signatures.md` to front-load the
high-frequency State Hub MCP signatures, session flow, ADR-001 files-first
boundary, REST fallbacks, and batched-write guidance.
- Added `POST /tasks/bulk-status-sync` for checkpoint task-status batching.
The endpoint updates all requested task statuses in one transaction, rejects
duplicate task ids with `400`, rejects missing task ids with `404`, and emits
one `task_status_changed` progress event per successful item.
- Added MCP wrapper `bulk_update_task_statuses(updates, author?, session_id?)`
and documented it in `mcp_server/TOOLS.md`.
- Sent completion/signature handoff to `helix_forge` as message
`7236bd1c-b60d-481a-bc05-3080c4b46f72`, followed by tracked-path
correction `1a322eed-96d6-45d4-9e0a-685a6f66e180`.
Verification:
- `.venv/bin/python -m pytest tests/test_task_bulk_status_sync.py tests/test_mcp_write_tools.py -q` -> 12 passed
- `.venv/bin/python -m pytest tests/test_task_bulk_status_sync.py tests/test_mcp_write_tools.py tests/test_mcp_smoke.py -q` -> 25 passed
- `git diff --check` -> clean