ToDo cards
A ToDo card is a short note about work that is worth doing but doesn't belong to what is being built right now: a follow-up, a piece of tech debt, a bug or an idea. Your AI coding agent leaves cards for the out-of-scope findings of a run, and you add your own thoughts. When a card's time comes, one command turns it into a specification.
Cards live in the ToDo tab of your project in the web app. Agents reach them through
the todos commands of the CLI and the matching tools of the
Athenode MCP server, which need version 0.4.0 or later of the
CLI. If your project was set up with an older version, run init again to get the updated
skills:
npx @athenode/cli initWhat a card holds
| Field | What it is |
|---|---|
| Title | A short title, at most 200 characters. |
| Description | Optional Markdown, at most 10,000 characters. |
| Type | follow-up, tech-debt, bug or idea. The default is idea. |
| Priority | low, medium or high. The default is medium. |
| Status | inbox, open, done or dismissed — see below. |
| Source | Agent or Person: who created the card. |
| From | Optional. The specification whose work the card came out of. |
| Became | The specification the card was turned into, once there is one. |
A card's status says where it is in its life:
| Status | Meaning |
|---|---|
inbox |
New and waiting for your decision. Every card an agent creates starts here. |
open |
Accepted: work you intend to do. |
done |
Closed, because the work is done or the card became a specification. |
dismissed |
Closed, because you decided not to do it. |
Cards are listed by priority, highest first, then newest first.
The ToDo tab
The sidebar entry ToDo shows the number of cards waiting in the Inbox as a badge. The tab has three parts:
- Inbox. A stack that shows one card at a time. For the card in front you Accept it (it moves to Open), Dismiss it, or change its priority.
- Open. One list of the accepted cards, grouped into High, Medium and Low priority bands. Here you mark a card as done, move it to another status, edit it or delete it.
- Archive. Closed cards leave the lists and go to the archive, a drawer with the Done
and Dismissed cards. Reopen moves a closed card back to
open.
A type filter narrows all three to one type of card.
To add a card yourself, choose New card and pick where it starts under Start in: Open, which is the default and skips the Inbox, or Inbox, which keeps the card for a later decision.
Keyboard shortcuts
| Key | Action |
|---|---|
J or Right arrow |
Next card in the Inbox |
K or Left arrow |
Previous card in the Inbox |
A |
Accept the card in front |
D |
Dismiss the card in front |
1 / 2 / 3 |
Set its priority to high / medium / low |
N |
New card |
Who can do what
Owners and editors create, edit and delete cards, and move a card from any status to any
other. Viewers read the cards, follow their links to specifications and copy the mind-map
command; they can move between cards with J and K, and the other shortcuts do nothing
for them. See Team Management for the roles.
Turning a card into a specification
While a card has no specification yet, it offers Copy mind-map command. The button copies a command for your AI coding agent:
/mindmap-specification --from-todo <card_id>Run it in your agent, and /mindmap-specification starts from the card instead of from a blank page:
- The card's title and description are the subject of the mind map. Any text you add after the flag only narrows or steers it.
- The new specification is created as a
draftand linked to the card in the same step, so the card shows it under Became straight away. - The card is set to
doneright after the specification becomesprepared.
--from-todo can't be combined with --continue. It combines freely with --auto-apply
and --auto-decompose.
Running the command a second time never creates a second specification for the same card:
| The card | What happens |
|---|---|
Not closed, with a specification still in draft |
The skill continues that draft. |
Closed and it has a specification, or its specification is past draft |
The skill asks you to choose between "Continue the existing specification" and "Stop", also when you passed --auto-apply or --auto-decompose. |
| Closed, with no specification | Nothing is created. Reopen the card in the ToDo tab first. |
How agents create cards
/apply-specification is where most agent-made cards come from. While it plans, implements and reviews, its subagents note work that lies outside the specification and can't be done in the same run. They only report these out-of-scope findings; the skill itself creates the cards, as its last step:
- It drops every finding that a card you haven't closed already covers.
- If any are left, it asks you once which of them to turn into ToDo cards. You can pick several, all or none. If none are left, it asks nothing.
- It creates the cards you chose, each with a type, a priority and the specification it came from, and they arrive in your Inbox.
- Its report lists the cards it created and the findings it skipped as duplicates, that you declined, or that it couldn't create.
This happens at the end of every run that got as far as implementation, whether the run
succeeded or not, and also when another skill started it with --auto-apply. A problem
inside the specification being applied, such as a failing test or a review finding, never
becomes a card.
What agents can and cannot do
An agent works with your project token, through the CLI or the MCP server, and the Athenode server limits what that token may do with cards:
- It can list cards, read a card and create a card. A card it creates always starts in
inboxwith the source Agent. - It can set a card to
done, and only when the card's specification exists and is no longer adraft. - It can't edit, dismiss, reopen or delete a card. Those belong to people in the ToDo tab, and the CLI has no command for changing or deleting a card. A refused change returns a 403 error.
The commands, which are also the MCP tools todos_list, todos_get, todos_create and
todos_set_status:
athenode todos list [--status <status>]... [--specification <id>]
athenode todos get <id>
athenode todos create --title <title> [--description <text>] [--type <type>] [--priority <priority>] [--origin-specification <id>]
athenode todos set-status <id> <status>athenode todos list returns only the inbox and open cards unless you ask for other
statuses with --status, which you can repeat. --specification keeps the cards that
came from, or became, that specification.
To create a specification from a card by hand, pass the card's id:
athenode specs create --title <title> --todo-card <id>The specification and its link to the card are saved together. A card that already has a specification is refused, never overwritten.
Links and limits
- Deleted specifications. Deleting the specification a card came from, or the one it became, only clears that link. The card stays.
- Free plan. A project on the Free plan holds up to 100 cards, closed cards included. Other plans have no limit. When the limit is reached, the web app tells you so, and the CLI reports a plan limit error (exit code 3).
What's next
- Built-in skills —
/mindmap-specificationand/apply-specificationstep by step - CLI — the
todoscommands and the rest of the CLI - Athenode MCP server — the ToDo card tools your AI agent uses
- Team Management — the roles that decide who can change cards