用途:prototype 是一个用于构建一次性原型、回答某个设计问题的技能。原型是“用完即弃的代码”,其形态由要回答的问题决定。
主要能力:先选择分支。若问题是“这套逻辑/状态模型感觉对吗”,走 LOGIC.md,构建一个极小的交互式终端应用,把状态机推过那些在纸面上难以推理的用例;若问题是“它应该长什么样”,走 UI.md,在单个路由上生成若干差异很大的 UI 变体,通过 URL 查询参数和底部浮动栏切换。两个分支产出物差异很大,选错会浪费整个原型。若问题确实含糊且联系不到用户,默认选择更贴合周边代码的分支(后端模块→逻辑;页面或组件→UI),并在原型顶部写明该假设。
通用规则:从第一天起就明确标记为一次性代码;原型代码放在实际使用位置附近,但命名要让普通读者看出是原型而非生产代码;一次性 UI 路由遵循项目既有路由约定,不要新造顶层结构。运行只需一条命令,使用项目现有任务运行器支持的写法,如 pnpm <name>、python <path>、bun <path> 等,让用户无需思考即可启动。默认不做持久化,状态放在内存中;若问题明确涉及数据库,则使用临时数据库或命名清晰的本地文件(如“PROTOTYPE — wipe me”)。跳过打磨:不写测试,除可运行所需外不做错误处理,不做抽象。暴露状态:每次操作(逻辑)或每次切换变体(UI)后,打印或渲染完整相关状态,让用户看到变化。完成后删除或吸收:问题得到回答后,删除原型或把已验证的决策并入正式代码,不要留在仓库里腐烂。
完成时:原型唯一值得保留的是答案。把答案连同它回答的问题记录到持久位置(提交信息、ADR、issue 或原型旁的 NOTES.md)。若用户在场,可快速对话确认;若不在,留下占位符,供用户或下次处理时填入结论后再删除原型。
限制:资料未提供具体安装命令、依赖、收费、平台支持或效果数据;上述用法均以资料所述规则为准。