ccg-ros2-workflow 1.0.0 → 1.0.2

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 (3) hide show
  1. package/README.md +87 -13
  2. package/bin/cli.js +98 -5
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -7,6 +7,7 @@ ROS2 多模型协作开发工具 - 基于 Claude Code CLI
7
7
  - **多模型协作**: Codex (底层控制) + Gemini (上层集成) + Claude (编排)
8
8
  - **ROS2 Humble**: 专为物理机器人开发优化
9
9
  - **简洁原则**: 信任模型能力,上下文由 MCP 检索
10
+ - **ace-tool MCP**: 自动理解项目结构和代码上下文
10
11
  - **跨平台**: macOS / Ubuntu 支持
11
12
 
12
13
  ## 安装
@@ -22,6 +23,12 @@ npm install -g ccg-ros2-workflow
22
23
  ccg-ros2-workflow
23
24
  ```
24
25
 
26
+ 安装程序提供以下选项:
27
+ 1. 安装工作流
28
+ 2. 配置 API 密钥
29
+ 3. 配置 ace-tool MCP
30
+ 4. 卸载工作流
31
+
25
32
  ## 前置依赖
26
33
 
27
34
  需要先安装:
@@ -29,6 +36,7 @@ ccg-ros2-workflow
29
36
  - [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)
30
37
  - [Codex CLI](https://github.com/openai/codex) (可选)
31
38
  - [Gemini CLI](https://github.com/google/gemini-cli) (可选)
39
+ - [ace-tool](https://augmentcode.com/) (推荐,提供代码上下文)
32
40
 
33
41
  ```bash
34
42
  # Gemini CLI
@@ -43,6 +51,9 @@ npm install -g @google/gemini-cli
43
51
  # 完整工作流
44
52
  /ccg:workflow 为移动机器人添加速度限制器
45
53
 
54
+ # 智能功能开发
55
+ /ccg:feat 实现 PID 控制器
56
+
46
57
  # 分析任务
47
58
  /ccg:analyze 分析控制器实现
48
59
 
@@ -55,17 +66,42 @@ npm install -g @google/gemini-cli
55
66
 
56
67
  ## 命令列表
57
68
 
69
+ ### 核心工作流
70
+
71
+ | 命令 | 说明 |
72
+ |------|------|
73
+ | `/ccg:workflow` | 🚀 主工作流 - 6阶段完整开发流程(研究→构思→计划→执行→优化→评审) |
74
+ | `/ccg:plan` | 📋 多模型协作规划 - Codex + Gemini 双模型生成实施计划 |
75
+ | `/ccg:execute` | ⚡ 多模型协作执行 - 根据计划获取原型 → Claude 重构实施 |
76
+ | `/ccg:feat` | ✨ 智能功能开发 - 自动识别输入类型,规划/讨论/实施全流程 |
77
+
78
+ ### 专项开发
79
+
58
80
  | 命令 | 说明 |
59
81
  |------|------|
60
- | `/ccg:workflow` | 6 阶段完整工作流 |
61
- | `/ccg:analyze` | 双模型并行分析 |
62
- | `/ccg:plan` | 多模型协作规划 |
63
- | `/ccg:execute` | 执行实施 |
64
- | `/ccg:review` | 双模型代码审查 |
65
- | `/ccg:debug` | 多模型调试 |
66
- | `/ccg:optimize` | 性能优化 |
67
- | `/ccg:test` | 测试生成 |
68
- | `/ccg:commit` | 智能 Git 提交 |
82
+ | `/ccg:frontend` | 🎨 前端专项开发 - Gemini 主导(Python 节点、配置、诊断) |
83
+ | `/ccg:backend` | 🔧 后端专项开发 - Codex 主导(C++ 节点、控制、驱动) |
84
+
85
+ ### 分析与优化
86
+
87
+ | 命令 | 说明 |
88
+ |------|------|
89
+ | `/ccg:analyze` | 🔍 多模型技术分析 - Codex 底层视角 + Gemini 上层视角交叉验证 |
90
+ | `/ccg:review` | 👀 多模型代码审查 - 双模型交叉验证 git diff |
91
+ | `/ccg:test` | 🧪 多模型测试生成 - Codex 后端测试 / Gemini 前端测试 |
92
+ | `/ccg:debug` | 🐛 多模型调试 - Codex 后端诊断 + Gemini 前端诊断 |
93
+ | `/ccg:optimize` | ⚡ 多模型性能优化 - Codex 后端优化 + Gemini 前端优化 |
94
+
95
+ ### 辅助工具
96
+
97
+ | 命令 | 说明 |
98
+ |------|------|
99
+ | `/ccg:init` | 🏗️ 初始化项目 AI 上下文 - 生成 CLAUDE.md 索引 |
100
+ | `/ccg:enhance` | 📝 Prompt 优化 - 使用 ace-tool 增强用户提示词 |
101
+ | `/ccg:commit` | 💾 智能 Git 提交 - 分析改动生成 Conventional Commit |
102
+ | `/ccg:rollback` | ⏪ 交互式 Git 回滚 - 安全回滚到历史版本 |
103
+ | `/ccg:clean-branches` | 🧹 清理 Git 分支 - 安全清理已合并/过期分支 |
104
+ | `/ccg:worktree` | 🌲 Git Worktree 管理 - 创建工作树支持 IDE 集成 |
69
105
 
70
106
  ## 架构
71
107
 
@@ -84,6 +120,14 @@ npm install -g @google/gemini-cli
84
120
  └───────────────┘ └───────────────┘
85
121
  ```
86
122
 
123
+ ### 模型分工
124
+
125
+ | 模型 | 职责 | 关键词 |
126
+ |------|------|--------|
127
+ | **Codex** | 底层系统 | 控制算法、运动学/动力学、实时性能、硬件驱动、C++ 节点、安全系统 |
128
+ | **Gemini** | 上层集成 | Launch 文件、YAML 配置、Python 节点、系统诊断、参数管理 |
129
+ | **Claude** | 编排执行 | 综合两个模型输出、执行代码修改、协调工作流 |
130
+
87
131
  ## 配置
88
132
 
89
133
  安装后配置文件位于:
@@ -93,14 +137,36 @@ npm install -g @google/gemini-cli
93
137
  ├── .ccg/
94
138
  │ ├── config.toml # 主配置
95
139
  │ └── prompts/ # 提示词
96
- │ ├── codex/
97
- │ ├── gemini/
98
- │ └── claude/
99
- ├── commands/ccg/ # 命令文件
140
+ │ ├── codex/ # 底层分析/架构/审查/调试/优化/测试
141
+ │ ├── gemini/ # 上层分析/架构/审查/调试/优化/测试/前端
142
+ │ └── claude/ # 编排分析/架构/审查/调试/优化/测试
143
+ ├── commands/ccg/ # 17 个命令文件
144
+ ├── mcp_servers.json # MCP 配置 (ace-tool)
100
145
  └── bin/
101
146
  └── codeagent-wrapper # 模型调用脚本
102
147
  ```
103
148
 
149
+ ## MCP 配置 (ace-tool)
150
+
151
+ ace-tool 是 Augment Code 的代码上下文引擎,让 AI 自动理解项目结构。
152
+
153
+ 安装时选择「配置 ace-tool MCP」会自动添加到 `~/.claude/mcp_servers.json`:
154
+
155
+ ```json
156
+ {
157
+ "ace-tool": {
158
+ "command": "ace-tool",
159
+ "args": ["mcp"],
160
+ "env": {}
161
+ }
162
+ }
163
+ ```
164
+
165
+ 使用前需要:
166
+ 1. 安装 ace-tool CLI(访问 https://augmentcode.com/)
167
+ 2. 运行 `ace-tool login` 登录
168
+ 3. 重启 Claude Code
169
+
104
170
  ## 语言配置
105
171
 
106
172
  | 场景 | 语言 |
@@ -109,6 +175,14 @@ npm install -g @google/gemini-cli
109
175
  | 交互 | 中文 |
110
176
  | 代码注释 | 中文 |
111
177
 
178
+ ## ROS2 配置
179
+
180
+ | 项目 | 值 |
181
+ |------|-----|
182
+ | 发行版 | Humble |
183
+ | 目标 | 物理机器人 |
184
+ | 路由模式 | 智能路由 |
185
+
112
186
  ## 卸载
113
187
 
114
188
  ```bash
package/bin/cli.js CHANGED
@@ -9,6 +9,7 @@ const CLAUDE_DIR = path.join(process.env.HOME, '.claude');
9
9
  const CCG_DIR = path.join(CLAUDE_DIR, '.ccg');
10
10
  const COMMANDS_DIR = path.join(CLAUDE_DIR, 'commands', 'ccg');
11
11
  const BIN_DIR = path.join(CLAUDE_DIR, 'bin');
12
+ const MCP_CONFIG_PATH = path.join(CLAUDE_DIR, 'mcp_servers.json');
12
13
  const SRC_DIR = path.join(__dirname, '..', 'src');
13
14
 
14
15
  const rl = readline.createInterface({
@@ -63,10 +64,11 @@ async function main() {
63
64
  console.log('\n请选择操作:');
64
65
  console.log('1. 安装工作流');
65
66
  console.log('2. 配置 API 密钥');
66
- console.log('3. 卸载工作流');
67
- console.log('4. 退出');
67
+ console.log('3. 配置 ace-tool MCP');
68
+ console.log('4. 卸载工作流');
69
+ console.log('5. 退出');
68
70
 
69
- const choice = await question('\n请输入选项 (1-4): ');
71
+ const choice = await question('\n请输入选项 (1-5): ');
70
72
 
71
73
  switch (choice) {
72
74
  case '1':
@@ -76,6 +78,9 @@ async function main() {
76
78
  await configureApiKeys();
77
79
  break;
78
80
  case '3':
81
+ await configureMCP();
82
+ break;
83
+ case '4':
79
84
  await uninstall();
80
85
  break;
81
86
  default:
@@ -129,10 +134,16 @@ async function install() {
129
134
  });
130
135
  });
131
136
 
132
- console.log('\n✅ 安装完成!\n');
137
+ console.log('\n✅ 工作流安装完成!\n');
138
+
139
+ // 询问是否配置 MCP
140
+ const configMcp = await question('是否配置 ace-tool MCP?(推荐,提供代码上下文) (Y/n): ');
141
+ if (configMcp.toLowerCase() !== 'n') {
142
+ await configureMCP();
143
+ }
133
144
 
134
145
  // 询问是否配置 API
135
- const configApi = await question('是否现在配置 API 密钥? (Y/n): ');
146
+ const configApi = await question('\n是否配置 API 密钥? (Y/n): ');
136
147
  if (configApi.toLowerCase() !== 'n') {
137
148
  await configureApiKeys();
138
149
  }
@@ -140,6 +151,68 @@ async function install() {
140
151
  console.log('\n📖 使用方法:');
141
152
  console.log(' 在 Claude Code 中使用 /ccg:workflow <任务描述>');
142
153
  console.log(' 查看所有命令:/ccg:<Tab>');
154
+ console.log('\n⚠️ 请重启终端或 Claude Code 使配置生效');
155
+ }
156
+
157
+ async function configureMCP() {
158
+ console.log('\n🔧 配置 ace-tool MCP\n');
159
+ console.log('ace-tool 是 Augment Code 的代码上下文引擎');
160
+ console.log('它能让 AI 自动理解你的项目结构和代码\n');
161
+
162
+ // 检查是否已安装 ace-tool
163
+ let aceToolInstalled = false;
164
+ try {
165
+ execSync('which ace-tool', { stdio: 'ignore' });
166
+ aceToolInstalled = true;
167
+ console.log('✅ 检测到 ace-tool 已安装\n');
168
+ } catch {
169
+ console.log('⚠️ 未检测到 ace-tool\n');
170
+ }
171
+
172
+ if (!aceToolInstalled) {
173
+ console.log('安装 ace-tool 的方式:');
174
+ console.log('1. 访问 https://augmentcode.com/ 注册账号');
175
+ console.log('2. 按照官方指引安装 ace-tool CLI\n');
176
+
177
+ const proceed = await question('是否继续配置 MCP?(可以稍后安装 ace-tool) (Y/n): ');
178
+ if (proceed.toLowerCase() === 'n') {
179
+ return;
180
+ }
181
+ }
182
+
183
+ // 读取或创建 MCP 配置
184
+ let mcpConfig = {};
185
+ if (fs.existsSync(MCP_CONFIG_PATH)) {
186
+ try {
187
+ mcpConfig = JSON.parse(fs.readFileSync(MCP_CONFIG_PATH, 'utf8'));
188
+ console.log('检测到已有 MCP 配置,将添加 ace-tool\n');
189
+ } catch {
190
+ mcpConfig = {};
191
+ }
192
+ }
193
+
194
+ // 添加 ace-tool 配置
195
+ mcpConfig['ace-tool'] = {
196
+ command: 'ace-tool',
197
+ args: ['mcp'],
198
+ env: {}
199
+ };
200
+
201
+ // 写入配置
202
+ fs.mkdirSync(CLAUDE_DIR, { recursive: true });
203
+ fs.writeFileSync(MCP_CONFIG_PATH, JSON.stringify(mcpConfig, null, 2));
204
+
205
+ console.log('✅ MCP 配置已写入: ~/.claude/mcp_servers.json\n');
206
+ console.log('配置内容:');
207
+ console.log(JSON.stringify(mcpConfig['ace-tool'], null, 2));
208
+
209
+ console.log('\n📌 后续步骤:');
210
+ console.log('1. 确保已安装 ace-tool CLI');
211
+ console.log('2. 运行 ace-tool login 登录 Augment 账号');
212
+ console.log('3. 重启 Claude Code 使 MCP 生效');
213
+ console.log('\n使用方式:');
214
+ console.log(' 在 workflow 中自动调用 mcp__ace-tool__search_context');
215
+ console.log(' 或手动调用 mcp__ace-tool__enhance_prompt');
143
216
  }
144
217
 
145
218
  async function configureApiKeys() {
@@ -205,6 +278,26 @@ async function uninstall() {
205
278
  console.log(`已删除: ${wrapperPath}`);
206
279
  }
207
280
 
281
+ // 询问是否删除 MCP 配置
282
+ if (fs.existsSync(MCP_CONFIG_PATH)) {
283
+ const removeMcp = await question('是否删除 MCP 配置? (y/N): ');
284
+ if (removeMcp.toLowerCase() === 'y') {
285
+ try {
286
+ let mcpConfig = JSON.parse(fs.readFileSync(MCP_CONFIG_PATH, 'utf8'));
287
+ delete mcpConfig['ace-tool'];
288
+ if (Object.keys(mcpConfig).length === 0) {
289
+ fs.unlinkSync(MCP_CONFIG_PATH);
290
+ console.log('已删除: ~/.claude/mcp_servers.json');
291
+ } else {
292
+ fs.writeFileSync(MCP_CONFIG_PATH, JSON.stringify(mcpConfig, null, 2));
293
+ console.log('已从 MCP 配置中移除 ace-tool');
294
+ }
295
+ } catch {
296
+ // ignore
297
+ }
298
+ }
299
+ }
300
+
208
301
  console.log('\n✅ 卸载完成');
209
302
  console.log('注意: 环境变量需要手动从 ~/.zshrc 或 ~/.bashrc 中删除');
210
303
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccg-ros2-workflow",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "ROS2 Multi-model Collaborative Development Workflow - Codex (Low-level) + Gemini (High-level) + Claude (Orchestration)",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {