docs(agentic-teams): document the new resources, and make the webhook reachable
Five resources shipped with no documentation and one documented lie: docs/inference-tasks.md still told people `mcpctl get tasks` lists the inference queue. Work items own that name now. Adds docs/epics.md (the Epic -> EpicTask -> Task hierarchy, the state machine, risk-scaled review gates, the accept-merges gate, and reconciliation), docs/gitproviders.md (forge registration, discovery/import, merge-on-accept, post-merge reopen) and docs/agent-authority.md (the three run modes, and plainly which two are not implemented). Two things found while writing them, both fixed rather than filed: - `webhookSecretKey` was read by the webhook route but writable from NOWHERE -- absent from the create schema, update schema, service, CLI and apply spec. Since the endpoint fails closed on a null key, post-merge CI failures could never reopen their task; the board would keep claiming `merged` for work that broke the build. Adds --webhook-secret-key, the schema fields and the apply key, with tests covering persist / omit / explicit-null / reject-empty. Omission deliberately does not clear the column, so an unrelated edit cannot silently disarm the webhook. - src/cli/src/commands/create.ts contained a literal NUL byte inside a string literal (a binary-file check written with the raw character rather than an escape). Identical behaviour, but it made the whole file read as binary, so `grep -I` skipped it entirely and 1120 lines of CLI were invisible to every text search. Replaced with the escape. The Epic write path (criteria/status/tradeoffs) is API-only -- documented as such rather than papered over, and filed as task 180. Full suite 2612 green; lint at baseline 794/77. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4wNHWf7xSwnZCWpJcyv9p
This commit is contained in:
11
README.md
11
README.md
@@ -500,6 +500,17 @@ new FileCache('ns', { maxSize: '10%' }) // 10% of partition
|
||||
| **promptrequest** | Pending prompt proposal | LLM-submitted, needs approval |
|
||||
| **rbac** | Access control bindings | Who can do what |
|
||||
| **serverattachment** | Server-to-project link | Virtual resource for `apply` |
|
||||
| **epic** | The vision work is measured against | Done-criteria, completeness, tradeoffs |
|
||||
| **epictask** | A roadmap node under an Epic | Owns a subset of the Epic's criteria |
|
||||
| **task** | A work item with a review lifecycle | `todo → … → awaiting_review → merged` |
|
||||
| **gitprovider** | A connection to a git forge | Gitea instance + API token |
|
||||
| **repo** | A repository attached to a project | Imported from a forge, or added by URL |
|
||||
|
||||
> **`tasks` changed meaning.** It used to list the durable inference queue,
|
||||
> which now answers only to `inference-tasks` / `itasks`. Bare `tasks` lists
|
||||
> work items. Existing RBAC bindings are rewritten once at startup, so an old
|
||||
> `view:tasks` grant keeps authorizing the queue and does not silently become
|
||||
> authority over work items. See [docs/inference-tasks.md](docs/inference-tasks.md).
|
||||
|
||||
## Agents
|
||||
|
||||
|
||||
Reference in New Issue
Block a user