prototype

工程开发 社区
解读按原文结构重写,命令、链接、术语均保留;右侧可核对作者原始 SKILL.md

设计思路

prototype 是 mattpocock 的「快速原型」skill——把「我们应该怎么做」拆成两个分支问题:逻辑 / 状态模型(用 LOGIC.md:建一个小交互终端 app 把状态机推过那些纸上很难推的 case)vs 视觉 / UI(用 UI.md:在单一路由上同时生成多套激进不同的 UI,通过 URL search param + 浮动底栏切换)。走错分支会浪费整个 prototype——所以要先选对枝。

选枝原则

  • "logic / state model 对不对?" → LOGIC.md
  • "这玩意应该长什么样?" → UI.md
  • 真模糊且联系不上用户 → 看周围代码默认(后端模块 → logic;页面 / 组件 → UI),并把假设写在 prototype 顶部

两枝共用规则

  1. 从第一天起就是 throwaway,并显式标记:放在它要被用的地方旁边(让 context 清楚),但命名让随便看的人都能看出来「这是 prototype,不是生产」。throwaway UI 路由遵循项目既有路由约定,别造新顶层结构
  2. One command to run:用项目现有 task runner(pnpm <name> / python <path> / bun <path>)——用户不动脑就能跑。
  3. No persistence by default:状态住内存里。持久化是 prototype 在测的东西,不是它该依赖的东西。如果问题确实涉及 DB,挂临时 scratch DB / 本地文件,名字明确写「PROTOTYPE — wipe me」。
  4. Skip the polish:不写测试、不超出「能跑」的错误处理、不抽象——目的是快速学到东西然后删掉
  5. Surface the state:每次动作(logic)后或每次切换(UI)时把相关完整状态打印 / 渲染出来——用户能看见到底变了啥。
  6. Delete or absorb when done:prototype 答完问题后要么删要么吸进真实代码——别让它在仓库里腐烂。

When done

答案才是 prototype 留下的唯一价值。 把它沉淀到 commit message / ADR / issue / prototype 旁边的 NOTES.md,连同它在回答的问题。删 prototype 之前,把 verdict 写下来。

适合谁

  • 拿不定主意「先做 A 还是先做 B」希望靠跑一把代码学到答案的工程师
  • 设计阶段验证状态机 / UI 假设的人
  • 想用代码替代纸上推演但不想被生产代码标准拖慢的快速决策

不适合

  • 答案已经清楚——直接写
  • 写到一半就忘了删——prototype 的反模式

配套

brainstorming(前置)、design-an-interface(接口形状专门版)、design-shotgun(UI 多版本探索的视觉版)、writing-plans(prototype 答完之后正式落实施)。

流狐档案 作者与许可取自来源;运行、权限和网络为流狐检测或估算
流狐分类
工程开发
作者声明 Agent
未找到明确声明;不据此推断已兼容或已测试
静态检查
88 / 100 · 启发式扫描,不代表运行安全
作者 / 版本 / 许可
@mattpocock · 未声明 license
流狐 Token 估算
低消耗
流狐接入估算
即装即用
是否需要外部 API Key
未发现要求
检测到的系统要求
macOS · Linux · Windows
底层运行要求
Python
检测到的文件与系统行为
  • 只读
  • 允许写入 / 修改
检测到的网络行为
仅限本地
安装命令数
无(仅作为资料)

档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

输出预览 prototype.preview
作者没有在当前 SKILL.md 中定义固定输出样例。

讨论

基于 GitHub Discussions。登录 GitHub 即可参与讨论、点赞、订阅更新。