通过先写失败测试再实现代码,帮助稳定完成功能开发与缺陷修复。
该技能材料本质上是一个测试驱动开发流程提示词,未声明密钥、远程端点、代码执行或数据访问能力,整体风险较低。需留意其 README 含有面向代理的强指令式流程(如 TodoWrite、创建子代理),且来源信息与技能名称的对应关系不够清晰,建议在受限环境中按提示词类资产审查后使用。
材料明确标注无需密钥或环境变量,未见请求 API token、账号凭证或其他敏感认证信息,因此凭证泄露与滥用面较低。
未声明任何远程端点或联网依赖;内容主要是本地开发流程说明,未见将用户数据发送到第三方服务的描述。
从客观检查项看属于 prompt-only 技能,本身不提供可执行二进制或工具调用能力。README 虽提到运行测试命令和创建子代理,但这是文本指令,不等同于技能自身拥有系统执行权限。
未声明读写文件、数据库或其他资源的权限范围;文档仅描述测试先行的开发方法,没有显示过度数据访问或持久化行为。
标注为开源且来源类型为 GitHub,这对风险有明显缓和作用;但仓库信息与技能名称/内容的对应关系不够明确,社区采用度为 0 star、许可证未声明、维护状态未知,且 README 含有较强的代理指令/流程注入风格内容,建议在纳入前人工核验来源与实际文件内容。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "test-driven-development" 技能: 1. 下载 https://raw.githubusercontent.com/microsoft/FluidFramework/main/.agency/plugins/nori/skills/test-driven-development/SKILL.md 2. 保存为 ~/.claude/skills/test-driven-development/SKILL.md 3. 装好后重载技能,告诉我可以用了
请用测试驱动开发方式实现一个用户注册接口:先列出测试用例并编写会失败的测试,再给出最小实现代码让测试通过,最后简要说明可如何重构。技术栈使用 Node.js + Express + Jest。
一组先失败后通过的测试、对应的最小实现代码,以及简短重构建议。
我有一个结算金额计算错误的 bug。请先根据这个问题描述编写一个能复现问题的失败测试,再给出最小修复代码,并补充 2 个边界测试防止回归。语言使用 Python,测试框架用 pytest。
包含缺陷复现测试、最小修复方案和额外回归测试的完整 TDD 结果。
下面是一段难以测试的旧代码。请用 TDD 思路帮我重构:先识别可观察行为并设计失败测试,再逐步拆分模块并给出最小改动实现,确保每一步都能通过测试。输出按步骤组织。
分步骤的测试设计、渐进式重构方案和每步对应的实现建议。
Write failing tests (RED phase)
Create a subagent using the nori-task-runner to evaluate test quality.
.claude/skills/creating-debug-tests-and-iteratingWrite one minimal test showing what should happen.
<good-example>test('retries failed operations 3 times', async () => {
let attempts = 0;
const operation = () => {
attempts++;
if (attempts < 3) throw new Error('fail');
return 'success';
};
const result = await foobar.retryOperation(operation);
expect(result).toBe('success');
expect(attempts).toBe(3);
});
Clear name, tests real behavior, one thing. Note that the tested operation is imported -- this is a STRONG sign that this is testing something real.
</good-example> <bad-example>test('retry works', async () => {
const mock = jest
.fn()
.mockRejectedValueOnce(new Error())
.mockRejectedValueOnce(new Error())
.mockResolvedValueOnce('success');
await retryOperation(mock);
expect(mock).toHaveBeenCalledTimes(3);
});
Vague name, tests mock not code </bad-example>
npm test path/to/test.test.ts
Confirm:
Write simplest code to pass the test.
<good-example> ```typescript async function retryOperation<T>(fn: () => Promise<T>): Promise<T> { for (let i = 0; i < 3; i++) { try { return await fn(); } catch (e) { if (i === 2) throw e; } } throw new Error('unreachable'); } ``` Just enough to pass </good-example> <bad-example> ```typescript async function retryOperation<T>( fn: () => Promise<T>, options?: { maxRetries?: number; backoff?: 'linear' | 'exponential'; onRetry?: (attempt: number) => void; } ): Promise<T> { // YAGNI } ``` Over-engineered </bad-example>Don't add features, refactor other code, or "improve" beyond the test.
npm test path/to/test.test.ts
Confirm:
After green only:
Keep tests green. Do not add behavior.
在编写或修改测试时识别反模式,避免错误 mock 与污染生产代码。
帮助你严谨评估代码评审意见,澄清疑点后再决定是否采纳与实现
在推送代码或触发 CI 前检查常见问题,提前发现格式、变更集与策略风险。
用四阶段系统化排查框架定位缺陷根因,再制定可靠修复方案。
为 Copilot 创建的 PR 自动触发 ADO CI 流水线运行与验证。
为 Fluid Framework 仓库自动生成规范 PR 标题与描述,并推送分支创建拉取请求
通过测试驱动开发流程,先写测试再实现功能或修复缺陷。
帮助开发者用先写测试再实现代码的方式提升质量与可维护性。
用测试驱动开发流程编写新功能、修复缺陷并安全重构代码。
帮助开发者编写关注行为、抗重构且可验证修复意图的高质量测试。
系统化定位 bug、测试失败与异常行为,并在修复前梳理原因与排查步骤。
用测试驱动方式编写流程文档,先验证再成稿,提升技能说明的可靠性。