Prototype

快速验证设计的一次性原型。区分两条分支——逻辑/状态模型用终端交互 App,UI 布局用多变体路由切换。当用户想原型验证、检验数据模型或状态机、探索多种 UI 方案时触发。触发词:原型、prototype、验证方案、快速试验、让我玩一玩、试几个设计。

programmeranthony f349ce5 3 files · 11.3 KB Updated

File contents

原型(Prototype)

原型是回答一个问题的一次性代码。问题决定形态,答完即删。

选分支

根据用户提示、周边代码、或直接询问来判断问题属于哪类:

  • "这段逻辑/状态模型的设计感觉对吗?" → references/LOGIC.md。构建一个微型终端交互 App,手动驱动状态机穿越难以凭空推理的边界 Case。
  • "这个界面应该长什么样?" → references/UI.md。在单个路由上生成几个差异显著的 UI 变体,通过浮动底栏切换。

分支错误会浪费整个原型。若问题确实模糊且用户不在线,则默认按周边代码选择(后端模块→逻辑;页面/组件→UI),并在原型顶部声明该假设。

两条分支通用规则

  1. 从第一天起就是一次性代码,且明确标记。 将原型代码放在它实际服务的模块或页面旁边,名称中包含 prototype 以示一次性身份。
  2. 一条命令即可运行。 使用项目现有任务管理器(pnpm <name>python <path> 等),用户不需要记路径。
  3. 默认不持久化。 状态存内存。若问题本身涉及数据库,使用临时 DB 或带有 "PROTOTYPE — wipe me" 标记的本地文件。
  4. 跳过打磨。 不写测试、不做错误处理(仅保留让原型能运行的最低限度)、不做抽象。目标是快速学到东西然后删掉它。
  5. 暴露状态。 每次操作后(逻辑)或每次切换变体后(UI),打印或渲染完整的相关状态。
  6. 完成后删除或吸收。 原型回答完问题后,要么删除,要么将经过验证的决策折叠进真实代码——不要让它在仓库里腐烂。

完成时

原型唯一值得保留的是答案。将其记录在某个持久化位置(commit message、ADR、issue,或原型旁边的 NOTES.md),连同它所回答的问题一并保存。若用户在场,几句对话即可;若不在,留好占位符供后续填写,然后删除原型。

详细指南

  • 逻辑原型:references/LOGIC.md
  • UI 原型:references/UI.md

programmeranthony/expert-coding-harness/tree/main/skills/prototype commit f349ce55ae

Frequently asked questions

npx skillmds@latest add programmeranthony/prototype