ccg-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 +21 -0
- package/README.md +434 -0
- package/bin/ccg.mjs +2 -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-windows-amd64.exe +0 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.mjs +97 -0
- package/dist/index.d.mts +134 -0
- package/dist/index.d.ts +134 -0
- package/dist/index.mjs +10 -0
- package/dist/shared/ccg-workflow.D_RkPyZ0.mjs +1117 -0
- package/package.json +63 -0
- package/prompts/claude/analyzer.md +59 -0
- package/prompts/claude/architect.md +54 -0
- package/prompts/claude/debugger.md +71 -0
- package/prompts/claude/optimizer.md +73 -0
- package/prompts/claude/reviewer.md +63 -0
- package/prompts/claude/tester.md +69 -0
- package/prompts/codex/analyzer.md +50 -0
- package/prompts/codex/architect.md +46 -0
- package/prompts/codex/debugger.md +66 -0
- package/prompts/codex/optimizer.md +74 -0
- package/prompts/codex/reviewer.md +66 -0
- package/prompts/codex/tester.md +55 -0
- package/prompts/gemini/analyzer.md +53 -0
- package/prompts/gemini/debugger.md +70 -0
- package/prompts/gemini/frontend.md +56 -0
- package/prompts/gemini/optimizer.md +77 -0
- package/prompts/gemini/reviewer.md +73 -0
- package/prompts/gemini/tester.md +61 -0
- package/templates/commands/_config.md +85 -0
- package/templates/commands/analyze.md +73 -0
- package/templates/commands/backend.md +81 -0
- package/templates/commands/bugfix.md +55 -0
- package/templates/commands/clean-branches.md +102 -0
- package/templates/commands/code.md +169 -0
- package/templates/commands/commit.md +158 -0
- package/templates/commands/debug.md +104 -0
- package/templates/commands/dev.md +153 -0
- package/templates/commands/enhance.md +49 -0
- package/templates/commands/frontend.md +80 -0
- package/templates/commands/init.md +53 -0
- package/templates/commands/optimize.md +69 -0
- package/templates/commands/review.md +85 -0
- package/templates/commands/rollback.md +90 -0
- package/templates/commands/test.md +53 -0
- package/templates/commands/think.md +73 -0
- package/templates/commands/worktree.md +276 -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 +50 -0
- package/templates/prompts/codex/architect.md +46 -0
- package/templates/prompts/codex/debugger.md +66 -0
- package/templates/prompts/codex/optimizer.md +74 -0
- package/templates/prompts/codex/reviewer.md +66 -0
- package/templates/prompts/codex/tester.md +55 -0
- package/templates/prompts/gemini/analyzer.md +53 -0
- package/templates/prompts/gemini/debugger.md +70 -0
- package/templates/prompts/gemini/frontend.md +56 -0
- package/templates/prompts/gemini/optimizer.md +77 -0
- package/templates/prompts/gemini/reviewer.md +73 -0
- package/templates/prompts/gemini/tester.md +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 fengshao1227
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
# CCG: 多模型协作系统
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**Claude Code + Codex + Gemini 多模型协作工作流系统**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/ccg-workflow)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://claude.ai/code)
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 核心特性
|
|
16
|
+
|
|
17
|
+
| 特性 | 描述 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| **智能路由** | 前端任务自动路由到 Gemini,后端任务路由到 Codex |
|
|
20
|
+
| **三模型协作** | 同时调用 Claude + Codex + Gemini 进行交叉验证 |
|
|
21
|
+
| **Prompt 增强** | 集成 ace-tool MCP,自动优化需求描述 |
|
|
22
|
+
| **6阶段工作流** | Prompt增强 → 上下文检索 → 多模型分析 → 原型生成 → 代码实施 → 审计交付 |
|
|
23
|
+
| **交互式安装** | npx 一键运行,图形化配置界面 |
|
|
24
|
+
| **跨平台** | 支持 macOS、Linux、Windows |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 快速开始
|
|
29
|
+
|
|
30
|
+
### 方式一:npx 直接运行(推荐)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 交互式配置安装
|
|
34
|
+
npx ccg-workflow
|
|
35
|
+
|
|
36
|
+
# 或简写
|
|
37
|
+
npx ccg
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 方式二:全局安装
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g ccg-workflow
|
|
44
|
+
ccg
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 方式三:源码安装
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone https://github.com/fengshao1227/ccg-workflow.git
|
|
51
|
+
cd ccg-workflow/skills-v2
|
|
52
|
+
pnpm install && pnpm build
|
|
53
|
+
pnpm start
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 前置要求
|
|
57
|
+
|
|
58
|
+
- Node.js 18+
|
|
59
|
+
- Claude Code CLI
|
|
60
|
+
- Codex CLI / Gemini CLI(可选,用于多模型协作)
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 交互式菜单
|
|
65
|
+
|
|
66
|
+
运行后会显示交互式菜单:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
CCG - Claude + Codex + Gemini
|
|
70
|
+
Multi-Model Collaboration System
|
|
71
|
+
|
|
72
|
+
? CCG 主菜单
|
|
73
|
+
❯ ➜ 初始化 CCG 配置
|
|
74
|
+
➜ 更新工作流
|
|
75
|
+
➜ 卸载 CCG
|
|
76
|
+
? 帮助
|
|
77
|
+
✕ 退出
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
选择 "初始化 CCG 配置" 进行首次安装,会引导你:
|
|
81
|
+
1. 选择语言(中文/English)
|
|
82
|
+
2. 配置前端模型(Gemini/Codex/Claude)
|
|
83
|
+
3. 配置后端模型(Codex/Gemini/Claude)
|
|
84
|
+
4. 选择协作模式(并行/智能/顺序)
|
|
85
|
+
5. 选择要安装的工作流
|
|
86
|
+
6. 配置 ace-tool MCP(可选)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 使用
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# 完整的多模型开发工作流(含 Prompt 增强)
|
|
94
|
+
/ccg:dev "实现用户认证功能"
|
|
95
|
+
|
|
96
|
+
# 智能路由代码生成
|
|
97
|
+
/ccg:code "添加用户注册表单"
|
|
98
|
+
|
|
99
|
+
# UltraThink 调试
|
|
100
|
+
/ccg:debug "登录接口返回 500 错误"
|
|
101
|
+
|
|
102
|
+
# 多模型测试生成
|
|
103
|
+
/ccg:test "为用户服务添加单元测试"
|
|
104
|
+
|
|
105
|
+
# 质量门控修复(90%+ 通过)
|
|
106
|
+
/ccg:bugfix "密码重置邮件发送失败"
|
|
107
|
+
|
|
108
|
+
# 深度分析
|
|
109
|
+
/ccg:think "评估微服务拆分方案"
|
|
110
|
+
|
|
111
|
+
# 性能优化
|
|
112
|
+
/ccg:optimize "优化首页加载速度"
|
|
113
|
+
|
|
114
|
+
# 前端任务 → Gemini
|
|
115
|
+
/ccg:frontend "创建登录表单组件"
|
|
116
|
+
|
|
117
|
+
# 后端任务 → Codex
|
|
118
|
+
/ccg:backend "实现 JWT 认证中间件"
|
|
119
|
+
|
|
120
|
+
# 双模型代码审查(无参数自动审查 git diff)
|
|
121
|
+
/ccg:review
|
|
122
|
+
|
|
123
|
+
# 双模型分析
|
|
124
|
+
/ccg:analyze "这个架构有什么问题?"
|
|
125
|
+
|
|
126
|
+
# 单独使用 Prompt 增强
|
|
127
|
+
/ccg:enhance "实现用户认证功能"
|
|
128
|
+
|
|
129
|
+
# Git 智能提交
|
|
130
|
+
/ccg:commit --emoji
|
|
131
|
+
|
|
132
|
+
# 交互式回滚
|
|
133
|
+
/ccg:rollback --branch main --target v1.0.0
|
|
134
|
+
|
|
135
|
+
# 清理已合并分支
|
|
136
|
+
/ccg:clean-branches --dry-run
|
|
137
|
+
|
|
138
|
+
# 创建 Worktree 并用 IDE 打开
|
|
139
|
+
/ccg:worktree add feature-ui -o
|
|
140
|
+
|
|
141
|
+
# 初始化项目 AI 上下文
|
|
142
|
+
/ccg:init "我的项目"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 命令列表
|
|
148
|
+
|
|
149
|
+
### 开发工作流
|
|
150
|
+
|
|
151
|
+
| 命令 | 用途 | 模型路由 |
|
|
152
|
+
|------|------|----------|
|
|
153
|
+
| `/ccg:dev` | 完整6阶段开发工作流(含Prompt增强) | Auggie + Codex + Gemini |
|
|
154
|
+
| `/ccg:code` | 多模型代码生成(智能路由) | 前端→Gemini / 后端→Codex |
|
|
155
|
+
| `/ccg:debug` | UltraThink 多模型调试 | Codex + Gemini 并行诊断 |
|
|
156
|
+
| `/ccg:test` | 多模型测试生成 | Codex 后端测试 + Gemini 前端测试 |
|
|
157
|
+
| `/ccg:bugfix` | 质量门控修复(90%+ 通过) | 双模型交叉验证 |
|
|
158
|
+
| `/ccg:think` | 深度分析 | 双模型并行分析 |
|
|
159
|
+
| `/ccg:optimize` | 性能优化 | Codex 后端 + Gemini 前端 |
|
|
160
|
+
| `/ccg:frontend` | 前端/UI/样式任务 | Gemini |
|
|
161
|
+
| `/ccg:backend` | 后端/逻辑/算法任务 | Codex |
|
|
162
|
+
| `/ccg:review` | 代码审查(无参数自动审查 git diff) | Codex + Gemini |
|
|
163
|
+
| `/ccg:analyze` | 技术分析 | Codex + Gemini |
|
|
164
|
+
| `/ccg:enhance` | Prompt 增强 | Auggie MCP |
|
|
165
|
+
|
|
166
|
+
### Git 工具
|
|
167
|
+
|
|
168
|
+
| 命令 | 用途 |
|
|
169
|
+
|------|------|
|
|
170
|
+
| `/ccg:commit` | 智能 commit:分析改动、生成 conventional commit 信息、支持 emoji |
|
|
171
|
+
| `/ccg:rollback` | 交互式回滚:列分支、列版本、二次确认后执行 reset/revert |
|
|
172
|
+
| `/ccg:clean-branches` | 清理分支:安全查找并清理已合并或过期的分支 |
|
|
173
|
+
| `/ccg:worktree` | Worktree 管理:在 `../.ccg/项目名/` 下创建,支持 IDE 集成 |
|
|
174
|
+
|
|
175
|
+
### 项目初始化
|
|
176
|
+
|
|
177
|
+
| 命令 | 用途 |
|
|
178
|
+
|------|------|
|
|
179
|
+
| `/ccg:init` | 初始化项目 AI 上下文,生成根级与模块级 CLAUDE.md 索引 |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 工作流程
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
187
|
+
│ /ccg:dev 工作流 │
|
|
188
|
+
├─────────────────────────────────────────────────────────────┤
|
|
189
|
+
│ │
|
|
190
|
+
│ Phase 0: Prompt 增强 (Auggie prompt-enhancer) │
|
|
191
|
+
│ ↓ │
|
|
192
|
+
│ Phase 1: 上下文检索 (Auggie codebase-retrieval) │
|
|
193
|
+
│ ↓ │
|
|
194
|
+
│ Phase 2: 多模型分析 (Codex ∥ Gemini) ← 并行执行 │
|
|
195
|
+
│ ↓ │
|
|
196
|
+
│ Phase 3: 原型生成 │
|
|
197
|
+
│ ├── 前端任务 → Gemini │
|
|
198
|
+
│ └── 后端任务 → Codex │
|
|
199
|
+
│ ↓ │
|
|
200
|
+
│ Phase 4: 代码实施 (Claude 重构为生产级代码) │
|
|
201
|
+
│ ↓ │
|
|
202
|
+
│ Phase 5: 审计交付 (Codex ∥ Gemini) ← 并行审查 │
|
|
203
|
+
│ │
|
|
204
|
+
└─────────────────────────────────────────────────────────────┘
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 安装目录结构
|
|
210
|
+
|
|
211
|
+
安装后会在 `~/.claude/` 和 `~/.ccg/` 下创建:
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
~/.claude/
|
|
215
|
+
├── commands/ccg/ # 斜杠命令
|
|
216
|
+
│ ├── _config.md # 共享配置
|
|
217
|
+
│ ├── dev.md # /ccg:dev 完整工作流
|
|
218
|
+
│ ├── code.md # /ccg:code 多模型代码生成
|
|
219
|
+
│ ├── frontend.md # /ccg:frontend 前端任务
|
|
220
|
+
│ ├── backend.md # /ccg:backend 后端任务
|
|
221
|
+
│ └── ... # 其他命令
|
|
222
|
+
└── prompts/ccg/ # 角色提示词
|
|
223
|
+
├── codex/
|
|
224
|
+
│ ├── architect.md # 后端架构师
|
|
225
|
+
│ ├── analyzer.md # 技术分析师
|
|
226
|
+
│ ├── debugger.md # 调试专家
|
|
227
|
+
│ ├── tester.md # 测试工程师
|
|
228
|
+
│ ├── reviewer.md # 代码审查员
|
|
229
|
+
│ └── optimizer.md # 性能优化专家
|
|
230
|
+
├── gemini/
|
|
231
|
+
│ ├── frontend.md # 前端开发专家
|
|
232
|
+
│ └── ...
|
|
233
|
+
└── claude/
|
|
234
|
+
└── ...
|
|
235
|
+
|
|
236
|
+
~/.ccg/
|
|
237
|
+
└── config.toml # CCG 配置文件
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## 配置文件
|
|
243
|
+
|
|
244
|
+
配置文件位于 `~/.ccg/config.toml`:
|
|
245
|
+
|
|
246
|
+
```toml
|
|
247
|
+
[general]
|
|
248
|
+
version = "1.0.0"
|
|
249
|
+
language = "zh-CN"
|
|
250
|
+
|
|
251
|
+
[routing]
|
|
252
|
+
mode = "smart" # smart | parallel | sequential
|
|
253
|
+
|
|
254
|
+
[routing.frontend]
|
|
255
|
+
models = ["gemini", "codex", "claude"]
|
|
256
|
+
primary = "gemini"
|
|
257
|
+
strategy = "parallel"
|
|
258
|
+
|
|
259
|
+
[routing.backend]
|
|
260
|
+
models = ["codex", "gemini", "claude"]
|
|
261
|
+
primary = "codex"
|
|
262
|
+
strategy = "parallel"
|
|
263
|
+
|
|
264
|
+
[routing.review]
|
|
265
|
+
models = ["codex", "gemini", "claude"]
|
|
266
|
+
strategy = "parallel"
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 卸载
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# 交互式卸载
|
|
275
|
+
npx ccg-workflow
|
|
276
|
+
# 选择 "卸载 CCG"
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
或手动删除:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
rm -rf ~/.claude/commands/ccg
|
|
283
|
+
rm -rf ~/.claude/prompts/ccg
|
|
284
|
+
rm -rf ~/.ccg
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 开发
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# 克隆仓库
|
|
293
|
+
git clone https://github.com/fengshao1227/ccg-workflow.git
|
|
294
|
+
cd ccg-workflow/skills-v2
|
|
295
|
+
|
|
296
|
+
# 安装依赖
|
|
297
|
+
pnpm install
|
|
298
|
+
|
|
299
|
+
# 开发模式
|
|
300
|
+
pnpm dev
|
|
301
|
+
|
|
302
|
+
# 构建
|
|
303
|
+
pnpm build
|
|
304
|
+
|
|
305
|
+
# 本地测试
|
|
306
|
+
pnpm start
|
|
307
|
+
|
|
308
|
+
# 类型检查
|
|
309
|
+
pnpm typecheck
|
|
310
|
+
|
|
311
|
+
# 代码检查
|
|
312
|
+
pnpm lint
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 调用语法
|
|
318
|
+
|
|
319
|
+
**HEREDOC 语法(推荐)**:
|
|
320
|
+
```bash
|
|
321
|
+
codeagent-wrapper --backend <codex|gemini|claude> - [工作目录] <<'EOF'
|
|
322
|
+
<任务内容>
|
|
323
|
+
EOF
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**简单任务**:
|
|
327
|
+
```bash
|
|
328
|
+
codeagent-wrapper --backend codex "简单任务" [工作目录]
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**恢复会话**:
|
|
332
|
+
```bash
|
|
333
|
+
codeagent-wrapper --backend codex resume <session_id> - <<'EOF'
|
|
334
|
+
<后续任务>
|
|
335
|
+
EOF
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## 并行执行
|
|
341
|
+
|
|
342
|
+
使用 Claude Code 的 `run_in_background: true` 参数实现非阻塞并行:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
# 启动后台任务(非阻塞)
|
|
346
|
+
Bash(run_in_background=true): codeagent-wrapper --backend codex ...
|
|
347
|
+
Bash(run_in_background=true): codeagent-wrapper --backend gemini ...
|
|
348
|
+
|
|
349
|
+
# 获取结果
|
|
350
|
+
TaskOutput: task_id=<task_id>
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 安全机制
|
|
356
|
+
|
|
357
|
+
- **零写入权限**:Codex/Gemini 对文件系统无写入权限
|
|
358
|
+
- **Unified Diff**:所有外部模型输出必须为 Unified Diff Patch 格式
|
|
359
|
+
- **脏原型处理**:外部模型输出视为"脏原型",需经 Claude 重构
|
|
360
|
+
- **自动备份**:Patch Auggie MCP 时自动备份原文件
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 模型分工
|
|
365
|
+
|
|
366
|
+
| 模型 | 擅长领域 | 使用场景 |
|
|
367
|
+
|------|----------|----------|
|
|
368
|
+
| **Gemini** | 前端、UI/UX、视觉设计 | CSS、React、Vue 组件 |
|
|
369
|
+
| **Codex** | 后端、算法、调试 | API、业务逻辑、性能优化 |
|
|
370
|
+
| **Claude** | 编排、重构、交付 | 工作流控制、代码审核 |
|
|
371
|
+
| **Auggie** | 代码检索、Prompt 增强 | 上下文获取、需求优化 |
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## 专家系统提示词
|
|
376
|
+
|
|
377
|
+
调用外部模型时动态注入相应的角色设定,确保输出质量和一致性。
|
|
378
|
+
|
|
379
|
+
### 角色文件结构
|
|
380
|
+
|
|
381
|
+
每个命令根据任务类型注入不同的角色提示词:
|
|
382
|
+
|
|
383
|
+
| 命令 | Codex 角色 | Gemini 角色 |
|
|
384
|
+
|------|-----------|-------------|
|
|
385
|
+
| `/ccg:code`, `/ccg:backend` | `prompts/codex/architect.md` | - |
|
|
386
|
+
| `/ccg:frontend` | - | `prompts/gemini/frontend.md` |
|
|
387
|
+
| `/ccg:analyze`, `/ccg:think`, `/ccg:dev` | `prompts/codex/analyzer.md` | `prompts/gemini/analyzer.md` |
|
|
388
|
+
| `/ccg:debug` | `prompts/codex/debugger.md` | `prompts/gemini/debugger.md` |
|
|
389
|
+
| `/ccg:test` | `prompts/codex/tester.md` | `prompts/gemini/tester.md` |
|
|
390
|
+
| `/ccg:review`, `/ccg:bugfix` | `prompts/codex/reviewer.md` | `prompts/gemini/reviewer.md` |
|
|
391
|
+
| `/ccg:optimize` | `prompts/codex/optimizer.md` | `prompts/gemini/optimizer.md` |
|
|
392
|
+
|
|
393
|
+
### 动态角色注入
|
|
394
|
+
|
|
395
|
+
命令执行时,将角色文件内容注入到 `<ROLE>` 标签中:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
codeagent-wrapper --backend codex - $PROJECT_DIR <<'EOF'
|
|
399
|
+
<ROLE>
|
|
400
|
+
# 读取 prompts/codex/architect.md 的内容并注入
|
|
401
|
+
</ROLE>
|
|
402
|
+
|
|
403
|
+
<TASK>
|
|
404
|
+
实现后端逻辑: <任务描述>
|
|
405
|
+
|
|
406
|
+
Context:
|
|
407
|
+
<相关代码>
|
|
408
|
+
</TASK>
|
|
409
|
+
|
|
410
|
+
OUTPUT: Unified Diff Patch ONLY.
|
|
411
|
+
EOF
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### 完整提示词文件
|
|
415
|
+
|
|
416
|
+
- **Codex 角色**: `prompts/codex/` 目录下的 6 个文件
|
|
417
|
+
- **Gemini 角色**: `prompts/gemini/` 目录下的 6 个文件
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## 📄 许可证
|
|
422
|
+
|
|
423
|
+
本项目采用 [MIT License](LICENSE) 开源协议。
|
|
424
|
+
|
|
425
|
+
Copyright (c) 2025 fengshao1227
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## 致谢
|
|
430
|
+
|
|
431
|
+
- **[cexll/myclaude](https://github.com/cexll/myclaude)** - codeagent-wrapper 多后端调用工具的 Go 代码来源,以及 `/ccg:code`、`/ccg:debug`、`/ccg:test`、`/ccg:bugfix`、`/ccg:think`、`/ccg:optimize` 命令的设计参考
|
|
432
|
+
- **[UfoMiao/zcf](https://github.com/UfoMiao/zcf)** - Git 工具(commit、rollback、clean-branches、worktree)和项目初始化(init)命令来源
|
|
433
|
+
- **[GudaStudio/skills](https://github.com/GuDaStudio/skills)** - 智能路由(前端→Gemini、后端→Codex)的设计理念
|
|
434
|
+
- **[linux.do 社区](https://linux.do/t/topic/1280612)** - Auggie MCP prompt-enhancer 补丁
|
package/bin/ccg.mjs
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/cli.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/cli.mjs
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import cac from 'cac';
|
|
3
|
+
import ansis from 'ansis';
|
|
4
|
+
import { r as readCcgConfig, b as initI18n, s as showMainMenu, i as init, a as i18n } from './shared/ccg-workflow.D_RkPyZ0.mjs';
|
|
5
|
+
import 'inquirer';
|
|
6
|
+
import 'node:os';
|
|
7
|
+
import 'pathe';
|
|
8
|
+
import 'i18next';
|
|
9
|
+
import 'fs-extra';
|
|
10
|
+
import 'node:url';
|
|
11
|
+
import 'ora';
|
|
12
|
+
import 'smol-toml';
|
|
13
|
+
|
|
14
|
+
const version = "1.0.0";
|
|
15
|
+
|
|
16
|
+
function customizeHelp(sections) {
|
|
17
|
+
sections.unshift({
|
|
18
|
+
title: "",
|
|
19
|
+
body: ansis.cyan.bold(`CCG - Claude + Codex + Gemini v${version}`)
|
|
20
|
+
});
|
|
21
|
+
sections.push({
|
|
22
|
+
title: ansis.yellow(i18n.t("cli:help.commands")),
|
|
23
|
+
body: [
|
|
24
|
+
` ${ansis.cyan("ccg")} ${i18n.t("cli:help.commandDescriptions.showMenu")}`,
|
|
25
|
+
` ${ansis.cyan("ccg init")} | ${ansis.cyan("i")} ${i18n.t("cli:help.commandDescriptions.initConfig")}`,
|
|
26
|
+
"",
|
|
27
|
+
ansis.gray(` ${i18n.t("cli:help.shortcuts")}`),
|
|
28
|
+
` ${ansis.cyan("ccg i")} ${i18n.t("cli:help.shortcutDescriptions.quickInit")}`
|
|
29
|
+
].join("\n")
|
|
30
|
+
});
|
|
31
|
+
sections.push({
|
|
32
|
+
title: ansis.yellow(i18n.t("cli:help.options")),
|
|
33
|
+
body: [
|
|
34
|
+
` ${ansis.green("--lang, -l")} <lang> ${i18n.t("cli:help.optionDescriptions.displayLanguage")} (zh-CN, en)`,
|
|
35
|
+
` ${ansis.green("--force, -f")} ${i18n.t("cli:help.optionDescriptions.forceOverwrite")}`,
|
|
36
|
+
` ${ansis.green("--help, -h")} ${i18n.t("cli:help.optionDescriptions.displayHelp")}`,
|
|
37
|
+
` ${ansis.green("--version, -v")} ${i18n.t("cli:help.optionDescriptions.displayVersion")}`,
|
|
38
|
+
"",
|
|
39
|
+
ansis.gray(` ${i18n.t("cli:help.nonInteractiveMode")}`),
|
|
40
|
+
` ${ansis.green("--skip-prompt, -s")} ${i18n.t("cli:help.optionDescriptions.skipAllPrompts")}`,
|
|
41
|
+
` ${ansis.green("--frontend, -F")} <models> ${i18n.t("cli:help.optionDescriptions.frontendModels")}`,
|
|
42
|
+
` ${ansis.green("--backend, -B")} <models> ${i18n.t("cli:help.optionDescriptions.backendModels")}`,
|
|
43
|
+
` ${ansis.green("--mode, -m")} <mode> ${i18n.t("cli:help.optionDescriptions.collaborationMode")}`,
|
|
44
|
+
` ${ansis.green("--workflows, -w")} <list> ${i18n.t("cli:help.optionDescriptions.workflows")}`,
|
|
45
|
+
` ${ansis.green("--install-dir, -d")} <path> ${i18n.t("cli:help.optionDescriptions.installDir")}`
|
|
46
|
+
].join("\n")
|
|
47
|
+
});
|
|
48
|
+
sections.push({
|
|
49
|
+
title: ansis.yellow(i18n.t("cli:help.examples")),
|
|
50
|
+
body: [
|
|
51
|
+
ansis.gray(` # ${i18n.t("cli:help.exampleDescriptions.showInteractiveMenu")}`),
|
|
52
|
+
` ${ansis.cyan("npx ccg")}`,
|
|
53
|
+
"",
|
|
54
|
+
ansis.gray(` # ${i18n.t("cli:help.exampleDescriptions.runFullInitialization")}`),
|
|
55
|
+
` ${ansis.cyan("npx ccg init")}`,
|
|
56
|
+
` ${ansis.cyan("npx ccg i")}`,
|
|
57
|
+
"",
|
|
58
|
+
ansis.gray(` # ${i18n.t("cli:help.exampleDescriptions.customModels")}`),
|
|
59
|
+
` ${ansis.cyan("npx ccg i --frontend gemini,codex --backend codex,gemini")}`,
|
|
60
|
+
"",
|
|
61
|
+
ansis.gray(` # ${i18n.t("cli:help.exampleDescriptions.parallelMode")}`),
|
|
62
|
+
` ${ansis.cyan("npx ccg i --mode parallel")}`,
|
|
63
|
+
""
|
|
64
|
+
].join("\n")
|
|
65
|
+
});
|
|
66
|
+
return sections;
|
|
67
|
+
}
|
|
68
|
+
async function setupCommands(cli) {
|
|
69
|
+
try {
|
|
70
|
+
const config = await readCcgConfig();
|
|
71
|
+
const defaultLang = config?.general?.language || "en";
|
|
72
|
+
await initI18n(defaultLang);
|
|
73
|
+
} catch {
|
|
74
|
+
await initI18n("en");
|
|
75
|
+
}
|
|
76
|
+
cli.command("", "Show interactive menu (default)").option("--lang, -l <lang>", "Display language (zh-CN, en)").action(async (options) => {
|
|
77
|
+
if (options.lang) {
|
|
78
|
+
await initI18n(options.lang);
|
|
79
|
+
}
|
|
80
|
+
await showMainMenu();
|
|
81
|
+
});
|
|
82
|
+
cli.command("init", "Initialize CCG multi-model collaboration system").alias("i").option("--lang, -l <lang>", "Display language (zh-CN, en)").option("--force, -f", "Force overwrite existing configuration").option("--skip-prompt, -s", "Skip all interactive prompts (non-interactive mode)").option("--frontend, -F <models>", "Frontend models (comma-separated: gemini,codex,claude)").option("--backend, -B <models>", "Backend models (comma-separated: codex,gemini,claude)").option("--mode, -m <mode>", "Collaboration mode (parallel, smart, sequential)").option("--workflows, -w <workflows>", 'Workflows to install (comma-separated or "all")').option("--install-dir, -d <path>", "Installation directory (default: ~/.claude)").action(async (options) => {
|
|
83
|
+
if (options.lang) {
|
|
84
|
+
await initI18n(options.lang);
|
|
85
|
+
}
|
|
86
|
+
await init(options);
|
|
87
|
+
});
|
|
88
|
+
cli.help((sections) => customizeHelp(sections));
|
|
89
|
+
cli.version(version);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async function main() {
|
|
93
|
+
const cli = cac("ccg");
|
|
94
|
+
await setupCommands(cli);
|
|
95
|
+
cli.parse();
|
|
96
|
+
}
|
|
97
|
+
main().catch(console.error);
|