From 3f6fa128cb3bdcd754c9a25a340f7d7b6b17aaab Mon Sep 17 00:00:00 2001 From: li Date: Wed, 7 Jan 2026 23:59:27 +0800 Subject: [PATCH] =?UTF-8?q?release:=20v1.7.0=20-=20=E5=A4=A7=E5=B9=85?= =?UTF-8?q?=E7=AE=80=E5=8C=96=E5=AE=89=E8=A3=85=E6=B5=81=E7=A8=8B=EF=BC=8C?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E6=A8=A1=E5=9E=8B=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主要变更: - 🎯 简化安装流程:只需配置 MCP(可选),无需选择语言/模型/命令 - 🔧 固定模型路由:Gemini (前端) + Codex (后端) - ✂️ 精简命令:从 17 个减少到 14 个 - 删除 think(与 analyze 重叠) - 删除 bugfix(与 debug 重叠) - 删除 code(被 workflow 覆盖) - 删除 enhance(集成到 workflow) - 📝 重写所有命令模板:统一 [模式:X] 标签系统,精简到 100-140 行 - 📦 新增平台支持:Linux ARM64 + Windows ARM64 --- CLAUDE.md | 522 ++++++--------------------- README.md | 173 ++++----- package.json | 2 +- src/commands/init.ts | 173 +-------- src/commands/menu.ts | 20 + src/utils/installer.ts | 377 +++++++++++-------- templates/commands/analyze.md | 187 ++++++---- templates/commands/backend.md | 239 +++++------- templates/commands/bugfix.md | 114 ------ templates/commands/clean-branches.md | 151 ++++---- templates/commands/code.md | 255 ------------- templates/commands/commit.md | 214 +++++------ templates/commands/debug.md | 174 ++++----- templates/commands/dev.md | 179 --------- templates/commands/feat.md | 369 ++++--------------- templates/commands/frontend.md | 241 +++++-------- templates/commands/init.md | 136 +++++-- templates/commands/optimize.md | 177 +++++---- templates/commands/review.md | 177 +++++---- templates/commands/rollback.md | 152 ++++---- templates/commands/test.md | 165 ++++++--- templates/commands/think.md | 102 ------ templates/commands/workflow.md | 198 ++++++++++ templates/commands/worktree.md | 304 ++++------------ 24 files changed, 1854 insertions(+), 2947 deletions(-) delete mode 100644 templates/commands/bugfix.md delete mode 100644 templates/commands/code.md delete mode 100644 templates/commands/dev.md delete mode 100644 templates/commands/think.md create mode 100644 templates/commands/workflow.md diff --git a/CLAUDE.md b/CLAUDE.md index 87229ef..7983e61 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,17 +2,28 @@ > [根目录](../CLAUDE.md) > **skills-v2** -**Last Updated**: 2026-01-07 13:47:55 CST +**Last Updated**: 2026-01-08 (v1.7.0) --- ## 变更记录 (Changelog) -### 2026-01-07 13:47:55 -- 🎉 初始化架构师扫描完成 -- ✅ 识别 5 个核心模块:codeagent-wrapper、cli-tool、command-templates、expert-prompts、precompiled-binaries -- ✅ 生成 `.claude/index.json` 索引文件 -- ✅ 覆盖率:95%+(已扫描 Go、TypeScript、Markdown 等 101+ 文件) +### 2026-01-08 (v1.7.0) +- 🎯 **大幅简化安装流程**:只需配置 MCP(可选),无需选择语言/模型/命令 +- 🔧 **固定模型路由**:Gemini (前端) + Codex (后端),不再支持自定义 +- ✂️ **精简命令**:从 17 个减少到 14 个 + - 删除 `think`(与 analyze 重叠) + - 删除 `bugfix`(与 debug 重叠) + - 删除 `code`(被 workflow 覆盖) + - 删除 `enhance`(集成到 workflow) +- 📝 **重写所有命令模板**:统一 `[模式:X]` 标签系统,精简到 100-140 行 + +### 2026-01-07 22:25:00 (v1.6.1) +- ✨ **新增平台支持**:Linux ARM64 + Windows ARM64 +- 🔧 编译 `codeagent-wrapper-linux-arm64` (2.7MB) +- 🔧 编译 `codeagent-wrapper-windows-arm64.exe` (2.7MB) +- 📝 修改 `installer.ts` 支持全平台架构检测 (darwin/linux/windows × amd64/arm64) +- 🎯 **覆盖率**: 100% 主流平台(6 个二进制文件) --- @@ -20,11 +31,11 @@ **CCG (Claude + Codex + Gemini)** - 多模型协作系统的核心实现,提供: -1. **多模型协作编排**:智能路由前端任务(Gemini)、后端任务(Codex)、全栈整合(Claude) -2. **17 个斜杠命令**:覆盖开发工作流(dev、code、frontend、backend、debug、test、review 等)、Git 工具(commit、rollback、clean-branches)、规划(scan、feat) -3. **12 个专家提示词**:Codex 6 个(architect、analyzer、debugger、optimizer、reviewer、tester)+ Gemini 6 个(frontend、analyzer、debugger、optimizer、reviewer、tester) -4. **跨平台 CLI 工具**:交互式安装、配置、更新、诊断(支持 macOS、Linux、Windows) -5. **MCP 集成**:ace-tool 自动配置(代码检索 + Prompt 增强) +1. **多模型协作编排**:固定路由 Gemini(前端)+ Codex(后端)+ Claude(编排) +2. **14 个斜杠命令**:开发工作流 + Git 工具 + 项目管理 +3. **12 个专家提示词**:Codex 6 个 + Gemini 6 个 +4. **跨平台 CLI 工具**:一键安装(支持 macOS、Linux、Windows) +5. **MCP 集成**:ace-tool 可选配置(代码检索 + Prompt 增强) --- @@ -33,14 +44,11 @@ ### 用户安装入口 ```bash -# NPM 包安装 +# 一键安装(推荐) npx ccg-workflow # 交互式菜单 npx ccg-workflow menu - -# 直接初始化 -npx ccg-workflow init --lang zh-CN --workflows standard ``` ### CLI 入口点 @@ -69,58 +77,54 @@ npx ccg-workflow init --lang zh-CN --workflows standard ### CLI 命令接口 -| 命令 | 用途 | 参数 | -|------|------|------| -| `npx ccg init` | 初始化 CCG 工作流 | `--lang`, `--frontend`, `--backend`, `--mode`, `--workflows` | -| `npx ccg update` | 更新到最新版本 | `--force` | -| `npx ccg menu` | 交互式菜单 | 无 | -| `npx ccg diagnose-mcp` | 诊断 MCP 配置 | 无 | -| `npx ccg config mcp` | 配置 MCP 工具 | 无 | +| 命令 | 用途 | +|------|------| +| `npx ccg-workflow` | 一键安装/菜单 | +| `npx ccg-workflow menu` | 交互式菜单 | +| `npx ccg-workflow update` | 更新到最新版本 | +| `npx ccg-workflow diagnose-mcp` | 诊断 MCP 配置 | -### Slash Commands 接口 - -安装后可在 Claude Code 中使用的 17 个命令: +### Slash Commands 接口(14 个) **开发工作流**: -- `/ccg:dev` - 完整 6 阶段工作流(Prompt 增强 → 上下文检索 → 多模型分析 → 原型生成 → 代码实施 → 审计交付) -- `/ccg:code` - 智能代码生成(前端→Gemini / 后端→Codex) -- `/ccg:frontend` - 前端任务(多模型并行:Gemini + Claude) -- `/ccg:backend` - 后端任务(多模型并行:Codex + Gemini) -- `/ccg:debug` - UltraThink 多模型调试 -- `/ccg:test` - 多模型测试生成 -- `/ccg:bugfix` - 质量门控修复(90%+ 通过率) -- `/ccg:optimize` - 性能优化 -- `/ccg:review` - 代码审查(自动审查 git diff) -- `/ccg:analyze` - 技术分析 -- `/ccg:think` - 深度分析 -- `/ccg:scan` - 智能仓库扫描 -- `/ccg:feat` - 智能功能开发(规划→实施→审查) +| 命令 | 用途 | 模型 | +|------|------|------| +| `/ccg:workflow` | 完整 6 阶段工作流 | Codex ∥ Gemini | +| `/ccg:frontend` | 前端专项(快速模式) | Gemini | +| `/ccg:backend` | 后端专项(快速模式) | Codex | +| `/ccg:feat` | 智能功能开发 | 规划 → 实施 | +| `/ccg:analyze` | 技术分析(仅分析) | Codex ∥ Gemini | +| `/ccg:debug` | 问题诊断 + 修复 | Codex ∥ Gemini | +| `/ccg:optimize` | 性能优化 | Codex ∥ Gemini | +| `/ccg:test` | 测试生成 | 智能路由 | +| `/ccg:review` | 代码审查(自动 git diff) | Codex ∥ Gemini | + +**项目管理**: +| 命令 | 用途 | +|------|------| +| `/ccg:init` | 初始化项目 CLAUDE.md | **Git 工具**: -- `/ccg:commit` - 智能提交(生成 conventional commit 信息) -- `/ccg:rollback` - 交互式回滚 -- `/ccg:clean-branches` - 清理已合并分支 -- `/ccg:worktree` - Worktree 管理 +| 命令 | 用途 | +|------|------| +| `/ccg:commit` | 智能提交(conventional commit) | +| `/ccg:rollback` | 交互式回滚 | +| `/ccg:clean-branches` | 清理已合并分支 | +| `/ccg:worktree` | Worktree 管理 | -### codeagent-wrapper API +--- -```go -// 后端选择 -type Backend struct { - Name string - Command string - Args []string -} +## 固定配置 -// 任务执行 -func runCodexTask(cfg TaskConfig) (result TaskResult, err error) +v1.7.0 起,以下配置不再支持自定义: -// 会话管理 -// 输出格式: -// -// --- -// SESSION_ID: 019a7247-ac9d-71f3-89e2-a823dbd8fd14 -``` +| 项目 | 固定值 | 原因 | +|------|--------|------| +| 语言 | 中文 | 所有模板为中文 | +| 前端模型 | Gemini | 擅长 UI/CSS/组件 | +| 后端模型 | Codex | 擅长逻辑/算法/调试 | +| 协作模式 | smart | 最佳实践 | +| 命令数量 | 14 个 | 全部安装 | --- @@ -134,232 +138,24 @@ func runCodexTask(cfg TaskConfig) (result TaskResult, err error) - `ora@^9.0.0` - 加载动画 - `ansis@^4.1.0` - 终端颜色 - `fs-extra@^11.3.2` - 文件系统工具 -- `i18next@^25.5.2` - 国际化 - `smol-toml@^1.4.2` - TOML 解析 **开发依赖**: - `typescript@^5.9.2` - `unbuild@^3.6.1` - 构建工具 - `tsx@^4.20.5` - TypeScript 执行器 -- `@antfu/eslint-config@^5.4.1` - ESLint 配置 ### Go 依赖 -- Go 标准库(`encoding/json`, `os/exec`, `io`, `bufio`, `context` 等) -- 无外部第三方依赖(纯标准库实现) +- Go 标准库(无外部第三方依赖) ### 配置文件 -**项目配置**: -- `package.json` - npm 包元信息 -- `tsconfig.json` - TypeScript 编译配置 -- `build.config.ts` - unbuild 构建配置 -- `config.json` - 安装脚本配置(已废弃,被 TypeScript 替代) - **用户配置**: - `~/.claude/.ccg/config.toml` - CCG 主配置 - - `[general]` - 版本、语言、创建时间 - - `[mcp]` - MCP 工具配置(ace-tool) - - `[routing]` - 模型路由策略 **MCP 配置**: -- `~/.claude.json` - Claude Code MCP 服务配置(ace-tool 自动注入) - ---- - -## 数据模型 - -### 配置数据结构 - -```typescript -// src/types/index.ts - -interface CcgConfig { - general: { - version: string - language: SupportedLang // 'zh-CN' | 'en' - createdAt: string - updatedAt?: string - } - mcp: { - provider: 'ace-tool' | 'skip' - // ace-tool 配置在 ~/.claude.json 中 - } - routing: ModelRouting - installedWorkflows?: string[] -} - -interface ModelRouting { - mode: CollaborationMode // 'smart' | 'parallel' | 'sequential' - frontend: { - models: ModelType[] // ['gemini'] | ['codex', 'gemini'] - primary: ModelType - strategy: 'parallel' | 'fallback' - } - backend: { - models: ModelType[] // ['codex'] | ['gemini', 'codex'] - primary: ModelType - strategy: 'parallel' | 'fallback' - } - review?: { - models: ModelType[] - strategy: 'parallel' - } -} - -type ModelType = 'codex' | 'gemini' | 'claude' -type CollaborationMode = 'smart' | 'parallel' | 'sequential' -type SupportedLang = 'zh-CN' | 'en' -``` - -### Workflow 预设 - -```typescript -// src/utils/installer.ts - -interface WorkflowConfig { - id: string - name: string // 中文名 - nameEn: string // 英文名 - category: 'development' | 'git' | 'planning' - commands: string[] // 关联的命令文件 - defaultSelected: boolean - order: number - description: string - descriptionEn: string -} - -// 预设模式 -WORKFLOW_PRESETS = { - minimal: { - name: '最小化', - workflows: ['dev', 'code', 'commit'] // 3 个命令 - }, - standard: { - name: '标准', - workflows: [...] // 12 个命令 - }, - full: { - name: '完整', - workflows: [...] // 17 个命令 - } -} -``` - -### MCP 配置结构 - -```json -// ~/.claude.json -{ - "mcpServers": { - "ace-tool": { - "command": "npx", // Windows: "cmd" + ["/c", "npx", ...] - "args": [ - "-y", - "ace-tool@latest", - "mcp", - "--base-url", - "https://api.augmentcode.com", - "--token", - "sk-xxx..." - ] - } - } -} -``` - ---- - -## 测试与质量 - -### Go 测试覆盖率 - -- **测试文件**:`codeagent-wrapper/*_test.go`(17 个测试文件) - - `backend_test.go` - 后端选择逻辑 - - `executor_concurrent_test.go` - 并发执行测试 - - `logger_test.go` - 日志系统测试 - - `parser_test.go` - 输出解析测试 - - `main_integration_test.go` - 集成测试 - - `bench_test.go` - 性能基准测试 - - 等等 - -- **运行测试**: - ```bash - cd codeagent-wrapper - go test -v ./... - go test -bench=. -benchmem - ``` - -### TypeScript 质量工具 - -- **ESLint**:`@antfu/eslint-config`(严格规则) -- **TypeScript**:`--strict` 模式 -- **类型检查**:`pnpm typecheck` - -**脚本**: -```bash -pnpm lint # 代码检查 -pnpm lint:fix # 自动修复 -pnpm typecheck # 类型检查 -pnpm build # 构建 -``` - ---- - -## 常见问题 (FAQ) - -### Q1: 如何添加新的斜杠命令? - -1. 在 `templates/commands/` 创建新的 `.md` 文件 -2. 添加 YAML frontmatter(必需): - ```markdown - --- - description: 命令描述 - --- - ``` -3. 在 `src/utils/installer.ts` 的 `WORKFLOW_CONFIGS` 中注册 -4. 运行 `pnpm build` 重新构建 - -### Q2: 如何修改专家提示词? - -编辑 `templates/prompts/{codex|gemini|claude}/*.md` 文件,安装时会自动复制到 `~/.claude/.ccg/prompts/`。 - -已安装用户直接修改 `~/.claude/.ccg/prompts/` 中的文件即可。 - -### Q3: codeagent-wrapper 如何编译? - -```bash -cd codeagent-wrapper - -# 本地编译 -go build -o codeagent-wrapper main.go - -# 跨平台编译(安装脚本自动执行) -GOOS=darwin GOARCH=amd64 go build -o ../bin/codeagent-wrapper-darwin-amd64 . -GOOS=darwin GOARCH=arm64 go build -o ../bin/codeagent-wrapper-darwin-arm64 . -GOOS=linux GOARCH=amd64 go build -o ../bin/codeagent-wrapper-linux-amd64 . -GOOS=windows GOARCH=amd64 go build -o ../bin/codeagent-wrapper-windows-amd64.exe . -``` - -### Q4: 为何 Windows 需要特殊的 MCP 配置? - -Windows PowerShell 不支持 `npx` 直接调用,需要包装为 `cmd /c npx ...`。 - -v1.4.2+ 自动修复:`src/utils/mcp.ts` 中的 `fixWindowsMcpConfig()` 函数会自动检测并修正。 - -### Q5: 如何调试安装问题? - -```bash -# 诊断 MCP 配置 -npx ccg diagnose-mcp - -# 检查配置文件 -cat ~/.claude/.ccg/config.toml -cat ~/.claude.json - -# 查看日志 -cat ~/.claude/.ccg/install.log # 如果存在 -``` +- `~/.claude.json` - Claude Code MCP 服务配置 --- @@ -371,94 +167,47 @@ cat ~/.claude/.ccg/install.log # 如果存在 src/ ├── cli.ts # CLI 入口 ├── cli-setup.ts # 命令注册 -├── index.ts # 库入口 -├── types/ -│ ├── index.ts # 核心类型定义 -│ └── cli.ts # CLI 类型 ├── commands/ │ ├── init.ts # 初始化命令 │ ├── update.ts # 更新命令 │ ├── menu.ts # 交互式菜单 -│ ├── diagnose-mcp.ts # MCP 诊断 -│ └── config-mcp.ts # MCP 配置 +│ └── ... ├── utils/ │ ├── installer.ts # 安装逻辑(核心) │ ├── config.ts # 配置管理 │ ├── mcp.ts # MCP 工具集成 -│ ├── migration.ts # 版本迁移 -│ ├── platform.ts # 平台检测 -│ └── version.ts # 版本管理 -└── i18n/ - └── index.ts # 国际化 +│ └── ... ``` ### 模板文件 ``` templates/ -├── commands/ # 17 个斜杠命令 -│ ├── dev.md -│ ├── code.md +├── commands/ # 14 个斜杠命令 +│ ├── workflow.md │ ├── frontend.md │ ├── backend.md -│ ├── debug.md -│ ├── test.md -│ ├── bugfix.md -│ ├── optimize.md -│ ├── think.md -│ ├── analyze.md -│ ├── review.md │ ├── feat.md +│ ├── analyze.md +│ ├── debug.md +│ ├── optimize.md +│ ├── test.md +│ ├── review.md +│ ├── init.md │ ├── commit.md │ ├── rollback.md │ ├── clean-branches.md │ ├── worktree.md -│ ├── init.md │ └── agents/ # 4 个子智能体 │ ├── planner.md │ ├── ui-ux-designer.md │ ├── init-architect.md │ └── get-current-datetime.md -└── prompts/ # 12 个专家提示词 - ├── codex/ - │ ├── architect.md - │ ├── analyzer.md - │ ├── debugger.md - │ ├── optimizer.md - │ ├── reviewer.md - │ └── tester.md - ├── gemini/ - │ ├── frontend.md - │ ├── analyzer.md - │ ├── debugger.md - │ ├── optimizer.md - │ ├── reviewer.md - │ └── tester.md - └── claude/ - ├── architect.md - ├── analyzer.md - ├── debugger.md - ├── optimizer.md - ├── reviewer.md - └── tester.md -``` - -### Go 源码 - -``` -codeagent-wrapper/ -├── main.go # 主入口 -├── backend.go # 后端抽象 -├── executor.go # 任务执行器 -├── logger.go # 日志系统 -├── parser.go # 输出解析 -├── config.go # 配置管理 -├── filter.go # 日志过滤 -├── utils.go # 工具函数 -├── wrapper_name.go # 进程名检测 -├── process_check_unix.go # Unix 进程检查 -├── process_check_windows.go # Windows 进程检查 -└── *_test.go # 测试文件(17 个) +├── prompts/ # 12 个专家提示词 +│ ├── codex/ +│ └── gemini/ +└── skills/ # 1 个 skill + └── multi-model-collaboration/ ``` ### 预编译产物 @@ -469,7 +218,9 @@ bin/ ├── codeagent-wrapper-darwin-amd64 # macOS Intel ├── codeagent-wrapper-darwin-arm64 # macOS Apple Silicon ├── codeagent-wrapper-linux-amd64 # Linux x64 -└── codeagent-wrapper-windows-amd64.exe # Windows x64 +├── codeagent-wrapper-linux-arm64 # Linux ARM64 +├── codeagent-wrapper-windows-amd64.exe # Windows x64 +└── codeagent-wrapper-windows-arm64.exe # Windows ARM64 ``` --- @@ -478,37 +229,24 @@ bin/ ```mermaid graph TD - User["用户"] --> CLI["CCG CLI Tool
(npx ccg-workflow)"] - CLI --> Init["init.ts
初始化"] - CLI --> Update["update.ts
更新"] - CLI --> Menu["menu.ts
菜单"] - CLI --> Diagnose["diagnose-mcp.ts
诊断"] + User["用户"] --> CLI["npx ccg-workflow"] + CLI --> Init["一键安装"] + + Init --> Commands["~/.claude/commands/ccg/
14 个命令"] + Init --> Agents["~/.claude/agents/ccg/
4 个子智能体"] + Init --> Skills["~/.claude/skills/
1 个 skill"] + Init --> Prompts["~/.claude/.ccg/prompts/
12 个专家提示词"] + Init --> Binary["~/.claude/bin/
codeagent-wrapper"] + Init --> MCP["~/.claude.json
MCP 配置(可选)"] - Init --> Installer["installer.ts
安装逻辑"] - Update --> Installer - - Installer --> Templates["templates/
命令/提示词模板"] - Installer --> Binaries["bin/
预编译二进制"] - Installer --> MCP["mcp.ts
MCP 集成"] - - Templates --> Commands["~/.claude/commands/ccg/
17 个斜杠命令"] - Templates --> Prompts["~/.claude/.ccg/prompts/
12 个专家提示词"] - Templates --> Agents["~/.claude/agents/ccg/
4 个子智能体"] - - Binaries --> Binary["~/.claude/bin/
codeagent-wrapper"] - - MCP --> ClaudeJson["~/.claude.json
MCP 服务配置"] - - User2["Claude Code 用户"] --> SlashCmd["/ccg:dev
/ccg:code
..."] + User2["Claude Code 用户"] --> SlashCmd["/ccg:workflow
/ccg:frontend
..."] SlashCmd --> Commands - Commands --> Wrapper["codeagent-wrapper
(Go 工具)"] - Wrapper --> Backend1["Codex CLI"] - Wrapper --> Backend2["Gemini CLI"] - Wrapper --> Backend3["Claude CLI"] + Commands --> Wrapper["codeagent-wrapper"] + Wrapper --> Codex["Codex CLI
(后端)"] + Wrapper --> Gemini["Gemini CLI
(前端)"] style CLI fill:#90EE90 - style Installer fill:#FFD700 style Wrapper fill:#87CEEB ``` @@ -516,65 +254,21 @@ graph TD ## NPM 发布流程 -### 前置要求 -- npm 账户:`fengli_1227` -- npm token:Automation token (已配置在 `~/.npmrc`,绕过 2FA) - -### 发布步骤 - -1. **更新版本号** - ```bash - # 编辑 package.json - # "version": "1.0.x" → "1.0.y" - ``` - -2. **配置 npm token**(一次性配置,已完成) - ```bash - # Token 已配置在 ~/.npmrc - # 格式: //registry.npmjs.org/:_authToken=npm_YOUR_TOKEN - ``` - -3. **构建并发布** - ```bash - pnpm build - npm publish - ``` - -4. **提交到 Git** - ```bash - git add -A - git commit -m "chore: bump version to x.y.z" - git push origin main - ``` - -### 验证发布 ```bash -npm view ccg-workflow version -npm view ccg-workflow time +# 1. 更新版本号 +# 编辑 package.json + +# 2. 构建并发布 +pnpm build +npm publish + +# 3. 提交到 Git +git add -A +git commit -m "chore: bump version to x.y.z" +git push origin main ``` -### 注意事项 -- ✅ 确保 token 写入 `~/.npmrc` 才能绕过 2FA -- ✅ `prepublishOnly` 钩子会自动运行 `pnpm build` -- ✅ 发布前确保所有测试通过 -- ✅ 遵循语义化版本规范(SemVer) - --- -## 下一步建议 - -1. ✅ **已完成**:核心模块扫描(覆盖率 95%+) -2. 📖 **可选深入**: - - 分析 `src/i18n/locales/` 国际化文件结构(中英文翻译) - - 运行 `pnpm build` 后分析 `dist/` 构建产物 - - 分析 `node_modules` 中的关键依赖(如需深入了解 unbuild、inquirer 等) -3. 📝 **文档增强**: - - 添加详细的 API 文档(TypeScript 接口导出) - - 添加更多命令模板的使用示例 - - 添加故障排查指南(常见错误码及解决方案) - ---- - -**扫描覆盖率**: 95%+ (已扫描 5 个核心模块、101+ 文件) -**缺口**: 无重大缺口,可选补充国际化文件和构建产物分析 -**最后扫描**: 2026-01-07 13:47:55 CST +**扫描覆盖率**: 95%+ +**最后更新**: 2026-01-08 diff --git a/README.md b/README.md index b3732f7..0491aa0 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,11 @@ ### 核心优势 -- ✅ **智能路由** - 自动选择最合适的模型处理任务 +- ✅ **智能路由** - 前端 → Gemini,后端 → Codex,自动选择 - ✅ **多模型并行** - Codex ∥ Gemini 同时分析,交叉验证减少错误 - ✅ **零写入权限** - 外部模型只返回 Patch,Claude 保持代码主权 - ✅ **Token 优化** - ROLE_FILE 动态注入,专家提示词零消耗 -- ✅ **一键安装** - npx 安装,Workflow 预设(3/12/17 命令) +- ✅ **一键安装** - npx 运行,自动安装全部 14 个命令 --- @@ -55,28 +55,35 @@ npx ccg-workflow ``` **安装流程**: -1. 选择 "初始化工作流" -2. 选择语言(中文 / English) -3. 选择 Workflow 预设: - - **最小化**(3命令)- dev, code, commit - - **标准**(12命令)- 常用开发 + Git 工具 ⭐ 推荐 - - **完整**(17命令)- 全部功能 -4. 配置 ace-tool MCP(可跳过,稍后配置) -5. 重启终端 +1. 选择是否配置 ace-tool MCP(可跳过) +2. 确认安装 +3. 自动安装全部 14 个命令 +4. 配置 PATH(如需要) + +就这么简单!无需选择语言、模型、命令预设。 + +### 固定配置 + +| 项目 | 配置 | +|------|------| +| 前端模型 | **Gemini** | +| 后端模型 | **Codex** | +| 协作模式 | **smart** | +| 命令数量 | **14 个**(全部安装) | ### 第一个命令 ```bash # 在 Claude Code 中执行 -/ccg:dev 实现用户登录功能 +/ccg:workflow 实现用户登录功能 # 自动执行 6 阶段工作流: -# Phase 0: Prompt 增强 -# Phase 1: 代码检索 -# Phase 2: 多模型分析 (Codex ∥ Gemini) -# Phase 3: 原型生成 (智能路由) -# Phase 4: 代码实施 (Claude 重构) -# Phase 5: 审计交付 (多模型验证) +# 阶段 1: 研究 - Prompt 增强 + 上下文检索 +# 阶段 2: 构思 - 多模型分析 (Codex ∥ Gemini) +# 阶段 3: 计划 - 多模型规划 + 用户确认 +# 阶段 4: 执行 - 代码实施 +# 阶段 5: 优化 - 多模型审查 +# 阶段 6: 评审 - 质量检查 ``` --- @@ -86,29 +93,27 @@ npx ccg-workflow ### 核心命令(记住这 3 个就够了) ```bash -/ccg:feat # 新功能开发(从 0 到 1,自动规划) -/ccg:dev # 复杂任务/重构(完整 6 阶段) -/ccg:code # 快速写代码(智能路由) +/ccg:workflow # 完整任务(6 阶段工作流) +/ccg:feat # 新功能开发(自动规划) +/ccg:frontend # 纯前端任务(Gemini 主导,更快) +/ccg:backend # 纯后端任务(Codex 主导,更快) ``` -### 完整命令列表 +### 完整命令列表(14 个) #### 开发工作流 -| 命令 | 用途 | 特点 | +| 命令 | 用途 | 模型 | |-----|------|------| -| `/ccg:dev` | 完整 6 阶段开发工作流 | Prompt增强 → 分析 → 原型 → 实施 → 审计 | -| `/ccg:code` | 智能代码生成 | 自动路由(前端→Gemini / 后端→Codex)| -| `/ccg:feat` | 智能功能开发 | 自动规划 → UI设计 → 实施 → 审查 | -| `/ccg:frontend` | 前端任务 | 5阶段工作流,多模型并行 | -| `/ccg:backend` | 后端任务 | 5阶段工作流,多模型并行 | -| `/ccg:debug` | 调试 | UltraThink 多模型诊断 | -| `/ccg:test` | 测试生成 | Codex + Gemini 并行 | -| `/ccg:bugfix` | Bug 修复 | 质量门控(90%+ 通过)| -| `/ccg:optimize` | 性能优化 | 多模型分析 | -| `/ccg:review` | 代码审查 | 无参数自动审查 git diff | -| `/ccg:analyze` | 技术分析 | 快速决策 | -| `/ccg:think` | 深度分析 | UltraThink 架构设计 | +| `/ccg:workflow` | 完整 6 阶段开发工作流 | Codex ∥ Gemini | +| `/ccg:frontend` | 前端专项(快速模式) | Gemini | +| `/ccg:backend` | 后端专项(快速模式) | Codex | +| `/ccg:feat` | 智能功能开发 | 规划 → 实施 | +| `/ccg:analyze` | 技术分析(仅分析不改代码) | Codex ∥ Gemini | +| `/ccg:debug` | 问题诊断 + 修复 | Codex ∥ Gemini | +| `/ccg:optimize` | 性能优化 | Codex ∥ Gemini | +| `/ccg:test` | 测试生成 | 智能路由 | +| `/ccg:review` | 代码审查(无参数自动审查 git diff) | Codex ∥ Gemini | #### Git 工具 @@ -123,8 +128,7 @@ npx ccg-workflow | 命令 | 用途 | |-----|------| -| `/ccg:scan` | 智能仓库扫描 | -| `/ccg:init` | 初始化项目文档 | +| `/ccg:init` | 初始化项目 CLAUDE.md | --- @@ -158,46 +162,20 @@ npx ccg-workflow --- -## ⚙️ 配置文件 - -配置文件位于 `~/.claude/.ccg/config.toml`: - -```toml -[general] -version = "1.6.0" -language = "zh-CN" - -[mcp] -provider = "ace-tool" # ace-tool | skip - -[routing] -mode = "smart" # 智能路由模式 - -[routing.frontend] -models = ["gemini"] -primary = "gemini" - -[routing.backend] -models = ["codex"] -primary = "codex" -``` - ---- - ## 🗂️ 安装目录结构 ``` ~/.claude/ -├── commands/ccg/ # 17 个斜杠命令 +├── commands/ccg/ # 14 个斜杠命令 ├── agents/ccg/ # 4 个子智能体 +├── skills/ # 1 个 skill ├── bin/ │ └── codeagent-wrapper # Go 多后端调用工具 └── .ccg/ ├── config.toml # 主配置 └── prompts/ # 12 个专家提示词 ├── codex/ - ├── gemini/ - └── claude/ + └── gemini/ ``` --- @@ -215,7 +193,7 @@ primary = "codex" ↓ ↓ ┌─────────────┐ ┌─────────────┐ │ Codex CLI │ │ Gemini CLI │ -│ 后端原型 │ │ 前端原型 │ +│ 后端专家 │ │ 前端专家 │ │ 逻辑算法 │ │ UI 组件 │ └─────────────┘ └─────────────┘ │ │ @@ -225,10 +203,10 @@ primary = "codex" (零写入权限,仅返回补丁) ``` -**安全机制**: -- 外部模型对文件系统零写入权限 -- 所有输出必须为 Unified Diff Patch 格式 -- Claude 保持代码主权,决定是否应用补丁 +**信任规则**: +- 后端问题 → **以 Codex 意见为准** +- 前端问题 → **以 Gemini 意见为准** +- 冲突时 → Claude 综合判断,向用户说明分歧 --- @@ -255,7 +233,6 @@ primary = "codex" ```bash npx ccg-workflow -# 选择 "初始化工作流" # 选择 "安装 ace-tool" ``` @@ -270,14 +247,9 @@ npx ccg-workflow - linux.do 社区提供 - 需填写 Base URL 和 Token -**稍后配置**: +**跳过 MCP**: -```bash -# 安装时选择 "跳过 MCP" -# 稍后运行主菜单选择配置 -npx ccg-workflow -# 选择相应的配置选项 -``` +跳过 MCP 后,命令中涉及 ace-tool 的步骤(代码检索、Prompt 增强)会失效,但其他功能正常工作。 @@ -292,47 +264,25 @@ npx ccg-workflow@latest 更新会自动: - 检测 npm 最新版本 - 增量更新命令和提示词 -- 保留用户配置和 MCP 设置 -- 自动迁移旧版本目录结构 +- 保留 MCP 配置
-Q4: `/ccg:feat` 和 `/ccg:dev` 有什么区别? +Q4: `/ccg:workflow` 和 `/ccg:frontend`/`/ccg:backend` 有什么区别? -- **`/ccg:feat`** - 专注**新功能开发** - - 自动调用 planner(WBS 分解) - - 自动调用 ui-ux-designer(界面设计) - - 适合从 0 到 1 开发新功能 +- **`/ccg:workflow`** - 完整 6 阶段工作流 + - 每阶段都并行调用 Codex + Gemini + - 适合全栈任务、复杂任务 -- **`/ccg:dev`** - 通用**完整工作流** - - 适合任何复杂任务(重构、优化、跨模块改动) - - 包含 Prompt 增强阶段 - - 6 阶段完整流程 +- **`/ccg:frontend`** / **`/ccg:backend`** - 专项快速模式 + - 只调用对应主导模型(更快) + - 适合明确的纯前端/纯后端任务
-Q5: codeagent-wrapper 是什么? - -来自 [cexll/myclaude](https://github.com/cexll/myclaude) 的 Go 工具,封装了多 CLI 调用: - -- 支持 `--backend codex/gemini/claude` 切换 -- 会话管理(SESSION_ID) -- ROLE_FILE 动态注入 -- 自动安装到 `~/.claude/bin/` - -调用语法: -```bash -codeagent-wrapper --backend - [工作目录] <<'EOF' -<任务内容> -EOF -``` - -
- -
-Q6: 安装后提示 "codeagent-wrapper: command not found"? +Q5: 安装后提示 "codeagent-wrapper: command not found"? **原因**:PATH 未生效 @@ -353,7 +303,7 @@ Windows:
-Q7: 如何卸载? +Q6: 如何卸载? ```bash npx ccg-workflow @@ -363,6 +313,7 @@ npx ccg-workflow 会删除: - `~/.claude/commands/ccg/` - 命令文件 - `~/.claude/agents/ccg/` - 子智能体 +- `~/.claude/skills/` - skills - `~/.claude/bin/codeagent-wrapper` - 二进制文件 - `~/.claude/.ccg/` - 配置目录(可选保留) @@ -399,7 +350,7 @@ Copyright (c) 2025 fengshao1227
-**版本**: v1.6.0 | **最后更新**: 2026-01-07 +**版本**: v1.7.0 | **最后更新**: 2026-01-08 Made with ❤️ by the CCG Community diff --git a/package.json b/package.json index ecba422..7f63aec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ccg-workflow", - "version": "1.6.0", + "version": "1.7.0", "description": "Claude-Codex-Gemini 多模型协作系统 - 智能路由多模型开发工作流", "type": "module", "packageManager": "pnpm@10.17.1", diff --git a/src/commands/init.ts b/src/commands/init.ts index 5065bc4..ed3820a 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -1,4 +1,4 @@ -import type { CollaborationMode, InitOptions, ModelRouting, ModelType, SupportedLang, WorkflowConfig } from '../types' +import type { CollaborationMode, InitOptions, ModelRouting, ModelType, SupportedLang } from '../types' import ansis from 'ansis' import fs from 'fs-extra' import inquirer from 'inquirer' @@ -7,155 +7,21 @@ import { homedir } from 'node:os' import { join } from 'pathe' import { i18n } from '../i18n' import { createDefaultConfig, ensureCcgDir, getCcgDir, writeCcgConfig } from '../utils/config' -import { getWorkflowConfigs, getWorkflowPreset, installAceTool, installWorkflows, WORKFLOW_PRESETS, type WorkflowPreset } from '../utils/installer' +import { getAllCommandIds, installAceTool, installWorkflows } from '../utils/installer' import { migrateToV1_4_0, needsMigration } from '../utils/migration' export async function init(options: InitOptions = {}): Promise { console.log() console.log(ansis.cyan.bold(` CCG - Claude + Codex + Gemini`)) - console.log(ansis.gray(` ${i18n.t('init:welcome')}`)) + console.log(ansis.gray(` 多模型协作开发工作流`)) console.log() - // Language selection (if not provided) - let language: SupportedLang = options.lang || 'en' - if (!options.skipPrompt && !options.lang) { - const { selectedLang } = await inquirer.prompt([{ - type: 'list', - name: 'selectedLang', - message: i18n.t('init:selectLanguage'), - choices: [ - { name: '中文 (Chinese)', value: 'zh-CN' }, - { name: 'English', value: 'en' }, - ], - default: 'zh-CN', - }]) - language = selectedLang - // Switch i18n language immediately after selection - await i18n.changeLanguage(language) - } - - // Frontend models selection (multi-select) - let frontendModels: ModelType[] = ['gemini'] - if (options.frontend) { - frontendModels = options.frontend.split(',').map(m => m.trim() as ModelType) - } - else if (!options.skipPrompt) { - const { selectedFrontend } = await inquirer.prompt([{ - type: 'checkbox', - name: 'selectedFrontend', - message: i18n.t('init:selectFrontendModels'), - choices: [ - { name: i18n.t('init:models.gemini'), value: 'gemini', checked: true }, - { name: i18n.t('init:models.codex'), value: 'codex' }, - { name: i18n.t('init:models.claude'), value: 'claude' }, - ], - validate: (answer: string[]) => answer.length > 0 || i18n.t('init:validation.selectAtLeastOne'), - }]) - frontendModels = selectedFrontend - } - - // Backend models selection (multi-select) - let backendModels: ModelType[] = ['codex'] - if (options.backend) { - backendModels = options.backend.split(',').map(m => m.trim() as ModelType) - } - else if (!options.skipPrompt) { - const { selectedBackend } = await inquirer.prompt([{ - type: 'checkbox', - name: 'selectedBackend', - message: i18n.t('init:selectBackendModels'), - choices: [ - { name: i18n.t('init:models.codex'), value: 'codex', checked: true }, - { name: i18n.t('init:models.gemini'), value: 'gemini' }, - { name: i18n.t('init:models.claude'), value: 'claude' }, - ], - validate: (answer: string[]) => answer.length > 0 || i18n.t('init:validation.selectAtLeastOne'), - }]) - backendModels = selectedBackend - } - - // Collaboration mode selection - let mode: CollaborationMode = 'smart' - if (options.mode) { - mode = options.mode as CollaborationMode - } - else if (!options.skipPrompt) { - const { selectedMode } = await inquirer.prompt([{ - type: 'list', - name: 'selectedMode', - message: i18n.t('init:selectMode'), - choices: [ - { name: i18n.t('init:modes.smart'), value: 'smart' }, - { name: i18n.t('init:modes.parallel'), value: 'parallel' }, - { name: i18n.t('init:modes.sequential'), value: 'sequential' }, - ], - default: 'smart', - }]) - mode = selectedMode - } - - // Workflow selection - const allWorkflows = getWorkflowConfigs() - let selectedWorkflows: string[] = allWorkflows.filter(w => w.defaultSelected).map(w => w.id) - - if (options.workflows) { - if (options.workflows === 'all') { - selectedWorkflows = allWorkflows.map(w => w.id) - } - else if (options.workflows !== 'skip') { - selectedWorkflows = options.workflows.split(',').map(w => w.trim()) - } - } - else if (!options.skipPrompt) { - // First, ask for preset or custom - const { workflowMode } = await inquirer.prompt([{ - type: 'list', - name: 'workflowMode', - message: '选择命令安装模式', - choices: [ - { - name: `${WORKFLOW_PRESETS.minimal.name} ${ansis.gray(`— ${WORKFLOW_PRESETS.minimal.description}`)} ${ansis.green('(推荐新手)')}`, - value: 'minimal' as WorkflowPreset, - }, - { - name: `${WORKFLOW_PRESETS.standard.name} ${ansis.gray(`— ${WORKFLOW_PRESETS.standard.description}`)} ${ansis.green('(推荐)')}`, - value: 'standard' as WorkflowPreset, - }, - { - name: `${WORKFLOW_PRESETS.full.name} ${ansis.gray(`— ${WORKFLOW_PRESETS.full.description}`)}`, - value: 'full' as WorkflowPreset, - }, - new inquirer.Separator(), - { - name: `自定义 ${ansis.gray('— 手动选择命令')}`, - value: 'custom', - }, - ], - default: 'standard', - }]) - - if (workflowMode === 'custom') { - // Show full checkbox list - const { selected } = await inquirer.prompt([{ - type: 'checkbox', - name: 'selected', - message: i18n.t('init:selectWorkflows'), - choices: allWorkflows.map(w => ({ - name: `${language === 'zh-CN' ? w.name : w.nameEn} ${ansis.gray(`— ${language === 'zh-CN' ? w.description : w.descriptionEn}`)}`, - value: w.id, - checked: w.defaultSelected, - })), - }]) - selectedWorkflows = selected - } - else { - // Use preset - selectedWorkflows = getWorkflowPreset(workflowMode as WorkflowPreset) - const preset = WORKFLOW_PRESETS[workflowMode as WorkflowPreset] - console.log() - console.log(ansis.gray(` 已选择 ${ansis.cyan(preset.name)} 模式 (${selectedWorkflows.length} 个命令)`)) - } - } + // Fixed configuration + const language: SupportedLang = 'zh-CN' + const frontendModels: ModelType[] = ['gemini'] + const backendModels: ModelType[] = ['codex'] + const mode: CollaborationMode = 'smart' + const selectedWorkflows = getAllCommandIds() // MCP Tool Selection let mcpProvider = 'ace-tool' @@ -246,20 +112,20 @@ export async function init(options: InitOptions = {}): Promise { } } - // Build routing config + // Build routing config (fixed: Gemini frontend, Codex backend) const routing: ModelRouting = { frontend: { models: frontendModels, - primary: frontendModels[0], - strategy: frontendModels.length > 1 ? 'parallel' : 'fallback', + primary: 'gemini', + strategy: 'fallback', }, backend: { models: backendModels, - primary: backendModels[0], - strategy: backendModels.length > 1 ? 'parallel' : 'fallback', + primary: 'codex', + strategy: 'fallback', }, review: { - models: [...new Set([...frontendModels, ...backendModels])], + models: ['codex', 'gemini'], strategy: 'parallel', }, mode, @@ -270,10 +136,9 @@ export async function init(options: InitOptions = {}): Promise { console.log(ansis.yellow('━'.repeat(50))) console.log(ansis.bold(` ${i18n.t('init:summary.title')}`)) console.log() - console.log(` ${ansis.cyan(i18n.t('init:summary.frontendModels'))} ${frontendModels.map(m => ansis.green(m)).join(', ')}`) - console.log(` ${ansis.cyan(i18n.t('init:summary.backendModels'))} ${backendModels.map(m => ansis.blue(m)).join(', ')}`) - console.log(` ${ansis.cyan(i18n.t('init:summary.collaboration'))} ${ansis.yellow(mode)}`) - console.log(` ${ansis.cyan(i18n.t('init:summary.workflows'))} ${selectedWorkflows.length} ${i18n.t('init:summary.selected')}`) + console.log(` ${ansis.cyan('模型路由')} ${ansis.green('Gemini')} (前端) + ${ansis.blue('Codex')} (后端)`) + console.log(` ${ansis.cyan('命令数量')} ${ansis.yellow(selectedWorkflows.length.toString())} 个`) + console.log(` ${ansis.cyan('MCP 工具')} ${mcpProvider === 'ace-tool' ? (aceToolToken ? ansis.green('ace-tool') : ansis.yellow('ace-tool (待配置)')) : ansis.gray('跳过')}`) console.log(ansis.yellow('━'.repeat(50))) console.log() @@ -514,8 +379,6 @@ export async function init(options: InitOptions = {}): Promise { } console.log() - console.log(ansis.gray(` ${i18n.t('init:configSavedTo')} ${getCcgDir()}/config.toml`)) - console.log() } catch (error) { spinner.fail(ansis.red(i18n.t('init:installFailed'))) diff --git a/src/commands/menu.ts b/src/commands/menu.ts index 1e6272e..ceef7a8 100644 --- a/src/commands/menu.ts +++ b/src/commands/menu.ts @@ -108,6 +108,26 @@ async function uninstall(): Promise { console.log(` ${ansis.gray('•')} /ccg:${cmd}`) } } + + if (result.removedAgents.length > 0) { + console.log() + console.log(ansis.cyan('已移除子智能体:')) + for (const agent of result.removedAgents) { + console.log(` ${ansis.gray('•')} ${agent}`) + } + } + + if (result.removedSkills.length > 0) { + console.log() + console.log(ansis.cyan('已移除 Skills:')) + console.log(` ${ansis.gray('•')} multi-model-collaboration`) + } + + if (result.removedBin) { + console.log() + console.log(ansis.cyan('已移除二进制文件:')) + console.log(` ${ansis.gray('•')} codeagent-wrapper`) + } } else { console.log(ansis.red(i18n.t('menu:uninstall.failed'))) diff --git a/src/utils/installer.ts b/src/utils/installer.ts index 2c592aa..38dd367 100644 --- a/src/utils/installer.ts +++ b/src/utils/installer.ts @@ -23,62 +23,69 @@ function findPackageRoot(startDir: string): string { const PACKAGE_ROOT = findPackageRoot(__dirname) -// Workflow configurations +// All available commands (14 total after cleanup) +const ALL_COMMANDS = [ + 'workflow', // 完整6阶段开发工作流 + 'frontend', // 前端专项(Gemini主导) + 'backend', // 后端专项(Codex主导) + 'feat', // 智能功能开发 + 'analyze', // 技术分析 + 'debug', // 问题诊断+修复 + 'optimize', // 性能优化 + 'test', // 测试生成 + 'review', // 代码审查 + 'init', // 初始化 CLAUDE.md + 'commit', // Git 智能提交 + 'rollback', // Git 回滚 + 'clean-branches', // Git 清理分支 + 'worktree', // Git Worktree +] as const + +// Workflow configurations (for compatibility with existing code) const WORKFLOW_CONFIGS: WorkflowConfig[] = [ { - id: 'dev', + id: 'workflow', name: '完整开发工作流', nameEn: 'Full Development Workflow', category: 'development', - commands: ['dev'], + commands: ['workflow'], defaultSelected: true, order: 1, - description: '完整6阶段开发工作流(Prompt增强→上下文检索→多模型分析→原型生成→代码实施→审计交付)', - descriptionEn: 'Full 6-phase development workflow (Prompt enhancement → Context retrieval → Multi-model analysis → Prototype → Implementation → Audit)', - }, - { - id: 'code', - name: '智能代码生成', - nameEn: 'Smart Code Generation', - category: 'development', - commands: ['code'], - defaultSelected: true, - order: 2, - description: '多模型代码生成(智能路由:前端→Gemini,后端→Codex)', - descriptionEn: 'Multi-model code generation (smart routing: frontend→Gemini, backend→Codex)', + description: '完整6阶段开发工作流(研究→构思→计划→执行→优化→评审)', + descriptionEn: 'Full 6-phase development workflow', }, { id: 'frontend', - name: '前端任务', + name: '前端专项', nameEn: 'Frontend Tasks', category: 'development', commands: ['frontend'], defaultSelected: true, - order: 3, - description: '前端/UI/样式任务,自动路由到 Gemini', - descriptionEn: 'Frontend/UI/style tasks, auto-route to Gemini', + order: 2, + description: '前端专项任务(Gemini主导,更快更精准)', + descriptionEn: 'Frontend tasks (Gemini-led, faster)', }, { id: 'backend', - name: '后端任务', + name: '后端专项', nameEn: 'Backend Tasks', category: 'development', commands: ['backend'], defaultSelected: true, - order: 4, - description: '后端/逻辑/算法任务,自动路由到 Codex', - descriptionEn: 'Backend/logic/algorithm tasks, auto-route to Codex', + order: 3, + description: '后端专项任务(Codex主导,更快更精准)', + descriptionEn: 'Backend tasks (Codex-led, faster)', }, { - id: 'review', - name: '代码审查', - nameEn: 'Code Review', + id: 'feat', + name: '智能功能开发', + nameEn: 'Smart Feature Development', category: 'development', - commands: ['review'], + commands: ['feat'], defaultSelected: true, - order: 5, - description: '双模型代码审查(Codex + Gemini 并行),无参数时自动审查 git diff', - descriptionEn: 'Dual-model code review (Codex + Gemini parallel), auto-review git diff when no args', + order: 4, + description: '智能功能开发 - 自动规划、设计、实施', + descriptionEn: 'Smart feature development - auto plan, design, implement', }, { id: 'analyze', @@ -87,141 +94,108 @@ const WORKFLOW_CONFIGS: WorkflowConfig[] = [ category: 'development', commands: ['analyze'], defaultSelected: true, - order: 6, - description: '双模型技术分析(Codex + Gemini 并行),交叉验证后综合见解', - descriptionEn: 'Dual-model technical analysis (Codex + Gemini parallel), comprehensive insights after cross-validation', - }, - { - id: 'enhance', - name: 'Prompt 增强', - nameEn: 'Prompt Enhancement', - category: 'development', - commands: ['enhance'], - defaultSelected: true, - order: 7, - description: '使用 ace-tool enhance_prompt 优化 Prompt', - descriptionEn: 'Optimize prompts using ace-tool enhance_prompt', + order: 5, + description: '双模型技术分析,仅分析不修改代码', + descriptionEn: 'Dual-model technical analysis, analysis only', }, { id: 'debug', - name: 'UltraThink 调试', - nameEn: 'UltraThink Debug', + name: '问题诊断', + nameEn: 'Debug', category: 'development', commands: ['debug'], - defaultSelected: false, - order: 8, - description: 'UltraThink 多模型调试(Codex 后端诊断 + Gemini 前端诊断)', - descriptionEn: 'UltraThink multi-model debugging (Codex backend diagnosis + Gemini frontend diagnosis)', - }, - { - id: 'test', - name: '多模型测试生成', - nameEn: 'Multi-Model Test Generation', - category: 'development', - commands: ['test'], - defaultSelected: false, - order: 9, - description: '多模型测试生成(Codex 后端测试 + Gemini 前端测试)', - descriptionEn: 'Multi-model test generation (Codex backend tests + Gemini frontend tests)', - }, - { - id: 'bugfix', - name: '质量门控修复', - nameEn: 'Quality Gate Bugfix', - category: 'development', - commands: ['bugfix'], - defaultSelected: false, - order: 10, - description: '质量门控修复(双模型交叉验证,90%+ 通过)', - descriptionEn: 'Quality gate bugfix (dual-model cross-validation, 90%+ pass)', - }, - { - id: 'think', - name: 'UltraThink 深度分析', - nameEn: 'UltraThink Deep Analysis', - category: 'development', - commands: ['think'], - defaultSelected: false, - order: 11, - description: 'UltraThink 深度分析(双模型并行分析 + 综合见解)', - descriptionEn: 'UltraThink deep analysis (dual-model parallel analysis + comprehensive insights)', + defaultSelected: true, + order: 6, + description: '多模型诊断 + 修复', + descriptionEn: 'Multi-model diagnosis + fix', }, { id: 'optimize', - name: '多模型性能优化', - nameEn: 'Multi-Model Optimization', + name: '性能优化', + nameEn: 'Performance Optimization', category: 'development', commands: ['optimize'], - defaultSelected: false, - order: 12, - description: '多模型性能优化(Codex 后端优化 + Gemini 前端优化)', - descriptionEn: 'Multi-model performance optimization (Codex backend + Gemini frontend)', + defaultSelected: true, + order: 7, + description: '多模型性能优化', + descriptionEn: 'Multi-model performance optimization', + }, + { + id: 'test', + name: '测试生成', + nameEn: 'Test Generation', + category: 'development', + commands: ['test'], + defaultSelected: true, + order: 8, + description: '智能路由测试生成', + descriptionEn: 'Smart routing test generation', + }, + { + id: 'review', + name: '代码审查', + nameEn: 'Code Review', + category: 'development', + commands: ['review'], + defaultSelected: true, + order: 9, + description: '双模型代码审查,无参数时自动审查 git diff', + descriptionEn: 'Dual-model code review, auto-review git diff when no args', + }, + { + id: 'init-project', + name: '项目初始化', + nameEn: 'Project Init', + category: 'init', + commands: ['init'], + defaultSelected: true, + order: 10, + description: '初始化项目 AI 上下文,生成 CLAUDE.md', + descriptionEn: 'Initialize project AI context, generate CLAUDE.md', }, { id: 'commit', - name: 'Git 智能提交', - nameEn: 'Git Smart Commit', + name: 'Git 提交', + nameEn: 'Git Commit', category: 'git', commands: ['commit'], defaultSelected: true, order: 20, - description: '仅用 Git 分析改动并自动生成 conventional commit 信息(可选 emoji)', - descriptionEn: 'Git-only analysis to auto-generate conventional commit messages (optional emoji)', + description: '智能生成 conventional commit 信息', + descriptionEn: 'Smart conventional commit message generation', }, { id: 'rollback', - name: 'Git 交互式回滚', - nameEn: 'Git Interactive Rollback', + name: 'Git 回滚', + nameEn: 'Git Rollback', category: 'git', commands: ['rollback'], defaultSelected: true, order: 21, - description: '交互式回滚 Git 分支到历史版本;列分支、列版本、二次确认后执行', - descriptionEn: 'Interactive Git branch rollback; list branches, versions, confirm before execution', + description: '交互式回滚分支到历史版本', + descriptionEn: 'Interactive rollback to historical version', }, { id: 'clean-branches', - name: '清理 Git 分支', - nameEn: 'Clean Git Branches', + name: 'Git 清理分支', + nameEn: 'Git Clean Branches', category: 'git', commands: ['clean-branches'], defaultSelected: true, order: 22, - description: '安全查找并清理已合并或过期的 Git 分支,支持 dry-run 模式', - descriptionEn: 'Safely find and clean merged or stale Git branches, supports dry-run mode', + description: '安全清理已合并或过期分支', + descriptionEn: 'Safely clean merged or stale branches', }, { id: 'worktree', - name: 'Git Worktree 管理', - nameEn: 'Git Worktree Management', + name: 'Git Worktree', + nameEn: 'Git Worktree', category: 'git', commands: ['worktree'], - defaultSelected: false, + defaultSelected: true, order: 23, - description: '管理 Git worktree,在项目平级的 ../.ccg/项目名/ 目录下创建', - descriptionEn: 'Manage Git worktree, create in ../.ccg/project-name/ directory parallel to project', - }, - { - id: 'init-project', - name: '项目 AI 上下文初始化', - nameEn: 'Project AI Context Init', - category: 'init', - commands: ['init'], - defaultSelected: true, - order: 30, - description: '初始化项目 AI 上下文,生成/更新根级与模块级 CLAUDE.md 索引', - descriptionEn: 'Initialize project AI context, generate/update root and module level CLAUDE.md index', - }, - { - id: 'feat', - name: '智能功能开发', - nameEn: 'Smart Feature Development', - category: 'planning', - commands: ['feat'], - defaultSelected: true, - order: 32, - description: '智能功能开发 - 自动规划、设计、实施(支持需求规划/讨论迭代/执行实施)', - descriptionEn: 'Smart feature development - auto plan, design, implement (supports planning/iteration/execution modes)', + description: '管理 Git worktree', + descriptionEn: 'Manage Git worktree', }, ] @@ -234,28 +208,23 @@ export function getWorkflowById(id: string): WorkflowConfig | undefined { } /** - * Workflow presets for different use cases + * Get all command IDs for installation + * No more presets - always install all commands + */ +export function getAllCommandIds(): string[] { + return WORKFLOW_CONFIGS.map(w => w.id) +} + +/** + * @deprecated Use getAllCommandIds() instead + * Kept for backward compatibility */ export const WORKFLOW_PRESETS = { - minimal: { - name: '最小化', - nameEn: 'Minimal', - description: '核心开发命令(3个)', - descriptionEn: 'Core development commands (3)', - workflows: ['dev', 'code', 'commit'] as string[], - }, - standard: { - name: '标准', - nameEn: 'Standard', - description: '常用开发 + Git 命令(12个)', - descriptionEn: 'Common dev + Git commands (12)', - workflows: ['dev', 'code', 'frontend', 'backend', 'review', 'analyze', 'debug', 'test', 'commit', 'rollback', 'clean-branches', 'feat'] as string[], - }, full: { name: '完整', nameEn: 'Full', - description: '全部命令(17个)', - descriptionEn: 'All commands (17)', + description: '全部命令(14个)', + descriptionEn: 'All commands (14)', workflows: WORKFLOW_CONFIGS.map(w => w.id), }, } @@ -473,6 +442,37 @@ ${workflow.description} } } + // Install skills (multi-model-collaboration, etc. - should go to ~/.claude/skills/) + const skillsTemplateDir = join(templateDir, 'skills') + const skillsDestDir = join(installDir, 'skills') + if (await fs.pathExists(skillsTemplateDir)) { + try { + const skillDirs = await fs.readdir(skillsTemplateDir) + for (const skillName of skillDirs) { + const srcSkillDir = join(skillsTemplateDir, skillName) + const destSkillDir = join(skillsDestDir, skillName) + const stat = await fs.stat(srcSkillDir) + if (stat.isDirectory()) { + await fs.ensureDir(destSkillDir) + const files = await fs.readdir(srcSkillDir) + for (const file of files) { + const srcFile = join(srcSkillDir, file) + const destFile = join(destSkillDir, file) + if (force || !(await fs.pathExists(destFile))) { + const templateContent = await fs.readFile(srcFile, 'utf-8') + const processedContent = replaceHomePathsInTemplate(templateContent, installDir) + await fs.writeFile(destFile, processedContent, 'utf-8') + } + } + } + } + } + catch (error) { + result.errors.push(`Failed to install skills: ${error}`) + result.success = false + } + } + // Install codeagent-wrapper binary try { const binDir = join(installDir, 'bin') @@ -487,10 +487,10 @@ ${workflow.description} binaryName = arch === 'arm64' ? 'codeagent-wrapper-darwin-arm64' : 'codeagent-wrapper-darwin-amd64' } else if (platform === 'linux') { - binaryName = 'codeagent-wrapper-linux-amd64' + binaryName = arch === 'arm64' ? 'codeagent-wrapper-linux-arm64' : 'codeagent-wrapper-linux-amd64' } else if (platform === 'win32') { - binaryName = 'codeagent-wrapper-windows-amd64.exe' + binaryName = arch === 'arm64' ? 'codeagent-wrapper-windows-arm64.exe' : 'codeagent-wrapper-windows-amd64.exe' } else { result.errors.push(`Unsupported platform: ${platform}`) @@ -545,6 +545,9 @@ export interface UninstallResult { success: boolean removedCommands: string[] removedPrompts: string[] + removedAgents: string[] + removedSkills: string[] + removedBin: boolean errors: string[] } @@ -556,11 +559,18 @@ export async function uninstallWorkflows(installDir: string): Promise` +# Analyze - 多模型技术分析 -## 上下文 -- Question or analysis task: $ARGUMENTS -- This command triggers multi-model analysis without code changes. -- Configured models provide perspectives for cross-validation. +使用双模型并行分析,交叉验证得出综合技术见解。**仅分析,不修改代码。** -## 你的角色 -You are the **Analysis Coordinator** orchestrating multi-model research. You direct: -1. **ace-tool** – for codebase context retrieval -2. **Configured Models** – for comprehensive multi-perspective analysis -3. **Claude (Self)** – for synthesizing insights - -## 流程 - -### Step 1: 上下文检索 - -1. Call `mcp__ace-tool__search_context` to understand relevant code: - - `project_root_path`: Project root directory absolute path - - `query`: Natural language description of what to analyze -5. Identify key files, patterns, and architecture - -### Step 2: 并行分析 - -**并行调用所有配置的分析模型**(使用 `run_in_background: true`): - -遍历后端模型 {{BACKEND_MODELS}} 和前端模型 {{FRONTEND_MODELS}}(合并去重): +## 使用方法 ```bash -# 合并并去重后端和前端模型列表 -BACKEND='{{BACKEND_MODELS}}' -FRONTEND='{{FRONTEND_MODELS}}' -ALL_MODELS=$(echo "$BACKEND $FRONTEND" | jq -s 'add | unique' | jq -r '.[]') - -# 遍历所有分析模型 -for model in $ALL_MODELS; do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/analyzer.md - - -分析任务: {{分析问题或任务}} -Context: {{从 MCP 获取的相关代码}} - - -OUTPUT: Detailed analysis with recommendations. -EOF -done -wait # 等待所有后台任务完成 +/analyze <分析问题或任务> ``` -### Step 3: 交叉验证 -使用 `TaskOutput` 获取所有任务的结果,然后: -1. Compare perspectives from all configured models -2. Identify agreements and disagreements -3. Evaluate trade-offs objectively -4. Weight opinions based on model strengths +## 多模型调用语法 -### Step 4: 综合输出 -Present unified analysis combining all perspectives. +**必须使用 heredoc 语法调用外部模型**: -## 输出格式 -1. **Configuration** – models used for analysis -2. **Context Overview** – relevant codebase elements -3. **Model Perspectives** – analysis from each configured model -4. **Synthesis** – combined insights and trade-offs -5. **Recommendations** – actionable next steps +```bash +codeagent-wrapper --backend - $PWD <<'EOF' +ROLE_FILE: ~/.claude/.ccg/prompts//.md + +任务描述 + +OUTPUT: 期望输出格式 +EOF +``` -## 注意事项 -- This command is for analysis only, no code changes -- **Use `run_in_background: true` for parallel execution** to avoid blocking -- 多模型结果交叉验证,取长补短 -- Use HEREDOC syntax (`<<'EOF'`) to avoid shell escaping issues +## 你的角色 + +你是**分析协调者**,编排多模型分析流程: +- **ace-tool** – 代码上下文检索 +- **Codex** – 后端/系统视角(**后端权威**) +- **Gemini** – 前端/用户视角(**前端权威**) +- **Claude (自己)** – 综合见解 + +--- + +## 执行工作流 + +**分析任务**:$ARGUMENTS + +### 🔍 阶段 1:上下文检索 + +`[模式:研究]` + +1. 调用 `mcp__ace-tool__search_context` 检索相关代码 +2. 识别分析范围和关键组件 +3. 列出已知约束和假设 + +### 💡 阶段 2:并行分析 + +`[模式:分析]` + +**并行调用两个模型**: + +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): +```bash +codeagent-wrapper --backend codex - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/codex/analyzer.md + +分析需求: $ARGUMENTS +Context: <阶段1检索到的上下文> + +OUTPUT: 技术可行性、架构影响、性能考量 +EOF + +codeagent-wrapper --backend gemini - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/gemini/analyzer.md + +分析需求: $ARGUMENTS +Context: <阶段1检索到的上下文> + +OUTPUT: UI/UX 影响、用户体验、视觉设计考量 +EOF +``` +2. 使用 `TaskOutput` 监控并获取 2 个模型的分析结果。 + +**⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** + +### 🔀 阶段 3:交叉验证 + +`[模式:验证]` + +1. 对比双方分析结果 +2. 识别: + - **一致观点**(强信号) + - **分歧点**(需权衡) + - **互补见解**(各自领域洞察) +3. 按信任规则权衡:后端以 Codex 为准,前端以 Gemini 为准 + +### 📊 阶段 4:综合输出 + +`[模式:总结]` + +```markdown +## 🔬 技术分析:<主题> + +### 一致观点(强信号) +1. <双方都认同的点> + +### 分歧点(需权衡) +| 议题 | Codex 观点 | Gemini 观点 | 建议 | +|------|------------|-------------|------| + +### 核心结论 +<1-2 句话总结> + +### 推荐方案 +**首选**:<方案> +- 理由 / 风险 / 缓解措施 + +### 后续行动 +1. [ ] <具体步骤> +``` + +--- + +## 适用场景 + +| 场景 | 示例 | +|------|------| +| 技术选型 | "比较 Redux vs Zustand" | +| 架构评估 | "评估微服务拆分方案" | +| 性能分析 | "分析 API 响应慢的原因" | +| 安全审计 | "评估认证模块安全性" | + +## 关键规则 + +1. **仅分析不修改** – 本命令不执行任何代码变更 +2. **使用后台进程 `&` + `TaskOutput` 获取结果** +3. **必须等待所有模型返回完整结果后才能进入下一阶段**,禁止跳过或提前继续 +4. **信任规则** – 后端以 Codex 为准,前端以 Gemini 为准 diff --git a/templates/commands/backend.md b/templates/commands/backend.md index 0b4e2cd..f19dfb9 100644 --- a/templates/commands/backend.md +++ b/templates/commands/backend.md @@ -1,198 +1,129 @@ --- -description: 后端/逻辑/算法任务,自动路由到配置的后端模型进行原型生成和审计 +description: '后端专项工作流(研究→构思→计划→执行→优化→评审),Codex主导' --- -## 用法 -`/backend ` +# Backend - 后端专项开发 + +## 使用方法 + +```bash +/backend <后端任务描述> +``` ## 上下文 -- Backend/logic task to implement: $ARGUMENTS -- This command routes to your configured backend models. -- Default authority for algorithms, APIs, and business logic. -## ⭐ v1.6.0 重大升级 +- 后端任务:$ARGUMENTS +- Codex 主导,Gemini 辅助参考 +- 适用:API设计、算法实现、数据库优化、业务逻辑 -**从单模型调用升级为多模型并行工作流!** +## 你的角色 -### 新增功能 +你是**后端编排者**,协调多模型完成服务端任务(研究 → 构思 → 计划 → 执行 → 优化 → 评审),用中文协助用户。 -✅ **5阶段完整工作流**: -- Step 1: 上下文检索(MCP) -- Step 2: **多模型后端分析**(Codex + Gemini 并行) ← 新增 -- Step 3: **多模型原型生成**(所有后端模型并行) ← 增强 -- Step 4: 重构与实施(Claude 综合各模型优势) -- Step 5: **多模型审计交付**(Codex + Gemini 交叉验证) ← 新增 +**协作模型**: +- **Codex** – 后端逻辑、算法(**后端权威,可信赖**) +- **Gemini** – 前端视角(**后端意见仅供参考**) +- **Claude (自己)** – 编排、计划、执行、交付 -✅ **交叉验证机制**: -- Codex 提供深度后端专业知识(算法、调试) -- Gemini 提供现代架构视角 -- Claude 综合各家所长,重构为生产级代码 +[沟通守则] -✅ **强制用户确认**: -- Step 2 分析完成后,会询问"是否继续执行此方案?(Y/N)" -- 避免盲目执行,确保用户对方案满意 - -### 与 /ccg:dev 的区别 - -| 特性 | /ccg:backend | /ccg:dev | -|------|-------------|----------| -| **模型范围** | 仅后端模型(Codex + Gemini)| 全部模型(前端+后端)| -| **适用场景** | 后端专项任务 | 全栈功能开发 | -| **Prompt 增强** | ❌ 不包含 | ✅ Phase 0 | -| **工作流阶段** | 5 阶段 | 6 阶段(含 Prompt 增强)| -| **推荐用户** | 后端开发者 | 全栈开发者 | - -### 使用建议 - -- 🎯 **纯后端任务**:使用 `/ccg:backend`(如:API 设计、数据库优化、算法实现) -- 🎯 **全栈功能**:使用 `/ccg:dev`(如:用户登录功能,涉及前后端) -- 🎯 **需要 Prompt 增强**:使用 `/ccg:dev`(复杂需求,需先优化需求描述) +1. 响应以模式标签 `[模式:X]` 开始,初始为 `[模式:研究]` +2. 严格按 `研究 → 构思 → 计划 → 执行 → 优化 → 评审` 顺序流转 --- -## 你的角色 -You are the **Backend Orchestrator** specializing in server-side logic. You coordinate: -1. **ace-tool** – for retrieving existing backend code and architecture -2. **Configured Backend Models** – for generating logic, algorithms, and API implementations -3. **Claude (Self)** – for refactoring prototypes into production code +## 多模型调用语法 -## 流程 - -### Step 1: 上下文检索 -1. Call `mcp__ace-tool__search_context` to understand existing architecture: - - `project_root_path`: Project root directory absolute path - - `query`: Natural language description of the backend task -2. Identify API patterns, data models, services, and dependencies -3. 如需求仍不清晰,提出澄清问题 - -### Step 2: 多模型后端分析 - -**并行调用所有配置的后端模型进行分析**(使用 `run_in_background: true`): - -遍历 {{BACKEND_MODELS}} 中的每个模型进行后端分析: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/analyzer.md` -- 输出:`Structured analysis/diagnostic report` - -**总共并行调用次数**: {{BACKEND_MODELS}} 长度(例如:配置 codex + gemini = 2次) - -调用示例: ```bash -# 遍历后端模型列表(假设配置了 codex 和 gemini) -for model in codex gemini; do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/analyzer.md +# Codex 调用(后端主力) +~/.claude/bin/codeagent-wrapper --backend codex - "$PWD" <<'EOF' +[角色提示词内容] - -分析后端需求: {{后端任务描述}} -Context: {{从 MCP 获取的 API 架构和数据模型}} -关注点: -- API 设计和 RESTful 规范 -- 数据模型和关系设计 -- 业务逻辑复杂度 -- 性能瓶颈和优化点 -- 安全风险和防护措施 - - -OUTPUT: Structured analysis/diagnostic report. +[任务内容] +EOF + +# Gemini 调用(前端参考) +~/.claude/bin/codeagent-wrapper --backend gemini - "$PWD" <<'EOF' +[任务内容] EOF -done ``` -使用 `TaskOutput` 获取所有模型的分析结果,交叉验证后综合方案。 +--- -**强制停止**: 询问用户 **"是否继续执行此方案?(Y/N)"** 并等待确认 +## 核心工作流 -### Step 3: 多模型原型生成 +### 🔍 阶段 1:研究 -**并行调用所有配置的后端模型生成原型**(使用 `run_in_background: true`): +`[模式:研究]` - 理解需求并收集上下文 -遍历 {{BACKEND_MODELS}} 中的每个模型生成后端原型: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/architect.md` -- 输出:`Unified Diff Patch ONLY` +1. 检索现有 API、数据模型、服务架构 +2. 需求完整性评分(0-10 分):≥7 继续,<7 停止补充 -**总共并行调用次数**: {{BACKEND_MODELS}} 长度(例如:配置 codex + gemini = 2次) +### 💡 阶段 2:构思 + +`[模式:构思]` - Codex 主导分析 + +**调用示例**: -调用示例: ```bash -# 遍历后端模型生成原型 -for model in $(echo '{{BACKEND_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/architect.md +~/.claude/bin/codeagent-wrapper --backend codex - "$PWD" <<'EOF' +你是后端分析专家,擅长 API 设计、算法、数据库优化。 - -生成后端原型: {{后端任务描述}} -Context: {{相关代码和架构}} -实现要点: -- 遵循现有 API 设计模式 -- 实现完整的错误处理 -- 添加必要的参数验证 -- 考虑并发和性能 - +任务:分析以下后端需求,提供设计方案 +- API 接口设计 +- 数据模型结构 +- 性能与安全考虑 +- 错误处理策略 -OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications. +需求:[具体任务描述] EOF -done ``` -使用 `TaskOutput` 收集所有模型的原型结果。 +**⚠️ 等待 Codex 返回后继续** -### Step 4: 重构与实施 -1. 将所有模型的原型视为"脏原型" – 仅作参考 -2. **交叉验证所有模型结果,集各家所长**: - - 分析每个模型的优势和不足 - - Codex 通常在算法和调试上更强 - - Gemini 可能提供更现代的架构思路 - - 选择最佳实现方案或综合创新点 -3. 重构为干净的生产级代码 -4. 确保正确的错误处理和安全性 -5. 验证变更不会引入副作用 +输出方案(至少 2 个),等待用户选择。 -### Step 5: 多模型审计交付 +### 📋 阶段 3:计划 -**并行调用所有配置的后端模型进行审计**(使用 `run_in_background: true`): +`[模式:计划]` - Codex 主导规划 -遍历 {{BACKEND_MODELS}} 中的每个模型进行代码审查: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/reviewer.md` -- 输出:`Review comments only` +调用 Codex(`architect.md`)→ 文件结构、函数/类设计、依赖 -**总共并行调用次数**: {{BACKEND_MODELS}} 长度(例如:配置 codex + gemini = 2次) +**⚠️ 等待 Codex 返回后继续** -调用示例: -```bash -# 遍历后端模型列表进行审计 -for model in $(echo '{{BACKEND_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/reviewer.md +Claude 综合规划,请求用户批准后存入 `.claude/plan/任务名.md` - -审查后端代码: {{实施的代码变更}} -关注点: -- 安全性(SQL 注入、XSS、CSRF 等) -- 性能(N+1 查询、缓存策略) -- 错误处理(异常捕获、日志记录) -- 代码质量(可读性、可维护性) -- API 规范(RESTful 设计、HTTP 状态码) - +### ⚡ 阶段 4:执行 -OUTPUT: Review comments only. No code modifications. -EOF -done -``` +`[模式:执行]` - 代码开发 -使用 `TaskOutput` 收集所有模型的审计结果,交叉验证后提供综合反馈。 +- 严格按批准的计划实施 +- 遵循项目现有代码规范 +- 确保错误处理、安全性、性能优化 -**最终交付**: 根据审计反馈进行必要的调整,确保代码达到生产级质量。 +### 🚀 阶段 5:优化 -## 输出格式 -1. **Configuration** – 使用的模型和策略 ({{BACKEND_MODELS}}) -2. **Architecture Analysis** – 现有模式和依赖关系 -3. **Multi-Model Analysis** – 所有后端模型的分析报告(交叉验证) -4. **Multi-Model Prototypes** – 所有后端模型的原型(交叉验证) -5. **Refined Implementation** – 综合各模型优势的生产级代码 -6. **Multi-Model Audit** – 所有后端模型的审计反馈(交叉验证) +`[模式:优化]` - Codex 主导审查 -## 注意事项 -- Codex excels at complex logic and debugging -- Codex uses read-only sandbox by default -- Always request Unified Diff Patch format -- Use HEREDOC syntax (`<<'EOF'`) to avoid shell escaping issues +调用 Codex(`reviewer.md`)→ 安全性、性能、错误处理、API规范 + +**⚠️ 等待 Codex 返回后继续** + +整合审查意见,用户确认后执行优化。 + +### ✅ 阶段 6:评审 + +`[模式:评审]` - 最终评估 + +- 对照计划检查完成情况 +- 运行测试验证功能 +- 报告问题与建议 + +--- + +## 关键规则 + +1. **Codex 后端意见可信赖** +2. **Gemini 后端意见仅供参考** +3. 外部模型对文件系统**零写入权限** +4. Claude 负责所有代码写入和文件操作 diff --git a/templates/commands/bugfix.md b/templates/commands/bugfix.md deleted file mode 100644 index 0d674e5..0000000 --- a/templates/commands/bugfix.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -description: 质量门控修复(双模型交叉验证,90%+ 通过) ---- - -## 用法 -`/bugfix ` - -## 上下文 -- Bug 描述: $ARGUMENTS -- 使用双模型交叉验证确保修复质量 -- 质量门控:90%+ 评分才能通过,最多 3 轮迭代 - -## 流程 - -### Phase 1: Bug 分析 -1. 调用 `mcp__ace-tool__search_context` 检索相关代码: - - `project_root_path`: 项目根目录绝对路径 - - `query`: Bug 的自然语言描述 -2. 分析 bug 类型:前端/后端/全栈 -3. 收集复现步骤、错误日志、预期行为 - -### Phase 2: 双模型诊断 -**并行调用**(`run_in_background: true`): - -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` - -```bash -# Codex 后端诊断修复 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md - - -Bug 修复: {{Bug 描述}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Unified Diff Patch for the fix. -EOF -``` - -```bash -# Gemini 前端诊断修复 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/frontend.md - - -Bug 修复: {{Bug 描述}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Unified Diff Patch for the fix. -EOF -``` - -- **Codex** + `architect` 角色 → 后端分析 -- **Gemini** + `frontend` 角色 → 前端分析 - -### Phase 3: 修复整合 -1. 收集双模型的修复方案(`TaskOutput`) -2. 综合分析:识别共同点、合并互补修复、选择最优方案 -3. Claude 重构为生产级代码 - -### Phase 4: 实施修复 -应用修复代码,记录变更内容 - -### Phase 5: 质量门控验证 -**并行调用** Codex + Gemini + `reviewer` 角色验证 - -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` - -```bash -# Codex 审查修复 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md - - -审查修复: {{实施的修复代码}} -评分标准: 正确性、安全性、性能、可维护性 - - -OUTPUT: Review with score (0-100%) and specific feedback. -EOF -``` - -```bash -# Gemini 审查修复 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md - - -审查修复: {{实施的修复代码}} -评分标准: 正确性、用户体验、可访问性、设计一致性 - - -OUTPUT: Review with score (0-100%) and specific feedback. -EOF -``` - -### Phase 6: 质量门控决策 -``` -综合评分 = (Codex 评分 + Gemini 评分) / 2 -``` - -| 综合评分 | 结果 | 动作 | -|----------|------|------| -| ≥ 90% | ✅ PASS | 完成修复,可提交 | -| 70-89% | ⚠️ ITERATE | 返回 Phase 3,携带反馈 | -| 3轮后 < 90% | ❌ FAIL | 需人工介入 | - -## 关键原则 -1. **双模型交叉验证** - 避免单一视角的盲区 -2. **量化质量评估** - 使用评分制而非主观判断 -3. **迭代改进** - 每轮携带具体反馈 -4. **止损机制** - 最多 3 轮,防止无限循环 diff --git a/templates/commands/clean-branches.md b/templates/commands/clean-branches.md index 500abfe..cfc93aa 100644 --- a/templates/commands/clean-branches.md +++ b/templates/commands/clean-branches.md @@ -1,102 +1,117 @@ --- -description: 安全查找并清理已合并或过期的 Git 分支,支持 dry-run 模式与自定义基准/保护分支 -allowed-tools: Read(**), Exec(git fetch, git config, git branch, git remote, git push, git for-each-ref, git log), Write() -argument-hint: [--base ] [--stale ] [--remote] [--force] [--dry-run] [--yes] -# examples: -# - /git-cleanBranches --dry-run -# - /git-cleanBranches --base release/v2.1 --stale 90 -# - /git-cleanBranches --remote --yes +description: '清理 Git 分支:安全清理已合并或过期分支,默认 dry-run 模式' --- -# Claude Command: Clean Branches +# Clean-Branches - 清理 Git 分支 -该命令**安全地**识别并清理**已合并**或**长期未更新 (stale)** 的 Git 分支。 -默认以**只读预览 (`--dry-run`)** 模式运行,需明确指令才会执行删除操作。 +安全识别并清理已合并或长期未更新的分支。 ---- - -## Usage +## 使用方法 ```bash -# [最安全] 预览将要清理的分支,不执行任何删除 -/git-cleanBranches --dry-run - -# 清理已合并到 main 且超过 90 天未动的本地分支 (需逐一确认) -/git-cleanBranches --stale 90 - -# 清理已合并到 release/v2.1 的本地与远程分支 (自动确认) -/git-cleanBranches --base release/v2.1 --remote --yes - -# [危险] 强制删除一个未合并的本地分支 -/git-cleanBranches --force outdated-feature +/clean-branches [options] ``` -### Options +## 选项 -- `--base `:指定清理的基准分支(默认为仓库的 `main`/`master`)。 -- `--stale `:清理超过指定天数未提交的分支(默认不启用)。 -- `--remote`:同时清理远程已合并/过期的分支。 -- `--dry-run`:**默认行为**。仅列出将要删除的分支,不执行任何操作。 -- `--yes`:跳过逐一确认的步骤,直接删除所有已识别的分支(适合 CI/CD)。 -- `--force`:使用 `-D` 强制删除本地分支(即使未合并)。 +| 选项 | 说明 | +|------|------| +| `--base ` | 基准分支(默认 main/master) | +| `--stale ` | 清理超过 N 天未更新的分支 | +| `--remote` | 同时清理远程分支 | +| `--dry-run` | 只预览,不执行(**默认**) | +| `--yes` | 跳过确认直接删除 | +| `--force` | 强制删除未合并分支 | --- -## What This Command Does +## 执行工作流 -1. **配置与安全预检** - - **更新信息**:自动执行 `git fetch --all --prune`,确保分支状态最新。 - - **读取保护分支**:从 Git 配置读取不应被清理的分支列表(见下文“Configuration”)。 - - **确定基准**:使用 `--base` 参数或自动识别的 `main`/`master` 作为比较基准。 +### 🔍 阶段 1:预检 -2. **分析识别(Find)** - - **已合并分支**:找出已完全合并到 `--base` 的本地(及远程,如加 `--remote`)分支。 - - **过期分支**:如指定 `--stale `,找出最后一次提交在 N 天前的分支。 - - **排除保护分支**:从待清理列表中移除所有已配置的保护分支。 +`[模式:准备]` -3. **报告预览(Report)** - - 清晰列出“将要删除的已合并分支”与“将要删除的过期分支”。 - - 若无 `--yes` 参数,**命令到此结束**,等待用户确认后再次执行(不带 `--dry-run`)。 +1. 同步远端:`git fetch --all --prune` +2. 读取保护分支配置 +3. 确定基准分支 -4. **执行清理(Execute)** - - **仅在不带 `--dry-run` 且用户确认后**(或带 `--yes`)执行。 - - 逐一删除已识别的分支,除非用户在交互式确认中选择跳过。 - - 本地用 `git branch -d `;远程用 `git push origin --delete `。 - - 若指定 `--force`,本地删除会改用 `git branch -D `。 +### 📋 阶段 2:分析识别 ---- +`[模式:分析]` -## Configuration (一次配置,永久生效) +**已合并分支**: +- 已完全合并到 `--base` 的分支 -为防止误删重要分支(如 `develop`, `release/*`),请在仓库的 Git 配置中添加保护规则。命令会自动读取。 +**过期分支**(如指定 `--stale`): +- 最后提交在 N 天前的分支 + +**排除**: +- 从待清理列表中移除保护分支 + +### 📊 阶段 3:报告预览 + +`[模式:报告]` + +```markdown +## 将要删除的分支 + +### 已合并分支 +- feature/old-feature (合并于 3 天前) +- bugfix/fixed-issue (合并于 7 天前) + +### 过期分支 +- experiment/old-test (最后更新 90 天前) +``` + +### ✅ 阶段 4:执行清理 + +`[模式:执行]` + +仅在不带 `--dry-run` 且确认后执行: ```bash -# 保护 develop 分支 -git config --add branch.cleanup.protected develop +# 本地分支 +git branch -d -# 保护所有 release/ 开头的分支 (通配符) +# 远程分支(如果 --remote) +git push origin --delete + +# 强制删除(如果 --force) +git branch -D +``` + +--- + +## 保护分支配置 + +```bash +# 添加保护分支 +git config --add branch.cleanup.protected develop git config --add branch.cleanup.protected 'release/*' -# 查看所有已配置的保护分支 +# 查看保护分支 git config --get-all branch.cleanup.protected ``` --- -## Best Practices for Embedded Devs +## 示例 -- **优先 `--dry-run`**:养成先预览再执行的习惯。 -- **活用 `--base`**:维护长期 `release` 分支时,用它来清理已合并到该 release 的 `feature` 或 `hotfix` 分支。 -- **谨慎 `--force`**:除非你百分百确定某个未合并分支是无用功,否则不要强制删除。 -- **团队协作**:在清理共享的远程分支前,先在团队频道通知一声。 -- **定期运行**:每月或每季度运行一次,保持仓库清爽。 +```bash +# 预览将清理的分支 +/clean-branches --dry-run ---- +# 清理已合并且超过 90 天未动的分支 +/clean-branches --stale 90 -## Why This Version Is Better +# 清理已合并到 release/v2.1 的分支 +/clean-branches --base release/v2.1 --remote --yes +``` -- ✅ **更安全**:默认只读预览,且有可配置的保护分支列表。 -- ✅ **更灵活**:支持自定义基准分支,完美适配 `release` / `develop` 工作流。 -- ✅ **更兼容**:避免了在不同系统上行为不一的 `date -d` 等命令。 -- ✅ **更直观**:将复杂的 16 步清单,浓缩成一个带安全选项的、可直接执行的命令。 -- ✅ **风格一致**:与 `/commit` 命令共享相似的参数设计与文档结构。 +## 最佳实践 + +1. **优先 dry-run** – 先预览再执行 +2. **活用 --base** – 适配 release 工作流 +3. **谨慎 --force** – 除非确定无用 +4. **团队协作** – 清理远程分支前先通知 +5. **定期运行** – 每月/季度一次保持清爽 diff --git a/templates/commands/code.md b/templates/commands/code.md deleted file mode 100644 index eff187c..0000000 --- a/templates/commands/code.md +++ /dev/null @@ -1,255 +0,0 @@ ---- -description: 三模型代码生成(Codex + Gemini + Claude 并行原型,集各家所长) ---- - -## 用法 -`/code <功能描述>` - -## 上下文 -- 功能描述: $ARGUMENTS -- **三模型并行生成原型**,编排者集各家所长 -- 生成的原型经 Claude (编排者) 重构为生产级代码 - -## 工作流程 - -### Phase 1: 需求分析 - -1. 调用 `mcp__ace-tool__search_context` 检索: - - `project_root_path`: 项目根目录绝对路径 - - `query`: 功能需求的自然语言描述 - - 相关模块和文件结构 - - 现有代码模式和风格 - - 依赖和接口定义 -2. 分析任务类型: - - **前端**: UI 组件、样式、用户交互 - - **后端**: API、业务逻辑、数据库操作 - - **全栈**: 同时涉及前后端 - -### Phase 2: 三模型并行原型生成 - -**同时调用三个模型**(`run_in_background: true`): - -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` - -```bash -# Codex 后端架构原型 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md - - -生成原型: {{功能需求}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications. -EOF -``` - -```bash -# Gemini 前端 UI 原型 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/frontend.md - - -生成原型: {{功能需求}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications. -EOF -``` - -```bash -# Claude 全栈整合原型 -codeagent-wrapper --backend claude - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/claude/architect.md - - -生成原型: {{功能需求}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications. -EOF -``` - -1. **Codex** + `architect` 角色 → 后端架构视角 -2. **Gemini** + `frontend` 角色 → 前端 UI 视角 -3. **Claude** + `architect` 角色 → 全栈整合视角 - -**三模型差异化价值**: -| 模型 | 专注点 | 独特贡献 | -|------|--------|----------| -| Codex | 后端逻辑、算法、API | 深度后端专业知识 | -| Gemini | 前端 UI、样式、交互 | 视觉设计和用户体验 | -| Claude | 全栈整合、契约设计 | 桥接前后端视角 | - -定义清晰的接口契约: -``` -API Contract: -- Endpoint: POST /api/xxx -- Request: { field1: string, field2: number } -- Response: { data: T, error?: string } -``` - -### Phase 3: 原型整合 - -1. 收集三个模型输出(使用 `TaskOutput`) -2. 将 Unified Diff 视为"脏原型" -3. **交叉验证,集各家所长**: - - Codex 的后端逻辑和 API 设计 - - Gemini 的前端组件和 UI 交互 - - Claude 的整合视角和契约一致性 -4. Claude (编排者) 重构: - - 统一代码风格 - - 确保前后端接口一致 - - 优化实现细节 - - 移除冗余代码 - -### Phase 4: 代码实施 - -1. 应用重构后的代码 -2. 确保不破坏现有功能 -3. 验证编译/类型检查通过 - -### Phase 5: 三模型审查 - -**并行启动审查**(`run_in_background: true`): - -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` - -```bash -# Codex 安全性审查 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/reviewer.md - - -审查代码: {{实施的代码变更}} -关注点: 安全性、性能、错误处理 - - -OUTPUT: Review comments with specific line references. -EOF -``` - -```bash -# Gemini 设计审查 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/reviewer.md - - -审查代码: {{实施的代码变更}} -关注点: 可访问性、响应式设计、设计一致性 - - -OUTPUT: Review comments with specific line references. -EOF -``` - -```bash -# Claude 集成审查 -codeagent-wrapper --backend claude - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/claude/reviewer.md - - -审查代码: {{实施的代码变更}} -关注点: 集成正确性、契约一致性 - - -OUTPUT: Review comments with specific line references. -EOF -``` - -- **Codex** + `reviewer` 角色 → 安全性、性能、错误处理 -- **Gemini** + `reviewer` 角色 → 可访问性、响应式、设计一致性 -- **Claude** + `reviewer` 角色 → 集成正确性、契约一致性 - -### Phase 6: 修正与交付 - -1. 综合三模型审查意见 -2. 修正发现的问题 -3. 最终交付 - -## 输出格式 - -``` -## 🚀 Code: <功能描述> - -### Phase 1: 需求分析 -- 任务类型: [前端/后端/全栈] -- 相关文件: <文件列表> -- 现有模式: <识别的模式> - -### Phase 2: 代码生成 -#### Codex 原型 (后端视角) - - -#### Gemini 原型 (前端视角) - - -#### Claude 原型 (全栈视角) - - -### Phase 3: 整合重构 -<重构说明> - -### Phase 4: 实施 -<变更文件列表> - -### Phase 5: 审查 -#### Codex 审查 (安全/性能) -- <审查意见 1> -- <审查意见 2> - -#### Gemini 审查 (可访问性/设计) -- <审查意见 1> -- <审查意见 2> - -#### Claude 审查 (集成/契约) -- <审查意见 1> -- <审查意见 2> - -### Phase 6: 交付 -✅ 实施完成 -- 新增文件: X -- 修改文件: Y -- 代码行数: +N / -M -``` - -## 任务类型检测 - -| 关键词 | 类型 | 路由 | -|--------|------|------| -| component, UI, style, CSS, React, Vue | 前端 | Gemini | -| API, endpoint, database, auth, backend | 后端 | Codex | -| full-stack, 全栈, 页面+接口 | 全栈 | 并行 | - -## 代码质量标准 - -### 前端代码 (Gemini 专注) -- [ ] TypeScript 类型完整 -- [ ] 响应式设计 -- [ ] 无障碍属性 -- [ ] 加载/错误状态 -- [ ] 遵循设计系统 - -### 后端代码 (Codex 专注) -- [ ] 输入验证 -- [ ] 错误处理 -- [ ] 安全检查 -- [ ] 查询优化 -- [ ] API 一致性 - -### 全栈整合 (Claude 专注) -- [ ] 前后端接口一致 -- [ ] 类型定义共享 -- [ ] 错误码统一 -- [ ] 契约文档完整 - -## 关键原则 - -1. **三模型并行** - 同时获取三个视角的原型 -2. **集各家所长** - 交叉验证,取最优方案 -3. **接口优先** - 先定义 API 契约 -4. **编排者重构** - 原型需要 Claude (编排者) 整合 -5. **三重审查** - 代码必须经过三模型审查 diff --git a/templates/commands/commit.md b/templates/commands/commit.md index fe461ec..bfd34d7 100644 --- a/templates/commands/commit.md +++ b/templates/commands/commit.md @@ -1,158 +1,122 @@ --- -description: 仅用 Git 分析改动并自动生成 conventional commit 信息(可选 emoji);必要时建议拆分提交,默认运行本地 Git 钩子(可 --no-verify 跳过) -allowed-tools: Read(**), Exec(git status, git diff, git add, git restore --staged, git commit, git rev-parse, git config), Write(.git/COMMIT_EDITMSG) -argument-hint: [--no-verify] [--all] [--amend] [--signoff] [--emoji] [--scope ] [--type ] -# examples: -# - /git-commit # 分析当前改动,生成提交信息 -# - /git-commit --all # 暂存所有改动并提交 -# - /git-commit --no-verify # 跳过 Git 钩子检查 -# - /git-commit --emoji # 在提交信息中包含 emoji -# - /git-commit --scope ui --type feat # 指定作用域和类型 -# - /git-commit --amend --signoff # 修补上次提交并签名 +description: '智能 Git 提交:分析改动生成 Conventional Commit 信息,支持拆分建议' --- -# Claude Command: Commit (Git-only) +# Commit - 智能 Git 提交 -该命令在**不依赖任何包管理器/构建工具**的前提下,仅通过 **Git**: +分析当前改动,生成 Conventional Commits 风格的提交信息。 -- 读取改动(staged/unstaged) -- 判断是否需要**拆分为多次提交** -- 为每个提交生成 **Conventional Commits** 风格的信息(可选 emoji) -- 按需执行 `git add` 与 `git commit`(默认运行本地 Git 钩子;可 `--no-verify` 跳过) - ---- - -## Usage +## 使用方法 ```bash -/git-commit -/git-commit --no-verify -/git-commit --emoji -/git-commit --all --signoff -/git-commit --amend -/git-commit --scope ui --type feat --emoji +/commit [options] ``` -### Options +## 选项 -- `--no-verify`:跳过本地 Git 钩子(`pre-commit`/`commit-msg` 等)。 -- `--all`:当暂存区为空时,自动 `git add -A` 将所有改动纳入本次提交。 -- `--amend`:在不创建新提交的情况下**修补**上一次提交(保持提交作者与时间,除非本地 Git 配置另有指定)。 -- `--signoff`:附加 `Signed-off-by` 行(遵循 DCO 流程时使用)。 -- `--emoji`:在提交信息中包含 emoji 前缀(省略则使用纯文本)。 -- `--scope `:指定提交作用域(如 `ui`、`docs`、`api`),写入消息头部。 -- `--type `:强制提交类型(如 `feat`、`fix`、`docs` 等),覆盖自动判断。 - -> 注:如框架不支持交互式确认,可在 front-matter 中开启 `confirm: true` 以避免误操作。 +| 选项 | 说明 | +|------|------| +| `--no-verify` | 跳过 Git 钩子 | +| `--all` | 暂存所有改动 | +| `--amend` | 修补上次提交 | +| `--signoff` | 附加签名 | +| `--emoji` | 包含 emoji 前缀 | +| `--scope ` | 指定作用域 | +| `--type ` | 指定提交类型 | --- -## What This Command Does +## 执行工作流 -1. **仓库/分支校验** - - 通过 `git rev-parse --is-inside-work-tree` 判断是否位于 Git 仓库。 - - 读取当前分支/HEAD 状态;如处于 rebase/merge 冲突状态,先提示处理冲突后再继续。 +### 🔍 阶段 1:仓库校验 -2. **改动检测** - - 用 `git status --porcelain` 与 `git diff` 获取已暂存与未暂存的改动。 - - 若已暂存文件为 0: - - 若传入 `--all` → 执行 `git add -A`。 - - 否则提示你选择:继续仅分析未暂存改动并给出**建议**,或取消命令后手动分组暂存。 +`[模式:检查]` -3. **拆分建议(Split Heuristics)** - - 按**关注点**、**文件模式**、**改动类型**聚类(示例:源代码 vs 文档、测试;不同目录/包;新增 vs 删除)。 - - 若检测到**多组独立变更**或 diff 规模过大(如 > 300 行 / 跨多个顶级目录),建议拆分提交,并给出每一组的 pathspec(便于后续执行 `git add `)。 +1. 验证 Git 仓库状态 +2. 检测 rebase/merge 冲突 +3. 读取当前分支/HEAD 状态 -4. **提交信息生成(Conventional 规范,可选 Emoji)** - - 自动推断 `type`(`feat`/`fix`/`docs`/`refactor`/`test`/`chore`/`perf`/`style`/`ci`/`revert` …)与可选 `scope`。 - - 生成消息头:`[] ()?: `(首行 ≤ 72 字符,祈使语气,仅在使用 `--emoji` 时包含 emoji)。 - - 生成消息体:要点列表(动机、实现要点、影响范围、BREAKING CHANGE 如有)。 - - 根据 Git 历史提交的主要语言选择提交信息语言。优先检查最近提交主题(例如 `git log -n 50 --pretty=%s`)判断中文/英文;若无法判断,则回退到仓库主要语言或英文。 - - 将草稿写入 `.git/COMMIT_EDITMSG`,并用于 `git commit`。 +### 📋 阶段 2:改动检测 -5. **执行提交** - - 单提交场景:`git commit [-S] [--no-verify] [-s] -F .git/COMMIT_EDITMSG` - - 多提交场景(如接受拆分建议):按分组给出 `git add && git commit ...` 的明确指令;若允许执行则逐一完成。 +`[模式:分析]` -6. **安全回滚** - - 如误暂存,可用 `git restore --staged ` 撤回暂存(命令会给出指令,不修改文件内容)。 +1. 获取已暂存与未暂存改动 +2. 若暂存区为空: + - `--all` → 执行 `git add -A` + - 否则提示选择 + +### ✂️ 阶段 3:拆分建议 + +`[模式:建议]` + +按以下维度聚类: +- 关注点(源代码 vs 文档/测试) +- 文件模式(不同目录/包) +- 改动类型(新增 vs 删除) + +若检测到多组独立变更(>300 行 / 跨多个顶级目录),建议拆分。 + +### ✍️ 阶段 4:生成提交信息 + +`[模式:生成]` + +**格式**:`[emoji] (): ` + +- 首行 ≤ 72 字符 +- 祈使语气 +- 消息体:动机、实现要点、影响范围 + +**语言**:根据最近 50 次提交判断中文/英文 + +### ✅ 阶段 5:执行提交 + +`[模式:执行]` + +```bash +git commit [-S] [--no-verify] [-s] -F .git/COMMIT_EDITMSG +``` --- -## Best Practices for Commits +## Type 与 Emoji 映射 -- **Atomic commits**:一次提交只做一件事,便于回溯与审阅。 -- **先分组再提交**:按目录/模块/功能点拆分。 -- **清晰主题**:首行 ≤ 72 字符,祈使语气(如 “add… / fix…”)。 -- **正文含上下文**:说明动机、方案、影响范围、风险与后续工作。 -- **遵循 Conventional Commits**:`(): `。 +| Emoji | Type | 说明 | +|-------|------|------| +| ✨ | `feat` | 新增功能 | +| 🐛 | `fix` | 缺陷修复 | +| 📝 | `docs` | 文档更新 | +| 🎨 | `style` | 代码格式 | +| ♻️ | `refactor` | 重构 | +| ⚡️ | `perf` | 性能优化 | +| ✅ | `test` | 测试相关 | +| 🔧 | `chore` | 构建/工具 | +| 👷 | `ci` | CI/CD | +| ⏪️ | `revert` | 回滚 | --- -## Type 与 Emoji 映射(使用 --emoji 时) +## 示例 -- ✨ `feat`:新增功能 -- 🐛 `fix`:缺陷修复(含 🔥 删除代码/文件、🚑️ 紧急修复、👽️ 适配外部 API 变更、🔒️ 安全修复、🚨 解决告警、💚 修复 CI) -- 📝 `docs`:文档与注释 -- 🎨 `style`:风格/格式(不改语义) -- ♻️ `refactor`:重构(不新增功能、不修缺陷) -- ⚡️ `perf`:性能优化 -- ✅ `test`:新增/修复测试、快照 -- 🔧 `chore`:构建/工具/杂务(合并分支、更新配置、发布标记、依赖 pin、.gitignore 等) -- 👷 `ci`:CI/CD 配置与脚本 -- ⏪️ `revert`:回滚提交 -- 💥 `feat`:破坏性变更(`BREAKING CHANGE:` 段落中说明) +```bash +# 基本提交 +/commit -> 若传入 `--type`/`--scope`,将**覆盖**自动推断。 -> 仅在指定 `--emoji` 标志时才会包含 emoji。 +# 暂存所有并提交 +/commit --all ---- +# 带 emoji 提交 +/commit --emoji -## Guidelines for Splitting Commits +# 指定类型和作用域 +/commit --scope ui --type feat --emoji -1. **不同关注点**:互不相关的功能/模块改动应拆分。 -2. **不同类型**:不要将 `feat`、`fix`、`refactor` 混在同一提交。 -3. **文件模式**:源代码 vs 文档/测试/配置分组提交。 -4. **规模阈值**:超大 diff(示例:>300 行或跨多个顶级目录)建议拆分。 -5. **可回滚性**:确保每个提交可独立回退。 +# 修补上次提交 +/commit --amend --signoff +``` ---- +## 关键规则 -## Examples - -**Good (使用 --emoji)** - -- ✨ feat(ui): add user authentication flow -- 🐛 fix(api): handle token refresh race condition -- 📝 docs: update API usage examples -- ♻️ refactor(core): extract retry logic into helper -- ✅ test: add unit tests for rate limiter -- 🔧 chore: update git hooks and repository settings -- ⏪️ revert: revert "feat(core): introduce streaming API" - -**Good (不使用 --emoji)** - -- feat(ui): add user authentication flow -- fix(api): handle token refresh race condition -- docs: update API usage examples -- refactor(core): extract retry logic into helper -- test: add unit tests for rate limiter -- chore: update git hooks and repository settings -- revert: revert "feat(core): introduce streaming API" - -**Split Example** - -- `feat(types): add new type defs for payment method` -- `docs: update API docs for new types` -- `test: add unit tests for payment types` -- `fix: address linter warnings in new files` ←(如你的仓库有钩子报错) - ---- - -## Important Notes - -- **仅使用 Git**:不调用任何包管理器/构建命令(无 `pnpm`/`npm`/`yarn` 等)。 -- **尊重钩子**:默认执行本地 Git 钩子;使用 `--no-verify` 可跳过。 -- **不改源码内容**:命令只读写 `.git/COMMIT_EDITMSG` 与暂存区;不会直接编辑工作区文件。 -- **安全提示**:在 rebase/merge 冲突、detached HEAD 等状态下会先提示处理/确认再继续。 -- **可审可控**:如开启 `confirm: true`,每个实际 `git add`/`git commit` 步骤都会进行二次确认。 +1. **仅使用 Git** – 不调用包管理器 +2. **尊重钩子** – 默认执行,`--no-verify` 可跳过 +3. **不改源码** – 只读写 `.git/COMMIT_EDITMSG` +4. **原子提交** – 一次提交只做一件事 diff --git a/templates/commands/debug.md b/templates/commands/debug.md index 11fce53..d46c723 100644 --- a/templates/commands/debug.md +++ b/templates/commands/debug.md @@ -1,133 +1,137 @@ --- -description: UltraThink 多模型调试(Codex 后端诊断 + Gemini 前端诊断) +description: '多模型调试:Codex 后端诊断 + Gemini 前端诊断,交叉验证定位问题' --- -## 用法 -`/debug <问题描述>` +# Debug - 多模型调试 -## 上下文 -- 问题描述: $ARGUMENTS -- 使用 ace-tool 检索相关代码上下文 -- Codex 专注后端/逻辑问题,Gemini 专注前端/UI问题 +双模型并行诊断,交叉验证快速定位问题根因。 -## 流程 +## 多模型调用语法 -### Phase 1: 上下文检索 +**⚠️ 必须使用 heredoc 语法调用外部模型**: -1. 调用 `mcp__ace-tool__search_context` 检索相关代码: - - `project_root_path`: 项目根目录绝对路径 - - `query`: 问题的自然语言描述 +```bash +~/.claude/bin/codeagent-wrapper --backend - "$PWD" <<'EOF' +<任务内容> +EOF +``` + +- `--backend codex` – 后端/逻辑问题诊断 +- `--backend gemini` – 前端/UI 问题诊断 +- `$PWD` – 当前工作目录 + +--- + +## 使用方法 + +```bash +/debug <问题描述> +``` + +## 你的角色 + +你是**调试协调者**,编排多模型诊断流程: +- **Codex** – 后端诊断(**后端问题权威**) +- **Gemini** – 前端诊断(**前端问题权威**) +- **Claude (自己)** – 综合诊断、执行修复 + +--- + +## 执行工作流 + +**问题描述**:$ARGUMENTS + +### 🔍 阶段 1:上下文收集 + +`[模式:研究]` + +1. 调用 `mcp__ace-tool__search_context` 检索相关代码(如可用) 2. 收集错误日志、堆栈信息、复现步骤 -3. 识别问题涉及的模块(前端/后端/全栈) +3. 识别问题类型:[后端/前端/全栈] -### Phase 2: 并行诊断 +### 🔬 阶段 2:并行诊断 -**同时启动两个后台任务**(`run_in_background: true`): +`[模式:诊断]` -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` +**并行调用 Codex + Gemini**: +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): ```bash # Codex 后端诊断 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/debugger.md +~/.claude/bin/codeagent-wrapper --backend codex - "$PWD" <<'EOF' & +角色:后端调试专家 - -诊断问题: {{问题描述}} -Context: {{从 ace-tool 获取的相关代码}} - +问题:$ARGUMENTS -OUTPUT: Structured diagnostic report. No code modifications. +任务: +1. 分析逻辑错误、数据流、异常处理 +2. 检查 API、数据库、服务间通信 +3. 输出诊断假设(按可能性排序) EOF -``` -```bash # Gemini 前端诊断 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/debugger.md +~/.claude/bin/codeagent-wrapper --backend gemini - "$PWD" <<'EOF' & +角色:前端调试专家 - -诊断问题: {{问题描述}} -Context: {{从 ace-tool 获取的相关代码}} - +问题:$ARGUMENTS -OUTPUT: Structured diagnostic report. No code modifications. +任务: +1. 分析 UI 渲染、状态管理、事件绑定 +2. 检查组件生命周期、样式冲突 +3. 输出诊断假设(按可能性排序) EOF ``` +2. 使用 `TaskOutput` 监控并获取 2 个模型的诊断结果。 -- **Codex** + `debugger` 角色 → 后端诊断 -- **Gemini** + `debugger` 角色 → 前端诊断 +**⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** -### Phase 3: 假设整合 +### 🔀 阶段 3:假设整合 -1. 收集两个模型的诊断报告(使用 `TaskOutput`) -2. 交叉验证:识别重叠和互补的假设 -3. **UltraThink 综合**: - - 整合所有假设,按可能性排序 - - 筛选出 **Top 1-2 最可能原因** - - 设计验证策略 +`[模式:验证]` -### Phase 4: 用户确认(Hard Stop) +1. 交叉验证双方诊断结果 +2. 筛选 **Top 1-2 最可能原因** +3. 设计验证策略 -输出格式: -``` +### ⛔ 阶段 4:用户确认(Hard Stop) + +`[模式:确认]` + +```markdown ## 🔍 诊断结果 ### Codex 分析(后端视角) - +<诊断摘要> ### Gemini 分析(前端视角) - +<诊断摘要> ### 综合诊断 **最可能原因**:<具体诊断> -**证据**:<支持证据> **验证方案**:<如何确认> --- **确认后我将执行修复。是否继续?(Y/N)** ``` -⚠️ **必须等待用户确认后才能进入 Phase 5** +**⚠️ 必须等待用户确认后才能进入阶段 5** -### Phase 5: 修复与验证 +### 🔧 阶段 5:修复与验证 -1. 根据确认的诊断实施修复 -2. 修复完成后,**并行调用** Codex + Gemini + `reviewer` 角色审查修复 -3. 综合审查意见,确认问题解决 +`[模式:执行]` -## 输出格式 +用户确认后: +1. 根据诊断实施修复 +2. 运行测试验证修复 +3. **可选**:并行调用 Codex + Gemini 审查修复 -``` -## Phase 1: 上下文检索 -- 检索到 X 个相关文件 -- 问题类型: [前端/后端/全栈] +--- -## Phase 2: 并行诊断 -### Codex 诊断 -<诊断内容> +## 关键规则 -### Gemini 诊断 -<诊断内容> - -## Phase 3: 综合分析 -### Top 假设 -1. [最可能原因] - 可能性: High -2. [次可能原因] - 可能性: Medium - -### 验证策略 -- [具体验证步骤] - -## Phase 4: 确认 -**是否按此诊断进行修复?(Y/N)** - -## Phase 5: 修复验证(用户确认后) -- 修复内容: <具体修改> -- 双模型审查: <审查结果> -``` - -## 关键原则 - -1. **不假设,先验证** - 所有假设需要证据支持 -2. **并行诊断** - 充分利用双模型的不同视角 -3. **用户确认** - 修复前必须获得确认 -4. **交叉审查** - 修复后双模型验证 +1. **heredoc 语法** – 外部模型调用必须使用 heredoc +2. **使用后台进程 `&` + `TaskOutput` 获取结果** +3. **必须等待所有模型返回完整结果后才能进入下一阶段**,禁止跳过或提前继续 +4. **用户确认** – 修复前必须获得确认 +5. **信任规则** – 后端问题以 Codex 为准,前端问题以 Gemini 为准 diff --git a/templates/commands/dev.md b/templates/commands/dev.md deleted file mode 100644 index 094d98d..0000000 --- a/templates/commands/dev.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -description: 完整6阶段多模型协作工作流(Prompt增强 → 上下文检索 → 多模型分析 → 原型生成 → 代码实施 → 审计交付) ---- - -## 用法 -`/dev <功能描述>` - -## 上下文 -- 要实现的功能: $ARGUMENTS -- 此命令触发完整的 6 阶段多模型协作工作流 - -## 你的角色 -你是**编排者**,协调三模型协作系统。你指挥: -1. **ace-tool MCP** – 代码库检索 (`search_context`) 和 Prompt 增强 (`enhance_prompt`) -2. **Codex** – 后端逻辑、算法、调试专家 -3. **Gemini** – 前端 UI/UX、视觉设计专家 -4. **Claude (子进程)** – 全栈整合、契约设计、跨层问题 -5. **Claude (自己)** – 编排、重构、最终交付 - -## 流程 - -### 阶段 0: Prompt 增强 -1. **Prompt 增强**(调用 `mcp__ace-tool__enhance_prompt`): - - 参数: - - `prompt`(必需):用户的原始需求 - - `conversation_history`(可选):最近 5-10 轮对话历史 - - `project_root_path`(可选):当前项目根目录绝对路径 - - 如果工具不可用,直接使用原始 prompt - -2. 向用户展示原始和增强后的 prompt: - -``` -📝 原始需求: -<原始需求> - -✨ 增强后需求: -<增强后需求> - -🔧 模型配置: -- 前端模型: {{FRONTEND_MODELS}} -- 后端模型: {{BACKEND_MODELS}} -- 协作模式: {{ROUTING_MODE}} - ---- -**使用增强后的需求继续?(Y/N)** -``` - -3. **强制停止**: 等待用户确认 - - 如果 Y: 后续阶段使用增强后的 prompt - - 如果 N: 使用原始 prompt 或要求修改 - -### 阶段 1: 上下文检索 -1. **代码库检索**(调用 `mcp__ace-tool__search_context`): - - 参数: - - `project_root_path`(必需):项目根目录的绝对路径 - - `query`(必需):增强后的需求描述(自然语言) -2. 识别所有相关文件、类、函数和依赖 -3. 如需求仍不清晰,提出澄清问题 - -### 阶段 2: 多模型分析 - -**并行调用 codex 和 gemini 进行分析**(使用 `run_in_background: true`): - -1. **Codex 分析**:`~/.claude/.ccg/prompts/codex/analyzer.md` - - 输出:`Structured analysis/diagnostic report` - -2. **Gemini 分析**:`~/.claude/.ccg/prompts/gemini/analyzer.md` - - 输出:`Structured analysis/diagnostic report` - -调用示例: -```bash -codeagent-wrapper --backend codex - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/codex/analyzer.md - -分析需求: {{增强后的需求}} -Context: {{从 MCP 获取的代码上下文}} - -OUTPUT: Structured analysis/diagnostic report. -EOF - -codeagent-wrapper --backend gemini - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/gemini/analyzer.md - -分析需求: {{增强后的需求}} -Context: {{从 MCP 获取的代码上下文}} - -OUTPUT: Structured analysis/diagnostic report. -EOF -``` - -使用 `TaskOutput` 获取 2 个模型的分析结果,交叉验证后综合方案。 - -**强制停止**: 询问用户 **"是否继续执行此方案?(Y/N)"** 并等待确认 - -### 阶段 3: 原型生成 - -**并行调用所有配置的模型生成原型**(使用 `run_in_background: true`): - -1. **后端模型**:遍历 {{BACKEND_MODELS}} 中的每个模型生成后端原型 - - 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/architect.md` - - 输出:`Unified Diff Patch ONLY` - -2. **前端模型**:遍历 {{FRONTEND_MODELS}} 中的每个模型生成前端原型 - - **优先使用 frontend.md**:如果模型有 `~/.claude/.ccg/prompts/<模型名>/frontend.md`,使用该文件 - - **降级使用 architect.md**:如果没有 frontend.md,使用 `~/.claude/.ccg/prompts/<模型名>/architect.md` - - 输出:`Unified Diff Patch ONLY` - -**总共并行调用次数**: {{BACKEND_MODELS}} 长度 + {{FRONTEND_MODELS}} 长度(例如:2个后端模型 + 2个前端模型 = 4次) - -调用示例: -```bash -# 遍历后端模型生成原型 -for model in $(echo '{{BACKEND_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/architect.md - -生成后端原型: {{功能需求}} -Context: {{相关代码}} - -OUTPUT: Unified Diff Patch ONLY. -EOF -done -``` - -使用 `TaskOutput` 收集所有模型的原型结果。 - -### 阶段 4: 代码实施 -1. 将所有模型的原型视为"脏原型" – 仅作参考 -2. **交叉验证所有模型结果,集各家所长**: - - 分析每个模型的优势和不足 - - 选择最佳实现方案 - - 综合多个模型的创新点 -3. 重构为干净的生产级代码 -4. 验证变更不会引入副作用 - -### 阶段 5: 审计与交付 - -**并行调用所有配置的审查模型**(使用 `run_in_background: true`): - -遍历 {{REVIEW_MODELS}} 中的每个模型进行代码审查: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/reviewer.md` -- 输出:`Review comments only` - -**总共并行调用次数**: {{REVIEW_MODELS}} 长度(例如:2个审查模型 = 2次) - -调用示例: -```bash -# 遍历审查模型列表(默认: codex, gemini) -for model in $(echo '{{REVIEW_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/reviewer.md - -审查代码: {{实施的代码变更}} -关注点: 安全性、性能、错误处理、可访问性、设计一致性 - -OUTPUT: Review comments only. No code modifications. -EOF -done -``` - -使用 `TaskOutput` 获取所有审查结果,整合各方反馈后修正并交付。 - -## 输出格式 -1. **增强后需求** – 优化后的 prompt (阶段 0) -2. **上下文摘要** – 识别的相关代码元素 -3. **实施方案** – 逐步执行方案 -4. **代码变更** – 生产级实现 -5. **审计报告** – 审查反馈和修正 -6. **后续步骤** – 部署或跟进操作 - -## 关键规则 -- 未经用户批准不得跳过任何阶段 -- **阶段 0 的 prompt 增强是强制性的** – 必须先展示增强后的 prompt -- 始终要求外部模型输出 Unified Diff Patch -- 外部模型对文件系统**零写入权限** -- 实时向用户报告当前阶段和下一阶段 -- 使用 HEREDOC 语法 (`<<'EOF'`) 避免 shell 转义问题 -- **三模型并行调用使用 `run_in_background: true`** 避免阻塞 -- **三模型结果需交叉验证,集各家所长** diff --git a/templates/commands/feat.md b/templates/commands/feat.md index e48f4bf..31e8797 100644 --- a/templates/commands/feat.md +++ b/templates/commands/feat.md @@ -1,348 +1,127 @@ --- -name: ccg:feat -description: 🚀 智能功能开发 - 自动规划、设计、实施 -tools: Task, Read, Write, Bash, AskUserQuestion, Glob +description: '智能功能开发 - 自动识别输入类型,规划/讨论/实施全流程' --- -# CCG 智能功能开发 +# Feat - 智能功能开发 -智能识别用户输入类型,自动选择工作流: -- **需求规划**:需求分析 → 任务分解 → 生成计划文档 -- **讨论迭代**:基于现有计划调整优化 -- **执行实施**:按计划调用多模型实施开发 +$ARGUMENTS + +## 核心工作流程 + +### 1. 输入类型判断 + +**每次交互必须首先声明**:「我判断此次操作类型为:[具体类型]」 + +| 类型 | 关键词 | 动作 | +|------|--------|------| +| **需求规划** | 实现、开发、新增、添加、构建、设计 | → 步骤 2(完整规划) | +| **讨论迭代** | 调整、修改、优化、改进、包含计划文件路径 | → 读取现有计划 → 步骤 2.3 | +| **执行实施** | 开始实施、执行计划、按照计划、根据计划 | → 步骤 3(直接实施) | --- -## 执行流程 - -### 步骤 1:输入类型识别 - -分析用户输入,识别关键词: - -#### 1.1 需求规划模式(默认) -**关键词**:实现、开发、新增、添加、构建、需求、设计、规划 -**示例**:"实现用户登录功能"、"开发商品管理模块" -**执行**:→ 步骤 2(完整规划) - -#### 1.2 讨论迭代模式 -**关键词**:调整、修改、优化、改进、更新、重新规划、包含计划文件路径 -**示例**:"调整登录功能方案"、"优化 .claude/plan/登录功能.md" -**执行**:→ 读取现有计划 → 步骤 2.4(重新规划) - -#### 1.3 执行实施模式 -**关键词**:开始实施、执行计划、按照计划、根据计划 -**示例**:"开始实施登录功能"、"按照 .claude/plan/登录功能.md 开发" -**执行**:→ 步骤 3(直接实施) - ---- - -### 步骤 2:需求规划流程 +### 2. 需求规划流程 #### 2.1 上下文检索 -调用 mcp__ace-tool__search_context 检索相关代码: - -``` -mcp__ace-tool__search_context { - "query": "{{用户需求关键词}} + 相关代码实现、API、组件、数据模型、技术栈" -} -``` - -**期望结果**:现有代码位置、可复用组件、数据模型、API 结构、技术栈 - ---- +调用 `mcp__ace-tool__search_context` 检索相关代码、组件、技术栈。 #### 2.2 任务类型判断 -基于用户需求和检索结果: - | 任务类型 | 判断依据 | 调用流程 | |----------|----------|----------| | **前端** | 页面、组件、UI、样式、布局 | ui-ux-designer → planner | | **后端** | API、接口、数据库、逻辑、算法 | planner | | **全栈** | 同时包含前后端 | ui-ux-designer → planner | ---- +#### 2.3 调用 Agents -#### 2.3 调用 ui-ux-designer(前端/全栈) - -如果是前端或全栈任务: - -```bash -Task(subagent_type="general-purpose", description="调用 UI/UX 设计师") { - prompt: " +**前端/全栈任务**:先调用 `ui-ux-designer` agent +``` 执行 agent: ~/.claude/agents/ccg/ui-ux-designer.md - -项目上下文: {{MCP 检索结果}} -用户需求: {{原始需求}} -技术栈: {{从检索结果提取}} - -输出: UI/UX 设计方案(Markdown) -" -} +输入: 项目上下文 + 用户需求 + 技术栈 +输出: UI/UX 设计方案 ``` ---- - -#### 2.4 调用 planner - -```bash -Task(subagent_type="general-purpose", description="调用任务规划师") { - prompt: " +**所有任务**:调用 `planner` agent +``` 执行 agent: ~/.claude/agents/ccg/planner.md - -项目上下文: {{MCP 检索结果}} -{{如果有 UI/UX 设计方案,附加在此}} -用户需求: {{原始需求}} -技术栈: {{从检索结果提取}} - -输出: 生成功能规划文档并保存到 .claude/plan/{{功能名}}.md -" -} +输入: 项目上下文 + UI设计方案(如有) + 用户需求 +输出: 功能规划文档 ``` +#### 2.4 保存计划 + +**文件命名规则**: +- 首次规划:`.claude/plan/功能名.md` +- 迭代版本:`.claude/plan/功能名-1.md`、`.claude/plan/功能名-2.md`... + +#### 2.5 交互确认 + +规划完成后询问用户: +- **开始实施** → 步骤 3 +- **讨论调整** → 重新执行步骤 2.3 +- **重新规划** → 删除当前计划,重新执行步骤 2 +- **仅保存计划** → 退出 + --- -#### 2.5 计划版本控制 +### 3. 执行实施流程 -**首次规划**: -```bash -FEATURE_NAME="{{从需求提取的功能名}}" -PLAN_FILE=".claude/plan/${FEATURE_NAME}.md" +#### 3.1 读取计划 -if [ -f "$PLAN_FILE" ]; then - PLAN_FILE=".claude/plan/${FEATURE_NAME}-1.md" -fi -``` - -**讨论迭代**: -```bash -EXISTING_PLAN=$(find .claude/plan -name "*{{关键词}}*.md" | head -n 1) - -if [ -n "$EXISTING_PLAN" ]; then - BASE_NAME=$(basename "$EXISTING_PLAN" .md) - if [[ $BASE_NAME =~ -([0-9]+)$ ]]; then - VERSION=$((${BASH_REMATCH[1]} + 1)) - NEW_PLAN=".claude/plan/${BASE_NAME%-*}-${VERSION}.md" - else - NEW_PLAN=".claude/plan/${BASE_NAME}-1.md" - fi -fi -``` - ---- - -#### 2.6 交互确认 - -```bash -AskUserQuestion { - question: "功能规划已完成,请选择下一步操作:", - header: "下一步", - options: [ - { label: "开始实施(推荐)", description: "根据计划调用多模型开发" }, - { label: "讨论调整", description: "修改计划中的某些部分" }, - { label: "重新规划", description: "推翻当前方案重新开始" }, - { label: "仅保存计划", description: "暂不实施,稍后手动执行" } - ] -} -``` - -**处理逻辑**: -- 开始实施 → 步骤 3 -- 讨论调整 → 重新执行步骤 2.4 -- 重新规划 → 删除当前计划,重新执行步骤 2 -- 仅保存计划 → 退出 - ---- - -### 步骤 3:执行实施 - -#### 3.1 读取计划文档 - -```bash -if [[ "$USER_INPUT" =~ \.claude/plan/.*\.md ]]; then - PLAN_FILE="{{用户指定路径}}" -else - PLAN_FILE=$(ls -t .claude/plan/*.md | head -n 1) -fi - -PLAN_CONTENT=$(Read("$PLAN_FILE")) -``` - ---- +优先使用用户指定路径,否则读取最新的计划文件。 #### 3.2 任务类型分析 -从计划提取分类: - -```bash -FRONTEND_TASKS=$(echo "$PLAN_CONTENT" | grep -E "模块.*:前端" || echo "") -BACKEND_TASKS=$(echo "$PLAN_CONTENT" | grep -E "模块.*:后端" || echo "") - -if [ -n "$FRONTEND_TASKS" ] && [ -n "$BACKEND_TASKS" ]; then - TASK_TYPE="fullstack" -elif [ -n "$FRONTEND_TASKS" ]; then - TASK_TYPE="frontend" -elif [ -n "$BACKEND_TASKS" ]; then - TASK_TYPE="backend" -fi -``` - -如无法判断,询问用户选择任务类型。 - ---- +从计划提取任务分类:前端 / 后端 / 全栈 #### 3.3 多模型路由实施 -##### 前端任务 → {{FRONTEND_PRIMARY}} +**参考 `multi-model-collaboration` skill 调用外部模型** -```bash -if [ "$TASK_TYPE" == "frontend" ] || [ "$TASK_TYPE" == "fullstack" ]; then - FRONTEND_PLAN=$(echo "$PLAN_CONTENT" | sed -n '/模块.*:前端/,/模块.*:/p') +**前端任务 → Gemini**: +- 使用 `codeagent-wrapper --backend gemini` +- 角色提示词:`~/.claude/.ccg/prompts/gemini/frontend.md` +- 输出:前端组件代码 - codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - "$PROJECT_DIR" <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/frontend.md +**后端任务 → Codex**: +- 使用 `codeagent-wrapper --backend codex` +- 角色提示词:`~/.claude/.ccg/prompts/codex/architect.md` +- 输出:后端 API 代码 - -根据以下计划实施前端功能: -$FRONTEND_PLAN - -要求: -1. 创建/修改所有需要的组件文件 -2. 符合项目代码风格 -3. 实现响应式设计 -4. 添加 TypeScript 类型定义 -5. 处理 Loading/Success/Error 状态 -6. 遵循无障碍访问最佳实践 - -EOF - - GEMINI_SESSION=$(echo "$OUTPUT" | grep "SESSION_ID:" | awk '{print $2}') -fi -``` - -##### 后端任务 → {{BACKEND_PRIMARY}} - -```bash -if [ "$TASK_TYPE" == "backend" ] || [ "$TASK_TYPE" == "fullstack" ]; then - BACKEND_PLAN=$(echo "$PLAN_CONTENT" | sed -n '/模块.*:后端/,/模块.*:/p') - - codeagent-wrapper --backend {{BACKEND_PRIMARY}} - "$PROJECT_DIR" <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/architect.md - - -根据以下计划实施后端功能: -$BACKEND_PLAN - -要求: -1. 创建/修改所有 API 端点 -2. 实现数据验证(Zod/Joi) -3. 统一错误处理 -4. 添加中间件(认证、日志、CORS) -5. 编写数据库查询 -6. 确保代码可测试性 - -EOF - - CODEX_SESSION=$(echo "$OUTPUT" | grep "SESSION_ID:" | awk '{print $2}') -fi -``` - -##### 全栈任务 → 并行调用 - -```bash -if [ "$TASK_TYPE" == "fullstack" ]; then - { 前端任务 } & - { 后端任务 } & - wait -fi -``` - ---- +**全栈任务 → 并行调用**: +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): + - Codex 后端 + Gemini 前端同时运行 +2. 使用 `TaskOutput` 监控并获取结果 +3. **⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** #### 3.4 实施后验证 ```bash git status --short git diff --name-status - -AskUserQuestion { - question: "是否运行代码审查?", - options: [ - { label: "是,运行 /ccg:review", description: "双模型代码审查" }, - { label: "跳过,手动检查", description: "稍后自行审查代码" } - ] -} ``` -如果用户选择审查,调用 `/ccg:review`。 +询问用户是否运行代码审查(`/ccg:review`)。 --- -### 步骤 4:后续建议 +### 4. 关键执行原则 + +1. **强制响应要求**:每次交互必须首先说明判断的操作类型 +2. **文档一致性**:规划文档与实际执行保持同步 +3. **依赖关系管理**:前端任务必须确保 UI 设计完整性 +4. **多模型信任规则**: + - 前端以 Gemini 为准 + - 后端以 Codex 为准 +5. **用户沟通透明**:所有判断和动作都要明确告知用户 + +--- + +## 使用方法 ```bash -echo "✅ 功能开发完成!" -echo "" -echo "📋 后续步骤:" -echo " 1. 运行测试:npm run test" -echo " 2. 启动开发服务器:npm run dev" -echo " 3. 验证功能是否正常" -echo " 4. 运行 /ccg:commit 提交代码" -echo "" -echo "📂 计划文档:$PLAN_FILE" +/feat <功能描述> ``` - ---- - -## 命令参数 - -```bash -/ccg:feat --mode=plan "实现用户登录" # 显式指定规划模式 -/ccg:feat --mode=implement "path/to/plan" # 显式指定实施模式 -/ccg:feat --mode=iterate "path" "调整需求" # 显式指定迭代模式 -/ccg:feat --type=frontend "实现登录页面" # 指定任务类型 -/ccg:feat --type=backend "实现登录 API" -/ccg:feat --type=fullstack "实现完整登录" -``` - ---- - -## 使用示例 - -```bash -# 示例 1:完整流程 -/ccg:feat 实现用户登录功能 - -→ 系统识别:需求规划模式 -→ 检索上下文(MCP) -→ 判断任务类型:全栈 -→ 调用 ui-ux-designer -→ 调用 planner -→ 生成计划:.claude/plan/用户登录功能.md -→ 用户确认:开始实施 -→ 并行调用 Gemini(前端)+ Codex(后端) -→ 实施完成 -→ 可选:运行代码审查 - -# 示例 2:讨论迭代 -/ccg:feat 调整登录功能,增加"记住我"选项 - -→ 系统识别:讨论迭代模式 -→ 读取现有计划:.claude/plan/用户登录功能.md -→ 调用 planner 重新规划 -→ 生成新版本:.claude/plan/用户登录功能-1.md - -# 示例 3:直接实施 -/ccg:feat 按照 .claude/plan/用户登录功能.md 开始实施 - -→ 系统识别:执行实施模式 -→ 读取计划文档 -→ 分析任务类型:全栈 -→ 并行调用 Gemini + Codex -→ 实施完成 -``` - ---- - -现在开始智能功能开发! diff --git a/templates/commands/frontend.md b/templates/commands/frontend.md index 8e8873e..b4564d5 100644 --- a/templates/commands/frontend.md +++ b/templates/commands/frontend.md @@ -1,200 +1,129 @@ --- -description: 前端/UI/样式任务,自动路由到配置的前端模型进行原型生成和审计 +description: '前端专项工作流(研究→构思→计划→执行→优化→评审),Gemini主导' --- -## 用法 -`/frontend ` +# Frontend - 前端专项开发 + +## 使用方法 + +```bash +/frontend +``` ## 上下文 -- Frontend/UI task to implement: $ARGUMENTS -- This command routes to your configured frontend models. -- Default authority for CSS, React, Vue, and visual design. -## ⭐ v1.6.0 重大升级 +- 前端任务:$ARGUMENTS +- Gemini 主导,Codex 辅助参考 +- 适用:组件设计、响应式布局、UI动画、样式优化 -**从单模型调用升级为多模型并行工作流!** +## 你的角色 -### 新增功能 +你是**前端编排者**,协调多模型完成 UI/UX 任务(研究 → 构思 → 计划 → 执行 → 优化 → 评审),用中文协助用户。 -✅ **5阶段完整工作流**: -- Step 1: 上下文检索(MCP) -- Step 2: **多模型前端分析**(Gemini + Claude 并行) ← 新增 -- Step 3: **多模型原型生成**(所有前端模型并行) ← 增强 -- Step 4: 重构与实施(Claude 综合各模型优势) -- Step 5: **多模型审计交付**(Gemini + Claude 交叉验证) ← 新增 +**协作模型**: +- **Gemini** – 前端 UI/UX(**前端权威,可信赖**) +- **Codex** – 后端视角(**前端意见仅供参考**) +- **Claude (自己)** – 编排、计划、执行、交付 -✅ **交叉验证机制**: -- Gemini 提供视觉设计和 UI 创新优势 -- Claude 提供更好的可访问性和代码结构 -- 综合各模型优势,重构为生产级 UI 代码 +[沟通守则] -✅ **强制用户确认**: -- Step 2 分析完成后,会询问"是否继续执行此方案?(Y/N)" -- 避免盲目执行,确保用户对方案满意 - -### 与 /ccg:dev 的区别 - -| 特性 | /ccg:frontend | /ccg:dev | -|------|--------------|----------| -| **模型范围** | 仅前端模型(Gemini + Claude)| 全部模型(前端+后端)| -| **适用场景** | 前端专项任务 | 全栈功能开发 | -| **Prompt 增强** | ❌ 不包含 | ✅ Phase 0 | -| **工作流阶段** | 5 阶段 | 6 阶段(含 Prompt 增强)| -| **推荐用户** | 前端/UI 开发者 | 全栈开发者 | - -### 使用建议 - -- 🎯 **纯前端任务**:使用 `/ccg:frontend`(如:组件设计、响应式布局、UI 动画) -- 🎯 **全栈功能**:使用 `/ccg:dev`(如:用户登录功能,涉及前后端) -- 🎯 **需要 Prompt 增强**:使用 `/ccg:dev`(复杂需求,需先优化需求描述) +1. 响应以模式标签 `[模式:X]` 开始,初始为 `[模式:研究]` +2. 严格按 `研究 → 构思 → 计划 → 执行 → 优化 → 评审` 顺序流转 --- -## 你的角色 -You are the **Frontend Orchestrator** specializing in UI/UX implementation. You coordinate: -1. **ace-tool** – for retrieving existing frontend code and components -2. **Configured Frontend Models** – for generating CSS/React/Vue prototypes -3. **Claude (Self)** – for refactoring prototypes into production code +## 多模型调用语法 -## 流程 - -### Step 1: 上下文检索 -1. Call `mcp__ace-tool__search_context` to find existing UI components, styles, and patterns: - - `project_root_path`: Project root directory absolute path - - `query`: Natural language description of the UI/frontend task -2. Identify the design system, component library, and styling conventions in use -3. 如需求仍不清晰,提出澄清问题 - -### Step 2: 多模型前端分析 - -**并行调用所有配置的前端模型进行分析**(使用 `run_in_background: true`): - -遍历 {{FRONTEND_MODELS}} 中的每个模型进行前端分析: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/analyzer.md` -- 输出:`Structured analysis/diagnostic report` - -**总共并行调用次数**: {{FRONTEND_MODELS}} 长度(例如:配置 gemini + claude = 2次) - -调用示例: ```bash -# 遍历前端模型列表(假设配置了 gemini 和 claude) -for model in gemini claude; do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/analyzer.md +# Gemini 调用(前端主力) +~/.claude/bin/codeagent-wrapper --backend gemini - "$PWD" <<'EOF' +[角色提示词内容] - -分析前端需求: {{前端任务描述}} -Context: {{从 MCP 获取的组件和样式}} -关注点: -- 组件设计和复用性 -- UI/UX 交互流程 -- 响应式布局策略 -- 可访问性 (a11y) 要求 -- 性能优化(懒加载、代码分割) -- 设计系统一致性 - - -OUTPUT: Structured analysis/diagnostic report. +[任务内容] +EOF + +# Codex 调用(后端参考) +~/.claude/bin/codeagent-wrapper --backend codex - "$PWD" <<'EOF' +[任务内容] EOF -done ``` -使用 `TaskOutput` 获取所有模型的分析结果,交叉验证后综合方案。 +--- -**强制停止**: 询问用户 **"是否继续执行此方案?(Y/N)"** 并等待确认 +## 核心工作流 -### Step 3: 多模型原型生成 +### 🔍 阶段 1:研究 -**并行调用所有配置的前端模型生成原型**(使用 `run_in_background: true`): +`[模式:研究]` - 理解需求并收集上下文 -遍历 {{FRONTEND_MODELS}} 中的每个模型生成前端原型: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/frontend.md`(如无 frontend 角色,使用 architect) -- 输出:`Unified Diff Patch ONLY` +1. 检索现有组件、样式、设计系统 +2. 需求完整性评分(0-10 分):≥7 继续,<7 停止补充 -**总共并行调用次数**: {{FRONTEND_MODELS}} 长度(例如:配置 gemini + claude = 2次) +### 💡 阶段 2:构思 + +`[模式:构思]` - Gemini 主导分析 + +**调用示例**: -调用示例: ```bash -# 遍历前端模型生成原型 -for model in $(echo '{{FRONTEND_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/frontend.md +~/.claude/bin/codeagent-wrapper --backend gemini - "$PWD" <<'EOF' +你是前端分析专家,擅长 UI/UX、组件设计、响应式布局。 - -生成前端原型: {{前端任务描述}} -Context: {{相关组件和样式}} -实现要点: -- 遵循现有组件设计模式 -- 实现响应式布局 -- 确保可访问性 (ARIA 标签) -- 使用设计系统的 tokens -- 考虑性能优化 - +任务:分析以下前端需求,提供设计方案 +- 组件结构与状态管理 +- 响应式策略 +- 可访问性考虑 +- 性能优化建议 -OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications. +需求:[具体任务描述] EOF -done ``` -使用 `TaskOutput` 收集所有模型的原型结果。 +**⚠️ 等待 Gemini 返回后继续** -### Step 4: 重构与实施 -1. 将所有模型的原型视为"脏原型" – 仅作参考 -2. **交叉验证所有模型结果,集各家所长**: - - 分析每个模型的优势和不足 - - Gemini 通常在视觉设计和 UI 创新上更强 - - Claude 可能提供更好的可访问性和代码结构 - - 选择最佳实现方案或综合创新点 -3. 重构为干净的生产级代码 -4. 确保与现有组件的一致性 -5. 验证响应式布局和可访问性 +输出方案(至少 2 个),等待用户选择。 -### Step 5: 多模型审计交付 +### 📋 阶段 3:计划 -**并行调用所有配置的前端模型进行审计**(使用 `run_in_background: true`): +`[模式:计划]` - Gemini 主导规划 -遍历 {{FRONTEND_MODELS}} 中的每个模型进行代码审查: -- 每个模型使用对应的 `~/.claude/.ccg/prompts/<模型名>/reviewer.md` -- 输出:`Review comments only` +调用 Gemini(`architect.md`)→ 组件结构、UI流程、样式方案 -**总共并行调用次数**: {{FRONTEND_MODELS}} 长度(例如:配置 gemini + claude = 2次) +**⚠️ 等待 Gemini 返回后继续** -调用示例: -```bash -# 遍历前端模型列表进行审计 -for model in $(echo '{{FRONTEND_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/reviewer.md +Claude 综合规划,请求用户批准后存入 `.claude/plan/任务名.md` - -审查前端代码: {{实施的代码变更}} -关注点: -- 可访问性(WCAG 2.1 AA 标准) -- 响应式设计(移动端适配) -- 性能(首屏渲染、Lighthouse 分数) -- 设计一致性(颜色、字体、间距) -- 代码质量(组件复用、prop 类型) -- 浏览器兼容性 - +### ⚡ 阶段 4:执行 -OUTPUT: Review comments only. No code modifications. -EOF -done -``` +`[模式:执行]` - 代码开发 -使用 `TaskOutput` 收集所有模型的审计结果,交叉验证后提供综合反馈。 +- 严格按批准的计划实施 +- 遵循项目现有设计系统和代码规范 +- 确保响应式、可访问性 -**最终交付**: 根据审计反馈进行必要的调整,确保 UI 达到生产级质量。 +### 🚀 阶段 5:优化 -## 输出格式 -1. **Configuration** – 使用的模型和策略 ({{FRONTEND_MODELS}}) -2. **Component Analysis** – 现有组件模式和设计系统 -3. **Multi-Model Analysis** – 所有前端模型的分析报告(交叉验证) -4. **Multi-Model Prototypes** – 所有前端模型的原型(交叉验证) -5. **Refined Implementation** – 综合各模型优势的生产级 UI 代码 -6. **Multi-Model Audit** – 所有前端模型的审计反馈(交叉验证) +`[模式:优化]` - Gemini 主导审查 -## 注意事项 -- Gemini context limit: < 32k tokens -- Always request Unified Diff Patch format -- Use HEREDOC syntax (`<<'EOF'`) to avoid shell escaping issues +调用 Gemini(`reviewer.md`)→ 可访问性、响应式、性能、设计一致性 + +**⚠️ 等待 Gemini 返回后继续** + +整合审查意见,用户确认后执行优化。 + +### ✅ 阶段 6:评审 + +`[模式:评审]` - 最终评估 + +- 对照计划检查完成情况 +- 验证响应式和可访问性 +- 报告问题与建议 + +--- + +## 关键规则 + +1. **Gemini 前端意见可信赖** +2. **Codex 前端意见仅供参考** +3. 外部模型对文件系统**零写入权限** +4. Claude 负责所有代码写入和文件操作 diff --git a/templates/commands/init.md b/templates/commands/init.md index 1181626..6ef77cf 100644 --- a/templates/commands/init.md +++ b/templates/commands/init.md @@ -1,53 +1,117 @@ --- -description: 初始化项目 AI 上下文,生成/更新根级与模块级 CLAUDE.md 索引 -allowed-tools: Read(**), Write(CLAUDE.md, **/CLAUDE.md) -argument-hint: <项目摘要或名称> +description: '初始化项目 AI 上下文:生成根级与模块级 CLAUDE.md 索引' --- -## 用法 +# Init - 初始化项目 AI 上下文 -`/init-project <项目摘要或名称>` +以「根级简明 + 模块级详尽」策略生成项目 AI 上下文文档。 -## 目标 +## 使用方法 -以"根级简明 + 模块级详尽"的混合策略初始化项目 AI 上下文: +```bash +/init <项目摘要或名称> +``` -- 在仓库根生成/更新 `CLAUDE.md`(高层愿景、架构总览、模块索引、全局规范)。 -- 在识别的各模块目录生成/更新本地 `CLAUDE.md`(接口、依赖、入口、测试、关键文件等)。 -- ✨ **为了提升可读性,会在根 `CLAUDE.md` 中自动生成 Mermaid 结构图,并为每个模块 `CLAUDE.md` 添加导航面包屑**。 +## 上下文 -## 编排说明 +- 项目摘要:$ARGUMENTS +- 生成/更新根级与模块级 `CLAUDE.md` +- 自动生成 Mermaid 结构图和导航面包屑 -**步骤 1**:调用 `get-current-datetime` 子智能体获取当前时间戳。 +## 你的角色 -**步骤 2**:调用一次 `init-architect` 子智能体,输入: +你是**项目架构师**,负责扫描仓库并生成 AI 上下文文档: +- 根级 `CLAUDE.md`:高层愿景、架构总览、模块索引 +- 模块级 `CLAUDE.md`:接口、依赖、入口、测试、关键文件 -- `project_summary`: $ARGUMENTS -- `current_timestamp`: (来自步骤1的时间戳) +--- -## 执行策略(由 Agent 自适应决定,不需要用户传参) +## 执行工作流 -- **阶段 A:全仓清点(轻量)** - 快速统计文件与目录,识别模块根(package.json、pyproject.toml、go.mod、apps/_、packages/_、services/\* 等)。 -- **阶段 B:模块优先扫描(中等)** - 对每个模块做"入口/接口/依赖/测试/数据模型/质量工具"的定点读取与样本抽取。 -- **阶段 C:深度补捞(按需)** - 若仓库较小或模块规模较小,则扩大读取面;若较大,则对高风险/高价值路径分批追加扫描。 -- **覆盖率度量与可续跑** - 输出"已扫描文件数 / 估算总文件数、已覆盖模块占比、被忽略/跳过原因",并列出"建议下一步深挖的子路径"。重复运行 `/init-project` 时按上次索引做**增量更新**与**断点续扫**。 +### 🔍 阶段 A:全仓清点 -## 安全与边界 +`[模式:扫描]` -- 只读/写文档与索引,不改源代码。 -- 默认忽略常见生成物与二进制大文件。 -- 结果在主对话打印"摘要",全文写入仓库。 +1. 调用 `get-current-datetime` 子智能体获取当前时间戳 +2. 快速统计文件与目录 +3. 识别模块根: + - `package.json` / `pyproject.toml` / `go.mod` + - `apps/*` / `packages/*` / `services/*` -## 输出要求 +### 📦 阶段 B:模块优先扫描 -- 在主对话中打印"初始化结果摘要",包含: - - 根级 `CLAUDE.md` 是否创建/更新、主要栏目概览。 - - 识别的模块数量及其路径列表。 - - 每个模块 `CLAUDE.md` 的生成/更新情况。 - - ✨ **明确提及"已生成 Mermaid 结构图"和"已为 N 个模块添加导航面包屑"**。 - - 覆盖率与主要缺口。 - - 若未读全:说明"为何到此为止",并列出**推荐的下一步**(例如"建议优先补扫:packages/auth/src/controllers")。 +`[模式:分析]` + +对每个模块做定点读取: +- 入口文件 +- 接口定义 +- 依赖关系 +- 测试覆盖 +- 数据模型 +- 质量工具 + +### 🔬 阶段 C:深度补捞(按需) + +`[模式:深度]` + +- 仓库较小:扩大读取面 +- 仓库较大:对高价值路径分批追加扫描 + +### ✅ 阶段 D:生成文档 + +`[模式:执行]` + +1. 生成根级 `CLAUDE.md` + - 项目概述 + - 架构图(Mermaid) + - 模块索引 + - 全局规范 +2. 生成模块级 `CLAUDE.md` + - 导航面包屑 + - 模块职责 + - 关键文件 + - 接口说明 + +--- + +## 输出格式 + +```markdown +## 初始化结果摘要 + +### 根级文档 +- 状态:[创建/更新] +- 主要栏目:<列表> + +### 模块识别 +- 识别模块数:X +- 模块列表: + 1. <模块路径> + 2. ... + +### 覆盖率 +- 已扫描文件:X / Y +- 覆盖模块:X% +- 跳过原因:<如有> + +### 生成内容 +- ✅ Mermaid 结构图 +- ✅ N 个模块导航面包屑 + +### 推荐下一步 +- [ ] 补扫:<路径> +``` + +--- + +## 安全边界 + +1. **只读/写文档** – 不改源代码 +2. **忽略生成物** – 跳过 `node_modules`、`dist`、二进制文件 +3. **增量更新** – 重复运行时做断点续扫 + +## 关键规则 + +1. 调用 `init-architect` 子智能体执行扫描 +2. 结果在主对话打印摘要,全文写入仓库 +3. 输出覆盖率与建议下一步 diff --git a/templates/commands/optimize.md b/templates/commands/optimize.md index 6faac58..2becb28 100644 --- a/templates/commands/optimize.md +++ b/templates/commands/optimize.md @@ -1,98 +1,141 @@ --- -description: 多模型性能优化(Codex 后端优化 + Gemini 前端优化) +description: '多模型性能优化:Codex 后端优化 + Gemini 前端优化' --- -## 用法 -`/optimize <优化目标>` +# Optimize - 多模型性能优化 + +双模型并行分析性能瓶颈,按性价比排序优化建议。 + +## 多模型调用语法 + +**必须使用 heredoc 语法调用外部模型**: + +```bash +~/.claude/bin/codeagent-wrapper --backend - $PWD <<'EOF' +<任务内容> +EOF +``` + +> ⚠️ 禁止使用 `echo | codeagent-wrapper` 管道语法,会导致多行内容截断。 + +--- + +## 使用方法 + +```bash +/optimize <优化目标> +``` ## 上下文 -- 优化目标: $ARGUMENTS + +- 优化目标:$ARGUMENTS - Codex 专注后端性能(数据库、算法、缓存) - Gemini 专注前端性能(渲染、加载、交互) -## 流程 +## 你的角色 -### Phase 1: 性能基线分析 -1. 调用 `mcp__ace-tool__search_context` 检索目标代码: - - `project_root_path`: 项目根目录绝对路径 - - `query`: 需要优化的目标代码描述 +你是**性能工程师**,编排多模型优化流程: +- **Codex** – 后端性能优化(**后端权威**) +- **Gemini** – 前端性能优化(**前端权威**) +- **Claude (自己)** – 综合优化、实施变更 + +--- + +## 执行工作流 + +**优化目标**:$ARGUMENTS + +### 🔍 阶段 1:性能基线 + +`[模式:研究]` + +1. 调用 `mcp__ace-tool__search_context` 检索目标代码(如可用) 2. 识别性能关键路径 -3. 收集现有指标(如有): - - 后端: 响应时间、查询耗时、内存占用 - - 前端: LCP、FID、CLS、Bundle Size +3. 收集现有指标(如有) -### Phase 2: 并行性能分析 -**同时调用**(`run_in_background: true`): +### 🔬 阶段 2:并行性能分析 -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` +`[模式:分析]` +**并行调用两个模型**: + +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): ```bash -# Codex 后端性能分析 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/optimizer.md +# Codex:后端性能分析 +~/.claude/bin/codeagent-wrapper --backend codex - $PWD <<'EOF' & +[角色] 你是后端性能优化专家 - -性能优化: {{优化目标}} -Context: {{从 ace-tool 获取的相关代码和性能指标}} - +[任务] 分析以下代码的后端性能问题: +$ARGUMENTS -OUTPUT: Analysis report + Unified Diff Patch for optimizations. +[输出格式] +1. 性能瓶颈列表(按严重程度排序) +2. 每个问题的优化方案(含代码 Diff) +3. 预期收益评估 +EOF + +# Gemini:前端性能分析 +~/.claude/bin/codeagent-wrapper --backend gemini - $PWD <<'EOF' & +[角色] 你是前端性能优化专家 + +[任务] 分析以下代码的前端性能问题: +$ARGUMENTS + +[输出格式] +1. Core Web Vitals 问题列表 +2. 每个问题的优化方案(含代码 Diff) +3. 预期收益评估 EOF ``` +2. 使用 `TaskOutput` 监控并获取 2 个模型的分析结果。 -```bash -# Gemini 前端性能分析 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/optimizer.md +**⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** - -性能优化: {{优化目标}} -Context: {{从 ace-tool 获取的相关代码和性能指标}} - +### 🔀 阶段 3:优化整合 -OUTPUT: Analysis report + Unified Diff Patch for optimizations. -EOF -``` +`[模式:计划]` -- **Codex** + `optimizer` 角色 → 后端性能分析 -- **Gemini** + `optimizer` 角色 → 前端性能分析 +1. 收集双模型分析结果 +2. **优先级排序**:按 `影响程度 × 实施难度⁻¹` 计算性价比 +3. 请求用户确认优化方案 -### Phase 3: 优化整合 -1. 收集双模型分析(`TaskOutput`) -2. **优先级排序**:按影响程度 × 实施难度 计算性价比 -3. Claude 重构优化代码 +### ⚡ 阶段 4:实施优化 -### Phase 4: 实施优化 -1. 按优先级实施 -2. 确保不破坏现有功能 -3. 添加必要的性能监控 +`[模式:执行]` -### Phase 5: 验证 -1. 运行性能测试(如有) -2. 对比优化前后指标 -3. 双模型审查优化效果 +用户确认后按优先级实施,确保不破坏现有功能。 + +### ✅ 阶段 5:验证 + +`[模式:评审]` + +运行测试验证功能,对比优化前后指标。 + +--- ## 性能指标参考 -### 后端 -| 指标 | 良好 | 需优化 | 严重 | -|------|------|--------|------| -| API 响应 | <100ms | 100-500ms | >500ms | -| 数据库查询 | <50ms | 50-200ms | >200ms | - -### 前端 (Core Web Vitals) -| 指标 | 良好 | 需改进 | 差 | -|------|------|--------|-----| -| LCP | <2.5s | 2.5-4s | >4s | -| FID | <100ms | 100-300ms | >300ms | -| CLS | <0.1 | 0.1-0.25 | >0.25 | +| 类型 | 指标 | 良好 | 需优化 | +|------|------|------|--------| +| 后端 | API 响应 | <100ms | >500ms | +| 后端 | 数据库查询 | <50ms | >200ms | +| 前端 | LCP | <2.5s | >4s | +| 前端 | FID | <100ms | >300ms | +| 前端 | CLS | <0.1 | >0.25 | ## 常见优化模式 -**后端**: N+1 查询→批量加载、缺少索引→复合索引、重复计算→缓存、同步阻塞→异步 -**前端**: 大 Bundle→代码分割、频繁重渲染→memo、大列表→虚拟滚动、未优化图片→WebP/懒加载 -## 关键原则 -1. **先测量后优化** - 没有数据不盲目优化 -2. **性价比优先** - 高影响 + 低难度优先 -3. **不破坏功能** - 优化不能引入 bug -4. **可观测性** - 添加监控便于持续优化 +**后端**:N+1→批量加载、缺索引→复合索引、重复计算→缓存、同步→异步 + +**前端**:大Bundle→代码分割、频繁重渲染→memo、大列表→虚拟滚动、未优化图片→WebP + +--- + +## 关键规则 + +1. **先测量后优化** – 没有数据不盲目优化 +2. **性价比优先** – 高影响 + 低难度优先 +3. **不破坏功能** – 优化不能引入 bug +4. **信任规则** – 后端以 Codex 为准,前端以 Gemini 为准 +5. **必须等待所有模型返回** – 禁止提前进入下一步 diff --git a/templates/commands/review.md b/templates/commands/review.md index 930911f..d23f17c 100644 --- a/templates/commands/review.md +++ b/templates/commands/review.md @@ -1,89 +1,134 @@ --- -description: 多模型代码审查(并行执行),无参数时自动审查 git diff +description: '多模型代码审查:无参数时自动审查 git diff,双模型交叉验证' --- -## 用法 -`/review [CODE_OR_DESCRIPTION]` +# Review - 多模型代码审查 -## 上下文 -- Arguments: $ARGUMENTS -- This command triggers multi-model code review based on your configuration. -- Configured models review simultaneously for comprehensive feedback. +双模型并行审查,交叉验证综合反馈。无参数时自动审查当前 git 变更。 -## 行为 -- **No arguments**: Automatically review current git changes (staged + unstaged) -- **With arguments**: Review specified code or description +## 多模型调用语法 -## 你的角色 -You are the **Code Review Coordinator** orchestrating multi-model review. You direct: -1. **ace-tool** – for retrieving code context -2. **Configured Review Models** – for comprehensive code review -3. **Claude (Self)** – for synthesizing feedback and recommendations +**⚠️ 必须使用 heredoc 语法调用外部模型**: -## 流程 - -### Step 1: 获取待审查代码 - -**If no arguments provided**, run git commands to get current changes: ```bash -# Get staged and unstaged changes +~/.claude/bin/codeagent-wrapper --backend - "$PWD" <<'EOF' +<任务内容> +EOF +``` + +--- + +## 使用方法 + +```bash +/review [代码或描述] +``` + +- **无参数**:自动审查 `git diff HEAD` +- **有参数**:审查指定代码或描述 + +--- + +## 执行工作流 + +### 🔍 阶段 1:获取待审查代码 + +`[模式:研究]` + +**无参数时**: +```bash git diff HEAD git status --short ``` -**If arguments provided**, use the specified code/description. +**有参数时**:使用指定的代码/描述 -Then call `mcp__ace-tool__search_context` to get related context: - - `project_root_path`: Project root directory absolute path - - `query`: Description of code/files to review +调用 `mcp__ace-tool__search_context` 获取相关上下文。 -### Step 2: 并行审查 +### 🔬 阶段 2:并行审查 -**并行调用所有配置的审查模型**(使用 `run_in_background: true`): +`[模式:审查]` -遍历 {{REVIEW_MODELS}} 中的每个模型进行代码审查: +**并行调用两个模型**: +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): ```bash -# 遍历审查模型列表(默认: codex, gemini) -for model in $(echo '{{REVIEW_MODELS}}' | jq -r '.[]'); do - codeagent-wrapper --backend $model - $PROJECT_DIR <<'EOF' & -ROLE_FILE: ~/.claude/.ccg/prompts/$model/reviewer.md +# Codex 后端审查 +~/.claude/bin/codeagent-wrapper --backend codex - "$PWD" <<'EOF' & +[角色] 后端代码审查专家 +[任务] 审查以下代码变更 - -审查代码: {{待审查的代码变更}} -关注点: 安全性、性能、错误处理、可访问性、响应式设计、设计一致性 - +## 审查重点 +- 安全性:注入、认证、授权 +- 性能:N+1 查询、缓存、复杂度 +- 错误处理:异常捕获、边界条件 +- 可维护性:命名、结构、文档 -OUTPUT: Review comments only. No code modifications. -EOF -done -wait # 等待所有后台任务完成 -``` - -### Step 3: 综合反馈 -使用 `TaskOutput` 获取所有任务的结果,然后: -1. Collect feedback from all configured models -2. Categorize by severity (Critical, Major, Minor, Suggestion) -3. Remove duplicate concerns -4. Cross-validate findings across models -5. Prioritize actionable items - -### Step 4: 呈现审查结果 -Provide unified review report to user with recommendations. +## 待审查代码 +<粘贴 git diff 内容> ## 输出格式 -1. **Configuration** – models used for review -2. **Review Summary** – overall assessment -3. **Critical Issues** – must fix before merge -4. **Major Issues** – should fix -5. **Minor Issues** – nice to fix -6. **Suggestions** – optional improvements -7. **Recommended Actions** – prioritized fix list +按 Critical/Major/Minor/Suggestion 分类列出问题 +EOF -## 注意事项 -- **审查模型已在安装时注入**: {{REVIEW_MODELS}} -- **No arguments** = auto-review git changes (`git diff HEAD`) -- **With arguments** = review specified content -- **Use `run_in_background: true` for parallel execution** to avoid blocking -- 多模型结果交叉验证,综合反馈 -- Use HEREDOC syntax (`<<'EOF'`) to avoid shell escaping issues +# Gemini 前端审查 +~/.claude/bin/codeagent-wrapper --backend gemini - "$PWD" <<'EOF' & +[角色] 前端代码审查专家 +[任务] 审查以下代码变更 + +## 审查重点 +- 可访问性:ARIA、键盘导航、色彩对比 +- 响应式:移动端适配、断点 +- 设计一致性:组件复用、样式规范 +- 用户体验:加载状态、错误提示 + +## 待审查代码 +<粘贴 git diff 内容> + +## 输出格式 +按 Critical/Major/Minor/Suggestion 分类列出问题 +EOF +``` +2. 使用 `TaskOutput` 监控并获取 2 个模型的审查结果。 + +**⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** + +### 🔀 阶段 3:综合反馈 + +`[模式:综合]` + +1. 收集双方审查结果 +2. 按严重程度分类:Critical / Major / Minor / Suggestion +3. 去重合并 + 交叉验证 + +### 📊 阶段 4:呈现审查结果 + +`[模式:总结]` + +```markdown +## 📋 代码审查报告 + +### 审查范围 +- 变更文件:<数量> | 代码行数:+X / -Y + +### 关键问题 (Critical) +> 必须修复才能合并 +1. <问题描述> - [Codex/Gemini] + +### 主要问题 (Major) / 次要问题 (Minor) / 建议 (Suggestions) +... + +### 总体评价 +- 代码质量:[优秀/良好/需改进] +- 是否可合并:[是/否/需修复后] +``` + +--- + +## 关键规则 + +1. **无参数 = 审查 git diff** – 自动获取当前变更 +2. **heredoc 语法** – 必须使用 `<<'EOF'` 传递多行任务 +3. **双模型交叉验证** – 后端问题以 Codex 为准,前端问题以 Gemini 为准 +4. **必须等待所有模型返回** – 禁止提前进入下一步 diff --git a/templates/commands/rollback.md b/templates/commands/rollback.md index bb05b96..1e1265d 100644 --- a/templates/commands/rollback.md +++ b/templates/commands/rollback.md @@ -1,90 +1,116 @@ --- -description: 交互式回滚 Git 分支到历史版本;列分支、列版本、二次确认后执行 reset / revert -allowed-tools: Read(**), Exec(git fetch, git branch, git tag, git log, git reflog, git checkout, git reset, git revert, git switch), Write() -argument-hint: [--branch ] [--target ] [--mode reset|revert] [--depth ] [--dry-run] [--yes] -# examples: -# - /git-rollback # 全交互模式,dry‑run -# - /git-rollback --branch dev # 直接选 dev,其他交互 -# - /git-rollback --branch dev --target v1.2.0 --mode reset --yes +description: '交互式 Git 回滚:安全回滚分支到历史版本,支持 reset/revert 模式' --- -# Claude Command: Git Rollback +# Rollback - 交互式 Git 回滚 -**目的**:安全、可视地将指定分支回滚到旧版本。 -默认处于 **只读预览 (`--dry-run`)**;真正执行需加 `--yes` 或在交互中确认。 +安全地将分支回滚到指定历史版本,默认 dry-run 模式。 ---- - -## Usage +## 使用方法 ```bash -# 纯交互:列出分支 → 选分支 → 列最近 20 个版本 → 选目标 → 选择 reset 或 revert → 二次确认 -/git-rollback - -# 指定分支,其他交互 -/git-rollback --branch feature/calculator - -# 指定分支与目标 commit,并用 hard‑reset 一键执行(危险) -/git-rollback --branch main --target 1a2b3c4d --mode reset --yes - -# 只想生成 revert 提交(非破坏式回滚),预览即可 -/git-rollback --branch release/v2.1 --target v2.0.5 --mode revert --dry-run +/rollback [options] ``` -### Options +## 选项 -| 选项 | 说明 | -| ---------------------- | ---------------------------------------------------------------------------------- | -| `--branch ` | 要回滚的分支;缺省时交互选择。 | -| `--target ` | 目标版本(commit Hash、Tag、reflog 引用都行);缺省时交互选择近 `--depth` 条记录。 | -| `--mode reset\|revert` | `reset`:硬回滚历史;`revert`:生成反向提交保持历史完整。默认询问。 | -| `--depth ` | 在交互模式下列出最近 n 个版本(默认 20)。 | -| `--dry-run` | **默认开启**,只预览即将执行的命令。 | -| `--yes` | 跳过所有确认直接执行,适合 CI/CD 脚本。 | +| 选项 | 说明 | +|------|------| +| `--branch ` | 要回滚的分支 | +| `--target ` | 目标版本(commit/tag/reflog) | +| `--mode reset\|revert` | 回滚模式 | +| `--depth ` | 列出最近 n 个版本(默认 20) | +| `--dry-run` | 只预览,不执行(**默认**) | +| `--yes` | 跳过确认直接执行 | --- -## 交互流程 +## 执行工作流 -1. **同步远端** → `git fetch --all --prune` -2. **列分支** → `git branch -a`(本地+远端,过滤受保护分支) -3. **选分支** → 用户输入或传参 -4. **列版本** → `git log --oneline -n ` + `git tag --merged` + `git reflog -n ` -5. **选目标** → 用户输入 commit hash / tag -6. **选模式** → `reset` 或 `revert` -7. **最终确认** (除非 `--yes`) -8. **执行回滚** - - `reset`:`git switch && git reset --hard ` - - `revert`:`git switch && git revert --no-edit ..HEAD` -9. **推送建议** → 提示是否 `git push --force-with-lease`(reset)或普通 `git push`(revert) +### 🔍 阶段 1:同步远端 + +`[模式:准备]` + +```bash +git fetch --all --prune +``` + +### 📋 阶段 2:选择分支 + +`[模式:选择]` + +1. 列出本地 + 远端分支 +2. 过滤受保护分支 +3. 用户选择或使用 `--branch` 参数 + +### 📜 阶段 3:选择版本 + +`[模式:选择]` + +1. 显示最近 N 个版本(`git log --oneline`) +2. 显示相关 tags(`git tag --merged`) +3. 用户选择或使用 `--target` 参数 + +### ⚙️ 阶段 4:选择模式 + +`[模式:决策]` + +| 模式 | 说明 | 推送方式 | +|------|------|----------| +| `reset` | 硬回滚,改变历史 | `--force-with-lease` | +| `revert` | 生成反向提交,保留历史 | 普通 push | + +### ⛔ 阶段 5:最终确认 + +`[模式:确认]` + +显示即将执行的命令,等待用户确认(除非 `--yes`)。 + +### ✅ 阶段 6:执行回滚 + +`[模式:执行]` + +**reset 模式**: +```bash +git switch +git reset --hard +``` + +**revert 模式**: +```bash +git switch +git revert --no-edit ..HEAD +``` --- ## 安全护栏 -- **备份**:执行前自动在 reflog 中记录当前 HEAD,可用 `git switch -c backup/` 恢复。 -- **保护分支**:如检测到 `main` / `master` / `production` 等受保护分支且开启 `reset` 模式,将要求额外确认。 -- **--dry-run 默认开启**:防止误操作。 -- **--force 禁止**:不提供 `--force`;如需强推,请手动输入 `git push --force-with-lease`。 +1. **备份**:执行前自动记录当前 HEAD 到 reflog +2. **保护分支**:`main`/`master`/`production` 需额外确认 +3. **dry-run 默认**:防止误操作 +4. **禁止 --force**:如需强推,手动执行 --- -## 适用场景示例 +## 示例 -| 场景 | 调用示例 | -| ----------------------------------------------- | ---------------------------------------------------------------- | -| 热修补丁上线后发现 bug,需要回到 Tag `v1.2.0` | `/git-rollback --branch release/v1 --target v1.2.0 --mode reset` | -| 运维同事误推了 debug 日志提交,需要生成反向提交 | `/git-rollback --branch main --target 3f2e7c9 --mode revert` | -| 调研历史 bug,引导新人浏览分支历史 | `/git-rollback` (全交互,dry‑run) | +```bash +# 全交互模式(dry-run) +/rollback ---- +# 指定分支 +/rollback --branch dev -## 注意 +# 完整指定,一键执行 +/rollback --branch main --target v1.2.0 --mode reset --yes -1. **reset vs revert** - - **reset** 会改变历史,需要强推并可能影响其他协作者,谨慎使用。 - - **revert** 更安全,生成新提交保留历史,但会增加一次记录。 -2. **嵌入式仓库** 常有大体积二进制文件;回滚前请确保 LFS/子模块状态一致。 -3. 若仓库启用了 CI 强制校验,回滚后可能自动触发流水线;确认管控策略以免误部署旧版本。 +# 生成反向提交 +/rollback --branch release/v2.1 --target v2.0.5 --mode revert +``` ---- +## 注意事项 + +- **reset vs revert**:reset 改变历史,需强推;revert 更安全 +- **LFS/子模块**:回滚前确保状态一致 +- **CI 触发**:回滚后可能自动触发流水线 diff --git a/templates/commands/test.md b/templates/commands/test.md index d837aee..9d68fcc 100644 --- a/templates/commands/test.md +++ b/templates/commands/test.md @@ -1,83 +1,148 @@ --- -description: 多模型测试生成(Codex 后端测试 + Gemini 前端测试) +description: '多模型测试生成:智能路由 Codex 后端测试 / Gemini 前端测试' --- -## 用法 -`/test <测试目标>` +# Test - 多模型测试生成 + +根据代码类型智能路由,生成高质量测试用例。 + +## 多模型调用语法 + +**必须使用 heredoc 语法调用 codeagent-wrapper**: + +```bash +~/.claude/bin/codeagent-wrapper --backend - [工作目录] <<'EOF' +<任务内容> +EOF +``` + +## 使用方法 + +```bash +/test <测试目标> +``` ## 上下文 -- 测试目标: $ARGUMENTS -- Codex 生成后端测试,Gemini 生成前端测试 -## 流程 +- 测试目标:$ARGUMENTS +- 智能路由:后端 → Codex,前端 → Gemini,全栈 → 并行 +- 遵循项目现有测试框架和风格 -### Phase 1: 测试分析 -1. 调用 `mcp__ace-tool__search_context` 检索: - - `project_root_path`: 项目根目录绝对路径 - - `query`: 需要测试的代码/功能描述 - - 目标代码的完整实现 - - 现有测试文件和测试框架 - - 项目测试配置(jest.config, pytest.ini 等) -2. 识别代码类型:前端组件 / 后端逻辑 / 全栈 -3. 评估当前测试覆盖率和缺口 +## 你的角色 + +你是**测试工程师**,编排测试生成流程: +- **Codex** – 后端测试生成(**后端权威**) +- **Gemini** – 前端测试生成(**前端权威**) +- **Claude (自己)** – 整合测试、验证运行 + +--- + +## 执行工作流 + +**测试目标**:$ARGUMENTS + +### 🔍 阶段 1:测试分析 + +`[模式:研究]` + +1. 检索目标代码的完整实现 +2. 查找现有测试文件和测试框架配置 +3. 识别代码类型:[后端/前端/全栈] +4. 评估当前测试覆盖率和缺口 + +### 🔬 阶段 2:智能路由测试生成 + +`[模式:生成]` -### Phase 2: 智能路由测试生成 | 代码类型 | 路由 | 角色 | |---------|------|------| -| 后端 | Codex | `tester` | -| 前端 | Gemini | `tester` | +| 后端 | Codex | `tester.md` | +| 前端 | Gemini | `tester.md` | | 全栈 | 并行执行 | 两者 | -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` +**全栈代码并行调用**: +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): ```bash -# Codex 后端测试生成 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/tester.md +# Codex 后端测试调用 +~/.claude/bin/codeagent-wrapper --backend codex - $PWD <<'EOF' & +你是后端测试专家,角色提示词见 ~/.claude/.ccg/prompts/codex/tester.md - -生成测试: {{需要测试的代码}} -Context: {{现有测试和测试框架配置}} - +任务:为以下代码生成单元测试 +<代码内容> -OUTPUT: Unified Diff Patch for test files ONLY. +要求: +1. 使用项目现有测试框架 +2. 覆盖正常路径、边界条件、异常处理 +3. 输出完整测试代码 +EOF + +# Gemini 前端测试调用 +~/.claude/bin/codeagent-wrapper --backend gemini - $PWD <<'EOF' & +你是前端测试专家,角色提示词见 ~/.claude/.ccg/prompts/gemini/tester.md + +任务:为以下组件生成测试 +<组件代码> + +要求: +1. 使用项目现有测试框架 +2. 测试渲染、交互、状态变化 +3. 输出完整测试代码 EOF ``` +2. 使用 `TaskOutput` 监控并获取 2 个模型的测试代码。 -```bash -# Gemini 前端测试生成 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/tester.md +**⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** - -生成测试: {{需要测试的代码}} -Context: {{现有测试和测试框架配置}} - +### 🔀 阶段 3:测试整合 -OUTPUT: Unified Diff Patch for test files ONLY. -EOF -``` +`[模式:计划]` -根据代码类型选择调用对应模型,全栈代码则并行调用(`run_in_background: true`)。 - -### Phase 3: 测试整合 -1. 收集模型输出(`TaskOutput`) +1. 收集模型输出 2. Claude 重构:统一风格、确保命名一致、优化结构、移除冗余 -### Phase 4: 测试验证 -1. 运行生成的测试 -2. 检查通过率 +### ✅ 阶段 4:测试验证 + +`[模式:执行]` + +1. 创建测试文件 +2. 运行生成的测试 3. 如有失败,分析原因并修复 +--- + +## 输出格式 + +```markdown +## 🧪 测试生成:<测试目标> + +### 分析结果 +- 代码类型:[后端/前端/全栈] +- 测试框架:<检测到的框架> + +### 生成的测试 +- 测试文件:<文件路径> +- 测试用例数:<数量> + +### 运行结果 +- 通过:X / Y +- 失败:<如有,列出原因> +``` + ## 测试策略金字塔 + ``` /\ E2E (10%) /--\ Integration (20%) /----\ Unit (70%) ``` -## 关键原则 -1. **测试行为,不测试实现** - 关注输入输出 -2. **智能路由** - 后端测试用 Codex,前端测试用 Gemini -3. **复用现有模式** - 遵循项目已有的测试风格 -4. **覆盖优先级** - 先覆盖关键路径和高风险代码 +--- + +## 关键规则 + +1. **测试行为,不测试实现** – 关注输入输出 +2. **智能路由** – 后端测试用 Codex,前端测试用 Gemini +3. **复用现有模式** – 遵循项目已有的测试风格 +4. **必须等待所有模型返回** – 禁止提前进入下一步 diff --git a/templates/commands/think.md b/templates/commands/think.md deleted file mode 100644 index ff36aef..0000000 --- a/templates/commands/think.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -description: UltraThink 深度分析(双模型并行分析 + 综合见解) ---- - -## 用法 -`/think <分析主题>` - -## 上下文 -- 分析主题: $ARGUMENTS -- 使用双模型进行多角度深度分析 -- 适用于复杂架构决策、技术选型、问题探索 - -## 流程 - -### Phase 1: 上下文收集 -1. 调用 `mcp__ace-tool__search_context` 检索相关代码: - - `project_root_path`: 项目根目录绝对路径 - - `query`: 需要深度分析的问题描述 -2. 识别分析范围和关键组件 -3. 列出已知约束和假设 - -### Phase 2: 并行深度分析 -**同时调用**(`run_in_background: true`): - -**调用方式**: 使用 `Bash` 工具调用 `codeagent-wrapper` - -```bash -# Codex 后端/系统视角分析 -codeagent-wrapper --backend {{BACKEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{BACKEND_PRIMARY}}/analyzer.md - - -深度分析: {{问题或场景}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Structured analysis report with clear reasoning. -EOF -``` - -```bash -# Gemini 前端/用户视角分析 -codeagent-wrapper --backend {{FRONTEND_PRIMARY}} - $PROJECT_DIR <<'EOF' -ROLE_FILE: ~/.claude/.ccg/prompts/{{FRONTEND_PRIMARY}}/analyzer.md - - -深度分析: {{问题或场景}} -Context: {{从 ace-tool 获取的相关代码}} - - -OUTPUT: Structured analysis report with clear reasoning. -EOF -``` - -- **Codex** + `analyzer` 角色 → 后端/系统视角 -- **Gemini** + `analyzer` 角色 → 前端/用户视角 - -### Phase 3: UltraThink 综合 -1. 收集双模型分析报告(`TaskOutput`) -2. **交叉验证**: - - 一致观点(强信号) - - 分歧点(需要权衡) - - 互补见解 -3. **综合推理**:整合技术和用户视角,形成统一分析框架 - -### Phase 4: 输出结论 -``` -## 🧠 深度分析: <主题> - -### 一致观点(强信号) -1. <双方都认同的点> - -### 分歧点(需权衡) -| 议题 | Codex 观点 | Gemini 观点 | 建议 | -|------|------------|-------------|------| - -### 核心结论 -<1-2 句话总结> - -### 推荐方案 -**首选**: <方案> -- 理由 / 风险 / 缓解措施 - -### 行动计划 -1. [ ] <短期> -2. [ ] <中期> -3. [ ] <长期> -``` - -## 适用场景 -| 场景 | 示例 | -|------|------| -| 架构决策 | "评估微服务拆分方案" | -| 技术选型 | "比较 Redux vs Zustand" | -| 性能分析 | "分析页面加载慢的原因" | -| 重构评估 | "评估重构遗留模块的风险" | - -## 关键原则 -1. **不急于结论** - 充分收集和分析后再下结论 -2. **多视角思考** - 技术 + 用户 + 业务 -3. **量化权衡** - 尽可能用数据支撑判断 -4. **可执行导向** - 分析结果要能指导行动 diff --git a/templates/commands/workflow.md b/templates/commands/workflow.md new file mode 100644 index 0000000..2678230 --- /dev/null +++ b/templates/commands/workflow.md @@ -0,0 +1,198 @@ +--- +description: '多模型协作开发工作流(研究→构思→计划→执行→优化→评审),智能路由前端→Gemini、后端→Codex' +--- + +# Workflow - 多模型协作开发 + +使用质量把关、MCP 服务和多模型协作执行结构化开发工作流。 + +## 使用方法 + +```bash +/workflow <任务描述> +``` + +## 上下文 + +- 要开发的任务:$ARGUMENTS +- 带质量把关的结构化 6 阶段工作流 +- 多模型协作:Codex(后端)+ Gemini(前端)+ Claude(编排) +- MCP 服务集成(ace-tool)以增强功能 + +## 你的角色 + +你是**编排者**,协调多模型协作系统(研究 → 构思 → 计划 → 执行 → 优化 → 评审),用中文协助用户,面向专业程序员,交互应简洁专业,避免不必要解释。 + +**协作模型**: +- **ace-tool MCP** – 代码检索 + Prompt 增强 +- **Codex** – 后端逻辑、算法、调试(**后端权威,可信赖**) +- **Gemini** – 前端 UI/UX、视觉设计(**前端高手,后端意见仅供参考**) +- **Claude (自己)** – 编排、计划、执行、交付 + +--- + +--- + +## 沟通守则 + +1. 响应以模式标签 `[模式:X]` 开始,初始为 `[模式:研究]`。 +2. 核心工作流严格按 `研究 → 构思 → 计划 → 执行 → 优化 → 评审` 顺序流转。 +3. 每个阶段完成后必须请求用户确认。 +4. 评分低于 7 分或用户未批准时强制停止。 + +--- + +## 执行工作流 + +**任务描述**:$ARGUMENTS + +### 🔍 阶段 1:研究与分析 + +`[模式:研究]` - 理解需求并收集上下文: + +1. **Prompt 增强**:调用 `mcp__ace-tool__enhance_prompt` +2. **上下文检索**:调用 `mcp__ace-tool__search_context` +3. **需求完整性评分**(0-10 分): + - 目标明确性(0-3)、预期结果(0-3)、边界范围(0-2)、约束条件(0-2) + - ≥7 分:继续 | <7 分:⛔ 停止,提出补充问题 + +### 💡 阶段 2:方案构思 + +`[模式:构思]` - 多模型并行分析: + +**并行调用 Codex 和 Gemini 进行分析**: + +1. **Codex 分析**:`~/.claude/.ccg/prompts/codex/analyzer.md` +2. **Gemini 分析**:`~/.claude/.ccg/prompts/gemini/analyzer.md` + +**执行步骤**: +1. 在**同一个 Bash 调用**中启动两个后台进程(不加 wait,立即返回): +```bash +codeagent-wrapper --backend codex - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/codex/analyzer.md + +分析需求: <任务描述> +Context: <项目上下文> + +OUTPUT: 技术可行性、推荐方案、风险点 +EOF + +codeagent-wrapper --backend gemini - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/gemini/analyzer.md + +分析需求: <任务描述> +Context: <项目上下文> + +OUTPUT: UI可行性、推荐方案、用户体验 +EOF +``` +2. 使用 `TaskOutput` 监控并获取 2 个后台进程的输出结果 + +**⚠️ 强制规则:必须等待 TaskOutput 返回两个模型的完整结果后才能进入下一阶段,禁止跳过或提前继续!** + +**注意**:Gemini 可能不会在输出中直接显示 SESSION_ID。如需复用上下文,请查看输出中的 log 文件路径,运行 `grep "SESSION_ID" ` 获取。 + +综合两方分析,输出方案对比(至少 2 个方案),等待用户选择。 + +### 📋 阶段 3:详细规划 + +`[模式:计划]` - 多模型协作规划: + +**并行调用 Codex 和 Gemini 进行架构规划**(使用后台进程 `&`): + +1. **Codex 规划**:`~/.claude/.ccg/prompts/codex/architect.md` +2. **Gemini 规划**:`~/.claude/.ccg/prompts/gemini/architect.md` + +调用示例: +```bash +codeagent-wrapper --backend codex - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/codex/architect.md + +规划需求: <任务描述> +Context: <项目上下文> + +OUTPUT: 后端架构规划 +EOF + +codeagent-wrapper --backend gemini - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/gemini/architect.md + +规划需求: <任务描述> +Context: <项目上下文> + +OUTPUT: 前端架构规划 +EOF +``` + +使用 `TaskOutput` 获取 2 个模型的规划结果。 + +**⚠️ 强制规则:必须等待 Codex 和 Gemini 两个进程都返回完整结果后才能进入下一阶段,禁止跳过或提前继续!** + +**Claude 综合规划**: +- 采纳 Codex 的后端规划(**可信赖**) +- 采纳 Gemini 的前端规划(**可信赖**) +- Gemini 的后端建议**仅供参考,以 Codex 为准** +- 请求用户批准后存入 `.claude/plan/任务名.md` + +### ⚡ 阶段 4:实施 + +`[模式:执行]` - 代码开发: + +- 严格按批准的计划实施 +- 遵循项目现有代码规范 +- 在关键里程碑请求反馈 + +### 🚀 阶段 5:代码优化 + +`[模式:优化]` - 多模型并行审查: + +**并行调用 Codex 和 Gemini 进行代码审查**(使用后台进程 `&`): + +1. **Codex 审查**:`~/.claude/.ccg/prompts/codex/reviewer.md` +2. **Gemini 审查**:`~/.claude/.ccg/prompts/gemini/reviewer.md` + +调用示例: +```bash +codeagent-wrapper --backend codex - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/codex/reviewer.md + +审查代码: <实施的代码变更> +关注点: 安全性、性能、错误处理 + +OUTPUT: 审查意见 +EOF + +codeagent-wrapper --backend gemini - $PWD <<'EOF' & +ROLE_FILE: ~/.claude/.ccg/prompts/gemini/reviewer.md + +审查代码: <实施的代码变更> +关注点: 可访问性、设计一致性、用户体验 + +OUTPUT: 审查意见 +EOF +``` + +使用 `TaskOutput` 获取 2 个模型的审查结果。 + +**⚠️ 强制规则:必须等待 Codex 和 Gemini 两个进程都返回完整结果后才能进入下一阶段,禁止跳过或提前继续!** + +整合审查意见,提出优化建议,用户确认后执行。 + +### ✅ 阶段 6:质量审查 + +`[模式:评审]` - 最终评估: + +- 对照计划检查完成情况 +- 运行测试验证功能 +- 报告问题与建议 +- 请求最终用户确认 + +--- + +## 关键规则 + +1. 阶段顺序不可跳过(除非用户明确指令) +2. **多模型调用必须使用后台进程 `&` + `TaskOutput` 获取结果** +3. **必须等待所有模型返回完整结果后才能进入下一阶段**,禁止跳过或提前继续 +4. 外部模型对文件系统**零写入权限**,所有修改由 Claude 执行 +5. 评分 <7 分或用户未批准时**强制停止** diff --git a/templates/commands/worktree.md b/templates/commands/worktree.md index ac9af07..a99aa53 100644 --- a/templates/commands/worktree.md +++ b/templates/commands/worktree.md @@ -1,276 +1,128 @@ --- -description: 管理 Git worktree,在项目平级的 ../.ccg/项目名/ 目录下创建,支持智能默认、IDE 集成和内容迁移 -allowed-tools: Read(**), Exec(git worktree add, git worktree list, git worktree remove, git worktree prune, git branch, git checkout, git rev-parse, git stash, git cp, detect-ide, open-ide, which, command, basename, dirname) -argument-hint: [path] [-b ] [-o|--open] [--track] [--guess-remote] [--detach] [--checkout] [--lock] [--migrate-from ] [--migrate-stash] -# examples: -# - /git-worktree add feature-ui # 从 main/master 创建新分支 'feature-ui' -# - /git-worktree add feature-ui -o # 创建 worktree 并直接用 IDE 打开 -# - /git-worktree add hotfix -b fix/login -o # 创建新分支 'fix/login',路径为 'hotfix' -# - /git-worktree migrate feature-ui --from main # 将主分支未提交内容迁移到 feature-ui -# - /git-worktree migrate feature-ui --stash # 将当前 stash 迁移到 feature-ui +description: '管理 Git Worktree:在 ../.ccg/项目名/ 目录创建,支持 IDE 集成和内容迁移' --- -# Claude Command: Git Worktree +# Worktree - Git Worktree 管理 -管理 Git worktree,支持智能默认、IDE 集成和内容迁移,使用结构化的 `../.ccg/项目名/` 路径。 +在结构化目录管理 Git worktree,支持智能默认和 IDE 集成。 -直接执行命令并提供简洁结果。 - ---- - -## Usage +## 使用方法 ```bash -# 基本操作 -/git-worktree add # 从 main/master 创建名为 的新分支 -/git-worktree add -b # 创建指定名称的新分支 -/git-worktree add -o # 创建并直接用 IDE 打开 -/git-worktree list # 显示所有 worktree 状态 -/git-worktree remove # 删除指定的 worktree -/git-worktree prune # 清理无效 worktree 记录 - -# 内容迁移 -/git-worktree migrate --from # 迁移未提交内容 -/git-worktree migrate --stash # 迁移 stash 内容 +/worktree [options] ``` -### Options +## 子命令 -| 选项 | 说明 | -| ------------------ | -------------------------------------------- | -| `add []` | 在 `../.ccg/项目名/` 添加新的 worktree | -| `migrate ` | 迁移内容到指定 worktree | -| `list` | 列出所有 worktree 及其状态 | -| `remove ` | 删除指定路径的 worktree | -| `prune` | 清理无效的 worktree 引用 | -| `-b ` | 创建新分支并检出到 worktree | -| `-o, --open` | 创建成功后直接用 IDE 打开(跳过询问) | -| `--from ` | 指定迁移源路径(migrate 专用) | -| `--stash` | 迁移当前 stash 内容(migrate 专用) | -| `--track` | 设置新分支跟踪对应的远程分支 | -| `--guess-remote` | 自动猜测远程分支进行跟踪 | -| `--detach` | 创建分离 HEAD 的 worktree | -| `--checkout` | 创建后立即检出(默认行为) | -| `--lock` | 创建后锁定 worktree | +| 命令 | 说明 | +|------|------| +| `add ` | 创建新 worktree | +| `list` | 列出所有 worktree | +| `remove ` | 删除指定 worktree | +| `prune` | 清理无效引用 | +| `migrate ` | 迁移内容到目标 worktree | + +## 选项 + +| 选项 | 说明 | +|------|------| +| `-b ` | 创建新分支 | +| `-o, --open` | 创建后用 IDE 打开 | +| `--from ` | 迁移源路径 | +| `--stash` | 迁移 stash 内容 | +| `--track` | 跟踪远程分支 | +| `--detach` | 分离 HEAD | +| `--lock` | 锁定 worktree | --- -## What This Command Does +## 目录结构 -1. **环境检查** - - 通过 `git rev-parse --is-inside-work-tree` 验证 Git 仓库 - - 检测是否在主仓库或现有 worktree 中,进行智能路径计算 - -2. **智能路径管理** - - 使用 worktree 检测自动从主仓库路径计算项目名 - - 在结构化的 `../.ccg/项目名/` 目录创建 worktree - - 正确处理主仓库和 worktree 执行上下文 - -```bash -# worktree 检测的核心路径计算逻辑 -get_main_repo_path() { - local git_common_dir=$(git rev-parse --git-common-dir 2>/dev/null) - local current_toplevel=$(git rev-parse --show-toplevel 2>/dev/null) - - # 检测是否在 worktree 中 - if [[ "$git_common_dir" != "$current_toplevel/.git" ]]; then - # 在 worktree 中,从 git-common-dir 推导主仓库路径 - dirname "$git_common_dir" - else - # 在主仓库中 - echo "$current_toplevel" - fi -} - -MAIN_REPO_PATH=$(get_main_repo_path) -PROJECT_NAME=$(basename "$MAIN_REPO_PATH") -WORKTREE_BASE="$MAIN_REPO_PATH/../.ccg/$PROJECT_NAME" - -# 始终使用绝对路径防止嵌套问题 -ABSOLUTE_WORKTREE_PATH="$WORKTREE_BASE/" ``` - -**关键修复**: 在现有 worktree 内创建新 worktree 时,始终使用绝对路径以防止出现类似 `../.ccg/project/.ccg/project/path` 的路径嵌套问题。 - -3. **Worktree 操作** - - **add**: 使用智能分支/路径默认创建新 worktree - - **list**: 显示所有 worktree 的分支和状态 - - **remove**: 安全删除 worktree 并清理引用 - - **prune**: 清理孤立的 worktree 记录 - -4. **智能默认** - - **分支创建**: 未指定 `-b` 时,使用路径名创建新分支 - - **基础分支**: 新分支从 main/master 分支创建 - - **路径解析**: 未指定路径时使用分支名作为路径 - - **IDE 集成**: 自动检测并提示 IDE 打开 - -5. **内容迁移** - - 在 worktree 之间迁移未提交改动 - - 将 stash 内容应用到目标 worktree - - 安全检查防止冲突 - -6. **安全特性** - - **路径冲突防护**: 创建前检查目录是否已存在 - - **分支检出验证**: 确保分支未被其他地方使用 - - **绝对路径强制**: 防止在 worktree 内创建嵌套的 `.ccg` 目录 - - **删除时自动清理**: 同时清理目录和 git 引用 - - **清晰的状态报告**: 显示 worktree 位置和分支状态 - -7. **环境文件处理** - - **自动检测**: 扫描 `.gitignore` 文件中的环境变量文件模式 - - **智能复制**: 复制 `.gitignore` 中列出的 `.env` 和 `.env.*` 文件 - - **排除逻辑**: 跳过 `.env.example` 等模板文件 - - **权限保护**: 保持原始文件权限和时间戳 - - **用户反馈**: 提供已复制环境文件的清晰状态信息 - -```bash -# 环境文件复制实现 -copy_environment_files() { - local main_repo="$MAIN_REPO_PATH" - local target_worktree="$ABSOLUTE_WORKTREE_PATH" - local gitignore_file="$main_repo/.gitignore" - - # 检查 .gitignore 是否存在 - if [[ ! -f "$gitignore_file" ]]; then - return 0 - fi - - local copied_count=0 - - # 检测 .env 文件 - if [[ -f "$main_repo/.env" ]] && grep -q "^\.env$" "$gitignore_file"; then - cp "$main_repo/.env" "$target_worktree/.env" - echo "✅ 已复制 .env" - ((copied_count++)) - fi - - # 检测 .env.* 模式文件(排除 .env.example) - for env_file in "$main_repo"/.env.*; do - if [[ -f "$env_file" ]] && [[ "$(basename "$env_file")" != ".env.example" ]]; then - local filename=$(basename "$env_file") - if grep -q "^\.env\.\*$" "$gitignore_file"; then - cp "$env_file" "$target_worktree/$filename" - echo "✅ 已复制 $filename" - ((copied_count++)) - fi - fi - done - - if [[ $copied_count -gt 0 ]]; then - echo "📋 已从 .gitignore 复制 $copied_count 个环境文件" - fi -} +parent-directory/ +├── your-project/ # 主项目 +│ ├── .git/ +│ └── src/ +└── .ccg/ # worktree 管理目录 + └── your-project/ + ├── feature-ui/ # 功能分支 + ├── hotfix/ # 修复分支 + └── debug/ # 调试 worktree ``` --- -## Enhanced Features +## 执行工作流 -### IDE 集成 +### Add - 创建 Worktree -- **自动检测**: VS Code → Cursor → WebStorm → Sublime Text → Vim -- **智能提示**: 创建 worktree 后询问是否在 IDE 中打开 -- **直接打开**: 使用 `-o` 标志跳过提示直接打开 -- **自定义配置**: 通过 git config 配置 +`[模式:创建]` -### 内容迁移系统 +1. 验证 Git 仓库 +2. 计算路径:`../.ccg/项目名/` +3. 创建 worktree +4. 自动复制环境文件(`.env` 等) +5. 可选:用 IDE 打开 -```bash -# 迁移未提交改动 -/git-worktree migrate feature-ui --from main -/git-worktree migrate hotfix --from ../other-worktree +### Migrate - 迁移内容 -# 迁移 stash 内容 -/git-worktree migrate feature-ui --stash -``` - -**迁移流程**: +`[模式:迁移]` 1. 验证源有未提交内容 -2. 确保目标 worktree 干净 +2. 确保目标干净 3. 显示即将迁移的改动 -4. 使用 git 命令安全迁移 -5. 确认结果并建议后续步骤 +4. 安全迁移 +5. 确认结果 --- -## Examples +## 示例 ```bash -# 基本用法 -/git-worktree add feature-ui # 从 main/master 创建新分支 'feature-ui' -/git-worktree add feature-ui -b my-feature # 创建新分支 'my-feature',路径为 'feature-ui' -/git-worktree add feature-ui -o # 创建并直接用 IDE 打开 +# 基本创建 +/worktree add feature-ui -# 内容迁移场景 -/git-worktree add feature-ui -b feature/new-ui # 创建新功能 worktree -/git-worktree migrate feature-ui --from main # 迁移未提交改动 -/git-worktree migrate hotfix --stash # 迁移 stash 内容 +# 创建并用 IDE 打开 +/worktree add feature-ui -o + +# 创建指定分支 +/worktree add hotfix -b fix/login -o + +# 迁移未提交内容 +/worktree migrate feature-ui --from main + +# 迁移 stash 内容 +/worktree migrate feature-ui --stash # 管理操作 -/git-worktree list # 查看所有 worktree -/git-worktree remove feature-ui # 删除不需要的 worktree -/git-worktree prune # 清理无效引用 +/worktree list +/worktree remove feature-ui +/worktree prune ``` -**示例输出**: +## 输出示例 ``` ✅ Worktree created at ../.ccg/项目名/feature-ui ✅ 已复制 .env ✅ 已复制 .env.local 📋 已从 .gitignore 复制 2 个环境文件 -🖥️ 是否在 IDE 中打开 ../.ccg/项目名/feature-ui?[y/n]: y -🚀 正在用 VS Code 打开 ../.ccg/项目名/feature-ui... +🖥️ 是否在 IDE 中打开?[y/n]: y +🚀 正在用 VS Code 打开... ``` --- -## Directory Structure +## 智能特性 -``` -parent-directory/ -├── your-project/ # 主项目 -│ ├── .git/ -│ └── src/ -└── .ccg/ # worktree 管理 - └── your-project/ # 项目 worktree - ├── feature-ui/ # 功能分支 - ├── hotfix/ # 修复分支 - └── debug/ # 调试 worktree -``` +1. **智能默认** – 未指定分支时使用路径名 +2. **IDE 集成** – 自动检测 VS Code / Cursor / WebStorm +3. **环境文件** – 自动复制 `.gitignore` 中的 `.env` 文件 +4. **路径安全** – 始终使用绝对路径防止嵌套问题 +5. **分支保护** – 验证分支未被其他地方使用 ---- +## 注意事项 -## Configuration - -### IDE 配置 - -- 支持 VS Code、Cursor、WebStorm、Sublime Text、Vim -- 通过 git config 配置自定义 IDE -- 基于优先级的自动检测选择 - -### 自定义 IDE 设置 - -```bash -# 配置自定义 IDE -git config worktree.ide.custom.sublime "subl %s" -git config worktree.ide.preferred "sublime" - -# 控制自动检测 -git config worktree.ide.autodetect true # 默认 -``` - ---- - -## Notes - -- **性能**: worktree 共享 `.git` 目录,节省磁盘空间 -- **安全**: 路径冲突防护和分支检出验证 -- **迁移**: 仅限未提交改动;已提交内容需使用 `git cherry-pick` -- **IDE 要求**: 命令行工具必须在 PATH 中 -- **跨平台**: 支持 Windows、macOS、Linux -- **环境文件**: 自动复制 `.gitignore` 中列出的环境文件到新 worktree -- **文件排除**: 模板文件如 `.env.example` 仅保留在主仓库中 - ---- +- Worktree 共享 `.git` 目录,节省磁盘空间 +- 迁移仅限未提交改动,已提交内容用 `git cherry-pick` +- 支持 Windows、macOS、Linux