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,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: '中止活跃后台任务:先写 cancel.flag(cooperative)→ grace 5s → kill-tree 强制(v4.5 P1b 升级)'
|
|
3
|
+
argument-hint: "<job-id> [--force]"
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Cancel - 中止活跃后台任务(v4.5 升级)
|
|
11
|
+
|
|
12
|
+
写一个**协作式**取消信号到 `.context/jobs/<job-id>/cancel.flag`,并在 grace period(默认 5s)后**强制 kill 进程树**作为兜底。后台子任务(codex:codex-rescue / phase-runner / autonomous loop)每次推进步骤前轮询 cancel.flag,发现存在则清理并退出。卡在 OS-level 不可中断 syscall 的子进程由 kill-tree fallback 兜底。
|
|
13
|
+
|
|
14
|
+
> ⚠️ v4.5 之前是**纯协作**取消(不持有 PID),v4.5 P1b 引入 supervisor + cli_pid + process_group_id 后升级为**协作 + 强制兜底**。如果 phase-runner 已通过 `ccg-phase-runner-launcher.mjs` 启动,state.json 会含 `cli_pid`,本命令在 grace period 后调用 kill-tree(POSIX:`kill -TERM -<pgid>` → `kill -KILL`;Windows:`taskkill /T /F /PID`)。
|
|
15
|
+
|
|
16
|
+
## 使用方法
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
/ccg:cancel <job-id> # 默认:cancel.flag + 5s grace + kill-tree
|
|
20
|
+
/ccg:cancel <job-id> --force # 跳过 grace,立即 kill-tree(紧急停机)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 工作流程
|
|
24
|
+
|
|
25
|
+
### Step 1:校验 job 存在 + 状态可取消
|
|
26
|
+
|
|
27
|
+
1. Read `.context/jobs/<job-id>/state.json`
|
|
28
|
+
2. 不存在 → "Job not found: <id>,run /ccg:status to list all jobs",退出
|
|
29
|
+
3. `status` ∈ `{done, failed, canceled}` → "Job <id> already <status>,nothing to cancel",退出(**不报错**)
|
|
30
|
+
4. `status` ∈ `{queued, running}` → 进入 Step 2
|
|
31
|
+
|
|
32
|
+
### Step 2:写 cancel.flag + 更新 state.json
|
|
33
|
+
|
|
34
|
+
1. 写文件 `.context/jobs/<job-id>/cancel.flag`,内容:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
cancel-requested-at: <ISO timestamp>
|
|
38
|
+
requested-by: /ccg:cancel
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
v4.5+:`src/utils/jobs.ts` 的 `requestCancel` 走 `atomicWriteFileSync`(temp + rename),cancel.flag 永远不会半写。
|
|
42
|
+
|
|
43
|
+
2. 更新 state.json:把 `cancel_requested` 设为 `true`(**status 仍保持 running/queued** —— 真实 status 转 `canceled` 由子任务退出时自己写或由 Step 4 兜底写)
|
|
44
|
+
|
|
45
|
+
### Step 3:grace period(默认 5s,`--force` 跳过)
|
|
46
|
+
|
|
47
|
+
观察子任务是否自己退出:每秒 Read `state.json.status`,如果在 5s 内变成 `canceled` / `failed` / `done` → 跳过 Step 4,输出"协作取消生效"。
|
|
48
|
+
|
|
49
|
+
### Step 4:kill-tree fallback(grace 超时后)
|
|
50
|
+
|
|
51
|
+
读取 state.json 中的 `cli_pid` + `process_group_id`:
|
|
52
|
+
|
|
53
|
+
- **没有 cli_pid**(v4.5 之前的 legacy job 或非 launcher 路径):保持原有协作行为,提醒用户"无 PID 记录,请手动 `kill -9` 残留进程"。
|
|
54
|
+
- **有 cli_pid**:用 Bash 执行 kill-tree:
|
|
55
|
+
- **POSIX**: 优先 `kill -TERM -<pgid>` 走进程组(含 nested plugin 子进程);失败回退 `kill -TERM <cli_pid>`;再 grace 1s 后 `kill -KILL`。
|
|
56
|
+
- **Windows**: `taskkill /T /F /PID <cli_pid>` 杀整棵进程树(含 nested plugin)。
|
|
57
|
+
|
|
58
|
+
生成的 Bash(示例):
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# POSIX
|
|
62
|
+
kill -TERM -42 2>/dev/null || kill -TERM 42 2>/dev/null
|
|
63
|
+
sleep 1
|
|
64
|
+
kill -0 42 2>/dev/null && (kill -KILL -42 2>/dev/null || kill -KILL 42 2>/dev/null)
|
|
65
|
+
|
|
66
|
+
# Windows
|
|
67
|
+
taskkill /T /F /PID 1234
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
- 写终态 state.json:`status=canceled`,`summary="canceled by /ccg:cancel + kill-tree fallback"`。
|
|
71
|
+
|
|
72
|
+
### Step 5:通知用户
|
|
73
|
+
|
|
74
|
+
输出(协作取消生效):
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
✓ Job <id> canceled cooperatively (status: canceled, no kill-tree needed)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
输出(kill-tree 兜底):
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
⚠ Cooperative grace period (5s) elapsed without exit.
|
|
84
|
+
✓ Issued kill-tree on cli_pid=<N> (pgid=<M>): step1=SIGTERM, step2=SIGKILL after 1s
|
|
85
|
+
Status: canceled (forced via kill-tree)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 严格约束
|
|
89
|
+
|
|
90
|
+
- ✅ **协作优先**——总是先写 cancel.flag 给子进程自己退的机会,避免半写文件
|
|
91
|
+
- ✅ **强制兜底**(v4.5+ supervised job)——grace 后 kill-tree 防 hang 死循环
|
|
92
|
+
- ✅ 幂等——多次调用不报错,不重写 flag
|
|
93
|
+
- ✅ 已终态的 job 调用 cancel 也不报错(友好降级)
|
|
94
|
+
- ✅ atomic write(v4.5 P1b)——cancel.flag 永远不会半写
|
|
95
|
+
- ❌ **不要**直接把 status 改成 `canceled`——会与子任务退出时的写入产生竞态(除非 kill-tree 生效后)
|
|
96
|
+
- ❌ **不要**删除 `.context/jobs/<id>/` 目录——历史可观测性必须保留
|
|
97
|
+
|
|
98
|
+
## 子任务侧契约(开发者参考)
|
|
99
|
+
|
|
100
|
+
后台子任务必须周期性检查 cancel.flag 才能让协作路径生效(避免 kill-tree 兜底)。最小契约:
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { isCancelRequested, writeJobState, getJob } from '~/.claude/.ccg/utils/jobs'
|
|
104
|
+
|
|
105
|
+
// 每个推进步骤前
|
|
106
|
+
if (isCancelRequested(workdir, jobId)) {
|
|
107
|
+
const cur = getJob(workdir, jobId)!
|
|
108
|
+
writeJobState(workdir, { ...cur, status: 'canceled', summary: 'canceled by user' })
|
|
109
|
+
// optional: write result.md with "STATUS: canceled\nNOTES: aborted at <step>"
|
|
110
|
+
process.exit(0)
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
phase-runner / codex:codex-rescue / autonomous loop 全部接入此契约(v4.0 Phase 7 + v4.5 P1b)。
|
|
115
|
+
|
|
116
|
+
## 与其他命令的协作
|
|
117
|
+
|
|
118
|
+
| 时序 | 命令 | 作用 |
|
|
119
|
+
|------|------|------|
|
|
120
|
+
| t0 | `/ccg:autonomous` | spawn launcher + child;写 state.json (running, cli_pid, pgid) |
|
|
121
|
+
| t1 | `/ccg:status` | 用户看到 running 太久 |
|
|
122
|
+
| t2 | `/ccg:cancel <id>` | **本命令**——写 cancel.flag |
|
|
123
|
+
| t3a | (子任务下次轮询) | isCancelRequested → 自己写 state.json (canceled) |
|
|
124
|
+
| t3b | (grace 5s 超时, t3a 未发生) | 本命令 kill-tree → 写 state.json (canceled, forced) |
|
|
125
|
+
| t4 | `/ccg:result <id>` | 看到 canceled 摘要 |
|
|
126
|
+
|
|
127
|
+
## 实现锚点
|
|
128
|
+
|
|
129
|
+
- `src/utils/jobs.ts` 的 `requestCancel` 是后端真相源(atomic write)
|
|
130
|
+
- `src/utils/process-tree.ts` 的 `killProcessTree` 是 kill-tree 真相源(POSIX pgid + Windows taskkill)
|
|
131
|
+
- `templates/scripts/ccg-phase-runner-launcher.mjs` 的 launcher 是 cli_pid / pgid 的写入者
|
|
132
|
+
- 失败模式:见 `src/utils/__tests__/jobs.test.ts`(atomic write)+ `processTree.test.ts`(kill-tree 13 种 failure mode 覆盖)
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: '清理 Git 分支:安全清理已合并或过期分支,默认 dry-run 模式'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Clean-Branches - 清理 Git 分支
|
|
6
|
+
|
|
7
|
+
安全识别并清理已合并或长期未更新的分支。
|
|
8
|
+
|
|
9
|
+
## 使用方法
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
/clean-branches [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 选项
|
|
16
|
+
|
|
17
|
+
| 选项 | 说明 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `--base <branch>` | 基准分支(默认 main/master) |
|
|
20
|
+
| `--stale <days>` | 清理超过 N 天未更新的分支 |
|
|
21
|
+
| `--remote` | 同时清理远程分支 |
|
|
22
|
+
| `--dry-run` | 只预览,不执行(**默认**) |
|
|
23
|
+
| `--yes` | 跳过确认直接删除 |
|
|
24
|
+
| `--force` | 强制删除未合并分支 |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 执行工作流
|
|
29
|
+
|
|
30
|
+
### 🔍 阶段 1:预检
|
|
31
|
+
|
|
32
|
+
`[模式:准备]`
|
|
33
|
+
|
|
34
|
+
1. 同步远端:`git fetch --all --prune`
|
|
35
|
+
2. 读取保护分支配置
|
|
36
|
+
3. 确定基准分支
|
|
37
|
+
|
|
38
|
+
### 📋 阶段 2:分析识别
|
|
39
|
+
|
|
40
|
+
`[模式:分析]`
|
|
41
|
+
|
|
42
|
+
**已合并分支**:
|
|
43
|
+
- 已完全合并到 `--base` 的分支
|
|
44
|
+
|
|
45
|
+
**过期分支**(如指定 `--stale`):
|
|
46
|
+
- 最后提交在 N 天前的分支
|
|
47
|
+
|
|
48
|
+
**排除**:
|
|
49
|
+
- 从待清理列表中移除保护分支
|
|
50
|
+
|
|
51
|
+
### 📊 阶段 3:报告预览
|
|
52
|
+
|
|
53
|
+
`[模式:报告]`
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
## 将要删除的分支
|
|
57
|
+
|
|
58
|
+
### 已合并分支
|
|
59
|
+
- feature/old-feature (合并于 3 天前)
|
|
60
|
+
- bugfix/fixed-issue (合并于 7 天前)
|
|
61
|
+
|
|
62
|
+
### 过期分支
|
|
63
|
+
- experiment/old-test (最后更新 90 天前)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### ✅ 阶段 4:执行清理
|
|
67
|
+
|
|
68
|
+
`[模式:执行]`
|
|
69
|
+
|
|
70
|
+
仅在不带 `--dry-run` 且确认后执行:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# 本地分支
|
|
74
|
+
git branch -d <branch>
|
|
75
|
+
|
|
76
|
+
# 远程分支(如果 --remote)
|
|
77
|
+
git push origin --delete <branch>
|
|
78
|
+
|
|
79
|
+
# 强制删除(如果 --force)
|
|
80
|
+
git branch -D <branch>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 保护分支配置
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 添加保护分支
|
|
89
|
+
git config --add branch.cleanup.protected develop
|
|
90
|
+
git config --add branch.cleanup.protected 'release/*'
|
|
91
|
+
|
|
92
|
+
# 查看保护分支
|
|
93
|
+
git config --get-all branch.cleanup.protected
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 示例
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# 预览将清理的分支
|
|
102
|
+
/clean-branches --dry-run
|
|
103
|
+
|
|
104
|
+
# 清理已合并且超过 90 天未动的分支
|
|
105
|
+
/clean-branches --stale 90
|
|
106
|
+
|
|
107
|
+
# 清理已合并到 release/v2.1 的分支
|
|
108
|
+
/clean-branches --base release/v2.1 --remote --yes
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 最佳实践
|
|
112
|
+
|
|
113
|
+
1. **优先 dry-run** – 先预览再执行
|
|
114
|
+
2. **活用 --base** – 适配 release 工作流
|
|
115
|
+
3. **谨慎 --force** – 除非确定无用
|
|
116
|
+
4. **团队协作** – 清理远程分支前先通知
|
|
117
|
+
5. **定期运行** – 每月/季度一次保持清爽
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: '{{BACKEND_PRIMARY}} 全权执行计划 - 读取 /ccg:plan 产出的计划文件,{{BACKEND_PRIMARY}} 承担 MCP 搜索 + 代码实现 + 测试,多模型审核'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Codex-Exec - Codex 全权执行计划
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 核心理念
|
|
12
|
+
|
|
13
|
+
**与 `/ccg:plan` 配对使用**:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
/ccg:plan → 多模型协同规划(Codex ∥ Gemini 分析 → Claude 综合)
|
|
17
|
+
↓ 计划文件 (.claude/plan/xxx.md)
|
|
18
|
+
/ccg:codex-exec → Codex 全权执行(MCP 搜索 + 代码实现 + 测试)
|
|
19
|
+
↓ 代码变更
|
|
20
|
+
→ 多模型审核(Codex ∥ Gemini 交叉审查)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**与 `/ccg:execute` 的区别**:
|
|
24
|
+
|
|
25
|
+
| 维度 | `/ccg:execute` | `/ccg:codex-exec` |
|
|
26
|
+
|------|---------------|-------------------|
|
|
27
|
+
| 代码实现 | Claude 重构 {{BACKEND_PRIMARY}}/{{FRONTEND_PRIMARY}} 的 Diff | **{{BACKEND_PRIMARY}} 直接实现** |
|
|
28
|
+
| MCP 搜索 | Claude 调用 MCP | **{{BACKEND_PRIMARY}} 调用 MCP** |
|
|
29
|
+
| Claude 上下文 | 高(搜索结果 + 代码全进来) | **极低(只看摘要 + diff)** |
|
|
30
|
+
| Claude token | 大量消耗 | **极少消耗** |
|
|
31
|
+
| 审核 | 多模型审查 | **多模型审查(不变)** |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 语言协议
|
|
36
|
+
|
|
37
|
+
- 与工具/模型交互用 **英语**
|
|
38
|
+
- 与用户交互用 **中文**
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 多模型调用规范
|
|
43
|
+
|
|
44
|
+
**工作目录**:
|
|
45
|
+
- `{{WORKDIR}}`:**必须通过 Bash 执行 `pwd`(Unix)或 `cd`(Windows CMD)获取当前工作目录的绝对路径**,禁止从 `$HOME` 或环境变量推断
|
|
46
|
+
- 如果用户通过 `/add-dir` 添加了多个工作区,先用 Glob/Grep 确定任务相关的工作区
|
|
47
|
+
- 如果无法确定,用 `AskUserQuestion` 询问用户选择目标工作区
|
|
48
|
+
|
|
49
|
+
**{{BACKEND_PRIMARY}} 执行调用语法**:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Bash({
|
|
53
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'EXEC_EOF'
|
|
54
|
+
<TASK>
|
|
55
|
+
<指令内容>
|
|
56
|
+
</TASK>
|
|
57
|
+
EXEC_EOF",
|
|
58
|
+
run_in_background: true,
|
|
59
|
+
timeout: 3600000,
|
|
60
|
+
description: "简短描述"
|
|
61
|
+
})
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**{{BACKEND_PRIMARY}} 复用会话调用**:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Bash({
|
|
68
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}resume <SESSION_ID> - \"{{WORKDIR}}\" <<'EXEC_EOF'
|
|
69
|
+
<TASK>
|
|
70
|
+
<指令内容>
|
|
71
|
+
</TASK>
|
|
72
|
+
EXEC_EOF",
|
|
73
|
+
run_in_background: true,
|
|
74
|
+
timeout: 3600000,
|
|
75
|
+
description: "简短描述"
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**审核调用语法**(Codex ∥ Gemini 并行审查):
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Bash({
|
|
83
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend <{{BACKEND_PRIMARY}}|{{FRONTEND_PRIMARY}}> {{GEMINI_MODEL_FLAG}}- \"{{WORKDIR}}\" <<'REVIEW_EOF'
|
|
84
|
+
ROLE_FILE: <角色提示词路径>
|
|
85
|
+
<TASK>
|
|
86
|
+
Scope: Audit the code changes made by Codex.
|
|
87
|
+
Inputs:
|
|
88
|
+
- The git diff (applied changes)
|
|
89
|
+
- The implementation plan
|
|
90
|
+
Constraints:
|
|
91
|
+
- Do NOT modify any files.
|
|
92
|
+
</TASK>
|
|
93
|
+
OUTPUT:
|
|
94
|
+
1) A prioritized list of issues (severity, file, rationale)
|
|
95
|
+
2) If code changes are needed, include a Unified Diff Patch in a fenced code block.
|
|
96
|
+
REVIEW_EOF",
|
|
97
|
+
run_in_background: true,
|
|
98
|
+
timeout: 3600000,
|
|
99
|
+
description: "简短描述"
|
|
100
|
+
})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**角色提示词**:
|
|
104
|
+
|
|
105
|
+
| 阶段 | 后端 | 前端 |
|
|
106
|
+
|------|-------|--------|
|
|
107
|
+
| 审查 | `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md` | `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md` |
|
|
108
|
+
|
|
109
|
+
**事件驱动等待(v4.5.2 起)**:spawn 后主线说明 task-id 然后 **turn end**,引擎自动 `<task-notification>` 触发新 turn 处理结果。**不调 TaskOutput**。
|
|
110
|
+
|
|
111
|
+
⛔ **禁止**:调 `TaskOutput({block: true, timeout: 600000})` 旧 freeze poll 模式 / Kill task。
|
|
112
|
+
|
|
113
|
+
⚠️ **失败处理**:notification status=failed / exit ≠ 0 / parse 失败 → v1.7.87 标准 2-retry / 5s / 3-attempts;3 次全失败才降级单模型。
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 执行工作流
|
|
118
|
+
|
|
119
|
+
**执行任务**:$ARGUMENTS
|
|
120
|
+
|
|
121
|
+
### 📖 Phase 0:读取计划
|
|
122
|
+
|
|
123
|
+
`[模式:准备]`
|
|
124
|
+
|
|
125
|
+
1. **识别输入类型**:
|
|
126
|
+
- 计划文件路径(如 `.claude/plan/xxx.md`)→ 读取并解析
|
|
127
|
+
- 直接的任务描述 → 提示用户先执行 `/ccg:plan`
|
|
128
|
+
|
|
129
|
+
2. **解析计划内容**,提取:
|
|
130
|
+
- 任务类型(前端/后端/全栈)
|
|
131
|
+
- 技术方案
|
|
132
|
+
- 实施步骤
|
|
133
|
+
- 关键文件列表
|
|
134
|
+
- SESSION_ID(`CODEX_SESSION` / `GEMINI_SESSION`)
|
|
135
|
+
|
|
136
|
+
3. **执行前确认**:
|
|
137
|
+
向用户展示计划摘要,确认后执行:
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
## 即将执行
|
|
141
|
+
|
|
142
|
+
**任务**:<计划标题>
|
|
143
|
+
**模式**:Codex 全权执行
|
|
144
|
+
**步骤**:<N 步>
|
|
145
|
+
**关键文件**:<N 个>
|
|
146
|
+
|
|
147
|
+
Codex 将自主完成:MCP 搜索 + 代码实现 + 测试验证
|
|
148
|
+
Claude 仅做最终审核
|
|
149
|
+
|
|
150
|
+
确认执行?(Y/N)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### ⚡ Phase 1:Codex 全权执行
|
|
156
|
+
|
|
157
|
+
`[模式:执行]`
|
|
158
|
+
|
|
159
|
+
**将计划转化为 Codex 结构化指令,一次性下发**:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
Bash({
|
|
163
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}resume <CODEX_SESSION> - \"{{WORKDIR}}\" <<'EXEC_EOF'
|
|
164
|
+
<TASK>
|
|
165
|
+
You are a full-stack execution agent. Implement the following plan end-to-end.
|
|
166
|
+
|
|
167
|
+
## Implementation Plan
|
|
168
|
+
<将 Phase 0 解析出的完整计划内容粘贴于此>
|
|
169
|
+
|
|
170
|
+
## Your Instructions
|
|
171
|
+
|
|
172
|
+
### Step 1: Context Verification
|
|
173
|
+
Before coding, verify you have sufficient context:
|
|
174
|
+
- Use ace-tool MCP (search_context) to search for relevant existing code patterns
|
|
175
|
+
- Read the key files listed in the plan to understand current implementation
|
|
176
|
+
- If the plan references external libraries/APIs, use context7 MCP to query their latest documentation
|
|
177
|
+
- If latest information is needed, use grok-search MCP for web search
|
|
178
|
+
|
|
179
|
+
### Step 2: Implementation
|
|
180
|
+
Implement each step from the plan in order:
|
|
181
|
+
<将计划的实施步骤逐条列出>
|
|
182
|
+
|
|
183
|
+
Constraints:
|
|
184
|
+
- Follow existing code conventions in this project
|
|
185
|
+
- Handle edge cases and errors properly
|
|
186
|
+
- Keep changes minimal and focused on the plan
|
|
187
|
+
- Do NOT modify files outside the plan's scope
|
|
188
|
+
|
|
189
|
+
### Step 3: Self-Verification
|
|
190
|
+
After implementation:
|
|
191
|
+
- Run lint/typecheck if available
|
|
192
|
+
- Run existing tests: <从计划中提取测试命令,如无则 "run project's test suite">
|
|
193
|
+
- Verify no regressions in touched modules
|
|
194
|
+
|
|
195
|
+
## Output Format
|
|
196
|
+
Respond with a structured report:
|
|
197
|
+
|
|
198
|
+
### CONTEXT_GATHERED
|
|
199
|
+
<What information was searched/found, key findings from MCP tools>
|
|
200
|
+
|
|
201
|
+
### CHANGES_MADE
|
|
202
|
+
For each file changed:
|
|
203
|
+
- File path
|
|
204
|
+
- What was changed and why
|
|
205
|
+
- Lines added/removed
|
|
206
|
+
|
|
207
|
+
### VERIFICATION_RESULTS
|
|
208
|
+
- Lint/typecheck: pass/fail
|
|
209
|
+
- Tests: pass/fail (details if fail)
|
|
210
|
+
- Manual checks performed
|
|
211
|
+
|
|
212
|
+
### REMAINING_ISSUES
|
|
213
|
+
<Any unresolved issues, edge cases, or suggestions>
|
|
214
|
+
</TASK>
|
|
215
|
+
EXEC_EOF",
|
|
216
|
+
run_in_background: true,
|
|
217
|
+
timeout: 3600000,
|
|
218
|
+
description: "Codex 全权执行:<计划标题>"
|
|
219
|
+
})
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**📌 记录 SESSION_ID**(`CODEX_EXEC_SESSION`)
|
|
223
|
+
|
|
224
|
+
如果计划中无 `CODEX_SESSION`(用户跳过了 `/ccg:plan` 的多模型分析),则使用新会话。
|
|
225
|
+
|
|
226
|
+
事件驱动等待 (v4.5.2):spawn 完后主线 turn end,等 task-notification 自动唤醒。
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### 🔍 Phase 2:Claude 轻量审核
|
|
231
|
+
|
|
232
|
+
`[模式:审核]`
|
|
233
|
+
|
|
234
|
+
**Claude 只做最小验证,不重复 Codex 已做的工作**:
|
|
235
|
+
|
|
236
|
+
1. **读取 Codex 报告**:解析 CONTEXT_GATHERED / CHANGES_MADE / VERIFICATION_RESULTS / REMAINING_ISSUES
|
|
237
|
+
2. **查看实际变更**:
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
Bash({ command: "git diff HEAD", description: "查看 Codex 实际变更" })
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
3. **快速判定**:
|
|
244
|
+
- 变更是否在计划范围内?
|
|
245
|
+
- 是否有明显安全/逻辑问题?
|
|
246
|
+
- 测试是否通过?
|
|
247
|
+
|
|
248
|
+
4. **处理结果**:
|
|
249
|
+
- ✅ **通过** → Phase 3 多模型审核
|
|
250
|
+
- ⚠️ **小问题** → Claude 直接修复(< 10 行的修正 Claude 自己做)
|
|
251
|
+
- ❌ **需返工** → Phase 2.5 追加指令
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
### 🔄 Phase 2.5:追加指令(仅在需返工时)
|
|
256
|
+
|
|
257
|
+
`[模式:追加]`
|
|
258
|
+
|
|
259
|
+
**复用 Codex 会话,下发修正指令**:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
Bash({
|
|
263
|
+
command: "~/.claude/bin/codeagent-wrapper {{LITE_MODE_FLAG}}--progress --backend {{BACKEND_PRIMARY}} {{GEMINI_MODEL_FLAG}}resume <CODEX_EXEC_SESSION> - \"{{WORKDIR}}\" <<'FIXEOF'
|
|
264
|
+
<TASK>
|
|
265
|
+
The implementation needs corrections:
|
|
266
|
+
|
|
267
|
+
## Issues Found
|
|
268
|
+
1. <问题描述 + 具体文件:行号>
|
|
269
|
+
2. <问题描述 + 具体文件:行号>
|
|
270
|
+
|
|
271
|
+
## Required Fixes
|
|
272
|
+
1. <具体修正要求>
|
|
273
|
+
2. <具体修正要求>
|
|
274
|
+
|
|
275
|
+
Apply fixes and re-run tests. Report results in the same format.
|
|
276
|
+
</TASK>
|
|
277
|
+
FIXEOF",
|
|
278
|
+
run_in_background: true,
|
|
279
|
+
timeout: 3600000,
|
|
280
|
+
description: "Codex 修正:<问题简述>"
|
|
281
|
+
})
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
等待完成后回到 Phase 2。**最多 2 轮返工**,超过则 Claude 直接接管修复。
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
### ✅ Phase 3:多模型审核
|
|
289
|
+
|
|
290
|
+
`[模式:审核]`
|
|
291
|
+
|
|
292
|
+
**并行调用 {{BACKEND_PRIMARY}} + {{FRONTEND_PRIMARY}} 交叉审查**(多模型协同不变):
|
|
293
|
+
|
|
294
|
+
1. **获取变更 diff**:
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
Bash({ command: "git diff HEAD", description: "获取完整变更 diff" })
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
2. **并行调用**(`run_in_background: true`):
|
|
301
|
+
|
|
302
|
+
- **{{BACKEND_PRIMARY}} 审查**:
|
|
303
|
+
- ROLE_FILE: `~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md`
|
|
304
|
+
- 输入:变更 Diff + 计划文件内容
|
|
305
|
+
- 关注:安全性、性能、错误处理、逻辑正确性
|
|
306
|
+
|
|
307
|
+
- **{{FRONTEND_PRIMARY}} 审查**:
|
|
308
|
+
- ROLE_FILE: `~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md`
|
|
309
|
+
- 输入:变更 Diff + 计划文件内容
|
|
310
|
+
- 关注:代码可读性、设计一致性、可维护性
|
|
311
|
+
|
|
312
|
+
用 `TaskOutput` 等待两个模型的完整审查结果。
|
|
313
|
+
|
|
314
|
+
3. **整合审查意见**:
|
|
315
|
+
- 按信任规则:后端问题以 {{BACKEND_PRIMARY}} 为准,前端问题以 {{FRONTEND_PRIMARY}} 为准
|
|
316
|
+
- **Critical** → 必须修复(Claude 直接修或再派 Codex)
|
|
317
|
+
- **Warning** → 建议修复,报告给用户决定
|
|
318
|
+
- **Info** → 记录不处理
|
|
319
|
+
|
|
320
|
+
4. **执行修复**(如有 Critical):
|
|
321
|
+
- < 10 行修正:Claude 直接修
|
|
322
|
+
- ≥ 10 行修正:再派 Codex(复用 `CODEX_EXEC_SESSION`)
|
|
323
|
+
- 修复后可选重复 Phase 3(直到风险可接受)
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
### 📦 Phase 4:交付
|
|
328
|
+
|
|
329
|
+
`[模式:交付]`
|
|
330
|
+
|
|
331
|
+
向用户报告:
|
|
332
|
+
|
|
333
|
+
```markdown
|
|
334
|
+
## ✅ 执行完成
|
|
335
|
+
|
|
336
|
+
### 执行摘要
|
|
337
|
+
| 项目 | 详情 |
|
|
338
|
+
|------|------|
|
|
339
|
+
| 计划 | <计划文件路径> |
|
|
340
|
+
| 模式 | Codex 全权执行 + 多模型审核 |
|
|
341
|
+
| 搜索 | <Codex 使用了哪些 MCP 工具,关键发现> |
|
|
342
|
+
| 变更 | <N 个文件,+X/-Y 行> |
|
|
343
|
+
| 测试 | <通过/失败> |
|
|
344
|
+
| 返工 | <0/1/2 轮> |
|
|
345
|
+
|
|
346
|
+
### 变更清单
|
|
347
|
+
| 文件 | 操作 | 说明 |
|
|
348
|
+
|------|------|------|
|
|
349
|
+
| path/to/file.ts | 修改/新增 | 描述 |
|
|
350
|
+
|
|
351
|
+
### 审核结果
|
|
352
|
+
- Codex 审查:<通过/发现 N 个问题>
|
|
353
|
+
- Gemini 审查:<通过/发现 N 个问题>
|
|
354
|
+
- Claude 处理:<已修复 N 个 Critical,N 个 Warning 待用户决定>
|
|
355
|
+
|
|
356
|
+
### 后续建议
|
|
357
|
+
1. [ ] <建议的测试步骤>
|
|
358
|
+
2. [ ] <建议的验证步骤>
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## 关键规则
|
|
364
|
+
|
|
365
|
+
1. **Claude 极简原则** — Claude 不调用 MCP、不做代码检索。只读计划、指挥 Codex、审核结果。
|
|
366
|
+
2. **{{BACKEND_PRIMARY}} 全权执行** — MCP 搜索、文档查询、代码检索、实现、测试全由 {{BACKEND_PRIMARY}} 完成。
|
|
367
|
+
3. **多模型审核不变** — 审核阶段仍然 Codex ∥ Gemini 交叉审查,保证质量。
|
|
368
|
+
4. **信任规则** — 后端以 {{BACKEND_PRIMARY}} 为准,前端以 {{FRONTEND_PRIMARY}} 为准。
|
|
369
|
+
5. **一次性下发** — 尽量一次给 Codex 完整指令 + 完整计划,减少来回通信。
|
|
370
|
+
6. **最多 2 轮返工** — 超过 2 轮 Claude 直接接管,避免无限循环。
|
|
371
|
+
7. **计划对齐** — Codex 实现必须在计划范围内,超出范围的变更视为违规。
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## 使用方法
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# 标准流程:先规划,再执行
|
|
379
|
+
/ccg:plan 实现用户认证功能
|
|
380
|
+
# 审查计划后...
|
|
381
|
+
/ccg:codex-exec .claude/plan/user-auth.md
|
|
382
|
+
|
|
383
|
+
# 直接执行(会提示先 /ccg:plan)
|
|
384
|
+
/ccg:codex-exec 实现用户认证功能
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## 与 /ccg:plan 的关系
|
|
390
|
+
|
|
391
|
+
```
|
|
392
|
+
/ccg:plan ──→ .claude/plan/xxx.md
|
|
393
|
+
│
|
|
394
|
+
┌─────────┴─────────┐
|
|
395
|
+
↓ ↓
|
|
396
|
+
/ccg:execute /ccg:codex-exec
|
|
397
|
+
(Claude 重构) (Codex 全权)
|
|
398
|
+
Claude 高消耗 Claude 极低消耗
|
|
399
|
+
精细控制 高效执行
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
用户可根据任务特点选择:
|
|
403
|
+
- **需要精细控制** → `/ccg:execute`(Claude 逐行重构)
|
|
404
|
+
- **需要高效执行** → `/ccg:codex-exec`(Codex 一把梭)
|