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.
Files changed (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +434 -0
  3. package/bin/ccg.mjs +2 -0
  4. package/bin/codeagent-wrapper-darwin-amd64 +0 -0
  5. package/bin/codeagent-wrapper-darwin-arm64 +0 -0
  6. package/bin/codeagent-wrapper-linux-amd64 +0 -0
  7. package/bin/codeagent-wrapper-windows-amd64.exe +0 -0
  8. package/dist/cli.d.mts +1 -0
  9. package/dist/cli.d.ts +1 -0
  10. package/dist/cli.mjs +97 -0
  11. package/dist/index.d.mts +134 -0
  12. package/dist/index.d.ts +134 -0
  13. package/dist/index.mjs +10 -0
  14. package/dist/shared/ccg-workflow.D_RkPyZ0.mjs +1117 -0
  15. package/package.json +63 -0
  16. package/prompts/claude/analyzer.md +59 -0
  17. package/prompts/claude/architect.md +54 -0
  18. package/prompts/claude/debugger.md +71 -0
  19. package/prompts/claude/optimizer.md +73 -0
  20. package/prompts/claude/reviewer.md +63 -0
  21. package/prompts/claude/tester.md +69 -0
  22. package/prompts/codex/analyzer.md +50 -0
  23. package/prompts/codex/architect.md +46 -0
  24. package/prompts/codex/debugger.md +66 -0
  25. package/prompts/codex/optimizer.md +74 -0
  26. package/prompts/codex/reviewer.md +66 -0
  27. package/prompts/codex/tester.md +55 -0
  28. package/prompts/gemini/analyzer.md +53 -0
  29. package/prompts/gemini/debugger.md +70 -0
  30. package/prompts/gemini/frontend.md +56 -0
  31. package/prompts/gemini/optimizer.md +77 -0
  32. package/prompts/gemini/reviewer.md +73 -0
  33. package/prompts/gemini/tester.md +61 -0
  34. package/templates/commands/_config.md +85 -0
  35. package/templates/commands/analyze.md +73 -0
  36. package/templates/commands/backend.md +81 -0
  37. package/templates/commands/bugfix.md +55 -0
  38. package/templates/commands/clean-branches.md +102 -0
  39. package/templates/commands/code.md +169 -0
  40. package/templates/commands/commit.md +158 -0
  41. package/templates/commands/debug.md +104 -0
  42. package/templates/commands/dev.md +153 -0
  43. package/templates/commands/enhance.md +49 -0
  44. package/templates/commands/frontend.md +80 -0
  45. package/templates/commands/init.md +53 -0
  46. package/templates/commands/optimize.md +69 -0
  47. package/templates/commands/review.md +85 -0
  48. package/templates/commands/rollback.md +90 -0
  49. package/templates/commands/test.md +53 -0
  50. package/templates/commands/think.md +73 -0
  51. package/templates/commands/worktree.md +276 -0
  52. package/templates/prompts/claude/analyzer.md +59 -0
  53. package/templates/prompts/claude/architect.md +54 -0
  54. package/templates/prompts/claude/debugger.md +71 -0
  55. package/templates/prompts/claude/optimizer.md +73 -0
  56. package/templates/prompts/claude/reviewer.md +63 -0
  57. package/templates/prompts/claude/tester.md +69 -0
  58. package/templates/prompts/codex/analyzer.md +50 -0
  59. package/templates/prompts/codex/architect.md +46 -0
  60. package/templates/prompts/codex/debugger.md +66 -0
  61. package/templates/prompts/codex/optimizer.md +74 -0
  62. package/templates/prompts/codex/reviewer.md +66 -0
  63. package/templates/prompts/codex/tester.md +55 -0
  64. package/templates/prompts/gemini/analyzer.md +53 -0
  65. package/templates/prompts/gemini/debugger.md +70 -0
  66. package/templates/prompts/gemini/frontend.md +56 -0
  67. package/templates/prompts/gemini/optimizer.md +77 -0
  68. package/templates/prompts/gemini/reviewer.md +73 -0
  69. 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
+ [![npm version](https://img.shields.io/npm/v/ccg-workflow.svg)](https://www.npmjs.com/package/ccg-workflow)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
9
+ [![Claude Code](https://img.shields.io/badge/Claude%20Code-Compatible-green.svg)](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
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../dist/cli.mjs'
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);