ccgx-workflow 1.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/LICENSE +22 -0
- package/README.md +469 -0
- package/README.zh-CN.md +466 -0
- package/bin/ccg.mjs +2 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.mjs +173 -0
- package/dist/index.d.mts +1774 -0
- package/dist/index.d.ts +1774 -0
- package/dist/index.mjs +2029 -0
- package/dist/shared/ccgx-workflow.WgUzkiC3.mjs +5248 -0
- package/package.json +129 -0
- package/templates/commands/agents/assumptions-analyzer.md +129 -0
- package/templates/commands/agents/code-fixer.md +292 -0
- package/templates/commands/agents/codebase-mapper.md +152 -0
- package/templates/commands/agents/debug-session-manager.md +247 -0
- package/templates/commands/agents/debugger.md +111 -0
- package/templates/commands/agents/eval-auditor.md +171 -0
- package/templates/commands/agents/framework-selector.md +152 -0
- package/templates/commands/agents/get-current-datetime.md +29 -0
- package/templates/commands/agents/init-architect.md +114 -0
- package/templates/commands/agents/integration-checker.md +163 -0
- package/templates/commands/agents/interface-auditor.md +170 -0
- package/templates/commands/agents/nyquist-auditor.md +131 -0
- package/templates/commands/agents/pattern-mapper.md +111 -0
- package/templates/commands/agents/phase-runner.md +321 -0
- package/templates/commands/agents/plan-checker.md +255 -0
- package/templates/commands/agents/planner.md +320 -0
- package/templates/commands/agents/team-architect.md +186 -0
- package/templates/commands/agents/team-qa.md +121 -0
- package/templates/commands/agents/team-reviewer.md +157 -0
- package/templates/commands/agents/ui-ux-designer.md +573 -0
- package/templates/commands/agents/verifier.md +274 -0
- package/templates/commands/analyze.md +210 -0
- package/templates/commands/autonomous.md +792 -0
- package/templates/commands/cancel.md +132 -0
- package/templates/commands/clean-branches.md +117 -0
- package/templates/commands/codex-exec.md +404 -0
- package/templates/commands/commit.md +151 -0
- package/templates/commands/context.md +332 -0
- package/templates/commands/debate.md +165 -0
- package/templates/commands/debug.md +226 -0
- package/templates/commands/enhance.md +64 -0
- package/templates/commands/execute.md +380 -0
- package/templates/commands/init.md +123 -0
- package/templates/commands/optimize.md +217 -0
- package/templates/commands/plan.md +373 -0
- package/templates/commands/result.md +106 -0
- package/templates/commands/review.md +338 -0
- package/templates/commands/rollback.md +116 -0
- package/templates/commands/spec-impl.md +139 -0
- package/templates/commands/spec-init.md +101 -0
- package/templates/commands/spec-plan.md +210 -0
- package/templates/commands/spec-research.md +152 -0
- package/templates/commands/spec-review.md +120 -0
- package/templates/commands/status.md +206 -0
- package/templates/commands/team-exec.md +265 -0
- package/templates/commands/test.md +236 -0
- package/templates/commands/verify-work.md +338 -0
- package/templates/commands/verify.md +66 -0
- package/templates/commands/workflow.md +190 -0
- package/templates/commands/worktree.md +128 -0
- package/templates/hooks/ccg-context-monitor.js +159 -0
- package/templates/hooks/ccg-session-state.cjs +510 -0
- package/templates/hooks/ccg-statusline.js +142 -0
- package/templates/output-styles/abyss-command.md +56 -0
- package/templates/output-styles/abyss-concise.md +89 -0
- package/templates/output-styles/abyss-cultivator.md +302 -0
- package/templates/output-styles/abyss-ritual.md +70 -0
- package/templates/output-styles/engineer-professional.md +89 -0
- package/templates/output-styles/laowang-engineer.md +127 -0
- package/templates/output-styles/nekomata-engineer.md +120 -0
- package/templates/output-styles/ojousama-engineer.md +121 -0
- package/templates/prompts/claude/analyzer.md +59 -0
- package/templates/prompts/claude/architect.md +54 -0
- package/templates/prompts/claude/debugger.md +71 -0
- package/templates/prompts/claude/optimizer.md +73 -0
- package/templates/prompts/claude/reviewer.md +63 -0
- package/templates/prompts/claude/tester.md +69 -0
- package/templates/prompts/codex/analyzer.md +58 -0
- package/templates/prompts/codex/architect.md +54 -0
- package/templates/prompts/codex/debugger.md +74 -0
- package/templates/prompts/codex/optimizer.md +81 -0
- package/templates/prompts/codex/reviewer.md +73 -0
- package/templates/prompts/codex/tester.md +62 -0
- package/templates/prompts/gemini/analyzer.md +61 -0
- package/templates/prompts/gemini/architect.md +55 -0
- package/templates/prompts/gemini/debugger.md +78 -0
- package/templates/prompts/gemini/frontend.md +64 -0
- package/templates/prompts/gemini/optimizer.md +84 -0
- package/templates/prompts/gemini/reviewer.md +80 -0
- package/templates/prompts/gemini/tester.md +68 -0
- package/templates/rules/ccg-skill-routing.md +83 -0
- package/templates/rules/ccg-skills.md +71 -0
- package/templates/scripts/ccg-phase-runner-launcher.mjs +467 -0
- package/templates/scripts/invoke-model.mjs +949 -0
- package/templates/scripts/repatch-gemini-plugin.mjs +194 -0
- package/templates/skills/SKILL.md +92 -0
- package/templates/skills/domains/ai/SKILL.md +35 -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 +43 -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 +208 -0
- package/templates/skills/domains/development/SKILL.md +47 -0
- package/templates/skills/domains/development/cpp.md +246 -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 +288 -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 +40 -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/frontend-design/SKILL.md +244 -0
- package/templates/skills/domains/frontend-design/agents/openai.yaml +4 -0
- package/templates/skills/domains/frontend-design/claymorphism/SKILL.md +121 -0
- package/templates/skills/domains/frontend-design/claymorphism/references/tokens.css +52 -0
- package/templates/skills/domains/frontend-design/component-patterns.md +202 -0
- package/templates/skills/domains/frontend-design/engineering.md +287 -0
- package/templates/skills/domains/frontend-design/glassmorphism/SKILL.md +142 -0
- package/templates/skills/domains/frontend-design/glassmorphism/references/tokens.css +32 -0
- package/templates/skills/domains/frontend-design/liquid-glass/SKILL.md +139 -0
- package/templates/skills/domains/frontend-design/liquid-glass/references/tokens.css +81 -0
- package/templates/skills/domains/frontend-design/neubrutalism/SKILL.md +145 -0
- package/templates/skills/domains/frontend-design/neubrutalism/references/tokens.css +44 -0
- package/templates/skills/domains/frontend-design/reference/color-and-contrast.md +132 -0
- package/templates/skills/domains/frontend-design/reference/interaction-design.md +195 -0
- package/templates/skills/domains/frontend-design/reference/motion-design.md +99 -0
- package/templates/skills/domains/frontend-design/reference/responsive-design.md +114 -0
- package/templates/skills/domains/frontend-design/reference/spatial-design.md +100 -0
- package/templates/skills/domains/frontend-design/reference/typography.md +133 -0
- package/templates/skills/domains/frontend-design/reference/ux-writing.md +107 -0
- package/templates/skills/domains/frontend-design/state-management.md +680 -0
- package/templates/skills/domains/frontend-design/ui-aesthetics.md +110 -0
- package/templates/skills/domains/frontend-design/ux-principles.md +156 -0
- package/templates/skills/domains/infrastructure/SKILL.md +201 -0
- package/templates/skills/domains/mobile/SKILL.md +225 -0
- package/templates/skills/domains/orchestration/SKILL.md +30 -0
- package/templates/skills/domains/orchestration/multi-agent.md +263 -0
- package/templates/skills/domains/security/SKILL.md +73 -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/impeccable/adapt/SKILL.md +201 -0
- package/templates/skills/impeccable/animate/SKILL.md +176 -0
- package/templates/skills/impeccable/arrange/SKILL.md +126 -0
- package/templates/skills/impeccable/audit/SKILL.md +149 -0
- package/templates/skills/impeccable/bolder/SKILL.md +118 -0
- package/templates/skills/impeccable/clarify/SKILL.md +185 -0
- package/templates/skills/impeccable/colorize/SKILL.md +144 -0
- package/templates/skills/impeccable/critique/SKILL.md +203 -0
- package/templates/skills/impeccable/critique/reference/cognitive-load.md +106 -0
- package/templates/skills/impeccable/critique/reference/heuristics-scoring.md +234 -0
- package/templates/skills/impeccable/critique/reference/personas.md +178 -0
- package/templates/skills/impeccable/delight/SKILL.md +305 -0
- package/templates/skills/impeccable/distill/SKILL.md +123 -0
- package/templates/skills/impeccable/extract/SKILL.md +94 -0
- package/templates/skills/impeccable/harden/SKILL.md +357 -0
- package/templates/skills/impeccable/normalize/SKILL.md +72 -0
- package/templates/skills/impeccable/onboard/SKILL.md +248 -0
- package/templates/skills/impeccable/optimize/SKILL.md +268 -0
- package/templates/skills/impeccable/overdrive/SKILL.md +143 -0
- package/templates/skills/impeccable/polish/SKILL.md +205 -0
- package/templates/skills/impeccable/quieter/SKILL.md +104 -0
- package/templates/skills/impeccable/teach-impeccable/SKILL.md +72 -0
- package/templates/skills/impeccable/typeset/SKILL.md +117 -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/extract-learnings/SKILL.md +77 -0
- package/templates/skills/tools/forensics/SKILL.md +89 -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/health/SKILL.md +121 -0
- package/templates/skills/tools/lib/shared.js +98 -0
- package/templates/skills/tools/map-codebase/SKILL.md +118 -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 +143 -0
- package/templates/skills/tools/verify-change/scripts/change_analyzer.js +289 -0
- package/templates/skills/tools/verify-module/SKILL.md +130 -0
- package/templates/skills/tools/verify-module/scripts/module_scanner.js +171 -0
- package/templates/skills/tools/verify-quality/SKILL.md +163 -0
- package/templates/skills/tools/verify-quality/scripts/quality_checker.js +337 -0
- package/templates/skills/tools/verify-security/SKILL.md +146 -0
- package/templates/skills/tools/verify-security/scripts/security_scanner.js +283 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: '多模型调试(v4.0 manager + debugger 双层 fresh-context):科学方法 hypothesis 链 + 持久 session + cap 3 升级'
|
|
3
|
+
argument-hint: "<问题描述> [--mode=find_root_cause_only|find_and_fix] [--role=architect|critic|implementer|tester|writer]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Debug - 多模型调试(v4.0 重写)
|
|
7
|
+
|
|
8
|
+
## Role-based routing(v4.1 specialist matrix)
|
|
9
|
+
|
|
10
|
+
可选 `--role=<name>` 叠加 role 维度路由(debug-session-manager 内 spawn 的 debugger 用 role 选 prompt):
|
|
11
|
+
|
|
12
|
+
| Role × Layer | architect | critic | implementer | tester | writer |
|
|
13
|
+
| ------------- | -------------- | ------------------- | ----------- | ------------- | --------------- |
|
|
14
|
+
| **backend** | codex/architect.md | codex/reviewer.md (adversarial) | codex/debugger.md | codex/tester.md | claude |
|
|
15
|
+
| **frontend** | gemini/architect.md | gemini/reviewer.md (adversarial) | gemini/debugger.md | gemini/tester.md | gemini/analyzer.md |
|
|
16
|
+
| **fullstack** | codex+gemini/architect.md | both reviewer.md (adversarial) | runner 决 | runner 决 | claude |
|
|
17
|
+
|
|
18
|
+
**未传 --role 时按 v4.0 manager + debugger 双层流程**(debugger.md 默认 implementer 角色)——完全兼容。`--role=critic` 触发"反向假设"调试(强制构造反证),适合定位概率性 bug。详见 `src/utils/specialist-router.ts`。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
**v4.0 重大变更**:从单次双模型并行调用 → **manager + debugger 双层 fresh-context** 模式。
|
|
23
|
+
|
|
24
|
+
主线(你)只 spawn `debug-session-manager` 一次,manager 在隔离 context 内跑完整 hypothesis 多轮循环,最终返回 ≤ 200 token 的紧凑摘要。**主线 context 不再被多轮调试 transcript 污染**——这是 GSD ROI #3 (`02-subagent-matrix.md` Section 2.6) 的核心模式。
|
|
25
|
+
|
|
26
|
+
## 使用方法
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
/ccg:debug <问题描述> # 默认 find_and_fix 模式
|
|
30
|
+
/ccg:debug <问题描述> --mode=find_root_cause_only # 仅找根因,不修
|
|
31
|
+
/ccg:debug <问题描述> --mode=find_and_fix # 找根因 + 应用修复 + 跑验证
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 你的角色
|
|
37
|
+
|
|
38
|
+
你是**调试启动器**,**不**直接做调试。你的工作就 3 步:
|
|
39
|
+
|
|
40
|
+
1. 解析参数 → 提取 `symptoms` + `mode` + 生成 `slug`
|
|
41
|
+
2. **Spawn 一次** `debug-session-manager`(fresh context)
|
|
42
|
+
3. 接收 manager 返回的紧凑摘要,向用户呈现
|
|
43
|
+
|
|
44
|
+
主线**不读** manager 的中间 transcript——所有 hypothesis 链 / evidence / fix 应用都在 manager 隔离 context 完成。session 文件 `.context/debug/<slug>.md` 用户可事后审计。
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 执行工作流
|
|
49
|
+
|
|
50
|
+
### 阶段 0:参数解析
|
|
51
|
+
|
|
52
|
+
**问题描述**:$ARGUMENTS
|
|
53
|
+
|
|
54
|
+
1. 从 $ARGUMENTS 提取核心症状(错误信息 / 复现步骤 / 期望行为)
|
|
55
|
+
2. 解析 `--mode` 参数:
|
|
56
|
+
- `find_root_cause_only` — 仅找根因,找到立即返回
|
|
57
|
+
- `find_and_fix`(**默认**)— 找根因 + 应用修复 + 跑测试验证
|
|
58
|
+
3. 生成 `slug`:从症状提取 3-5 个 kebab-case 关键词(如 `login-csrf-cookie` / `react-strict-double-init`)
|
|
59
|
+
4. 用 Bash `pwd`(Unix)或 `cd`(Windows CMD)拿到工作目录绝对路径,**禁止**从 `$HOME` 推断
|
|
60
|
+
|
|
61
|
+
### 阶段 1:(可选)Prompt 增强
|
|
62
|
+
|
|
63
|
+
如症状描述模糊(如"登录有 bug"),按 `/ccg:enhance` 逻辑补全为结构化输入:
|
|
64
|
+
- 错误信息全文
|
|
65
|
+
- 复现步骤
|
|
66
|
+
- 期望行为 vs 实际行为
|
|
67
|
+
- 已尝试的修复
|
|
68
|
+
|
|
69
|
+
如已结构化则跳过。
|
|
70
|
+
|
|
71
|
+
### 阶段 2:Spawn debug-session-manager
|
|
72
|
+
|
|
73
|
+
**关键**:**只 spawn 一次**。manager 内部多轮循环 + 调度 debugger,主线不参与。
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Agent({
|
|
77
|
+
subagent_type: "debug-session-manager",
|
|
78
|
+
prompt: <见下方 prompt 模板>
|
|
79
|
+
})
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Prompt 模板**:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
你是 debug-session-manager。完整执行多轮 hypothesis 循环,最终返回 ≤ 200 token 紧凑摘要。
|
|
86
|
+
|
|
87
|
+
## 输入
|
|
88
|
+
|
|
89
|
+
slug: <生成的 slug>
|
|
90
|
+
mode: <find_root_cause_only | find_and_fix>
|
|
91
|
+
workdir: <pwd 输出>
|
|
92
|
+
symptoms: |
|
|
93
|
+
<增强后的症状描述全文>
|
|
94
|
+
|
|
95
|
+
## 工作要求
|
|
96
|
+
|
|
97
|
+
1. 在 .context/debug/<slug>.md 维护持久 hypothesis 链
|
|
98
|
+
2. 每个 hypothesis 必须 falsifiable(有可观察的 fail 条件,不接受"代码可能有 bug"空话)
|
|
99
|
+
3. spawn debugger subagent 提出 / 验证 hypothesis
|
|
100
|
+
4. cap 3 hypothesis refuted → CHECKPOINT_REACHED 升级
|
|
101
|
+
5. find_root_cause_only 模式:找到 confirmed hypothesis 立即返回 ROOT_CAUSE_FOUND
|
|
102
|
+
6. find_and_fix 模式:找到 root cause → 应用 fix → 跑测试验证 → DEBUG_COMPLETE
|
|
103
|
+
7. 不修改 .ccg/roadmap.md / .ccg-research/
|
|
104
|
+
|
|
105
|
+
## 摘要格式(严格三选一)
|
|
106
|
+
|
|
107
|
+
ROOT_CAUSE_FOUND:
|
|
108
|
+
STATUS: ROOT_CAUSE_FOUND
|
|
109
|
+
SLUG: <slug>
|
|
110
|
+
ROOT_CAUSE: <一句话>
|
|
111
|
+
SUGGESTED_FIX: <一段建议>
|
|
112
|
+
|
|
113
|
+
DEBUG_COMPLETE:
|
|
114
|
+
STATUS: DEBUG_COMPLETE
|
|
115
|
+
SLUG: <slug>
|
|
116
|
+
ROOT_CAUSE: <一句话>
|
|
117
|
+
FIX_APPLIED: <修了哪个文件做了什么>
|
|
118
|
+
VERIFICATION: <跑了什么测试,结果如何>
|
|
119
|
+
|
|
120
|
+
CHECKPOINT_REACHED:
|
|
121
|
+
STATUS: CHECKPOINT_REACHED
|
|
122
|
+
SLUG: <slug>
|
|
123
|
+
HYPOTHESES_TRIED: <数字>
|
|
124
|
+
REASON: <为什么放弃 + 建议用户怎么介入>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 阶段 3:解析摘要 + 向用户呈现
|
|
128
|
+
|
|
129
|
+
manager 返回后,解析 `STATUS:` 第一行决定显示模板:
|
|
130
|
+
|
|
131
|
+
#### STATUS=ROOT_CAUSE_FOUND
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
## 🎯 找到根因(未修)
|
|
135
|
+
|
|
136
|
+
**SLUG**: <slug>
|
|
137
|
+
**根因**: <root_cause>
|
|
138
|
+
**建议修复**:
|
|
139
|
+
<suggested_fix>
|
|
140
|
+
|
|
141
|
+
📁 完整调试记录: `.context/debug/<slug>.md`
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
是否要应用修复?
|
|
146
|
+
1. 应用修复(再跑 `/ccg:debug "<原症状>" --mode=find_and_fix`)
|
|
147
|
+
2. 仅记录,手动修复
|
|
148
|
+
3. 继续调查(提供新线索)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
用 `AskUserQuestion` 询问。
|
|
152
|
+
|
|
153
|
+
#### STATUS=DEBUG_COMPLETE
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
## ✅ 调试完成
|
|
157
|
+
|
|
158
|
+
**SLUG**: <slug>
|
|
159
|
+
**根因**: <root_cause>
|
|
160
|
+
**已应用修复**: <fix_applied>
|
|
161
|
+
**验证**: <verification>
|
|
162
|
+
|
|
163
|
+
📁 完整调试记录: `.context/debug/<slug>.md`
|
|
164
|
+
|
|
165
|
+
建议跑回归测试确认无副作用。
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### STATUS=CHECKPOINT_REACHED
|
|
169
|
+
|
|
170
|
+
```markdown
|
|
171
|
+
## ⚠️ 调试达到检查点(cap 3 hypothesis 失败)
|
|
172
|
+
|
|
173
|
+
**SLUG**: <slug>
|
|
174
|
+
**已尝试 hypothesis 数**: <hypotheses_tried>
|
|
175
|
+
**原因**: <reason>
|
|
176
|
+
|
|
177
|
+
📁 完整调试记录(含已 refuted 假设链): `.context/debug/<slug>.md`
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
manager 的 3 轮 hypothesis 都被证伪。这通常意味着:
|
|
182
|
+
- 假设方向不对(试试切换 mode 或换角度描述症状)
|
|
183
|
+
- 缺关键证据(提供更多日志 / 复现步骤)
|
|
184
|
+
- bug 在 manager 看不到的地方(环境 / 第三方依赖)
|
|
185
|
+
|
|
186
|
+
下一步选项:
|
|
187
|
+
1. 继续手动调试(参考 session.md 已 refuted 链,避免重复)
|
|
188
|
+
2. 切换 mode(find_root_cause_only ↔ find_and_fix)
|
|
189
|
+
3. 提供新症状信息后重启 `/ccg:debug`
|
|
190
|
+
4. 终止
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
用 `AskUserQuestion` 询问。
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 关键规则
|
|
198
|
+
|
|
199
|
+
1. **只 spawn manager 一次**:禁止主线自己跑多轮 hypothesis 循环(违反 fresh-context 隔离的 GSD ROI #3 设计)
|
|
200
|
+
2. **不读 manager transcript**:主线只读返回的 ≤ 200 token 摘要 + (用户需要时)`.context/debug/<slug>.md` 文件
|
|
201
|
+
3. **mode 默认 find_and_fix**:与 v3.0 行为一致(用户期待修好),仅在 `--mode=find_root_cause_only` 时仅找根因
|
|
202
|
+
4. **cap 3 = 升级**:CCG 全体系硬规约,manager 不会偷偷继续;主线尊重 CHECKPOINT_REACHED 不重 spawn
|
|
203
|
+
5. **session 文件持久**:中断恢复 / 用户审计的唯一通道
|
|
204
|
+
6. **科学方法守门**:每个 hypothesis 必须 falsifiable(manager 会拒收 debugger 给的空话)
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 与 v3.0 的差异
|
|
209
|
+
|
|
210
|
+
| 维度 | v3.0(已废) | v4.0(当前) |
|
|
211
|
+
|------|-------------|-------------|
|
|
212
|
+
| 调用模式 | 双模型并行单次诊断 | manager + debugger 双层 fresh-context |
|
|
213
|
+
| 多轮 | ❌ 没有(一次性) | ✅ hypothesis 链,cap 3 |
|
|
214
|
+
| 持久 session | ❌ 没有 | ✅ `.context/debug/<slug>.md` |
|
|
215
|
+
| 科学方法 | ❌ 接受空泛假设 | ✅ falsifiable_test 强制 |
|
|
216
|
+
| 主线 context 占用 | 高(吃两条诊断 stdout) | 极低(≤ 200 token 摘要) |
|
|
217
|
+
| 修复模式 | 用户手动 | mode=find_and_fix 自动应用 + 验证 |
|
|
218
|
+
| 中断恢复 | ❌ 无 | ✅ session 文件持久 |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 工程参考
|
|
223
|
+
|
|
224
|
+
- 子 agent 协议:`templates/commands/agents/debug-session-manager.md` + `templates/commands/agents/debugger.md`
|
|
225
|
+
- helper schema / 决策树:`src/utils/debug-session.ts`
|
|
226
|
+
- 移植来源:GSD `gsd-debug-session-manager` + `gsd-debugger`(`.ccg-research/02-subagent-matrix.md` Section 2.6)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 内置 Prompt 增强,将模糊需求转化为结构化任务描述
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
`/ccg:enhance <PROMPT>`
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
- Original prompt: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Role
|
|
12
|
+
You are the **Prompt Enhancer** - 将模糊的用户输入转化为清晰、可执行的任务描述。
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### Step 1: 分析原始 Prompt
|
|
17
|
+
|
|
18
|
+
分析用户输入,识别:
|
|
19
|
+
- **意图**:用户想要完成什么?
|
|
20
|
+
- **缺失信息**:哪些关键细节没有说明?
|
|
21
|
+
- **隐含假设**:用户可能默认但未明说的内容
|
|
22
|
+
- **上下文线索**:从对话历史和项目结构中提取相关信息
|
|
23
|
+
|
|
24
|
+
### Step 2: 增强 Prompt
|
|
25
|
+
|
|
26
|
+
基于分析结果,生成增强版 Prompt,包含:
|
|
27
|
+
|
|
28
|
+
1. **明确的目标**:具体要实现什么
|
|
29
|
+
2. **技术约束**:语言、框架、依赖等
|
|
30
|
+
3. **范围边界**:做什么、不做什么
|
|
31
|
+
4. **验收标准**:如何判断完成
|
|
32
|
+
5. **相关上下文**:涉及的文件、模块、API 等
|
|
33
|
+
|
|
34
|
+
### Step 3: 展示对比
|
|
35
|
+
|
|
36
|
+
以下格式展示:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
📝 原始 Prompt:
|
|
40
|
+
<用户原始输入>
|
|
41
|
+
|
|
42
|
+
✨ 增强后 Prompt:
|
|
43
|
+
<增强版本>
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
是否使用增强版本?(Y/n)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Step 4: 执行
|
|
50
|
+
|
|
51
|
+
- 用户确认 → 使用增强版执行任务
|
|
52
|
+
- 用户拒绝 → 使用原始 Prompt 执行
|
|
53
|
+
- 用户修改 → 根据反馈调整后执行
|
|
54
|
+
|
|
55
|
+
## 增强原则
|
|
56
|
+
|
|
57
|
+
- **补全而非改变**:保留用户原意,只补充缺失信息
|
|
58
|
+
- **具体而非泛化**:用具体的文件名、函数名、技术栈替代模糊描述
|
|
59
|
+
- **简洁而非冗长**:增强后的 Prompt 应该精炼,不堆砌无用信息
|
|
60
|
+
- **可执行而非描述**:输出应该是可以直接执行的任务,不是需求文档
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
- 自动检测语言(中文输入 → 中文输出)
|
|
64
|
+
- 也可通过在消息末尾添加 `-enhance` 或 `-Enhancer` 触发
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: '多模型协作执行 - 根据计划获取原型 → Claude 重构实施 → 多模型审计交付'
|
|
3
|
+
context_budget: orchestrator-15
|
|
4
|
+
subagent_freshness: required
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Execute - 多模型协作执行
|
|
8
|
+
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 核心协议
|
|
14
|
+
|
|
15
|
+
- **语言协议**:与工具/模型交互用**英语**,与用户交互用**中文**
|
|
16
|
+
- **代码主权**:外部模型对文件系统**零写入权限**,所有修改由 Claude 执行
|
|
17
|
+
- **脏原型重构**:将外部模型的 Unified Diff 视为"脏原型",必须重构为生产级代码
|
|
18
|
+
- **止损机制**:当前阶段输出通过验证前,不进入下一阶段
|
|
19
|
+
- **前置条件**:仅在用户对 `/ccg:plan` 输出明确回复 "Y" 后执行(如缺失,必须先二次确认)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 调用通道路由(v4.1 Phase 20,CCG codeagent 退役)
|
|
24
|
+
|
|
25
|
+
CCG v4.1 把 6 核心命令的"双模型并行"通道从 `Bash(codeagent-wrapper)` **默认切换**为 plugin spawn。判定流程:
|
|
26
|
+
|
|
27
|
+
1. **优先 plugin spawn 路径**(默认):用户已装 `codex@openai-codex` 和 `gemini@google-gemini` plugin → 用 `Agent(subagent_type="codex:codex-rescue")` + `Agent(subagent_type="gemini:gemini-rescue")` 并行 spawn,主线只接 plugin 自家 ≤200 token 摘要。
|
|
28
|
+
2. **降级 codeagent-wrapper 路径**(v4.0 BC fallback):plugin 未装 → fallback 到 `Bash(~/.claude/bin/codeagent-wrapper ...)`,与 v4.0 行为完全一致。
|
|
29
|
+
|
|
30
|
+
**判断方法**:preflight 用 `Bash` 跑 `ls ~/.claude/plugins/ 2>/dev/null | grep -E '^(codex|gemini)@'`;两个 plugin 独立判定。
|
|
31
|
+
|
|
32
|
+
**单一真相源**:`src/utils/plugin-detection.ts`(导出 `detectPlugin` / `detectPluginAvailability` / `bothPluginsInstalled`)。
|
|
33
|
+
|
|
34
|
+
⚠️ Execute 命令在主线 context 内,**允许**调 `Agent(...)`——与 subagent "引擎层禁止嵌套 spawn" 约束不冲突。
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 多模型调用规范
|
|
39
|
+
|
|
40
|
+
**工作目录**:
|
|
41
|
+
- `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
|
|
42
|
+
- 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
|
|
43
|
+
- 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
|
|
44
|
+
|
|
45
|
+
**调用语法**(v4.1 Phase 20 双通道):
|
|
46
|
+
|
|
47
|
+
**通道 A — plugin spawn(默认,原型生成)**:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Agent({
|
|
51
|
+
subagent_type: "<codex:codex-rescue|gemini:gemini-rescue>",
|
|
52
|
+
description: "Execute prototype: <backend|frontend>",
|
|
53
|
+
prompt: `ROLE_FILE: <角色提示词路径>
|
|
54
|
+
|
|
55
|
+
<TASK>
|
|
56
|
+
需求:<任务描述>
|
|
57
|
+
上下文:<计划内容 + 目标文件>
|
|
58
|
+
</TASK>
|
|
59
|
+
|
|
60
|
+
OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications.
|
|
61
|
+
Return ≤200 token structured summary (plugin-native protocol).
|
|
62
|
+
`
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
> Plugin 上下文不需要 `resume <SESSION_ID>` —— plugin advisor 自己管理跨调用 session(用 `description` 区分阶段即可)。
|
|
67
|
+
|
|
68
|
+
**通道 B — codeagent-wrapper fallback**(plugin 未装时降级,并行用 `run_in_background: true`):
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
# 复用会话调用(推荐)- 原型生成(Implementation Prototype)
|
|
72
|
+
Bash({
|
|
73
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <{{BACKEND_PRIMARY}}|{{FRONTEND_PRIMARY}}> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
|
|
74
|
+
ROLE_FILE: <角色提示词路径>
|
|
75
|
+
<TASK>
|
|
76
|
+
需求:<任务描述>
|
|
77
|
+
上下文:<计划内容 + 目标文件>
|
|
78
|
+
</TASK>
|
|
79
|
+
OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications.
|
|
80
|
+
EOF",
|
|
81
|
+
run_in_background: true,
|
|
82
|
+
timeout: 3600000,
|
|
83
|
+
description: "简短描述"
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
# 新会话调用 - 原型生成(Implementation Prototype)
|
|
87
|
+
Bash({
|
|
88
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <{{BACKEND_PRIMARY}}|{{FRONTEND_PRIMARY}}> {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EOF'
|
|
89
|
+
ROLE_FILE: <角色提示词路径>
|
|
90
|
+
<TASK>
|
|
91
|
+
需求:<任务描述>
|
|
92
|
+
上下文:<计划内容 + 目标文件>
|
|
93
|
+
</TASK>
|
|
94
|
+
OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications.
|
|
95
|
+
EOF",
|
|
96
|
+
run_in_background: true,
|
|
97
|
+
timeout: 3600000,
|
|
98
|
+
description: "简短描述"
|
|
99
|
+
})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**审计调用语法**(Code Review / Audit):
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Bash({
|
|
106
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <{{BACKEND_PRIMARY}}|{{FRONTEND_PRIMARY}}> {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EOF'
|
|
107
|
+
ROLE_FILE: <角色提示词路径>
|
|
108
|
+
<TASK>
|
|
109
|
+
Scope: Audit the final code changes.
|
|
110
|
+
Inputs:
|
|
111
|
+
- The applied patch (git diff / final unified diff)
|
|
112
|
+
- The touched files (relevant excerpts if needed)
|
|
113
|
+
Constraints:
|
|
114
|
+
- Do NOT modify any files.
|
|
115
|
+
- Do NOT output tool commands that assume filesystem access.
|
|
116
|
+
</TASK>
|
|
117
|
+
OUTPUT:
|
|
118
|
+
1) A prioritized list of issues (severity, file, rationale)
|
|
119
|
+
2) Concrete fixes; if code changes are needed, include a Unified Diff Patch in a fenced code block.
|
|
120
|
+
EOF",
|
|
121
|
+
run_in_background: true,
|
|
122
|
+
timeout: 3600000,
|
|
123
|
+
description: "简短描述"
|
|
124
|
+
})
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**角色提示词**:
|
|
128
|
+
|
|
129
|
+
| 阶段 | 后端 | 前端 |
|
|
130
|
+
|------|-------|--------|
|
|
131
|
+
| 实施 | `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md` | `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/frontend.md` |
|
|
132
|
+
| 审查 | `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md` | `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md` |
|
|
133
|
+
|
|
134
|
+
**会话复用**:如果 `/ccg:plan` 提供了 SESSION_ID,使用 `resume <SESSION_ID>` 复用上下文。
|
|
135
|
+
|
|
136
|
+
**事件驱动等待(v4.5.2 起)**:spawn 后主线说明 task-id 然后 **turn end**,引擎自动 `<task-notification>` 触发新 turn 处理结果。**不调 TaskOutput**。
|
|
137
|
+
|
|
138
|
+
⛔ **禁止**:调 `TaskOutput({block: true, timeout: 600000})` 旧 freeze poll 模式 / Kill task。
|
|
139
|
+
|
|
140
|
+
⚠️ **失败处理**:notification status=failed / exit ≠ 0 / parse 失败 → v1.7.87 标准 2-retry / 5s / 3-attempts;3 次全失败才降级单模型。
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 执行工作流
|
|
145
|
+
|
|
146
|
+
**执行任务**:$ARGUMENTS
|
|
147
|
+
|
|
148
|
+
### 📖 Phase 0:读取计划
|
|
149
|
+
|
|
150
|
+
`[模式:准备]`
|
|
151
|
+
|
|
152
|
+
1. **识别输入类型**:
|
|
153
|
+
- 计划文件路径(如 `.claude/plan/xxx.md`)
|
|
154
|
+
- 直接的任务描述
|
|
155
|
+
|
|
156
|
+
2. **读取计划内容**:
|
|
157
|
+
- 若提供了计划文件路径,读取并解析
|
|
158
|
+
- 提取:任务类型、实施步骤、关键文件、SESSION_ID
|
|
159
|
+
|
|
160
|
+
3. **执行前确认**:
|
|
161
|
+
- 若输入为"直接任务描述"或计划中缺失 `SESSION_ID` / 关键文件:先向用户确认补全信息
|
|
162
|
+
- 若无法确认用户是否已对计划回复 "Y":必须二次询问确认后再进入下一阶段
|
|
163
|
+
|
|
164
|
+
4. **任务类型判断**:
|
|
165
|
+
|
|
166
|
+
| 任务类型 | 判断依据 | 路由 |
|
|
167
|
+
|----------|----------|------|
|
|
168
|
+
| **前端** | 页面、组件、UI、样式、布局 | {{FRONTEND_PRIMARY}} |
|
|
169
|
+
| **后端** | API、接口、数据库、逻辑、算法 | {{BACKEND_PRIMARY}} |
|
|
170
|
+
| **全栈** | 同时包含前后端 | {{BACKEND_PRIMARY}} ∥ {{FRONTEND_PRIMARY}} 并行 |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### 🔍 Phase 1:上下文快速检索
|
|
175
|
+
|
|
176
|
+
`[模式:检索]`
|
|
177
|
+
|
|
178
|
+
**⚠️ 必须使用 MCP 工具快速检索上下文,禁止手动逐个读取文件**
|
|
179
|
+
|
|
180
|
+
根据计划中的"关键文件"列表,调用 `{{MCP_SEARCH_TOOL}}` 检索相关代码:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
{{MCP_SEARCH_TOOL}}({
|
|
184
|
+
query: "<基于计划内容构建的语义查询,包含关键文件、模块、函数名>",
|
|
185
|
+
project_root_path: "{{WORKDIR}}"
|
|
186
|
+
})
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**检索策略**:
|
|
190
|
+
- 从计划的"关键文件"表格提取目标路径
|
|
191
|
+
- 构建语义查询覆盖:入口文件、依赖模块、相关类型定义
|
|
192
|
+
- 若检索结果不足,可追加 1-2 次递归检索
|
|
193
|
+
- **禁止**使用 Bash + find/ls 手动探索项目结构
|
|
194
|
+
|
|
195
|
+
**检索完成后**:
|
|
196
|
+
- 整理检索到的代码片段
|
|
197
|
+
- 确认已获取实施所需的完整上下文
|
|
198
|
+
- 进入 Phase 3
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### 🎨 Phase 3:原型获取
|
|
203
|
+
|
|
204
|
+
`[模式:原型]`
|
|
205
|
+
|
|
206
|
+
**根据任务类型路由**:
|
|
207
|
+
|
|
208
|
+
#### Route A: 前端/UI/样式 → {{FRONTEND_PRIMARY}}
|
|
209
|
+
|
|
210
|
+
**限制**:上下文 < 32k tokens
|
|
211
|
+
|
|
212
|
+
1. 调用 {{FRONTEND_PRIMARY}}(使用 `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/frontend.md`)
|
|
213
|
+
2. 输入:计划内容 + 检索到的上下文 + 目标文件
|
|
214
|
+
3. OUTPUT: `Unified Diff Patch ONLY. Strictly prohibit any actual modifications.`
|
|
215
|
+
4. **{{FRONTEND_PRIMARY}} 是前端设计的权威,其 CSS/React/Vue 原型为最终视觉基准**
|
|
216
|
+
5. ⚠️ **警告**:忽略前端模型对后端逻辑的建议
|
|
217
|
+
6. 若计划包含 `FRONTEND_SESSION`:优先 `resume <FRONTEND_SESSION>`
|
|
218
|
+
|
|
219
|
+
#### Route B: 后端/逻辑/算法 → {{BACKEND_PRIMARY}}
|
|
220
|
+
|
|
221
|
+
1. 调用 {{BACKEND_PRIMARY}}(使用 `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md`)
|
|
222
|
+
2. 输入:计划内容 + 检索到的上下文 + 目标文件
|
|
223
|
+
3. OUTPUT: `Unified Diff Patch ONLY. Strictly prohibit any actual modifications.`
|
|
224
|
+
4. **{{BACKEND_PRIMARY}} 是后端逻辑的权威,利用其逻辑运算与 Debug 能力**
|
|
225
|
+
5. 若计划包含 `BACKEND_SESSION`:优先 `resume <BACKEND_SESSION>`
|
|
226
|
+
|
|
227
|
+
#### Route C: 全栈 → 并行调用
|
|
228
|
+
|
|
229
|
+
1. **并行调用**(`run_in_background: true`):
|
|
230
|
+
- {{FRONTEND_PRIMARY}}:处理前端部分
|
|
231
|
+
- {{BACKEND_PRIMARY}}:处理后端部分
|
|
232
|
+
2. 用 `TaskOutput` 等待两个模型的完整结果
|
|
233
|
+
3. 各自使用计划中对应的 `SESSION_ID` 进行 `resume`(若缺失则创建新会话)
|
|
234
|
+
|
|
235
|
+
**务必遵循上方 `多模型调用规范` 的 `重要` 指示**
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### ⚡ Phase 4:编码实施
|
|
240
|
+
|
|
241
|
+
`[模式:实施]`
|
|
242
|
+
|
|
243
|
+
**Claude 作为代码主权者执行以下步骤**:
|
|
244
|
+
|
|
245
|
+
1. **读取 Diff**:解析外部模型返回的 Unified Diff Patch
|
|
246
|
+
|
|
247
|
+
2. **思维沙箱**:
|
|
248
|
+
- 模拟应用 Diff 到目标文件
|
|
249
|
+
- 检查逻辑一致性
|
|
250
|
+
- 识别潜在冲突或副作用
|
|
251
|
+
|
|
252
|
+
3. **重构清理**:
|
|
253
|
+
- 将"脏原型"重构为**高可读、高可维护性、企业发布级代码**
|
|
254
|
+
- 去除冗余代码
|
|
255
|
+
- 确保符合项目现有代码规范
|
|
256
|
+
- **非必要不生成注释与文档**,代码自解释
|
|
257
|
+
|
|
258
|
+
4. **最小作用域**:
|
|
259
|
+
- 变更仅限需求范围
|
|
260
|
+
- **强制审查**变更是否引入副作用
|
|
261
|
+
- 做针对性修正
|
|
262
|
+
|
|
263
|
+
5. **应用变更**:
|
|
264
|
+
- 使用 Edit/Write 工具执行实际修改
|
|
265
|
+
- **仅修改必要的代码**,严禁影响用户现有的其他功能
|
|
266
|
+
6. **自检验证**(强烈建议):
|
|
267
|
+
- 运行项目既有的 lint / typecheck / tests(优先最小相关范围)
|
|
268
|
+
- 若失败:优先修复回归,再继续进入 Phase 5
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
### ✅ Phase 5:审计与交付
|
|
273
|
+
|
|
274
|
+
`[模式:审计]`
|
|
275
|
+
|
|
276
|
+
#### 5.1 自动审计
|
|
277
|
+
|
|
278
|
+
**变更生效后,强制立即并行调用** {{BACKEND_PRIMARY}} 和 {{FRONTEND_PRIMARY}} 进行 Code Review:
|
|
279
|
+
|
|
280
|
+
1. **{{BACKEND_PRIMARY}} 审查**(`run_in_background: true`):
|
|
281
|
+
- ROLE_FILE: `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md`
|
|
282
|
+
- 输入:变更的 Diff + 目标文件
|
|
283
|
+
- 关注:安全性、性能、错误处理、逻辑正确性
|
|
284
|
+
|
|
285
|
+
2. **{{FRONTEND_PRIMARY}} 审查**(`run_in_background: true`):
|
|
286
|
+
- ROLE_FILE: `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md`
|
|
287
|
+
- 输入:变更的 Diff + 目标文件
|
|
288
|
+
- 关注:可访问性、设计一致性、用户体验
|
|
289
|
+
|
|
290
|
+
用 `TaskOutput` 等待两个模型的完整审查结果。优先复用 Phase 3 的会话(`resume <SESSION_ID>`)以保持上下文一致。
|
|
291
|
+
|
|
292
|
+
#### 5.2 整合修复
|
|
293
|
+
|
|
294
|
+
1. 综合 {{BACKEND_PRIMARY}} + {{FRONTEND_PRIMARY}} 的审查意见
|
|
295
|
+
2. 按信任规则权衡:后端以 {{BACKEND_PRIMARY}} 为准,前端以 {{FRONTEND_PRIMARY}} 为准
|
|
296
|
+
3. 执行必要的修复
|
|
297
|
+
4. 修复后按需重复 Phase 5.1(直到风险可接受)
|
|
298
|
+
|
|
299
|
+
#### 5.3 写入 phase-scoped SUMMARY.md(v4.0 Phase 2 状态机)
|
|
300
|
+
|
|
301
|
+
**强制**:每完成一个 plan 后,写 `.context/<phase>/SUMMARY.md` 让上层 orchestrator(autonomous / team-exec)只读 frontmatter(< 200 tokens / phase)就能决策推进,避免接整段 builder stdout 污染主线 context。
|
|
302
|
+
|
|
303
|
+
`<phase>` = 计划文件主名(如 `user-auth.md` → `user-auth`),与 `/ccg:plan` 写 CONTEXT.md 的目录约定一致。
|
|
304
|
+
|
|
305
|
+
**SUMMARY.md frontmatter 必含字段(机器可读契约)**:
|
|
306
|
+
|
|
307
|
+
```yaml
|
|
308
|
+
---
|
|
309
|
+
phase: user-auth
|
|
310
|
+
plan: .claude/plan/user-auth.md
|
|
311
|
+
provides: [<本 phase 产出的能力或模块名>]
|
|
312
|
+
affects: [<受影响的文件/模块>]
|
|
313
|
+
key_files: [<本 phase 实际改动的关键文件>]
|
|
314
|
+
completed: true
|
|
315
|
+
completed_at: <ISO8601 时间>
|
|
316
|
+
notes: <一行收尾说明,可省略>
|
|
317
|
+
---
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
字段语义:
|
|
321
|
+
- `provides` — 下游 phase 可引用的输出(API/模块/契约)
|
|
322
|
+
- `affects` — 横向耦合面,给 orchestrator 做依赖图用
|
|
323
|
+
- `key_files` — 真正落盘的产物文件路径
|
|
324
|
+
- `completed` — `true` 表示 acceptance 全过;`false` 表示 partial(需要主线接手)
|
|
325
|
+
|
|
326
|
+
由 Claude 用 Write 工具直接落盘 `<WORKDIR>/.context/<phase>/SUMMARY.md`。目录不存在自动创建。**外部模型不写**——这是主线的契约边界。
|
|
327
|
+
|
|
328
|
+
#### 5.4 交付确认
|
|
329
|
+
|
|
330
|
+
审计通过且 SUMMARY.md 写入后,向用户报告:
|
|
331
|
+
|
|
332
|
+
```markdown
|
|
333
|
+
## ✅ 执行完成
|
|
334
|
+
|
|
335
|
+
### 变更摘要
|
|
336
|
+
| 文件 | 操作 | 说明 |
|
|
337
|
+
|------|------|------|
|
|
338
|
+
| path/to/file.ts | 修改 | 描述 |
|
|
339
|
+
|
|
340
|
+
### 审计结果
|
|
341
|
+
- {{BACKEND_PRIMARY}}:<通过/发现 N 个问题>
|
|
342
|
+
- {{FRONTEND_PRIMARY}}:<通过/发现 N 个问题>
|
|
343
|
+
|
|
344
|
+
### Phase 状态
|
|
345
|
+
- `.context/<phase>/SUMMARY.md` 已写入(completed: true / false)
|
|
346
|
+
|
|
347
|
+
### 后续建议
|
|
348
|
+
1. [ ] <建议的测试步骤>
|
|
349
|
+
2. [ ] <建议的验证步骤>
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 关键规则
|
|
355
|
+
|
|
356
|
+
1. **代码主权** – 所有文件修改由 Claude 执行,外部模型零写入权限
|
|
357
|
+
2. **脏原型重构** – 外部模型的输出视为草稿,必须重构
|
|
358
|
+
3. **信任规则** – 后端以 {{BACKEND_PRIMARY}} 为准,前端以 {{FRONTEND_PRIMARY}} 为准
|
|
359
|
+
4. **最小变更** – 仅修改必要的代码,不引入副作用
|
|
360
|
+
5. **强制审计** – 变更后必须进行多模型 Code Review
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 使用方法
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
# 执行计划文件
|
|
368
|
+
/ccg:execute .claude/plan/功能名.md
|
|
369
|
+
|
|
370
|
+
# 直接执行任务(适用于已在上下文中讨论过的计划)
|
|
371
|
+
/ccg:execute 根据之前的计划实施用户认证功能
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## 与 /ccg:plan 的关系
|
|
377
|
+
|
|
378
|
+
1. `/ccg:plan` 生成计划 + SESSION_ID
|
|
379
|
+
2. 用户确认 "Y" 后
|
|
380
|
+
3. `/ccg:execute` 读取计划,复用 SESSION_ID,执行实施
|