Skip to content

Plan Mode and Task Tracking ​

Triggerfish provides two complementary tools for structured work: plan mode for complex implementation planning, and todo tracking for task management across sessions.

Plan Mode ​

Plan mode constrains the agent to read-only exploration and structured planning before making changes. This prevents the agent from jumping into implementation before understanding the problem.

Tools ​

plan_enter ​

Enter plan mode. Blocks write operations (write_file, cron_create, cron_delete) until the plan is approved.

ParameterTypeRequiredDescription
goalstringyesWhat the agent is planning to build/change
scopestringnoConstrain exploration to specific directories or modules

plan_exit ​

Exit plan mode and present the implementation plan for user approval. Does not automatically begin execution.

ParameterTypeRequiredDescription
planobjectyesThe implementation plan (summary, approach, steps, risks, files, tests)

The plan object includes:

  • summary -- What the plan accomplishes
  • approach -- How it will be done
  • alternatives_considered -- What other approaches were evaluated
  • steps -- Ordered list of implementation steps, each with files, dependencies, and verification
  • risks -- Known risks and mitigations
  • files_to_create, files_to_modify, tests_to_write
  • estimated_complexity

plan_status ​

Returns current plan mode state: active mode, goal, and plan progress.

plan_approve ​

Approve the pending plan and begin execution. Called when the user approves.

plan_reject ​

Reject the pending plan and return to normal mode.

plan_step_complete ​

Mark a plan step as complete during execution.

ParameterTypeRequiredDescription
step_idnumberyesThe step ID to mark complete
verification_resultstringyesOutput from the verification command

plan_complete ​

Mark the entire plan as complete.

ParameterTypeRequiredDescription
summarystringyesWhat was accomplished
deviationsarraynoAny changes from the original plan

plan_modify ​

Request a modification to an approved plan step. Requires user approval.

ParameterTypeRequiredDescription
step_idnumberyesWhich step needs changing
reasonstringyesWhy the change is needed
new_descriptionstringyesUpdated step description
new_filesarraynoUpdated file list
new_verificationstringnoUpdated verification command

Workflow ​

1. User asks for something complex
2. Agent calls plan_enter({ goal: "..." })
3. Agent explores codebase (read-only tools only)
4. Agent calls plan_exit({ plan: { ... } })
5. User reviews the plan
6. User approves → agent calls plan_approve
   (or rejects → agent calls plan_reject)
7. Agent executes step by step, calling plan_step_complete after each
8. Agent calls plan_complete when done

When to Use Plan Mode ​

The agent enters plan mode for complex tasks: building features, refactoring systems, implementing multi-file changes. For simple tasks (fix a typo, rename a variable), it skips plan mode and acts directly.

Todo Tracking ​

The agent has a persistent todo list for tracking multi-step work across sessions.

Tools ​

todo_read ​

Read the current todo list. Returns all items with their ID, content, status, priority, and timestamps.

todo_write ​

Replace the entire todo list. This is a complete replacement, not a partial update.

ParameterTypeRequiredDescription
todosarrayyesComplete list of todo items

Each todo item has:

FieldTypeValues
idstringUnique identifier
contentstringTask description
statusstringpending, in_progress, completed
prioritystringhigh, medium, low
created_atstringISO timestamp
updated_atstringISO timestamp

Behavior ​

  • Todos are scoped per-agent (not per-session) -- they persist across sessions, trigger wakeups, and restarts
  • The agent only uses todos for genuinely complex tasks (3+ distinct steps)
  • One task is in_progress at a time; completed items are marked immediately
  • When the agent writes a new list that omits previously stored items, those items are automatically preserved as completed
  • When all items are completed, old items are not preserved (clean slate)

Display ​

Todos are rendered in both the CLI and Tidepool:

  • CLI -- Styled ANSI box with status icons: ✓ (completed, strikethrough), ▶ (in progress, bold), ○ (pending)
  • Tidepool -- HTML list with CSS classes for each status