Skip to content

Plans: multi-step delegation

When a job is too big for a single chat, askTheodor turns it into a Plan: a set of tasks wired together with dependencies that the app runs for you after you approve it.

What you’ll do

  1. Have Theodor draft a Plan from a goal.
  2. Read the Plan as a dependency graph.
  3. Approve it and watch the scheduler advance it.

1. Let Theodor draft it

You rarely build a Plan by hand. Hand Theodor a meaty request — “scout these URLs, summarise each, draft a post per network, get my approval, then schedule the approved ones” — and he calls propose_plan: a chain of tasks, each assigned to the right worker, wired in the right order.

2. A Plan is a DAG

Under the hood a Plan is a DAG — a directed acyclic graph: tasks point to the tasks they depend on, with no loops. A “write the press release” task can wait on “research the market”; two independent tasks run in parallel. The shape decides what’s allowed to start when.

3. Approve, then it runs itself

A Plan never just starts. It begins in pending_approval and waits for your green light — that’s the safety contract. Once approved, a background scheduler does the work:

  • It dispatches each task whose dependencies are all satisfied.
  • If a task fails, it retries with exponential backoff up to a budget, then marks it failed.
  • When every task is done, it marks the Plan done and writes a final report, with a 📂 Deliverables list linking the documents into the Library.

Recap

A Plan is a DAG of tasks the scheduler advances on its own after you approve it once — dispatching ready steps, retrying failures, and finishing with a report and deliverables. Next: zoom into the single task and the review step that gates “done.”

➡️ Next: Tasks, review & done