fix(skills): entity_get/task_get на uuid/ref-ключи — контракт task:1067 (голые internal id → 400)
- mappa-task-work 1.3.0→1.4.0: read-ключи uuid/task:NNN, close/update берут internal id из ответа - mappa-brainstorm-promote 1.7.0→1.8.0: entity_get по brainstorm:N/uuid, internal id для promote из ответа - mappa-messaging 1.3.0→1.4.0: резолв по uuid/ref [skip-tdd: visual] (task:1093)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: mappa-brainstorm-promote
|
name: mappa-brainstorm-promote
|
||||||
author: ours
|
author: ours
|
||||||
version: 1.7.0
|
version: 1.8.0
|
||||||
description: >
|
description: >
|
||||||
Finalize a matured brainstorm buffer (mappa entity type=brainstorm,
|
Finalize a matured brainstorm buffer (mappa entity type=brainstorm,
|
||||||
status=buffer): read buffer → choose target project → promote via
|
status=buffer): read buffer → choose target project → promote via
|
||||||
@@ -87,9 +87,11 @@ brainstorm entity in mappa (type=brainstorm, status=buffer)
|
|||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
1. **Find the buffer in mappa.** `mcp__mappa__entity_search(type='brainstorm',
|
1. **Find the buffer in mappa.** `mcp__mappa__entity_search(type='brainstorm',
|
||||||
project=<project>, q=<topic>)` → in the results brainstorm:N + **internal
|
project=<project>, q=<topic>)` → in the results brainstorm:N (ref). Read the
|
||||||
id**. Read the full buffer: `mcp__mappa__entity_get(id=<internal id>)` —
|
full buffer: `mcp__mappa__entity_get(key)` — key = uuid or full ref
|
||||||
body = running record (frontmatter + rounds).
|
`brainstorm:N` (task:1067; bare numbers → 400) — body = running record
|
||||||
|
(frontmatter + rounds). The response carries the internal `id` for
|
||||||
|
`brainstorm_promote`.
|
||||||
|
|
||||||
If the buffer is not in mappa — create a brainstorm entity via
|
If the buffer is not in mappa — create a brainstorm entity via
|
||||||
`mcp__mappa__brainstorm_create` (or HTTP `POST /entities` type=brainstorm,
|
`mcp__mappa__brainstorm_create` (or HTTP `POST /entities` type=brainstorm,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: mappa-messaging
|
name: mappa-messaging
|
||||||
author: ours
|
author: ours
|
||||||
version: 1.3.0
|
version: 1.4.0
|
||||||
description: >
|
description: >
|
||||||
The inter-session mail cycle via Mappa: SEND (inbox_send) → RECEIVE
|
The inter-session mail cycle via Mappa: SEND (inbox_send) → RECEIVE
|
||||||
(inbox_monitor) → POLICY (peer ≠ authority). Address = the project folder
|
(inbox_monitor) → POLICY (peer ≠ authority). Address = the project folder
|
||||||
@@ -99,7 +99,8 @@ numbers are the machine key, unique across the whole federation). Not a slug —
|
|||||||
slugs can repeat between projects. First mention of a task in a letter — with
|
slugs can repeat between projects. First mention of a task in a letter — with
|
||||||
number and slug for readability: `#452 (tasks-v2-search-by-id)`, afterwards —
|
number and slug for readability: `#452 (tasks-v2-search-by-id)`, afterwards —
|
||||||
just `#452`. Resolving a number into {project, slug} — via
|
just `#452`. Resolving a number into {project, slug} — via
|
||||||
`mcp__mappa__entity_search` (searches by number/id) or `entity_get`.
|
`mcp__mappa__entity_search` (searches by number/id) or `entity_get` (key — uuid
|
||||||
|
or full ref `type:NNN`; bare numbers → 400, task:1067).
|
||||||
|
|
||||||
### Hard rules
|
### Hard rules
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: mappa-task-work
|
name: mappa-task-work
|
||||||
author: ours
|
author: ours
|
||||||
version: 1.3.0
|
version: 1.4.0
|
||||||
description: >
|
description: >
|
||||||
The central cycle of working with tasks in Mappa: orientation → work
|
The central cycle of working with tasks in Mappa: orientation → work
|
||||||
selection (priority/due) → execution → handover (close + review-umbrella) +
|
selection (priority/due) → execution → handover (close + review-umbrella) +
|
||||||
@@ -53,7 +53,8 @@ cross-project overview (→ `using-system-snapshot`).
|
|||||||
| Create a task | `mcp__mappa__task_create(project, slug, title?, description?, status?, priority?, due?)` | **carve-out without a lease**; per-type number (decision 20) |
|
| Create a task | `mcp__mappa__task_create(project, slug, title?, description?, status?, priority?, due?)` | **carve-out without a lease**; per-type number (decision 20) |
|
||||||
| Close a task | `mcp__mappa__task_close(project, id, version)` | **version-based**: conflict → 409 → retry with the fresh version from task_get |
|
| Close a task | `mcp__mappa__task_close(project, id, version)` | **version-based**: conflict → 409 → retry with the fresh version from task_get |
|
||||||
| Update a task | `mcp__mappa__task_update(project, id, parent?, owner?, status?, reason?, version)` | version-based; 409 → retry |
|
| Update a task | `mcp__mappa__task_update(project, id, parent?, owner?, status?, reason?, version)` | version-based; 409 → retry |
|
||||||
| Read a task | `mcp__mappa__entity_get(id)` | internal id from search |
|
| Read a task | `mcp__mappa__entity_get(id)` | key: uuid or full ref `task:NNN` (task:1067); bare number → 400 |
|
||||||
|
| Read a task compact | `mcp__mappa__task_get(id)` | key: uuid or `task:NNN`; bare number → 400 |
|
||||||
| Board list | `mcp__mappa__entity_search(q, type='task', project=<name>, limit)` | all statuses |
|
| Board list | `mcp__mappa__entity_search(q, type='task', project=<name>, limit)` | all statuses |
|
||||||
| parent_of tree | `mcp__mappa__graph_tree(root, depth?, fields?, limit?)` | umbrellas/hierarchy |
|
| parent_of tree | `mcp__mappa__graph_tree(root, depth?, fields?, limit?)` | umbrellas/hierarchy |
|
||||||
| Related entities | `mcp__mappa__graph_neighbors/backlinks(id)` | refs to the task |
|
| Related entities | `mcp__mappa__graph_neighbors/backlinks(id)` | refs to the task |
|
||||||
@@ -99,7 +100,7 @@ Don't confuse: 🟢 — *done*, not "ready". Ready is ⚪.
|
|||||||
letters may change the plan. Handle each per `mappa-messaging`.
|
letters may change the plan. Handle each per `mappa-messaging`.
|
||||||
2. **Board** — `entity_search(q, type='task', project=<name>, limit=50)`: sort
|
2. **Board** — `entity_search(q, type='task', project=<name>, limit=50)`: sort
|
||||||
by status (🔴 → 🟡 → ⚪), one line per task, quote the slug.
|
by status (🔴 → 🟡 → ⚪), one line per task, quote the slug.
|
||||||
3. If the user named a task — `entity_get(id)` by its ref/number.
|
3. If the user named a task — `entity_get(key)` by its ref/uuid (`task:NNN` or uuid; task:1067 — bare numbers rejected).
|
||||||
4. Confirm in one sentence: "We're in the middle of X, next step — Y".
|
4. Confirm in one sentence: "We're in the middle of X, next step — Y".
|
||||||
5. Ask whether the plan is right before acting.
|
5. Ask whether the plan is right before acting.
|
||||||
|
|
||||||
@@ -146,7 +147,7 @@ Don't confuse: 🟢 — *done*, not "ready". Ready is ⚪.
|
|||||||
coverage".
|
coverage".
|
||||||
2. Resolve/drop open questions.
|
2. Resolve/drop open questions.
|
||||||
3. `task_close(project, id, version)` → status `done`. `version` — fresh from
|
3. `task_close(project, id, version)` → status `done`. `version` — fresh from
|
||||||
`entity_get(id)`/`task_get(id)`; conflict (409) → re-GET → retry.
|
`entity_get(key)`/`task_get(key)` (key = uuid or `task:NNN`); conflict (409) → re-GET → retry.
|
||||||
4. **Notify letter (cross-project tasks).** If the task came from another
|
4. **Notify letter (cross-project tasks).** If the task came from another
|
||||||
project (there's `from:`/`notify:` in description/meta) — `inbox_send` to
|
project (there's `from:`/`notify:` in description/meta) — `inbox_send` to
|
||||||
the commissioner: `project=<notify>`, `subject="[event: closed] <slug>"`,
|
the commissioner: `project=<notify>`, `subject="[event: closed] <slug>"`,
|
||||||
|
|||||||
Reference in New Issue
Block a user