/atn-todo-dequeue: work through your open ToDo cards
/atn-todo-dequeue takes your project's open ToDo cards in order of priority and, for each one, either turns it into a specification or carries it out directly: implemented, reviewed, committed and delivered. Run it when you want to clear cards one by one with a decision on each, or with --auto to have every card that needs no answer from you carried out unattended.
A ToDo card is a short note of work to do later: a follow-up, tech debt, a bug or an idea. The page on ToDo cards describes a card's fields, its open questions and what you do with cards in the web app.
Run /atn-todo-dequeue
/atn-todo-dequeue [card-id...] [--type <type>] [--priority <priority>] [--auto]| Argument or flag | Description |
|---|---|
card-id |
Optional, any number of card ids. Only these cards are taken. |
--type <type> |
Only cards of these types: bug, tech-debt, follow-up, idea. Separate several values with commas. |
--priority <priority> |
Only cards of these priorities: high, medium, low. Separate several values with commas. |
--auto |
Asks two questions at the start and then handles every card without a further question. The flag can stand anywhere in the command. |
Without arguments the skill takes every open card. Card ids and filters combine, so a card is taken only when it matches all of them, and --auto combines with any of them. A type or priority value that is not on the list stops the skill before it reads any card, with a message that names the valid values.
/atn-todo-dequeue --type bug --priority high,mediumThe web app's ToDo page copies these commands for you: Copy work-through command on a card, and Copy queue command and Copy auto-run command above the list.
What /atn-todo-dequeue does
- Builds the queue from the open cards that match your arguments. A card id you passed that is not open is left out and named in the report as closed or not found.
- Orders the queue by priority from high to low, within a priority by type in the order bug, tech debt, follow-up, idea, and within a type from the oldest card to the most recent.
- Shows the first card with its title, description, type, priority and open questions, each with its answer or marked as unanswered. If the card has a specification, the skill names it with its status.
- Asks what to do with the card and does it.
- Goes on with the next card.
- Reads the open cards again when the queue is used up and continues with cards that appeared during the run, such as cards created by an apply run it started. Each card is offered once per run.
- Reports when no card is left or when you choose "Stop".
A card that becomes a specification
With "Create a specification", the skill starts /atn-mindmap from the card. The mind map asks the card's unanswered open questions first, runs its question rounds, creates a specification linked to the card and sets the card to Done when the specification is Prepared. It then asks its own question about the next step, so you can apply or decompose the specification before the queue moves on.
With "Continue the mind map on that specification", offered for a card that has a specification, the mind map continues that one.
A card that is carried out directly
To carry out a card directly is to implement it with no specification and no recorded implementation plan. The skill recommends it for a small, well-defined change and recommends a specification for work that needs design decisions or spans several areas.
- The skill asks each open question of the card that has no answer and stores your answers on the card.
- It asks where to work: on a branch created for the card, on the current branch or on the main branch.
- An agent implements the card and writes and runs tests as your testing and methodology settings say.
- A reviewer checks the code against the card and your answers, with the check groups of your code review settings and the rules in the
## Customsections of your settings files. Findings are fixed and reviewed again, for up to the number of fix rounds in your settings, which is 3 by default. With code review set to off, this step is left out. - The skill commits the card's files and sets the card to Done.
- It asks how to deliver the commits.
An unattended run with --auto
With --auto, the skill first shows a summary: how many cards it will carry out, which cards it will skip and why, and which repositories have uncommitted changes, so that you can abort before you answer. It then asks where to work and how to deliver, once, and applies both answers to every card.
| Card | What happens |
|---|---|
| Has an unanswered open question | Skipped. The card stays open, and the question is not asked. |
| Has a specification | Skipped. The card stays open, and no mind map runs. |
| Any other card | Carried out directly, whatever its size, and delivered as you chose at the start. |
An unattended run dismisses no card and is not stopped by a card. Where the interactive run would ask you, it does the following:
- When a card fails, because the agent could not carry it out, tests keep failing, the review does not pass or a commit fails, the card's changes are rolled back, the card stays open and the run goes on.
- When a review finding needs a product decision, the card counts as failed.
- When git refuses to create or switch the branch for a card, the card is skipped and each repository is put back on the branch it was on.
- When a merge into the main branch or its push fails, the merge is undone, the card's branch is pushed and a pull request is opened. If that fails too, the commits stay local. The card stays Done.
To have a card with open questions carried out unattended, answer its questions in the web app first.
Questions /atn-todo-dequeue asks
| When | Options |
|---|---|
| For each card without a specification | "Create a specification", "Carry out directly", "Skip", "Dismiss" or "Stop" |
| For each card with a specification | "Continue the mind map on that specification", "Skip", "Dismiss" or "Stop" |
| After "Carry out directly", for each unanswered open question of the card | The options written in the question |
| Before a card is carried out directly | Where to work: "A new branch for the card", "The current branch" or "The main branch". The first time, the skill also asks "Apply this answer to all remaining cards of this run" or "Ask again for each card", and with the first answer it does not ask again in the run. |
| Git refuses to create or switch a branch | "Work on the current branch in that repository", "Skip this card" or "Stop" |
| A review finding needs a product decision | The change the reviewer proposes, with "Apply the proposed change" or "Drop this finding", or a resolution you type |
| Carrying out the card failed | The reason, with "Retry with guidance", "Leave everything as it is and go to the next card", "Roll the card's changes back and go to the next card" or "Stop" |
| After each card is committed | Delivery: "Push", "Push and open a merge request", "Merge straight into the main branch" or "Leave the commits local" |
| A merge into the main branch could not be completed | "Push the branch", "Push and open a merge request" or "Leave the commits local" |
With --auto, once at the start |
Where to work: "A new branch per card", "The current branch" or "The main branch". Delivery: "Push", "Push and open a merge request", "Merge straight into the main branch" or "Leave the commits local" |
"Skip" leaves the card open and unchanged. "Dismiss" closes it as Dismissed. "Stop" ends the run and gives the report. Delivery is asked for every card in an interactive run, and an earlier card's answer is not reused.
"Retry with guidance" takes text from you and has the agent try again with it. "Roll the card's changes back and go to the next card" restores the files the card changed, deletes the files it created and removes the branch created for the card. It does not touch a file that had uncommitted changes before the card started. A failed card stays open and is not offered again in the same run.
What /atn-todo-dequeue changes
| Where | What changes |
|---|---|
| The card | Answers to its open questions are stored on it. It is set to Done when it was carried out and committed, or when its specification is Prepared, and to Dismissed when you chose "Dismiss". |
| Specifications | With "Create a specification", one specification is created, linked to the card and shown on it under Became. A card that is carried out directly creates no specification and no implementation plan. |
| Your repository | The code and tests for the card, a branch if you chose one, one commit per repository the card touched, and the push, pull request or merge you chose. |
| Other cards | None. The agents report work they noticed outside the card, and the report lists it. |
Branches and commits for a card
The main branch is the base branch in your gitflow settings. A branch for a card starts from it and is named from your branch template, with the slug built from the card's title: lowercase, hyphens for everything other than letters and digits, at most 50 characters. If the name is taken, the skill adds a numeric suffix. With "The current branch" the skill runs no branch command.
The commit holds the files the card changed and nothing else. Its message follows your commit message template, with [todo <card-id>] in the place of the specification marker. The type is fix for a bug card and feat for the others, unless the change is a refactoring, documentation, tests or a chore.
Of your gitflow settings, the skill uses the base branch, the two templates and the ## Custom section. Where to work and how to deliver are asked in each run, and the settings for branches, commit timing, tags and the end of an apply run apply to /atn-apply only. You choose all workflow settings with /atn-settings.
Delivery of a card's commits
| Option | What the skill does |
|---|---|
| "Push" | Pushes the branch the card was committed on to origin. |
| "Push and open a merge request" | Pushes, then opens one pull request per repository into the main branch, titled with the card's title. It uses glab when the remote is on GitLab and gh otherwise, unless the ## Custom section of your gitflow settings names another way. If neither tool is installed and signed in, the branch stays pushed and the report says why no pull request was opened. |
| "Merge straight into the main branch" | Updates the local main branch from origin, merges the card's branch into it, pushes the main branch and deletes the branch that was created for the card. |
| "Leave the commits local" | Runs no git command. |
When the main branch has moved apart from origin, the merge conflicts or the push is rejected, for example by a protected branch, nothing is merged. The skill puts the main branch back as it was, keeps the card's branch and asks what to do with it. When the commits are on the main branch from the start, "Merge straight into the main branch" and "Push and open a merge request" both push the main branch.
A delivery that fails is reported with its reason. The card stays Done, because its work is committed.
Cards that touch several repositories
When your workflow settings list sub-projects that are git repositories of their own, one answer covers every repository the card touched. A branch for the card has the same name in each, each repository uses its own main branch, and the commit and the delivery are carried out in each. A failure in one repository is reported for it, and the others go ahead.
The report
The report lists every card of the run in the order it was offered, with its id, title and outcome: specification prepared, carried out, skipped, dismissed, failed with the reason and your answer, or not processed because the run stopped. It adds:
- for a card that became a specification, the specification's id and what the mind map reported, including its next step;
- for a card carried out directly, the questions answered, the review result with the number of fix rounds, and per repository the branch, the commits and how they were delivered, with the pull request's address;
- the card ids you passed that were closed or not found;
- the out-of-scope work the agents noticed, as a list you can turn into cards with
/atn-todo-enqueue; - with
--auto, your two answers and each card as carried out, skipped or failed and rolled back, with the reason; - every question asked with your answer, any workflow settings that were missing, and uncommitted changes left behind.