prototype

构建一次性原型来回答设计问题。当用户想验证状态模型或逻辑是否合理,或探索 UI 应该呈现的样子时使用。

提供方:mattpocock/skills调用次数:4.4k收藏:303更新:2026/08/28

技能说明mattpocock/skills

构建一次性原型来回答设计问题。当用户想验证状态模型或逻辑是否合理,或探索 UI 应该呈现的样子时使用。

技能简介

Prototype 技能用于快速构建一次性原型,以回答某个具体的设计问题——例如验证某个状态模型或逻辑设计是否合理,或探索 UI 界面应该呈现的形态。它强调“原型即废弃代码”,核心目标是用最小成本获取设计反馈。

使用场景

  • 验证状态机或业务逻辑在边界条件下是否符合预期
  • 探索页面的多种 UI 布局方案,比较不同呈现效果
  • 与利益相关者(非开发者)演示交互流程,收集意见
  • 在不改动现有生产代码的前提下,测试新功能流程的可行性
  • 区分“逻辑问题”与“界面问题”,分开进行针对性原型验证

使用方法

  1. 判断分支:根据用户需求确定探索方向——逻辑/状态模型问题参考 LOGIC.md,UI 呈现问题参考 UI.md。若需求模糊且无法询问用户,根据原型所处上下文默认选择匹配分支(后端模块→逻辑,页面组件→UI),并在原型顶部注明假设。
  2. 构建原型
    • 逻辑原型:构建单个可共享的 HTML 文件,包含试用按钮和分步引导,方便非开发人员操作。
    • UI 原型:在单一路由上生成多种截然不同的 UI 变体,通过 URL 搜索参数和底部浮动栏切换。
  3. 运行原型:使用项目的任务运行器一键启动,例如 pnpm <name>python <path>bun <path> 等;逻辑演示 HTML 文件可直接双击打开。

注意事项

  • 一次性定位:原型代码放在实际使用位置附近,但命名需明确标识为 prototype,避免与生产代码混淆。
  • 默认无持久化:状态保存在内存中;仅当问题本身涉及数据库时,才使用带有明显“PROTOTYPE, wipe me”标记的临时库或本地文件。
  • 跳过打磨:不编写测试、不加多余错误处理、不做抽象封装,目标是快速获取有效信息。
  • 展示状态:每次操作后(逻辑)或每次变体切换时(UI),显示完整相关状态,便于观察变化。
  • 结果沉淀:验证完成后将有效决策合入真实代码;原型本身提交到一次性分支(不要合并到 main),并在实施 issue 中记录该分支上下文和验证结论。