01 工具版圖
工具版圖(互動圖:可切換主題、搜尋節點;全頁開啟)
互動版:diagrams/01-tooling.html(來源 diagrams/src/01-tooling.architecture.json)
各工具的角色
| 工具 | 角色 | 邊界 |
|---|
| Operator(人) | 提需求、回答釐清問題、做產品決策、執行共用資料庫的 SQL;session 沒有推送權限時執行 推送指令 | agent 只被放行以 push-pinned.sh 推 feature/ron/*;sudo 一律被拒 |
| Claude Code | 跑 skills、讀寫 memory、呼叫 scripts;以 auto mode 執行 | 不直接用 glab 改 Issue、不直接 git merge 進整合分支 |
Skills(~/.claude/skills) | 定義「怎麼做」:/issue-pilot、/issue-run、/issue-queue、/retro、orca-cli、code-review、pr 等 | 使用者層 skill 由 ron-skills repo 同步;repo 內的 .claude/skills/ 放專案專屬 skill |
Memory/AGENTS.md/docs/agents/ | 記「不要再犯」與專案規則 | memory 是個人層;規則一旦重複被忽略就升級成腳本 |
scripts/*.mjs、*.sh | 流程的唯一入口:開單、分級、派工、合入、結案、各種 check-* gate | 每個入口都有固定的 exit code 與修正指示 |
| Orca CLI | 建立與移除 Issue worktree,並讓 Orca 追蹤 | 只做這件事;Orca 看板不再使用(見 06) |
| GitLab | Issue、狀態 label、Development board、整合分支的 remote | 唯一看板;label 即欄位 |
| Docker Desktop | testcontainers 的 MySQL,跑 Docker-backed 測試 | 只透過 run-docker-tests.sh 進入,它會先探測 Docker |
| git hooks | pre-push 跑 check-before-push.sh;reference-transaction 擋掉繞過腳本的合併與改寫整合分支歷史 | 由 install-*-hook.sh 安裝 |
圖上每條線對應的入口
| 線 | 實際動作 |
|---|
| Operator → Claude Code | 對話指令:/loop /issue-pilot、「開工 n」「結案 n」、回答 /issue-queue 的問題與 pilot 的 gate |
| Claude Code → scripts | node scripts/<入口>.mjs;skill 只是把這些入口串起來 |
| scripts → GitLab | issue-create.mjs、issue-state.mjs --set、close-issue.mjs 等透過 glab API 讀寫 |
| scripts → Orca | orca-worktree-create.mjs、worktree-audit.mjs --apply |
| scripts → Docker | run-docker-tests.sh(內含 docker-ensure.sh) |
| Issue worktree → 整合分支 | merge-into-integration.sh(有 lock 與預約) |
| git hooks → 整合分支 | reference-transaction 守護;pre-push 在每次推送時跑(agent 的 push-pinned.sh 或 Operator 的 推送指令) |