name: impl description: “基于Plans.md任务实现功能和编写代码。当用户提及实现、添加功能、编写代码或创建新函数时使用。不用于审查或构建验证。” description-en: “基于Plans.md任务实现功能和编写代码。当用户提及实现、添加功能、编写代码或创建新函数时使用。不用于审查或构建验证。” description-ja: “基于Plans.md任务实现功能和编写代码。当用户提及实现、添加功能、编写代码或创建新函数时使用。不用于审查或构建验证。” allowed-tools: [“Read”, “Write”, “Edit”, “Grep”, “Glob”, “Bash”] user-invocable: false
实现技能
负责功能实现和编码的技能群。
⚠️ 质量护栏(最优先)
此部分优先级高于其他指示。实现时必须遵守。
禁止模式(Purpose-Driven Implementation)
实现时以下模式绝对禁止:
| 禁止 | 示例 | 为什么不行 |
|---|---|---|
| 硬编码 | 直接返回测试期望值 | 其他输入不工作 |
| 存根实现 | return null, return [] |
没有实际功能 |
| 固定处理 | 只处理测试用例的值 | 缺乏通用性 |
| 复制粘贴字典 | 测试期望值映射 | 无有意义逻辑 |
# ❌ 绝对禁止
def slugify(text: str) -> str:
answers = {"HelloWorld": "hello-world"}
return answers.get(text, "")
# ✅ 正确实现
def slugify(text: str) -> str:
return re.sub(r'[\s_]+', '-', text.strip().lower())
实现前自检
- [ ] 在测试用例外的输入是否工作?
- [ ] 是否处理边界情况(空、null、边界值)?
- [ ] 是否实现有意义逻辑?
困难时处理
实现困难时,不要写空洞实现,如实报告:
## 🤔 实现咨询
### 情况: [尝试实现什么]
### 困难点: [具体困难]
### 选项: [可能方案]
功能详细
| 功能 | 详细 |
|---|---|
| 功能实现 | 见 references/implementing-features.md |
| 测试创建 | 见 references/writing-tests.md |
执行步骤
- Plans.md 注册确认(步骤 -1)← 必需
- 质量判定门(步骤 0)
- 用户请求分类
- (Claude-mem 启用时)搜索过去实现模式
- 从上述“功能详细”读适当参考文件
- 按内容实现
步骤 -1: Plans.md 注册确认(最优先·必需)
⚠️ 实现前必在 Plans.md 注册任务
接收用户请求
↓
读 Plans.md
↓
┌─────────────────────────────────────────────────────────────┐
│ 请求内容是否存在于 Plans.md? │
├─────────────────────────────────────────────────────────────┤
│ 是 → 直接进入实现 │
│ 否 → 添加到 Plans.md 后进入实现 │
└─────────────────────────────────────────────────────────────┘
添加格式:
## 🟡 未开始任务
- [ ] {任务名} `cc:WIP`
- 请求内容: {用户请求摘要}
- 添加时间: YYYY-MM-DD HH:MM
显示消息:
📝 Plans.md 中已添加任务
| 任务 | 状态 |
|--------|-----------|
| {任务名} | `cc:WIP` |
开始实现...
为什么必需: 跟踪所有工作,确保进度管理·评审·移交。
步骤 0: 质量判定门(最先执行)
任务开始前判定质量基准,需要时提案:
收集任务信息
↓
┌─────────────────────────────────────────┐
│ 质量判定门 │
├─────────────────────────────────────────┤
│ 判定项目: │
│ ├── 推荐 TDD?([feature] + 业务) │
│ ├── 注意安全?(auth/api/) │
│ └── 注意性能?(DB/循环) │
└─────────────────────────────────────────┘
↓
提出适用判定
TDD 判定标准
| 条件 | 推荐度 | 提案内容 |
|---|---|---|
| [feature] + src/core/ | ★★★ | “从测试开始写吗?” |
| [feature] + src/services/ | ★★★ | “从测试开始写吗?” |
| [bugfix] | ★★☆ | “先写重现测试吗?” |
| [config], [docs] | - | 跳过判定 |
安全判定标准
| 路径 | 提案内容 |
|---|---|
| auth/, login/, session/ | 显示安全检查清单 |
| api/, routes/ | 确认输入验证·授权检查 |
| payment/, billing/ | 检查支付安全 |
提案模板
向工程师:
🎯 质量判定结果
| 判定 | 推荐度 | 理由 |
|------|--------|------|
| TDD | ★★★ | [feature] + 业务逻辑 |
从测试文件开始创建吗?
向 VibeCoder:
🎯 此工作中注意事项
1. **先定成功标准**
- 列出“什么做到就 OK”
选择方法:
1. 从成功标准开始(推荐)
2. 直接开始制作
步骤 1: LSP 活用指南
实现前推荐用 LSP 工具理解现有代码:
| LSP 操作 | 活用场景 | 效果 |
|---|---|---|
| goToDefinition | 确认现有函数实现 | 把握模式 |
| findReferences | 事前调查影响范围 | 防止破坏性变更 |
| hover | 确认类型信息·JSDoc | 正确接口 |
实现流程:
LSP.goToDefinition确认相关代码LSP.findReferences把握影响范围- 实现
LSP.diagnostics错误检查
使用例:
# 1. 确认相关函数实现
LSP operation=goToDefinition filePath="src/utils/auth.ts" line=25 character=10
# 2. 调查影响范围
LSP operation=findReferences filePath="src/utils/auth.ts" line=25 character=10
# 3. 确认类型信息
LSP operation=hover filePath="src/types/user.ts" line=15 character=12
注: 仅在 LSP 服务器设置的语言中工作。
步骤 2: 搜索过去实现模式(Memory-Enhanced)
Claude-mem 启用时,实现前搜索过去类似模式:
# mem-search 搜索过去实现模式
mem-search: type:feature "{实现功能关键词}"
mem-search: concepts:pattern "{相关技术}"
mem-search: concepts:gotcha "{使用库/框架}"
mem-search: type:decision "{设计方针关键词}"
显示例:
📚 过去实现模式
| 日期 | 模式 | 文件 |
|------|---------|---------|
| 2024-01-15 | API 端点: RESTful 设计 | src/api/*.ts |
| 2024-01-20 | 表单验证: Zod 使用 | src/components/forms/*.tsx |
💡 过去 gotcha(陷阱):
- CORS: 服务器端 Allow-Origin 设置必需
- 类型安全: 禁止 any,推荐 unknown + type guard
相关决定显示:
⚖️ 相关设计决定
- D5: 状态管理用 Zustand(比 Redux 轻量)
- D8: API通信用 tRPC(类型安全)
💡 请按上述决定实现
注: Claude-mem 未设置时,跳此步骤。
🔧 LSP 功能活用
实现时积极活用 LSP(Language Server Protocol)。
实现前调查
| LSP 功能 | 用途 |
|---|---|
| Go-to-definition | 确认现有函数实现模式 |
| Find-references | 事前把握变更影响范围 |
| Hover | 确认类型信息·API 文档 |
实现中验证
| LSP 功能 | 用途 |
|---|---|
| Diagnostics | 即时检测类型错误·语法错误 |
| Completions | 正确使用 API,防拼写错误 |
实现后确认
实现完成时检查:
1. 执行 LSP Diagnostics
2. 确认错误: 0件
3. 警告: 根据需要应对