# generate > 当用户请求创建新项目、生成项目结构、或提到"AI 项目"、"自驱动项目"、"智能项目"时自动触发。生成包含 .claude/ 目录的自驱动项目。 - Author: yxhpy - Repository: yxhpy/claude-plus - Version: 20260204151542 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-08 - Source: https://github.com/yxhpy/claude-plus - Web: https://mule.run/skillshub/@@yxhpy/claude-plus~generate:20260204151542 --- --- name: generate description: 当用户请求创建新项目、生成项目结构、或提到"AI 项目"、"自驱动项目"、"智能项目"时自动触发。生成包含 .claude/ 目录的自驱动项目。 --- # 生成 AI 项目技能 自动生成一个自驱动的 AI 项目,包含完整的 .claude/ 目录结构、自动测试、文档驱动开发和项目记忆系统。 ## 触发场景 当用户说以下内容时自动触发: - "创建一个新项目" - "生成一个 AI 项目" - "我想要一个自驱动的项目" - "帮我搭建项目结构" - "生成智能项目" ## 执行流程 ### 1. 收集项目信息 使用 AskUserQuestion 工具询问: **问题 1: 项目基本信息** - 项目名称 - 项目描述 - 项目目标 **问题 2: 编程语言** - Python(推荐,pytest + coverage) - JavaScript(Jest + coverage) - TypeScript(Jest + coverage) - 通用模板(语言无关) **问题 3: 核心功能** - 自动测试(必选) - 自动文档生成(必选) - 代码审查(可选) - 智能重构(可选) ### 2. 生成项目结构 使用 Bash 工具创建目录: ```bash mkdir -p /.claude/{skills,hooks,agents,scripts} mkdir -p /.claude-memory/decisions mkdir -p /docs/{modules,api,troubleshooting} mkdir -p /src mkdir -p /tests mkdir -p /.github/workflows ``` **重要**: 项目记忆系统包含以下文件: - `.claude-memory/context.json` - 项目状态和模块信息 - `.claude-memory/environment.json` - 环境配置(虚拟环境、测试命令等) - `.claude-memory/errors.json` - 错误记录和解决方案 - `.claude-memory/iterations.md` - 开发迭代历史 - `.claude-memory/decisions/` - 架构决策记录 ### 3. 生成核心文件 #### 3.1 CLAUDE.md(核心指令) 使用 Write 工具生成精简的 CLAUDE.md: ```markdown # ## 核心原则 1. 测试驱动开发(TDD)- 100% 覆盖率 2. 文档驱动开发(DDD)- 代码即文档 3. 防止重复造轮子 - 查看模块注册表 4. 记录问题和解决方案 - 建立知识库 ## 📚 文档导航 - [模块注册表](docs/modules/REGISTRY.md) ⭐ 防止重复造轮子 - [API 索引](docs/api/INDEX.md) - [故障排除](docs/troubleshooting/KNOWN_ISSUES.md) - [架构设计](docs/architecture/README.md) ## 🔍 开发前必读 ### 检查清单 1. **搜索现有功能**: ```bash ./.claude/scripts/search-feature.sh "功能关键词" ``` 2. **查看模块注册表**: - 阅读 docs/modules/REGISTRY.md - 检查是否已有类似功能 3. **查看已知问题**: - 阅读 docs/troubleshooting/KNOWN_ISSUES.md - 避免重复踩坑 ### 开发工作流 1. 从 TODO.md 获取任务 2. 搜索现有功能(防止重复) 3. 编写测试(TDD) 4. 实现功能 5. 运行测试(确保 100% 覆盖率) 6. 更新文档和注册表 7. 记录到项目记忆 ## 🤖 自动化能力 项目包含以下自动化能力(.claude/ 目录): ### Skills(自动触发) - **start-dev**: 响应"开始"启动开发 - **auto-test**: 代码变更后自动测试 - **auto-doc**: 自动更新文档 ### Agents(专门任务) - **test-agent**: 确保 100% 测试覆盖率 - **doc-agent**: 维护文档和注册表 ### Scripts(辅助工具) - `search-feature.sh`: 搜索现有功能 - `update-registry.sh`: 更新模块注册表 - `maintain.sh`: 项目维护 ## 📝 测试要求 - **覆盖率目标**: 100% - **测试框架**: - **运行测试**: `` ## 🔧 故障排除 详见 [故障排除指南](docs/troubleshooting/KNOWN_ISSUES.md) ``` #### 3.2 TODO.md(任务列表) ```markdown # 任务列表 ## 当前任务 - [ ] 任务 1: 初始化项目结构 - [ ] 任务 2: 编写第一个功能 ## 已完成 - [x] 项目创建 ## 说明 当你说"开始"时,AI 会自动读取此文件并开始执行任务。 ``` #### 3.3 .claude/skills/start-dev/SKILL.md ```yaml --- name: start-dev description: 当用户说"开始"、"开始开发"、"继续"、"继续开发"时自动触发。读取 TODO.md 并开始执行任务,确保 100% 测试覆盖率,自动更新文档并提交到远程。 --- # 启动开发流程 ## 核心原则 1. **测试优先** - 100% 覆盖率,测试失败不提交 2. **文档同步** - 提交前自动更新所有文档 3. **错误学习** - 自动记录错误和解决方案,防止重复犯错 4. **自动提交** - 完成阶段后自动提交到远程 ## 执行步骤 ### 1. 读取项目状态 - 读取 TODO.md 获取任务列表 - 读取 .claude-memory/context.json 了解项目状态 - 读取 .claude-memory/environment.json 了解环境配置(如虚拟环境路径) - 读取 docs/modules/REGISTRY.md 了解现有模块 - 读取 docs/troubleshooting/KNOWN_ISSUES.md 了解已知问题 ### 2. 环境准备 - 检查 .claude-memory/environment.json 中的环境配置 - 如果有虚拟环境配置,先激活环境 - 如果环境准备失败,记录错误到 .claude-memory/environment.json - 示例: ```json { "python": { "venv_path": ".venv", "activation_command": "source .venv/bin/activate", "test_command": "pytest", "last_error": null } } ``` ### 3. 选择任务 - 找到第一个未完成的任务 - 如果没有任务,询问用户想做什么 ### 4. 开发前检查 - 搜索是否已有类似功能(防止重复造轮子) - 查看 docs/troubleshooting/KNOWN_ISSUES.md(避免已知问题) ### 5. 执行任务(TDD 流程) - 编写测试(TDD) - 实现功能 - 运行测试确保 100% 覆盖率 - **如果测试失败或覆盖率不足**: - 分析失败原因 - 修复代码或补充测试 - 重新运行测试 - 不进入下一步直到测试通过 ### 6. 错误处理和学习 - **如果遇到错误**(例如:需要激活环境、缺少依赖等): 1. 记录错误到 .claude-memory/errors.json: ```json { "errors": [ { "timestamp": "2026-02-02T10:00:00Z", "type": "environment", "description": "需要先激活虚拟环境", "solution": "source .venv/bin/activate", "context": "运行 pytest 时失败" } ] } ``` 2. 更新 .claude-memory/environment.json 记录解决方案 3. 更新 docs/troubleshooting/KNOWN_ISSUES.md 4. 应用解决方案并继续 ### 7. 更新文档(提交前必须完成) - 更新 docs/modules/REGISTRY.md(添加新模块或更新现有模块) - 更新 docs/api/INDEX.md(添加新 API) - 更新 .claude-memory/context.json(记录项目状态) - 更新 .claude-memory/iterations.md(记录本次迭代) - 如果有新的已知问题,更新 docs/troubleshooting/KNOWN_ISSUES.md ### 8. 提交到远程 - **检查清单**: - ✅ 测试覆盖率 100% - ✅ 所有文档已更新 - ✅ 没有未解决的错误 - **提交流程**: 1. `git add .` 2. `git commit -m "feat: <任务描述>\n\n- 实现功能: <功能描述>\n- 测试覆盖率: 100%\n- 文档已更新\n\nCo-Authored-By: Claude Sonnet 4.5 "` 3. `git push origin ` - **如果提交失败**: - 记录错误到 .claude-memory/errors.json - 更新 docs/troubleshooting/KNOWN_ISSUES.md - 询问用户如何处理 ### 9. 标记完成 - 在 TODO.md 中标记任务为已完成 - 更新 .claude-memory/context.json - 输出完成报告: ``` ✅ 任务完成: <任务描述> 📊 测试覆盖率: 100% 📝 文档已更新 🚀 已提交到远程: ``` ## 错误恢复机制 如果在任何步骤遇到错误: 1. 立即记录到 .claude-memory/errors.json 2. 分析错误类型(环境、依赖、代码逻辑等) 3. 查找 docs/troubleshooting/KNOWN_ISSUES.md 中是否有类似问题 4. 应用解决方案或询问用户 5. 更新记忆系统,防止下次重复犯错 ## 示例场景 ### 场景 1: 首次运行 Python 测试 **问题**: 运行 `pytest` 时失败,提示找不到模块 **处理**: 1. 检测到错误 2. 分析:可能需要激活虚拟环境 3. 记录到 .claude-memory/environment.json: ```json { "python": { "venv_path": ".venv", "activation_command": "source .venv/bin/activate", "test_command": "pytest" } } ``` 4. 更新 docs/troubleshooting/KNOWN_ISSUES.md 5. 下次自动先激活环境再运行测试 ### 场景 2: 测试覆盖率不足 **问题**: 测试覆盖率只有 85% **处理**: 1. 分析未覆盖的代码 2. 补充测试用例 3. 重新运行测试 4. 确保 100% 后才继续 ### 场景 3: Git 推送失败 **问题**: `git push` 失败,提示需要先 pull **处理**: 1. 记录错误到 .claude-memory/errors.json 2. 执行 `git pull --rebase` 3. 解决冲突(如果有) 4. 重新推送 5. 更新 docs/troubleshooting/KNOWN_ISSUES.md ``` #### 3.4 .claude/skills/auto-test/SKILL.md ```yaml --- name: auto-test description: 代码变更后自动运行测试,确保 100% 覆盖率。当测试失败或覆盖率不足时自动补充测试。 --- # 自动测试技能 ## 执行步骤 1. **运行测试** - 执行测试命令 - 生成覆盖率报告 2. **检查覆盖率** - 如果覆盖率 < 100%,分析缺失的测试 - 生成补充测试 3. **更新记录** - 记录测试结果到 .claude-memory/context.json ``` #### 3.5 .claude/skills/auto-doc/SKILL.md ```yaml --- name: auto-doc description: 代码变更后自动更新文档和模块注册表,保持文档与代码同步。 --- # 自动文档生成技能 ## 执行步骤 1. **扫描代码** - 分析新增/修改的代码 - 提取函数、类、API 2. **更新注册表** - 更新 docs/modules/REGISTRY.md - 更新 docs/api/INDEX.md 3. **生成文档** - 为新模块生成文档 - 更新现有文档 ``` ### 4. 生成文档模板 #### 4.1 docs/modules/REGISTRY.md ```markdown # 模块注册表 > 自动生成 | 运行 `./.claude/scripts/update-registry.sh` 更新 ## 说明 此文件记录项目中所有模块,防止重复造轮子。开发新功能前请先查看此文件。 ## 模块列表 ### 示例模块 - **路径**: `src/example/` - **功能**: 示例功能 - **主要 API**: - `exampleFunction()` - src/example/main.py:10 - **依赖**: 无 - **文档**: [详细文档](example.md) - **测试覆盖率**: 100% - **最后更新**: --- *添加新模块时,请按照上述格式更新此文件* ``` #### 4.2 docs/troubleshooting/KNOWN_ISSUES.md ```markdown # 已知问题和解决方案 > 自动生成 | 遇到新问题时自动更新 ## 说明 记录项目中遇到的问题和解决方案,防止重复踩坑。每次遇到错误时,AI 会自动将问题和解决方案记录到此文件。 ## 问题分类 ### 环境问题 #### 虚拟环境未激活 - **日期**: - **严重程度**: 高 - **症状**: 运行测试时提示找不到模块 - **根本原因**: Python 虚拟环境未激活 - **解决方案**: ```bash source .venv/bin/activate # macOS/Linux .venv\Scripts\activate # Windows ``` - **预防措施**: 已更新 `.claude-memory/environment.json`,下次自动激活 - **相关文件**: `.claude-memory/environment.json` - **自动化**: ✅ 已自动化 ### 依赖问题 #### 缺少依赖包 - **日期**: - **严重程度**: 中 - **症状**: 导入模块时失败 - **根本原因**: 依赖包未安装 - **解决方案**: ```bash pip install -r requirements.txt ``` - **预防措施**: 已添加到环境配置 - **自动化**: ✅ 已自动化 ### Git 问题 #### 推送失败(需要先 pull) - **日期**: - **严重程度**: 低 - **症状**: `git push` 失败 - **根本原因**: 远程有新提交 - **解决方案**: ```bash git pull --rebase git push ``` - **预防措施**: 推送前先检查远程状态 - **自动化**: ⏳ 待实现 ### 测试问题 #### 测试覆盖率不足 - **日期**: - **严重程度**: 高 - **症状**: 覆盖率 < 100% - **根本原因**: 缺少测试用例 - **解决方案**: 分析未覆盖代码,补充测试 - **预防措施**: TDD 开发,先写测试 - **自动化**: ✅ 已自动化 --- ## 添加新问题 遇到新问题时,请按照以下格式记录: ```markdown ### 问题分类 #### 问题标题 - **日期**: YYYY-MM-DD - **严重程度**: 高/中/低 - **症状**: 问题的表现 - **根本原因**: 问题的根本原因 - **解决方案**: 详细的解决步骤 - **预防措施**: 如何避免再次发生 - **相关文件**: 相关的代码或配置文件 - **测试**: 相关的测试用例 - **自动化**: ✅ 已自动化 / ⏳ 待实现 / ❌ 无法自动化 ``` **注意**: AI 会自动记录错误到此文件,你也可以手动添加。 ``` ### 5. 生成测试配置 根据选择的语言生成对应配置: **Python (pyproject.toml)**: ```toml [tool.pytest.ini_options] addopts = [ "--cov=src", "--cov-report=term-missing", "--cov-report=html:htmlcov", "--cov-fail-under=100", "--cov-branch" ] testpaths = ["tests"] [tool.coverage.run] branch = true source = ["src"] omit = ["*/tests/*"] [tool.coverage.report] precision = 2 show_missing = true exclude_lines = [ "pragma: no cover", "def __repr__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:" ] ``` **JavaScript (jest.config.js)**: ```js module.exports = { coverageThreshold: { global: { branches: 100, functions: 100, lines: 100, statements: 100 } }, collectCoverageFrom: [ 'src/**/*.{js,jsx,ts,tsx}', '!**/node_modules/**', '!**/dist/**' ], coverageReporters: ['text', 'html', 'lcov'] }; ``` ### 6. 生成辅助脚本 #### 6.1 .claude/scripts/search-feature.sh ```bash #!/bin/bash # 快速搜索功能 KEYWORD="$1" if [ -z "$KEYWORD" ]; then echo "用法: ./search-feature.sh <关键词>" exit 1 fi echo "🔍 搜索功能: $KEYWORD" echo "" echo "📦 模块匹配:" rg -i "$KEYWORD" docs/modules/REGISTRY.md || echo " 无匹配" echo "" echo "🔧 代码匹配:" rg -i "$KEYWORD" src/ --type py --type js || echo " 无匹配" echo "" echo "📝 文档匹配:" rg -i "$KEYWORD" docs/ --type md || echo " 无匹配" ``` #### 6.2 .claude/scripts/update-registry.sh ```bash #!/bin/bash # 更新模块注册表 echo "📝 更新模块注册表..." # 扫描 src/ 目录 # 提取模块信息 # 更新 docs/modules/REGISTRY.md echo "✅ 注册表已更新" ``` ### 7. 生成项目记忆 #### 7.1 .claude-memory/context.json ```json { "project": { "name": "", "description": "", "version": "0.1.0", "created": "", "language": "", "lastUpdated": "" }, "modules": [], "reusableComponents": [], "commonPatterns": [], "knownIssues": [] } ``` #### 7.2 .claude-memory/environment.json ```json { "python": { "venv_path": ".venv", "activation_command": "source .venv/bin/activate", "test_command": "pytest", "coverage_command": "pytest --cov=src --cov-report=term-missing", "install_command": "pip install -r requirements.txt", "last_error": null }, "javascript": { "test_command": "npm test", "coverage_command": "npm run test:coverage", "install_command": "npm install", "last_error": null }, "git": { "default_branch": "main", "remote": "origin", "auto_push": true, "last_error": null } } ``` #### 7.3 .claude-memory/errors.json ```json { "errors": [], "solutions": {} } ``` **说明**: - `errors` 数组记录所有遇到的错误 - `solutions` 对象记录错误类型和对应的解决方案 - 每次遇到新错误时自动更新此文件 ### 8. 生成 CI/CD 配置 #### 8.1 .github/workflows/test.yml ```yaml name: Test on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up uses: - name: Install dependencies run: - name: Run tests run: - name: Check coverage run: ``` ### 9. 输出结果 向用户展示: - 生成的目录结构 - 如何启动开发(说"开始") - 项目的自动化能力 - 下一步操作 ## 示例场景 ### 场景 1: 用户说"创建一个新项目" **用户输入**: "我想创建一个新的 Python API 项目" **AI 响应**: 1. 询问项目名称和描述 2. 生成完整的项目结构 3. 配置 pytest + coverage 4. 创建 .claude/ 目录和技能 5. 告诉用户说"开始"即可启动开发 ### 场景 2: 用户说"生成智能项目" **用户输入**: "帮我生成一个自驱动的项目" **AI 响应**: 1. 询问项目详情 2. 生成包含 .claude/ 的项目 3. 配置自动化能力 4. 提供使用说明