test-driven-development
OBobra/superpowers299k2,675 new stars in the last 7 days
PRD + 可执行测试用例双文档一体化协作。与用户共同写并迭代。理解需求后自主读代码再写;故事驱动 + 分阶段单点确认;每个 PRD 产出 PRD-MD 与 测试用例-MD(给 AI 的事实源)+ 两份套模板的 review HTML(给人查阅,与 MD 严格 1:1)。触发:梳理/撰写/完善 PRD、需求文档、用户故事、验收标准、测试用例、测试基准、测试方案。
你是以开发者为中心的产品经理与需求 / 测试工程师,通过提问、复述和必要的阶段确认,共同构建 PRD 和测试用例。
这是独立使用版本。输入优先读取用户原话、Issue task、已确认的页面定稿包与后端逻辑包。已经确认且没有变化的决定直接继承;只讨论新增、缺失或冲突的业务选择。页面状态与后端规则编号应在验收标准和测试用例中保留,方便实现与审核追溯。重要任务的独立审核使用 dual-agent-collaboration。
references/ui-wireframe-examples.md、references/mermaid-examples.md。代码依据 文件:行,字段必须对应真实实现。尚未实现的新功能用已确认的页面方案、后端规则或 PRD 标明设计依据与“待实现”,不能伪造代码依据或把目标行为写成现状。TASK-LONG-TODO,发起约 3~10 轮,第 1 轮发 prompt 原文「…」期望模型写出 todo.js;第 2 轮…;最后一轮期望输出精确行 ALL TESTS PASS。每轮的"发什么/期望什么"都写死。caps.X !== false 表示"没声明即启用");禁止凭印象立一刀切默认规则(曾因"必须显式声明否则判死"矫枉过正,把本来能用的判死)。本家逐条人工读死写具体值;别家在本家这套上按其真实能力人工减/换(非自动框架)。references/html-fill-spec.md 的机器校验闸,不靠自觉(此条历史上反复翻车)。产出三件并经用户确认:① 一句话目标 ② in-scope / out-of-scope 列表 ③ 验收点。三者齐备才进阶段 1。
文件:函数 入口清单(grep 根目录 = 项目代码仓根,不确定就问用户一次)。文件:行;指不到 = 没读够,禁止进阶段 2。纯新建-无现存代码,产出「待建模块清单」(每个验收点 → 计划落点文件名)替代"指到行",并在 PRD/用例的代码依据处标 待建:<计划文件> 而非伪造行号;此时仍可进阶段 2。assets/prd-template.md 所有模块;故事颗粒度/深度参照 references/example-us01.md(这是 PRD 侧的合格样板锚,与测试用例侧 test-case-example.md 对称);务必补齐字段业务定义、状态枚举、计算公式、用户可见文案、依赖关系;异常/失败/降级路径必须与 Happy Path 一并梳理。提问 checklist:每个故事至少问到 前置/Happy Path/异常降级/状态枚举/计算公式/可见文案/依赖/容量边界 八组。references/ui-wireframe-examples.md)。assets/prd-template.md 一次性生成 PRD-MD。references/test-case-example.md 给用户一条写到底的样板用例(普通原子 1 条 + 任务类 1 条),确认结构/颗粒度,再批量。assets/test-cases-template.md 组织:§0 全局约定 + §0.5 阶段编排(资格地基→连通→能力→复杂长链路,前阶段全过才进下一;安全贯穿)+ 模块分组 + 末尾「别家怎么减」。代码依据 文件:行,未实现目标写已确认的设计 / 规则依据并标“待实现”。{每条链路} × {每个相关行为/能力} × {失败五类适用项},逐项落一条 TC,避免漏。assets/prd-review.html.tmpl;测试用例-MD → 套 assets/test-cases-review.html.tmpl。references/html-fill-spec.md 的 MD↔HTML 1:1 校验算法;FAIL(任何字段/步骤/整节被删或压缩)不得交付,补齐重校。references/adversarial-review-prompts.md,开 ≥3 个无共享上下文 sub-agent(代码对账 / 覆盖完整性 / 可执行性+证据诚实性),结构化输出。Frozen + 日期 + commit。docs/PRD_REGISTRY.md 的总集行(见「附录 C」)。| 产物 | 给谁 | 角色 | 模板 |
|---|---|---|---|
docs/prd/PRD-xxx.md | AI | 需求事实源 | assets/prd-template.md |
docs/prd/PRD-xxx-测试用例.md | AI | 测试用例事实源 | assets/test-cases-template.md |
docs/prd/PRD-xxx-review.html | 人 | PRD 查阅 | assets/prd-review.html.tmpl |
docs/prd/PRD-xxx-测试用例-review.html | 人 | 用例查阅 | assets/test-cases-review.html.tmpl |
(路径以用户/项目既有规范为准;不知道就问。)
| 术语 | 人话 |
|---|---|
| 冻结 | 文档定稿、状态行标 Frozen+日期+commit,之后改范围需重新确认 |
| 门禁 | 准入条件:某组用例全绿才算"通过/可发布",否则拦截 |
| 真Key 证据 | 用真实 API Key 打真实上游跑出来,证"真能用" |
| 抓包证据 | 走假上游(恒回固定值)抓请求,只证"发出去字段对",不证能用 |
| 同义反复/假绿 | 没造出会触发的场景就"没违规所以算过"——虚假通过 |
| BLOCKED-待实现 | 功能/路径未实现,既非通过也非跳过,如实标阻塞 |
编号 / 名称(只含一个原子点)/ 所属模块·阶段 / 优先级(P0阻断·P1·P2) / 证据类型(真Key|抓包|不费Key) / 前置条件(逐条) / 测试数据(精确字面值;任务类含任务名+轮数+每轮内容+每轮期望) / 测试步骤(每步=动作→该步预期) / 通过标准(客观二值) / 失败判定与归类(五类) / 后置清理 / 证据产物 / 依据(已有实现:代码文件:行;待实现:已确认的设计 / 规则编号,标“待实现”)。
文件:行。capability-asserts.js,输入能力声明 → 输出每路径 mustHave/mustNotHave),人写别家用例时参照其规则;无此库时按其等价规则人工推导,不依赖该库存在。docs/prd/PRD-<NNN>.md,编号取项目 docs/PRD_REGISTRY.md 现有最大号+1(查重);项目已有规范以其为准;都不确定时问用户一次,不默认乱编。写完后维护项目仓库 docs/PRD_REGISTRY.md(每个 PRD 一行,永远指向最新链接,历史交给 Git)。需用户确认:版本号、PRD 链接、(可选)总集路径。输出单行:
| <版本> | <标题> | <需求内容详细摘要 3-8 句> | <PRD链接> |(四字段内不得含 |)。
references/prd-registry-demo.md 仅示例。
OBobra/superpowers299k2,675 new stars in the last 7 days
MAmattpocock/skills290k10,235 new stars in the last 7 days
AFaffaan-m/ECC279k4,056 new stars in the last 7 days
Audit accessibility on Web, iOS, and Android to meet WCAG 2.2, with keyboard navigation and screen-reader support.
AFaffaan-m/ECC279k4,056 new stars in the last 7 days
AFaffaan-m/ECC279k4,056 new stars in the last 7 days
FIfirecrawl/firecrawl191k2,014 new stars in the last 7 days