<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>開發流程 on Tarragon</title><link>https://tarrragon.github.io/blog/tags/%E9%96%8B%E7%99%BC%E6%B5%81%E7%A8%8B/</link><description>Recent content in 開發流程 on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/%E9%96%8B%E7%99%BC%E6%B5%81%E7%A8%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>5W1H 自覺決策方法論：系統化決策框架</title><link>https://tarrragon.github.io/blog/record/5w1h-%E8%87%AA%E8%A6%BA%E6%B1%BA%E7%AD%96%E6%96%B9%E6%B3%95%E8%AB%96%E7%B3%BB%E7%B5%B1%E5%8C%96%E6%B1%BA%E7%AD%96%E6%A1%86%E6%9E%B6/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/record/5w1h-%E8%87%AA%E8%A6%BA%E6%B1%BA%E7%AD%96%E6%96%B9%E6%B3%95%E8%AB%96%E7%B3%BB%E7%B5%B1%E5%8C%96%E6%B1%BA%E7%AD%96%E6%A1%86%E6%9E%B6/</guid><description>&lt;p>和 AI 協作開發的早期，我們遇到一個讓人沮喪的問題：相同的功能一再被重複實作。某個模組已經有 &lt;code>BookValidator&lt;/code>，但另一個任務裡 AI 又建了一個新驗證類別，因為它沒先問「這功能是否已存在？」更糟的是，遇到棘手問題時，我們（包括 AI）會下意識找「簡單的方法」迴避難題，用臨時解法掩蓋設計缺陷。&lt;/p>
&lt;p>這才建立了 5W1H 自覺決策方法論：在建立任何任務之前，必須強制回答六個問題。不是「可以回答」，而是「必須回答」，任何一個缺失都阻止任務建立。&lt;/p></description><content:encoded><![CDATA[<p>和 AI 協作開發的早期，我們遇到一個讓人沮喪的問題：相同的功能一再被重複實作。某個模組已經有 <code>BookValidator</code>，但另一個任務裡 AI 又建了一個新驗證類別，因為它沒先問「這功能是否已存在？」更糟的是，遇到棘手問題時，我們（包括 AI）會下意識找「簡單的方法」迴避難題，用臨時解法掩蓋設計缺陷。</p>
<p>這才建立了 5W1H 自覺決策方法論：在建立任何任務之前，必須強制回答六個問題。不是「可以回答」，而是「必須回答」，任何一個缺失都阻止任務建立。</p>
<h2 id="為什麼直覺判斷不夠用">為什麼直覺判斷不夠用</h2>
<p>直覺判斷的門檻太低。任何模糊的想法都可能直接變成任務被付諸實作，等發現重複了或架構位置錯了，才知道白花了時間。</p>
<p>5W1H 框架在任務建立的那一刻設置強制思考關卡。只有通過六個問題，任務才能被建立。</p>
<h2 id="六個問題六個層次的自覺">六個問題，六個層次的自覺</h2>
<h3 id="who責任歸屬防止重複實作">Who：責任歸屬，防止重複實作</h3>
<p>Who 問的不只是「誰來做」，更重要的是「有沒有人已經做過了」。在我們的協作模式中，Who 必須明確標記執行者和分派者兩個角色，格式如：「<code>parsley-flutter-developer</code>（執行者）由 <code>rosemary-project-manager</code>（分派者）分派」。</p>
<p>這個格式強制一個邊界：主線程不應自己寫程式碼，職責是設計任務、分派任務、驗收結果。如果任務標記為主線程執行但類型是程式碼實作，系統直接阻止。</p>
<p>執行 Who 前要先做四步檢查：搜尋現有 Domain 是否有相同功能，確認既有 Service 是否已實作，查看測試覆蓋是否涵蓋，最後才決定是重用還是新建。Domain 中已有相同功能就禁止新建，責任不明就禁止執行。這兩條規則消滅了大部分重複實作。</p>
<h3 id="what功能定義單一職責的守門員">What：功能定義，單一職責的守門員</h3>
<p>What 要求明確說出具體的輸入輸出、業務行為和異常處理。合格的 What 必須能一句話描述完且無法再拆分。</p>
<p>「書籍處理——包含驗證、儲存、查詢等」不合格。「驗證輸入字串是否符合 ISBN-10 或 ISBN-13 格式，輸入 <code>String isbn</code>，輸出 <code>ValidationResult</code>，空字串拋出 <code>ValidationError</code>」才是。</p>
<p>職責不清就禁止執行，與既有功能重疊就整合，包含多個不相關職責就拆分。</p>
<h3 id="when觸發時機副作用要完整識別">When：觸發時機，副作用要完整識別</h3>
<p>When 要求明確說出觸發事件，不是「書籍資料需要驗證的時候」，而是「使用者完成 ISBN 條碼掃描，觸發 <code>ISBNScannedEvent</code>，副作用包含觸發書籍資訊查詢和更新 UI 狀態，整合到 <code>ScanTask</code> 聚合根的事件系統」。</p>
<p>副作用未識別是 When 的紅線。連鎖反應沒有提前想清楚，後來就是難以追蹤的 bug。</p>
<h3 id="where架構位置確保層級正確">Where：架構位置，確保層級正確</h3>
<p>Where 決定功能在 Clean Architecture 中的位置。不是「在需要的地方執行」，而是「Domain Layer，<code>BookValidator</code> 位於 <code>Book Aggregate</code>，由 <code>AddBookUseCase</code> 呼叫，呼叫路徑是 UI → UseCase → Domain → Validator」。</p>
<p>位置錯誤就重新定位，不能為了方便就地執行。跨層級混亂就重新架構，不妥協。</p>
<h3 id="why動機驗證識別逃避性開發">Why：動機驗證，識別逃避性開發</h3>
<p>Why 是六個問題中最重要的，因為它直接對抗最常見的開發陷阱——逃避。</p>
<p>合格的 Why 必須有需求文件編號，能說明具體的使用者價值和場景。「系統需要更多驗證」不合格，它沒有需求依據，而且可能只是為了逃避更難的問題。</p>
<p>遇到這些語言會立即阻止：「先做簡單的」（逃避複雜問題）、「順便加個功能」（缺乏需求）、「優化一下效能」（可能在迴避功能問題）。</p>
<h3 id="how實作策略任務類型的強制標記">How：實作策略，任務類型的強制標記</h3>
<p>How 要求明確實作策略，並強制標記任務類型，格式是 <code>[Task Type: XXX]</code>。六種類型：Implementation（程式碼實作，必須由執行代理人執行）、Dispatch（任務分派，主線程執行）、Review（驗收，主線程執行）、Documentation、Analysis、Planning。</p>
<p>這個標記讓 Who 和 How 的合規性可以被自動檢查：How 標記為 Implementation 但執行者是主線程，系統直接阻止；Dispatch 類型的任務執行者是代理人，同樣阻止。</p>
<p>「先建立基本功能之後再加測試」是直接違規，任何臨時解法都禁止。</p>
<h2 id="who-和-how-的聯動檢查">Who 和 How 的聯動檢查</h2>
<p>正確組合：Implementation 搭配執行代理人，Dispatch/Review 搭配主線程。違規組合：Implementation 搭配主線程（主線程不應寫程式碼），Dispatch 搭配代理人，缺少執行者/分派者標記。</p>
<p>這個機制解決了一個真實痛點：主線程在時間壓力下直接修改程式碼，繞過代理人執行的設計。有了 How 的任務類型標記和 Who 的格式要求，這種行為在任務建立階段就被攔截。</p>
<h2 id="逃避語言清單">逃避語言清單</h2>
<p>框架持續更新一份逃避語言清單，分五類：</p>
<ul>
<li>品質妥協：「太複雜」「先將就」「暫時性修正」「症狀緩解」、&ldquo;workaround&rdquo;、&ldquo;hack&rdquo;、&ldquo;quick fix&rdquo;</li>
<li>簡化妥協：「更簡單的方法」「簡化處理」——通常意味著在迴避真正的設計問題</li>
<li>擱置問題：「架構問題先不管」「技術債務之後處理」——發現了卻不解決，最危險</li>
<li>測試妥協：「簡化測試」「基本測試即可」</li>
<li>模糊詞彙：沒有具體指標的「優化」「自動」</li>
</ul>
<p>偵測到任何逃避語言，系統立即阻止並要求修正。</p>
<h2 id="hook-系統讓規則有牙齒">Hook 系統：讓規則有牙齒</h2>
<p>框架的執行依賴 Hook 系統。TodoWrite 工具使用前，Hook 檢查 5W1H 完整性；任何一個 W 或 H 缺失，操作立即阻止；發現逃避語言，進入修復模式。</p>
<p>修復機制：阻止操作 → 明確說明缺失哪個項目 → 要求補充 → 再次驗證。</p>
<h2 id="這個框架改變了什麼">這個框架改變了什麼</h2>
<p>最明顯的感受是對話品質變了。以前任務可能只有「實作書籍驗證功能」；現在必須帶著完整的 Who（誰來做、是否已存在）、What（具體輸入輸出）、When（何時觸發、有哪些副作用）、Where（架構層）、Why（需求來源）、How（任務類型和策略）才能被建立。</p>
<p>很多模糊的想法在回答六個問題的過程中就自然消失了——它們根本過不了關。</p>]]></content:encoded></item><item><title>TDD-Ticket 整合方法論 - 測試驅動開發與任務追蹤的無縫銜接</title><link>https://tarrragon.github.io/blog/record/tdd-ticket-%E6%95%B4%E5%90%88%E6%96%B9%E6%B3%95%E8%AB%96-%E6%B8%AC%E8%A9%A6%E9%A9%85%E5%8B%95%E9%96%8B%E7%99%BC%E8%88%87%E4%BB%BB%E5%8B%99%E8%BF%BD%E8%B9%A4%E7%9A%84%E7%84%A1%E7%B8%AB%E9%8A%9C%E6%8E%A5/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/record/tdd-ticket-%E6%95%B4%E5%90%88%E6%96%B9%E6%B3%95%E8%AB%96-%E6%B8%AC%E8%A9%A6%E9%A9%85%E5%8B%95%E9%96%8B%E7%99%BC%E8%88%87%E4%BB%BB%E5%8B%99%E8%BF%BD%E8%B9%A4%E7%9A%84%E7%84%A1%E7%B8%AB%E9%8A%9C%E6%8E%A5/</guid><description>&lt;p>有一段時間，我們的開發流程有個裂縫。&lt;/p>
&lt;p>TDD 走得好好的：Phase 1 設計介面，Phase 2 寫測試規格，Phase 3 實作，Phase 4 重構評估。Ticket 系統也運作正常：建立、認領、完成、歸檔。但這兩套系統各走各的路。結果是開發者在 Phase 3 開始實作時，才發現手上的任務其實包含三件事。或者更糟：沒發現，就這樣把三件事塞進一個 Ticket 完成了。&lt;/p></description><content:encoded><![CDATA[<p>有一段時間，我們的開發流程有個裂縫。</p>
<p>TDD 走得好好的：Phase 1 設計介面，Phase 2 寫測試規格，Phase 3 實作，Phase 4 重構評估。Ticket 系統也運作正常：建立、認領、完成、歸檔。但這兩套系統各走各的路。結果是開發者在 Phase 3 開始實作時，才發現手上的任務其實包含三件事。或者更糟：沒發現，就這樣把三件事塞進一個 Ticket 完成了。</p>
<p>問題根源很清楚：Ticket 設計決策沒有固定時間點，也沒有固定標準。有人在需求進來時就設計 Ticket，有人在 Phase 1 結束後，有人在開始實作前隨手建一個。技術債務藏在職責混亂的 Ticket 裡，等到 Phase 4 才浮出水面，代價已經翻了好幾倍。</p>
<p>解決方案不複雜，但需要紀律：把 Ticket 設計決策集中到 Phase 3a，只用一套固定標準來判斷。</p>
<h2 id="phase-3a-是唯一的決策點">Phase 3a 是唯一的決策點</h2>
<p>第一條規則：Ticket 設計決策只在 Phase 3a 進行。</p>
<p>Phase 1 專注功能設計，Phase 2 專注測試設計，這時候分心去設計 Ticket 結構反而干擾品質。等到 Phase 3a，手上已經有完整的測試規格，此時問「這個任務需不需要拆分」才有足夠資訊，而且判斷結果會直接影響 Phase 3b 的執行方式——決策和執行緊密相連。</p>
<p>Phase 3b 按 Phase 3a 的評估結果執行，Phase 4 做跨 Ticket 的重構評估，但不新增 Ticket。</p>
<h2 id="丟掉量化指標">丟掉量化指標</h2>
<p>用什麼標準判斷要不要拆分？</p>
<p>過去常見做法是量化估計：修改幾個檔案？幾個測試案例？這些數字看起來有根據，用起來卻不可靠。</p>
<p>一個修改 10 個檔案的任務，如果全都是針對同一件事（把某個 API 改名，所有用到它的地方跟著更新），那就是原子任務，不需要拆分。反過來，只改 2 個檔案，如果同時做「驗證邏輯」和「效能最佳化」，就該拆成兩個。</p>
<p>工作量大小和職責數量不是同一件事。</p>
<h2 id="四大檢查唯一的評估標準">四大檢查：唯一的評估標準</h2>
<p>四個問題，確認同一件事：這個任務是不是只做一件事？</p>
<p><strong>語義檢查</strong>：能用「動詞 + 單一目標」描述嗎？「實作 startScan() 方法」通過，「實作掃描功能和離線支援」不通過。有時候任務的問題在名字上就看得出來。</p>
<p><strong>修改原因檢查</strong>：這個任務只有一個修改原因嗎？來自 SRP 的概念，搬到 Ticket 層次：如果這個 Ticket 將來需要修改，觸發修改的原因只有一個嗎？同時受到「API 規格變更」和「離線儲存格式變更」影響的，就是兩個修改原因，應該拆開。這樣 API 改變時，只需要動一個 Ticket。</p>
<p><strong>驗收一致性檢查</strong>：所有驗收條件都指向同一個目標嗎？驗收清單同時包含「startScan() 通過測試」、「stopScan() 通過測試」、「離線快取功能正常」，這個 Ticket 在追求三個目標，需要拆分。</p>
<p><strong>依賴獨立性檢查</strong>：拆分後的部分之間會不會產生循環依賴？有時候兩件事看起來應該分開，但 Ticket A 的實作需要 Ticket B 完成，Ticket B 又需要 Ticket A 完成——這種情況保持為同一個 Ticket 才對。</p>
<p>決策邏輯直接：四項全部通過就繼續執行，任何一項未通過就拆分。不確定的預設為未通過。過度拆分的代價，遠低於讓職責混亂的任務進入實作。</p>
<h2 id="不確定時選擇拆分">不確定時，選擇拆分</h2>
<p>這條原則違反一些人的直覺：任務感覺稍微大了一點，但四大檢查又沒有明確說要拆，這時候怎麼辦？</p>
<p>拆。</p>
<p>原因是非對稱性。拆了但其實不需要拆，代價是多幾個 Ticket、多一些追蹤開銷。沒拆但其實應該拆，代價是職責混亂的實作、測試難以隔離、Phase 4 牽一髮動全身。後者的代價明顯更高。</p>
<h2 id="拆分之後">拆分之後</h2>
<p>判定需要拆分，Phase 3a 的工作是把任務分解成多個各自通過四大檢查的 Atomic Ticket，並建立它們之間的依賴關係（哪個必須先完成，哪些可以並行）。</p>
<p>規劃結果記錄到工作日誌，PM 審核確認後按 Wave 順序執行——有依賴的先完成，無依賴的並行。每個 Ticket 完成後立即 Review，不等全部完成再回頭看。</p>
<p>一個細節：拆分出來的每個 Ticket 本身也要通過四大檢查。如果某個拆出來的 Ticket 還是不通過，繼續拆。</p>
<h2 id="在實作中發現需要拆分">在實作中發現需要拆分</h2>
<p>有時 Phase 3a 評估沒問題，但 Phase 3b 實作途中才發現任務包含多個職責——這表示 Phase 3a 有遺漏。</p>
<p>正確做法：停下來，回到 Phase 3a 重新評估，拆分，從拆分後的第一個 Ticket 重新開始。</p>
<p>這聽起來很傷，但繼續實作一個已知職責混亂的任務，只是在未來製造更大的麻煩。</p>
<h2 id="積極派發子任務">積極派發子任務</h2>
<p>實作中遇到預期外的情況：發現新問題需要調查、範圍比預期大、需要做技術決策——原則是積極建立子任務，不要在一個 Ticket 裡處理所有事情。</p>
<p>目的是保持可追蹤性。每個被處理的問題都有對應的 Ticket，日後審查開發歷程時，能清楚看到每個決策的前因後果。</p>
<h2 id="整合之後">整合之後</h2>
<p>整合後得到的不只是更整齊的任務管理。Phase 3b 的開發者拿到手的每個任務都是職責明確的，不需要在實作途中自己判斷「這個應不應該一起做」。Phase 4 的重構評估也更聚焦，每個 Ticket 邊界清晰，影響範圍好估計。</p>
<p>這套整合需要紀律——Phase 3a 的四大檢查不是走過場，決策如果散落在各個階段，整合就失去意義。</p>
<p>但兩套系統會相互強化：好的 Ticket 設計讓 TDD 執行更流暢，嚴格的 TDD 流程讓 Ticket 的職責判斷更有依據。</p>]]></content:encoded></item><item><title>Ticket 生命週期流程 - AI 協作開發的任務管理系統</title><link>https://tarrragon.github.io/blog/record/ticket-%E7%94%9F%E5%91%BD%E9%80%B1%E6%9C%9F%E6%B5%81%E7%A8%8B-ai-%E5%8D%94%E4%BD%9C%E9%96%8B%E7%99%BC%E7%9A%84%E4%BB%BB%E5%8B%99%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/record/ticket-%E7%94%9F%E5%91%BD%E9%80%B1%E6%9C%9F%E6%B5%81%E7%A8%8B-ai-%E5%8D%94%E4%BD%9C%E9%96%8B%E7%99%BC%E7%9A%84%E4%BB%BB%E5%8B%99%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1/</guid><description>&lt;p>本文件定義 Ticket 從建立到完成的完整生命週期。這套系統是我在 AI 協作開發（Claude Code）過程中逐步建立的任務追蹤機制。&lt;/p>
&lt;h2 id="生命週期總覽">生命週期總覽&lt;/h2>





&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="ln"> 1&lt;/span>&lt;span class="cl">需求/問題產生
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 2&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 3&lt;/span>&lt;span class="cl"> v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 4&lt;/span>&lt;span class="cl">建立 Ticket (/ticket create)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 5&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 6&lt;/span>&lt;span class="cl"> v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 7&lt;/span>&lt;span class="cl">Ticket 狀態: pending
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 8&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln"> 9&lt;/span>&lt;span class="cl"> v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">10&lt;/span>&lt;span class="cl">認領 Ticket (/ticket track claim)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">11&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">12&lt;/span>&lt;span class="cl"> v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">13&lt;/span>&lt;span class="cl">Ticket 狀態: in_progress
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">14&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">15&lt;/span>&lt;span class="cl"> +-- 正常完成 --&amp;gt; /ticket track complete --&amp;gt; 狀態: completed
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">16&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">17&lt;/span>&lt;span class="cl"> +-- 無法繼續 --&amp;gt; /ticket track release --&amp;gt; 狀態: blocked
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">18&lt;/span>&lt;span class="cl"> | |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">19&lt;/span>&lt;span class="cl"> | v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">20&lt;/span>&lt;span class="cl"> | 升級到 PM 處理
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">21&lt;/span>&lt;span class="cl"> |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">22&lt;/span>&lt;span class="cl"> v
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">23&lt;/span>&lt;span class="cl">完成&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>這套系統的核心目標是將任務需求有邏輯地拆分拆細。任務進來後先分析，拆分成平行的子任務；子任務若仍太大，可繼續往下切分。執行時從最底層開始，完成後檢查平行任務，再往上驗收父任務，直到整個任務鏈完成。&lt;/p>
&lt;p>任務拆小的好處：降低執行時的認知負擔，也讓驗收檢查更容易發現疏失。&lt;/p>
&lt;h2 id="ticket-狀態定義">Ticket 狀態定義&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>狀態&lt;/th>
 &lt;th>說明&lt;/th>
 &lt;th>允許操作&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>pending&lt;/td>
 &lt;td>等待處理&lt;/td>
 &lt;td>claim&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>in_progress&lt;/td>
 &lt;td>處理中&lt;/td>
 &lt;td>complete, release&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>completed&lt;/td>
 &lt;td>已完成&lt;/td>
 &lt;td>-&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>blocked&lt;/td>
 &lt;td>被阻塞&lt;/td>
 &lt;td>claim（重新認領）&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="階段-標準流程對照表">階段-標準流程對照表&lt;/h2>
&lt;p>每個生命週期階段都有對應的標準流程和提示，防止關鍵步驟被遺漏。&lt;/p>
&lt;h3 id="建立階段">建立階段&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>標準流程&lt;/th>
 &lt;th>提示強度&lt;/th>
 &lt;th>說明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>SA 前置審查評估&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>新功能/架構變更時需要 SA 審查&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>任務拆分評估&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>認知負擔 &amp;gt; 10 時需要拆分&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>驗收條件 4V 檢查&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>確保驗收條件可驗證、可量化、可追溯、可記錄&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>blockedBy 設定&lt;/td>
 &lt;td>提示&lt;/td>
 &lt;td>提醒設定依賴關係&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>decision_tree_path 填寫&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>派發驗證必需&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="認領階段">認領階段&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>標準流程&lt;/th>
 &lt;th>提示強度&lt;/th>
 &lt;th>說明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>阻塞依賴檢查&lt;/td>
 &lt;td>警告&lt;/td>
 &lt;td>如有阻塞依賴，顯示警告&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>設計文件閱讀&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>提醒閱讀相關規格和設計&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>驗收條件理解&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>確保理解驗收標準&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>error-patterns 查詢&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>IMP/ADJ 類型時建議查詢&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="執行階段">執行階段&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>標準流程&lt;/th>
 &lt;th>提示強度&lt;/th>
 &lt;th>說明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>問題派發 incident-responder&lt;/td>
 &lt;td>強制&lt;/td>
 &lt;td>遇到錯誤時強制派發&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>工作日誌更新&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>執行過程記錄&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="完成階段">完成階段&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>標準流程&lt;/th>
 &lt;th>提示強度&lt;/th>
 &lt;th>說明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>驗收條件勾選確認&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>所有條件必須勾選&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>建議處理確認&lt;/td>
 &lt;td>建議&lt;/td>
 &lt;td>無 pending 建議&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>派發 acceptance-auditor&lt;/td>
 &lt;td>強制&lt;/td>
 &lt;td>IMP/ADJ 類型必須執行驗收&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>任務鏈後續步驟建議&lt;/td>
 &lt;td>提示&lt;/td>
 &lt;td>分析並建議下一個 Ticket&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="驗收後階段">驗收後階段&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>標準流程&lt;/th>
 &lt;th>目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>技術債務記錄&lt;/td>
 &lt;td>將執行過程中發現的技術債務正式記錄，避免遺忘&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>CHANGELOG 更新&lt;/td>
 &lt;td>在版本發布時更新變更日誌，維護版本歷史的完整性&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>學習經驗記錄&lt;/td>
 &lt;td>萃取任務中的學習經驗，建構團隊知識網絡&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>任務鏈進度更新&lt;/td>
 &lt;td>追蹤整體任務鏈完成度，便於掌握專案整體進度&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="任務鏈後續步驟建議">任務鏈後續步驟建議&lt;/h2>
&lt;p>當 Ticket 完成時，系統會自動分析任務鏈狀態並建議下一步。&lt;/p></description><content:encoded><![CDATA[<p>本文件定義 Ticket 從建立到完成的完整生命週期。這套系統是我在 AI 協作開發（Claude Code）過程中逐步建立的任務追蹤機制。</p>
<h2 id="生命週期總覽">生命週期總覽</h2>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">需求/問題產生
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    v
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">建立 Ticket (/ticket create)
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">    v
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">Ticket 狀態: pending
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    v
</span></span><span class="line"><span class="ln">10</span><span class="cl">認領 Ticket (/ticket track claim)
</span></span><span class="line"><span class="ln">11</span><span class="cl">    |
</span></span><span class="line"><span class="ln">12</span><span class="cl">    v
</span></span><span class="line"><span class="ln">13</span><span class="cl">Ticket 狀態: in_progress
</span></span><span class="line"><span class="ln">14</span><span class="cl">    |
</span></span><span class="line"><span class="ln">15</span><span class="cl">    +-- 正常完成 --&gt; /ticket track complete --&gt; 狀態: completed
</span></span><span class="line"><span class="ln">16</span><span class="cl">    |
</span></span><span class="line"><span class="ln">17</span><span class="cl">    +-- 無法繼續 --&gt; /ticket track release --&gt; 狀態: blocked
</span></span><span class="line"><span class="ln">18</span><span class="cl">    |                                              |
</span></span><span class="line"><span class="ln">19</span><span class="cl">    |                                              v
</span></span><span class="line"><span class="ln">20</span><span class="cl">    |                                         升級到 PM 處理
</span></span><span class="line"><span class="ln">21</span><span class="cl">    |
</span></span><span class="line"><span class="ln">22</span><span class="cl">    v
</span></span><span class="line"><span class="ln">23</span><span class="cl">完成</span></span></code></pre></div><p>這套系統的核心目標是將任務需求有邏輯地拆分拆細。任務進來後先分析，拆分成平行的子任務；子任務若仍太大，可繼續往下切分。執行時從最底層開始，完成後檢查平行任務，再往上驗收父任務，直到整個任務鏈完成。</p>
<p>任務拆小的好處：降低執行時的認知負擔，也讓驗收檢查更容易發現疏失。</p>
<h2 id="ticket-狀態定義">Ticket 狀態定義</h2>
<table>
  <thead>
      <tr>
          <th>狀態</th>
          <th>說明</th>
          <th>允許操作</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>pending</td>
          <td>等待處理</td>
          <td>claim</td>
      </tr>
      <tr>
          <td>in_progress</td>
          <td>處理中</td>
          <td>complete, release</td>
      </tr>
      <tr>
          <td>completed</td>
          <td>已完成</td>
          <td>-</td>
      </tr>
      <tr>
          <td>blocked</td>
          <td>被阻塞</td>
          <td>claim（重新認領）</td>
      </tr>
  </tbody>
</table>
<h2 id="階段-標準流程對照表">階段-標準流程對照表</h2>
<p>每個生命週期階段都有對應的標準流程和提示，防止關鍵步驟被遺漏。</p>
<h3 id="建立階段">建立階段</h3>
<table>
  <thead>
      <tr>
          <th>標準流程</th>
          <th>提示強度</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>SA 前置審查評估</td>
          <td>建議</td>
          <td>新功能/架構變更時需要 SA 審查</td>
      </tr>
      <tr>
          <td>任務拆分評估</td>
          <td>建議</td>
          <td>認知負擔 &gt; 10 時需要拆分</td>
      </tr>
      <tr>
          <td>驗收條件 4V 檢查</td>
          <td>建議</td>
          <td>確保驗收條件可驗證、可量化、可追溯、可記錄</td>
      </tr>
      <tr>
          <td>blockedBy 設定</td>
          <td>提示</td>
          <td>提醒設定依賴關係</td>
      </tr>
      <tr>
          <td>decision_tree_path 填寫</td>
          <td>建議</td>
          <td>派發驗證必需</td>
      </tr>
  </tbody>
</table>
<h3 id="認領階段">認領階段</h3>
<table>
  <thead>
      <tr>
          <th>標準流程</th>
          <th>提示強度</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>阻塞依賴檢查</td>
          <td>警告</td>
          <td>如有阻塞依賴，顯示警告</td>
      </tr>
      <tr>
          <td>設計文件閱讀</td>
          <td>建議</td>
          <td>提醒閱讀相關規格和設計</td>
      </tr>
      <tr>
          <td>驗收條件理解</td>
          <td>建議</td>
          <td>確保理解驗收標準</td>
      </tr>
      <tr>
          <td>error-patterns 查詢</td>
          <td>建議</td>
          <td>IMP/ADJ 類型時建議查詢</td>
      </tr>
  </tbody>
</table>
<h3 id="執行階段">執行階段</h3>
<table>
  <thead>
      <tr>
          <th>標準流程</th>
          <th>提示強度</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>問題派發 incident-responder</td>
          <td>強制</td>
          <td>遇到錯誤時強制派發</td>
      </tr>
      <tr>
          <td>工作日誌更新</td>
          <td>建議</td>
          <td>執行過程記錄</td>
      </tr>
  </tbody>
</table>
<h3 id="完成階段">完成階段</h3>
<table>
  <thead>
      <tr>
          <th>標準流程</th>
          <th>提示強度</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>驗收條件勾選確認</td>
          <td>建議</td>
          <td>所有條件必須勾選</td>
      </tr>
      <tr>
          <td>建議處理確認</td>
          <td>建議</td>
          <td>無 pending 建議</td>
      </tr>
      <tr>
          <td>派發 acceptance-auditor</td>
          <td>強制</td>
          <td>IMP/ADJ 類型必須執行驗收</td>
      </tr>
      <tr>
          <td>任務鏈後續步驟建議</td>
          <td>提示</td>
          <td>分析並建議下一個 Ticket</td>
      </tr>
  </tbody>
</table>
<h3 id="驗收後階段">驗收後階段</h3>
<table>
  <thead>
      <tr>
          <th>標準流程</th>
          <th>目的</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>技術債務記錄</td>
          <td>將執行過程中發現的技術債務正式記錄，避免遺忘</td>
      </tr>
      <tr>
          <td>CHANGELOG 更新</td>
          <td>在版本發布時更新變更日誌，維護版本歷史的完整性</td>
      </tr>
      <tr>
          <td>學習經驗記錄</td>
          <td>萃取任務中的學習經驗，建構團隊知識網絡</td>
      </tr>
      <tr>
          <td>任務鏈進度更新</td>
          <td>追蹤整體任務鏈完成度，便於掌握專案整體進度</td>
      </tr>
  </tbody>
</table>
<h2 id="任務鏈後續步驟建議">任務鏈後續步驟建議</h2>
<p>當 Ticket 完成時，系統會自動分析任務鏈狀態並建議下一步。</p>
<h3 id="分析優先級">分析優先級</h3>
<table>
  <thead>
      <tr>
          <th>優先級</th>
          <th>情境</th>
          <th>建議內容</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>1</td>
          <td>有子 Ticket 可開始</td>
          <td>「子 Ticket {id} 現在可以開始」</td>
      </tr>
      <tr>
          <td>2</td>
          <td>有被解除阻塞的 Ticket</td>
          <td>「{id} 的阻塞已解除」</td>
      </tr>
      <tr>
          <td>3</td>
          <td>有同層兄弟 Ticket</td>
          <td>「同層還有 {id} 待處理」</td>
      </tr>
      <tr>
          <td>4</td>
          <td>同 Wave 有其他 pending</td>
          <td>「同 Wave 還有 N 個待處理」</td>
      </tr>
      <tr>
          <td>5</td>
          <td>任務鏈全部完成</td>
          <td>「任務鏈 {root} 全部完成」</td>
      </tr>
  </tbody>
</table>
<h3 id="輸出範例">輸出範例</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">============================================================
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">[任務鏈後續步驟建議]
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">============================================================
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">已完成: 0.31.0-W4-007.1
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">        [實作 track P0 功能]
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">任務鏈進度: 1/3 completed
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">   Root: 0.31.0-W4-007
</span></span><span class="line"><span class="ln">10</span><span class="cl">
</span></span><span class="line"><span class="ln">11</span><span class="cl">建議下一步:
</span></span><span class="line"><span class="ln">12</span><span class="cl">   1. 0.31.0-W4-007.2
</span></span><span class="line"><span class="ln">13</span><span class="cl">      [實作 track P1 功能]
</span></span><span class="line"><span class="ln">14</span><span class="cl">      原因: 阻塞已解除（blockedBy 0.31.0-W4-007.1 已完成）
</span></span><span class="line"><span class="ln">15</span><span class="cl">      狀態: pending → 可認領</span></span></code></pre></div><h2 id="任務鏈-id-格式">任務鏈 ID 格式</h2>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">0.31.0-W3-002              # ticket-handoff 功能（根）
</span></span><span class="line"><span class="ln">2</span><span class="cl">├── 0.31.0-W3-002.1        # chain_analyzer 模組
</span></span><span class="line"><span class="ln">3</span><span class="cl">│   ├── 0.31.0-W3-002.1.1  # 問題修復
</span></span><span class="line"><span class="ln">4</span><span class="cl">│   └── 0.31.0-W3-002.1.2  # 測試補充
</span></span><span class="line"><span class="ln">5</span><span class="cl">├── 0.31.0-W3-002.2        # handoff_executor 模組
</span></span><span class="line"><span class="ln">6</span><span class="cl">└── 0.31.0-W3-002.3        # 文件更新</span></span></code></pre></div><table>
  <thead>
      <tr>
          <th>類型</th>
          <th>格式</th>
          <th>範例</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>根任務</td>
          <td><code>{版本}-W{波次}-{序號}</code></td>
          <td><code>0.31.0-W3-002</code></td>
      </tr>
      <tr>
          <td>子任務</td>
          <td><code>{根ID}.{n}[.{n}...]</code></td>
          <td><code>0.31.0-W3-002.1.1</code></td>
      </tr>
  </tbody>
</table>
<h3 id="chain-欄位">chain 欄位</h3>
<table>
  <thead>
      <tr>
          <th>欄位</th>
          <th>類型</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>root</td>
          <td>string</td>
          <td>任務鏈根 ID</td>
      </tr>
      <tr>
          <td>parent</td>
          <td>string/null</td>
          <td>直接父任務 ID</td>
      </tr>
      <tr>
          <td>depth</td>
          <td>number</td>
          <td>深度（根=0）</td>
      </tr>
      <tr>
          <td>sequence</td>
          <td>array</td>
          <td>序號路徑陣列</td>
      </tr>
  </tbody>
</table>
<p>根任務 <code>0.31.0-W3-002</code> 的 chain：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="ln">1</span><span class="cl"><span class="nt">chain</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">  </span><span class="nt">root</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;0.31.0-W3-002&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">  </span><span class="nt">parent</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">  </span><span class="nt">depth</span><span class="p">:</span><span class="w"> </span><span class="m">0</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="w">  </span><span class="nt">sequence</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="m">2</span><span class="p">]</span></span></span></code></pre></div><p>子任務 <code>0.31.0-W3-002.1.1</code> 的 chain：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="ln">1</span><span class="cl"><span class="nt">chain</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">  </span><span class="nt">root</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;0.31.0-W3-002&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">  </span><span class="nt">parent</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;0.31.0-W3-002.1&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">  </span><span class="nt">depth</span><span class="p">:</span><span class="w"> </span><span class="m">2</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="w">  </span><span class="nt">sequence</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="m">1</span><span class="p">]</span></span></span></code></pre></div><p>ID 正則表達式：<code>^(\d+\.\d+\.\d+)-W(\d+)-(\d+(?:\.\d+)*)$</code></p>
<h2 id="ticket-建立流程">Ticket 建立流程</h2>
<h3 id="任務層級判斷">任務層級判斷</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">任務層級判斷
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    v
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">這個任務是否因為執行現有 Ticket 而產生？
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">    +-- 是 → 來源 Ticket 是什麼？
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">    |       |
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    |       └── 確定來源 Ticket ID → 建立該 Ticket 的子任務
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    |           ├── 來源: 010.4 → 子任務 ID: 010.4.x
</span></span><span class="line"><span class="ln">10</span><span class="cl">    |           ├── 來源: 010.4.1 → 子任務 ID: 010.4.1.x
</span></span><span class="line"><span class="ln">11</span><span class="cl">    |           └── 來源: 010 → 子任務 ID: 010.x
</span></span><span class="line"><span class="ln">12</span><span class="cl">    |
</span></span><span class="line"><span class="ln">13</span><span class="cl">    └-- 否 → 建立新任務鏈（新的 Wx-00n）</span></span></code></pre></div><table>
  <thead>
      <tr>
          <th>應建立子任務</th>
          <th>應建立新任務鏈</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>問題在執行特定 Ticket 時發現</td>
          <td>問題與任何執行中的 Ticket 無關</td>
      </tr>
      <tr>
          <td>問題直接影響該 Ticket 的完成</td>
          <td>問題是系統性的獨立問題</td>
      </tr>
      <tr>
          <td>「執行 X 時發現 Y 問題」</td>
          <td>「發現系統有 Z 問題」</td>
      </tr>
  </tbody>
</table>
<p>核心判斷問題：「這個任務是在執行哪個 Ticket 時產生的？」若有明確來源，建立子任務；若無關聯，建立新任務鏈。</p>
<h3 id="建立格式">建立格式</h3>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln"> 1</span><span class="cl">---
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">id: {版本}-W{波次}-{序號}
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">title: {動詞} {目標}
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">type: IMP/RES/ANA/INV/DOC
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">status: pending
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">priority: P0/P1/P2
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">assignee: pending
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">created: {日期}
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">---
</span></span><span class="line"><span class="ln">10</span><span class="cl">
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="gh"># {Ticket ID}: {標題}
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="gh"></span>
</span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="gu">## 目標
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">{目標描述}
</span></span><span class="line"><span class="ln">16</span><span class="cl">
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="gu">## 驗收條件
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="k">- [ ]</span> {條件1}
</span></span><span class="line"><span class="ln">20</span><span class="cl">- [ ] {條件2}</span></span></code></pre></div><h3 id="atomic-ticket-檢查">Atomic Ticket 檢查</h3>
<table>
  <thead>
      <tr>
          <th>檢查項目</th>
          <th>標準</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>語義檢查</td>
          <td>能用「動詞 + 單一目標」表達</td>
      </tr>
      <tr>
          <td>修改原因</td>
          <td>只有一個修改原因</td>
      </tr>
      <tr>
          <td>驗收一致</td>
          <td>所有驗收條件指向同一目標</td>
      </tr>
      <tr>
          <td>依賴獨立</td>
          <td>無循環依賴</td>
      </tr>
  </tbody>
</table>
<h3 id="驗收條件格式要求">驗收條件格式要求</h3>
<p>驗收條件必須符合 4V 原則：<strong>可驗證、可量化、可追溯、可記錄</strong>。</p>
<table>
  <thead>
      <tr>
          <th>要求</th>
          <th>說明</th>
          <th>範例</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>必須有編號</td>
          <td>每個驗收項目都有編號</td>
          <td><code>1.</code>, <code>2.</code>, &hellip;</td>
      </tr>
      <tr>
          <td>必須有來源</td>
          <td>引用設計文件或需求</td>
          <td><code>SKILL.md L97</code></td>
      </tr>
      <tr>
          <td>必須有確認方法</td>
          <td>定義如何驗證完成</td>
          <td><code>執行命令驗證輸出</code></td>
      </tr>
      <tr>
          <td>禁止模糊詞彙</td>
          <td>不可用「完成」「正常」「適當」</td>
          <td>用具體描述取代</td>
      </tr>
  </tbody>
</table>
<p><strong>標準格式（表格式）</strong>：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln">1</span><span class="cl"><span class="gu">## Acceptance Criteria
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">3</span><span class="cl">| #   | 項目       | 來源       | 確認方法   | 狀態 |
</span></span><span class="line"><span class="ln">4</span><span class="cl">| --- | ---------- | ---------- | ---------- | ---- |
</span></span><span class="line"><span class="ln">5</span><span class="cl">| 1   | {項目描述} | {來源引用} | {確認方法} | [ ]  |
</span></span><span class="line"><span class="ln">6</span><span class="cl">| 2   | {項目描述} | {來源引用} | {確認方法} | [ ]  |</span></span></code></pre></div><h2 id="ticket-有效性驗證">Ticket 有效性驗證</h2>
<h3 id="有效-ticket-定義">有效 Ticket 定義</h3>
<p>有效的 Ticket 必須滿足以下條件：</p>
<table>
  <thead>
      <tr>
          <th>條件</th>
          <th>說明</th>
          <th>驗證方式</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>決策樹欄位</td>
          <td>包含 <code>decision_tree_path</code> 欄位</td>
          <td>YAML frontmatter 檢查</td>
      </tr>
      <tr>
          <td>或決策樹區段</td>
          <td>包含「## 決策樹路徑」Markdown 區段</td>
          <td>內容檢查</td>
      </tr>
  </tbody>
</table>
<h3 id="驗證時機">驗證時機</h3>
<table>
  <thead>
      <tr>
          <th>時機</th>
          <th>驗證者</th>
          <th>動作</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>建立 Ticket</td>
          <td>/ticket create</td>
          <td>自動要求填寫決策樹欄位</td>
      </tr>
      <tr>
          <td>派發任務</td>
          <td>agent-ticket-validation-hook</td>
          <td>阻止使用無效 Ticket</td>
      </tr>
      <tr>
          <td>認領 Ticket</td>
          <td>/ticket track claim</td>
          <td>確認 Ticket 有效性</td>
      </tr>
  </tbody>
</table>
<h3 id="無效-ticket-處理">無效 Ticket 處理</h3>
<p>無效 Ticket（缺少決策樹欄位）：</p>
<ul>
<li>無法用於 Task 派發（被 Hook 阻止）</li>
<li>需要補充決策樹欄位才能使用</li>
<li>建議使用 /ticket create 重新建立</li>
</ul>
<h3 id="補充決策樹欄位">補充決策樹欄位</h3>
<p>如果 Ticket 缺少決策樹欄位，可手動補充：</p>
<ol>
<li>
<p><strong>YAML 格式</strong>（在 frontmatter 中）：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="ln">1</span><span class="cl"><span class="nt">decision_tree_path</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="w">  </span><span class="nt">entry_point</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;第X層&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="w">  </span><span class="nt">decision_nodes</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="w">    </span>- <span class="nt">layer</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;X&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="w">      </span><span class="nt">question</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;決策問題&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="w">      </span><span class="nt">answer</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;答案&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="w">      </span><span class="nt">next_action</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;下一步&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">8</span><span class="cl"><span class="w">  </span><span class="nt">final_decision</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;最終決策&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln">9</span><span class="cl"><span class="w">  </span><span class="nt">rationale</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;決策理由&#34;</span></span></span></code></pre></div></li>
<li>
<p><strong>Markdown 格式</strong>（在內容中）：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="ln">1</span><span class="cl"><span class="gu">## 決策樹路徑
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="gu">### 進入點
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="gu"></span>
</span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="k">-</span> **層級**: 第X層
</span></span><span class="line"><span class="ln">6</span><span class="cl">- <span class="gs">**觸發條件**</span>: ...</span></span></code></pre></div></li>
</ol>
<h2 id="ticket-認領流程">Ticket 認領流程</h2>
<h3 id="認領規則">認領規則</h3>
<table>
  <thead>
      <tr>
          <th>規則</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>單一認領</td>
          <td>同一時間只能有一個代理人處理</td>
      </tr>
      <tr>
          <td>階段匹配</td>
          <td>只能認領對應階段的 Ticket</td>
      </tr>
      <tr>
          <td>依賴檢查</td>
          <td>前置 Ticket 必須完成</td>
      </tr>
  </tbody>
</table>
<h2 id="ticket-執行流程">Ticket 執行流程</h2>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln"> 1</span><span class="cl">認領 Ticket
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    v
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">執行對應階段工作
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">    v
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">更新工作日誌
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    |
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    v
</span></span><span class="line"><span class="ln">10</span><span class="cl">驗證驗收條件
</span></span><span class="line"><span class="ln">11</span><span class="cl">    |
</span></span><span class="line"><span class="ln">12</span><span class="cl">    +-- 全部通過 --&gt; 完成 Ticket
</span></span><span class="line"><span class="ln">13</span><span class="cl">    +-- 部分通過 --&gt; 繼續處理或升級
</span></span><span class="line"><span class="ln">14</span><span class="cl">    +-- 無法完成 --&gt; 釋放 Ticket</span></span></code></pre></div><h3 id="完成檢查">完成檢查</h3>
<table>
  <thead>
      <tr>
          <th>檢查項目</th>
          <th>標準</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>驗收條件</td>
          <td>所有條件都已勾選</td>
      </tr>
      <tr>
          <td>測試通過</td>
          <td>相關測試全部通過</td>
      </tr>
      <tr>
          <td>文件更新</td>
          <td>相關文件已更新</td>
      </tr>
      <tr>
          <td>工作日誌</td>
          <td>執行記錄完整</td>
      </tr>
  </tbody>
</table>
<h2 id="ticket-釋放流程">Ticket 釋放流程</h2>
<h3 id="釋放時機">釋放時機</h3>
<table>
  <thead>
      <tr>
          <th>時機</th>
          <th>說明</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>被阻塞</td>
          <td>依賴其他 Ticket 完成</td>
      </tr>
      <tr>
          <td>超出範圍</td>
          <td>發現需要額外工作</td>
      </tr>
      <tr>
          <td>技術限制</td>
          <td>當前無法解決</td>
      </tr>
      <tr>
          <td>資訊不足</td>
          <td>需要更多資訊</td>
      </tr>
  </tbody>
</table>
<h2 id="ticket-類型說明">Ticket 類型說明</h2>
<table>
  <thead>
      <tr>
          <th>類型</th>
          <th>代碼</th>
          <th>用途</th>
          <th>典型時長</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Research</td>
          <td>RES</td>
          <td>探索未知領域</td>
          <td>1-2 小時</td>
      </tr>
      <tr>
          <td>Analysis</td>
          <td>ANA</td>
          <td>理解現狀和問題</td>
          <td>30 分鐘 - 1 小時</td>
      </tr>
      <tr>
          <td>Implementation</td>
          <td>IMP</td>
          <td>執行具體任務</td>
          <td>1-4 小時</td>
      </tr>
      <tr>
          <td>Investigation</td>
          <td>INV</td>
          <td>深入追蹤問題根因</td>
          <td>1-2 小時</td>
      </tr>
      <tr>
          <td>Documentation</td>
          <td>DOC</td>
          <td>記錄和傳承經驗</td>
          <td>30 分鐘 - 1 小時</td>
      </tr>
  </tbody>
</table>
<h2 id="版本歷史">版本歷史</h2>
<ul>
<li>v2.8.0 (2026-02-01): 取消驗收豁免機制，改為契約式驗收</li>
<li>v2.7.0 (2026-02-01): 強化驗收代理人派發要求</li>
<li>v2.6.0 (2026-01-31): 新增任務層級判斷規則</li>
<li>v2.5.0 (2026-01-30): 新增階段-標準流程對照表和任務鏈後續步驟建議</li>
<li>v2.4.0 (2026-01-30): 新增建議追蹤流程整合章節</li>
<li>v2.3.0 (2026-01-30): 新增驗收條件格式要求章節</li>
<li>v2.2.0 (2026-01-29): 新增任務鏈 ID 格式章節</li>
<li>v2.1.0 (2026-01-27): 新增 Ticket 有效性驗證章節</li>
<li>v2.0.0 (2026-01-23): 重構為 TDD 含 SA 前置審查流程版本</li>
</ul>
]]></content:encoded></item></channel></rss>