بنقرة واحدة
feature-implementation
功能编码实现执行器(TDD 驱动)。自动读取任务规划,按 Red-Green-Refactor 循环执行指定阶段的开发任务,完成后更新任务状态并进行质量检查。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
功能编码实现执行器(TDD 驱动)。自动读取任务规划,按 Red-Green-Refactor 循环执行指定阶段的开发任务,完成后更新任务状态并进行质量检查。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
功能开发阶段使用。明确具体功能的业务需求和验收标准,产出功能需求文档 (FRD)。
功能任务规划。将技术方案拆解为细粒度、可执行的开发任务清单 (Task List)。
设计功能的技术实现方案。在功能需求明确后使用,产出包含API、数据库、核心逻辑的详细技术方案 (TDD)。
生成项目导航文档。基于项目核心文档生成 AGENT.md,作为 AI 助手的项目导航。
记录和查阅 AI 错题本。当发生错误或需要预警时使用,建立自我进化的反馈闭环,避免重复错误。
交互式 BUG 排查专家。通过持续提问和引导,逐步缩小问题范围,辅助用户定位 BUG 根源。
| name | feature-implementation |
| description | 功能编码实现执行器(TDD 驱动)。自动读取任务规划,按 Red-Green-Refactor 循环执行指定阶段的开发任务,完成后更新任务状态并进行质量检查。 |
这是一个执行型 Skill。当用户说"完成 XX 功能的任务 第几阶段"时,使用此 Skill。
请严格遵守项目上下文强制协议:specs/PROJECT-CONTEXT.md 在执行本 Skill 之前,必须先建立项目认知。
根据用户指定的功能和阶段,按照 TDD(测试驱动开发) 流程自动执行对应的开发任务,并在完成后更新任务状态。
本 Skill 强制使用 Red-Green-Refactor 循环来完成每一个开发任务:
RED(红灯)→ GREEN(绿灯)→ REFACTOR(重构)
↑ │
└────────────────────────────────────┘
下一个任务 / 下一组测试
铁律:没有失败的测试,就不写实现代码。
请严格遵守通用边界守卫规则:specs/GUARDRAILS.md 当前阶段: 编码实现阶段 (Implementation)
用户会以以下格式提供指令:
常规任务(来自 feature-task-planning):
增量变更任务(来自 feature-evolution):
示例:
从用户输入中提取:
常规任务:
specs/features/[功能名]_任务规划.mdfeature-task-planning Skill增量变更任务:
specs/features/[功能名]_变更任务_[CR序号].mdfeature-evolution Skillspecs/features/[功能名]_任务规划.md,了解已有任务的完成状态必须按顺序读取以下文档,建立完整的功能上下文:
specs/features/[功能名].mdspecs/features/[功能名]_技术方案.mdspecs/features/[功能名]_任务规划.md如果任何文档缺失,必须停止并提示用户先完成前置步骤。
在开始编码前,必须检查:
如果前置条件不满足,必须停止并告知用户。
按照任务顺序,逐个完成。每个任务严格遵循 Red-Green-Refactor 循环:
在编写任何实现代码之前,先编写测试。
分析测试需求
编写测试文件
tests/unit/[模块名].test.jstests/integration/[功能名].test.jstests/components/[组件名].test.js运行测试,确认失败(RED)
如果测试在没有实现代码的情况下就通过了,说明:
目标:用最少的代码让测试通过,不多不少。
编写实现代码
运行测试,确认通过(GREEN)
在测试保护下,改善代码质量。
代码审视
执行重构(如果需要)
运行测试,确认仍然通过
TDD 循环完成后,必须通过验收测试验证任务成果在真实环境中的正确性。
测试依据:
specs/features/[功能名].md 中的验收标准章节)specs/features/[功能名].md)适用场景:当前任务有 UI 变化或页面可感知的行为变更。
使用 Playwright MCP 对 http://localhost:3300 进行端到端验证。
按照 AC 描述的用户操作路径执行交互,验证页面状态、显示内容、交互反馈是否符合预期,并在关键验证点截图留档。
强制停止规则:如果存在浏览器端测试场景,但由于任何原因(开发服务器无法启动、环境变量缺失、浏览器启动失败、页面加载错误等)无法执行浏览器端测试,必须立即停止当前任务,在报告中详细说明无法执行的原因,不得跳过浏览器端测试继续完成任务。
适用场景:纯后端逻辑、工具函数、数据处理等无法通过浏览器验证的任务。
此类任务在 TDD 阶段已编写单元测试,确认 TDD 测试全部通过即视为验收通过。
适用场景:涉及数据库变更的任务(如创建、修改、删除数据)。
使用 Supabase MCP(execute_sql)查询数据库,验证数据是否符合预期:
注意:数据验证可与浏览器端测试或单元测试组合使用,不互斥。
若验收测试未通过,进入修复循环:
验收测试失败 → 分析失败原因 → 修复代码 → 重跑 TDD 测试(防回归)→ 重跑验收测试 → 仍失败则继续循环
规则:
修复过程中,如果实现逻辑与现有功能文档产生偏差,必须同步更新相关文档:
specs/features/ 下的需求文档和任务规划文档如果未经历修复且代码与文档一致,跳过此步骤。
重要:如果跳过了 RED 阶段(没有先写测试),任务不算完成。
当该阶段的所有任务完成后:
运行完整测试套件
集成测试
验收标准检查
代码质量检查
生成阶段完成报告
[x]assets/stage-completion-report-template.md 作为模板docs/开发记录/[功能名]_阶段[N]_完成报告.md在编写新代码前,必须:
每个任务必须严格遵循 Red-Green-Refactor 循环,不可跳步:
user.js -> user.test.js违反检查清单(出现以下情况必须停止并修正):
如果代码修改影响了文档,必须:
错误:缺少必要的文档
检查结果:
- 需求文档 (specs/features/[功能名].md): [存在 / 缺失]
- 技术方案 (specs/features/[功能名]_技术方案.md): [存在 / 缺失]
- 任务规划 (specs/features/[功能名]_任务规划.md): [存在 / 缺失]
请先执行以下步骤:
1. 使用 feature-requirements-clarification 生成需求文档
2. 使用 feature-tech-design 生成技术方案
3. 使用 feature-task-planning 生成任务规划
然后再使用本 Skill 进行编码实现。
警告:依赖任务未完成
当前任务 Task-05 依赖于:
- Task-02 (未完成)
- Task-04 (未完成)
建议:
1. 先完成依赖任务
2. 或者调整任务顺序(需要用户确认)
警告:技术方案细节不足
任务 Task-03 要求实现 XXX,但技术方案中缺少以下信息:
- API 接口定义
- 数据结构设计
建议:
1. 补充技术方案文档
2. 或者根据现有信息做合理推断(需要用户确认)
警告:测试无法正常运行
错误信息:[具体错误]
可能原因:
1. 测试框架未安装或未配置
2. 依赖库缺失
建议修复方案:
1. 检查并安装测试依赖
2. 检查测试配置文件
测试环境就绪后才能开始 TDD 循环。
错误:代码执行失败
错误信息:[具体错误]
可能原因:
1. [原因分析]
2. [原因分析]
建议修复方案:
1. [方案1]
2. [方案2]
是否继续尝试修复?
用户: 完成用户登录功能的任务 第1阶段
AI:
正在读取相关文档...
需求文档:specs/features/用户登录.md
- 核心需求:支持手机号+密码登录
- 验收标准:AC-001 到 AC-005
技术方案:specs/features/用户登录_技术方案.md
- API: POST /api/auth/login
- 数据库:users 表设计
- 核心逻辑:密码加密、JWT 生成
任务规划:specs/features/用户登录_任务规划.md
- 第1阶段包含 2 个任务
第1阶段:数据层 (Data Layer)
包含以下任务:
- Task-01: 创建 users 表
- Task-02: 实现用户数据访问层
前置检查:
[x] 文档完整性检查通过
[x] 项目环境就绪
[x] 测试环境就绪(Jest 已配置)
[x] 无依赖任务
[x] 已理解需求和技术方案
即将开始执行 Task-02: 实现用户数据访问层
验证标准:
- 能根据手机号查询用户
- 能创建新用户记录
- 密码字段使用 bcrypt 加密存储
是否继续?
用户: 继续
AI:
=== RED 阶段:编写测试 ===
创建测试文件:tests/unit/user-repository.test.js
测试用例:
describe('UserRepository')
it('应能根据手机号查询已有用户')
it('查询不存在的手机号应返回 null')
it('应能创建新用户并返回用户对象')
it('创建用户时密码应使用 bcrypt 加密')
it('创建重复手机号用户应抛出错误')
运行测试...
FAIL tests/unit/user-repository.test.js
UserRepository
x 应能根据手机号查询已有用户 (ReferenceError: UserRepository is not defined)
x 查询不存在的手机号应返回 null
x 应能创建新用户并返回用户对象
x 创建用户时密码应使用 bcrypt 加密
x 创建重复手机号用户应抛出错误
Tests: 5 failed, 0 passed
RED 确认:5 个测试全部失败,原因是功能未实现。进入 GREEN 阶段。
=== GREEN 阶段:编写实现代码 ===
创建文件:src/repositories/user-repository.js
[展示实现代码...]
运行测试...
PASS tests/unit/user-repository.test.js
UserRepository
v 应能根据手机号查询已有用户 (23ms)
v 查询不存在的手机号应返回 null (8ms)
v 应能创建新用户并返回用户对象 (45ms)
v 创建用户时密码应使用 bcrypt 加密 (120ms)
v 创建重复手机号用户应抛出错误 (15ms)
Tests: 5 passed, 0 failed
GREEN 确认:全部测试通过。进入 REFACTOR 阶段。
=== REFACTOR 阶段:优化代码 ===
重构内容:
- 提取数据库连接逻辑为公共方法
- 优化错误信息的可读性
运行测试确认重构安全...
PASS tests/unit/user-repository.test.js (5/5)
REFACTOR 确认:重构完成,所有测试仍然通过。
=== Task-02 完成 ===
TDD 循环记录:
- RED: 5 个测试失败(功能未实现)
- GREEN: 5 个测试通过(实现完成)
- REFACTOR: 5 个测试通过(重构安全)
测试覆盖率: 96%
是否满意?继续下一个任务还是需要调整?
AI:
=== RED 阶段:编写测试 ===
创建测试文件:tests/unit/auth-service.test.js
运行测试...
PASS tests/unit/auth-service.test.js
AuthService
v 应验证正确的密码 (5ms)
警告:测试在没有实现代码的情况下通过了!
分析原因:项目中已存在 src/services/auth-service.js,
其中包含了 validatePassword 方法。
处理方案:
1. 该功能已被之前的任务实现,跳过此测试点
2. 补充更具体的测试用例来验证未覆盖的场景
建议选择方案 2,补充以下测试:
- 测试密码为空时的处理
- 测试超长密码的处理
是否同意?
用户: 完成支付功能的任务 第3阶段
AI:
已定位任务规划文档:specs/features/支付功能_任务规划.md
警告:依赖任务未完成
第3阶段的任务依赖于:
- Task-01 (数据层) - 未完成
- Task-03 (表现层) - 未完成
建议:
1. 先完成第1阶段和第2阶段
2. 或者告诉我"强制执行"(不推荐)
请选择:
docs/开发记录/[功能名]_阶段[N]_完成报告.md)