$npx -y skills add DY-2026/GameDesignOS --skill game-experience-density-optimizer当用户需要把游戏体验浓度、留存、首局节奏、Demo 完成率、单机总旅程、D1/D7、反馈、具身感、氛围、认知负荷、最佳刺激窗口、FEP/free-energy、预测误差、Markov blanket、习惯化或 liveops 参与问题,编译成可上线、可埋点、可复盘、可回滚的一周 ED 实验包时使用。Use when converting game experience-density and engagement problems into rollback-ready ED experiments.
| 1 | # Game Experience Density Optimizer |
| 2 | |
| 3 | Copyright (c) 2026 Paranoia. Licensed under the MIT License. |
| 4 | |
| 5 | ## Mission |
| 6 | |
| 7 | 把模糊的游戏体验问题编译成可上线、可埋点、可复盘、可回滚的 ED 实验包。 |
| 8 | |
| 9 | 这里的 ED 是 `Experience Density / 体验浓度`。中文统一叫“体验浓度”,不要另造概念名。它不是科学量表,也不是留存玄学;输出必须默认标注 `theory_status: design_hypothesis`,并把结论绑定到证据等级、游戏形态、主旋钮、指标周期和回滚条件。 |
| 10 | |
| 11 | 默认内部管线: |
| 12 | |
| 13 | ```text |
| 14 | 输入材料 -> 输出模式路由 -> Evidence Gate -> 游戏形态分流 -> 最佳刺激窗口 -> |
| 15 | ED 公式项定位 -> 主旋钮选择 -> 实验变体编译 -> 埋点/看板编译 -> |
| 16 | 预注册决策门 -> 输出门检查 |
| 17 | ``` |
| 18 | |
| 19 | ## When To Use |
| 20 | |
| 21 | 用户讨论以下问题时触发本 skill: |
| 22 | |
| 23 | - “体验浓度”、`ED / Experience Density`、每分钟有多少有意义选择、首局太空、首个爆点太晚。 |
| 24 | - 留存实验、D1/D3/D7、每日会话、回流 rehook、活动留存、老玩家钝化、中段疲劳。 |
| 25 | - 单机总游戏时长、买断制完成率、Steam Demo 完成率、章节推进、核心循环到达率、重玩意愿。 |
| 26 | - 反馈不爽、不清楚、不跟手、打击软、操控延迟、镜头/触觉/动作节拍问题。 |
| 27 | - 氛围空、留白无质感、叙事停顿、信息太吵、认知负荷高。 |
| 28 | - 最佳刺激、低刺激无聊、过载无聊、习惯化、半熟半新、可控惊讶。 |
| 29 | - FEP/free-energy、预测误差、Markov blanket、玩家和游戏的输入输出边界。 |
| 30 | - 一周 A/B 测试、埋点字典、看板字段、预注册规则、回滚/Kill 条件。 |
| 31 | |
| 32 | 不要用于只有一句创意、还没有核心循环的任务;先用 `game-concept-architect`。不要把截图、PV 或商店页直接当真实节奏证据;先用 `game-experience-analyzer` 建证据层。不要设计暗黑模式、误导奖励、焦虑红点、虚假倒计时、付费压力或不可逆损失伪装。 |
| 33 | |
| 34 | ## Mode Router |
| 35 | |
| 36 | 先判断输出模式,再决定交付深度。强 skill 的默认不是写大报告,而是给当前场景刚好够用的结果。 |
| 37 | |
| 38 | | mode | 触发 | 输出密度 | |
| 39 | | --- | --- | --- | |
| 40 | | `quick_ed_triage` | 用户只给一句体验问题,或明确要快速判断 | 1 个边界判断、1 个刺激窗口、1 个主旋钮、2 个最小改动、3 个验证指标、1 个回滚条件 | |
| 41 | | `weekly_ab_plan` | 用户问怎么改、怎么测、本周怎么做、A/B 测试、留存实验、实验方案 | A/B 或 A/B/C/D 变体、埋点、看板、决策门、owner、回滚 | |
| 42 | | `instrumentation_plan` | 用户重点问埋点、看板、指标口径、数据接线 | 事件字典、字段、触发时机、过滤器、数据质量门、隐私边界 | |
| 43 | | `review_and_decide` | 用户提供实验结果、指标变化、复盘材料 | 先查负向门和数据质量,再决定 amplify / iterate / observe / rollback / kill | |
| 44 | | `full_client_delivery` | 用户要求客户交付、团队方案、完整文档、正式报告 | 展开完整 19 模块,附 handoff checklist、QA、风险门 | |
| 45 | | `schema_json` | 用户要求 agent 消费、自动化验证、结构化输出 | 输出符合 `templates/experiment-plan.schema.json` 的 JSON,保留证据和 unknown 字段 | |
| 46 | |
| 47 | 如果用户没有说明模式:一句话问题默认 `quick_ed_triage`;出现“本周、实验、A/B、怎么测、留存方案”默认 `weekly_ab_plan`;出现“完整、交付、客户、团队评审”默认 `full_client_delivery`。 |
| 48 | |
| 49 | ## Hard Gates |
| 50 | |
| 51 | 所有输出必须经过这些门: |
| 52 | |
| 53 | 1. `evidence_gate`:先声明 `evidence_level`、`evidence_status`、允许结论、禁止结论、置信度、缺失证据和混淆风险。读取 `references/evidence-gate.zh-CN.md`。 |
| 54 | 2. `metric_horizon_gate`:先判断 `game_metric_model`:`premium_single_player`、`mobile_liveops`、`hybrid` 或 `unknown`。单机/买断制默认总旅程指标;手游/liveops 才默认 D1/D7。 |
| 55 | 3. `stimulation_window_gate`:先判断最佳刺激窗口和无聊类型。无聊不自动等于刺激不足。 |
| 56 | 4. `density_formula_gate`:把问题落到 `CLP`、`SF`、`EB`、`AR`、`MD/min`,并说明为什么。 |
| 57 | 5. `one_primary_lever_gate`:每个变体只能有一个主旋钮,最多一个不影响归因的辅助动作。 |
| 58 | 6. `instrumentation_gate`:没有埋点/看板/复盘口径的方案不能说已可验证。 |
| 59 | 7. `decision_rule_gate`:成功、观察、回滚、Kill 条件必须在实验前写死。 |
| 60 | 8. `ethics_gate`:不得用暗黑模式或纯数值膨胀伪装体验优化。 |
| 61 | 9. `output_density_gate`:不要在 `quick_ed_triage` 里输出完整 19 模块;不要在 `full_client_delivery` 里省略关键风险门。 |
| 62 | |
| 63 | ## Core Model |
| 64 | |
| 65 | 体验浓度指:当前玩家在当前情境下,单位时间内可吸收、可解释、可转化为探索/学习/意义的刺激密度。 |
| 66 | |
| 67 | 默认工作公式: |
| 68 | |
| 69 | ```text |
| 70 | ED = MD/min * (SF + EB + AR) / CLP |
| 71 | ``` |
| 72 | |
| 73 | - `MD/min`:每分钟有意义选择次数。不是点击频率,也不是选项数量。 |
| 74 | - `SF`:可感知反馈。不是光污染,而是能被玩家看见、听见、感到并归因。 |
| 75 | - `EB`:具身感加成。不是剧情代入,而是输入、动作、镜头、触觉和反馈的耦合。 |
| 76 | - `AR`:氛围感加成。不是堆素材,而是留白、音画、世界反应和风格一致性。 |
| 77 | - `CLP`:认知负荷惩罚。玩家看不懂、学不会、被噪音打断时,先降分母。 |
| 78 | |
| 79 | 诊断顺序固定为:**先判窗口,再降噪,再提质,后调频**。只有在信息清晰、反馈可归因、耦合可理解之后,调高 `MD/min` 才有意义。 |
| 80 | |
| 81 | FEP、自由能、预测处理、Markov blanket、GameFlow、SDT 只作为设计启发式镜头,不得写成神经科学或心理学证明。涉及这些理论时必须保留 `theory_status: design_hypothesis`。 |
| 82 | |
| 83 | ## Evidence Gate |
| 84 | |
| 85 | 不要凭感觉跑太远。证据等级决定允许输出什么: |
| 86 | |
| 87 | | level | 材料 | 允许 | 禁止 | |
| 88 | | --- | --- | --- | --- | |
| 89 | | `L0_text_only` | 只有口述 | 假设、最小实验、埋点需求 | 声称真实原因或承诺指标提升 | |
| 90 | | `L1_static_assets` | 截图、商店页、PV 截帧 | 信息层级、视觉噪音、可能风险 | 判断真实节奏、手感或会话行为 | |
| 91 | | `L2_recording` | 录屏、试玩视频 | 时间轴、反馈窗口、节奏断点、退出前行为 | 推断全部玩家心理 | |
| 92 | | `L3_playtest_notes` | 试玩笔记、访谈摘要 | 玩家分群假设、问题卡、方向性实验 | 忽略样本偏差 | |
| 93 | | `L4_telemetry_snapshot` | 指标快照 | 分流、埋点核对、方向性实验 | 混版本、混渠道、混新老用户 | |
| 94 | | `L5_ab_result` | 实验结果 | 复盘决策 | 跳过负向门、数据质量门和预注册规则 | |
| 95 | |
| 96 | 证据不足时输出 `evidence_status: assumption_only` 或 `partial_evidence`。没有真实埋点或试玩证据时,只能说“验证假设”,不能说“一定提升 D1/D7、总时长或完成率”。 |
| 97 | |
| 98 | ## Metric Horizon |
| 99 | |
| 100 | 先选游戏形态,再选 P1。 |
| 101 | |
| 102 | - `premium_single_player`:买断制、单机、Steam Demo、章节制、完整旅程承诺。P1 优先看总有效游玩时长、Demo/章节完成率、核心循环到达率、通关/重玩意愿、评价/退款风险。不默认 D1/D7。 |
| 103 | - `mobile_liveops`:手游、长线运营、活动、每日循环、回流。P1 可以看 D1/D3/D7/D30、每日会话、连续活跃、活动留存、回流成功率,同时必须看疲劳和投诉。 |
| 104 | - `hybrid`:总旅程和 liveops 两套 P1 分开预注册。任一关键周期受损,都不能宣布整体成功。 |
| 105 | - `unknown`:材料不足时标 unknown,并写清暂不适用的指标。 |
| 106 | |
| 107 | ## Output Contracts |
| 108 | |
| 109 | ### quick_ed_triage |
| 110 | |
| 111 | 必须包含: |
| 112 | |
| 113 | - `output_mode` |
| 114 | - `case_boundary` |
| 115 | - `evidence_gate` |
| 116 | - `metric_horizon` |
| 117 | - `optimal_stimulation_fit` |
| 118 | - `primary_formula_item` |
| 119 | - `primary_lever` |
| 120 | - `two_minimal_changes` |
| 121 | - `verification_metrics` |
| 122 | - `rollback_condition` |
| 123 | - `unsupported_claims` |
| 124 | |
| 125 | ### weekly_ab_plan |
| 126 | |
| 127 | 必须包含: |
| 128 | |
| 129 | - `case_boundary` |
| 130 | - `evidence_gate` |
| 131 | - `metric_horizon` |
| 132 | - `theory_status` |
| 133 | - `optimal_stimulation_fit` |
| 134 | - `diagnosis_summary` |
| 135 | - `experiment_hypothesis` |
| 136 | - `variant_matrix` |
| 137 | - `instrumentation_dictionary` |
| 138 | - `metric_plan` |
| 139 | - `dashboard_spec` |
| 140 | - `decision_rules` |
| 141 | - `weekly_schedule` |
| 142 | - `handoff_checkli |