Skip to content

Tasks

A task is the durable user request. Maestro preserves the original text for audit and derives a short title and execution specification for display, prompts, branch names and pull-request titles.

Dashboard and CLI:

Terminal window
maestro.cmd task create my-app "Add a monthly expense summary to the dashboard"
maestro.cmd task list --project my-app

Telegram can use /task @my-app <request>. Chat can suggest or create a task when its access mode allows a governed action and the user explicitly confirms it.

  • Task: the durable request, project, status, branch/worktree and delivery record.
  • Goal: one persistent execution run for that task, with phases, steps, provider attempts, checkpoints and validation evidence.

A task can have more than one Goal run over its lifetime, but retry/resume operations are designed to preserve the existing worktree and checkpoint rather than quietly starting from zero.

Common statuses are queued, planning, implementing, testing, reviewing, changes_requested, awaiting_human, ready_to_merge, waiting_provider, waiting_dependency, blocked, failed, cancelled, rejected and done.

queued means it has not been prepared or started. awaiting_human means delivery evidence and a draft PR are waiting for review. done means the task is finished; a standalone PR still needs the human merge decision unless it is handled outside Maestro.

  • Prepare creates the isolated branch/worktree.
  • Start goal begins execution after preparation and preflight.
  • Cancel stops active work and keeps history.
  • Retry is reserved for a budget-blocked Goal and raises its step ceiling while preserving the checkpoint.
  • Resume reopens a blocked, failed or provider-waiting Goal after the underlying issue is fixed.
  • Delete is limited to tasks without a worktree or Goal history.