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)
GitLabIssue、狀態 label、Development board、整合分支的 remote唯一看板;label 即欄位
Docker Desktoptestcontainers 的 MySQL,跑 Docker-backed 測試只透過 run-docker-tests.sh 進入,它會先探測 Docker
git hookspre-push 跑 check-before-push.sh;reference-transaction 擋掉繞過腳本的合併與改寫整合分支歷史由 install-*-hook.sh 安裝

圖上每條線對應的入口

線實際動作
Operator → Claude Code對話指令:/loop /issue-pilot、「開工 n」「結案 n」、回答 /issue-queue 的問題與 pilot 的 gate
Claude Code → scriptsnode scripts/<入口>.mjs;skill 只是把這些入口串起來
scripts → GitLabissue-create.mjs、issue-state.mjs --set、close-issue.mjs 等透過 glab API 讀寫
scripts → Orcaorca-worktree-create.mjs、worktree-audit.mjs --apply
scripts → Dockerrun-docker-tests.sh(內含 docker-ensure.sh)
Issue worktree → 整合分支merge-into-integration.sh(有 lock 與預約)
git hooks → 整合分支reference-transaction 守護;pre-push 在每次推送時跑(agent 的 push-pinned.sh 或 Operator 的 推送指令)