原型(Prototype)
原型是回答一个问题的一次性代码。问题决定形态,答完即删。
选分支
根据用户提示、周边代码、或直接询问来判断问题属于哪类:
- "这段逻辑/状态模型的设计感觉对吗?" → references/LOGIC.md。构建一个微型终端交互 App,手动驱动状态机穿越难以凭空推理的边界 Case。
- "这个界面应该长什么样?" → references/UI.md。在单个路由上生成几个差异显著的 UI 变体,通过浮动底栏切换。
分支错误会浪费整个原型。若问题确实模糊且用户不在线,则默认按周边代码选择(后端模块→逻辑;页面/组件→UI),并在原型顶部声明该假设。
两条分支通用规则
- 从第一天起就是一次性代码,且明确标记。 将原型代码放在它实际服务的模块或页面旁边,名称中包含
prototype以示一次性身份。 - 一条命令即可运行。 使用项目现有任务管理器(
pnpm <name>、python <path>等),用户不需要记路径。 - 默认不持久化。 状态存内存。若问题本身涉及数据库,使用临时 DB 或带有 "PROTOTYPE — wipe me" 标记的本地文件。
- 跳过打磨。 不写测试、不做错误处理(仅保留让原型能运行的最低限度)、不做抽象。目标是快速学到东西然后删掉它。
- 暴露状态。 每次操作后(逻辑)或每次切换变体后(UI),打印或渲染完整的相关状态。
- 完成后删除或吸收。 原型回答完问题后,要么删除,要么将经过验证的决策折叠进真实代码——不要让它在仓库里腐烂。
完成时
原型唯一值得保留的是答案。将其记录在某个持久化位置(commit message、ADR、issue,或原型旁边的 NOTES.md),连同它所回答的问题一并保存。若用户在场,几句对话即可;若不在,留好占位符供后续填写,然后删除原型。
详细指南
- 逻辑原型:references/LOGIC.md
- UI 原型:references/UI.md