<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Advanced on aitasks</title><link>https://www.aitasks.io/depth/advanced/</link><description>Recent content in Advanced on aitasks</description><generator>Hugo</generator><language>en</language><atom:link href="https://www.aitasks.io/depth/advanced/index.xml" rel="self" type="application/rss+xml"/><item><title>Build, Test, and Lint Configuration</title><link>https://www.aitasks.io/docs/skills/aitask-pick/build-verification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pick/build-verification/</guid><description>&lt;p&gt;After implementation, the skill can optionally run a build verification command to catch regressions introduced by the task&amp;rsquo;s changes. This is configured via &lt;code&gt;aitasks/metadata/project_config.yaml&lt;/code&gt; and applies to all three implementation skills: &lt;code&gt;/aitask-pick&lt;/code&gt;, &lt;code&gt;/aitask-pickrem&lt;/code&gt;, and &lt;code&gt;/aitask-pickweb&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&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-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Single command&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;verify_build&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;cargo build&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# Multiple commands (run sequentially, stop on first failure)&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;verify_build&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;npm install&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;npm run build&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;- &lt;span style="color:#4e9a06"&gt;&amp;#34;npm test&amp;#34;&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If &lt;code&gt;verify_build&lt;/code&gt; is not set (or the file doesn&amp;rsquo;t exist), the step is skipped entirely.&lt;/p&gt;</description></item><item><title>Contribution Flow</title><link>https://www.aitasks.io/docs/workflows/contribute-and-manage/contribution-flow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/contribute-and-manage/contribution-flow/</guid><description>&lt;p&gt;When a contribution issue arrives on your repository (created by &lt;a href="../../../skills/aitask-contribute/"&gt;&lt;code&gt;/aitask-contribute&lt;/code&gt;&lt;/a&gt; or manually), the aitasks framework provides two layers of analysis before import: an automated CI/CD overlap check and an AI-powered review skill. Together they help maintainers detect duplicates, find related contributions, and make informed import decisions.&lt;/p&gt;
&lt;h2 id="fingerprint-metadata"&gt;Fingerprint Metadata&lt;/h2&gt;
&lt;p&gt;Each contribution issue created by &lt;code&gt;/aitask-contribute&lt;/code&gt; includes a hidden metadata block:&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-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;&amp;lt;!-- aitask-contribute-metadata
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;contributor: username
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;contributor_email: user@example.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;based_on_version: v1.2.3
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;fingerprint_version: 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;areas: scripts,claude-skills
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;file_paths: .aitask-scripts/foo.sh,.aitask-scripts/bar.sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;file_dirs: .aitask-scripts
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;change_type: enhancement
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;auto_labels: area:scripts,scope:enhancement
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Fields:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Task File Format</title><link>https://www.aitasks.io/docs/development/task-format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/development/task-format/</guid><description>&lt;h2 id="file-structure"&gt;File Structure&lt;/h2&gt;
&lt;p&gt;Tasks are markdown files with YAML frontmatter in the &lt;code&gt;aitasks/&lt;/code&gt; directory. Task files use the naming convention &lt;code&gt;t&amp;lt;number&amp;gt;_&amp;lt;name&amp;gt;.md&lt;/code&gt;. Executed task files are stored in &lt;code&gt;aitasks/archived/&lt;/code&gt; and their associated plan files in &lt;code&gt;aiplans/archived/&lt;/code&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-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;---&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;priority&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;high&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;effort&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;medium&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;depends&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;issue_type&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;feature &lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# See aitasks/metadata/task_types.txt for valid types&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;status&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Ready&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;labels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#000"&gt;ui, backend]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;created_at&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;2026-01-15&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;00&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;updated_at&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;2026-01-15&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#0000cf;font-weight:bold"&gt;00&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;---&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;## Task description here&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;Detailed description of what needs to be done.&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="frontmatter-fields"&gt;Frontmatter Fields&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Values&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;priority&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;high&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;low&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Task priority for sorting&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;effort&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Estimated implementation effort&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;depends&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[1, 4]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;List of task numbers this depends on&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;issue_type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;bug&lt;/code&gt;, &lt;code&gt;chore&lt;/code&gt;, &lt;code&gt;documentation&lt;/code&gt;, &lt;code&gt;feature&lt;/code&gt;, &lt;code&gt;performance&lt;/code&gt;, &lt;code&gt;refactor&lt;/code&gt;, &lt;code&gt;style&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Type of work (from &lt;code&gt;task_types.txt&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Ready&lt;/code&gt;, &lt;code&gt;Editing&lt;/code&gt;, &lt;code&gt;Implementing&lt;/code&gt;, &lt;code&gt;Postponed&lt;/code&gt;, &lt;code&gt;Done&lt;/code&gt;, &lt;code&gt;Folded&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Current status&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;labels&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[ui, backend]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Categorization labels&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;created_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Creation timestamp&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;updated_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Last modification timestamp&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;completed_at&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;YYYY-MM-DD HH:MM&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Completion timestamp (set on archival)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;assigned_to&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;email address&lt;/td&gt;
 &lt;td&gt;Developer working on the task&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;issue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;URL&lt;/td&gt;
 &lt;td&gt;Linked GitHub/GitLab/Bitbucket issue&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;children_to_implement&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[t10_1, t10_2]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Remaining child tasks (parent tasks only)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;boardcol&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;column ID&lt;/td&gt;
 &lt;td&gt;Board UI column placement&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;boardidx&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;integer&lt;/td&gt;
 &lt;td&gt;Board UI sort index within column&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;folded_tasks&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[138, 129_5]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Task IDs folded into this task by &lt;code&gt;/aitask-explore&lt;/code&gt; or &lt;code&gt;/aitask-fold&lt;/code&gt; (deleted on archival)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;folded_into&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;task number&lt;/td&gt;
 &lt;td&gt;Task this was folded into (set by &lt;code&gt;/aitask-fold&lt;/code&gt; or &lt;code&gt;/aitask-explore&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;file_references&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[path, path:N, path:N-M, path:N-M^N-M]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Structured pointers to source files / line ranges. 1-indexed, inclusive. Exact-string dedup. See &lt;a href="https://www.aitasks.io/docs/workflows/create-tasks-from-code/"&gt;Creating Tasks from Code&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;verifies&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[t10_1, t10_2]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Task IDs this task verifies (used by &lt;code&gt;manual_verification&lt;/code&gt; sibling tasks that gate release on human-checked behavior)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;implemented_with&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;agent&amp;gt;/&amp;lt;model&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Agent and model that implemented the task (e.g., &lt;code&gt;claudecode/opus4_7_1m&lt;/code&gt;). See &lt;a href="https://www.aitasks.io/docs/concepts/agent-attribution/"&gt;Agent attribution&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;pull_request&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;URL&lt;/td&gt;
 &lt;td&gt;Linked pull request URL (mirrors &lt;code&gt;issue&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;contributor&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;External contributor credited on the commit (used by PR-import flow)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;contributor_email&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;email&lt;/td&gt;
 &lt;td&gt;Email for the contributor&amp;rsquo;s &lt;code&gt;Co-Authored-By&lt;/code&gt; trailer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="status-workflow"&gt;Status Workflow&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Ready → Editing → Implementing → Done → Archived
 ↘ Folded (merged into another task)
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ready&lt;/strong&gt; — Task is defined and available for implementation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Editing&lt;/strong&gt; — Task is being refined (description, requirements)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Implementing&lt;/strong&gt; — Active development in progress (assigned to someone)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Postponed&lt;/strong&gt; — Deferred for later&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Folded&lt;/strong&gt; — Task was merged into another task via &lt;code&gt;/aitask-fold&lt;/code&gt; or &lt;code&gt;/aitask-explore&lt;/code&gt;; deleted on archival of the primary task&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Done&lt;/strong&gt; — Implementation complete, pending archival&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Archived&lt;/strong&gt; — Task and plan files moved to &lt;code&gt;archived/&lt;/code&gt; directories&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="parent-child-hierarchies"&gt;Parent-Child Hierarchies&lt;/h2&gt;
&lt;p&gt;Tasks support parent-child hierarchies for breaking complex work into subtasks:&lt;/p&gt;</description></item><item><title>/aitask-web-merge</title><link>https://www.aitasks.io/docs/skills/aitask-web-merge/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-web-merge/</guid><description>&lt;p&gt;Runs &lt;strong&gt;locally&lt;/strong&gt; after &lt;a href="../aitask-pickweb/"&gt;&lt;code&gt;/aitask-pickweb&lt;/code&gt;&lt;/a&gt; completes on Claude Code Web. It detects remote branches with completed task executions, merges code to main (excluding &lt;code&gt;.aitask-data-updated/&lt;/code&gt;), copies the plan to aitask-data, archives the task, and cleans up.&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-web-merge
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;No arguments needed — the skill scans all remote branches automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Must be run from the project root directory on your local machine (not on Claude Code Web). 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 follows a &lt;strong&gt;scan → select → merge → archive → push → cleanup&lt;/strong&gt; flow:&lt;/p&gt;</description></item><item><title>Execution Profiles</title><link>https://www.aitasks.io/docs/skills/aitask-pick/execution-profiles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pick/execution-profiles/</guid><description>&lt;p&gt;Execution profiles let &lt;code&gt;/aitask-pick&lt;/code&gt; and related skills pre-answer workflow questions so you can move from task selection to implementation with fewer prompts.&lt;/p&gt;
&lt;p&gt;Profiles are YAML files stored in &lt;code&gt;aitasks/metadata/profiles/&lt;/code&gt;. They are loaded at the start of &lt;code&gt;/aitask-pick&lt;/code&gt; and can also be reused by related skills that share the task workflow.&lt;/p&gt;
&lt;h2 id="shipped-profiles"&gt;Shipped Profiles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;default&lt;/strong&gt; &amp;ndash; All questions asked normally (empty profile, serves as a template)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;fast&lt;/strong&gt; &amp;ndash; Skip confirmations, use userconfig email, stay on the current branch, pause for confirmation after plan approval, and keep feedback questions enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="standard-profile-fields"&gt;Standard Profile Fields&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Type&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;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (required)&lt;/td&gt;
 &lt;td&gt;Display name shown during profile selection&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string (required)&lt;/td&gt;
 &lt;td&gt;Description shown below the profile name&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;skip_task_confirmation&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; auto-confirms direct task selection&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;default_email&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;userconfig&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;first&amp;quot;&lt;/code&gt;, or a literal email address&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;create_worktree&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; creates a separate worktree; &lt;code&gt;false&lt;/code&gt; uses the current branch&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;base_branch&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Branch name used when creating a worktree&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;plan_preference&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;use_current&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;verify&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;create_new&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;plan_preference_child&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Same values as &lt;code&gt;plan_preference&lt;/code&gt;, but only for child tasks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;plan_verification_required&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;int&lt;/td&gt;
 &lt;td&gt;Minimum fresh &lt;code&gt;plan_verified&lt;/code&gt; entries required to skip verification when &lt;code&gt;plan_preference&lt;/code&gt; is &lt;code&gt;&amp;quot;verify&amp;quot;&lt;/code&gt; (default &lt;code&gt;1&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;plan_verification_stale_after_hours&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;int&lt;/td&gt;
 &lt;td&gt;Hours after which a &lt;code&gt;plan_verified&lt;/code&gt; entry is considered stale (default &lt;code&gt;24&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;post_plan_action&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;start_implementation&amp;quot;&lt;/code&gt; skips the post-plan checkpoint&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;post_plan_action_for_child&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Same values as &lt;code&gt;post_plan_action&lt;/code&gt;, but only for child tasks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;enableFeedbackQuestions&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt; disables satisfaction feedback prompts; &lt;code&gt;true&lt;/code&gt; or omitted keeps them enabled. See &lt;a href="../../verified-scores/"&gt;Verified Scores&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;explore_auto_continue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;Used by &lt;code&gt;/aitask-explore&lt;/code&gt; to continue automatically after exploration&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;qa_mode&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;ask&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;create_task&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;implement&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;plan_only&amp;quot;&lt;/code&gt; — used by &lt;a href="../../aitask-qa/"&gt;&lt;code&gt;/aitask-qa&lt;/code&gt;&lt;/a&gt; to control what happens with test proposals&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;qa_run_tests&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt; runs discovered tests, &lt;code&gt;false&lt;/code&gt; skips test execution — used by &lt;a href="../../aitask-qa/"&gt;&lt;code&gt;/aitask-qa&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;qa_tier&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;quick&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;standard&amp;quot;&lt;/code&gt;, or &lt;code&gt;&amp;quot;exhaustive&amp;quot;&lt;/code&gt; — pre-selects the QA analysis depth tier&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;manual_verification_followup_mode&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;ask&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;never&amp;quot;&lt;/code&gt; — used by task-workflow Step 8c to control whether the post-implementation manual-verification follow-up prompt fires&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Omitting a key means that question is asked interactively. &lt;code&gt;enableFeedbackQuestions&lt;/code&gt; is enabled by default when the key is absent.&lt;/p&gt;</description></item><item><title>Commit Attribution</title><link>https://www.aitasks.io/docs/skills/aitask-pick/commit-attribution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-pick/commit-attribution/</guid><description>&lt;p&gt;When a task implementation is committed, the workflow can attach two kinds of attribution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;an imported contributor trailer when the task carries &lt;code&gt;contributor&lt;/code&gt; and &lt;code&gt;contributor_email&lt;/code&gt; metadata&lt;/li&gt;
&lt;li&gt;a code-agent trailer for the agent recorded in &lt;code&gt;implemented_with&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This applies to the shared Step 8 commit flow used by &lt;code&gt;/aitask-pick&lt;/code&gt; and other skills that route through the shared task workflow. The same composition rules are also used by direct-commit variants such as &lt;code&gt;/aitask-pickrem&lt;/code&gt;, &lt;code&gt;/aitask-pickweb&lt;/code&gt;, and &lt;code&gt;/aitask-wrap&lt;/code&gt;.&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;b&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Toggle the preview scrollbar visibility&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>Review Guide Format</title><link>https://www.aitasks.io/docs/development/review-guide-format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/development/review-guide-format/</guid><description>&lt;h2 id="file-structure"&gt;File Structure&lt;/h2&gt;
&lt;p&gt;Review guides are markdown files with YAML frontmatter in &lt;code&gt;aireviewguides/&lt;/code&gt;, organized by environment subdirectory. Each guide contains metadata that powers auto-detection and similarity matching, plus actionable review instructions that &lt;code&gt;/aitask-review&lt;/code&gt; applies during code review.&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-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;---&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;name&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Python Best Practices&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;description&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;Check type hints, modern idioms, context managers, and pythonic patterns&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;reviewtype&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;conventions&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;reviewlabels&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#000"&gt;type-hints, idioms, context-managers, pythonic]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;environment&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#000"&gt;python]&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;source_url&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;https://example.com/python-guide&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#204a87;font-weight:bold"&gt;similar_to&lt;/span&gt;&lt;span style="color:#000;font-weight:bold"&gt;:&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#000"&gt;general/code_conventions.md&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#000"&gt;---&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;## Review Instructions&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;### Type Hints&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#000"&gt;Flag public functions missing type annotations on parameters and return types&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#000"&gt;Look for use of `Any` where a more specific type is known&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="frontmatter-fields"&gt;Frontmatter Fields&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Values&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;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Guide display name shown during selection&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Brief description of what the guide reviews&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;reviewtype&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;Classification type from &lt;code&gt;reviewtypes.txt&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;reviewlabels&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[label1, label2]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Topic labels from &lt;code&gt;reviewlabels.txt&lt;/code&gt; (3-6 recommended)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;environment&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[env1, env2]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Target environments from &lt;code&gt;reviewenvironments.txt&lt;/code&gt;. Absent = universal guide&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;source_url&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;URL&lt;/td&gt;
 &lt;td&gt;Reference to the original source material&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;similar_to&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;relative path&lt;/td&gt;
 &lt;td&gt;Most similar guide, set by &lt;code&gt;/aitask-reviewguide-classify&lt;/code&gt; when similarity score &amp;gt;= 5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The body must start with &lt;code&gt;## Review Instructions&lt;/code&gt;, followed by &lt;code&gt;###&lt;/code&gt; section headings each containing bullet-point checks. This structure is what &lt;code&gt;/aitask-review&lt;/code&gt; reads and applies during code review.&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>Issue Tracker Development Workflow</title><link>https://www.aitasks.io/docs/workflows/issue-tracker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/issue-tracker/</guid><description>&lt;p&gt;The framework fully supports issue-based development across GitHub, GitLab, and Bitbucket through the &lt;a href="../../commands/issue-integration/#ait-issue-import"&gt;&lt;code&gt;ait issue-import&lt;/code&gt;&lt;/a&gt; and &lt;a href="../../commands/issue-integration/#ait-issue-update"&gt;&lt;code&gt;ait issue-update&lt;/code&gt;&lt;/a&gt; commands, creating a seamless round-trip between your issue tracker and local task management. The source platform is auto-detected from your git remote URL.&lt;/p&gt;
&lt;h2 id="the-full-cycle"&gt;The Full Cycle&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import&lt;/strong&gt; — Run &lt;a href="../../commands/issue-integration/#ait-issue-import"&gt;&lt;code&gt;ait issue-import&lt;/code&gt;&lt;/a&gt; to fetch open issues and create task files. In interactive mode, you can browse issues with fzf, preview their content, and select which ones to import. Issue labels are mapped to aitask labels, and the issue type is auto-detected from labels (bug, chore, documentation, feature, performance, refactor, style, test). A link to the original issue is stored in the task&amp;rsquo;s &lt;code&gt;issue&lt;/code&gt; metadata field&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;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>/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>PR Import Workflow</title><link>https://www.aitasks.io/docs/workflows/pr-workflow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/pr-workflow/</guid><description>&lt;p&gt;The framework supports creating tasks from external pull requests, providing a structured path for incorporating contributions that cannot be merged directly. Instead of accepting or rejecting a PR as-is, the workflow extracts the contributor&amp;rsquo;s intent and approach, validates it against project conventions, and produces a task that goes through the standard implementation cycle — with proper attribution back to the original contributor.&lt;/p&gt;
&lt;h2 id="motivation"&gt;Motivation&lt;/h2&gt;
&lt;p&gt;Not every pull request can be merged directly. Common scenarios:&lt;/p&gt;</description></item><item><title>Git Remotes</title><link>https://www.aitasks.io/docs/installation/git-remotes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/installation/git-remotes/</guid><description>&lt;h2 id="authentication-with-your-git-remote"&gt;Authentication with Your Git Remote&lt;/h2&gt;
&lt;p&gt;Authenticating with your git remote enables full aitasks functionality including task locking (prevents two agents from picking the same task), push/pull sync across machines, and issue integration (&lt;code&gt;ait issue-import&lt;/code&gt;, &lt;code&gt;ait issue-update&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id="github"&gt;GitHub&lt;/h3&gt;
&lt;p&gt;Authenticate the GitHub CLI:&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;gh auth login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Follow the prompts to authenticate via browser or token.&lt;/p&gt;
&lt;h3 id="gitlab"&gt;GitLab&lt;/h3&gt;
&lt;p&gt;Authenticate the GitLab CLI:&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;glab auth login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Follow the prompts to authenticate via browser or token. This also configures
git credentials for pushing to GitLab remotes.&lt;/p&gt;</description></item><item><title>Issue Integration &amp; Utilities</title><link>https://www.aitasks.io/docs/commands/issue-integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/issue-integration/</guid><description>&lt;h2 id="ait-issue-import"&gt;ait issue-import&lt;/h2&gt;
&lt;p&gt;Import GitHub/GitLab/Bitbucket issues as AI task files. Supports interactive selection with fzf or batch automation. The source platform is auto-detected from the git remote URL (&lt;code&gt;github.com&lt;/code&gt; → GitHub, &lt;code&gt;gitlab.com&lt;/code&gt; → GitLab, &lt;code&gt;bitbucket.org&lt;/code&gt; → Bitbucket). Use &lt;code&gt;--source&lt;/code&gt; to override.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interactive mode&lt;/strong&gt; (default — requires fzf and gh/glab CLI):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Import mode selection&lt;/strong&gt; — Choose via fzf: &amp;ldquo;Specific issue number&amp;rdquo;, &amp;ldquo;Fetch open issues and choose&amp;rdquo;, &amp;ldquo;Issue number range&amp;rdquo;, &amp;ldquo;All open issues&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issue selection&lt;/strong&gt; — Depends on mode:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Specific issue&lt;/em&gt;: enter issue number manually&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Fetch &amp;amp; choose&lt;/em&gt;: fetches all open issues via &lt;code&gt;gh issue list&lt;/code&gt; (or &lt;code&gt;glab issue list&lt;/code&gt; for GitLab), presents in fzf with multi-select (Tab to select multiple) and preview pane showing issue body/labels&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Range&lt;/em&gt;: enter start and end issue numbers&lt;/li&gt;
&lt;li&gt;&lt;em&gt;All open&lt;/em&gt;: fetches all open issues with confirmation prompt showing count&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Duplicate check&lt;/strong&gt; — Searches active and archived tasks for matching issue URL. If found, warns and offers Skip/Import anyway&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issue preview&lt;/strong&gt; — Shows title and first 30 lines of body (truncated warning if longer). Confirm Import/Skip via fzf&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task name&lt;/strong&gt; — Auto-generated from issue title (lowercase, sanitized). Editable with free text entry&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Labels&lt;/strong&gt; — Two-phase: first review each issue label individually (keep/skip via fzf), then iterative add loop (select from existing labels in &lt;code&gt;labels.txt&lt;/code&gt;, add new label, or done)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority&lt;/strong&gt; — fzf selection: high, medium, low&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Effort&lt;/strong&gt; — fzf selection: low, medium, high&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Issue type&lt;/strong&gt; — Auto-detected from issue labels: &lt;code&gt;bug&lt;/code&gt; → bug, &lt;code&gt;refactor&lt;/code&gt;/&lt;code&gt;tech-debt&lt;/code&gt;/&lt;code&gt;cleanup&lt;/code&gt; → refactor, otherwise → feature&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create &amp;amp; commit&lt;/strong&gt; — Creates task file via &lt;code&gt;aitask_create.sh&lt;/code&gt;, then prompts Y/n to commit to git&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>Parallel Development</title><link>https://www.aitasks.io/docs/workflows/parallel-development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/parallel-development/</guid><description>&lt;p&gt;The aitasks framework supports multiple developers (or multiple AI agent instances) working on different tasks simultaneously.&lt;/p&gt;
&lt;h2 id="how-concurrency-is-managed"&gt;How Concurrency Is Managed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Status tracking via git:&lt;/strong&gt; When &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt; starts work on a task, it sets the status to &amp;ldquo;Implementing&amp;rdquo;, records the developer&amp;rsquo;s email in &lt;code&gt;assigned_to&lt;/code&gt;, and commits + pushes the change. This makes the assignment visible to anyone who pulls the latest state&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atomic task locking:&lt;/strong&gt; The atomic lock system prevents two PCs from picking the same task simultaneously. Locks are stored on a separate &lt;code&gt;aitask-locks&lt;/code&gt; git branch using compare-and-swap semantics&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atomic ID counter:&lt;/strong&gt; The atomic ID counter on the &lt;code&gt;aitask-ids&lt;/code&gt; branch ensures globally unique task numbers even when multiple PCs create tasks against the same repo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task data branch (optional):&lt;/strong&gt; When enabled, task/plan files live on a separate &lt;code&gt;aitask-data&lt;/code&gt; branch accessed via a worktree at &lt;code&gt;.aitask-data/&lt;/code&gt;. This keeps task management commits off the main branch and allows independent sync via &lt;code&gt;./ait git push&lt;/code&gt;/&lt;code&gt;./ait git pull&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="git-worktrees-for-isolation"&gt;Git Worktrees for Isolation&lt;/h2&gt;
&lt;p&gt;When working on multiple tasks in parallel, use the git worktree option in &lt;a href="../../skills/aitask-pick/"&gt;&lt;code&gt;/aitask-pick&lt;/code&gt;&lt;/a&gt;. This creates an isolated working directory at &lt;code&gt;aiwork/&amp;lt;task_name&amp;gt;/&lt;/code&gt; on a separate branch, so each task&amp;rsquo;s changes don&amp;rsquo;t interfere with each other. After implementation, the branch is merged back to main and the worktree is cleaned up.&lt;/p&gt;</description></item><item><title>PR Import</title><link>https://www.aitasks.io/docs/commands/pr-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/commands/pr-import/</guid><description>&lt;h2 id="ait-pr-import"&gt;ait pr-import&lt;/h2&gt;
&lt;p&gt;Import GitHub/GitLab/Bitbucket pull requests as AI task files, or extract structured PR data for use with the &lt;a href="../../skills/aitask-pr-import/"&gt;&lt;code&gt;/aitask-pr-import&lt;/code&gt;&lt;/a&gt; skill. Supports interactive selection with fzf or batch automation. The source platform is auto-detected from the git remote URL (&lt;code&gt;github.com&lt;/code&gt; → GitHub, &lt;code&gt;gitlab.com&lt;/code&gt; → GitLab, &lt;code&gt;bitbucket.org&lt;/code&gt; → Bitbucket). Use &lt;code&gt;--source&lt;/code&gt; to override.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interactive mode&lt;/strong&gt; (default — requires fzf and gh/glab/bkt CLI):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Import mode selection&lt;/strong&gt; — Choose via fzf: &amp;ldquo;Specific PR number&amp;rdquo;, &amp;ldquo;Fetch open PRs and choose&amp;rdquo;, &amp;ldquo;PR number range&amp;rdquo;, &amp;ldquo;All open PRs&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PR selection&lt;/strong&gt; — Depends on mode:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Specific PR&lt;/em&gt;: enter PR number manually&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Fetch &amp;amp; choose&lt;/em&gt;: fetches all open PRs via &lt;code&gt;gh pr list&lt;/code&gt; (or &lt;code&gt;glab mr list&lt;/code&gt; for GitLab, &lt;code&gt;bkt pr list&lt;/code&gt; for Bitbucket), presents in fzf with multi-select (Tab to select multiple) and preview pane showing PR details&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Range&lt;/em&gt;: enter start and end PR numbers&lt;/li&gt;
&lt;li&gt;&lt;em&gt;All open&lt;/em&gt;: fetches all open PRs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PR preview&lt;/strong&gt; — Shows title, author, branch info, and first 30 lines of description (truncated warning if longer). Choose: &amp;ldquo;Import as task (basic)&amp;rdquo;, &amp;ldquo;Extract PR data only (for /aitask-pr-import skill)&amp;rdquo;, or &amp;ldquo;Skip&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task metadata&lt;/strong&gt; — Edit task name (auto-generated from PR title), review/keep/add labels, select priority/effort. Issue type is auto-detected from PR labels&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create &amp;amp; commit&lt;/strong&gt; — Creates task file via &lt;code&gt;ait create&lt;/code&gt;, then prompts to commit to git&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>Parallel Task Planning</title><link>https://www.aitasks.io/docs/workflows/parallel-planning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/parallel-planning/</guid><description>&lt;p&gt;When you know a feature is complex enough to need &lt;a href="../task-decomposition/"&gt;child task decomposition&lt;/a&gt;, you can run just the planning and decomposition phase — without writing any code. This produces a full set of child tasks with ready-to-use implementation plans, and it can safely happen in parallel with any other ongoing work.&lt;/p&gt;
&lt;h2 id="why-this-is-safe"&gt;Why This Is Safe&lt;/h2&gt;
&lt;p&gt;This workflow is pure design work. No source code is modified — only task definitions and implementation plans are created. That means there&amp;rsquo;s no risk of conflicts with whatever implementation is happening in other terminals or on other machines.&lt;/p&gt;</description></item><item><title>Claude Code Web</title><link>https://www.aitasks.io/docs/workflows/claude-web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/claude-web/</guid><description>&lt;p&gt;Claude Code Web is a browser-based Claude Code environment that operates with restricted git permissions — it can only push to its own implementation branch. It cannot access &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 directly. This guide covers the end-to-end workflow for running aitasks on Claude Code Web.&lt;/p&gt;
&lt;h2 id="standard-vs-claude-web-workflow"&gt;Standard vs Claude Web Workflow&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Step&lt;/th&gt;
 &lt;th&gt;Standard (local)&lt;/th&gt;
 &lt;th&gt;Claude Code Web&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1. Lock task&lt;/td&gt;
 &lt;td&gt;Automatic (during &lt;code&gt;/aitask-pick&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;Manual pre-lock from local machine&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2. Implement&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/aitask-pick&lt;/code&gt; — full branch access&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/aitask-pickweb&lt;/code&gt; — current branch only&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3. Archive&lt;/td&gt;
 &lt;td&gt;Automatic (during &lt;code&gt;/aitask-pick&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/aitask-web-merge&lt;/code&gt; — run locally after&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Standard workflow&lt;/strong&gt; handles everything in one session: lock → implement → commit → archive → push.&lt;/p&gt;</description></item><item><title>/aitask-refresh-code-models</title><link>https://www.aitasks.io/docs/skills/aitask-refresh-code-models/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-refresh-code-models/</guid><description>&lt;p&gt;Research the latest AI code agent models via web search and update the &lt;code&gt;models_*.json&lt;/code&gt; configuration files used by &lt;a href="../../commands/codeagent/"&gt;&lt;code&gt;ait codeagent&lt;/code&gt;&lt;/a&gt;.&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-refresh-code-models
&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 follows an 8-step workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Read current configs&lt;/strong&gt; — Loads all &lt;code&gt;aitasks/metadata/models_*.json&lt;/code&gt; files and &lt;code&gt;codeagent_config.json&lt;/code&gt; to identify current models and which are in use&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Select agents&lt;/strong&gt; — Choose which agents to refresh (Claude, Gemini, Codex, OpenCode, or all)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Research latest models&lt;/strong&gt; — Uses &lt;code&gt;WebSearch&lt;/code&gt; and &lt;code&gt;WebFetch&lt;/code&gt; against canonical documentation URLs to discover current model offerings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compare&lt;/strong&gt; — Categorizes each model as NEW, UPDATED, DEPRECATED?, or UNCHANGED by comparing web research against current config&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Present changes&lt;/strong&gt; — Displays a structured change report marking models that are in use&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update JSON files&lt;/strong&gt; — Applies approved changes to &lt;code&gt;models_*.json&lt;/code&gt; files. Syncs to &lt;code&gt;seed/&lt;/code&gt; if present&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify research URLs&lt;/strong&gt; — Checks that the documentation URLs used for research are still reachable (informational only)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Commit&lt;/strong&gt; — Commits updated model files via &lt;code&gt;./ait git&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="key-behaviors"&gt;Key Behaviors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Never auto-removes models&lt;/strong&gt; — Deprecated models are flagged but only removed with explicit user approval&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Preserves verification scores&lt;/strong&gt; — Existing &lt;code&gt;verified&lt;/code&gt; scores are never overwritten; new models start at zero&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seed sync&lt;/strong&gt; — If the &lt;code&gt;seed/&lt;/code&gt; directory exists, updated model files are copied there automatically&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graceful degradation&lt;/strong&gt; — If web research fails for a specific agent, the skill continues with remaining agents&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="model-naming-convention"&gt;Model Naming Convention&lt;/h2&gt;
&lt;p&gt;Model &lt;code&gt;name&lt;/code&gt; fields follow strict rules: lowercase only, underscores replace dots/hyphens, version numbers concatenated (e.g., Opus 4.6 → &lt;code&gt;opus4_6&lt;/code&gt;, Gemini 2.5 Pro → &lt;code&gt;gemini2_5pro&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>/aitask-add-model</title><link>https://www.aitasks.io/docs/skills/aitask-add-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-add-model/</guid><description>&lt;p&gt;Register a single, already-known code-agent model in the framework&amp;rsquo;s model registry and optionally promote it to default across &lt;code&gt;codeagent_config.json&lt;/code&gt;, the &lt;code&gt;seed/&lt;/code&gt; template, and the hardcoded &lt;code&gt;DEFAULT_AGENT_STRING&lt;/code&gt;. Companion to &lt;a href="../aitask-refresh-code-models/"&gt;&lt;code&gt;/aitask-refresh-code-models&lt;/code&gt;&lt;/a&gt;.&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-add-model
/aitask-add-model --agent claudecode --name opus4_7_1m --cli-id &amp;#39;claude-opus-4-7[1m]&amp;#39; --notes &amp;#34;1M context&amp;#34; --promote --promote-ops pick,explore,brainstorm-explorer
/aitask-add-model --dry-run ...
&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="when-to-use-this-skill"&gt;When to Use This Skill&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;/aitask-add-model&lt;/code&gt; when you already know the model you want to register — a vendor just announced it, or you&amp;rsquo;ve decided to promote a specific variant to default. Unlike &lt;a href="../aitask-refresh-code-models/"&gt;&lt;code&gt;/aitask-refresh-code-models&lt;/code&gt;&lt;/a&gt;, this skill skips web research and writes deterministic, per-invocation changes.&lt;/p&gt;</description></item><item><title>Verified scores</title><link>https://www.aitasks.io/docs/concepts/verified-scores/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/verified-scores/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;verified score&lt;/strong&gt; is a numeric rating attached to a (code agent, model, operation) triple — for example &amp;ldquo;claudecode/opus4_7 / implementation&amp;rdquo; or &amp;ldquo;geminicli/gemini-2.5-pro / code-review&amp;rdquo;. Every time a user completes a skill they are prompted for a 1-5 satisfaction rating; those ratings are stored, time-windowed (all-time / month / week), and aggregated into score buckets:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Bucket&lt;/th&gt;
 &lt;th&gt;Range&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Untested&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Partial&lt;/td&gt;
 &lt;td&gt;1-49&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Verified&lt;/td&gt;
 &lt;td&gt;50-79&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Highly verified&lt;/td&gt;
 &lt;td&gt;80-100&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Scores are surfaced in the &lt;a href="https://www.aitasks.io/docs/tuis/settings/"&gt;Settings TUI&lt;/a&gt; and on the model entry pages so you can see which agent/model combinations are reliable for which kinds of work in your project.&lt;/p&gt;</description></item><item><title>/aitask-reviewguide-classify</title><link>https://www.aitasks.io/docs/skills/aitask-reviewguide-classify/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-reviewguide-classify/</guid><description>&lt;p&gt;Classify a review guide file by assigning metadata and finding similar existing guides. This skill builds the metadata foundation that makes &lt;a href="../aitask-review/"&gt;&lt;code&gt;/aitask-review&lt;/code&gt;&lt;/a&gt; auto-detection work effectively.&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-reviewguide-classify security # Classify a specific guide (fuzzy match)
/aitask-reviewguide-classify # Batch: find and classify all incomplete 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;/blockquote&gt;
&lt;h2 id="step-by-step"&gt;Step-by-Step&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Single-file mode&lt;/strong&gt; (with argument):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Resolve file&lt;/strong&gt; — Fuzzy-matches the argument against markdown files in &lt;code&gt;aireviewguides/&lt;/code&gt;. If multiple matches, prompts for selection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyze content&lt;/strong&gt; — Reads the guide&amp;rsquo;s headings, bullets, and topics to determine what it reviews&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Assign metadata&lt;/strong&gt; — Proposes values for &lt;code&gt;reviewtype&lt;/code&gt; (single classification from vocabulary), &lt;code&gt;reviewlabels&lt;/code&gt; (3-6 topic tags), &lt;code&gt;environment&lt;/code&gt; (language/framework, or universal for &lt;code&gt;general/&lt;/code&gt; guides), and &lt;code&gt;similar_to&lt;/code&gt; (guides with overlapping coverage)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confirm and apply&lt;/strong&gt; — Shows proposed metadata for review. Options: apply as proposed, modify, or cancel. On apply, updates the frontmatter and commits&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Batch mode&lt;/strong&gt; (no argument):&lt;/p&gt;</description></item><item><title>Agent attribution</title><link>https://www.aitasks.io/docs/concepts/agent-attribution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/agent-attribution/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Agent attribution&lt;/strong&gt; is the per-task record of which code agent and model did the implementation. It surfaces in three places:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The task&amp;rsquo;s &lt;code&gt;implemented_with&lt;/code&gt; frontmatter field, written at the start of implementation in the form &lt;code&gt;&amp;lt;agent&amp;gt;/&amp;lt;model&amp;gt;&lt;/code&gt; — for example &lt;code&gt;claudecode/opus4_7_1m&lt;/code&gt;, &lt;code&gt;geminicli/gemini3pro&lt;/code&gt;, &lt;code&gt;codex/gpt5_4&lt;/code&gt;. The &lt;code&gt;&amp;lt;model&amp;gt;&lt;/code&gt; segment is the &lt;code&gt;name&lt;/code&gt; field from &lt;code&gt;aitasks/metadata/models_&amp;lt;agent&amp;gt;.json&lt;/code&gt;, not the raw runtime CLI ID.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Co-Authored-By:&lt;/code&gt; trailer appended to the implementation commit, naming the model with a project-configurable email domain.&lt;/li&gt;
&lt;li&gt;The verified-scores subsystem, which keys per-operation satisfaction ratings off the same &lt;code&gt;&amp;lt;agent&amp;gt;/&amp;lt;model&amp;gt;&lt;/code&gt; string.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;code&gt;&amp;lt;model&amp;gt;&lt;/code&gt; segment is a normalized short ID resolved from the agent&amp;rsquo;s runtime model — Claude Code reads it from its system message, Codex CLI from &lt;code&gt;~/.codex/config.toml&lt;/code&gt;, Gemini CLI from &lt;code&gt;~/.gemini/settings.json&lt;/code&gt;, and OpenCode from its system context. A wrapper-set &lt;code&gt;AITASK_AGENT_STRING&lt;/code&gt; environment variable overrides self-detection when present.&lt;/p&gt;</description></item><item><title>Releases Workflow</title><link>https://www.aitasks.io/docs/workflows/releases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/releases/</guid><description>&lt;p&gt;Documenting what changed in a new release is one of the most tedious tasks in software development. The aitasks framework solves this by turning your regular development work into the raw material for release notes. Every commit message carries a task ID &lt;code&gt;(tNN)&lt;/code&gt;, and every completed task has an archived plan file with &amp;ldquo;Final Implementation Notes.&amp;rdquo; The &lt;a href="../../skills/aitask-changelog/"&gt;&lt;code&gt;/aitask-changelog&lt;/code&gt;&lt;/a&gt; skill harvests this data and uses AI to generate user-facing release notes automatically.&lt;/p&gt;</description></item><item><title>/aitask-reviewguide-merge</title><link>https://www.aitasks.io/docs/skills/aitask-reviewguide-merge/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-reviewguide-merge/</guid><description>&lt;p&gt;Compare two similar review guide files and decide whether to merge them, deduplicate shared content, or keep them separate. This skill keeps the review guide library clean and free of redundant checks.&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-reviewguide-merge security perf # Compare two specific guides (fuzzy match)
/aitask-reviewguide-merge security # Compare a guide with its similar_to target
/aitask-reviewguide-merge # Batch: find and process all similar pairs
&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>Revert Changes with AI</title><link>https://www.aitasks.io/docs/workflows/revert-changes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/workflows/revert-changes/</guid><description>&lt;p&gt;AI-assisted development makes it easy to add features quickly — but not every feature survives contact with real usage. Some experiments don&amp;rsquo;t pan out, some features add more complexity than value, and sometimes you want to undo part of a large change while keeping the rest. The &lt;a href="../../skills/aitask-revert/"&gt;&lt;code&gt;/aitask-revert&lt;/code&gt;&lt;/a&gt; skill handles all of this at a higher level than raw &lt;code&gt;git revert&lt;/code&gt;, creating structured revert tasks with full traceability.&lt;/p&gt;
&lt;h2 id="when-to-use"&gt;When to Use&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature bloat&lt;/strong&gt; — A completed feature adds unnecessary complexity and you want to remove it cleanly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Failed experiments&lt;/strong&gt; — A prototype or experimental feature didn&amp;rsquo;t work out and should be rolled back&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partial cleanup&lt;/strong&gt; — A large task introduced changes across multiple areas, but only some need to be undone&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post-prototyping&lt;/strong&gt; — After rapid prototyping, you want to remove scaffolding or temporary code while keeping the core implementation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependency simplification&lt;/strong&gt; — A feature introduced dependencies or patterns that turned out to be overkill&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-it-works"&gt;How It Works&lt;/h2&gt;
&lt;p&gt;The revert workflow follows five stages:&lt;/p&gt;</description></item><item><title>/aitask-reviewguide-import</title><link>https://www.aitasks.io/docs/skills/aitask-reviewguide-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/aitask-reviewguide-import/</guid><description>&lt;p&gt;Import external content — a local file, a URL, or a GitHub repository directory — and transform it into a structured review guide with proper metadata. This skill converts coding standards, best practices documents, and style guides into actionable review checklists.&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-reviewguide-import ./standards.md # Import a local file
/aitask-reviewguide-import https://example.com/guidelines # Import from a URL
/aitask-reviewguide-import https://github.com/org/repo/blob/main/docs/style.md # GitHub file
/aitask-reviewguide-import https://github.com/org/repo/tree/main/docs/guides/ # GitHub directory (batch)
&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>Git branching model</title><link>https://www.aitasks.io/docs/concepts/git-branching-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/git-branching-model/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;aitasks splits the repository across several long-lived branches:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Branch&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;main&lt;/code&gt; (or your code branch)&lt;/td&gt;
 &lt;td&gt;Source code only — no &lt;code&gt;aitasks/&lt;/code&gt; or &lt;code&gt;aiplans/&lt;/code&gt; content.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitask-data&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;All task and plan files. Checked out as a worktree at &lt;code&gt;.aitask-data/&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitask-locks&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Atomic task locks (one commit per lock acquire / release).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;aitask-ids&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Reservation log used to allocate fresh task IDs without collisions.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;aitasks/&lt;/code&gt; and &lt;code&gt;aiplans/&lt;/code&gt; at the project root are &lt;strong&gt;symlinks&lt;/strong&gt; into the &lt;code&gt;.aitask-data/&lt;/code&gt; worktree, so they appear in the usual places but actually live on &lt;code&gt;aitask-data&lt;/code&gt;. The &lt;code&gt;./ait git&lt;/code&gt; wrapper routes git commands to the correct worktree based on the paths you pass — &lt;code&gt;./ait git add aitasks/t42_foo.md&lt;/code&gt; operates on &lt;code&gt;aitask-data&lt;/code&gt;, &lt;code&gt;git add src/foo.py&lt;/code&gt; operates on &lt;code&gt;main&lt;/code&gt;, and the two are committed independently.&lt;/p&gt;</description></item><item><title>Verified Scores</title><link>https://www.aitasks.io/docs/skills/verified-scores/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/skills/verified-scores/</guid><description>&lt;p&gt;Verified scores track how well each LLM model performs for each skill operation. After a skill completes, users rate the result on a 1&amp;ndash;5 scale; these ratings accumulate into per-model, per-operation scores that help choose the best model for a given task.&lt;/p&gt;
&lt;h2 id="how-scores-are-collected"&gt;How Scores Are Collected&lt;/h2&gt;
&lt;p&gt;At the end of each skill run, the workflow prompts:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;How well did this skill work? (Rate 1&amp;ndash;5, helps improve model selection)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The raw rating maps to a 20&amp;ndash;100 internal scale (1 → 20, 2 → 40, 3 → 60, 4 → 80, 5 → 100). Each rating updates the running average for the current model and operation.&lt;/p&gt;</description></item><item><title>The IDE model</title><link>https://www.aitasks.io/docs/concepts/ide-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/ide-model/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;The aitasks &lt;strong&gt;IDE&lt;/strong&gt; is a tmux session organized by &lt;strong&gt;window-naming convention&lt;/strong&gt;, not a fixed layout. The framework reserves a small set of window names — &lt;code&gt;monitor&lt;/code&gt;, &lt;code&gt;board&lt;/code&gt;, &lt;code&gt;codebrowser&lt;/code&gt;, &lt;code&gt;settings&lt;/code&gt;, &lt;code&gt;brainstorm&lt;/code&gt;, plus an &lt;code&gt;agent-&amp;lt;n&amp;gt;&lt;/code&gt; prefix for code agent windows — and the integrated TUIs all look up tmux windows by these names. Open, close, rearrange, or split them however you like; what matters is the name.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.aitasks.io/docs/tuis/monitor/"&gt;Monitor TUI&lt;/a&gt; acts as the conventional home screen, listing every code agent and TUI window in the session with a live preview and keystroke forwarding. Pressing &lt;strong&gt;&lt;code&gt;j&lt;/code&gt;&lt;/strong&gt; in any main TUI opens the &lt;strong&gt;TUI switcher&lt;/strong&gt; dialog, which lists every integrated TUI plus every running code agent window — selecting an entry either focuses the existing window (looked up by name) or spawns it on the fly. A narrow &lt;a href="https://www.aitasks.io/docs/tuis/minimonitor/"&gt;Minimonitor sidebar&lt;/a&gt; variant of monitor can sit next to a code agent pane to keep sibling activity visible without giving up screen real estate.&lt;/p&gt;</description></item><item><title>Agent memory</title><link>https://www.aitasks.io/docs/concepts/agent-memory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/concepts/agent-memory/</guid><description>&lt;h2 id="what-it-is"&gt;What it is&lt;/h2&gt;
&lt;p&gt;Once a task is archived, its task file moves to &lt;code&gt;aitasks/archived/&lt;/code&gt; and its plan file — including the post-implementation notes — moves to &lt;code&gt;aiplans/archived/&lt;/code&gt;. Together they form a structured, version-controlled record of every change ever made through the framework, linked back to the commits that implemented them. The framework treats this archive as &lt;strong&gt;agent memory&lt;/strong&gt;: a queryable corpus that subsequent agent sessions read instead of re-deriving context from scratch.&lt;/p&gt;</description></item></channel></rss>