用途:prototype 是“一次性代码”,用来回答一个具体问题,问题的类型决定原型的形态。
主要能力与分支:
- 逻辑分支(logic.md):当问题是“这套逻辑/状态模型是否合理”时,构建一个极小的交互式终端应用,把状态机推过那些在纸面上难以推理的用例。
- UI 分支(ui.md):当问题是“它应该长什么样”时,在同一路由上生成多个差异明显的 UI 变体,通过 URL 查询参数和底部浮动栏切换。 两个分支产出物差异很大,选错会浪费整个原型。若问题确实含糊且联系不到用户,默认选择更贴合周边代码的分支(后端模块→逻辑;页面或组件→UI),并在原型顶部写明该假设。
通用规则:从第一天起就是一次性代码并明确标注;原型代码放在实际使用位置附近,但命名要让普通读者看出是原型而非生产代码;一次性 UI 路由遵循项目既有路由约定,不新造顶层结构。一条命令即可运行(如 pnpm <name>、python <path>、bun <path>),用户无需思考就能启动。默认不做持久化,状态存内存;若问题明确涉及数据库,则使用临时库或带“PROTOTYPE — wipe me”标记的本地文件。跳过打磨:不写测试,除可运行所需外不做错误处理,不做抽象。暴露状态:每次操作(逻辑)或每次变体切换(UI)后打印或渲染完整相关状态。完成后删除或吸收:问题得到回答后,删除原型或把验证过的决策并入真实代码,不要留在仓库里腐烂。
收尾:原型唯一值得保留的是答案。把它连同所回答的问题记录到持久位置(提交信息、ADR、issue 或原型旁的 NOTES.md)。用户在旁时可快速对话确认;不在时留下占位,供其或下次处理时填写结论后再删除原型。
限制:资料未提供具体安装命令、依赖、平台支持、收费或价格信息。