給技術人員的架構導覽

📌 產出物: 品牌調研報告、行銷策略提案、深度研究報告 -- 面向廣告行銷公司的專業文件。

最後更新:2026-03-10 適用對象:接手維護或參與協作的工程師 前提假設:你懂軟體工程,但不一定用過 Claude Code CLI


一句話:這是什麼技術棧?

Claude Code CLI + 自定義 agent/skill/hook/memory 層,建構在 ~/.claude/ 目錄下的一套「AI 驅動的策略分析工作站」。

白話說:這不是一個 web app,而是一台裝滿分析工具的工作台。Claude Code 是作業系統,agent 是員工,skill 是 SOP,hook 是品管流程,memory 是公司制度。整套系統透過終端機(CLI)操作,用 slash command(如 /brand-research/marketing)觸發完整的多階段分析流程。


核心概念快速理解

Agent -- 想像成有專長的員工

系統裡有 39 位 agent,每位有明確的職責、觸發詞、和思考力度設定(effort)。

比喻:這是一間有 39 人的顧問公司。但你不會每次開會都叫齊 39 人 -- 那不現實,也浪費時間。所以 agent 分成三層操作表面:

表面 說明 人數 類比
Core 日常高頻使用的核心團隊 12 常任委員會
Conditional 特定情境才叫的專家 13 特聘顧問
Specialist 高度專業、低頻使用 14 外部學者

Agent 又依職能分成 5 個層級

決策層 (6)   -- Jobs/Gates/Musk/Popovich/Hassabis/Creative Council
               以真實思維模型命名,各代表不同決策視角
協調層 (1)   -- Orchestrator,雙軌調度(單任務 vs 多視角協作)
產品層 (2)   -- Designer + PM
執行層 (24)  -- 研究院(4) / 策略組(4) / 數據組(3) / 開發組(3) / 品質組(3) / 資安組(3) / 其他(4)
驗證層 (5)   -- Consumer/CFO/Lawyer/Marketer/Skeptic
+ Joker (1)  -- 不屬於任何層級,動態介入打破共識陷阱

為什麼這樣設計? 想像你做一份品牌調研報告。如果只有一個 AI 去寫,它會自洽但可能有盲點。把不同「專家」拆開,讓 Strategist 做定位、Deep Researcher 做資料蒐集、Skeptic 做挑戰,最後再碰撞 -- 報告的品質和可信度會好很多。這就像 code review:你不會自己 review 自己的 PR。

技術實作:每位 agent 就是一個 markdown 檔(~/.claude/agents/*.md),定義了該 agent 的角色、視角、工具權限。Claude Code 的 subagent / Agent Teams 機制會載入對應定義,在獨立 context 中執行任務。

Skill -- 想像成 SOP 手冊

Skill 是結構化的工作流程定義,存在 ~/.claude/skills/<name>/SKILL.md

目前有 10 個 skill,其中 3 個是核心業務 skill:

Skill 用途 比喻
/brand-research 品牌現況診斷(品牌「是什麼」) 健康檢查報告
/marketing 行銷策略處方(品牌「該怎麼做」) 治療計畫
/research 通用深度研究 研究院全面調研
/brainstorm 創意發散 腦力激盪
/plan 技術規劃 架構設計
/present 簡報製作 提案簡報
/new-project 建立新專案結構 工具
/ops 系統維運 工具
/tool-research 工具調研 工具
/yfbb-export 資料匯出 工具

為什麼不直接寫在 prompt 裡? 因為一個完整的品牌調研流程涉及:需求釐清 -> 多 agent 並行研究 -> 來源品質閘門 -> 驗證 -> 洞察整合 -> 交叉辯論 -> 報告產出 -> 自檢。如果每次都手寫 prompt 來指揮這一切,你會瘋掉。Skill 把流程「程序化」了,就像 CI/CD pipeline 把部署程序化一樣。

核心 Skill 的共同機制

Hook -- 想像成自動化品管關卡

Hook 是在 Claude Code 生命週期事件上掛載的 shell script,自動執行、不需人工觸發。

目前有 3 個自建 hook:

Hook 觸發時機 做什麼 模式
runtime-event-log.sh 4 個 lifecycle 事件 記錄 session/agent/skill 的結構化 telemetry 到月誌 async
quality-gate.sh 每次寫入 .md 檔 檢查認識論標記(L1-L5)、來源引用、CRF 格式 sync, advisory
debate-quality-judge.sh 寫入辯論記錄時 統計辯論指標(字數、認識論標記數、來源數、輪次) async

為什麼不直接寫在 skill 裡? 因為品管應該是 cross-cutting concern,不是每個 skill 各自實作一份。Hook 就像 git hooks 或 middleware -- 你寫一次,所有流程自動套用。

重要細節quality-gate.sh 目前是 advisory 模式(永遠 exit 0),只提醒不阻擋。要啟用阻擋模式,改 exit code 為 2。這是刻意的設計決策 -- 先觀察誤報率,確認穩定後再考慮強制。

CLAUDE.md 階層 -- 想像成公司規章制度

Claude Code 有一套原生的指令階層機制,基於 CLAUDE.md 檔案的目錄位置:

Layer 1    ~/.claude/CLAUDE.md           -- 總部規章(user-level,永遠載入)
Layer 1.5  ~/CLAUDE.md                   -- 工作區規則(project layer,永遠載入)
Layer 1.8  ~/.claude/projects/CLAUDE.md  -- 部門規章(subtree rules,進入子樹時載入)
Layer 2    REGISTRY.md                   -- 調度手冊(首次調度時載入)
Layer 3    agents/*.md                   -- 個人職責說明書(按需載入)
Layer 4    skills/ + library/            -- 知識庫(JIT 檢索,從不預載)

為什麼分這麼多層? 兩個字:省 token。如果把 39 個 agent 定義全部預載,大約吃掉 15,000 tokens。但查 REGISTRY.md(約 1,000 tokens)再按需載入 1-5 個 agent(約 1,500 tokens),節省 85-90%。這就像 lazy loading -- 不要一開始就把所有 JS bundle 載完。

關鍵原則

Memory 分層 -- 想像成公司知識管理

這套系統有 7 層記錄機制,各有明確分工:

Layer 0    git                    -- 合約(檔案變更的唯一事實來源)
Layer 0.5  logs/                  -- 日誌(事件、audit、skill run 記錄)
Layer 0.8  DECISIONS.md           -- 決策紀錄(專案決策、取捨、規則)
Layer 0.9  memory/MEMORY.md       -- 里程碑摘要(高層脈絡,不重抄 diff)
Layer 1    CLAUDE.md hierarchy    -- 制度手冊(Claude Code 原生指令)
Layer 1.5  claude-mem MCP plugin  -- 自動觀察(補充型,非權威來源)
Layer 2    memory/*.md            -- 經驗傳承(長期原則、偏好、反模式)

為什麼不用一個大資料庫? 因為不同類型的知識有不同的生命週期和信任等級。git diff 是事實,不可能錯;memory 裡的偏好是可能過時的經驗。把它們混在一起,你就分不清哪些是 ground truth,哪些是 heuristic。

已退役層~/.claude/agent-memory/ 是早期實驗,嘗試讓 agent 跨 session 累積知識。結論是原生能力已足夠,不需要平行系統。目錄保留但不再使用。


架構全景圖

系統架構

 使用者                Claude Code CLI              ~/.claude/
   |                       |                          |
   | /brand-research       |                          |
   |---------------------> |                          |
   |                       |  1. 載入 CLAUDE.md 階層   |
   |                       |------------------------->|  CLAUDE.md (L1)
   |                       |                          |  ~/CLAUDE.md (L1.5)
   |                       |  2. 查 REGISTRY.md        |
   |                       |------------------------->|  agents/REGISTRY.md
   |                       |                          |
   |                       |  3. 載入 SKILL.md         |
   |                       |------------------------->|  skills/brand-research/SKILL.md
   |                       |                          |
   |                       |  4. 按 Skill 調度 Agents  |
   |                       |                          |
   |                       |  +-----------------------+|
   |                       |  | Stage 1: 並行研究     ||
   |                       |  | Deep Researcher       ||  -> stage1/deep-researcher.md
   |                       |  | Strategist            ||  -> stage1/strategist.md
   |                       |  | Context Analyst       ||  -> stage1/context-analyst.md
   |                       |  +-----------------------+|
   |                       |           |               |
   |                       |  5. Source Quality Gate   |
   | <来源品質報表摘要>     | <------------------------|
   | 確認繼續               |                          |
   |---------------------> |                          |
   |                       |  +-----------------------+|
   |                       |  | Stage 2-3: 驗證+洞察  ||  -> stage2/*.md, stage3/*.md
   |                       |  +-----------------------+|
   |                       |           |               |
   |                       |  6. Agent Teams 辯論     |
   |                       |  +-----------------------+|
   |                       |  | Cross-Review          ||  -> cross-review/*.md
   |                       |  | 正方 vs 反方 + Joker  ||
   |                       |  +-----------------------+|
   |                       |           |               |
   |                       |  7. 報告產出 + 自檢       |
   |                       |           |               |
   |                       |  8. Hooks 自動觸發        |
   |                       |     quality-gate.sh ----->|  (認識論/來源檢查)
   |                       |     debate-quality.sh --->|  logs/YYYY-MM.jsonl
   |                       |     runtime-event.sh ---->|  logs/YYYY-MM.jsonl
   |                       |           |               |
   | <最終報告>             | <------------------------|

指令階層與資料流

                    ┌──────────────────────┐
                    │  ~/.claude/CLAUDE.md  │  Layer 1: 永遠載入,最小常駐規則
                    └──────────┬───────────┘
                               |
                    ┌──────────v───────────┐
                    │    ~/CLAUDE.md        │  Layer 1.5: workspace project layer
                    └──────────┬───────────┘
                               |
           ┌───────────────────┼───────────────────┐
           |                   |                   |
  ┌────────v─────────┐ ┌──────v───────┐ ┌────────v─────────┐
  │ agents/           │ │ skills/      │ │ library/          │
  │ REGISTRY.md       │ │ SKILL.md     │ │ reference/        │
  │ 39 agent 定義     │ │ 10 個 skill  │ │ frameworks/       │
  │ 觸發詞 + effort  │ │ 調度流程     │ │ checklists/       │
  └────────┬─────────┘ └──────┬───────┘ │ templates/        │
           |                   |         │ sources/          │
           |                   |         └────────┬─────────┘
           └───────────────────┼───────────────────┘
                               |
                    ┌──────────v───────────┐
                    │  hooks/               │  PostToolUse / Lifecycle
                    │  quality-gate.sh      │  品質閘門
                    │  debate-quality.sh    │  辯論評分
                    │  runtime-event.sh     │  telemetry
                    └──────────┬───────────┘
                               |
                    ┌──────────v───────────┐
                    │  logs/YYYY-MM.jsonl   │  統一事件日誌
                    │  logs/eval-artifacts/ │  eval 產物
                    └──────────────────────┘

你需要知道的維護重點

1. 如何新增/修改 Agent

新增 agent

  1. ~/.claude/agents/ 建立 agent-name.md,定義角色、視角、工具權限
  2. ~/.claude/agents/REGISTRY.md 的 Full Agent Table 中新增一行(觸發詞、effort、檔案名)
  3. 決定放在哪個操作表面(Core / Conditional / Specialist)
  4. 如果涉及 combo triggers,更新 Combo Triggers 表

修改 agent

注意:agent merge/deprecate 走數據驅動。不要憑感覺砍能力,先看 telemetry 和使用率(telemetry 在 logs/ 裡,由 runtime-event-log.sh 自動記錄)。

2. 如何建立新 Skill

步驟

  1. 建立 ~/.claude/skills/<skill-name>/SKILL.md
  2. 寫 YAML frontmatter(name, description, default_mode, arguments)
  3. 定義調度流程(哪些 agent、什麼順序、什麼模式)
  4. 定義 routing matrix(哪些步驟用 main thread / subagent / agent teams)
  5. 定義 output contract(報告必須包含哪些章節)
  6. 定義 completion logging(完成後寫什麼到 logs/)

要點

參考:看 skills/brand-research/SKILL.mdskills/marketing/SKILL.md 作為範本。它們是系統中最完整的兩個 skill,涵蓋了所有慣例。

3. 如何調整 Hooks

Hook 掛載位置~/.claude/settings.json(不在版控中) Hook 定義文件~/.claude/hooks/*.sh Hook 登記簿~/.claude/hooks/REGISTRY.md

新增 hook

  1. 寫 shell script 放到 ~/.claude/hooks/
  2. settings.json 中加入掛載設定(event, path, mode)
  3. 更新 hooks/REGISTRY.md

重要設計約束

目前 hook 列表

Script Events Mode
runtime-event-log.sh InstructionsLoaded / SubagentStart / SubagentStop / ConfigChange async
quality-gate.sh PostToolUse:Write sync, advisory
debate-quality-judge.sh PostToolUse:Write async

4. 如何管理 Memory

最重要的原則:不要在 MEMORY.md 重抄 git diff。

你想記錄什麼 寫在哪裡
檔案改了什麼 不用寫,git 已經記了
某次 skill run 的結果 logs/YYYY-MM.jsonl
專案的重要決策 projects/<name>/DECISIONS.md
專案的里程碑 projects/<name>/memory/MEMORY.md(簡短)
長期有效的偏好/原則 memory/learnings.md 或相關主題檔
CLAUDE.md 常駐規則 對應層級的 CLAUDE.md

反模式警告

5. Eval Framework 怎麼用

系統有一套最小 eval 回路,定義在 ~/.claude/library/reference/checklists/skill-eval.md

何時需要跑 eval

不需要跑的情況:純 typo、路徑修正、標題調整。

Benchmark 題組(3 組必跑):

ID Skill Prompt
BR-001 brand-research /brand-research 星巴克 台灣咖啡連鎖
MKT-001 marketing /marketing foodpanda 台灣外送服務
RES-001 research /research AI Agent 最新發展 full

評分維度(5 維度 x 0-2 分 = 總分 10):

  1. Structure completeness -- 關鍵章節是否齊全
  2. Source discipline -- 來源等級和不確定性標示是否清楚
  3. Readability -- 結構清楚、可掃讀
  4. Actionability -- 建議可執行、與證據對應
  5. Cost sanity -- token 成本合理

硬性失敗條件(出現任一即判定失敗,不看總分):

結構級變更:同一 benchmark 至少跑 3 次,避免單次波動誤判。

工具:可搭配 skill-creator@anthropic plugin 執行自動化 eval,但 accept/reject 決策仍依 skill-eval.md 的規則,不直接看 plugin 的 pass_rate。


技術債與已知限制

誠實揭露

項目 現況 影響
eval baseline 深度不足 三組核心 skill 各只有 1 次 baseline run;protocol 要求結構級變更需 3-run window 目前的 baseline 數據有統計波動風險
Marketing skill token 成本偏高 Marketing 的 token 成本是 brand-research 的 2 倍(4.6x vs 2.3x without_skill 比),因為多階段 agent dispatch 需觀察是否值得做階段精簡
Agent portfolio 未經使用率驗證 Core/Conditional/Specialist 分層是設計判斷,還沒有 30 天使用數據支撐 可能有 agent 該從 Specialist 升到 Core,或反過來
quality-gate.sh 永遠 advisory 品質閘門不會真的阻擋寫入,只是提醒 如果忽略提醒,品質檢查形同虛設
runtime telemetry 尚未完成 review runtime-event-log.sh 掛上了 4 個 lifecycle events,但還沒累積足夠 run 數來做噪音分析 不確定目前記錄的欄位是否都有用
Hook wiring 不在版控中 settings.json 被 .gitignore 排除,hook 掛載靠 hooks/REGISTRY.md 手動同步 換機器或新環境需手動重建
agent-memory/ 已退役但未清除 目錄還在,只剩 1 筆歷史記錄 新人可能困惑這是什麼
live web 漂移 Eval 依賴即時搜尋,同一 benchmark 在不同時間跑可能因網路資料變化而得到不同結果 benchmark 的 stddev 可能偏高

已做過但放棄的方向

以下是歷史上嘗試過、最終決定不走的路 -- 了解這些可以避免重蹈覆轍:

嘗試 放棄原因
自建 agent-memory 跨 session 記憶 原生能力已足夠,自建層沒有穩定落地為 workflow
引入 Gemini / Codex / claude-flow 做多 AI 協作 增加的複雜度遠大於收益,回歸純 Claude Code
模擬式多輪辯論(主控扮演多個角色) Agent Teams 的真實對話品質更好,且 Joker 可動態介入
預載全部 39 agent 定義 15K tokens 浪費,改為按需載入省 85-90%

接手指南

如果你是新來的工程師,建議的學習路徑:

第一天:理解骨架

  1. 讀本文件 -- 你正在做這件事
  2. ~/.claude/CLAUDE.md -- 最小常駐規則,只有 29 行,但定義了整個系統的哲學
  3. ~/CLAUDE.md -- workspace 層規則,了解日常操作慣例
  4. 瀏覽 ~/.claude/agents/REGISTRY.md -- 重點看架構圖和 Human Operating Surface

第二天:理解核心流程

  1. ~/.claude/skills/brand-research/SKILL.md -- 最完整的 skill 範本,理解調度流程、CRF、來源閘門、認識論分層
  2. ~/.claude/docs/memory.md -- 理解 7 層記錄分工,知道什麼該寫在哪裡
  3. 跑一次 /brand-research <品牌> quick -- 親自體驗最簡流程,看看 agent 怎麼被調度、報告長什麼樣

第三天:理解品管與演進

  1. 讀 3 個 hook script -- 都在 ~/.claude/hooks/,理解自動品管機制
  2. ~/.claude/library/reference/checklists/skill-eval.md -- 理解 eval framework
  3. ~/.claude/docs/roadmap.md -- 理解目前的技術債和優先順序

持續參考

你想知道什麼 去哪裡找
現在有哪些 agent、怎麼調度 agents/REGISTRY.md
某項資訊該寫在哪裡 docs/memory.md
系統還有什麼待辦、歷史決策 docs/roadmap.md
認識論標記怎麼用(L1-L5) library/reference/epistemic.md
InsightCard 怎麼寫 library/reference/frameworks/data-to-insight.md
報告自檢清單 library/reference/checklists/fact-discipline.md
專案清單與結構 projects/INDEX.md
VPS 基礎設施 ~/VPS-ALL.md

黃金規則(背起來)

  1. 原生優先 -- 能用 Claude Code 原生能力解決的,不自建平行系統
  2. git 是事實來源 -- 不在 memory 重抄 diff
  3. 單一主控 -- 一個任務只能有一個 primary executor
  4. 減法先於加法 -- 不為了完整感加新 protocol 或治理文字
  5. 數據驅動 -- agent 合併/廢棄看 telemetry,不憑感覺

檔案索引

本文件提及的關鍵檔案路徑:

檔案 路徑
系統憲法 ~/.claude/CLAUDE.md
Workspace 規則 ~/CLAUDE.md
Agent 註冊表 ~/.claude/agents/REGISTRY.md
Agent 定義 ~/.claude/agents/*.md
記憶架構 ~/.claude/docs/memory.md
優化追蹤 ~/.claude/docs/roadmap.md
Hook 定義 ~/.claude/hooks/*.sh
Hook 登記簿 ~/.claude/hooks/REGISTRY.md
Skill 定義 ~/.claude/skills/<name>/SKILL.md
Eval 協議 ~/.claude/library/reference/checklists/skill-eval.md
事件日誌 ~/.claude/logs/YYYY-MM.jsonl
Eval 產物 ~/.claude/logs/eval-artifacts/
專案索引 ~/.claude/projects/INDEX.md
長期經驗 ~/.claude/memory/*.md

本文件由 Storyteller 撰寫。如有過時之處,以各 canonical doc 為準。