| name | 507-prototype |
| description | 前置验证与证据 skill。只在一个具体未知能由低成本、可丢弃原型直接观察,且预期学习收益高于制作与清理成本时使用;逻辑/状态问题可做交互式终端原型,UI/视觉问题可做结构差异明显的页面变体。记录证据与 verdict 后删除外壳或明确清理状态,不把原型当半成品。Use when user mentions 做个原型, 做个 demo, 快速验证, 让我玩一下, 试几个设计, 验证状态机, 验证数据模型, mock UI, 可丢弃原型, prototype, throwaway prototype, proof of concept, PoC. |
前置原型验证(prototype)
用一段可丢弃实现回答一个具体未知。原型属于前置验证 / 证据层,通常发生在 PRD、执行工单或正式实现之前;也可在探索、调研或对齐过程中被调用后返回。
原型不是半成品。要保留的是证据和结论,外壳默认删除。
进入条件
同时满足才使用:
- 未知具体到可以写成一个可观察问题;
- 文档、现有代码、测试或静态推理不足以回答;
- 原型能比正式实现更快、更便宜地获得有效证据;
- 预期学习收益高于创建、试玩、验证和清理成本;
- 结论会改变需求、交互、模型、接口或是否继续投入。
如果正式实现本身更小、更安全,或原型不会改变任何决定,直接实施,不建原型。
典型形状
- 逻辑 / 状态问题:可交互 terminal app(终端应用)、纯 reducer(状态归约器)、state machine(状态机)或最小 API 调用样例;每次动作后暴露完整状态。
- UI / 视觉问题:同一真实宿主页面上的 2~4 个结构差异明显的变体,用稳定开关切换;不以换色和微调间距冒充不同方向。
- 技术可行性问题:最小
spike(探针实现),只验证关键依赖、性能数量级、权限边界或协议行为。
不覆盖什么
- 用户意图、范围或风险取舍尚未确认 →
507-grill;
- 只需查项目事实或外部机制 →
507-explore / 507-research;
- 正式生产实现、生产级测试或完整视觉打磨;
- 为“以后可能有用”提前搭脚手架。
核心纪律
- 一个原型只回答一个主问题:在
NOTES.md 或原型入口写出问题、假设和成功/失败信号。
- 明确可丢弃:放入项目约定的原型目录或名字含
原型 / prototype 的隔离范围,不混进生产入口。
- 复用现有运行时:优先项目已有语言、依赖和 task runner;不为原型引入长期基础设施。
- 最小可观察:只实现产生证据所需的状态、交互或数据;默认内存状态、假数据和只读操作。
- 验证原型本身:至少运行启动/关键路径 smoke test(冒烟测试),确认观察结果不是坏脚本或坏环境造成的;不要求生产级测试覆盖。
- 先记录证据,再处理代码:写清观察、反例和 verdict(结论),再删除外壳、吸收少量经过重写的逻辑,或说明暂时保留原因与清理责任。
- 原型不能自动升生产:正式实现重新按项目规范设计、测试和审查;不直接把粗糙壳改名上线。
工作流程
- 写出问题、假设、观察方式和停止条件。
- 做成本收益判断;不值得建时说明理由并回到原流程。
- 选择最小原型形状并隔离实现。
- 运行关键路径,让 agent 或用户按问题需要观察;只有体验判断确实属于用户时才要求用户试玩。
- 对照假设记录证据,给出
supported(支持)、rejected(否定) 或 inconclusive(不充分) verdict。
- 删除、吸收或登记清理状态,并把结论送回调用它的工作流。
证据记录
## 验证问题
<一个可观察问题>
## 假设与信号
- 假设:...
- 支持信号:...
- 否定信号:...
## 运行方式与范围
- 命令 / URL:...
- 原型明确没有覆盖:...
## 观察
- ...
## Verdict
- supported / rejected / inconclusive
- 对需求、设计或投入决策的影响:...
## 清理状态
- deleted / absorbed-after-rewrite / retained-until-<condition>
完成与接力
- 完成信号:主问题已有 verdict,观察可复验,原型壳已删除或清理状态明确。
- 产物:证据记录;必要时保留隔离原型及一条运行命令,不把原型代码当正式交付。
- 候选出口:证据改变项目未知时返回
507-explore;触发用户取舍时返回 507-grill;需求已清楚时进入 507-prd;需要持续追踪时更新 507-issue;足以实施时进入正常开发;证据不充分时缩小问题再做一次原型或停止投入。
- 回退条件:原型成本开始接近正式实现,或无法产生区分候选的证据时,立即停止并回到原工作流。
红线
- 不用原型替代真实用户决策;
- 不连接真实写操作、生产数据或不可逆外部系统;
- 不为原型抽象未来框架;
- 不交付没有 verdict 和清理状态的原型目录。