| name | setup-workflow |
| version | 1.0.0 |
| description | 一鍵配置 multi-agent-workflow 規範執行機制 |
| triggers | ["setup-workflow","setup-wf"] |
| allowed-tools | ["Bash","Read","Write","Edit","Glob"] |
Setup Workflow
為當前專案配置 multi-agent-workflow 的規範執行機制。
使用方式
/setup-workflow
/setup-workflow --check
/setup-workflow --minimal
配置內容
1. Hook 腳本
自動 commit、驗證檢查的 Python 腳本。
2. 權限預設
常用命令預先允許(git, pnpm, npm, pytest 等)。
3. Memory 結構
研究/計劃/實作記錄目錄(可選)。
執行步驟
Step 1: 檢查現有配置
cat .claude/settings.local.json 2>/dev/null || echo "{}"
檢查項目:
Step 2: 創建 Hook 腳本
創建 scripts/hooks/workflow_hooks.py:
"""
Workflow Hooks - 統一的 hook 處理入口
支援多種觸發類型:post_task, subagent_stop, pre_commit
"""
import json
import subprocess
import sys
import os
from pathlib import Path
def get_project_dir():
return os.environ.get("CLAUDE_PROJECT_DIR", os.getcwd())
def auto_commit(project_dir: str, message: str):
"""自動 commit 變更"""
result = subprocess.run(
["git", "status", "--porcelain"],
capture_output=True, text=True, cwd=project_dir
)
if not result.stdout.strip():
return False
subprocess.run(
["git", "add", "-A", ":!node_modules/", ":!dist/", ":!*.log", ":!.env*"],
cwd=project_dir, capture_output=True
)
full_msg = f"{message}\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"
result = subprocess.run(
["git", "commit", "-m", full_msg],
cwd=project_dir, capture_output=True
)
return result.returncode == 0
def run_verification(project_dir: ) -> [, ]:
package_json = Path(project_dir) /
pyproject = Path(project_dir) /
package_json.exists():
result = subprocess.run(
[, , ],
capture_output=, text=, cwd=project_dir, timeout=
)
pyproject.exists():
result = subprocess.run(
[, , ],
capture_output=, text=, cwd=project_dir, timeout=
)
:
,
result.returncode == :
,
:
, result.stdout + result.stderr
():
project_dir = input_data.get(, get_project_dir())
tool_input = input_data.get(, {})
description = tool_input.get(, )[:]
committed = auto_commit(project_dir, )
committed:
passed, output = run_verification(project_dir)
passed:
(, file=sys.stderr)
():
project_dir = input_data.get(, get_project_dir())
memory_dir = Path(project_dir) / /
memory_dir.exists():
result = subprocess.run(
[, , , (memory_dir)],
capture_output=, text=, cwd=project_dir
)
result.stdout.strip():
(, file=sys.stderr)
():
(sys.argv) < :
(, file=sys.stderr)
hook_type = sys.argv[]
:
input_data = json.load(sys.stdin)
:
input_data = {}
handlers = {
: handle_post_task,
: handle_subagent_stop,
}
handler = handlers.get(hook_type)
handler:
handler(input_data)
__name__ == :
main()
Step 3: 更新 settings.local.json
合併以下配置到現有 settings:
{
"permissions": {
"allow": [
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git push:*)",
"Bash(git status:*)",
"Bash(git diff:*)",
"Bash(git log:*)",
"Bash(pnpm:*)",
"Bash(npm:*)",
"Bash(npx:*)",
"Bash(python3:*)",
"Bash(pytest:*)",
"Bash(vitest:*)"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "Task",
"hooks": [
{
"type": "command",
"command": "python3 \"$CLAUDE_PROJECT_DIR/scripts/hooks/workflow_hooks.py\" post_task"
Step 4: 創建 Memory 結構(可選)
mkdir -p .claude/memory/{tasks,research,plans,implement,review,workflows}
Step 5: 顯示配置摘要
✅ Workflow 設置完成!
配置項目:
✓ Hook 腳本:scripts/hooks/workflow_hooks.py
✓ 權限:12 個常用命令已允許
✓ Hooks:PostToolUse(Task), SubagentStop
⚠️ 重要規範:
• 所有程式碼修改必須使用 Task 工具(確保自動 commit)
• 禁止主對話直接 Edit/Write 程式碼
功能說明:
• Task 完成後自動 commit 並運行測試
• Subagent 結束時檢測 memory 變更
• 測試失敗會提示修復
相關命令:
• /memory-commit - 手動 commit memory 變更
• /orchestrate - 端到端工作流(會自動使用這些 hooks)
注意事項
- 會保留現有的 settings.local.json 配置
- Hook 腳本需要 Python 3.8+
- 如果專案沒有測試框架,驗證步驟會跳過
- 可以用
--minimal 只設置權限,不啟用 hooks