什麼是 CCMS?

CCMS 讓你為每個專案配備專屬的 AI Worker — 有自己的角色定義、程式碼庫、跨任務記憶,隨時接受指派。

🤖

AI 專案負責人

每個 Worker 負責特定專案或任務範圍,而不是萬能但沒記憶的聊天 AI。

📁

自動接管程式碼

Worker 啟動時自動 clone 並更新你的 repo,直接在最新程式碼上工作。

💾

跨任務記憶

知識庫自動記錄每次任務,下次遇到類似問題帶著歷史經驗上陣。

🤝

Cluster 協作

多個 Worker 在同一 Cluster 裡分工,共享知識庫,遇到超出範圍就轉介。

Worker 的幾種用法

你的需求做法
讓 AI 負責特定遊戲或功能的開發建立 Worker,設定 git.repo 指向該專案
讓 AI 記得以前做過什麼加入 kb-recorder + kb-lookup hook
多個 Worker 圍繞同一系統協作建立 Cluster,讓 Workers 加入同一 cluster
根據訊息內容自動找對的 Worker設定 routing.pattern 路由規則

Loadout:Worker 的能力組件

每個 Worker 可以透過 loadout 選配三種能力組件,就像裝備一樣——不需要的不裝,需要的隨時加入。

🛠

Skill

Claude 主動呼叫的操作指南。告訴 AI 什麼時候要做什麼,按步驟執行。

宣告在 loadout.skills

Hook

系統事件自動觸發的背景腳本,不需要 AI 介入,零 context 消耗。

宣告在 loadout.hooks
🔌

MCP

讓 Claude 能呼叫額外的 API 工具集,掛載後出現在工具清單中。

宣告在 loadout.mcp

現有共用組件一覽

Skills(8 個)
ID功能何時用
common/cluster-kb-lookup 任務前查 cluster wiki + raw,找相關前例 cluster 欄位的 worker
common/cluster-kb-record 任務後把需求/過程/成果寫進 cluster raw 同上
common/cluster-kb-roster 查同 cluster 其他 worker,建議轉介 需要轉介能力時
common/sync-html-to-ccms HTML 產出後自動 copy 到 web server,回傳瀏覽 URL 會產出 HTML 報告的 worker
common/worker-create 互動式建立新 CCMS worker(含 Step 5 skill module 接入) Worker 維護者
common/worker-profile-review 審查 worker-profile.yaml 欄位完整性並問答補完 Worker 維護者
common/worker-maturity-radar 六維成熟度評分(武力/忠誠/智力/行政/聲望/統帥)送武將系統 Worker 維護者
common/skill-review Skill 部署前 8-Phase 品質審查 修改或新建 skill 時
Hooks(3 個)
ID觸發事件功能
common/cluster-kb UserPromptSubmit / Stop 任務前自動 lookup,任務後自動 record(合併版,取代舊 kb-lookup + kb-recorder)
common/worker-memory SessionStart / PreCompact / PostCompact / Stop 跨 session 的 MEMORY.md 蒸餾與注入,需在 profile 加 memory.enabled: true
common/telegram-notify Notification / Stop 等待授權時推 Telegram;每次回覆結束後轉發訊息到 Telegram
MCP Server(1 個)
ID工具何時用
common/session-manager session_create / session_list / session_send_input / session_status / session_close 需要 dispatch 任務給其他 worker 或查詢 session 狀態的 orchestrator worker

怎麼挑?

Worker 用途建議組合
🔨 開發型(程式碼、功能) cluster-kb hook worker-memory hook cluster-kb-lookup/record/roster skills
🔧 IT / Ops(部署、系統) cluster-kb hook worker-memory hook telegram-notify hook cluster-kb-lookup/record skills
🎮 Orchestrator(調度多 worker) session-manager MCP cluster-kb-roster skill worker-memory hook
🛠 Worker 維護者 worker-create skill worker-profile-review skill worker-maturity-radar skill skill-review skill
⚠️ 注意衝突 common/cluster-kb(合併版)與舊的獨立 kb-lookupkb-recorder hook 衝突,三擇一。新 worker 請直接用 common/cluster-kb

YAML 宣告方式

loadout:
  skills:
    - common/cluster-kb-lookup
    - common/cluster-kb-record
    - common/cluster-kb-roster
    - common/sync-html-to-ccms    # 選配
  hooks:
    - common/cluster-kb           # 自動 lookup + record(UserPromptSubmit + Stop)
    - common/worker-memory        # 跨 session 記憶(需搭配 memory.enabled: true)
  mcp:
    - common/session-manager      # 僅 orchestrator worker 需要
  agents: []

開始使用

透過網頁 Chat Mode 與 AI Worker 對話,只需登入就能開始。

登入方式

  • LINE OTP(推薦)— 輸入手機號碼,LINE 會收到一次性驗證碼
  • 帳號密碼 — 管理員設定的帳號
💡 關於 LINE LINE 在 CCMS 中的用途是登入驗證(OTP)接收系統告警通知,不是對話管道。所有 AI 對話都在網頁進行。

進入 Chat Mode

  1. 打開 CCMS 網頁

    前往 https://claude2-agent.jgames888.com,用 LINE OTP 或帳號密碼登入。

  2. 選擇 Worker

    在 Lobby 看到所有 Worker Session,點「進入」進入對話,或讓系統自動路由。

  3. 描述你的需求

    直接輸入你想做的事,AI 會回覆並開始處理。不需要特殊格式。

  4. 等待完成

    AI 處理中會即時顯示進度,完成後告知結果。

實用指令

指令說明
/switch worker名稱手動切換到指定 Worker
/clear清除目前對話 context,重新開始
/help顯示可用指令

Worker 是什麼?

Worker 是你的 AI 專案負責人:知道自己負責什麼、會自動拿最新程式碼、記得上次做了什麼、遇到超出範圍的事會轉介給對的人。

一般 AI 助理 vs Worker

一般 AI 助理CCMS Worker
認識你的專案?❌ 每次重新介紹✅ 自動 clone repo,直接在程式碼裡工作
記得做過的事?❌ 對話結束即忘✅ 知識庫自動記錄,下次帶著前例來
知道自己的邊界?❌ 什麼都試著做✅ scope 定義清楚,超出範圍主動轉介
可以多人協作?❌ 只有一個✅ Cluster 裡多個 Worker 分工共享知識

Worker 的四個核心元素

🏷️

角色定義(cluster_scope)

明確寫出「負責什麼、不負責什麼」,AI 用這個決定何時自己做、何時轉介。

📁

專案 Repo(git)

設定 git.repo,Worker 每次啟動自動 pull 最新程式碼,直接在 repo 裡工作。

💾

任務記憶(Cluster KB)

加入 kb-lookup + kb-recorder hook,任務自動記錄、下次自動查詢。

🧰

能力包(Loadout)

依照 Worker 的工作性質,配備對應的 Skills(技能)、Hooks(自動行為)。

實際案例:遊戲開發 Worker

sps-worker-102006 為例,這是負責 slot 遊戲 102006 開發的 Worker:

Worker 啟動
git pull 最新程式碼
查詢知識庫前例
接受任務,在 repo 裡工作
完成後記錄知識庫
name: sps-worker-102006
cluster: spsconsole              # 加入 spsconsole cluster,與其他遊戲 Worker 共享知識

cluster_scope: |
  【負責】slot 遊戲 102006 的 RD 開發:程式實作、RTP 驗算、場景測試
  【不負責】其他遊戲編號的任務

git:
  repo: https://user:[email protected]/slot-probability-console.git
  branch: feature/worker-102006
  auto_pull: true                # 每次啟動自動 git pull

routing:
  pattern: '102006'              # 訊息含「102006」自動路由到這個 Worker

loadout:
  hooks:
    - common/kb-lookup           # 啟動時自動查 wiki 前例
    - common/kb-recorder         # 停止時自動記錄任務摘要
  skills:
    - sps/jlh5/slot-full-pipeline    # 遊戲開發全流程 skill
    - common/cluster-kb-lookup

同一 Cluster 的 Workers 如何協作

graph LR subgraph "spsconsole cluster(共享知識庫)" W1["sps-worker-102006\n(102006 遊戲 RD)"] W2["sps-worker-102007\n(102007 遊戲 RD)"] LIB["spsconsole-librarian\n(知識整理)"] end KB[("Cluster 知識庫\nraw/ + wiki/")] W1 -- "完成任務,記錄" --> KB W2 -- "完成任務,記錄" --> KB LIB -- "定期整理" --> KB KB -- "查詢前例" --> W1 KB -- "查詢前例" --> W2 style KB fill:#1c2128,stroke:#58a6ff style LIB fill:#1c2128,stroke:#d2a8ff
💡 關鍵理解 Worker 不是「聰明的問答機」,而是「懂你系統、有記憶、知道自己邊界」的 AI 工程師。設定好之後,每次啟動就能直接進入狀況,不需要重新介紹背景。

建立你的 Worker

為你的專案建立一個專屬 Worker,只需要一個 worker-profile.yaml 設定檔。以下是完整的設定流程。

設定步驟

  1. 決定 Worker 的角色(最重要)

    想清楚這個 Worker 負責什麼(例如:某個遊戲的 RD 開發)、不負責什麼(例如:其他遊戲的任務)。這是 cluster_scope 的內容,直接決定 AI 的行為邊界。

  2. 設定 git repo(讓 Worker 接管你的專案)

    填入程式碼庫的 URL(帶認證 token)、要跟蹤的 branch,並設定 auto_pull: true。Worker 啟動時會自動 clone/pull 最新版本。建議為每個 Worker 建立一個專屬 branch(例如 feature/worker-102006)。

  3. 加入 Cluster

    多個 Worker 圍繞同一個系統時,讓它們加入相同的 cluster(例如所有 SPS 開發 Worker 都加入 spsconsole)。同 Cluster 的 Workers 共享知識庫。

  4. 加入知識庫 Hook

    loadout.hooks 加入 kb-lookup(啟動時查知識庫)和 kb-recorder(停止時記錄),讓 Worker 自動累積任務經驗。

  5. 設定路由規則

    routing.pattern 設定關鍵字,讓含有特定字詞的訊息自動路由到這個 Worker。例如遊戲編號 102006,或系統名稱 myproject

  6. 請 ccms-IT-worker 協助部署

    把設定完的 worker-profile.yaml 交給 ccms-IT-worker,它會協助部署到 CCMS 系統。

完整的 worker-profile.yaml 範例

name: my-worker                  # Worker 唯一名稱(英文、連字號)
cluster: my-cluster              # 所屬 Cluster(同 cluster 共享知識庫)
type: work

cluster_scope: |
  【負責】[你的專案名] 的功能開發、Bug fix、程式碼修改。
  【不負責】[不在你負責範圍的事項]。

description: 一句話說明這個 Worker 的角色

scope: user                      # user = 每個人有自己的 session
                                 # shared = 所有人共用一個 session

routing:
  pattern: 'keyword1|keyword2'   # 包含這些關鍵字的訊息自動路由過來
  confidence: 0.85

git:
  repo: https://user:[email protected]/your/repo.git
  branch: feature/my-worker     # 建議建 Worker 專屬 branch
  path: repo                    # clone 到 Worker 目錄下的 repo/ 子目錄
  auto_pull: true               # 每次啟動自動 git pull

loadout:
  hooks:
    - common/kb-lookup          # 啟動時查知識庫
    - common/kb-recorder        # 停止時記錄知識庫
  skills:
    - common/cluster-kb-lookup
    - common/cluster-kb-record
    - common/cluster-kb-roster
✅ 可以先從最小版本開始 不需要一次設定所有欄位。先定義 nameclustercluster_scope + 兩個 KB hook,就是一個能運作的基本 Worker。之後再逐步加入 git 設定和 skills。

接管專案與 Cluster

Worker 最強大的地方:每次啟動自動拉最新程式碼,然後帶著 Cluster 知識庫的歷史記錄開始工作。

Worker 如何接管你的程式碼

worker-profile.yaml 設定 git 區塊後,Worker 第一次啟動時自動 clone repo,之後每次啟動時自動 git pull 更新,不需要手動管理:

git:
  repo: https://user:[email protected]/your-team/your-project.git
  branch: feature/my-worker     # 建議建 Worker 專屬 branch
  path: repo                   # clone 到 Worker 工作目錄下的 repo/ 子目錄
  auto_pull: true
💡 建議為每個 Worker 建專屬 branch 例如 feature/worker-102006,讓 Worker 的工作不干擾主 branch,需要合併時再開 PR。這樣多個 Worker 可以同時在不同 branch 上各自工作,互不影響。

Cluster 的設計邏輯

Cluster 是一組圍繞同一個系統或業務的 Workers。同一 Cluster 的 Workers:

  • 共享同一個知識庫(raw/ + wiki/
  • 透過 cluster-kb-roster skill 互相查詢、決定轉介
  • 通常有一個 Librarian Worker 負責定期整理知識

不同類型的 Worker 建議設定

Worker 角色建議設定
主要開發 Worker
處理程式碼、邏輯
設定 git.repo + kb-lookup + kb-recorder
定義明確的 cluster_scope
Librarian Worker
整理知識庫
不需要 git.repo
設定為每日定時整理 raw/wiki/
診斷 Worker
只分析,不動手
可設定 git.repo(唯讀)
cluster_scope 明確寫「不執行修改」

Worker 啟動的完整流程

sequenceDiagram participant U as 使用者 participant S as SessionManager participant W as Worker participant R as Git Repo participant KB as 知識庫 U->>S: 開啟 Worker Session S->>W: 啟動 Claude Code CLI W->>R: git pull(auto_pull: true) W->>KB: kb-lookup hook 查詢前例 KB-->>W: 注入相關 wiki 記錄 W-->>U: 準備好,帶著前例知識 U->>W: 描述任務 W->>R: 修改程式碼、提交 W-->>U: 任務完成 W->>KB: kb-recorder hook 記錄任務摘要
✅ 設定一次,之後全自動 Worker 設定好之後,每次啟動都會自動完成上述流程:pull 最新 code、查詢前例、工作、記錄。你只需要告訴它要做什麼,它自己知道在哪裡找到程式碼、做完後要記錄什麼。

知識庫怎麼用

知識庫讓 AI Worker 不需要每次都從零開始。任務完成後自動記錄,下次遇到類似問題時自動調用歷史經驗。

整體運作流程

graph LR A["任務完成\nkb-recorder 自動記錄"] -->|寫入| B["raw/\n(原始任務紀錄)"] B -->|librarian 定期整理| C["wiki/\n(結構化知識)"] C -->|下次任務啟動| D["kb-lookup 自動查詢"] D -->|注入給 AI| E["Worker 帶著前例知識\n開始處理新任務"] style A fill:#1c2128,stroke:#3fb950 style C fill:#1c2128,stroke:#58a6ff style E fill:#1c2128,stroke:#d2a8ff

啟用知識庫:加這兩個 Hook

Hook何時觸發做什麼
kb-lookup Worker 每次啟動時 自動查詢 wiki,把相關前例注入給 AI,讓它帶著歷史知識開始工作
kb-recorder Worker 每次停止時 把這次任務的摘要(需求、做了什麼、結果)自動寫入 raw/
loadout:
  hooks:
    - common/kb-lookup     # 啟動時查知識庫
    - common/kb-recorder   # 結束時記錄知識庫
  skills:
    - common/cluster-kb-lookup
    - common/cluster-kb-record
    - common/cluster-kb-roster
✅ 設定完成後就全自動 加入這兩個 Hook 後,Worker 每次啟動和結束都會自動處理。AI 自己知道何時查、何時記,不需要手動觸發。

AI 也可以主動操作知識庫

除了 Hook 自動觸發,AI 遇到需要時會主動呼叫以下 Skill:

SkillAI 什麼時候用它效果
cluster-kb-lookup 接到新任務,覺得可能有前例 主動查 wiki,找相關歷史記錄
cluster-kb-record 任務完成,屬於自己 scope 把需求/過程/成果寫進 raw/
cluster-kb-roster 遇到超出自己範圍的任務 查 Cluster 名冊,決定轉介給誰

raw 和 wiki 的差別

📄

raw/(原始紀錄)

kb-recorder 自動寫入的任務日誌。每次任務一份,完整記錄過程,不加工。

📚

wiki/(整理後)

librarian 把多個 raw 整理成的結構化知識。kb-lookup 查詢的就是這裡。

💡 librarian 定期自動整理 Cluster 的 librarian Worker 每日自動把新的 raw 整理到 wiki。如果想立刻更新,可以手動請 librarian 整理。

Skills 與 Hooks

透過 Skills 和 Hooks,可以讓 Worker 擁有特定能力或自動行為,不需要每次都手動操作。

Skills — 給 Worker 領域知識

Skill 是一組指令集,告訴 AI 在特定情境下該怎麼做。和一般 prompt 的差別是:Skill 是結構化的,可以組合、版本控制、在多個 Worker 間共享。

常用 Skill 範例
Skill讓 Worker 多了什麼能力
cluster-kb-lookup主動查知識庫,找相關前例
cluster-kb-record把任務記錄到知識庫
cluster-kb-roster查 Cluster 名冊,找到合適的 Worker 轉介
sync-html-to-ccms寫完 HTML 後自動部署到 CCMS 網頁伺服器
專案專屬 skill例如 slot 遊戲的 spec-translator、verification-engine 等

Hooks — 讓特定事情自動發生

Hook 在特定時機自動觸發,不需要 AI 主動決定。

常用 Hook 範例
Hook觸發時機效果
kb-lookupWorker 啟動自動查知識庫,注入相關前例
kb-recorderWorker 停止自動把任務記錄到知識庫
chat-notifyAI 有輸出即時推送到網頁 Chat 介面(預設全域開啟)
telegram-notifyAI 有輸出同步推送到 Telegram(選用)

在 worker-profile.yaml 設定

loadout:
  skills:
    - common/cluster-kb-lookup      # 讓這個 Worker 能查知識庫
    - common/cluster-kb-record      # 讓這個 Worker 能記錄知識
    - common/cluster-kb-roster      # 讓這個 Worker 能查名冊轉介
    - my-domain/my-special-skill    # 專案專屬技能
  hooks:
    - common/kb-lookup              # 啟動時自動查知識庫
    - common/kb-recorder            # 結束時自動記錄
💡 全域預設 vs 個別設定 有些 Skills 和 Hooks 所有 Worker 都有(全域預設),例如 chat-notify(推送到網頁)。
只有需要特殊能力的 Worker,才需要在 loadout 裡個別加入。

CCMS 內建 Workers

CCMS 本身也用 Worker 設計來管理和維護系統。以下是目前部署的 CCMS 維護 Workers,它們的設計同樣遵循「角色定義 + 知識庫 + Loadout」的模式。

Worker負責範圍何時找他
⚡ ccms-worker CCMS 系統程式碼修改、新功能、Bug fix 修改後端 API、前端 UI、資料庫結構
🖥️ ccms-IT-worker 基礎設施、機器部署、nginx、SSL 憑證 新增機器、設定服務、部署新 Worker
🔍 ccms-diagnostician 診斷問題根因、方案分析(只診斷不動手) 不知道為什麼出錯、需要第二意見、動手前先做全面分析
📚 ccms-librarian 整理 ccms cluster 知識庫(raw → wiki) 知識庫需要立即更新(通常自動定期執行)
💬 feedback-worker 收集使用者回饋、Bug 回報、功能許願 回報問題、許願新功能、對 AI 回答有意見
📡 worker-monitor 監控所有 Worker 的執行狀態 查某個 Worker 是否卡住、目前進度如何

不知道找哪個 Worker?

💡 直接描述你的需求就好 Smart Router 會自動分析你說的話,路由到最合適的 Worker。
如果路由錯了,用 /switch worker名稱 手動切換,或直接問:「這個問題應該找誰?」

Worker 轉介流程

當 Worker 判斷任務超出自身範圍,會這樣做:

發現超出範圍
告訴你「建議找 X-worker」
等你確認
你說「好」後才轉介
⚠️ Worker 不會自動幫你轉介 必須經過你的明確同意,才會把任務交給另一個 Worker。這是保護你不在不知情的情況下讓任務流轉。

常見任務指南

幾個常見情境的處理方式,讓你快速上手。

我想讓 AI 負責我的專案開發

建議流程
  1. 建立 worker-profile.yaml,設定 git.repo 指向你的程式碼庫
  2. 加入 kb-lookup + kb-recorder hook(讓 Worker 有記憶)
  3. 定義 cluster_scope(這個 Worker 負責什麼)
  4. 請 ccms-IT-worker 協助部署

我想修改 CCMS 系統功能

建議流程
  1. 進入 ccms-worker(系統自動路由,或用 /switch ccms-worker
  2. 描述你想改什麼,AI 會先說明影響範圍,等你確認後才動手
  3. 修改完成後 AI 告知結果,並問要不要 commit/push

系統出問題了,我不知道根因

建議流程
  1. 先找 ccms-diagnostician,描述你看到的現象
  2. AI 分析根因,提出 2-3 個解法方案
  3. 確認方案後,AI 建議轉介給 ccms-worker 或 ccms-IT-worker 執行

我想讓 AI 記住某些知識,以後自動用

做法

確保 Worker 有加入 kb-recorder hook,每次任務結束自動記錄。
或直接告訴 AI:「請把這件事記到知識庫」,AI 會呼叫 cluster-kb-record

Worker 好像卡住了

處理步驟
  1. 問 worker-monitor:「XXX-worker 現在在做什麼,有沒有卡住?」
  2. 傳送空白訊息或 /clear 嘗試重置對話 context
  3. 若仍無反應,聯繫管理員

被路由到錯的 Worker

做法

輸入 /switch 正確的worker名稱,或直接說:「這個問題應該找 XXX-worker 處理」。

我想回報 Bug 或功能需求

做法

找 feedback-worker,描述問題或功能需求。如果是 Bug,附上重現步驟會很有幫助。