<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stable on aitasks</title><link>https://www.aitasks.io/maturity/stable/</link><description>Recent content in Stable on aitasks</description><generator>Hugo</generator><language>en</language><atom:link href="https://www.aitasks.io/maturity/stable/index.xml" rel="self" type="application/rss+xml"/><item><title>/aitask-pick</title><link>https://www.aitasks.io/docs/skills/aitask-pick/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pick/</guid><description>&lt;p&gt;The central skill of the aitasks framework. This is a full development lifecycle skill that manages the complete task lifecycle from selection through implementation, review, and archival.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-pick # Interactive task selection from prioritized list
/aitask-pick 10 # Directly select parent task t10
/aitask-pick 10_2 # Directly select child task t10_2
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex CLI note:&lt;/strong&gt; In Codex wrappers, after implementation, most of the times you will need to explicitly tell the agent to continue the workflow because &lt;code&gt;request_user_input&lt;/code&gt; is only available in plan mode. Example prompts: &lt;code&gt;Good, now finish the workflow&lt;/code&gt; or &lt;code&gt;Good, now continue&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Kanban Board</title><link>https://www.aitasks.io/docs/tuis/board/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/board/</guid><description>&lt;p&gt;The &lt;code&gt;ait board&lt;/code&gt; command launches an interactive terminal-based kanban board for managing your tasks visually. Built with &lt;a href="https://textual.textualize.io/"&gt;Textual&lt;/a&gt;, it provides a full-featured TUI with columns, task cards, inline metadata editing, git integration, and keyboard-driven navigation.&lt;/p&gt;

&lt;style&gt;
.static-img-zoom { cursor: zoom-in; }
.static-img-zoom img { transition: opacity 0.2s; }
.static-img-zoom img:hover { opacity: 0.85; }
.static-img-overlay {
 display: none; position: fixed; inset: 0; z-index: 9999;
 background: rgba(0,0,0,0.8); align-items: center; justify-content: center;
 cursor: zoom-out;
}
.static-img-overlay.active { display: flex; }
.static-img-overlay img {
 max-width: 92vw; max-height: 92vh; border-radius: 4px;
 box-shadow: 0 4px 32px rgba(0,0,0,0.5);
}
.static-img-close {
 position: fixed; top: 16px; right: 20px; z-index: 10000;
 color: #fff; font-size: 32px; cursor: pointer; line-height: 1;
 background: rgba(0,0,0,0.5); border: none; border-radius: 50%;
 width: 40px; height: 40px; display: flex; align-items: center;
 justify-content: center;
}
.static-img-close:hover { background: rgba(255,255,255,0.2); }
&lt;/style&gt;
&lt;div class="static-img-overlay" id="static-img-overlay" onclick="this.classList.remove('active')"&gt;
 &lt;button class="static-img-close" onclick="event.stopPropagation();this.parentElement.classList.remove('active')" aria-label="Close"&gt;&amp;times;&lt;/button&gt;
 &lt;img id="static-img-overlay-img" src="" alt=""&gt;
&lt;/div&gt;
&lt;script&gt;
function staticImgZoom(src, alt) {
 var o = document.getElementById('static-img-overlay');
 var i = document.getElementById('static-img-overlay-img');
 i.src = src; i.alt = alt || '';
 o.classList.add('active');
}
document.addEventListener('keydown', function(e) {
 if (e.key === 'Escape') {
 document.getElementById('static-img-overlay').classList.remove('active');
 }
});
&lt;/script&gt;
&lt;figure class="static-img-zoom" onclick="staticImgZoom('\/imgs\/aitasks_board_main_view.svg', 'Board overview showing kanban columns with task cards')"&gt;
 &lt;img src="https://www.aitasks.io/imgs/aitasks_board_main_view.svg" alt="Board overview showing kanban columns with task cards"&gt;
 &lt;figcaption&gt;&lt;p&gt;The ait board kanban view with task cards organized into columns&lt;/p&gt;</description></item><item><title>How-To Guides</title><link>https://www.aitasks.io/docs/tuis/board/how-to/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/board/how-to/</guid><description>&lt;h3 id="how-to-organize-tasks-into-columns"&gt;How to Organize Tasks into Columns&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Moving a task to a different column:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Focus the task card using arrow keys&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Shift+Right&lt;/strong&gt; to move it to the next column, or &lt;strong&gt;Shift+Left&lt;/strong&gt; to move it to the previous column&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The task is appended to the end of the target column. Column order follows the configured order, with &amp;ldquo;Unsorted / Inbox&amp;rdquo; on the far left. Collapsed columns are skipped when moving tasks.&lt;/p&gt;</description></item><item><title>How-To Guides</title><link>https://www.aitasks.io/docs/tuis/codebrowser/how-to/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/codebrowser/how-to/</guid><description>&lt;h3 id="how-to-navigate-files-in-the-tree"&gt;How to Navigate Files in the Tree&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Press &lt;strong&gt;Tab&lt;/strong&gt; to focus the file tree (if not already focused)&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Up / Down&lt;/strong&gt; arrows to move between files and directories&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt; or click a file to open it in the code viewer&lt;/li&gt;
&lt;li&gt;Directories expand and collapse as you navigate into them&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The tree shows only git-tracked files, automatically excluding &lt;code&gt;__pycache__&lt;/code&gt;, &lt;code&gt;node_modules&lt;/code&gt;, and &lt;code&gt;.git&lt;/code&gt; directories. Dotfiles (like &lt;code&gt;.gitignore&lt;/code&gt;) are included.&lt;/p&gt;
&lt;h3 id="how-to-navigate-code"&gt;How to Navigate Code&lt;/h3&gt;
&lt;p&gt;Once a file is open in the code viewer:&lt;/p&gt;</description></item><item><title>How-To Guides</title><link>https://www.aitasks.io/docs/tuis/minimonitor/how-to/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/minimonitor/how-to/</guid><description>&lt;h3 id="how-minimonitor-is-auto-spawned"&gt;How Minimonitor Is Auto-Spawned&lt;/h3&gt;
&lt;p&gt;Minimonitor is meant to be auto-spawned — you almost never start it yourself. Every ait TUI that launches a new code agent window also creates a minimonitor split next to it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.aitasks.io/docs/tuis/board/"&gt;&lt;code&gt;ait board&lt;/code&gt;&lt;/a&gt; — when you pick a task and launch its agent (action menu or agent command screen).&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.aitasks.io/docs/tuis/codebrowser/"&gt;&lt;code&gt;ait codebrowser&lt;/code&gt;&lt;/a&gt; — when you launch an agent from a code file or the history screen.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.aitasks.io/docs/tuis/monitor/"&gt;&lt;code&gt;ait monitor&lt;/code&gt;&lt;/a&gt; — when you press &lt;strong&gt;n&lt;/strong&gt; on an agent card to pick its next ready sibling task, which creates a new agent window.&lt;/li&gt;
&lt;li&gt;The TUI switcher&amp;rsquo;s explore launch — when it creates an agent window for an explore target.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In every case the flow is the same: the launching TUI creates a new tmux window named &lt;code&gt;agent-...&lt;/code&gt;, then the auto-spawn helper creates a horizontal right-split inside that window and runs &lt;code&gt;ait minimonitor&lt;/code&gt; in it. The helper skips the split if the window name does not start with the configured agent prefix (default &lt;code&gt;agent-&lt;/code&gt;) or if a monitor/minimonitor is already running in the window.&lt;/p&gt;</description></item><item><title>How-To Guides</title><link>https://www.aitasks.io/docs/tuis/monitor/how-to/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/monitor/how-to/</guid><description>&lt;h3 id="how-to-start-the-monitor"&gt;How to Start the Monitor&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Recommended — via &lt;code&gt;ait ide&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait ide
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is the one-command path to the ait tmux IDE. &lt;code&gt;ait ide&lt;/code&gt; resolves the tmux session name from &lt;code&gt;tmux.default_session&lt;/code&gt; in &lt;code&gt;project_config.yaml&lt;/code&gt; (defaulting to &lt;code&gt;aitasks&lt;/code&gt;), creates or attaches to that session, and opens a &lt;code&gt;monitor&lt;/code&gt; window inside it. Because it always passes an explicit session name, the &lt;a href="reference/#session-name-fallback-dialog"&gt;session-rename dialog&lt;/a&gt; never fires.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Standalone — from inside an existing tmux session:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait monitor
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run this from within a tmux session you already have open. Monitor attaches to the current session.&lt;/p&gt;</description></item><item><title>Monitor</title><link>https://www.aitasks.io/docs/tuis/monitor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/monitor/</guid><description>&lt;p&gt;The &lt;code&gt;ait monitor&lt;/code&gt; command launches an interactive TUI that shows every pane in the current tmux session, categorized as code agents, TUIs, or other panes, with a live preview of the focused pane and keystroke forwarding. It is the dashboard of the ait tmux-based development environment: from a single window you can watch agents work, jump to any other TUI, and interact with running processes without leaving the monitor.&lt;/p&gt;

&lt;style&gt;
.static-img-zoom { cursor: zoom-in; }
.static-img-zoom img { transition: opacity 0.2s; }
.static-img-zoom img:hover { opacity: 0.85; }
.static-img-overlay {
 display: none; position: fixed; inset: 0; z-index: 9999;
 background: rgba(0,0,0,0.8); align-items: center; justify-content: center;
 cursor: zoom-out;
}
.static-img-overlay.active { display: flex; }
.static-img-overlay img {
 max-width: 92vw; max-height: 92vh; border-radius: 4px;
 box-shadow: 0 4px 32px rgba(0,0,0,0.5);
}
.static-img-close {
 position: fixed; top: 16px; right: 20px; z-index: 10000;
 color: #fff; font-size: 32px; cursor: pointer; line-height: 1;
 background: rgba(0,0,0,0.5); border: none; border-radius: 50%;
 width: 40px; height: 40px; display: flex; align-items: center;
 justify-content: center;
}
.static-img-close:hover { background: rgba(255,255,255,0.2); }
&lt;/style&gt;
&lt;div class="static-img-overlay" id="static-img-overlay" onclick="this.classList.remove('active')"&gt;
 &lt;button class="static-img-close" onclick="event.stopPropagation();this.parentElement.classList.remove('active')" aria-label="Close"&gt;&amp;times;&lt;/button&gt;
 &lt;img id="static-img-overlay-img" src="" alt=""&gt;
&lt;/div&gt;
&lt;script&gt;
function staticImgZoom(src, alt) {
 var o = document.getElementById('static-img-overlay');
 var i = document.getElementById('static-img-overlay-img');
 i.src = src; i.alt = alt || '';
 o.classList.add('active');
}
document.addEventListener('keydown', function(e) {
 if (e.key === 'Escape') {
 document.getElementById('static-img-overlay').classList.remove('active');
 }
});
&lt;/script&gt;
&lt;figure class="static-img-zoom" onclick="staticImgZoom('\/imgs\/home\/monitor.svg', 'Monitor TUI showing the pane list and live preview')"&gt;
 &lt;img src="https://www.aitasks.io/imgs/home/monitor.svg" alt="Monitor TUI showing the pane list and live preview"&gt;
 &lt;figcaption&gt;&lt;p&gt;The ait monitor dashboard with categorized panes and live preview.&lt;/p&gt;</description></item><item><title>Minimonitor</title><link>https://www.aitasks.io/docs/tuis/minimonitor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/minimonitor/</guid><description>&lt;p&gt;&lt;code&gt;ait minimonitor&lt;/code&gt; is a narrow (~40 column) sidebar TUI that lists every running code agent across every aitasks tmux session on the current tmux server, with idle indicators and a companion-pane focus model. It is the agents-only cousin of &lt;a href="https://www.aitasks.io/docs/tuis/monitor/"&gt;&lt;code&gt;ait monitor&lt;/code&gt;&lt;/a&gt;: no preview panel, no TUI/other pane categories — just the running agents in a compact column designed to sit next to a code pane while you work.&lt;/p&gt;
&lt;p&gt;Minimonitor is &lt;strong&gt;meant to be auto-spawned&lt;/strong&gt; alongside every code agent you launch from the ait TUIs. You rarely need to start it yourself — whenever a new agent window is created, the launching TUI also splits a minimonitor pane next to it, and minimonitor closes itself automatically when the agent pane exits. Manual launch via &lt;code&gt;ait minimonitor&lt;/code&gt; is supported but is an escape hatch rather than the primary workflow.&lt;/p&gt;</description></item><item><title>/aitask-explore</title><link>https://www.aitasks.io/docs/skills/aitask-explore/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-explore/</guid><description>&lt;p&gt;Explore the codebase interactively with guided investigation, then create a task from findings. This skill bridges the gap between &amp;ldquo;I think something needs work&amp;rdquo; and a well-defined task with context.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-explore [--profile &amp;lt;name&amp;gt;]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The optional &lt;code&gt;--profile &amp;lt;name&amp;gt;&lt;/code&gt; argument overrides execution-profile selection for this invocation, mirroring &lt;code&gt;/aitask-pick --profile&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex CLI note:&lt;/strong&gt; When continuing from this skill into implementation, in Codex wrappers, after implementation, most of the times you will need to explicitly tell the agent to continue the workflow because &lt;code&gt;request_user_input&lt;/code&gt; is only available in plan mode. Example prompts: &lt;code&gt;Good, now finish the workflow&lt;/code&gt; or &lt;code&gt;Good, now continue&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Code Browser</title><link>https://www.aitasks.io/docs/tuis/codebrowser/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/codebrowser/</guid><description>&lt;p&gt;The &lt;code&gt;ait codebrowser&lt;/code&gt; command launches an interactive terminal-based code browser for exploring project files with task-aware annotations. Built with &lt;a href="https://textual.textualize.io/"&gt;Textual&lt;/a&gt;, it provides syntax-highlighted file viewing, a git-aware file tree, and an annotation gutter that maps lines of code to the aitasks that introduced them — powered by the &lt;a href="https://www.aitasks.io/docs/skills/aitask-explain/"&gt;explain data pipeline&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;
.static-img-zoom { cursor: zoom-in; }
.static-img-zoom img { transition: opacity 0.2s; }
.static-img-zoom img:hover { opacity: 0.85; }
.static-img-overlay {
 display: none; position: fixed; inset: 0; z-index: 9999;
 background: rgba(0,0,0,0.8); align-items: center; justify-content: center;
 cursor: zoom-out;
}
.static-img-overlay.active { display: flex; }
.static-img-overlay img {
 max-width: 92vw; max-height: 92vh; border-radius: 4px;
 box-shadow: 0 4px 32px rgba(0,0,0,0.5);
}
.static-img-close {
 position: fixed; top: 16px; right: 20px; z-index: 10000;
 color: #fff; font-size: 32px; cursor: pointer; line-height: 1;
 background: rgba(0,0,0,0.5); border: none; border-radius: 50%;
 width: 40px; height: 40px; display: flex; align-items: center;
 justify-content: center;
}
.static-img-close:hover { background: rgba(255,255,255,0.2); }
&lt;/style&gt;
&lt;div class="static-img-overlay" id="static-img-overlay" onclick="this.classList.remove('active')"&gt;
 &lt;button class="static-img-close" onclick="event.stopPropagation();this.parentElement.classList.remove('active')" aria-label="Close"&gt;&amp;times;&lt;/button&gt;
 &lt;img id="static-img-overlay-img" src="" alt=""&gt;
&lt;/div&gt;
&lt;script&gt;
function staticImgZoom(src, alt) {
 var o = document.getElementById('static-img-overlay');
 var i = document.getElementById('static-img-overlay-img');
 i.src = src; i.alt = alt || '';
 o.classList.add('active');
}
document.addEventListener('keydown', function(e) {
 if (e.key === 'Escape') {
 document.getElementById('static-img-overlay').classList.remove('active');
 }
});
&lt;/script&gt;
&lt;figure class="static-img-zoom" onclick="staticImgZoom('\/imgs\/aitasks_codebrowser.svg', 'Code browser showing file tree and syntax-highlighted code viewer')"&gt;
 &lt;img src="https://www.aitasks.io/imgs/aitasks_codebrowser.svg" alt="Code browser showing file tree and syntax-highlighted code viewer"&gt;
 &lt;figcaption&gt;&lt;p&gt;The ait codebrowser with file tree (left) and syntax-highlighted code viewer (right)&lt;/p&gt;</description></item><item><title>How-To Guides</title><link>https://www.aitasks.io/docs/tuis/settings/how-to/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/settings/how-to/</guid><description>&lt;h2 id="mouse-support"&gt;Mouse Support&lt;/h2&gt;
&lt;p&gt;The Settings TUI supports full mouse interaction in addition to the keyboard shortcuts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Click a tab name&lt;/strong&gt; in the tab bar — switch to that tab (alternative to &lt;code&gt;a&lt;/code&gt; / &lt;code&gt;b&lt;/code&gt; / &lt;code&gt;c&lt;/code&gt; / &lt;code&gt;t&lt;/code&gt; / &lt;code&gt;m&lt;/code&gt; / &lt;code&gt;p&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Click a field row&lt;/strong&gt; — focus it; press &lt;strong&gt;Enter&lt;/strong&gt; / &lt;strong&gt;Space&lt;/strong&gt; to edit or cycle the value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Click on-screen action buttons&lt;/strong&gt; — &lt;strong&gt;Save Profile&lt;/strong&gt;, &lt;strong&gt;Commit&lt;/strong&gt;, &lt;strong&gt;Save Board Settings&lt;/strong&gt;, &lt;strong&gt;Save Project Config&lt;/strong&gt;, &lt;strong&gt;New Profile&lt;/strong&gt;, and dialog buttons are all clickable, no keyboard equivalent required.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scroll wheel&lt;/strong&gt; — scroll long tab content (Profiles, Models, Project Config).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All keyboard actions documented below remain available.&lt;/p&gt;</description></item><item><title>Feature Reference</title><link>https://www.aitasks.io/docs/tuis/board/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/board/reference/</guid><description>&lt;h3 id="keyboard-shortcuts"&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;h4 id="board-navigation"&gt;Board Navigation&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Quit the application&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Tab&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle focus between search box and board&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Return to board from search / dismiss modal&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Navigate to previous task in column&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Navigate to next task in column&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Left&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Navigate to previous column&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Right&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Navigate to next column&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open task detail dialog&lt;/td&gt;
 &lt;td&gt;Board (focused card)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Refresh board from disk&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Sync task data with remote&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;O&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open board options/settings dialog&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Switch to All view (show all tasks)&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;g&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Git view (show git-linked tasks)&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Implementing view (show implementing tasks + context)&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="task-operations"&gt;Task Operations&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Right&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move task to next column (skips collapsed)&lt;/td&gt;
 &lt;td&gt;Board (parent cards only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Left&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move task to previous column (skips collapsed)&lt;/td&gt;
 &lt;td&gt;Board (parent cards only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Swap task with one above&lt;/td&gt;
 &lt;td&gt;Board (parent cards only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Swap task with one below&lt;/td&gt;
 &lt;td&gt;Board (parent cards only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Ctrl+Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move task to top of column&lt;/td&gt;
 &lt;td&gt;Board (parent cards only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Ctrl+Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move task to bottom of column&lt;/td&gt;
 &lt;td&gt;Board (parent cards only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Create a new task&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle expand/collapse child tasks&lt;/td&gt;
 &lt;td&gt;Board (parent or child card)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Commit focused modified task&lt;/td&gt;
 &lt;td&gt;Board (shown when task is modified)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Commit all modified tasks&lt;/td&gt;
 &lt;td&gt;Board (shown when any task is modified)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pick the focused task (start implementation)&lt;/td&gt;
 &lt;td&gt;Board (context-dependent — shown when task is pickable)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Launch brainstorm for the focused task&lt;/td&gt;
 &lt;td&gt;Board (context-dependent — shown when task is brainstormable)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="column-operations"&gt;Column Operations&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Ctrl+Right&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move column one position right&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Ctrl+Left&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move column one position left&lt;/td&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;X&lt;/code&gt; (Shift+X)&lt;/td&gt;
 &lt;td&gt;Toggle collapse/expand for focused card&amp;rsquo;s column&lt;/td&gt;
 &lt;td&gt;Board (focused card)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Ctrl+Backslash&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open command palette&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Click &lt;code&gt;▼&lt;/code&gt; / &lt;code&gt;▶&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle column collapse/expand&lt;/td&gt;
 &lt;td&gt;Column header&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Click &lt;code&gt;✎&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open column edit dialog&lt;/td&gt;
 &lt;td&gt;Column header&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="modal-navigation"&gt;Modal Navigation&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Focus previous field&lt;/td&gt;
 &lt;td&gt;Inside modal dialogs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Focus next field&lt;/td&gt;
 &lt;td&gt;Inside modal dialogs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Left&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle to previous option&lt;/td&gt;
 &lt;td&gt;On CycleField&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Right&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle to next option&lt;/td&gt;
 &lt;td&gt;On CycleField&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Activate focused button / navigate to linked task&lt;/td&gt;
 &lt;td&gt;Inside modal dialogs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Close the dialog&lt;/td&gt;
 &lt;td&gt;Inside modal dialogs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="task-card-anatomy"&gt;Task Card Anatomy&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────┐ ← Border color = priority
│ t47 * playlists support │ ← Task number (cyan), * if modified (orange), title (bold)
│ 💪 medium | 🏷️ ui,api | GH | PR:GH | @alice │ ← Effort, labels, issue/PR indicator, contributor
│ 🔒 alice@example.com │ ← Lock indicator (if locked)
│ 🚫 blocked | 👤 alice │ ← Status/blocked, assigned to
│ 🔗 t12, t15 │ ← Blocking dependency links
│ 📎 folded into t42 │ ← Folded indicator (if applicable)
│ 👶 3 children │ ← Child task count (if parent)
└─────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Not all lines are shown on every card — lines only appear when the corresponding data exists.&lt;/p&gt;</description></item><item><title>Feature Reference</title><link>https://www.aitasks.io/docs/tuis/codebrowser/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/codebrowser/reference/</guid><description>&lt;h3 id="keyboard-shortcuts"&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;h4 id="application"&gt;Application&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Quit the application&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Tab&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle focus between file tree, code viewer, and detail pane&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Refresh explain annotations for current file&amp;rsquo;s directory&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle annotation gutter visibility&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;g&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open go-to-line dialog&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;e&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Launch the configured code agent for explain on the current file&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle detail pane visibility&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;D&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle detail pane between default and expanded width&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;h&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle completed tasks history view&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;H&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open history screen navigated to the task at cursor&lt;/td&gt;
 &lt;td&gt;Global (requires annotated line)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="history-screen"&gt;History Screen&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;h&lt;/code&gt; / &lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Return to code browser&lt;/td&gt;
 &lt;td&gt;History screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;v&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle task/plan content view&lt;/td&gt;
 &lt;td&gt;History screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;l&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open label filter dialog&lt;/td&gt;
 &lt;td&gt;History screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Tab&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle focus between list and detail panes&lt;/td&gt;
 &lt;td&gt;History screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Left&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move focus to list pane (cycles task list / recently opened)&lt;/td&gt;
 &lt;td&gt;History screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Right&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move focus to detail pane&lt;/td&gt;
 &lt;td&gt;History screen&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Up&lt;/code&gt; / &lt;code&gt;Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Navigate between focusable fields&lt;/td&gt;
 &lt;td&gt;History detail&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open link, select task, or navigate to file (context-dependent)&lt;/td&gt;
 &lt;td&gt;History detail&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open sibling task picker (on child tasks)&lt;/td&gt;
 &lt;td&gt;History detail&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Launch QA agent for the selected task&lt;/td&gt;
 &lt;td&gt;History detail&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="label-filter-dialog"&gt;Label Filter Dialog&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cancel and close dialog&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;o&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Confirm selection (OK)&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Reset filter (show all)&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="sibling-picker-dialog"&gt;Sibling Picker Dialog&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cancel and close dialog&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Select sibling task&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="code-viewer"&gt;Code Viewer&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move cursor up one line&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move cursor down one line&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Extend selection upward&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Extend selection downward&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Clear selection&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Create a task with &lt;code&gt;file_references&lt;/code&gt; seeded from the selection or cursor line&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;PageUp&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move cursor up by one screen&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;PageDown&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Move cursor down by one screen&lt;/td&gt;
 &lt;td&gt;Code viewer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="go-to-line-dialog"&gt;Go-to-Line Dialog&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Jump to entered line number&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Escape&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cancel and close dialog&lt;/td&gt;
 &lt;td&gt;Dialog&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="mouse-interactions"&gt;Mouse Interactions&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Effect&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Click on file tree entry&lt;/td&gt;
 &lt;td&gt;Select and open file&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Click in code viewer&lt;/td&gt;
 &lt;td&gt;Position cursor at clicked line&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Drag in code viewer&lt;/td&gt;
 &lt;td&gt;Select line range&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Scroll wheel in code viewer&lt;/td&gt;
 &lt;td&gt;Scroll content&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="annotation-data-pipeline"&gt;Annotation Data Pipeline&lt;/h3&gt;
&lt;p&gt;The codebrowser uses the same explain data pipeline as &lt;a href="https://www.aitasks.io/docs/skills/aitask-explain/"&gt;&lt;code&gt;/aitask-explain&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>Feature Reference</title><link>https://www.aitasks.io/docs/tuis/monitor/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/monitor/reference/</guid><description>&lt;h3 id="keyboard-shortcuts"&gt;Keyboard Shortcuts&lt;/h3&gt;
&lt;h4 id="zone-navigation"&gt;Zone Navigation&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Tab&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle focus to the next zone (pane list ↔ preview)&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Shift+Tab&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle focus to the previous zone&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Up&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Focus the previous card in the pane list&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Down&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Focus the next card in the pane list&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Quit monitor&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="pane-interaction"&gt;Pane Interaction&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Send an &lt;code&gt;Enter&lt;/code&gt; keystroke to the focused tmux pane&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Send an &lt;code&gt;Enter&lt;/code&gt; keystroke to the focused tmux pane&lt;/td&gt;
 &lt;td&gt;Preview zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Any other key&lt;/td&gt;
 &lt;td&gt;Forwarded to the focused tmux pane (characters, Ctrl-combos, arrows, Escape)&lt;/td&gt;
 &lt;td&gt;Preview zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Switch tmux focus to the focused pane (&lt;code&gt;tmux switch-client&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Show the task detail dialog for the focused agent pane (requires a task ID in the window name)&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;k&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Kill the focused pane after confirmation (&lt;code&gt;tmux kill-pane&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;n&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pick the next ready sibling task for the focused agent pane&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Restart the task running in the focused agent pane&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;L&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open the log for the focused pane in a separate viewer&lt;/td&gt;
 &lt;td&gt;Pane list zone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="monitor-controls"&gt;Monitor Controls&lt;/h4&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;j&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open the TUI switcher overlay&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Refresh the pane list and preview immediately&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;F5&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Refresh the pane list and preview immediately (alias for &lt;code&gt;r&lt;/code&gt;, hidden in footer)&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;z&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Cycle the preview size through S / M / L presets&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Scroll the preview to its tail (newest output)&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;a&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle auto-switch mode (automatically focus idle agents needing attention)&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;M&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle the multi-session view ON/OFF (see &lt;a href="#multi-session-view"&gt;Multi-session view&lt;/a&gt;)&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In the preview zone, every keystroke that is not handled by a global binding is forwarded to the tmux pane via &lt;code&gt;tmux send-keys&lt;/code&gt;. Special keys (Enter, Escape, Backspace, arrows, Space, Delete, Home, End, PageUp/Down) and Ctrl-combinations are translated; regular characters are sent literally.&lt;/p&gt;</description></item><item><title>/aitask-pr-import</title><link>https://www.aitasks.io/docs/skills/aitask-pr-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pr-import/</guid><description>&lt;p&gt;Analyze pull requests from GitHub, GitLab, or Bitbucket using AI-powered code review, then create a well-structured aitask with contributor attribution. This skill bridges external contributions and the aitasks workflow — instead of merging PRs directly, it extracts the intent and approach, validates them against the codebase, and produces a task ready for implementation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-pr-import
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex CLI note:&lt;/strong&gt; When continuing from this skill into implementation, in Codex wrappers, after implementation, most of the times you will need to explicitly tell the agent to continue the workflow because &lt;code&gt;request_user_input&lt;/code&gt; is only available in plan mode. Example prompts: &lt;code&gt;Good, now finish the workflow&lt;/code&gt; or &lt;code&gt;Good, now continue&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>/aitask-contribute</title><link>https://www.aitasks.io/docs/skills/aitask-contribute/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-contribute/</guid><description>&lt;p&gt;Use &lt;code&gt;/aitask-contribute&lt;/code&gt; to turn local changes into a structured contribution issue without going through the usual fork, branch, and pull request flow. You can use it to contribute improvements back to the &lt;code&gt;aitasks&lt;/code&gt; framework, or to contribute changes to the current project repository when that project uses the aitasks framework.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-contribute
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. Requires the platform CLI installed and authenticated: &lt;code&gt;gh&lt;/code&gt; for GitHub (default), &lt;code&gt;glab&lt;/code&gt; for GitLab, or &lt;code&gt;bkt&lt;/code&gt; for Bitbucket. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;</description></item><item><title>/aitask-contribution-review</title><link>https://www.aitasks.io/docs/skills/aitask-contribution-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-contribution-review/</guid><description>&lt;p&gt;Use &lt;code&gt;/aitask-contribution-review&lt;/code&gt; to review incoming contribution issues with AI-powered duplicate detection, overlap analysis, and merge recommendations. The skill fetches the target issue, finds related contributions, analyzes code diffs, and helps you decide whether to merge, import individually, fold into existing tasks, or update an existing task directly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-contribution-review 42 # Review a specific issue
/aitask-contribution-review # List open contribution issues and choose
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. Requires the platform CLI installed and authenticated: &lt;code&gt;gh&lt;/code&gt; for GitHub (default), &lt;code&gt;glab&lt;/code&gt; for GitLab. The skill uses a helper script that encapsulates all platform-specific API calls. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;</description></item><item><title>/aitask-fold</title><link>https://www.aitasks.io/docs/skills/aitask-fold/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-fold/</guid><description>&lt;p&gt;Identify and merge related tasks into a single task, then optionally execute it. This skill provides the same folding capability as &lt;code&gt;/aitask-explore&lt;/code&gt; but as a standalone skill — no codebase exploration required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-fold # Interactive: discover and fold related tasks
/aitask-fold 106,108,112 # Explicit: fold specific tasks by ID
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex CLI note:&lt;/strong&gt; When continuing from this skill into implementation, in Codex wrappers, after implementation, most of the times you will need to explicitly tell the agent to continue the workflow because &lt;code&gt;request_user_input&lt;/code&gt; is only available in plan mode. Example prompts: &lt;code&gt;Good, now finish the workflow&lt;/code&gt; or &lt;code&gt;Good, now continue&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Reference</title><link>https://www.aitasks.io/docs/tuis/settings/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/settings/reference/</guid><description>&lt;h2 id="keyboard-shortcuts"&gt;Keyboard Shortcuts&lt;/h2&gt;
&lt;h3 id="global"&gt;Global&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;a&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Agent Defaults tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;b&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Board tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;c&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Project Config tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;t&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Tmux tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;m&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Models tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;p&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Switch to Profiles tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;e&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Export all configs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;i&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Import configs&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;r&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Reload all configs from disk&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;q&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Quit&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="within-tabs"&gt;Within Tabs&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Context&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Enter&lt;/strong&gt; / &lt;strong&gt;Space&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Edit field or cycle value&lt;/td&gt;
 &lt;td&gt;Agent Defaults, Board, Profiles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;d&lt;/strong&gt; / &lt;strong&gt;Delete&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Remove user override&lt;/td&gt;
 &lt;td&gt;Agent Defaults&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;?&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Toggle field description (summary/expanded)&lt;/td&gt;
 &lt;td&gt;Profiles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Escape&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Close dialog or cancel&lt;/td&gt;
 &lt;td&gt;Modals&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mouse-interactions"&gt;Mouse Interactions&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;th&gt;Effect&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Click a tab name&lt;/td&gt;
 &lt;td&gt;Switch to that tab&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Click a field row&lt;/td&gt;
 &lt;td&gt;Focus the row (then &lt;strong&gt;Enter&lt;/strong&gt; / &lt;strong&gt;Space&lt;/strong&gt; edits or cycles)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Click action buttons (Save, Commit, New Profile, etc.)&lt;/td&gt;
 &lt;td&gt;Activate the button&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Scroll wheel&lt;/td&gt;
 &lt;td&gt;Scroll the focused tab content&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="tabs"&gt;Tabs&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Tab&lt;/th&gt;
 &lt;th&gt;Shortcut&lt;/th&gt;
 &lt;th&gt;Editable&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Agent Defaults&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;a&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;Default agent/model per operation, project and user layers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Board&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;b&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Partially&lt;/td&gt;
 &lt;td&gt;Columns (read-only), user settings (editable)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Project Config&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;c&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;Shared values from &lt;code&gt;project_config.yaml&lt;/code&gt; such as coauthor domain and build verification&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Tmux&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;t&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;Tmux integration settings (session name, split direction, monitor options, git TUI)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Models&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;m&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;Available models per agent with verified scores&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Profiles&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;p&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;Execution profiles that pre-answer workflow questions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="agent-defaults-operations"&gt;Agent Defaults Operations&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Operation&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;task-pick&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Model used for picking and implementing tasks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;explain&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Model used for explaining/documenting code&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;batch-review&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Model used for batch code review operations&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;raw&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Model used for direct/ad-hoc code agent invocations (passthrough mode)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="configuration-files"&gt;Configuration Files&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;File&lt;/th&gt;
 &lt;th&gt;Scope&lt;/th&gt;
 &lt;th&gt;Editable via TUI&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/codeagent_config.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Yes (Agent Defaults)&lt;/td&gt;
 &lt;td&gt;Default agent/model per operation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/codeagent_config.local.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;User&lt;/td&gt;
 &lt;td&gt;Yes (Agent Defaults)&lt;/td&gt;
 &lt;td&gt;Per-user overrides (gitignored)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/board_config.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;Board column definitions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/board_config.local.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;User&lt;/td&gt;
 &lt;td&gt;Yes (Board)&lt;/td&gt;
 &lt;td&gt;User board settings (gitignored)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/project_config.yaml&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Yes (Project Config)&lt;/td&gt;
 &lt;td&gt;Shared workflow settings such as coauthor domain and build verification&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/models_claudecode.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;Claude Code model definitions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/models_geminicli.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;Gemini CLI model definitions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/models_codex.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;Codex CLI model definitions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/models_opencode.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;OpenCode model definitions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/profiles/*.yaml&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Yes (Profiles)&lt;/td&gt;
 &lt;td&gt;Execution profiles (git-tracked)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitasks/metadata/profiles/local/*.yaml&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;User&lt;/td&gt;
 &lt;td&gt;Yes (Profiles)&lt;/td&gt;
 &lt;td&gt;User execution profiles (gitignored)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="profile-schema"&gt;Profile Schema&lt;/h2&gt;
&lt;p&gt;Execution profiles are YAML files with the following keys. All keys are optional &amp;ndash; omitted keys cause the corresponding question to be asked interactively.&lt;/p&gt;</description></item><item><title>Settings</title><link>https://www.aitasks.io/docs/tuis/settings/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/settings/</guid><description>&lt;h2 id="launching"&gt;Launching&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait settings
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Settings TUI requires the shared Python virtual environment (installed by &lt;code&gt;ait setup&lt;/code&gt;) with the &lt;code&gt;textual&lt;/code&gt; and &lt;code&gt;pyyaml&lt;/code&gt; packages.&lt;/p&gt;
&lt;h2 id="understanding-the-layout"&gt;Understanding the Layout&lt;/h2&gt;
&lt;p&gt;The Settings TUI organizes configuration into five tabs, each accessible via a keyboard shortcut displayed in the footer.&lt;/p&gt;
&lt;h3 id="agent-defaults-a"&gt;Agent Defaults (a)&lt;/h3&gt;

&lt;figure class="static-img-zoom" onclick="staticImgZoom('\/imgs\/home\/settings.svg', 'Settings TUI showing the Agent Defaults tab')"&gt;
 &lt;img src="https://www.aitasks.io/imgs/home/settings.svg" alt="Settings TUI showing the Agent Defaults tab"&gt;
 &lt;figcaption&gt;&lt;p&gt;The Agent Defaults tab shows which code agent and model is configured for each operation.&lt;/p&gt;</description></item><item><title>/aitask-revert</title><link>https://www.aitasks.io/docs/skills/aitask-revert/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-revert/</guid><description>&lt;p&gt;Revert changes associated with completed tasks — fully or partially. This skill analyzes a task&amp;rsquo;s commits, identifies affected areas, and creates a self-contained revert task with all the information needed to undo the changes. Use it when a feature adds unnecessary complexity, an experiment didn&amp;rsquo;t pan out, or you want to selectively undo parts of a completed task.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-revert # Interactive: discover task to revert
/aitask-revert 42 # Direct: revert task t42
/aitask-revert t42 # Also accepted with t prefix
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;</description></item><item><title>/aitask-create</title><link>https://www.aitasks.io/docs/skills/aitask-create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-create/</guid><description>&lt;p&gt;Create a new task file with automatic numbering and proper metadata via interactive code agent prompts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-create
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="step-by-step"&gt;Step-by-Step&lt;/h2&gt;
&lt;p&gt;The skill guides you through task creation using interactive prompts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Parent selection&lt;/strong&gt; — Choose standalone or child of existing task&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task number&lt;/strong&gt; — Auto-determined from active, archived, and compressed tasks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metadata&lt;/strong&gt; — Priority, effort, dependencies (with sibling dependency prompt for child tasks)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task name&lt;/strong&gt; — Free text with auto-sanitization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Definition&lt;/strong&gt; — Iterative content collection with file reference insertion via Glob search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create &amp;amp; commit&lt;/strong&gt; — Writes task file with YAML frontmatter and commits to git&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="batch-mode"&gt;Batch Mode&lt;/h2&gt;
&lt;p&gt;For non-interactive task creation (e.g., scripting or automation), use the underlying script directly with &lt;code&gt;--batch&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>/aitask-wrap</title><link>https://www.aitasks.io/docs/skills/aitask-wrap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-wrap/</guid><description>&lt;p&gt;Retroactively wraps uncommitted changes into the aitasks framework. When you&amp;rsquo;ve made changes outside the normal task flow — quick fixes, debugging improvements, config tweaks — this skill analyzes the diff, creates a task and plan file documenting the changes, commits everything with proper format, and archives it in one flow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-wrap
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="step-by-step"&gt;Step-by-Step&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Detect changes&lt;/strong&gt; — Scans for uncommitted changes (staged, unstaged, and untracked). Aborts if nothing to wrap&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Select files&lt;/strong&gt; — Choose to include all changes or select specific files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyze diff&lt;/strong&gt; — Reads the full diff and determines: factual summary, probable intent, suggested issue type, task name, labels, priority, and effort. In Claude Code, also checks &lt;code&gt;~/.claude/plans/&lt;/code&gt; for a recent internal plan that matches the changes and incorporates it into the plan file if found&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confirm analysis&lt;/strong&gt; — Presents the analysis for review. Adjust task name, metadata, or descriptions before proceeding&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execute&lt;/strong&gt; — After a final confirmation gate, runs everything without further prompts: creates task file → creates plan file → commits code changes → archives task and plan → pushes to remote&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Summary&lt;/strong&gt; — Displays the created task, plan, commit hashes, and archive status&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Satisfaction feedback&lt;/strong&gt; — Optional prompt to record how well the wrap served your needs. Controlled by &lt;code&gt;enableFeedbackQuestions&lt;/code&gt;; see &lt;a href="../verified-scores/"&gt;Verified Scores&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="key-capabilities"&gt;Key Capabilities&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-analysis&lt;/strong&gt; — Reads the diff to infer intent, suggest an issue type (&lt;code&gt;feature&lt;/code&gt;, &lt;code&gt;bug&lt;/code&gt;, &lt;code&gt;refactor&lt;/code&gt;, etc.), and generate task/plan descriptions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metadata suggestions&lt;/strong&gt; — Suggests priority, effort, and labels based on diff size and file paths. All suggestions are adjustable before execution&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Single confirmation gate&lt;/strong&gt; — All user interaction happens before Step 5. Once confirmed, everything executes sequentially without interruption&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;All-in-one execution&lt;/strong&gt; — Task creation, plan creation, code commit, archival, and push happen in a single automated sequence&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edge case handling&lt;/strong&gt; — Handles large diffs (&amp;gt;2000 lines) with truncation warnings, mixed staged/unstaged changes, and untracked files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-to-use"&gt;When to Use&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Scenario&lt;/th&gt;
 &lt;th&gt;Skill&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Changes already made, need to document retroactively&lt;/td&gt;
 &lt;td&gt;&lt;a href="../aitask-wrap/"&gt;&lt;code&gt;/aitask-wrap&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Planning work before starting implementation&lt;/td&gt;
 &lt;td&gt;&lt;a href="../aitask-create/"&gt;&lt;code&gt;/aitask-create&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Want to explore the codebase first, then create a task&lt;/td&gt;
 &lt;td&gt;&lt;a href="../aitask-explore/"&gt;&lt;code&gt;/aitask-explore&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Use &lt;code&gt;/aitask-wrap&lt;/code&gt; when you&amp;rsquo;ve accumulated uncommitted changes that weren&amp;rsquo;t tracked through the normal task flow — quick fixes applied directly, debugging sessions that turned into real improvements, config or dependency changes made outside the framework, or pair programming sessions where changes accumulated without task tracking.&lt;/p&gt;</description></item><item><title>/aitask-stats</title><link>https://www.aitasks.io/docs/skills/aitask-stats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-stats/</guid><description>&lt;p&gt;View task completion statistics via a code agent.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-stats
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Runs &lt;code&gt;./.aitask-scripts/aitask_stats.sh&lt;/code&gt; and displays the results. Provides the same statistics as &lt;code&gt;ait stats&lt;/code&gt;, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Summary counts (7-day, 30-day, all-time)&lt;/li&gt;
&lt;li&gt;Daily breakdown with optional task IDs&lt;/li&gt;
&lt;li&gt;Day-of-week averages&lt;/li&gt;
&lt;li&gt;Per-label weekly trends (4 weeks)&lt;/li&gt;
&lt;li&gt;Label day-of-week breakdown (30 days)&lt;/li&gt;
&lt;li&gt;Task type weekly trends&lt;/li&gt;
&lt;li&gt;Label + issue type trends&lt;/li&gt;
&lt;li&gt;Code agent weekly trends (last 4 weeks)&lt;/li&gt;
&lt;li&gt;LLM model weekly trends (last 4 weeks)&lt;/li&gt;
&lt;li&gt;Verified model score rankings per skill (pick, explain, batch-review) &amp;ndash; see &lt;a href="../verified-scores/"&gt;Verified Scores&lt;/a&gt; for how scores are accumulated
&lt;ul&gt;
&lt;li&gt;All-providers aggregated view with per-provider breakdowns&lt;/li&gt;
&lt;li&gt;Time-windowed display (all-time, this month)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Supports all command-line options (&lt;code&gt;-d&lt;/code&gt;, &lt;code&gt;-v&lt;/code&gt;, &lt;code&gt;--csv&lt;/code&gt;, &lt;code&gt;-w&lt;/code&gt;). For interactive
terminal charts (including code agent / LLM model histograms and verified score
ranking bar charts per skill), run &lt;a href="https://www.aitasks.io/docs/tuis/stats/"&gt;&lt;code&gt;ait stats-tui&lt;/code&gt;&lt;/a&gt;
or switch into it from any other aitasks TUI via the TUI switcher.
For CSV export, provides guidance on opening the file in LibreOffice Calc with pivot tables and charts.&lt;/p&gt;</description></item><item><title>/aitask-explain</title><link>https://www.aitasks.io/docs/skills/aitask-explain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-explain/</guid><description>&lt;p&gt;Explain files in the project by providing detailed analysis of their functionality, real usage examples from the codebase, and code evolution history traced through aitask and aiplan records. The unique value of this skill is answering not just &amp;ldquo;what does this code do&amp;rdquo; but &amp;ldquo;why does it exist and how did it get here&amp;rdquo; — by connecting code sections back to the tasks that motivated each change and the plan notes that document the reasoning.&lt;/p&gt;</description></item><item><title>/aitask-changelog</title><link>https://www.aitasks.io/docs/skills/aitask-changelog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-changelog/</guid><description>&lt;p&gt;Generate a changelog entry by analyzing commits and archived plans since the last release. Orchestrates the &lt;code&gt;ait changelog&lt;/code&gt; command with AI-powered summarization.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-changelog
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="step-by-step"&gt;Step-by-Step&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Gather release data&lt;/strong&gt; — Runs &lt;code&gt;ait changelog --gather&lt;/code&gt; to collect all tasks since the last release tag, with their issue types, plan files, commits, and implementation notes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Summarize plans&lt;/strong&gt; — Reads each task&amp;rsquo;s archived plan file and generates concise user-facing summaries (what changed from the user&amp;rsquo;s perspective, not internal details)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Draft changelog entry&lt;/strong&gt; — Groups summaries by issue type under &lt;code&gt;### Features&lt;/code&gt;, &lt;code&gt;### Bug Fixes&lt;/code&gt;, &lt;code&gt;### Improvements&lt;/code&gt; headings. Format: &lt;code&gt;- **Task name** (tNN): summary&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version number&lt;/strong&gt; — Reads &lt;code&gt;VERSION&lt;/code&gt; file, calculates next patch/minor, asks user to select or enter custom version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Version validation&lt;/strong&gt; — Ensures the selected version is strictly greater than the latest version in CHANGELOG.md (semver comparison)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Overlap detection&lt;/strong&gt; — Checks if any gathered tasks already appear in the latest changelog section. If overlap found, offers: &amp;ldquo;New tasks only&amp;rdquo;, &amp;ldquo;Replace latest section&amp;rdquo;, or &amp;ldquo;Abort&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review and finalize&lt;/strong&gt; — Shows the complete formatted entry for approval. Options: &amp;ldquo;Write to CHANGELOG.md&amp;rdquo;, &amp;ldquo;Edit entry&amp;rdquo;, or &amp;ldquo;Abort&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write and commit&lt;/strong&gt; — Inserts the entry into CHANGELOG.md (after the &lt;code&gt;# Changelog&lt;/code&gt; header) and commits&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="key-features"&gt;Key Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;User-facing summaries: focuses on what changed, not implementation details&lt;/li&gt;
&lt;li&gt;Version validation prevents duplicate or regressive version numbers&lt;/li&gt;
&lt;li&gt;Overlap detection handles incremental changelog updates when some tasks were already documented&lt;/li&gt;
&lt;li&gt;Supports both new CHANGELOG.md creation and insertion into existing files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="workflows"&gt;Workflows&lt;/h2&gt;
&lt;p&gt;For a full workflow guide covering the release pipeline, see &lt;a href="../../workflows/releases/"&gt;Releases&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>/aitask-review</title><link>https://www.aitasks.io/docs/skills/aitask-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-review/</guid><description>&lt;p&gt;Review code using configurable review guides, then create tasks from findings. This skill separates code quality review from implementation — first build something that works, then systematically review it for quality improvements.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/aitask-review # Interactive: choose scope and review guides
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory. See &lt;a href=".."&gt;Skills overview&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Codex CLI note:&lt;/strong&gt; When continuing from this skill into implementation, in Codex wrappers, after implementation, most of the times you will need to explicitly tell the agent to continue the workflow because &lt;code&gt;request_user_input&lt;/code&gt; is only available in plan mode. Example prompts: &lt;code&gt;Good, now finish the workflow&lt;/code&gt; or &lt;code&gt;Good, now continue&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>