goal_advance
Advance a tracked board node's status, requiring evidence for leaf completion and auto-rolling up parent status. Call when a user reports finishing a mapped work item.
Instructions
Advance a node's status. A leaf moving to 'done' REQUIRES non-empty evidence (real observed output) — the no-self-certification rule. Parent status rolls up automatically from children. Trigger: when the user reports finishing a tracked piece of work ("xong rồi", "xong X", "done X", "done", "mark done", "finished X"), advance the matching board node's status here. Only call when the report maps to a tracked board item; ignore unrelated casual chatter.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Named annotation kept under payload.notes, e.g. {name: "rechecked-2026-09-27", text: "..."} | |
| title | No | Rename the node (manifest task title) | |
| status | Yes | New status (draft|not_started|ready|in_progress|blocked|done|superseded). Always required: to edit a field below WITHOUT a status change, pass the node's CURRENT status. | |
| node_id | Yes | Node id to advance | |
| payload | No | Shallow-merged into the node's payload; `{"do": "<text>"}` is the manifest `do:` line. Keys not named here survive. | |
| evidence | No | Real observed output proving the node (required for a leaf -> done) | |
| session_id | No | Your agent session id, recorded on the node's history row | |
| verify_cmd | No | Replace the node's done-when text (manifest `done-when:`). Whole-value replace, max 2000 chars. | |
| order_index | No | Manifest position | |
| external_ref | No | Shallow-merged into the node's externalRef. Never trusted as a security predicate. |