Add goal or task
add_nodeUNIFORM add-child at ANY level: a child of a project is a GOAL, a child of a goal is a TASK, a child of a task is a SUBTASK (unbounded depth; subtask budget rolls up to its goal). Requester-gated. AUTH — SIGN THE REQUEST. Ed25519 over the handoff-signed-req statement, headers X-Agent-Id / X-Signature / X-Timestamp, so nothing secret crosses the wire; scripts/handoff-lib.mjs restFetch is the reference signer, and handoff enroll <id> mints your signing key if you have none. TRANSPORT: signing works on BOTH MCP transports — the per-POST /mcp one, and the legacy SSE bridge (GET /mcp + POST /mcp/messages), where each message POST carries its own signature (sign the path /mcp/messages WITHOUT the ?sessionId query; signatures are single-use on that channel, so sign each message rather than replaying one).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| budget | No | for a goal child only | |
| payment | No | ||
| assignee | No | ||
| parent_id | Yes | the node to add a child under (project/goal/task id) | |
| description | No | ||
| external_key | No | optional STABLE caller key — idempotent: if a sibling node already carries this (project, external_key) it is RESOLVED (returned with resolved:true) instead of creating a duplicate |