Focus Plans
A Focus Plan is a small execution workspace: today’s priorities, a release
checklist, a hotfix, one bounded investigation. It lives on your AirCode Ø
server, not in your repository, so it never adds noise to TODO.md and never
shows up in a diff. A project can have several active at once.
Open them from Focus Plans in the activity bar, or from More → Focus Plans on mobile.
| Space | Lives in | Use it for |
|---|---|---|
| Project TODO | Your repository’s TODO.md |
Durable direction that contributors should see and review with the code |
| Focus Plan | The AirCode Ø server | Today, a sprint, a hotfix, an investigation — bounded work |
| Session plan | One agent conversation | That agent’s internal steps for the current request |
Keep one plan at the top
Open a plan’s actions and choose Pin Focus Plan. The plan gains a visible Pinned marker and stays above every unpinned plan, even when you change the sort to oldest update, completion, or title. Choose Unpin Focus Plan to put it back under the ordinary sort.
On desktop and responsive web, Overview places pinned plans in one section before the priority groups. The native app keeps the same plans at the top of its gallery. The action and result are the same on all three surfaces. Restore an archived plan before changing its pin.
Build one from a conversation
The fastest way to create a Focus Plan is to stop writing it yourself. At the end of a working session, when the agent already knows what is left to do, just ask:
you — Now create a Focus Plan based on this discussion.
The agent creates the plan in the current project, seeded with the tasks it just
worked out with you, and answers with the plan id. Refresh the Focus Plans view
and it is there, with created by agent in its activity history.
From then on, in that conversation or any other session on the same project:
you — Add “Rebuild the Android APK” to the Android rollout plan.
you — Mark the Store listing task as done, and note that the screenshots are still missing.
you — Reorder the plan so the signature check comes first.
you — Rename it to “Android rollout”, then archive it, we shipped.
You never have to name the plan by id. Asking by title is enough — the agent lists the plans of the project and picks the one you mean.
What an agent can do
| Ask for | What happens |
|---|---|
| Create a plan | A new active plan in the session’s project, with the tasks you agreed on |
| Add, update, delete, reorder tasks | Task-level edits, including status, notes, and due dates |
| Rename, describe | Plan-level edits |
| Pin or unpin | Keep the plan at the top, or return it to the ordinary sort |
| Complete, archive, reopen | Lifecycle changes; completing does not archive, archiving does not delete |
| Delete permanently | Only after the plan is archived, and only when you ask for that exact plan |
What an agent will not do
- Nothing happens unless you ask. An agent never turns its internal session plan into a Focus Plan on its own, and never tidies up your plans in the background.
- It cannot leave the project. A session only reaches the Focus Plans of its own project.
- It cannot cross into your repository. Focus Plan tools never write
TODO.md; the Project TODO remains human-owned. - Archived plans are read-only until you reopen them, and permanent deletion requires the plan to be archived first.
- It cannot silently overwrite you. Every agent edit is attributed to its session in the plan’s activity history, and an edit based on a stale version is rejected rather than applied on top of a newer one of yours.
Focus Plan tools are available in local sessions. A session running in the Docker sandbox receives no Focus Plan tools, so a plan cannot be attached to one; resuming an older session in the sandbox detaches its stale plan scope instead of failing.
Attach a screenshot to a task
A task can carry one or several files — a screenshot is the common case. Use Attach a file next to the task, paste a screenshot straight into the field, or drop the file on it; on the phone app, the + button in the task dialog offers Photos, Files, and Camera. Attachments appear as chips, images open full screen, and everything stays with the task after a reload.
Attaching an image here works exactly like attaching one to a prompt: the file is uploaded next to your project, outside the repository, and travels with the task. When you start a session on that task, the agent receives the screenshot with it — nothing else to do.
Run a task
The play control on a task opens a short run panel — engine, model, effort, permissions — and starts. There is no prompt to write: the task title and its notes are the prompt. Choose Edit the prompt… when you want the full launch form instead, to amend the scope or attach a file. These sessions run on the local runtime.
Starting a task moves it to In progress on its own. A task you already marked blocked, done, or in progress keeps the state you gave it.
While a session is running on a task, the row shows what it is doing — waiting for you, working, or finished — and the same control opens that session instead of starting a second one. Agents on the same project share one working copy, so running several tasks at once means they will overwrite each other; the panel says so before you start.
When the session finishes its turn, the row offers Mark complete. It is an offer: an agent stopping is not proof the work is done, so the plan waits for your click.
Start session on the plan itself runs one session on the whole plan, with its remaining tasks in order. It does not fan out into one session per task.
The conversation shows a compact Focus Plan banner while it carries that work. It gives you the real completed-task count, one segment per task, the current or next task, and an honest state such as Working, Needs your input, Blocked, Paused, or Complete. Open the banner to review every task or jump to the full plan. It follows saved task changes while the agent works; finishing a turn pauses the banner but never marks the work complete.
The Unprompted plan updates switch is about initiative, not permission: turn it on and the agent also records verified progress on the attached scope as it works, without being asked each time. Leave it off and the plan changes only when you ask.
Sync progress with AI
Use the prominent Sync with AI action when work may have landed outside the Focus Plan. Choose an engine and model; AirCode Ø then runs a read-only background analysis of the unfinished tasks against the repository, its tests, and relevant Git evidence.
The result is a review, not an automatic edit. Each task receives a supported verdict such as likely done, partial, no trace, or not verifiable. AirCode Ø marks nothing complete until you accept the suggestion. The analysis appears under Runs, never as a conversation in Sessions, and it can be cancelled from the Focus Plan while it is active.
Where the data lives
Focus Plans are stored in SQLite inside your AirCode Ø state directory, on the
machine running the server. They are never written into your project directory,
committed to Git, or embedded in TODO.md. Include the state directory in your
server backup to keep them.