# 🎮 产品需求文档 (PRD):《Project Vibe: Ship It!》 ## 1. 产品愿景与核心体验 * **游戏类型:** 桌面堆叠生存 (Desktop Stacking Survival) + 模拟经营 + Roguelike。 * **目标受众:** 开发者、PM、QA、设计师,以及喜欢《Stacklands》或《密教模拟器》的策略玩家。 * **核心体验:** 玩家在一个没有网格的“桌面”上,通过**拖拽合并卡牌**来推进项目进度(写代码、提需求、修Bug)。在有限的时间内(Sprint),一边应对由**真实大语言模型 (LLM) 动态生成的突发危机**,一边积攒资源完成交付物。 * **VibeCoding 特色:** 游戏内的终极神卡是【Vibe助手】,它可以跨职业融合任何卡牌,大幅缩短进度条,但有概率引入“技术债”卡牌。 --- ## 2. 核心游戏循环 (Core Loop & Roguelike) 游戏采用经典的“局内战斗+局外成长”的 Roguelike 循环。 ### 2.1 局内:Sprint 冲刺期(生存与合成) * **周期时长:** 每个 Sprint 现实时间约为 3-5 分钟。 * **胜利条件:** 在倒计时结束前,利用桌面卡牌合成出规定数量的【交付物】(如:3 个可用模块),且【项目资金】> 0。 * **失败条件:** 【项目资金】归零(被 Bug 或超时危机扣光)。 * **核心操作:** 拖拽卡牌重叠 -> 触发对应配方 -> 显示进度条 -> 倒计时结束产出新卡/资源。 ### 2.2 局外:Retrospective 复盘大会(成长抉择) * **结算与奖励:** Sprint 成功后,剩余的时间和资源按比例转化为【项目奖金】。 * **肉鸽抉择(3选1):** 玩家从随机刷出的 3 个选项中选择 1 个强化自身: * *新增高级卡牌:* 如【自动化测试脚本】(永久复用)。 * *获取遗物 (Relics):* 如【敏捷教练】(全局 Buff:所有合成时间缩短 10%,但每回合扣除 5% 资金)。 * *清理牌库:* 花费资金销毁桌面上难以处理的【技术债】或【屎山代码】卡。 --- ## 3. 核心机制设计 ### 3.1 桌面与状态机 (The Board & State) * **无网格桌面:** 界面是一个类似操作系统的桌面。卡牌可以任意摆放和堆叠。 * **全局资源:** 顶部 UI 显示当前 Sprint 的【倒计时】和【项目资金】。 * **卡牌堆叠判定:** 当卡牌 A 被拖拽并释放 (Drop) 在卡牌 B 上时,系统检索 `Crafting_Recipes` (合成配方表)。若匹配,两张卡牌进入 `Processing` 状态锁定,头顶出现进度条。 ### 3.2 基础卡牌与职业卡池 (Classes & Decks) 玩家开局需选择职业,决定初始手牌和专属配方路线。 #### 1. 基础公共卡池 (所有职业共用的环境底座) * **【资源卡】** * `专注力 (Focus)`:基础合成消耗品。随时间自然蒸发。 * `咖啡 (Coffee)`:万能提神药。 * `预算 (Budget)`:用于在商店购买服务器或外包。 * `脑洞 (Idea)`:随机飘落在桌面的灵感。 * **【建筑/设施卡】 (放在桌面上长期生效)** * `咖啡机 (Coffee Machine)` + `预算` = 自动每 15 秒产出 1 杯 `咖啡`。 * `云服务器 (Cloud Server)`:承载高级代码,产出项目进度,但每 10 秒消耗 1 点 `预算`。 * **【负面/垃圾卡】 (需要想办法消除,否则占满桌面或引爆危机)** * `Bug`:由脏代码变异,会吃掉附近的 `专注力`。 * `技术债 (Tech Debt)`:无法移动,占据桌面空间。3个 `技术债` 聚在一起会召唤一次 【LLM 重大危机】。 * `无意义的会议 (Pointless Meeting)`:随机抓取桌面上的一张 `实体卡(人)`,使其被锁定 20 秒,产出 `疲惫 (Burnout)`。 --- #### 2. 👨‍💻 资深开发 (Developer) 的深度合成树:架构师之路 开发流派的乐趣在于**“从写屎山到重构成微服务”**的基建狂魔体验。 * **T1:造砖阶段 (脏与快)** * `开发人员` + `专注力` = `脏代码 (Dirty Code)` (需 3 秒) * `脏代码` + `脏代码` = `面条代码 (Spaghetti Code)` (只需 2 秒,但 30% 几率同时产出 `Bug`) * **T2:重构阶段 (质量提升)** * `面条代码` + `开发人员` + `咖啡` = `干净的代码 (Clean Code)` (需 15 秒) * `脏代码` + `Vibe AI 助手` = `干净的代码` (只需 2 秒,极速重构!但 10% 几率产出 `开源协议侵权警告(危机卡)`) * **T3:架构阶段 (质变)** * `干净的代码` + `干净的代码` = `可用模块 (Working Module)` * `可用模块` + `云服务器` = **【微服务节点 (Microservice)】**(建筑卡:每 5 秒自动产出 1 个 `项目进度` 和 100 `预算`) * *隐藏配方:* `开发人员` + `无意义的会议` = `摸鱼打代码` -> 产出 `开源组件` (高价值卡牌) + `老板的怒火`。 --- #### 3. 📊 产品经理 (PM) 的深度合成树:空手套白狼 产品流派没有直接产出代码的能力,乐趣在于**资源调度、画大饼和踢皮球**。 * **T1:需求制造** * `产品经理` + `脑洞` = `一句话需求 (Vague Requirement)` (极快) * `一句话需求` + `无意义的会议` = `PRD文档 (PRD)` + `画大饼 (Empty Promise)`卡片。 * **T2:白嫖与外包** * `画大饼` + `开发人员(NPC/队友)` = 临时将该开发者的合成速度提升 200%,但 10 秒后必定产出 `离职倾向 (Burnout)`(极度危险的负面卡)。 * `PRD文档` + `预算(1000)` = `外包团队` -> 产出 `粗糙的模块` (可用但随时会坏)。 * **T3:乾坤大挪移 (解决危机的独特方式)** * `产品经理` + `Bug` = `特性 (Feature)`。*(神级配方:直接把 Bug 卡强行重命名为特性卡,变成可交付物,极其幽默)* * `产品经理` + `技术债` = `排期延期卡`。*(把技术债塞进排期,消除占用,但会减少 Sprint 最终结算奖励)* --- #### 4. 🕵️ 测试工程师 (QA) 的深度合成树:陷阱与净化 测试流派的乐趣在于**“找茬”、建立自动化流水线**,看着 Bug 灰飞烟灭。 * **T1:挑刺阶段** * `测试员` + `脏代码` / `面条代码` = `Bug 报告` + `干净的代码` (提纯过程,需 10 秒)。 * `Bug 报告` + `开发人员` = `争吵 (Argument)` + `重构好的代码`。 * **T2:自动化防御** * `测试员` + `专注力` + `咖啡` = `断言脚本 (Assert Script)` (消耗品武器卡)。 * 将 `断言脚本` 拖到 `Bug` 或 `技术债` 上 = 瞬间将其秒杀,并掉落 `项目质量分`。 * **T3:建立流水线 (质变)** * `测试员` + `可用模块` + `云服务器` = **【CI/CD 流水线】**(自动化建筑)。 * *作用:* 只要你把任何 `脏代码` 扔进 【CI/CD 流水线】,它会自动吃进去,5 秒后吐出 `干净的代码` 或者 `报警邮件`。玩家无需再手动派人去测试。 --- #### 5. 🎨 UI/UX 设计师 (Designer) 的深度合成树:美学的代价 设计师流派主打**提升项目溢价(卖更多的钱)**,但要面对甲方的反复无常。 * **T1:原型设计** * `设计师` + `专注力` = `线框图 (Wireframe)`。 * `线框图` + `咖啡` = `高保真原型 (Figma Prototype)`。 * **T2:前端融合** * `高保真原型` + `可用模块(后端)` = `绚丽的 App (Gorgeous App)`(交付时获得 3 倍预算奖励)。 * **T3:甲方的折磨 (特殊的卡牌连环演变)** * 当你打出 `绚丽的 App` 时,有概率触发连环负面状态: * `设计师` + `甲方反馈` = `设计稿_V2`。 * `设计师` + `设计稿_V2` = `设计稿_最终版`。 * `设计师` + `设计稿_最终版` = `设计稿_打死不改_绝对最终_V8.psd`。(只有这张卡才能真正交付)。 --- ### 💡 VibeCoding 视角的 JSON 数据结构设计 有了这么庞大且幽默的配方树,如果你用传统的 IF-ELSE 来写代码绝对会疯掉。但对于 AI 辅助编程来说,你只需要让 AI 帮你搭建一个**基于 JSON 解析的合成引擎**。 你可以直接把这个 JSON 结构发给大模型(如 Cursor),让它生成核心逻辑: ```json // recipes.json (合成配方配置表) [ { "id": "recipe_spaghetti_code", "inputs": ["dirty_code", "dirty_code"], "required_actor": null, "time_ms": 2000, "outputs": [ { "card_id": "spaghetti_code", "chance": 1.0 }, { "card_id": "bug", "chance": 0.3 } ], "description": "复制粘贴就是快,但也容易出Bug。" }, { "id": "recipe_qa_purify", "inputs": ["spaghetti_code"], "required_actor": "qa_engineer", "time_ms": 10000, "outputs": [ { "card_id": "clean_code", "chance": 1.0 }, { "card_id": "bug_report", "chance": 1.0 } ], "description": "测试老哥强行帮你揪出Bug并提纯代码。" }, { "id": "recipe_pm_magic", "inputs": ["bug"], "required_actor": "product_manager", "time_ms": 5000, "outputs": [ { "card_id": "feature", "chance": 1.0 } ], "description": "这不是Bug,这是特性!" } ] ``` --- ## 4. LLM 动态危机系统 (AI Director) 这是游戏的核心亮点。LLM 将作为“甲方/系统”实时生成针对玩家当前桌面弱点的危机卡。 ### 4.1 触发与生成机制 1. **心跳检测:** 每隔 30 秒,游戏抓取当前桌面关键卡牌数量(如:资金 1w,脏代码 5,测试 0)。 2. **异步请求:** 将状态发送给 LLM(如 OpenAI API),请求生成一个针对性的危机。 ### 4.2 API 延迟处理策略(极简且优雅) * **预警卡生成(立即执行):** API 请求发出的瞬间,桌面上立刻凭空掉落一张中立卡牌【⚠️ 甲方正在输入...】。 * **UI 表现:** 卡牌显示 Loading 动画。玩家此时会有未知的压迫感,但无法对其进行操作。 * **翻转与爆发(Promise Resolve):** LLM 返回 JSON 后,预警卡带有动画翻转为真正的【红色危机卡】,并开始倒计时。 * **本地兜底 (Fallback):** 若请求超过 5 秒未返回,触发兜底逻辑,预警卡翻转为本地配置表中的随机通用危机(如【服务器宕机】)。 ### 4.3 LLM 通信数据结构 (JSON 契约) **System Prompt 要求 LLM 返回以下结构:** ```json { "crisis_name": "内存泄漏灾难", "description": "你的脏代码堆积如山,服务器马上就要炸了!", "timer_seconds": 30, // 玩家解题的时间限制 "penalty_type": "lose_money", // 超时惩罚:扣除资金 "penalty_value": 20000, "required_solution_tags": ["need_test_card", "need_focus_card"] // 解除危机需要的卡牌标签 } ``` **解题玩法:** 危机卡带有两个空槽(对应 `required_solution_tags`)。玩家必须在 30 秒内将具有相应 Tag 的卡牌(如 `测试员卡` 和 `专注力卡`)拖拽到危机卡上,读条 3 秒后危机解除,转化为奖励。超时则执行惩罚。 --- ## 5. VibeCoding 开发任务拆解建议 为了充分利用 VibeCoding 的能力,建议您按照以下阶段向 AI (Cursor/Copilot) 提交 Prompt,逐步构建 MVP: ### Phase 1: 核心前端框架与拖拽 (MVP) * **技术栈选型:** React + TypeScript + Vite + TailwindCSS (或者 Zustand 用于全局状态管理)。 * **核心任务 1:定义数据结构**。让 AI 帮您生成 `Card`, `Recipe`, `BoardState` 的 TypeScript Interface。 * **核心任务 2:实现拖拽与碰撞判定 (Drag & Drop)**。不要用复杂的物理引擎,让 AI 写一个基于 HTML5 DnD API 或 `framer-motion` 的拖拽组件。判定逻辑为:“松开鼠标时,检查当前卡牌的坐标是否与另一张卡牌的包围盒重叠”。 * **核心任务 3:实现倒计时状态机**。用 `useEffect` 或 `requestAnimationFrame` 实现两个重叠卡牌进入 `Processing` 状态,读条结束后触发回调生成新卡。 ### Phase 2: 完善 JSON 配方表与职业系统 * 将配方逻辑完全抽离为静态 JSON 配置。 * **VibeCoding 优势:** 您只需写出 2 个示例配方,可以直接让大模型批量生成几十个符合“软件工程梗”的配方配置表。 ### Phase 3: 接入 LLM 危机生成器 (API 联调) * 编写 `useCrisisDirector` 自定义 Hook。 * 实现“预警卡 -> API Fetch -> 解析 JSON -> 翻转为危机卡 -> 5秒超时本地 Fallback” 的完整异步逻辑链路。 ### Phase 4: Roguelike 循环包装 * 增加 Sprint 的总时间计时器。 * 增加结算画面和 3 选 1 的 UI 组件。