<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Intermediate on aitasks</title><link>https://www.aitasks.io/depth/intermediate/</link><description>Recent content in Intermediate on aitasks</description><generator>Hugo</generator><language>en</language><atom:link href="https://www.aitasks.io/depth/intermediate/index.xml" rel="self" type="application/rss+xml"/><item><title>Capturing Ideas Fast</title><link>https://www.aitasks.io/docs/workflows/capturing-ideas/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/capturing-ideas/</guid><description>&lt;p&gt;The most important thing when a new task idea comes to mind is capturing it immediately, before the thought fades. The &lt;a href="../../commands/task-management/#ait-create"&gt;&lt;code&gt;ait create&lt;/code&gt;&lt;/a&gt; script is designed for this: you can write a task description as a raw stream of consciousness without worrying about structure, grammar, or completeness.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The philosophy: capture intent now, refine later.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In interactive mode, &lt;code&gt;ait create&lt;/code&gt; walks you through metadata selection (priority, effort, labels) via fast fzf menus, then lets you enter the description as consecutive text blocks. There is no need to open an external editor or craft a polished specification — the follow-up planning workflow is designed to turn rough, unstructured descriptions into actionable implementation plans.&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>Setup &amp; Install</title><link>https://www.aitasks.io/docs/commands/setup-install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/setup-install/</guid><description>&lt;h2 id="ait-setup"&gt;ait setup&lt;/h2&gt;
&lt;p&gt;Cross-platform dependency installer and configuration tool. This is typically the first command to run after installing aitasks.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run from the project root.&lt;/strong&gt; Both &lt;code&gt;ait setup&lt;/code&gt; and the curl installer must be executed from the root of your git repository (the directory containing &lt;code&gt;.git/&lt;/code&gt;). aitasks stores task files, plans, skills, and configuration inside the repo and relies on git for task IDs, locking, and multi-machine synchronization.&lt;/p&gt;
&lt;/blockquote&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 setup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Auto-bootstrap:&lt;/strong&gt; When run via the global shim (&lt;code&gt;~/.local/bin/ait&lt;/code&gt;) in a directory without an existing aitasks installation, &lt;code&gt;ait setup&lt;/code&gt; automatically downloads and installs the latest release before running the setup flow. This lets you bootstrap new projects with a single command — no need to run the &lt;code&gt;curl | bash&lt;/code&gt; installer separately.&lt;/p&gt;</description></item><item><title>/aitask-pickrem</title><link>https://www.aitasks.io/docs/skills/aitask-pickrem/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pickrem/</guid><description>&lt;p&gt;A mostly autonomous version of &lt;a href="../aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt; designed for non-interactive environments. It combines task selection and implementation into a single flow with &lt;strong&gt;zero &lt;code&gt;AskUserQuestion&lt;/code&gt; calls&lt;/strong&gt; — all decisions are driven by an execution profile. The only interactive step is &lt;strong&gt;plan approval&lt;/strong&gt;, which still requires the user to review and confirm the implementation plan via &lt;code&gt;ExitPlanMode&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This skill requires write access to the task data branch, so it is suited for local Claude Code or CI-like environments. For &lt;strong&gt;Claude Code Web&lt;/strong&gt; (which cannot write to branches other than the code branch), use &lt;a href="../aitask-pickweb/"&gt;&lt;code&gt;/aitask-pickweb&lt;/code&gt;&lt;/a&gt; instead.&lt;/p&gt;</description></item><item><title>/aitask-pickweb</title><link>https://www.aitasks.io/docs/skills/aitask-pickweb/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pickweb/</guid><description>&lt;p&gt;A sandboxed version of &lt;a href="../aitask-pickrem/"&gt;&lt;code&gt;/aitask-pickrem&lt;/code&gt;&lt;/a&gt; designed specifically for &lt;strong&gt;Claude Code Web&lt;/strong&gt;, where the environment has no push access to &lt;code&gt;aitask-locks&lt;/code&gt;, &lt;code&gt;aitask-data&lt;/code&gt;, or &lt;code&gt;main&lt;/code&gt; branches. It combines task selection and implementation into a single flow with &lt;strong&gt;zero &lt;code&gt;AskUserQuestion&lt;/code&gt; calls&lt;/strong&gt; — all decisions are driven by an execution profile. The only interactive step is &lt;strong&gt;plan approval&lt;/strong&gt;, which still requires the user to review and confirm the implementation plan via &lt;code&gt;ExitPlanMode&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;All task metadata (plans, completion markers) is stored in &lt;code&gt;.aitask-data-updated/&lt;/code&gt; on the current working branch. After the Claude Web session completes, run &lt;a href="../aitask-web-merge/"&gt;&lt;code&gt;/aitask-web-merge&lt;/code&gt;&lt;/a&gt; locally to merge code to main and archive the task.&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;!-- SCREENSHOT: aitasks_monitor_main_view.svg — monitor dashboard showing the pane list on top and the live preview below --&gt;
&lt;h2 id="tutorial"&gt;Tutorial&lt;/h2&gt;
&lt;h3 id="launching-the-monitor"&gt;Launching the Monitor&lt;/h3&gt;
&lt;p&gt;The recommended way to start monitor is via &lt;a href="https://www.aitasks.io/docs/installation/terminal-setup/"&gt;&lt;code&gt;ait ide&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>Retroactive Change Tracking</title><link>https://www.aitasks.io/docs/workflows/retroactive-tracking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/retroactive-tracking/</guid><description>&lt;p&gt;Not every change starts with a task. Quick fixes get applied directly, debugging sessions turn into real improvements, config changes happen on the fly, and pair programming sessions accumulate changes without formal tracking. The &lt;a href="../../skills/aitask-wrap/"&gt;&lt;code&gt;/aitask-wrap&lt;/code&gt;&lt;/a&gt; skill retroactively integrates these changes into the aitasks framework so nothing falls through the cracks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The philosophy: never lose traceability, even for unplanned work.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="when-you-need-this"&gt;When You Need This&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quick fixes applied directly&lt;/strong&gt; — You spotted a bug during code review and fixed it in 30 seconds. It&amp;rsquo;s uncommitted, untracked, and will be lost in the noise if not documented&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debugging that became an improvement&lt;/strong&gt; — You started investigating an issue, found the root cause, and fixed it — but never created a task because you weren&amp;rsquo;t sure it would lead anywhere&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Config or dependency changes&lt;/strong&gt; — Updated a package version, tweaked a build setting, or adjusted environment config outside the normal task flow&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pair programming or live-coding&lt;/strong&gt; — Changes accumulated during a collaborative session without task tracking&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="walkthrough-wrapping-a-quick-fix"&gt;Walkthrough: Wrapping a Quick Fix&lt;/h2&gt;
&lt;p&gt;You fixed a shell quoting bug in &lt;code&gt;aitask_ls.sh&lt;/code&gt; while working on something else. The fix is uncommitted and you want to document it properly.&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="change-the-default-model-for-an-operation"&gt;Change the Default Model for an Operation&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Open the Settings TUI: &lt;code&gt;ait settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;a&lt;/strong&gt; to go to the &lt;strong&gt;Agent Defaults&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;Navigate to the operation you want to change (e.g., &lt;code&gt;task-pick&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt; to open the agent/model picker&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Select the code agent (claudecode, geminicli, codex, opencode)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Select the model from the list, then choose the target layer:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Project&lt;/strong&gt; &amp;ndash; Saves to &lt;code&gt;codeagent_config.json&lt;/code&gt; (shared, git-tracked)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User&lt;/strong&gt; &amp;ndash; Saves to &lt;code&gt;codeagent_config.local.json&lt;/code&gt; (personal, gitignored)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The change takes effect immediately&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Choosing &lt;strong&gt;User&lt;/strong&gt; layer means this override only applies to your machine. Other team members will continue using the project default.&lt;/p&gt;</description></item><item><title>Complex Task Decomposition</title><link>https://www.aitasks.io/docs/workflows/task-decomposition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/task-decomposition/</guid><description>&lt;p&gt;For tasks that are too large or risky for a single implementation run, the aitasks framework supports decomposition into child subtasks. This gives you controlled, disciplined execution of complex features while maintaining full context across all subtasks.&lt;/p&gt;
&lt;p&gt;Two complementary skills cover adjacent patterns: &lt;a href="../../skills/aitask-explore/"&gt;&lt;code&gt;/aitask-explore&lt;/code&gt;&lt;/a&gt; creates tasks (often multiple) from codebase exploration — useful when you need to discover the shape of the work before decomposing it — and &lt;a href="../../skills/aitask-fold/"&gt;&lt;code&gt;/aitask-fold&lt;/code&gt;&lt;/a&gt; is the inverse, merging overlapping tasks into one (see &lt;a href="../task-consolidation/"&gt;Task Consolidation&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Task Management</title><link>https://www.aitasks.io/docs/commands/task-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/task-management/</guid><description>&lt;h2 id="ait-create"&gt;ait create&lt;/h2&gt;
&lt;p&gt;Create new task files with YAML frontmatter metadata. Supports standalone and parent/child task hierarchies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interactive mode&lt;/strong&gt; (default — requires fzf):&lt;/p&gt;
&lt;ol start="0"&gt;
&lt;li&gt;&lt;strong&gt;Draft management&lt;/strong&gt; — If drafts exist in &lt;code&gt;aitasks/new/&lt;/code&gt;, a menu appears: select a draft to continue editing, finalize (assign real ID and commit), or delete — or create a new task&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parent selection&lt;/strong&gt; — Choose &amp;ldquo;None - create standalone task&amp;rdquo; or select an existing task as parent from a fzf list of all tasks (shown with status/priority/effort metadata)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority&lt;/strong&gt; — Select via fzf: high, medium, low&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Effort&lt;/strong&gt; — Select via fzf: low, medium, high&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issue type&lt;/strong&gt; — Select via fzf from &lt;code&gt;aitasks/metadata/task_types.txt&lt;/code&gt; (bug, chore, documentation, feature, performance, refactor, style, test)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Status&lt;/strong&gt; — Select via fzf: Ready, Editing, Implementing, Postponed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Labels&lt;/strong&gt; — Iterative loop: pick from existing labels in &lt;code&gt;aitasks/metadata/labels.txt&lt;/code&gt;, add a new label (auto-sanitized to lowercase alphanumeric + hyphens/underscores), or finish. New labels are persisted to the labels file for future use&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependencies&lt;/strong&gt; — fzf multi-select from all open tasks. For child tasks, sibling tasks appear at the top of the list. Select &amp;ldquo;None&amp;rdquo; or press Enter with nothing selected to skip&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sibling dependency&lt;/strong&gt; (child tasks only, when child number &amp;gt; 1) — Prompted whether to depend on the previous sibling (e.g., t10_1). Defaults to suggesting &amp;ldquo;Yes&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task name&lt;/strong&gt; — Free text entry, auto-sanitized: lowercase, spaces to underscores, special chars removed, max 60 characters. Preview shows &lt;code&gt;draft_*_&amp;lt;name&amp;gt;.md&lt;/code&gt; (real ID is assigned during finalization)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt; — Iterative loop: enter text blocks, optionally add file references (fzf file walker with preview of first 50 lines, can also remove previously added references), then choose &amp;ldquo;Add more description&amp;rdquo; or &amp;ldquo;Done - create task&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post-creation&lt;/strong&gt; — Choose: &amp;ldquo;Finalize now&amp;rdquo; (claim real ID and commit), &amp;ldquo;Show draft&amp;rdquo;, &amp;ldquo;Open in editor&amp;rdquo; ($EDITOR), or &amp;ldquo;Save as draft&amp;rdquo; (finalize later via &lt;code&gt;ait create&lt;/code&gt; or &lt;code&gt;--batch --finalize&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Batch mode&lt;/strong&gt; (for automation and scripting):&lt;/p&gt;</description></item><item><title>Windows &amp; WSL Installation</title><link>https://www.aitasks.io/docs/installation/windows-wsl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/installation/windows-wsl/</guid><description>&lt;p&gt;Step-by-step guide for installing and configuring aitasks on Windows via the Windows Subsystem for Linux (WSL).&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows 10 version 2004+ or Windows 11&lt;/li&gt;
&lt;li&gt;Administrator access (for WSL installation)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="install-wsl"&gt;Install WSL&lt;/h2&gt;
&lt;p&gt;aitasks runs inside WSL (Windows Subsystem for Linux). If you don&amp;rsquo;t have WSL installed:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open PowerShell as Administrator&lt;/li&gt;
&lt;li&gt;Run:
&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-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;wsl&lt;/span&gt; &lt;span style="color:#000;font-weight:bold"&gt;-&lt;/span&gt;&lt;span style="color:#000"&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Restart your computer when prompted&lt;/li&gt;
&lt;li&gt;On first launch, create a Unix username and password&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For detailed instructions, see the &lt;a href="https://learn.microsoft.com/en-us/windows/wsl/install"&gt;official WSL installation guide&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Task Consolidation (Folding)</title><link>https://www.aitasks.io/docs/workflows/task-consolidation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/task-consolidation/</guid><description>&lt;p&gt;When multiple people capture ideas independently, or separate exploration sessions uncover the same issue, you end up with overlapping tasks. Rather than implementing them separately (duplicating effort) or manually deleting the extras (losing context), the aitasks framework lets you &lt;strong&gt;fold&lt;/strong&gt; related tasks into a single primary task that incorporates all their content.&lt;/p&gt;
&lt;p&gt;This is conceptually the opposite of &lt;a href="../task-decomposition/"&gt;task decomposition&lt;/a&gt; but serves a different purpose: decomposition splits a complex task for controlled execution, while consolidation merges redundant tasks for efficient execution.&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>Board, Code Browser &amp; Stats</title><link>https://www.aitasks.io/docs/commands/board-stats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/board-stats/</guid><description>&lt;h2 id="ait-board"&gt;ait board&lt;/h2&gt;
&lt;p&gt;Open the kanban-style TUI board for visual task management.&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 board
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Launches a Python-based terminal UI (built with &lt;a href="https://textual.textualize.io/"&gt;Textual&lt;/a&gt;) that displays tasks in a kanban-style column layout. All arguments are forwarded to the Python board application.&lt;/p&gt;
&lt;p&gt;For full usage documentation — including tutorials, keyboard shortcuts, how-to guides, and configuration — see the &lt;a href="../../tuis/board/"&gt;Kanban Board documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python venv at &lt;code&gt;~/.aitask/venv/&lt;/code&gt; with packages: &lt;code&gt;textual&lt;/code&gt;, &lt;code&gt;pyyaml&lt;/code&gt;, &lt;code&gt;linkify-it-py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Falls back to system &lt;code&gt;python3&lt;/code&gt; if venv not found (warns about missing packages)&lt;/li&gt;
&lt;li&gt;Checks terminal capabilities and warns on legacy terminals (e.g., WSL default console)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="ait-codebrowser"&gt;ait codebrowser&lt;/h2&gt;
&lt;p&gt;Open the code browser TUI for file exploration with task annotations.&lt;/p&gt;</description></item><item><title>Known Agent Issues</title><link>https://www.aitasks.io/docs/installation/known-issues/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/installation/known-issues/</guid><description>&lt;p&gt;This page tracks current workflow issues by code agent. Issues are grouped by agent below.&lt;/p&gt;
&lt;h2 id="claude-code"&gt;Claude Code&lt;/h2&gt;
&lt;h4 id="medium-effort-models-can-miss-workflow-steps"&gt;Medium-effort models can miss workflow steps&lt;/h4&gt;
&lt;p&gt;In strict multi-step &lt;code&gt;aitask-*&lt;/code&gt; workflows, medium-effort models may skip required checkpoints or finalization steps.&lt;/p&gt;
&lt;p&gt;Use stronger reasoning/model settings when you need reliable workflow compliance.&lt;/p&gt;
&lt;h2 id="gemini-cli"&gt;Gemini CLI&lt;/h2&gt;
&lt;h4 id="per-project-shell-command-policies-are-not-applied"&gt;Per-project shell command policies are not applied&lt;/h4&gt;
&lt;p&gt;Gemini CLI supports policy files (&lt;code&gt;.gemini/policies/*.toml&lt;/code&gt;) for pre-approving shell commands via &lt;code&gt;commandPrefix&lt;/code&gt; and &lt;code&gt;commandRegex&lt;/code&gt; rules. However, &lt;strong&gt;per-project policy files are not applied&lt;/strong&gt; — the CLI ignores them even when they are correctly referenced in &lt;code&gt;.gemini/settings.json&lt;/code&gt; via &lt;code&gt;policyPaths&lt;/code&gt;.&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\/aitasks_settings_code_agent_default_models_tab.svg', 'Agent Defaults tab showing configured models per operation')"&gt;
 &lt;img src="https://www.aitasks.io/imgs/aitasks_settings_code_agent_default_models_tab.svg" alt="Agent Defaults tab showing configured models per operation"&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>Terminal Setup</title><link>https://www.aitasks.io/docs/installation/terminal-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/installation/terminal-setup/</guid><description>&lt;h2 id="terminal-emulator-vs-terminal-multiplexer"&gt;Terminal emulator vs. terminal multiplexer&lt;/h2&gt;
&lt;p&gt;Two distinct pieces of software cooperate when you use aitasks from the terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;terminal emulator&lt;/strong&gt; is the GUI application you run — Ghostty, WezTerm, Alacritty, kitty, iTerm2, Konsole, gnome-terminal, and so on.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;terminal multiplexer&lt;/strong&gt; runs &lt;em&gt;inside&lt;/em&gt; a terminal emulator and splits your single terminal window into multiple independent sessions, windows, and panes. &lt;a href="https://github.com/tmux/tmux/wiki"&gt;&lt;strong&gt;tmux&lt;/strong&gt;&lt;/a&gt; is the multiplexer aitasks integrates with.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;tmux is &lt;strong&gt;not&lt;/strong&gt; a terminal emulator — it always runs inside one.&lt;/p&gt;</description></item><item><title>Explain Utilities</title><link>https://www.aitasks.io/docs/commands/explain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/explain/</guid><description>&lt;h2 id="ait-explain-runs"&gt;ait explain-runs&lt;/h2&gt;
&lt;p&gt;Manage aitask-explain run directories. The &lt;code&gt;/aitask-explain&lt;/code&gt; skill generates reference data (git history analysis, task/plan mappings) in directories under &lt;code&gt;.aitask-explain/&lt;/code&gt;. Over time these accumulate. Use &lt;code&gt;ait explain-runs&lt;/code&gt; to list, inspect, and clean up old run data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interactive mode&lt;/strong&gt; (default — requires fzf):&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 explain-runs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Presents a list of all existing runs (both top-level and codebrowser) with file counts and previews. Select a run to delete it, or choose &amp;ldquo;Delete ALL runs&amp;rdquo; to remove everything. Confirmation is required before deletion.&lt;/p&gt;</description></item><item><title>Stats</title><link>https://www.aitasks.io/docs/tuis/stats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/stats/</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 stats-tui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Stats 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. Interactive chart panes additionally need the optional &lt;code&gt;plotext&lt;/code&gt; package — &lt;code&gt;ait setup&lt;/code&gt; prompts &lt;code&gt;Install plotext for 'ait stats-tui' chart panes? [y/N]&lt;/code&gt; in the Python venv step. Without &lt;code&gt;plotext&lt;/code&gt;, the TUI still launches but chart panes render placeholders instead of charts.&lt;/p&gt;
&lt;p&gt;Inside tmux you can also reach the TUI via the &lt;a href="../monitor/how-to/#how-to-jump-to-another-tui"&gt;TUI switcher&lt;/a&gt; — press &lt;strong&gt;&lt;code&gt;j&lt;/code&gt;&lt;/strong&gt; in any other aitasks TUI and pick Stats.&lt;/p&gt;</description></item><item><title>Sync</title><link>https://www.aitasks.io/docs/commands/sync/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/sync/</guid><description>&lt;h2 id="ait-sync"&gt;ait sync&lt;/h2&gt;
&lt;p&gt;Sync task data with a remote repository: auto-commit local changes, fetch, pull with rebase, and push. Designed for multi-machine workflows where task files may be edited on different PCs.&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 sync &lt;span style="color:#8f5902;font-style:italic"&gt;# Interactive mode with colored progress&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait sync --batch &lt;span style="color:#8f5902;font-style:italic"&gt;# Structured output for scripting/automation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Option&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;--batch&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Structured single-line output for scripting (no colors, no interactive prompts)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--help, -h&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Show usage help&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="interactive-mode"&gt;Interactive Mode&lt;/h3&gt;
&lt;p&gt;In interactive mode, &lt;code&gt;ait sync&lt;/code&gt; displays colored progress messages as it works through each step:&lt;/p&gt;</description></item><item><title>Lock</title><link>https://www.aitasks.io/docs/commands/lock/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/lock/</guid><description>&lt;h2 id="ait-lock"&gt;ait lock&lt;/h2&gt;
&lt;p&gt;Lock and unlock tasks to prevent two users or agents from working on the same task simultaneously. Uses atomic git operations on a separate &lt;code&gt;aitask-locks&lt;/code&gt; branch.&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 lock &lt;span style="color:#0000cf;font-weight:bold"&gt;42&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Lock task t42 (auto-detects email)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait lock &lt;span style="color:#0000cf;font-weight:bold"&gt;42&lt;/span&gt; --email user@co.com &lt;span style="color:#8f5902;font-style:italic"&gt;# Lock with explicit email&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait lock --unlock &lt;span style="color:#0000cf;font-weight:bold"&gt;42&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Release lock on t42&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait lock --check &lt;span style="color:#0000cf;font-weight:bold"&gt;42&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Check if t42 is locked&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait lock --list &lt;span style="color:#8f5902;font-style:italic"&gt;# Show all active locks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Command&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;&amp;lt;task_id&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Lock a task. Auto-detects email from &lt;code&gt;userconfig.yaml&lt;/code&gt;, falling back to &lt;code&gt;emails.txt&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--lock &amp;lt;task_id&amp;gt; [--email EMAIL]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Explicit lock syntax (same as bare task ID)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--unlock &amp;lt;task_id&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Release a task lock. Idempotent (succeeds even if not locked)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--check &amp;lt;task_id&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Check lock status. Exit 0 = locked (prints lock info), exit 1 = free&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--list&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;List all currently locked tasks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--init&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Initialize the &lt;code&gt;aitask-locks&lt;/code&gt; branch on the remote (usually done by &lt;code&gt;ait setup&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--cleanup&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Remove stale locks for tasks that have been archived&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Option&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;--email EMAIL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Override email for locking (default: auto-detect)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--debug&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Enable verbose debug output&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="email-auto-detection"&gt;Email Auto-Detection&lt;/h3&gt;
&lt;p&gt;When locking a task without &lt;code&gt;--email&lt;/code&gt;, the command resolves the email in this order:&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>Folded tasks</title><link>https://www.aitasks.io/docs/concepts/folded-tasks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/folded-tasks/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;folded task&lt;/strong&gt; is a task whose content has been &lt;strong&gt;merged into&lt;/strong&gt; another (the &lt;em&gt;primary&lt;/em&gt; task). Folding sets the folded task&amp;rsquo;s &lt;code&gt;status&lt;/code&gt; to &lt;code&gt;Folded&lt;/code&gt; and writes a &lt;code&gt;folded_into&lt;/code&gt; field pointing at the primary; the primary in turn lists every folded child in its &lt;code&gt;folded_tasks&lt;/code&gt; frontmatter field. At fold time the folded task&amp;rsquo;s body is incorporated into the primary&amp;rsquo;s description under a &lt;code&gt;## Merged from t&amp;lt;N&amp;gt;&lt;/code&gt; header — the folded file remains on disk only as a reference for archival cleanup, and it is deleted (not archived) when the primary is archived.&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>Code Agent</title><link>https://www.aitasks.io/docs/commands/codeagent/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/codeagent/</guid><description>&lt;h2 id="ait-codeagent"&gt;ait codeagent&lt;/h2&gt;
&lt;p&gt;Unified wrapper for invoking AI code agents (Claude Code, Gemini CLI, Codex CLI, OpenCode) with configurable per-operation model selection.&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 codeagent list-agents &lt;span style="color:#8f5902;font-style:italic"&gt;# Show available agents&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent list-models claudecode &lt;span style="color:#8f5902;font-style:italic"&gt;# List Claude models&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent resolve task-pick &lt;span style="color:#8f5902;font-style:italic"&gt;# Show configured agent/model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent check &lt;span style="color:#4e9a06"&gt;&amp;#34;claudecode/opus4_6&amp;#34;&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Validate an agent string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent coauthor &lt;span style="color:#4e9a06"&gt;&amp;#34;codex/gpt5_4&amp;#34;&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Resolve commit coauthor metadata&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent invoke task-pick &lt;span style="color:#0000cf;font-weight:bold"&gt;42&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Pick task 42 with configured agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent --agent-string geminicli/gemini2_5pro invoke explain src/ &lt;span style="color:#8f5902;font-style:italic"&gt;# Override agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ait codeagent --dry-run invoke task-pick &lt;span style="color:#0000cf;font-weight:bold"&gt;42&lt;/span&gt; &lt;span style="color:#8f5902;font-style:italic"&gt;# Preview command without running&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="agent-string-format"&gt;Agent String Format&lt;/h3&gt;
&lt;p&gt;An agent string identifies both the code agent and the model to use, in the format &lt;code&gt;&amp;lt;agent&amp;gt;/&amp;lt;model&amp;gt;&lt;/code&gt;:&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>Review guides</title><link>https://www.aitasks.io/docs/concepts/review-guides/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/review-guides/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;review guide&lt;/strong&gt; is a markdown file in &lt;code&gt;aireviewguides/&lt;/code&gt; that captures a single concern a reviewer cares about — a security check, a portability rule, a stylistic convention, a project-specific invariant. Each guide carries a YAML frontmatter block (name, review type, language environment, files matched, similarity links to related guides) and a body of structured instructions the agent applies during review. Guides are organized into language-keyed subdirectories (&lt;code&gt;aireviewguides/python/&lt;/code&gt;, &lt;code&gt;aireviewguides/bash/&lt;/code&gt;, &amp;hellip;) so reviews can target only the guides relevant to the changed files.&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>Execution profiles</title><link>https://www.aitasks.io/docs/concepts/execution-profiles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/execution-profiles/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;An &lt;strong&gt;execution profile&lt;/strong&gt; is a YAML file in &lt;code&gt;aitasks/metadata/profiles/&lt;/code&gt; that pre-answers the questions a skill would otherwise ask interactively. Each profile sets a handful of named keys — for example &lt;code&gt;skip_task_confirmation&lt;/code&gt;, &lt;code&gt;default_email&lt;/code&gt;, &lt;code&gt;create_worktree&lt;/code&gt;, &lt;code&gt;plan_preference&lt;/code&gt;, &lt;code&gt;post_plan_action&lt;/code&gt;, &lt;code&gt;qa_mode&lt;/code&gt;, &lt;code&gt;manual_verification_followup_mode&lt;/code&gt; — that the skill then consults at each decision point. Profiles are picked at the start of a skill run (with &lt;code&gt;--profile &amp;lt;name&amp;gt;&lt;/code&gt; or interactively from a list) and remain in effect for that session.&lt;/p&gt;</description></item><item><title>Follow-Up Tasks and Task Discovery</title><link>https://www.aitasks.io/docs/workflows/follow-up-tasks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/follow-up-tasks/</guid><description>&lt;p&gt;While working on a task via &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt;, your code agent session has full context about the current implementation: the codebase, the task definition, the plan, and all changes made so far. This makes it an ideal moment to create follow-up tasks, but also to &lt;strong&gt;discover and update existing tasks&lt;/strong&gt; — far more effective than doing either separately.&lt;/p&gt;
&lt;h2 id="during-implementation"&gt;During Implementation&lt;/h2&gt;
&lt;p&gt;When you notice something that needs a follow-up task while the agent is working, simply ask:&lt;/p&gt;</description></item><item><title>Creating Tasks from Code</title><link>https://www.aitasks.io/docs/workflows/create-tasks-from-code/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/create-tasks-from-code/</guid><description>&lt;p&gt;When you spot a TODO, a smell, or a bug while reading a file, you want a task that points at the exact lines so the implementing agent already has the context. The &lt;code&gt;file_references&lt;/code&gt; frontmatter field is the structured home for those pointers, and &lt;code&gt;ait codebrowser&lt;/code&gt; + &lt;code&gt;aitask_create.sh&lt;/code&gt; together turn &amp;ldquo;I saw something weird on line 42&amp;rdquo; into a committed task without ever leaving your viewer.&lt;/p&gt;
&lt;p&gt;This workflow ties together:&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><item><title>Code Review Workflow</title><link>https://www.aitasks.io/docs/workflows/code-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/code-review/</guid><description>&lt;p&gt;The aitasks review system separates code quality review from implementation. The philosophy: first build something that works, then review it for quality improvements. This separation of concerns makes more efficient use of the LLM context — implementation and review are distinct cognitive tasks that benefit from dedicated focus.&lt;/p&gt;
&lt;h2 id="the-review-cycle"&gt;The Review Cycle&lt;/h2&gt;
&lt;p&gt;After completing an implementation task with &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt;, run a targeted review:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Run &lt;a href="../../skills/aitask-review/"&gt;&lt;code&gt;/aitask-review&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; — Select the files or commits to review, and choose which review guides to apply. The skill auto-detects the most relevant guides based on the languages and frameworks in your code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review findings&lt;/strong&gt; — Examine the results grouped by guide and severity. Select which findings to act on&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create tasks&lt;/strong&gt; — Turn selected findings into tasks (single task, grouped by guide, or one per finding)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Implement fixes&lt;/strong&gt; — Run &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt; on the review task to fix the issues&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This cycle can be repeated with different review guides to cover multiple quality dimensions (security, performance, style, etc.).&lt;/p&gt;</description></item><item><title>/aitask-qa</title><link>https://www.aitasks.io/docs/skills/aitask-qa/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-qa/</guid><description>&lt;p&gt;Run QA analysis on any task — discover tests, run them, identify gaps, and create follow-up test tasks. This skill works with both active and archived tasks, making it useful for reviewing test coverage at any point in the task lifecycle.&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-qa # Interactive: select from recently archived tasks
/aitask-qa 42 # Analyze a specific parent task
/aitask-qa 16_2 # Analyze a specific child task
&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>Exploration-Driven Development</title><link>https://www.aitasks.io/docs/workflows/exploration-driven/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/exploration-driven/</guid><description>&lt;p&gt;Sometimes you don&amp;rsquo;t know what the task should be. You have a vague symptom, an unfamiliar module to understand, or a hunch that something could be improved — but you can&amp;rsquo;t write a task description yet because you haven&amp;rsquo;t explored enough to know what needs doing. The &lt;a href="../../skills/aitask-explore/"&gt;&lt;code&gt;/aitask-explore&lt;/code&gt;&lt;/a&gt; skill is designed for exactly this situation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The philosophy: explore first, define the task from what you find.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This inverts the normal aitasks flow. Instead of &lt;em&gt;define task → pick task → implement&lt;/em&gt;, you follow &lt;em&gt;explore → discover → define task → implement&lt;/em&gt;. The exploration phase is interactive and iterative — you direct the agent&amp;rsquo;s investigation, review findings after each round, and decide when you&amp;rsquo;ve learned enough to crystallize a task.&lt;/p&gt;</description></item><item><title>QA and Testing Workflow</title><link>https://www.aitasks.io/docs/workflows/qa-testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/qa-testing/</guid><description>&lt;p&gt;Automated tests should be part of every implementation — when you run &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt;, the implementation step naturally includes writing tests alongside the feature code. But real-world constraints mean test coverage gaps are common:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LLM context limits&lt;/strong&gt; may prevent full test coverage during implementation, especially for complex tasks that consume most of the available context with source code and plan content&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test requirements discovered later&lt;/strong&gt; — edge cases, integration scenarios, and failure modes often become apparent only after the feature is used or reviewed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incremental test strategy&lt;/strong&gt; — some teams prefer a quick implementation pass followed by a dedicated test-hardening round&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="../../skills/aitask-qa/"&gt;&lt;code&gt;/aitask-qa&lt;/code&gt;&lt;/a&gt; exists to systematically identify and fill these gaps. It analyzes what was built, discovers existing tests, runs them, identifies coverage holes, and proposes a test plan — optionally creating a follow-up task to implement the missing tests.&lt;/p&gt;</description></item><item><title>Manual Verification Workflow</title><link>https://www.aitasks.io/docs/workflows/manual-verification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/manual-verification/</guid><description>&lt;p&gt;Some behavior cannot be covered by automated tests: TUI flows, tmux-driven agents, multi-screen navigation, on-disk artifact inspection, live LLM calls. &lt;a href="../../skills/aitask-qa/"&gt;&lt;code&gt;/aitask-qa&lt;/code&gt;&lt;/a&gt; handles everything that is script-testable; manual verification covers the rest as first-class tasks with their own checklist, lock, and archival gate.&lt;/p&gt;
&lt;p&gt;A task with &lt;code&gt;issue_type: manual_verification&lt;/code&gt; is a human-checklist runner. When &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt; picks one, Step 3 Check 3 routes it into a dedicated Pass/Fail/Skip/Defer loop instead of the normal plan-and-implement flow. Failing items auto-generate pre-populated bug tasks; deferred items block archival or spawn carry-over tasks for later.&lt;/p&gt;</description></item><item><title>Understanding Code with Explain</title><link>https://www.aitasks.io/docs/workflows/explain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/explain/</guid><description>&lt;p&gt;When AI agents accelerate development, teams can ship features faster than they can understand them. Code that works perfectly may still be opaque — nobody knows why it exists, which task motivated it, or how its design evolved. This gap between code velocity and code comprehension is what Margaret Storey calls &lt;a href="https://margaretstorey.com/blog/2026/02/09/cognitive-debt/"&gt;cognitive debt&lt;/a&gt;: &amp;ldquo;the debt compounded from going fast lives in the brains of the developers.&amp;rdquo; The &lt;a href="../../skills/aitask-explain/"&gt;&lt;code&gt;/aitask-explain&lt;/code&gt;&lt;/a&gt; skill addresses this by tracing code back through the aitask and aiplan records that document every change&amp;rsquo;s purpose.&lt;/p&gt;</description></item></channel></rss>