Initial TrueGrowth source import
This commit is contained in:
792
docs/CLAUDE_CODE_BEST_PRACTICES.md
Normal file
792
docs/CLAUDE_CODE_BEST_PRACTICES.md
Normal file
@@ -0,0 +1,792 @@
|
||||
# Claude Code 最佳实践指南
|
||||
|
||||
本文档基于 Claude Code 之父 Boris Cherny 的 13 条实战技巧,结合 Opentu 项目实际情况进行整理,帮助团队最大化 Claude Code 的开发效率。
|
||||
|
||||
## 目录
|
||||
|
||||
- [并行工作流](#并行工作流)
|
||||
- [模型选择策略](#模型选择策略)
|
||||
- [知识沉淀机制](#知识沉淀机制)
|
||||
- [Plan 模式优先](#plan-模式优先)
|
||||
- [斜杠命令自动化](#斜杠命令自动化)
|
||||
- [Subagents 工作流](#subagents-工作流)
|
||||
- [代码格式化 Hook](#代码格式化-hook)
|
||||
- [权限预批准](#权限预批准)
|
||||
- [MCP 工具链集成](#mcp-工具链集成)
|
||||
- [长任务自动化](#长任务自动化)
|
||||
- [验证机制](#验证机制)
|
||||
|
||||
---
|
||||
|
||||
## 并行工作流
|
||||
|
||||
**技巧 1: 多实例并行运行**
|
||||
|
||||
在终端中并行运行多个 Claude Code 实例,开启系统通知,哪个需要输入就跳过去处理。
|
||||
|
||||
```bash
|
||||
# 终端 1: 处理功能开发
|
||||
claude
|
||||
|
||||
# 终端 2: 处理测试编写
|
||||
claude
|
||||
|
||||
# 终端 3: 处理文档更新
|
||||
claude
|
||||
```
|
||||
|
||||
**配置系统通知:**
|
||||
|
||||
```bash
|
||||
# macOS 系统通知已默认开启
|
||||
# 确保终端应用有通知权限: 系统设置 → 通知 → Terminal/iTerm2
|
||||
```
|
||||
|
||||
**技巧 2: CLI + GUI 双线作战**
|
||||
|
||||
使用 `&` 后台运行和 `--teleport` 在 CLI/GUI 之间无缝切换会话。
|
||||
|
||||
```bash
|
||||
# 在 CLI 启动后台会话
|
||||
claude &
|
||||
|
||||
# 使用 --teleport 将会话传送到 GUI
|
||||
claude --teleport
|
||||
|
||||
# 从 GUI 返回 CLI 继续工作
|
||||
# 在 GUI 中使用 /teleport 命令
|
||||
```
|
||||
|
||||
**Opentu 项目应用场景:**
|
||||
|
||||
| 实例 | 任务类型 | 示例 |
|
||||
|------|---------|------|
|
||||
| 实例 1 | 核心功能开发 | 开发 AI 图像生成功能 |
|
||||
| 实例 2 | 测试编写 | 为新功能编写单元测试 |
|
||||
| 实例 3 | 文档/规范 | 更新 API 文档或规范 |
|
||||
|
||||
---
|
||||
|
||||
## 模型选择策略
|
||||
|
||||
**技巧 3: 全程使用 Opus 4.5 Thinking 模式**
|
||||
|
||||
虽然单次响应慢一点,但需要纠正的次数少得多,工具调用也更准确,最终算下来反而更快。
|
||||
|
||||
**模型对比:**
|
||||
|
||||
| 特性 | Sonnet (快速) | Opus 4.5 Thinking (推荐) |
|
||||
|------|--------------|-------------------------|
|
||||
| 响应速度 | 快 | 较慢 |
|
||||
| 准确率 | 中等 | 高 |
|
||||
| 纠正次数 | 多 | 少 |
|
||||
| 工具调用准确性 | 一般 | 高 |
|
||||
| **总体效率** | 一般 | **更高** |
|
||||
|
||||
**配置方法:**
|
||||
|
||||
```bash
|
||||
# 在 claude 启动时指定模型
|
||||
claude --model opus
|
||||
|
||||
# 或在 settings.json 中配置默认模型
|
||||
```
|
||||
|
||||
**何时使用 Sonnet:**
|
||||
- 简单的问答查询
|
||||
- 快速代码片段生成
|
||||
- 文档格式调整
|
||||
|
||||
**何时使用 Opus Thinking:**
|
||||
- 复杂功能实现
|
||||
- 架构设计决策
|
||||
- 多文件重构
|
||||
- Debug 复杂问题
|
||||
|
||||
---
|
||||
|
||||
## 知识沉淀机制
|
||||
|
||||
**技巧 4: 团队共享 CODEBUDDY.md**
|
||||
|
||||
每当 Claude 做错什么就加进去,下次它就知道了,形成飞轮效应。
|
||||
|
||||
**Opentu 项目 CODEBUDDY.md 结构:**
|
||||
|
||||
```markdown
|
||||
# CODEBUDDY.md
|
||||
|
||||
## 项目规范
|
||||
- 文件大小限制: 单文件不超过 500 行
|
||||
- UI 框架: TDesign React (light 主题)
|
||||
- Tooltip: 必须使用 theme='light'
|
||||
|
||||
## 常见错误记录
|
||||
### 错误 1: Z-Index 硬编码
|
||||
❌ 错误: style={{ zIndex: 9999 }}
|
||||
✅ 正确: 使用 Z_INDEX 常量
|
||||
|
||||
### 错误 2: 忘记处理移动端
|
||||
❌ 错误: 只考虑桌面端交互
|
||||
✅ 正确: 同时处理触摸和鼠标事件
|
||||
```
|
||||
|
||||
**技巧 5: Code Review 自动更新规则**
|
||||
|
||||
使用 `/update-claude-md` 命令让 AI 自动将 Code Review 中发现的问题更新到 CODEBUDDY.md。
|
||||
|
||||
**创建自动更新命令:**
|
||||
|
||||
参考 `.codebuddy/commands/update-claude-md.md`:
|
||||
|
||||
```markdown
|
||||
# Update CLAUDE.md
|
||||
|
||||
分析最近的 Code Review 反馈,提取通用规则并更新 CODEBUDDY.md。
|
||||
|
||||
## 步骤
|
||||
|
||||
1. 读取最近的 PR review 评论或用户反馈
|
||||
2. 识别可通用化的模式或规则
|
||||
3. 检查 CODEBUDDY.md 中是否已有相关规则
|
||||
4. 如果是新规则,添加到适当的章节
|
||||
5. 使用统一的格式:
|
||||
- ❌ 错误示例
|
||||
- ✅ 正确示例
|
||||
- 原因说明
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Plan 模式优先
|
||||
|
||||
**技巧 6: 大多数会话从 Plan 模式开始**
|
||||
|
||||
先想清楚再动手,好的计划很重要。
|
||||
|
||||
**进入 Plan 模式:**
|
||||
|
||||
```
|
||||
Shift + Tab (按两次)
|
||||
```
|
||||
|
||||
**Plan 模式工作流:**
|
||||
|
||||
```
|
||||
1. 描述任务需求
|
||||
↓
|
||||
2. Claude 生成实现计划
|
||||
↓
|
||||
3. 审查计划,提出修改意见
|
||||
↓
|
||||
4. 确认计划后退出 Plan 模式
|
||||
↓
|
||||
5. 执行实现
|
||||
```
|
||||
|
||||
**Opentu 项目 Plan 模式示例:**
|
||||
|
||||
```
|
||||
用户: 我想添加一个图片圆形裁剪功能
|
||||
|
||||
Claude (Plan 模式):
|
||||
## 实现计划
|
||||
|
||||
### 1. 类型定义
|
||||
- 创建 CropShape 类型
|
||||
- 定义 ImageCropPopupProps 接口
|
||||
|
||||
### 2. 核心组件
|
||||
- ImageCropPopup.tsx 裁剪弹窗
|
||||
- useImageCrop.ts 裁剪逻辑 Hook
|
||||
|
||||
### 3. 集成
|
||||
- 在 PopupToolbar 添加裁剪按钮
|
||||
- 连接 Plait 节点更新
|
||||
|
||||
### 4. 测试
|
||||
- 单元测试
|
||||
- E2E 测试
|
||||
|
||||
是否确认这个计划?
|
||||
```
|
||||
|
||||
**与 SpecKit 结合使用:**
|
||||
|
||||
对于复杂功能,结合 SpecKit 工作流:
|
||||
|
||||
```bash
|
||||
# Plan 模式下先理清思路
|
||||
Shift + Tab + Tab
|
||||
|
||||
# 然后使用 SpecKit 正式规范化
|
||||
/speckit.specify
|
||||
/speckit.plan
|
||||
/speckit.tasks
|
||||
/speckit.implement
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 斜杠命令自动化
|
||||
|
||||
**技巧 7: 高频重复操作做成斜杠命令**
|
||||
|
||||
Claude 自己也能调用这些命令,实现自动化工作流。
|
||||
|
||||
**Opentu 项目已有命令:**
|
||||
|
||||
| 命令 | 功能 |
|
||||
|------|------|
|
||||
| `/auto-commit` | 自动分析变更并提交 |
|
||||
| `/speckit.auto` | 自动执行完整 SpecKit 流程 |
|
||||
| `/speckit.specify` | 创建功能规范 |
|
||||
| `/speckit.plan` | 生成实现计划 |
|
||||
| `/speckit.tasks` | 生成任务清单 |
|
||||
| `/speckit.implement` | 执行实现 |
|
||||
|
||||
**创建自定义命令:**
|
||||
|
||||
在 `.codebuddy/commands/` 目录下创建 markdown 文件:
|
||||
|
||||
**示例: `/commit-push-pr` 一键完成提交推送创建 PR**
|
||||
|
||||
```markdown
|
||||
# .codebuddy/commands/commit-push-pr.md
|
||||
|
||||
# Commit, Push, and Create PR
|
||||
|
||||
自动完成代码提交、推送和创建 Pull Request。
|
||||
|
||||
## 参数
|
||||
|
||||
- $ARGUMENTS: PR 标题和描述 (可选)
|
||||
|
||||
## 步骤
|
||||
|
||||
1. 运行 git status 检查变更
|
||||
2. 运行 git diff 分析变更内容
|
||||
3. 生成符合规范的 commit message
|
||||
4. 执行 git add 和 git commit
|
||||
5. 推送到远程分支
|
||||
6. 使用 gh pr create 创建 PR
|
||||
7. 返回 PR URL
|
||||
```
|
||||
|
||||
**示例: `/typecheck-fix` 类型检查并自动修复**
|
||||
|
||||
```markdown
|
||||
# .codebuddy/commands/typecheck-fix.md
|
||||
|
||||
# TypeCheck and Fix
|
||||
|
||||
运行类型检查并自动修复发现的类型错误。
|
||||
|
||||
## 步骤
|
||||
|
||||
1. 运行 nx typecheck drawnix
|
||||
2. 解析错误输出
|
||||
3. 逐个修复类型错误
|
||||
4. 重新运行类型检查验证
|
||||
5. 报告修复结果
|
||||
```
|
||||
|
||||
**示例: `/build-test-commit` 构建测试提交一条龙**
|
||||
|
||||
```markdown
|
||||
# .codebuddy/commands/build-test-commit.md
|
||||
|
||||
# Build, Test, and Commit
|
||||
|
||||
确保代码质量后自动提交。
|
||||
|
||||
## 步骤
|
||||
|
||||
1. 运行 npm run build 构建项目
|
||||
2. 运行 npm test 执行测试
|
||||
3. 如果都通过,执行 /auto-commit
|
||||
4. 如果失败,报告错误并提供修复建议
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Subagents 工作流
|
||||
|
||||
**技巧 8: 使用 Subagents 自动化常见工作流**
|
||||
|
||||
把反复做的事情固化下来,让 Claude 自己调用。
|
||||
|
||||
**Opentu 项目 Subagent 示例:**
|
||||
|
||||
参考 `.codebuddy/skills/speckit-auto.md`:
|
||||
|
||||
```markdown
|
||||
# SpecKit Auto Skill
|
||||
|
||||
自动执行完整的 SpecKit 工作流。
|
||||
|
||||
## 触发条件
|
||||
|
||||
当用户描述一个新功能需求时。
|
||||
|
||||
## 执行流程
|
||||
|
||||
1. 调用 /speckit.specify 生成规范
|
||||
2. 调用 /speckit.clarify 澄清疑问
|
||||
3. 调用 /speckit.plan 制定计划
|
||||
4. 调用 /speckit.tasks 生成任务
|
||||
5. 调用 /speckit.implement 执行实现
|
||||
```
|
||||
|
||||
**创建自定义 Skill:**
|
||||
|
||||
```markdown
|
||||
# .codebuddy/skills/code-review.md
|
||||
|
||||
# Code Review Skill
|
||||
|
||||
自动进行代码审查。
|
||||
|
||||
## 检查项
|
||||
|
||||
1. TypeScript 类型安全
|
||||
2. React Hooks 规范
|
||||
3. 文件大小限制 (< 500 行)
|
||||
4. Z-Index 规范使用
|
||||
5. 性能优化建议
|
||||
|
||||
## 输出格式
|
||||
|
||||
- 问题严重程度: 🔴 Critical / 🟡 Warning / 🟢 Info
|
||||
- 问题位置: 文件:行号
|
||||
- 问题描述
|
||||
- 修复建议
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 代码格式化 Hook
|
||||
|
||||
**技巧 9: 使用 PostToolUse Hook 格式化代码**
|
||||
|
||||
Claude 通常能自动生成格式良好的代码,Hook 处理最后 10%,避免 CI 格式错误。
|
||||
|
||||
**配置 PostToolUse Hook:**
|
||||
|
||||
在项目配置中添加:
|
||||
|
||||
```json
|
||||
// .codebuddy/settings.json (如果存在) 或项目配置
|
||||
{
|
||||
"hooks": {
|
||||
"postToolUse": {
|
||||
"write": "npm run format:file -- $FILE",
|
||||
"edit": "npm run format:file -- $FILE"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Opentu 项目格式化脚本:**
|
||||
|
||||
```json
|
||||
// package.json
|
||||
{
|
||||
"scripts": {
|
||||
"format": "prettier --write .",
|
||||
"format:file": "prettier --write",
|
||||
"format:check": "prettier --check ."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Hook 工作原理:**
|
||||
|
||||
```
|
||||
Claude 写入文件
|
||||
↓
|
||||
PostToolUse Hook 触发
|
||||
↓
|
||||
运行 prettier 格式化
|
||||
↓
|
||||
文件格式统一
|
||||
↓
|
||||
避免 CI 格式检查失败
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 权限预批准
|
||||
|
||||
**技巧 10: 使用 /permissions 预批准常用安全命令**
|
||||
|
||||
避免每次都弹确认框,而不是使用 `dangerously-skip-permissions`。
|
||||
|
||||
**推荐预批准的命令:**
|
||||
|
||||
```bash
|
||||
# 查看权限设置
|
||||
/permissions
|
||||
|
||||
# 预批准常用的安全命令
|
||||
# 示例配置:
|
||||
```
|
||||
|
||||
**Opentu 项目推荐批准列表:**
|
||||
|
||||
| 命令类型 | 示例 | 风险级别 |
|
||||
|---------|------|---------|
|
||||
| 读取操作 | `cat`, `ls`, `git status` | 低 |
|
||||
| 构建命令 | `npm run build`, `nx build` | 低 |
|
||||
| 测试命令 | `npm test`, `nx test` | 低 |
|
||||
| Lint 命令 | `nx lint`, `eslint` | 低 |
|
||||
| Git 查看 | `git log`, `git diff` | 低 |
|
||||
|
||||
**不建议预批准的命令:**
|
||||
|
||||
| 命令类型 | 示例 | 原因 |
|
||||
|---------|------|------|
|
||||
| 删除操作 | `rm -rf`, `git reset --hard` | 破坏性 |
|
||||
| 推送操作 | `git push --force` | 影响远程 |
|
||||
| 安装操作 | `npm install <package>` | 引入依赖 |
|
||||
|
||||
---
|
||||
|
||||
## MCP 工具链集成
|
||||
|
||||
**技巧 11: 配置 MCP 让 Claude 使用所有需要的工具**
|
||||
|
||||
Claude Code 不只是编程工具,而是能调用整个工具链。
|
||||
|
||||
**MCP (Model Context Protocol) 集成示例:**
|
||||
|
||||
```json
|
||||
// mcp.json 配置示例
|
||||
{
|
||||
"servers": {
|
||||
"slack": {
|
||||
"command": "npx",
|
||||
"args": ["@anthropic/mcp-server-slack"],
|
||||
"env": {
|
||||
"SLACK_TOKEN": "${SLACK_TOKEN}"
|
||||
}
|
||||
},
|
||||
"sentry": {
|
||||
"command": "npx",
|
||||
"args": ["@anthropic/mcp-server-sentry"],
|
||||
"env": {
|
||||
"SENTRY_AUTH_TOKEN": "${SENTRY_AUTH_TOKEN}"
|
||||
}
|
||||
},
|
||||
"github": {
|
||||
"command": "npx",
|
||||
"args": ["@anthropic/mcp-server-github"],
|
||||
"env": {
|
||||
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Opentu 项目推荐 MCP 集成:**
|
||||
|
||||
| 工具 | 用途 | MCP Server |
|
||||
|------|------|-----------|
|
||||
| GitHub | Issue/PR 管理 | @anthropic/mcp-server-github |
|
||||
| Sentry | 错误日志追踪 | @anthropic/mcp-server-sentry |
|
||||
| Slack | 团队通知 | @anthropic/mcp-server-slack |
|
||||
| Figma | 设计稿获取 | @anthropic/mcp-server-figma |
|
||||
|
||||
**使用场景:**
|
||||
|
||||
```
|
||||
用户: 查看最近的 Sentry 错误
|
||||
|
||||
Claude: [通过 MCP 调用 Sentry API]
|
||||
发现 3 个未解决错误:
|
||||
1. TypeError in ImageCropPopup.tsx:45
|
||||
2. NetworkError in video-api-service.ts:123
|
||||
3. ...
|
||||
|
||||
需要我帮你修复哪个?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 长任务自动化
|
||||
|
||||
**技巧 12: 长任务使用 --permission-mode=dontAsk**
|
||||
|
||||
对于要跑很久的任务,让 Claude 自动循环改进工作直到完成。
|
||||
|
||||
**使用方法:**
|
||||
|
||||
```bash
|
||||
# 启动长任务模式
|
||||
claude --permission-mode=dontAsk
|
||||
|
||||
# 或在会话中配置
|
||||
/settings permission-mode dontAsk
|
||||
```
|
||||
|
||||
**适用场景:**
|
||||
|
||||
- 大规模代码重构
|
||||
- 批量文件处理
|
||||
- 持续集成修复
|
||||
- 测试覆盖率提升
|
||||
|
||||
**安全建议:**
|
||||
|
||||
1. 确保在版本控制下工作
|
||||
2. 先创建新分支
|
||||
3. 设置合理的超时时间
|
||||
4. 定期检查进度
|
||||
|
||||
**Opentu 项目长任务示例:**
|
||||
|
||||
```bash
|
||||
# 示例: 将所有组件迁移到新的 Z-Index 规范
|
||||
claude --permission-mode=dontAsk
|
||||
|
||||
提示词:
|
||||
"将项目中所有硬编码的 z-index 值替换为 Z_INDEX 常量,
|
||||
遵循 docs/Z_INDEX_GUIDE.md 规范,完成后运行类型检查确认无误"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 验证机制
|
||||
|
||||
**技巧 13: 给 Claude 验证工作的方式 (最重要!)**
|
||||
|
||||
如果 Claude 能验证自己的工作,最终产出质量能提升 2~3 倍。投入精力把验证机制做扎实,这是回报率最高的投资。
|
||||
|
||||
### 验证机制类型
|
||||
|
||||
#### 1. 类型检查验证
|
||||
|
||||
```markdown
|
||||
# CODEBUDDY.md 中添加
|
||||
|
||||
## 验证命令
|
||||
|
||||
每次修改 TypeScript 文件后,运行:
|
||||
\`\`\`bash
|
||||
nx typecheck drawnix
|
||||
\`\`\`
|
||||
确保无类型错误后再继续。
|
||||
```
|
||||
|
||||
#### 2. 测试验证
|
||||
|
||||
```markdown
|
||||
## 测试验证
|
||||
|
||||
修改代码后运行相关测试:
|
||||
\`\`\`bash
|
||||
# 单元测试
|
||||
nx test drawnix
|
||||
|
||||
# 特定文件测试
|
||||
nx test drawnix --testFile=useImageCrop.test.ts
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
#### 3. Lint 验证
|
||||
|
||||
```markdown
|
||||
## Lint 验证
|
||||
|
||||
代码提交前运行:
|
||||
\`\`\`bash
|
||||
nx lint drawnix
|
||||
npm run format:check
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
#### 4. 构建验证
|
||||
|
||||
```markdown
|
||||
## 构建验证
|
||||
|
||||
确保代码可以成功构建:
|
||||
\`\`\`bash
|
||||
npm run build
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
#### 5. 自定义验证脚本
|
||||
|
||||
```markdown
|
||||
## 自定义验证
|
||||
|
||||
### 文件大小检查
|
||||
\`\`\`bash
|
||||
# 检查文件行数是否超过 500 行
|
||||
wc -l <file> | awk '{if($1>500) exit 1}'
|
||||
\`\`\`
|
||||
|
||||
### Z-Index 规范检查
|
||||
\`\`\`bash
|
||||
# 检查是否有硬编码的 z-index
|
||||
grep -r "z-index:\s*[0-9]" --include="*.scss" --include="*.css"
|
||||
grep -r "zIndex:\s*[0-9]" --include="*.tsx" --include="*.ts"
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
### Opentu 项目完整验证清单
|
||||
|
||||
```markdown
|
||||
# 任务完成验证清单
|
||||
|
||||
## 代码质量
|
||||
- [ ] `nx typecheck drawnix` 通过
|
||||
- [ ] `nx lint drawnix` 通过
|
||||
- [ ] `npm run format:check` 通过
|
||||
|
||||
## 测试覆盖
|
||||
- [ ] 相关单元测试通过
|
||||
- [ ] 新功能有对应测试
|
||||
|
||||
## 规范遵守
|
||||
- [ ] 文件行数 < 500 行
|
||||
- [ ] 使用 Z_INDEX 常量
|
||||
- [ ] TDesign 组件使用 light 主题
|
||||
- [ ] 无硬编码敏感信息
|
||||
|
||||
## 构建验证
|
||||
- [ ] `npm run build` 成功
|
||||
- [ ] 无控制台警告/错误
|
||||
|
||||
## 功能验证
|
||||
- [ ] 本地运行 `npm start` 测试功能
|
||||
- [ ] 移动端适配正常
|
||||
```
|
||||
|
||||
### 在 CODEBUDDY.md 中配置验证
|
||||
|
||||
```markdown
|
||||
# CODEBUDDY.md 添加
|
||||
|
||||
## 自动验证规则
|
||||
|
||||
完成任何代码修改后,必须执行以下验证步骤:
|
||||
|
||||
1. **类型检查**: `nx typecheck drawnix`
|
||||
2. **代码规范**: `nx lint drawnix`
|
||||
3. **测试运行**: `nx test drawnix --passWithNoTests`
|
||||
4. **构建验证**: `npm run build:web`
|
||||
|
||||
如果任何步骤失败,必须先修复问题再继续。
|
||||
|
||||
## 验证失败处理
|
||||
|
||||
### 类型错误
|
||||
- 检查类型定义是否完整
|
||||
- 确认 import 路径正确
|
||||
- 查看相关 interface/type 定义
|
||||
|
||||
### Lint 错误
|
||||
- 运行 `nx lint drawnix --fix` 自动修复
|
||||
- 手动修复无法自动修复的问题
|
||||
|
||||
### 测试失败
|
||||
- 分析失败原因
|
||||
- 更新测试或修复代码
|
||||
- 确保测试覆盖新功能
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 快速参考卡片
|
||||
|
||||
### 日常开发流程
|
||||
|
||||
```
|
||||
1. 开启 Plan 模式 (Shift+Tab×2)
|
||||
2. 描述任务,确认计划
|
||||
3. 退出 Plan 模式开始实现
|
||||
4. 完成后运行验证命令
|
||||
5. 使用 /auto-commit 提交
|
||||
```
|
||||
|
||||
### 复杂功能开发流程
|
||||
|
||||
```
|
||||
1. /speckit.specify - 写规范
|
||||
2. /speckit.clarify - 澄清疑问
|
||||
3. /speckit.plan - 制定计划
|
||||
4. /speckit.tasks - 生成任务
|
||||
5. /speckit.implement - 执行实现
|
||||
6. 验证 + /auto-commit
|
||||
```
|
||||
|
||||
### 常用命令速查
|
||||
|
||||
| 操作 | 命令/快捷键 |
|
||||
|------|------------|
|
||||
| Plan 模式 | `Shift + Tab` × 2 |
|
||||
| 自动提交 | `/auto-commit` |
|
||||
| 权限设置 | `/permissions` |
|
||||
| SpecKit 自动流程 | `/speckit.auto` |
|
||||
| 查看帮助 | `/help` |
|
||||
|
||||
---
|
||||
|
||||
## 附录: 配置模板
|
||||
|
||||
### .codebuddy/settings.json 模板
|
||||
|
||||
```json
|
||||
{
|
||||
"model": "opus",
|
||||
"hooks": {
|
||||
"postToolUse": {
|
||||
"write": "prettier --write $FILE",
|
||||
"edit": "prettier --write $FILE"
|
||||
}
|
||||
},
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"npm run build",
|
||||
"npm test",
|
||||
"nx *",
|
||||
"git status",
|
||||
"git diff",
|
||||
"git log"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 验证脚本模板
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# scripts/validate.sh
|
||||
|
||||
echo "🔍 Running validation..."
|
||||
|
||||
echo "1. Type checking..."
|
||||
nx typecheck drawnix || exit 1
|
||||
|
||||
echo "2. Linting..."
|
||||
nx lint drawnix || exit 1
|
||||
|
||||
echo "3. Testing..."
|
||||
nx test drawnix --passWithNoTests || exit 1
|
||||
|
||||
echo "4. Building..."
|
||||
npm run build:web || exit 1
|
||||
|
||||
echo "✅ All validations passed!"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**文档版本:** v1.0
|
||||
**最后更新:** 2025-01-09
|
||||
**参考来源:** Boris Cherny - Claude Code 实战技巧
|
||||
**维护者:** Opentu 团队
|
||||
Reference in New Issue
Block a user