[{"data":1,"prerenderedAt":46},["ShallowReactive",2],{"doc:en:board":3},{"title":4,"lede":5,"html":6,"headings":7},"The Kanban","A project’s Kanban sorts its tickets into four columns. You write a ticket with its acceptance criteria, an agent picks it up and works until it meets them, then hands it back to you to review. This page describes the board, the tickets, and their cards.","\u003Cp>\u003Cimg src=\"\u002Fimages\u002Fen\u002Fboard.jpg\" alt=\"A project’s Kanban: the “To do”, “In progress”, “To review”, and “Done” columns, with their tickets\" width=\"1920\" height=\"960\" loading=\"lazy\" decoding=\"async\">\u003C\u002Fp>\n\u003Ch2 id=\"opening-the-kanban\">Opening the Kanban\u003C\u002Fh2>\n\u003Cp>Every project has its own Kanban. At the top of the sidebar, the project’s switcher offers “Agents” and “Kanban”. Click “Kanban”: the board takes the place of the conversation. Click “Agents” to go back to the list of agents. A badge on “Kanban” counts the project’s tickets in “To review”.\u003C\u002Fp>\n\u003Cp>Clicking a ticket notification (“ready to review” or “blocked”) also opens the project’s Kanban.\u003C\u002Fp>\n\u003Ch3 id=\"the-board-header\">The board header\u003C\u002Fh3>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Element\u003C\u002Fth>\n\u003Cth>What it says or does\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>“Kanban” and the line below\u003C\u002Ftd>\n\u003Ctd>The project’s name, the number of tickets, and how many are “In progress” (“demo-api · 5 tickets · 2 looping”).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>The slots\u003C\u002Ftd>\n\u003Ctd>“1 free slot” or “All slots are taken”, or why nothing starts: “Quota reached — resumes at 2:30 PM”, “Claude Code not found — no tickets will start”, a target branch with no commit or not found.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Import”\u003C\u002Ftd>\n\u003Ctd>Opens the window that imports tickets from Jira, Trello, GitHub Issues, or Linear (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Fintegrations\u002F\">Jira, Trello, GitHub, and Linear\u003C\u002Fa>).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“After approval: …”\u003C\u002Ftd>\n\u003Ctd>Sums up what “Approve” does (“merge squash → main”, “PR → main”, “push ticket\u002F*”, “leave as is”). A click opens Settings › Kanban (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Fsettings-board\u002F\">Kanban settings\u003C\u002Fa>).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Autopilot”\u003C\u002Ftd>\n\u003Ctd>The switch of this project’s \u003Ca href=\"\u002Fen\u002Fdocs\u002Fautopilot\u002F\">autopilot\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>When the autopilot is paused, a line under the header says why and offers “Resume now”.\u003C\u002Fp>\n\u003Ch2 id=\"the-columns\">The columns\u003C\u002Fh2>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Column\u003C\u002Fth>\n\u003Cth>What it holds\u003C\u002Fth>\n\u003Cth>Order\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>“To do”\u003C\u002Ftd>\n\u003Ctd>The tickets waiting for an agent.\u003C\u002Ftd>\n\u003Ctd>By priority, from top to bottom, then by age.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“In progress”\u003C\u002Ftd>\n\u003Ctd>The tickets an agent is working on (“Loop 2\u002F5”), and those that are blocked.\u003C\u002Ftd>\n\u003Ctd>By start time.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“To review”\u003C\u002Ftd>\n\u003Ctd>The tickets the agent hands back: criteria met, or the maximum number of loops reached. It is up to you to test them, then approve or send them back.\u003C\u002Ftd>\n\u003Ctd>By arrival time.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Done”\u003C\u002Ftd>\n\u003Ctd>The approved tickets.\u003C\u002Ftd>\n\u003Ctd>Newest first.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Each column shows its number of tickets. An empty column says what it is waiting for (“Add a ticket: an agent will pick it up as soon as a slot is free”, “Nothing to review”). Only the “To do” column has a \u003Ccode class=\"key\">+\u003C\u002Fcode> button (“New ticket”).\u003C\u002Fp>\n\u003Cp>Cards are not moved by hand: a ticket changes column depending on what its agent does and what you decide (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Fautopilot\u002F\">the autopilot\u003C\u002Fa> and \u003Ca href=\"\u002Fen\u002Fdocs\u002Ftesting\u002F\">Reviewing and approving a ticket\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch2 id=\"creating-a-ticket\">Creating a ticket\u003C\u002Fh2>\n\u003Col>\n\u003Cli>In the “To do” column, click \u003Ccode class=\"key\">+\u003C\u002Fcode> (“New ticket”). A large “New ticket” window opens, made for writing long texts.\u003C\u002Fli>\n\u003Cli>Fill in the fields. Only the title is required.\u003C\u002Fli>\n\u003Cli>Press \u003Ccode class=\"key\">Ctrl+Enter\u003C\u002Fcode> (the “Add” button does the same). The ticket lands at the end of “To do”.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>On macOS, \u003Ccode class=\"key\">Ctrl\u003C\u002Fcode> becomes \u003Ccode class=\"key\">⌘\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Field\u003C\u002Fth>\n\u003Cth>What it is for\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>“Ticket title”\u003C\u002Ftd>\n\u003Ctd>What the ticket does, in one line. “Add” stays disabled while the title is empty.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Description”\u003C\u002Ftd>\n\u003Ctd>The context, which the agent reads with the title. Optional.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Acceptance criteria”\u003C\u002Ftd>\n\u003Ctd>One criterion per line. The agent checks each one, and the ticket is only done when they are met. With none, Escouade adds two: “Implementation matches the ticket” and “Tests pass” (in the interface language at the time of creation).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Max loops”\u003C\u002Ftd>\n\u003Ctd>The most loops the agent may run: 3, 5 (the default), or 8. See \u003Ca href=\"\u002Fen\u002Fdocs\u002Fautopilot\u002F#the-loop\">the autopilot\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Branch”\u003C\u002Ftd>\n\u003Ctd>By default “New branch \u003Ccode class=\"key\">ticket\u002F&lt;key&gt;\u003C\u002Fcode>”: the ticket gets its own branch, made when it starts. “Take up an existing branch…” opens the branch picker (local or remote branches): the agent then works on that branch, which Escouade never deletes, even once the ticket is approved. The Kanban’s target branch and the branch of the project’s folder cannot be picked.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“After”\u003C\u002Ftd>\n\u003Ctd>The tickets that must be done before this one. The list shows the project’s other tickets that are not “Done”; “Search for a key” filters it, and the tickets you checked stay in view. It only appears when there are other tickets.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>A ticket cannot come after a ticket that already waits for it, directly or not: neither would ever start. The box unchecks itself and the window says which one (“DEM-3 already waits for DEM-5 (directly or indirectly).”).\u003C\u002Fp>\n\u003Cp>In the window:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode class=\"key\">Ctrl+Enter\u003C\u002Fcode> adds (or saves) from any field. \u003Ccode class=\"key\">Enter\u003C\u002Fcode> alone does it from the title, and starts a new line in the other fields.\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"key\">Esc\u003C\u002Fcode>, the cross, a click outside, or “Cancel” close the window. If you typed something, Escouade asks “Discard your changes?”; “Cancel” takes you back to the form with what you had written.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv class=\"callout note\">\u003Cp class=\"callout-title\">Note\u003C\u002Fp>\u003Cp>Every ticket gets a key, like \u003Ccode class=\"key\">DEM-5\u003C\u002Fcode>: the first three letters of the project’s name in capitals (\u003Ccode class=\"key\">TIC\u003C\u002Fcode> if it has none), then a number that is never reused. The first ticket also fixes the Kanban’s target branch: the branch the project is on at that moment. If the project is on a detached HEAD, the ticket is refused until you choose the target branch in \u003Ca href=\"\u002Fen\u002Fdocs\u002Fsettings-board\u002F\">Settings › Kanban\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"editing-prioritizing-and-deleting-a-ticket\">Editing, prioritizing, and deleting a ticket\u003C\u002Fh2>\n\u003Ch3 id=\"editing\">Editing\u003C\u002Fh3>\n\u003Cp>Click a “To do” card (or right-click › “Edit”): the “Edit DEM-5” window opens with the same fields. \u003Ccode class=\"key\">Ctrl+Enter\u003C\u002Fcode> or “Save” saves. Only a “To do” ticket can be edited: once it has started, a click on its card opens its agent.\u003C\u002Fp>\n\u003Ch3 id=\"moving-a-ticket-to-the-top\">Moving a ticket to the top\u003C\u002Fh3>\n\u003Cp>Right-click a “To do” card › “Move to top”. The order of the column is the order in which the autopilot takes tickets.\u003C\u002Fp>\n\u003Ch3 id=\"deleting\">Deleting\u003C\u002Fh3>\n\u003Cp>Right-click a card › “Delete”.\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Column\u003C\u002Fth>\n\u003Cth>What happens\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>“To do”\u003C\u002Ftd>\n\u003Ctd>A confirmation, then the ticket and its description are gone. The tickets that were waiting for it no longer wait. For an imported ticket, the confirmation adds that it will no longer be imported from its service: automatic import does not bring it back (you can still import it again by hand).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“In progress” and “To review”\u003C\u002Ftd>\n\u003Ctd>A confirmation, then the ticket is gone and its agent is archived.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Done”\u003C\u002Ftd>\n\u003Ctd>The ticket is gone right away, without a confirmation.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Deleting a ticket from the Kanban does not delete it in Jira, Trello, GitHub, or Linear.\u003C\u002Fp>\n\u003Cp>Archiving or deleting the agent of an “In progress” or “To review” ticket sends that ticket back to “To do”, from scratch (Escouade asks before archiving: “Its ticket DEM-5 goes back to “To do”.”).\u003C\u002Fp>\n\u003Ch2 id=\"what-a-card-shows\">What a card shows\u003C\u002Fh2>\n\u003Cp>Every card has its key, its title and, for an imported ticket, the badge of its service with its key there (a click opens it in the service). A ⚠ flags a sync that failed (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Fintegrations\u002F#failed-syncs\">Jira, Trello, GitHub, and Linear\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Column\u003C\u002Fth>\n\u003Cth>The card shows\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>“To do”\u003C\u002Ftd>\n\u003Ctd>The number of criteria and loops (“3 criteria · max 5 loops”), and when the ticket will start: “Picked up as soon as a slot is free”, “Waiting for a slot (2\u002F2)”, “⏸ after DEM-3”, “Autopilot is off”, “Waiting: autopilot paused”… With the autopilot off, a “Start” button appears when a slot is free.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“In progress”\u003C\u002Ftd>\n\u003Ctd>“Loop 2\u002F5”; the criteria, checked (✓) or not (○), with the agent’s note on hover; a bar of the criteria met; the last three items of the progress (“+2” for the others); the status line the agent published through the \u003Ca href=\"\u002Fen\u002Fdocs\u002Fmcp\u002F\">MCP server\u003C\u002Fa>; what it is doing (“Reading src\u002Fbilling\u002Finvoices.ts”), “Setting up the worktree · …” during setup, “Question waiting for your answer”, or “Resumes at 2:30 PM” if it is waiting for its quota. At the bottom: the agent’s name with its status, and the ticket’s cost (preceded by “≈” while it is an estimate).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“To review”\u003C\u002Ftd>\n\u003Ctd>“What was done” in full, the criteria, “Partial goal” if the maximum number of loops was reached without every criterion, the cost and “3\u002F3 criteria”, then the buttons for \u003Ca href=\"\u002Fen\u002Fdocs\u002Ftesting\u002F\">testing and approving\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>“Done”\u003C\u002Ftd>\n\u003Ctd>What became of the ticket (“⤵ Merged into main · squash”, “⇡ PR #41 → main”, “⇡ Pushed to ticket\u002Fdem-3”, “◇ Left in the worktree”, “∅ No changes”), then “3 loops · $1.12”. A PR reopens with a click.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>A blocked ticket (“In progress” or “To review”) shows its reason in a frame: “Interrupted”, “Error: …”, “Criteria report missing”, a conflict… A blocked “In progress” ticket has a “Resume” button and no longer holds a slot. The card of an agent waiting for your answer has an amber outline.\u003C\u002Fp>\n\u003Cdiv class=\"callout tip\">\u003Cp class=\"callout-title\">Tip\u003C\u002Fp>\u003Cp>“Notify me about › Tickets (ready to review, blocked)” in the settings decides whether a ticket that reaches “To review” or gets blocked notifies you (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Fnotifications\u002F\">Notifications\u003C\u002Fa>).\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"the-ticket-s-agent-and-its-conversation\">The ticket’s agent and its conversation\u003C\u002Fh2>\n\u003Cp>When a ticket starts, Escouade creates an agent for it. It carries the ticket’s key and title (\u003Ccode>dem-5-export-csv-des-factures\u003C\u002Fcode>) and shows up in the list of agents with a “▸ DEM-5 · loop 1\u002F5” tag, then “DEM-5 · to review”. It works in a worktree of its own.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Click the card of an “In progress”, “To review”, or “Done” ticket (or give it focus and press \u003Ccode class=\"key\">Enter\u003C\u002Fcode> or \u003Ccode class=\"key\">Space\u003C\u002Fcode>) to open its agent’s conversation. Right-click › “Open agent” does the same.\u003C\u002Fli>\n\u003Cli>It is the same conversation as the other agents’ (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Fmanaging-agents\u002F\">Agents\u003C\u002Fa> and \u003Ca href=\"\u002Fen\u002Fdocs\u002Fchat\u002F\">Chat\u003C\u002Fa>): you read what the agent does, answer its questions and permission requests, and write to it. A ticket’s agent stays in Escouade’s view; it has no button for the \u003Ca href=\"\u002Fen\u002Fdocs\u002Fclaude-code-view\u002F\">Claude Code view\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>The conversation’s header and the criteria report have a “▶ Test” button when the agent has what it takes to launch its work, like the “To review” card (see \u003Ca href=\"\u002Fen\u002Fdocs\u002Ftesting\u002F\">Reviewing and approving a ticket\u003C\u002Fa>).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"the-criteria-report\">The criteria report\u003C\u002Fh2>\n\u003Cp>A ticket’s agent ends each of its answers with a report: which criteria are met, what it has done and, once it has prepared it, how to launch its work to test it. Escouade reads this report to move the ticket along, and the conversation shows it as a “Criteria report” card instead of the raw text:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>the count of criteria met (“2\u002F3”) and, for each one, ✓ or ○ with the agent’s note;\u003C\u002Fli>\n\u003Cli>“What was done”: up to eight short items, which the ticket’s card picks up;\u003C\u002Fli>\n\u003Cli>“Test launch”: the “Setup” steps and the processes (name, command, address), with a “▶ Test” button when a test is possible.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If an answer comes without a report, the agent is prompted once. Without a report a second time, the ticket gets blocked (“Criteria report missing”) and you can “Resume” it.\u003C\u002Fp>\n\u003Ch2 id=\"going-further\">Going further\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fen\u002Fdocs\u002Fautopilot\u002F\">The autopilot\u003C\u002Fa>: how tickets are picked up, looped on, and paused.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fen\u002Fdocs\u002Ftesting\u002F\">Reviewing and approving a ticket\u003C\u002Fa>: “▶ Test”, “Approve”, “Send back”.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fen\u002Fdocs\u002Fintegrations\u002F\">Jira, Trello, GitHub, and Linear\u003C\u002Fa>: import tickets and keep their status up to date.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fen\u002Fdocs\u002Fmcp\u002F\">The MCP server\u003C\u002Fa>: create and start tickets from Claude.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fen\u002Fdocs\u002Fsettings-board\u002F\">Kanban settings\u003C\u002Fa>: every setting of the board.\u003C\u002Fli>\n\u003C\u002Ful>\n",[8,12,16,19,22,25,28,31,34,37,40,43],{"id":9,"text":10,"depth":11},"opening-the-kanban","Opening the Kanban",2,{"id":13,"text":14,"depth":15},"the-board-header","The board header",3,{"id":17,"text":18,"depth":11},"the-columns","The columns",{"id":20,"text":21,"depth":11},"creating-a-ticket","Creating a ticket",{"id":23,"text":24,"depth":11},"editing-prioritizing-and-deleting-a-ticket","Editing, prioritizing, and deleting a ticket",{"id":26,"text":27,"depth":15},"editing","Editing",{"id":29,"text":30,"depth":15},"moving-a-ticket-to-the-top","Moving a ticket to the top",{"id":32,"text":33,"depth":15},"deleting","Deleting",{"id":35,"text":36,"depth":11},"what-a-card-shows","What a card shows",{"id":38,"text":39,"depth":11},"the-ticket-s-agent-and-its-conversation","The ticket’s agent and its conversation",{"id":41,"text":42,"depth":11},"the-criteria-report","The criteria report",{"id":44,"text":45,"depth":11},"going-further","Going further",1791926756335]