Prototype
Prototype
A prototype is throwaway code that answers a question.
Matt Pocock 的 /prototype skill。根据问题类型分流到两个完全不同的分支。
分流
| 问题 | 分支 | 产出 |
| "这个逻辑/状态模型对不对?" | Logic | 交互式终端 app |
| "这个应该长什么样?" | UI | 可切换的多变体页面 |
通用规则
- 从第一天起就标记为 throwaway
- 一条命令运行
- 默认不持久化 — 状态在内存中
- 跳过打磨 — 无测试、无错误处理、无抽象
- 暴露状态 — 每次操作后显示完整状态
- 回答完就删 — 答案(不是代码)是唯一值得保留的东西
Logic 分支
- 隔离为可移植的纯模块(reducer / state machine / pure functions)
- TUI 只是壳,逻辑模块可以被抬进真实代码
- 每帧清屏重绘,用户看到稳定视图
- 命令应该是自解释的(h: help)
UI 分支
- 默认 3 个变体,上限 5 个
- 强烈推荐 sub-shape A:在已有页面上用
?variant=切换 - 最后手段 sub-shape B:全新 throwaway 路由
- 底部浮动栏切换变体
- 变体之间必须截然不同(radically different),不是微调
与"Design It Twice"的关系
Prototype 和 /improve-codebase-architecture 的接口设计都采用 Ousterhout 的"Design It Twice"理念 — 第一个想法通常不是最好的,生成多个截然不同的方案再比较。