ccg-ros2-workflow 2.2.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +211 -96
- package/README.zh-CN.md +256 -0
- package/dist/cli.mjs +15 -15
- package/dist/index.d.mts +61 -34
- package/dist/index.d.ts +61 -34
- package/dist/index.mjs +4 -4
- package/dist/shared/ccg-ros2-workflow.Bhm8c7P1.mjs +5154 -0
- package/package.json +31 -12
- package/templates/codex/AGENTS.md +348 -0
- package/templates/codex/agents/ccg-implement.toml +73 -0
- package/templates/codex/agents/ccg-research.toml +73 -0
- package/templates/codex/agents/ccg-review.toml +82 -0
- package/templates/codex/config.toml +21 -0
- package/templates/codex/hooks/ccg-workflow.py +253 -0
- package/templates/codex/hooks.json +15 -0
- package/templates/commands/agents/planner.md +97 -122
- package/templates/commands/agents/system-integrator.md +2 -2
- package/templates/commands/agents/team-architect.md +97 -0
- package/templates/commands/agents/team-qa.md +121 -0
- package/templates/commands/agents/team-reviewer.md +112 -0
- package/templates/commands/commit.md +30 -1
- package/templates/commands/context.md +332 -0
- package/templates/commands/go.md +206 -0
- package/templates/commands/init.md +1 -1
- package/templates/commands/spec-impl.md +41 -21
- package/templates/commands/spec-init.md +21 -27
- package/templates/commands/spec-plan.md +54 -21
- package/templates/commands/spec-research.md +78 -26
- package/templates/commands/spec-review.md +20 -16
- package/templates/{commands → commands-legacy}/analyze.md +1 -1
- package/templates/commands-legacy/backend.md +224 -0
- package/templates/commands-legacy/codex-exec.md +411 -0
- package/templates/{commands → commands-legacy}/debug.md +1 -1
- package/templates/commands-legacy/enhance.md +55 -0
- package/templates/{commands → commands-legacy}/feat.md +2 -2
- package/templates/commands-legacy/frontend.md +213 -0
- package/templates/{commands → commands-legacy}/optimize.md +1 -1
- package/templates/{commands → commands-legacy}/plan.md +1 -15
- package/templates/{commands → commands-legacy}/team-plan.md +1 -1
- package/templates/commands-legacy/team.md +475 -0
- package/templates/{commands → commands-legacy}/test.md +1 -1
- package/templates/commands-legacy/workflow.md +283 -0
- package/templates/engine/model-router.md +123 -0
- package/templates/engine/phase-guide.md +207 -0
- package/templates/engine/strategies/debug-investigate.md +169 -0
- package/templates/engine/strategies/deep-research.md +141 -0
- package/templates/engine/strategies/direct-fix.md +108 -0
- package/templates/engine/strategies/full-collaborate.md +389 -0
- package/templates/engine/strategies/git-action.md +43 -0
- package/templates/engine/strategies/guided-develop.md +282 -0
- package/templates/engine/strategies/optimize-measure.md +103 -0
- package/templates/engine/strategies/quick-implement.md +96 -0
- package/templates/engine/strategies/refactor-safely.md +180 -0
- package/templates/engine/strategies/review-audit.md +123 -0
- package/templates/hooks/session-start.js +100 -0
- package/templates/hooks/skill-router.js +144 -0
- package/templates/hooks/subagent-context.js +161 -0
- package/templates/hooks/task-utils.js +190 -0
- package/templates/hooks/workflow-state.js +55 -0
- package/templates/output-styles/abyss-command.md +56 -0
- package/templates/output-styles/abyss-concise.md +89 -0
- package/templates/output-styles/abyss-ritual.md +70 -0
- package/templates/output-styles/engineer-professional.md +20 -3
- package/templates/output-styles/laowang-engineer.md +2 -2
- package/templates/prompts/antigravity/analyzer.md +59 -0
- package/templates/prompts/antigravity/architect.md +55 -0
- package/templates/prompts/antigravity/builder.md +52 -0
- package/templates/prompts/antigravity/debugger.md +48 -0
- package/templates/prompts/antigravity/frontend.md +50 -0
- package/templates/prompts/antigravity/optimizer.md +40 -0
- package/templates/prompts/antigravity/reviewer.md +67 -0
- package/templates/prompts/antigravity/tester.md +39 -0
- package/templates/prompts/claude/debugger.md +1 -1
- package/templates/prompts/claude/reviewer.md +1 -1
- package/templates/prompts/codex/analyzer.md +8 -0
- package/templates/prompts/codex/architect.md +9 -1
- package/templates/prompts/codex/builder.md +61 -0
- package/templates/prompts/codex/debugger.md +9 -1
- package/templates/prompts/codex/optimizer.md +7 -0
- package/templates/prompts/codex/reviewer.md +7 -0
- package/templates/prompts/codex/tester.md +8 -1
- package/templates/prompts/gemini/analyzer.md +11 -3
- package/templates/prompts/gemini/architect.md +10 -2
- package/templates/prompts/gemini/debugger.md +8 -0
- package/templates/prompts/gemini/frontend.md +10 -2
- package/templates/prompts/gemini/optimizer.md +9 -2
- package/templates/prompts/gemini/reviewer.md +7 -0
- package/templates/prompts/gemini/tester.md +8 -1
- package/templates/rules/ccg-skill-routing.md +91 -0
- package/templates/rules/ccg-skills.md +65 -0
- package/templates/skills/SKILL.md +92 -0
- package/templates/skills/domains/ai/SKILL.md +34 -0
- package/templates/skills/domains/ai/agent-dev.md +242 -0
- package/templates/skills/domains/ai/llm-security.md +288 -0
- package/templates/skills/domains/ai/prompt-and-eval.md +279 -0
- package/templates/skills/domains/ai/rag-system.md +542 -0
- package/templates/skills/domains/architecture/SKILL.md +42 -0
- package/templates/skills/domains/architecture/api-design.md +225 -0
- package/templates/skills/domains/architecture/caching.md +299 -0
- package/templates/skills/domains/architecture/cloud-native.md +285 -0
- package/templates/skills/domains/architecture/message-queue.md +329 -0
- package/templates/skills/domains/architecture/security-arch.md +297 -0
- package/templates/skills/domains/data-engineering/SKILL.md +207 -0
- package/templates/skills/domains/development/SKILL.md +46 -0
- package/templates/skills/domains/development/cpp.md +369 -0
- package/templates/skills/domains/development/go.md +323 -0
- package/templates/skills/domains/development/java.md +277 -0
- package/templates/skills/domains/development/python.md +487 -0
- package/templates/skills/domains/development/rust.md +313 -0
- package/templates/skills/domains/development/shell.md +313 -0
- package/templates/skills/domains/development/typescript.md +277 -0
- package/templates/skills/domains/devops/SKILL.md +39 -0
- package/templates/skills/domains/devops/cost-optimization.md +272 -0
- package/templates/skills/domains/devops/database.md +217 -0
- package/templates/skills/domains/devops/devsecops.md +198 -0
- package/templates/skills/domains/devops/git-workflow.md +181 -0
- package/templates/skills/domains/devops/observability.md +280 -0
- package/templates/skills/domains/devops/performance.md +336 -0
- package/templates/skills/domains/devops/testing.md +283 -0
- package/templates/skills/domains/infrastructure/SKILL.md +200 -0
- package/templates/skills/domains/mobile/SKILL.md +224 -0
- package/templates/skills/domains/orchestration/SKILL.md +29 -0
- package/templates/skills/domains/orchestration/multi-agent.md +263 -0
- package/templates/skills/domains/ros2-control/SKILL.md +206 -0
- package/templates/skills/domains/ros2-hardware/SKILL.md +277 -0
- package/templates/skills/domains/ros2-manipulation/SKILL.md +237 -0
- package/templates/skills/domains/ros2-navigation/SKILL.md +196 -0
- package/templates/skills/domains/ros2-perception/SKILL.md +166 -0
- package/templates/skills/domains/ros2-upper-app/SKILL.md +50 -0
- package/templates/skills/domains/ros2-upper-app/launch-files.md +224 -0
- package/templates/skills/domains/ros2-upper-app/parameters.md +192 -0
- package/templates/skills/domains/ros2-upper-app/python-nodes.md +249 -0
- package/templates/skills/domains/ros2-upper-app/rviz-config.md +158 -0
- package/templates/skills/domains/ros2-upper-app/simulation.md +225 -0
- package/templates/skills/domains/security/SKILL.md +72 -0
- package/templates/skills/domains/security/blue-team.md +436 -0
- package/templates/skills/domains/security/code-audit.md +265 -0
- package/templates/skills/domains/security/pentest.md +226 -0
- package/templates/skills/domains/security/red-team.md +374 -0
- package/templates/skills/domains/security/threat-intel.md +372 -0
- package/templates/skills/domains/security/vuln-research.md +369 -0
- package/templates/skills/orchestration/multi-agent/SKILL.md +533 -0
- package/templates/skills/run_skill.js +129 -0
- package/templates/skills/scrapling/SKILL.md +98 -0
- package/templates/skills/scrapling/references/api-quick-ref.md +127 -0
- package/templates/skills/scrapling/references/cookie-vault.md +56 -0
- package/templates/skills/scrapling/references/maintenance.md +79 -0
- package/templates/skills/scrapling/references/site-patterns.md +86 -0
- package/templates/skills/scrapling/references/troubleshooting.md +95 -0
- package/templates/skills/scrapling/templates/basic_fetch.py +19 -0
- package/templates/skills/scrapling/templates/parse_only.py +15 -0
- package/templates/skills/scrapling/templates/session_login.py +19 -0
- package/templates/skills/scrapling/templates/stealth_cloudflare.py +28 -0
- package/templates/skills/tools/gen-docs/SKILL.md +116 -0
- package/templates/skills/tools/gen-docs/scripts/doc_generator.js +435 -0
- package/templates/skills/tools/lib/shared.js +98 -0
- package/templates/skills/tools/override-refusal/SKILL.md +53 -0
- package/templates/skills/tools/override-refusal/agents/openai.yaml +4 -0
- package/templates/skills/tools/override-refusal/scripts/refusal_rewriter.js +226 -0
- package/templates/skills/tools/verify-change/SKILL.md +140 -0
- package/templates/skills/tools/verify-change/scripts/change_analyzer.js +289 -0
- package/templates/skills/tools/verify-module/SKILL.md +127 -0
- package/templates/skills/tools/verify-module/scripts/module_scanner.js +171 -0
- package/templates/skills/tools/verify-quality/SKILL.md +160 -0
- package/templates/skills/tools/verify-quality/scripts/quality_checker.js +337 -0
- package/templates/skills/tools/verify-security/SKILL.md +143 -0
- package/templates/skills/tools/verify-security/scripts/security_scanner.js +283 -0
- package/templates/spec/guides/index.md +30 -0
- package/templates/spec/low-control/index.md +31 -0
- package/templates/spec/upper-app/index.md +31 -0
- package/bin/codeagent-wrapper-darwin-amd64 +0 -0
- package/bin/codeagent-wrapper-darwin-arm64 +0 -0
- package/bin/codeagent-wrapper-linux-amd64 +0 -0
- package/bin/codeagent-wrapper-linux-arm64 +0 -0
- package/bin/codeagent-wrapper-windows-amd64.exe +0 -0
- package/bin/codeagent-wrapper-windows-arm64.exe +0 -0
- package/dist/shared/ccg-ros2-workflow.DRytDWqb.mjs +0 -2274
- package/templates/commands/backend.md +0 -162
- package/templates/commands/enhance.md +0 -36
- package/templates/commands/frontend.md +0 -162
- package/templates/commands/workflow.md +0 -202
- /package/templates/{commands → commands-legacy}/execute.md +0 -0
- /package/templates/{commands → commands-legacy}/review.md +0 -0
- /package/templates/{commands → commands-legacy}/team-exec.md +0 -0
- /package/templates/{commands → commands-legacy}/team-research.md +0 -0
- /package/templates/{commands → commands-legacy}/team-review.md +0 -0
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
# Strategy: Full Collaborate — 完整多模型协作
|
|
2
|
+
|
|
3
|
+
> 适用于复杂功能开发,需要多模型并行分析、规划和审查。等效于 /ccg:workflow。
|
|
4
|
+
|
|
5
|
+
## 适用条件
|
|
6
|
+
- 复杂度 L/XL(5+ 文件,跨模块,架构级变更)
|
|
7
|
+
- 风险 medium 或 high
|
|
8
|
+
- 需要多角度分析和交叉验证
|
|
9
|
+
|
|
10
|
+
## 前置加载
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Read("~/.claude/.ccg/engine/model-router.md")
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 工作流状态机
|
|
19
|
+
|
|
20
|
+
[phase-state:1-research]
|
|
21
|
+
当前阶段:研究与分析 [模式:研究]
|
|
22
|
+
📍 Next: 需求评分 ≥7 后进入多模型构思
|
|
23
|
+
[/phase-state:1-research]
|
|
24
|
+
|
|
25
|
+
[phase-state:2-ideation]
|
|
26
|
+
当前阶段:多模型构思 [模式:构思]
|
|
27
|
+
Gate: 需求完整性评分 ≥7 ✓
|
|
28
|
+
📍 Next: 双模型分析结果返回后进入规划
|
|
29
|
+
[/phase-state:2-ideation]
|
|
30
|
+
|
|
31
|
+
[phase-state:3-planning]
|
|
32
|
+
当前阶段:详细规划 [模式:计划]
|
|
33
|
+
Gate: 双模型分析已返回 ✓
|
|
34
|
+
📍 Next: 用户审批计划后进入实施(HARD STOP)
|
|
35
|
+
[/phase-state:3-planning]
|
|
36
|
+
|
|
37
|
+
[phase-state:4-implementation]
|
|
38
|
+
当前阶段:实施 [模式:执行]
|
|
39
|
+
Gate: 用户已审批计划 ✓
|
|
40
|
+
📍 Next: 实施完成后进入优化审查
|
|
41
|
+
[/phase-state:4-implementation]
|
|
42
|
+
|
|
43
|
+
[phase-state:5-optimization]
|
|
44
|
+
当前阶段:优化审查 [模式:优化]
|
|
45
|
+
Gate: 实施已完成 ✓
|
|
46
|
+
📍 Next: 审查结果整合后进入最终验收
|
|
47
|
+
[/phase-state:5-optimization]
|
|
48
|
+
|
|
49
|
+
[phase-state:6-final]
|
|
50
|
+
当前阶段:最终验收 [模式:评审]
|
|
51
|
+
Gate: 优化审查已完成 ✓
|
|
52
|
+
📍 Next: 验收通过后建议提交
|
|
53
|
+
[/phase-state:6-final]
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 阶段详情
|
|
58
|
+
|
|
59
|
+
### Phase 1: 研究与分析 [required]
|
|
60
|
+
|
|
61
|
+
`[模式:研究]`
|
|
62
|
+
|
|
63
|
+
1. **需求增强**:分析 $ARGUMENTS 的意图、缺失信息、隐含假设,补全为结构化需求(目标、约束、范围、验收标准)
|
|
64
|
+
2. **上下文检索**:用 MCP 搜索工具收集项目上下文
|
|
65
|
+
3. **需求完整性评分**(0-10):
|
|
66
|
+
- 目标明确性(0-3)、预期结果(0-3)、边界范围(0-2)、约束条件(0-2)
|
|
67
|
+
- ≥7:继续 | <7:停止,提出补充问题
|
|
68
|
+
|
|
69
|
+
**Task 更新**:
|
|
70
|
+
```
|
|
71
|
+
更新 .ccg/tasks/{task-name}/task.json:
|
|
72
|
+
currentPhase → "1-research"
|
|
73
|
+
nextAction → "需求增强 + 上下文检索"
|
|
74
|
+
```
|
|
75
|
+
持久化:写入 `.ccg/tasks/{task-name}/requirements.md`
|
|
76
|
+
|
|
77
|
+
### Phase 2: 多模型构思 [required]
|
|
78
|
+
|
|
79
|
+
`[模式:构思]`
|
|
80
|
+
|
|
81
|
+
**Gate check**: 需求评分 ≥7
|
|
82
|
+
|
|
83
|
+
**并行调用**(`run_in_background: true`):
|
|
84
|
+
- **backend 模型**:analyzer 角色 — 技术可行性、底层控制方案、风险评估
|
|
85
|
+
- **frontend 模型**:analyzer 角色 — UI 可行性、上层应用方案、用户体验
|
|
86
|
+
|
|
87
|
+
使用 model-router.md 中的调用模板。
|
|
88
|
+
|
|
89
|
+
等待双模型返回:
|
|
90
|
+
```
|
|
91
|
+
TaskOutput({ task_id: "$BACKEND_TASK_ID", block: true, timeout: 600000 })
|
|
92
|
+
TaskOutput({ task_id: "$FRONTEND_TASK_ID", block: true, timeout: 600000 })
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**保存 SESSION_ID**(`BACKEND_SESSION` / `FRONTEND_SESSION`)用于后续复用。
|
|
96
|
+
|
|
97
|
+
**重试规则**:
|
|
98
|
+
- frontend 模型失败 → 重试 2 次,间隔 5s
|
|
99
|
+
- backend 模型执行中(5-15 分钟正常)→ 持续等待,**绝不终止**
|
|
100
|
+
- 3 次全败 → 降级为单模型,告知用户
|
|
101
|
+
|
|
102
|
+
综合双方分析,输出方案对比(至少 2 个方案)。
|
|
103
|
+
|
|
104
|
+
**Task 更新**:`currentPhase → "2-ideation"`, `nextAction → "综合分析结果,进入规划"`
|
|
105
|
+
**持久化**:写入 `.ccg/tasks/{task-name}/analysis.md`
|
|
106
|
+
|
|
107
|
+
**策展 context.jsonl**:
|
|
108
|
+
在进入 Phase 3 前,策展 `.ccg/tasks/{task-name}/context.jsonl`:
|
|
109
|
+
- 检查 `.ccg/spec/` 存在 → 列出相关 spec 文件
|
|
110
|
+
- 将 analysis.md 加入(子 Agent 在规划阶段需要参考分析结果)
|
|
111
|
+
- 格式:每行 `{"file": "路径", "reason": "原因"}`
|
|
112
|
+
|
|
113
|
+
### Phase 3: 详细规划 [required]
|
|
114
|
+
|
|
115
|
+
`[模式:计划]`
|
|
116
|
+
|
|
117
|
+
**Gate check**: 双模型分析已返回
|
|
118
|
+
|
|
119
|
+
**并行调用**(复用会话 `resume`):
|
|
120
|
+
- **backend 模型**:architect 角色 + `resume $BACKEND_SESSION`
|
|
121
|
+
- **frontend 模型**:architect 角色 + `resume $FRONTEND_SESSION`
|
|
122
|
+
|
|
123
|
+
综合双方规划,输出详细实施计划:
|
|
124
|
+
- 实施步骤(按文件/模块分组)
|
|
125
|
+
- 架构决策及理由
|
|
126
|
+
- 测试策略
|
|
127
|
+
- 风险及缓解措施
|
|
128
|
+
|
|
129
|
+
**持久化**:写入 `.ccg/tasks/{task-name}/plan.md`
|
|
130
|
+
|
|
131
|
+
**Task 更新**:
|
|
132
|
+
```
|
|
133
|
+
更新 task.json:
|
|
134
|
+
currentPhase → "3-planning"
|
|
135
|
+
gate → "user_approval_required"
|
|
136
|
+
nextAction → "等待用户审批计划"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**⛔⛔⛔ HARD STOP — 你必须在这里停下来,向用户展示以下选项并等待回复。不可跳过,不可默认选择。⛔⛔⛔**
|
|
140
|
+
|
|
141
|
+
你现在必须输出以下内容(原样输出,不是代码块示例):
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
⛔ **计划审批 + 执行模式选择**
|
|
145
|
+
|
|
146
|
+
请审批以上计划,并选择谁来写代码:
|
|
147
|
+
1. **Agent Teams** — Claude Builders 并行写,多文件同时进行
|
|
148
|
+
2. **Codex / Antigravity** — 外部模型写代码,更快更便宜,Claude 监控审查
|
|
149
|
+
|
|
150
|
+
请回复 1 或 2(或直接说"用team"/"用codex"等)。
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
**在用户回复之前,你不可以执行任何文件写入操作。** 未审批不可进入 Phase 4。
|
|
154
|
+
|
|
155
|
+
用户确认后:`task.json: gate → null`
|
|
156
|
+
|
|
157
|
+
### Phase 4: 实施
|
|
158
|
+
|
|
159
|
+
`[模式:执行]`
|
|
160
|
+
|
|
161
|
+
**Gate check**: 用户已审批计划 + 选择了执行模式
|
|
162
|
+
|
|
163
|
+
根据用户选择的执行模式执行:
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
#### 模式 A: Agent Teams 并行(用户选 [1])
|
|
168
|
+
|
|
169
|
+
**⛔⛔⛔ 你的第一个动作必须是 TeamCreate。不是 Write,不是 Bash,不是 Read,是 TeamCreate。⛔⛔⛔**
|
|
170
|
+
|
|
171
|
+
**你绝对不可以自己用 Write/Edit 工具写产品代码。所有代码由 Team Builder 写。你只做编排。**
|
|
172
|
+
|
|
173
|
+
**Task 更新**:`currentPhase → "4-implementation"`, `nextAction → "TeamCreate → spawn Builders"`
|
|
174
|
+
|
|
175
|
+
#### Step 1: 拆分子任务
|
|
176
|
+
|
|
177
|
+
从 plan.md 中提取实施步骤,按**文件归属**拆分为独立子任务:
|
|
178
|
+
- 每个子任务有明确的文件范围(互不重叠)
|
|
179
|
+
- 标注依赖关系:Layer 1(无依赖)→ Layer 2(依赖 Layer 1)
|
|
180
|
+
|
|
181
|
+
#### Step 2: 创建 Team(必须执行)
|
|
182
|
+
|
|
183
|
+
**立即调用 TeamCreate,不可跳过或假设会失败:**
|
|
184
|
+
```
|
|
185
|
+
TeamCreate({ team_name: "{task-id}-team", description: "CCG 实施团队" })
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
⚠️ 只有当 TeamCreate **实际返回错误**时(Agent Teams 未启用),才可降级为自己写。**不可预判失败而跳过。**
|
|
189
|
+
|
|
190
|
+
#### Step 3: 并行 spawn Layer 1 Builders
|
|
191
|
+
|
|
192
|
+
**所有 Layer 1 Builder 必须在同一条消息中 spawn**(一条消息多个 Agent 调用 = 真正并行):
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
Agent({
|
|
196
|
+
team_name: "{task-id}-team",
|
|
197
|
+
name: "dev-1",
|
|
198
|
+
model: "sonnet",
|
|
199
|
+
prompt: "你是 Builder,负责实施子任务 1。\n\n## 工作目录\n{WORKDIR}\n\n## 文件范围约束(⛔ 硬性规则)\n你只能创建或修改以下文件:\n- {file1}\n- {file2}\n严禁修改其他文件。违反 = 任务失败。\n\n## 实施步骤\n{steps from plan.md}\n\n## 验收标准\n{criteria from prd}\n\n完成后标记任务 completed。"
|
|
200
|
+
})
|
|
201
|
+
Agent({
|
|
202
|
+
team_name: "{task-id}-team",
|
|
203
|
+
name: "dev-2",
|
|
204
|
+
model: "sonnet",
|
|
205
|
+
prompt: "..."
|
|
206
|
+
})
|
|
207
|
+
// ... 所有 Layer 1 dev 在这一条消息里
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### Step 4: 等待 Layer 1 → spawn Layer 2
|
|
211
|
+
|
|
212
|
+
- teammates 完成后自动通知(不需要轮询)
|
|
213
|
+
- Layer 1 全部完成后 → 在新消息中 spawn Layer 2 Builders
|
|
214
|
+
- Builder 遇到问题 → SendMessage 指导
|
|
215
|
+
|
|
216
|
+
#### Step 5: spawn Reviewer 快检
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
Agent({
|
|
220
|
+
team_name: "{task-id}-team",
|
|
221
|
+
name: "reviewer",
|
|
222
|
+
model: "sonnet",
|
|
223
|
+
prompt: "审查所有变更文件(git diff)。运行 lint/typecheck/test。输出 Critical/Warning/Info 分级报告。完成后标记 completed。"
|
|
224
|
+
})
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Critical → spawn fix-dev 修复(最多 2 轮)。
|
|
228
|
+
|
|
229
|
+
#### Step 6: shutdown + cleanup
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
SendMessage({ to: "dev-1", message: { type: "shutdown_request" } })
|
|
233
|
+
SendMessage({ to: "dev-2", message: { type: "shutdown_request" } })
|
|
234
|
+
SendMessage({ to: "reviewer", message: { type: "shutdown_request" } })
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### 降级方案(仅当 TeamCreate 实际报错时)
|
|
238
|
+
|
|
239
|
+
如果 TeamCreate 返回错误(如 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 未启用),则:
|
|
240
|
+
1. 告知用户:"Agent Teams 未启用,降级为顺序实施"
|
|
241
|
+
2. 按 plan.md 中的 Layer 顺序逐文件实施
|
|
242
|
+
3. 仍然遵守质量关卡
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
#### 模式 B: 外部模型并行实施(用户选 [2])
|
|
247
|
+
|
|
248
|
+
**Task 更新**:`currentPhase → "4-implementation"`, `nextAction → "Parallel Builder 执行 plan"`
|
|
249
|
+
|
|
250
|
+
Claude 作为编排者,调用外部模型(Codex / Antigravity)**并行写代码**。
|
|
251
|
+
|
|
252
|
+
**Step 1**: 从 plan.md 按**文件归属**拆分为并行子任务:
|
|
253
|
+
- **Layer 1** — 无依赖(底层模块:model/store/util/schema)→ 并行
|
|
254
|
+
- **Layer 2** — 依赖 Layer 1(上层:route/middleware/controller/component)→ 串行等 Layer 1
|
|
255
|
+
- 每个子任务:文件范围 + 实施步骤 + 验证命令
|
|
256
|
+
|
|
257
|
+
**Step 2**: 调用 codeagent-wrapper `--parallel` 模式:
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
Bash({
|
|
261
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --parallel --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}- \"$WORKDIR\" <<'PARALLEL_EOF'\n---TASK---\nid: layer1-{name1}\nworkdir: $WORKDIR\n---CONTENT---\nROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/builder.md\n<TASK>\n## 文件范围(⛔ 只改这些文件)\n{file1, file2}\n\n## 实施步骤\n{steps from plan.md Layer 1}\n\n## 验证命令\n{test/lint commands}\n</TASK>\n---TASK---\nid: layer1-{name2}\nworkdir: $WORKDIR\n---CONTENT---\nROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/builder.md\n<TASK>\n## 文件范围\n{file3, file4}\n\n## 实施步骤\n{steps}\n</TASK>\n---TASK---\nid: layer2-{name3}\nworkdir: $WORKDIR\ndependencies: layer1-{name1},layer1-{name2}\n---CONTENT---\nROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/builder.md\n<TASK>\n## 文件范围\n{file5, file6}\n\n## 实施步骤\n{steps from Layer 2}\n</TASK>\nPARALLEL_EOF",
|
|
262
|
+
run_in_background: true,
|
|
263
|
+
timeout: 3600000,
|
|
264
|
+
description: "Parallel Builder: {N} 个子任务(L1: {X} 并行 → L2: {Y} 串行)"
|
|
265
|
+
})
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
拆分原则:
|
|
269
|
+
- Layer 1 子任务数量 = plan 中无依赖的文件组数(通常 2-4 个)
|
|
270
|
+
- 每个子任务的文件范围**不可重叠**
|
|
271
|
+
- 可混合 backend(底层控制任务用 codex,上层应用任务用 antigravity)— 在 `---TASK---` 中指定 `backend: antigravity`
|
|
272
|
+
|
|
273
|
+
**Step 3**: 等待完成,读取汇总报告(wrapper 自动合并所有子任务结果)
|
|
274
|
+
|
|
275
|
+
**Step 4**: Claude 审查产出:
|
|
276
|
+
1. `git diff` 检查所有变更
|
|
277
|
+
2. 确认变更在 plan 范围内(scope check)
|
|
278
|
+
3. 小问题(<10 行)→ Claude 直接修复
|
|
279
|
+
4. 大问题 → 再调外部模型修复,或切换模式 A
|
|
280
|
+
|
|
281
|
+
**降级**:外部模型失败/超时 → 告知用户,切换到模式 A 执行
|
|
282
|
+
|
|
283
|
+
### Phase 5: 迭代审查 [required · Ralph Loop]
|
|
284
|
+
|
|
285
|
+
`[模式:优化]`
|
|
286
|
+
|
|
287
|
+
**Gate check**: 实施已完成
|
|
288
|
+
|
|
289
|
+
**Task 更新**:`currentPhase → "5-optimization"`, `nextAction → "Ralph Loop Round 1: 双模型审查 + 质量关卡"`
|
|
290
|
+
|
|
291
|
+
参考 `phase-guide.md § 10 Ralph Loop` 执行迭代审查。最多 3 轮。
|
|
292
|
+
|
|
293
|
+
#### Round N 流程(N=1,2,3)
|
|
294
|
+
|
|
295
|
+
**5a. 双模型交叉审查(每轮 spawn 新 Agent,干净上下文)**
|
|
296
|
+
|
|
297
|
+
**并行调用**(`run_in_background: true`):
|
|
298
|
+
- **backend 模型**:reviewer 角色 — 关注安全、性能、错误处理
|
|
299
|
+
- **frontend 模型**:reviewer 角色 — 关注可访问性、设计一致性
|
|
300
|
+
|
|
301
|
+
**5b. 质量关卡**
|
|
302
|
+
|
|
303
|
+
**⛔ 以下 Skill 必须逐个调用执行,不可跳过,不可用自己的判断替代:**
|
|
304
|
+
|
|
305
|
+
1. 调用 Skill `verify-security` — 等待报告
|
|
306
|
+
2. 调用 Skill `verify-quality` — 等待报告
|
|
307
|
+
3. 调用 Skill `verify-change` — 等待报告
|
|
308
|
+
|
|
309
|
+
**5c. 综合报告**
|
|
310
|
+
|
|
311
|
+
整合审查意见 + 质量关卡结果,按严重度分级:
|
|
312
|
+
- **Critical**:必须修复(阻塞交付)
|
|
313
|
+
- **Warning**:建议修复
|
|
314
|
+
- **Info**:供参考
|
|
315
|
+
|
|
316
|
+
**持久化**:写入 `.ccg/tasks/{task-name}/review.md`(每轮覆盖)
|
|
317
|
+
|
|
318
|
+
追加进度到 `.ccg/tasks/{task-name}/fix-log.jsonl`:
|
|
319
|
+
```jsonl
|
|
320
|
+
{"round": N, "critical": X, "warning": Y, "info": Z, "ts": "ISO"}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**5d. 用户决定(⛔ 必须等待)**
|
|
324
|
+
|
|
325
|
+
展示审查结果后询问用户:
|
|
326
|
+
- 有 Critical → `发现 N 个 Critical 问题。修复后再审一轮?[Y/n]`
|
|
327
|
+
- 无 Critical 但有 Warning → `无 Critical 问题。需要再审一轮处理 Warning?[y/N]`
|
|
328
|
+
- 全部通过 → 直接进入 Phase 6
|
|
329
|
+
|
|
330
|
+
用户选择继续 →
|
|
331
|
+
1. spawn fix-dev(**新 Agent,干净上下文**)修复 Critical/Warning
|
|
332
|
+
2. fix-dev 完成后回到 5a 开始 Round N+1
|
|
333
|
+
3. 追加修复记录到 fix-log.jsonl
|
|
334
|
+
|
|
335
|
+
用户选择停止 → 进入 Phase 6
|
|
336
|
+
|
|
337
|
+
**第 3 轮仍有 Critical** → 强制停止,建议回退到 Phase 3 重新规划。
|
|
338
|
+
|
|
339
|
+
### Phase 6: 最终验收
|
|
340
|
+
|
|
341
|
+
`[模式:评审]`
|
|
342
|
+
|
|
343
|
+
**Task 更新**:`currentPhase → "6-final"`, `nextAction → "最终验收"`
|
|
344
|
+
|
|
345
|
+
1. 对照计划检查完成情况
|
|
346
|
+
2. 运行测试验证功能
|
|
347
|
+
3. `git diff` 全量变更摘要
|
|
348
|
+
4. 输出结果:
|
|
349
|
+
```
|
|
350
|
+
✅ 协作开发完成
|
|
351
|
+
变更: [N] 文件,[M] 行
|
|
352
|
+
方案: [选定方案摘要]
|
|
353
|
+
审查: [Critical: N, Warning: N, Info: N]
|
|
354
|
+
📍 Next: /ccg commit 提交,或查看 .ccg/tasks/{task-name}/ 中的完整记录
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
#### Spec Evolution(归档前必须执行)
|
|
358
|
+
|
|
359
|
+
参考 `phase-guide.md § 8 Spec Evolution Protocol` 执行:
|
|
360
|
+
1. 分析本次 `git diff` + `review.md`,提炼可复用的编码约定和经验教训
|
|
361
|
+
2. 如有值得记录的经验 → 草拟 Spec 条目,展示给用户确认后追加到 `.ccg/spec/{domain}/index.md`
|
|
362
|
+
3. 无值得提炼的经验 → 跳过(不强行凑)
|
|
363
|
+
|
|
364
|
+
**Task 更新**:`status → "archived"`
|
|
365
|
+
|
|
366
|
+
**归档任务**:将 `.ccg/tasks/{task-name}/` 移动到 `.ccg/tasks/archive/YYYY-MM/{task-name}/`
|
|
367
|
+
```bash
|
|
368
|
+
mkdir -p .ccg/tasks/archive/$(date +%Y-%m) && mv .ccg/tasks/{task-name} .ccg/tasks/archive/$(date +%Y-%m)/
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
**自动提交归档**:
|
|
372
|
+
```bash
|
|
373
|
+
git add .ccg/tasks/ && git commit -m "chore: archive ccg task {task-name}"
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
📍 Next: /ccg:commit 提交产品代码
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## 铁律
|
|
383
|
+
|
|
384
|
+
- **Phase 3 必须用户审批** — HARD STOP,不可自动跳过
|
|
385
|
+
- **Phase 2 双模型必须并行** — 不可串行调用
|
|
386
|
+
- **外部模型返回前不可提前进入下一阶段** — 等待是必须的
|
|
387
|
+
- **不可因为"任务简单"而跳过 [required] 阶段** — 每个阶段都有其价值
|
|
388
|
+
- **外部模型零文件写入权限** — 所有修改由 Claude 执行
|
|
389
|
+
- **评分 <7 或用户未审批时强制停止** — 不可绕过
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Strategy: Git Action — Git 操作
|
|
2
|
+
|
|
3
|
+
> 适用于 Git 相关操作。委托给现有的专用命令,不重复实现。
|
|
4
|
+
|
|
5
|
+
## 适用条件
|
|
6
|
+
- 用户请求 commit / rollback / branch 管理 / worktree 等 Git 操作
|
|
7
|
+
- 任何复杂度级别
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 路由表
|
|
12
|
+
|
|
13
|
+
根据用户请求中的关键词,加载对应的现有命令文件并按其指令执行:
|
|
14
|
+
|
|
15
|
+
| 关键词 | 命令文件 | 说明 |
|
|
16
|
+
|--------|---------|------|
|
|
17
|
+
| commit, 提交 | `~/.claude/commands/ccg/commit.md` | 智能提交(conventional commit) |
|
|
18
|
+
| rollback, 回滚, revert, undo | `~/.claude/commands/ccg/rollback.md` | 交互式回滚 |
|
|
19
|
+
| clean branch, 清理分支 | `~/.claude/commands/ccg/clean-branches.md` | 清理已合并分支 |
|
|
20
|
+
| worktree | `~/.claude/commands/ccg/worktree.md` | Worktree 管理 |
|
|
21
|
+
|
|
22
|
+
## 执行方式
|
|
23
|
+
|
|
24
|
+
1. 匹配关键词确定目标命令
|
|
25
|
+
2. `Read("目标命令文件路径")` 加载完整指令
|
|
26
|
+
3. 将用户的 `$ARGUMENTS` 作为该命令的输入
|
|
27
|
+
4. 严格按照命令文件的指令执行
|
|
28
|
+
|
|
29
|
+
## 未匹配的 Git 操作
|
|
30
|
+
|
|
31
|
+
如果用户的 Git 请求不匹配上述任何命令(如 `push`, `merge`, `cherry-pick`, `stash` 等):
|
|
32
|
+
- Claude 直接处理
|
|
33
|
+
- 遵循 Git 安全原则:
|
|
34
|
+
- 破坏性操作(force push, reset --hard)前必须确认
|
|
35
|
+
- 不自动 push 到远程(除非用户明确要求)
|
|
36
|
+
- 优先创建新 commit 而非 amend
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 铁律
|
|
41
|
+
|
|
42
|
+
- **不重复实现** — 现有命令已经过充分测试,直接委托
|
|
43
|
+
- **保持一致性** — 用户通过 `/ccg commit` 和 `/ccg:commit` 应得到相同结果
|