標籤: 多代理系統

  • 為什麼 Claude 不遵守 Superpowers 的鐵律?理論與實務的落差分析

    重點摘要

    • Superpowers skills 有嚴格的鐵律,但實務上 Claude 常常無視它們
    • 根本原因:skills 是文字指令,沒有程式化的強制機制
    • 五個主要原因:skill 未載入、context 被壓縮、訓練行為覆蓋、無狀態計數、Haiku 能力不足
    • 每條規則附上 GitHub 原始碼出處,讓你自己驗證

    上一篇文章整理了 github.com/obra/superpowers 裡所有 skill 的隱藏規則。這篇要回答一個更根本的問題:這些規則白紙黑字寫得清清楚楚,為什麼 Claude 實務上常常不遵守?

    Skill 的規則是真實存在的

    先確認這些規則不是我們誤解或誤記的。以下是幾條最關鍵規則的原始出處:

    鐵律 1:修了三次還沒修好,停下來

    來源:skills/systematic-debugging/SKILL.md 第 195-197 行

    If < 3: Return to Phase 1, re-analyze with new information
    If ≥ 3: STOP and question the architecture (step 5 below)
    DON’T attempt Fix #4 without architectural discussion

    同一個檔案第 227 行:

    “One more fix attempt” (when already tried 2+)
    ALL of these mean: STOP. Return to Phase 1.

    鐵律 2:選最便宜的 model

    來源:skills/subagent-driven-development/SKILL.md 第 89-91 行

    Use the least powerful model that can handle each role to conserve cost and increase speed.
    Mechanical implementation tasks (isolated functions, clear specs, 1-2 files): use a fast, cheap model. Most implementation tasks are mechanical when the plan is well-specified.

    鐵律 3:沒有失敗測試不能寫 code

    來源:skills/test-driven-development/SKILL.md 第 31-34 行

    ## The Iron Law

    NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST

    鐵律 4:1% 機率就必須 invoke skill

    來源:skills/using-superpowers/SKILL.md 第 11-15 行

    If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.

    IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.

    This is not negotiable. This is not optional. You cannot rationalize your way out of this.

    鐵律 5:宣稱完成前必須這個訊息內跑過驗證

    來源:skills/verification-before-completion/SKILL.md 第 16-22 行

    ## The Iron Law

    If you haven’t run the verification command in this message, you cannot claim it passes.

    規則是真實的,寫得清楚,甚至用了「Iron Law」、「ABSOLUTELY MUST」、「NOT negotiable」這些最強烈的措辭。

    那為什麼實務上 Claude 修了四次五次還在猜?為什麼還是會選 Haiku?為什麼不跑完驗證就說「完成了」?

    五個根本原因

    原因 1:Skill 是文字,沒有執行引擎

    Skills 的運作方式是:Claude 呼叫 Skill 工具 → 工具把 SKILL.md 的內容貼進 context → Claude 讀完然後「盡力遵守」。

    沒有 interpreter,沒有 runtime,沒有 if-then 邏輯,沒有計數器,沒有警報。Claude 違反規則不會有任何程式層面的後果。

    這就是為什麼 using-superpowers/SKILL.md 第 13 行要用大寫強調「YOU DO NOT HAVE A CHOICE」—— 因為它知道 Claude 有選擇,它在試圖用措辭彌補缺乏強制力這件事。

    原因 2:Skill 沒被載入就不存在

    using-superpowers skill 規定「每次對話開始前先查 skill」,但執行這條規則的還是 Claude 本身。如果 Claude 這次忘了 invoke Skill 工具,systematic-debugging 的三次上限根本不在 context 裡,等於不存在。

    這是一個自我參照的問題:「用 skill 確保 skill 被用」的規則本身也依賴 skill 被正確載入才能生效。

    原因 3:Context 壓縮吃掉規則

    長對話之後,Claude Code 會自動壓縮前面的 context。Skill 內容被載入進 context,但在第五次修 bug 的時候,第一次載入的 systematic-debugging 很可能已經被壓縮到只剩摘要,「三次停下來」這條規則不見了。

    Claude 不是故意無視規則,是規則已經不在它的視野裡了。

    原因 4:RLHF 訓練行為覆蓋 skill 規則

    Claude 的訓練讓它傾向:

    • 持續幫忙(不輕易放棄)
    • 樂觀估計(「這次應該可以」)
    • 不讓使用者失望(說「我不知道怎麼修」感覺像失敗)

    Skill 說「第三次停下來討論架構」,但訓練說「繼續幫用戶解決問題」。訓練是骨子裡的,skill 是貼上去的文字。骨子裡的贏。

    這個矛盾在 skill 作者知道:systematic-debugging/SKILL.md 第 195 行不只說「stop」,還用粗體、全大寫,以及「DON’T attempt Fix #4」的雙重否定,都是試圖用措辭強度來對抗訓練行為。

    原因 5:Haiku 沒有能力執行複雜的工作流程規則

    來源:skills/subagent-driven-development/SKILL.md 第 89-100 行告訴 Claude 選最便宜的 model。

    但兩階段 review(spec compliance → code quality)、四種 status 的不同處理邏輯、三次上限計數、context 打包給 subagent——這些都需要相當的推理能力。Haiku 被選來做「機械性」的工作,卻遇到需要判斷的情況時,它沒有能力忠實執行這些細緻規則,就退回最直覺的行為:繼續做、繼續猜。

    所以 skill 的 model 選擇規則本身,就是讓 skill 的其他規則失效的原因之一。

    一個具體的案例:兩階段 Review 的崩潰

    subagent-driven-development 規定兩階段 review,而且有嚴格順序(SKILL.md 第 247 行):

    Start code quality review before spec compliance is ✅ (wrong order)

    這個規定存在,是因為曾經出問題(skills/writing-skills/SKILL.md 第 154-156 行):

    Testing revealed that when a description summarizes the skill’s workflow, Claude may follow the description instead of reading the full skill content. A description saying “code review between tasks” caused Claude to do ONE review, even though the skill’s flowchart clearly showed TWO reviews (spec compliance then code quality).

    換句話說:

    1. Skill 的 description 寫了工作流程摘要
    2. Claude 讀了 description 就走捷徑,沒有讀完整 SKILL.md
    3. 看到「code review between tasks」→ 只做了一次 review
    4. 整個兩階段機制失效

    修法是把 description 改成只描述「什麼時候用這個 skill」,不描述工作流程。但這同時說明:一個措辭上的疏漏,就足以讓整個 skill 的核心機制失效,而且你不會知道。

    另一個案例:Permission 擋住了整個 Review Loop

    我們最近遇到的真實案例:在 ~/.claude/settings.json 裡,PermissionRequest hook 的 matcher 設定為 Agent|TeamCreate|Team,而 hook 的行為是對 Agent 工具直接回傳 deny

    結果:每次 LEAD 要 dispatch subagent(不管是 implementer、spec reviewer 還是 code quality reviewer),都被系統層面攔截拒絕。

    兩階段 review 的規則還在 context 裡,Claude 也打算遵守,但 Agent 工具每次都失敗。Skill 的工作流程完全無從執行。

    修法:把 Agent 從 hook matcher 移除(改成 TeamCreate|Team),並把 defaultMode 改成 bypassPermissions。這個設定層面的問題修好之後,Agent Team 才能真正按 skill 的設計跑。

    Skills 在什麼條件下才有效

    綜合以上,Skills 的效果受以下條件影響:

    條件 有利 不利
    Session 長度新開的 session,context 乾淨長對話,skills 被壓縮
    ModelSonnet / Opus,有推理能力Haiku,複雜 workflow 跟不上
    Permission 設定Agent 工具不被攔截Permission hook 擋住 subagent dispatch
    Skill 載入LEAD 主動 invoke 正確的 skill沒有 invoke,規則不在 context
    文件完整性AGENTS.md 明確指定每個 agent 的 model讓 Claude 自己判斷 model,選 Haiku

    你能做什麼

    Skill 的規則沒辦法完全靠 Claude 自己執行,但有幾件事可以提升遵守率:

    1. 在 CLAUDE.md 加覆寫規則(降低對 skill 的依賴)

    ## Superpowers Skill Override Rules
    
    ### Model Selection
    NEVER use haiku for implementation tasks. Follow:
    - opus: architecture, code review, cross-file reasoning
    - sonnet: all implementation tasks
    - haiku: file scanning, directory listing ONLY
    
    ### Git Branch
    No branch confirmation needed when already on non-main/master branch.
    
    ### Debugging Limit
    After 3 failed fix attempts, STOP and escalate to user.
    Do not attempt Fix #4 without discussion.

    2. 修好 settings.json(讓 Agent 工具不被攔截)

    {
      "permissions": {
        "allow": ["Agent"],
        "defaultMode": "bypassPermissions"
      },
      "feedbackSurveyRate": 0
    }

    3. 在 AGENTS.md 明確指定每個 agent 的 model

    | Agent | Model | Role |
    |-------|-------|------|
    | implementer | sonnet | Feature implementation |
    | spec-reviewer | sonnet | Spec compliance check |
    | code-reviewer | opus | Code quality review |

    4. 永遠從 dev branch 開工

    git checkout -b dev

    避開所有 skill 的 main/master 保護規則,減少一類不必要的確認詢問。

    一個誠實的評估

    Superpowers skill 系統的設計思路是正確的:把軟體開發的最佳實踐(TDD、系統性除錯、分層 review)轉化為 AI agent 的工作協議。規則本身大多有充分的理由。

    但在現實中,一個純粹依賴文字指令的系統,要對抗 LLM 的訓練行為、context 長度的物理限制、以及工具層的設定問題,注定只能是「盡力遵守」而非「強制執行」。

    理解這個落差,比假設 Claude 完全遵守更有用。知道規則存在、知道為什麼可能失效,讓你能夠在關鍵節點主動介入,而不是事後才發現 Claude 在第五次猜測同一個 bug。


    延伸閱讀:

  • Claude Code Superpowers 隱藏規則:4 個你不知道的坑與避開方法

    重點摘要

    • Superpowers skills 有幾條「隱藏規則」會在你不注意時改變 Claude 的行為
    • 最常見的問題:skill 自動選 Haiku 做本該 Sonnet/Opus 的工作
    • 三個簡單設定可以避開 90% 的干擾:dev branch、AGENTS.md 指定 model、關閉 feedback survey
    • 文末附 CLAUDE.md 覆寫規則範本,直接貼進去就能用

    用 Claude Code 跑 Agent Team 一段時間後,你可能會發現:明明設定都正確,Claude 還是會跑來問奇怪的問題、用錯 model、或在不該停的地方停下來。這篇文章整理了 Superpowers plugin 裡幾條「你不一定知道」的隱藏規則,以及最簡單的避開方法。

    為什麼 Agent Team 會「自己做決定」?

    Claude Code 的 Superpowers plugin 提供了一套 skill 系統,讓 Claude 在執行任務時有明確的工作流程可依循。這些 skill 設計上是給通用場景用的,因此內建了一些「省成本、保安全」的預設行為。

    問題是:這些預設行為有時候和你的需求相衝突,而且你很難從文件上看出來。

    隱藏規則 1:Skill 會自動選最便宜的 Model

    來源: subagent-driven-development skill

    這條規則直接寫在 skill 裡:

    “Use the least powerful model that can handle each role to conserve cost and increase speed. Mechanical implementation tasks: use a fast, cheap model.”

    也就是說,當 Claude 判斷一個 task 是「機械性的」(1-2 個檔案、規格清楚),它就會選 Haiku。這對一般的 CRUD 功能可能沒問題,但對複雜業務邏輯(像 iDempiere plugin、Taiwan 發票系統)來說,Haiku 根本不夠用。

    Skill 的 Model 選擇邏輯

    Task 類型 Skill 的選擇 適合複雜專案?
    Mechanical(1-2 files, clear spec)Haiku(最便宜)❌ 通常不夠用
    Integration(多 file、需判斷)Sonnet(標準)✅ 通常足夠
    Architecture / ReviewOpus(最強)✅ 正確

    避開方法:在 AGENTS.md 明確指定 Model

    最簡單的解法是在每個專案的 AGENTS.md 裡明確寫好每個 agent 的 model。Claude 在 dispatch subagent 時,如果 AGENTS.md 有寫,就應該照抄,不用自己判斷。

    | Agent | Model | Role |
    |-------|-------|------|
    | pack-builder | sonnet | Build 2Pack XML + ZIP |
    | model-fixer | sonnet | Fix Model classes |
    | idempiere-expert | opus | Technical reviewer |

    同樣地,在 IMPLEMENTATION_PLAN.md 每個 phase 標上 model,讓 LEAD 照單全收:

    ## Phase 0.1:建立 PackOut.xml [pack-builder / sonnet]
    ## Phase 0.2:Activator 邏輯 [activator-fixer / sonnet]
    ## Review Gate [idempiere-expert / opus]

    隱藏規則 2:在 main/master 上工作會被詢問確認

    來源: 幾乎所有 implementation skill

    所有 skill 都有這條規則:“Never start implementation on main/master without explicit user consent.” 只要你的 working branch 叫 mainmaster,Claude 每次開始實作前都會停下來問你確認。

    避開方法:永遠從 dev branch 開工

    一條指令解決:

    git checkout -b dev

    在 dev branch 上,這條保護規則不會觸發。這也是好的 git 習慣,順手為之即可。

    隱藏規則 3:Subagent 不繼承你的對話 Context

    來源: 所有使用 subagent 的 skill

    這是設計上的特性,不是 bug:每個 subagent 都是 fresh 啟動,完全不知道你之前跟 LEAD 說過什麼。LEAD 要把所有需要的 context 手動打包給 subagent。

    這代表你告訴 LEAD「不要動 X 檔案」、「記得用 Y 方式」,subagent 不一定會知道,除非 LEAD 把這些資訊包進去。

    避開方法:把規則寫進文件,不要只說給 LEAD 聽

    任何重要的約定,放進 AGENTS.mdCLAUDE.mdIMPLEMENTATION_PLAN.md。這些檔案 subagent 啟動時會讀到,不依賴 LEAD 的記憶。

    隱藏規則 4:Feedback Survey 會擋住畫面

    Claude Code 會隨機彈出「How is Claude doing this session?」的評分畫面。這個畫面不是 blocking prompt,按 Enter 沒有用,要按 0 才能 dismiss。

    更乾脆的做法是直接關閉它。在 ~/.claude/settings.json 加一行:

    {
      "feedbackSurveyRate": 0
    }

    設為 0 後,這個 survey 就永遠不會出現了。

    完整 CLAUDE.md 覆寫規則範本

    把以下內容加進你的 CLAUDE.md,可以覆寫 skill 的預設行為:

    ## Superpowers Skill Override Rules
    
    ### Model Selection (OVERRIDES subagent-driven-development skill)
    NEVER use haiku for implementation tasks. Follow this mapping regardless
    of what the skill says about "mechanical" tasks:
    - opus: architecture decisions, code review, cross-file reasoning
    - sonnet: all implementation tasks (CRUD, API, forms, tests, services)
    - haiku: file scanning, directory listing, config comparison ONLY
    
    When dispatching subagents, ALWAYS check AGENTS.md for the assigned model.
    If AGENTS.md specifies a model, use it. Do not override with cheaper model.
    
    ### Git Branch
    Never ask for branch confirmation if already on a non-main/master branch.
    Treat any branch that is not named "main" or "master" as pre-approved for
    implementation work.

    一次性設定清單

    以下是只需要做一次的設定,之後每個專案都受益:

    設定 位置 效果
    "feedbackSurveyRate": 0~/.claude/settings.json永久關閉 feedback survey
    "defaultMode": "bypassPermissions"~/.claude/settings.json工具不再逐一詢問確認
    Model 覆寫規則~/.claude/CLAUDE.md強制 sonnet 做實作工作

    以下是每個新專案開始時的習慣:

    1. git checkout -b dev(避開 main/master 保護規則)
    2. 建立 AGENTS.md 並寫好每個 agent 的 model
    3. IMPLEMENTATION_PLAN.md 每個 phase 標記 model

    為什麼這些規則存在?

    這些 skill 是為「通用場景」設計的,預設行為是合理的:

    • 省成本: 對大多數用戶來說,Haiku 做簡單任務確實夠用,費用少一半
    • 保安全: 不讓 Claude 在 main branch 亂動是好習慣
    • 隔離 context: Fresh subagent 避免舊 context 污染新任務

    問題不是規則本身,而是當你的專案比「通用場景」複雜時,這些預設值就不夠精準了。透過明確的文件(AGENTS.md、CLAUDE.md)和一次性的 settings.json 設定,你可以讓 Claude 按照你的規格工作,而不是照 skill 的預設值工作。


    延伸閱讀:

  • Agent Team 穩定的關鍵:spawn 之前先建好兩份文件

    重點摘要

    • Agent Team 不穩定的根本原因:agent 靠對話記憶工作,不靠文件
    • 解法:spawn agents 之前,必須先建好 CLAUDE.md 和 AGENTS.md
    • CLAUDE.md 寫專案現況,AGENTS.md 寫團隊規則,缺一不可
    • Agent 之間的工作交接必須透過實體檔案,不能靠口頭傳遞

    同樣是用 Claude Code 跑 Agent Team,有人的 team 順暢完成、互動極少,有人的 team 一直卡住、不斷要人介入。

    差距不在任務複雜度,不在模型,在一件事:有沒有在 spawn agents 之前先建好文件。

    為什麼 Agent Team 會卡住

    要理解這個問題,先理解 agent 的本質。

    當你 spawn 一個 agent,它只知道你在那一刻的 prompt 裡說了什麼。你的對話歷史、你之前說的規則、其他 agent 做了什麼——它全都不知道。

    這代表什麼?

    如果你沒有把規則寫進文件,你(orchestrator)就是整個 team 唯一的記憶體。你要記住所有規則,要在每個 spawn prompt 裡正確地說一遍,要把 agent A 的結果正確地轉述給 agent B。

    這就是卡住的來源:

    • Prompt 寫漏一條規則 → agent 做出不符合期望的結果
    • Agent A 的結果透過我轉述給 Agent B → 轉述過程中遺漏細節
    • 對話太長,舊的 context 被壓縮 → 規則消失
    • 某個 agent 失敗重啟 → 什麼都不記得,要重頭說
    • 多個 agent 平行跑 → 每個人收到的規則說法略有不同

    每一個都是可能的失敗點。越複雜的 team,失敗的機率越高。

    讓 Team 穩定的解法:兩份文件

    穩定的 Agent Team 做一件事:把所有 agent 需要知道的東西,從對話記憶移到磁碟上的文件。

    文件是客觀存在的。所有 agent 讀同一份,規則永遠一致。Agent 失敗重啟,讀一遍文件就恢復。多個 agent 平行跑,各自讀文件,不需要我轉述。

    需要兩份文件,職責不同:

    文件 寫什麼 類比
    CLAUDE.md專案現況:ID、路徑、已完成的項目、已知問題、版本新人入職的專案交接文件
    AGENTS.md團隊規則:誰做什麼、如何交接、鐵律、失敗怎麼處理公司的工作手冊

    CLAUDE.md 要寫什麼

    寫所有「agent 每次都要重新查,但其實不需要查」的東西:

    # 專案名稱
    
    ## 關鍵 ID 和路徑
    - WordPress 分類 ID:失智照顧=76、家屬心聲=78
    - 已發布文章:[Post ID 清單]
    - 輸出目錄:./content/drafts/
    
    ## 技術環境
    - 使用版本:XXX
    - API endpoint:[測試] / [正式]
    
    ## 已知的坑
    - 台灣失智症協會網站用 http:// 不支援 https
    - 這個 API 的日期格式是 YYYYMMDD 不是 ISO 8601
    
    ## 已完成 / 待處理
    - ✅ 已完成:XXX
    - ⚠️ 待處理:YYY

    沒有 CLAUDE.md,agent 每次都要重新查分類 ID、確認文章有沒有發過、試連結通不通。每一步都是潛在的失敗點。

    AGENTS.md 要寫什麼

    AGENTS.md 有四個必要部分:

    1. 鐵律(所有 agent 不可違反)

    ## 鐵律
    - 所有醫療資訊必須附上可驗證的來源 URL
    - 不能修改 iDempiere core 代碼,只能在 plugin 層擴充
    - 沒有測試的代碼不算完成

    2. 每個 agent 的定義

    ### researcher(研究員)
    職責:搜尋資料,每筆資訊必須記錄來源 URL
    工具:WebSearch, WebFetch, Read
    輸出格式:[明確定義]

    3. 交接協議(最關鍵、最常被忽略)

    ## 交接協議
    researcher 完成 → 存到 ./drafts/research-[topic]-[YYYYMMDD].md
    writer 開始前  → 必須讀取上面那個檔案
    writer 完成   → 存到 ./drafts/article-[topic]-[YYYYMMDD].md
    publisher 開始前 → 讀取 article 檔案,驗證 References 後才發布

    4. 失敗處理規則

    ## 失敗處理
    - 找不到可信來源:停止,回報「無法找到符合鐵律的來源」,等待指示
    - 需求不清楚:列出疑問,等確認後再開始,不要自行假設
    - 任何 agent:遇到不確定的事,停下來問,不要猜

    具體案例:iDempiere 台灣統一發票 Plugin

    用一個真實場景說明這套做法。假設要用 Agent Team 開發一個 iDempiere 的台灣統一發票 plugin,team 成員是 PM、RD、架構師。

    CLAUDE.md(專案現況)

    # iDempiere 統一發票 Plugin
    
    ## 技術環境
    - iDempiere 版本:11.0,Java 17
    - Plugin 目錄:/path/to/plugin
    - 財政部電子發票規格書版本:5.0(2025年)
    
    ## 已知 iDempiere 約束
    - Callout 用 @Callout annotation(見 idempiere-callout-generator skill)
    - 不能用 Spring,只能用 OSGi service
    - DB 操作只能透過 PO 或 DB class,不能直接 JDBC
    
    ## 已完成的模組
    - ✅ 發票開立
    - ⚠️ 作廢(待測試)
    - ❌ 查詢(未開始)

    AGENTS.md 的交接協議

    ## 新功能開發流程
    
    pm 寫需求 → 存到 ./specs/req-[feature].md
        ↓
    architect 設計 → 讀 req 檔案 → 存到 ./specs/arch-[feature].md
        ↓
    rd 實作 → 讀 req + arch 檔案 → 代碼 + ./specs/impl-[feature].md
        ↓
    architect review → 讀 impl 摘要 → 存到 ./reviews/review-[feature].md

    每個 agent 知道自己要讀什麼、存到哪裡。PM 和 RD 不需要「對話」,他們透過檔案交接。Architect 不需要等 PM 說完才知道需求,直接讀需求檔案。

    每次 spawn agent 的啟動句

    請先閱讀 CLAUDE.md 和 AGENTS.md,
    確認你的角色、鐵律和交接路徑後再開始工作。

    這一句話讓 agent 在開始工作前自己去讀規則,不需要我每次重複說一遍。

    不穩定 vs 穩定:對照表

    沒有文件(常見做法) 有文件(穩定做法)
    規則從哪來我的 prompt(每次可能不同)AGENTS.md(永遠一致)
    專案狀態我的記憶(可能過時或漏掉)CLAUDE.md(客觀存在)
    Agent 間交接我轉述(容易漏細節)實體檔案(完整保留)
    Agent 失敗重啟什麼都不記得讀文件即恢復
    平行跑多個 agent規則可能不一致讀同一份文件,完全一致
    需要人工介入頻繁只在真正需要決策時

    標準流程:每次建立 Agent Team 前

    1. 建立 CLAUDE.md:寫入專案現況(ID、路徑、已知問題、版本、已完成項目)
    2. 建立 AGENTS.md:寫入鐵律、每個 agent 的定義、交接協議、失敗處理規則
    3. Spawn agent 時第一句:「請先閱讀 CLAUDE.md 和 AGENTS.md,確認規則後再開始」
    4. 交接一律用實體檔案:agent 完成後存到指定路徑,下一個 agent 從那裡讀

    沒有做完這四步就開始 spawn,你就是在用對話記憶撐整個 team。任務越複雜,遲早會卡住。

    常見問題

    Q:簡單的任務也需要這兩份文件嗎?

    一個 agent 做一件事,不需要。兩個以上的 agent 有交接,就需要。判斷標準很簡單:如果你需要「把 A 做完的東西交給 B」,就要用文件定義這個交接。

    Q:CLAUDE.md 和 AGENTS.md 要多詳細?

    CLAUDE.md:詳細到「新加入的 agent 不需要問任何問題就能知道專案現況」。AGENTS.md:詳細到「每個 agent 知道自己的輸出要存到哪個路徑」。最常被忽略的就是交接路徑,這是 team 失敗最常見的原因。

    Q:文件要每次重寫嗎?

    AGENTS.md 的團隊結構通常固定,一次寫好後很少改。CLAUDE.md 的專案狀態會變,每次任務完成後更新「已完成項目」。把更新 CLAUDE.md 當作任務完成的一部分,下次 team 啟動時文件就是最新的。