| name | pi-goal |
| description | Lightweight Codex-style goal tracking for pi, with optional @tintinweb/pi-tasks awareness. Use when the user explicitly asks to set, continue, audit, pause, resume, complete, or inspect a long-running goal. |
pi-goal
Use goal tools only when the user explicitly wants persistent goal tracking or when an active goal already exists. Goals are created with the /goal slash command, not by the agent.
Tools
Inspect the current goal:
get_goal({});
Mark the goal complete:
update_goal({ status: "complete" });
update_goal only accepts complete. Pause, resume, budget-limited, and clear transitions are controlled by the user via /goal pause|resume|clear or by the runtime (reload-pause, budget-limit, NO_TOOL_CALLS).
Completion Rule
Before marking a goal complete, audit the actual current state:
- Restate the goal as concrete deliverables.
- Map every explicit requirement to real evidence.
- Inspect files, command output, test results, or repository state for each item.
- Treat uncertainty as incomplete.
- Call
update_goal({ status: "complete" }) only when no required work remains.
pi-tasks Integration
When @tintinweb/pi-tasks is in use, the goal continuation prompt includes a <task_list> snapshot of pending/in-progress/blocked/completed counts plus the open tasks. To work the list:
- Pick the lowest-numbered open task with no open blockers.
- Mark it
in_progress via TaskUpdate if it isn't already.
- Do the work.
- Mark it
completed via TaskUpdate.
- Repeat until the list is empty.
update_goal({ status: "complete" }) refuses while any pi-tasks task is still pending or in_progress. Either finish or delete the open tasks first, or ask the user to /goal clear if abandoning.