# Office Survival Choices

> Run a 15-turn office or lab survival choice game with mounting pressure. Explain the fail/pass conditions up front, trigger a pressure event every two turns, track energy, pressure, dignity, and inventory, and resolve survival on turn 15.

- Skill: `internscience/office-survival-choices` (Agent Skill)
- Install (CLI): `npx skillmds@latest add internscience/office-survival-choices`
- Raw SKILL.md: https://api.skillmd.com/api/skills/internscience/office-survival-choices/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: internscience (https://skillmd.com/u/internscience)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/internscience/office-survival-choices

---


# 办公室生存游戏

用于在聊天里主持一个 **15 回合、带压迫感、越玩越紧张** 的办公室 / 实验室生存小游戏。

这不是轻飘飘的搞笑二选一。它必须有明确的压力循环、资源消耗、爆表惩罚和最终清算。

## 什么时候使用

- 用户想玩办公室、生存、社畜、实验室日常类互动
- 用户想在聊天里玩一个短但有压迫感的选择游戏
- 用户想看自己能不能撑过一天

## 开局必须说明的内容

在第 `1/15` 回合正式开始前，你必须先用很短的方式说明：

- 这是一局 `15` 回合的办公室生存游戏
- `精力` 归 `0` 立刻失败
- 撑到 `15/15` 且精力仍大于 `0` 就算通关
- `压力` 满了会触发额外惩罚
- `体面` 和 `背包` 会影响后续选项

开局说明应当清楚，别让用户玩了半天才知道规则。

推荐开局说明结构：

```markdown
办公室生存开始。

通关条件：
- 撑到第 15/15 回合，且精力 > 0

失败条件：
- 精力归 0

额外规则：
- 压力满了，会立刻额外扣 2 点精力，并清空压力和体面
- 体面清空时，更容易触发狼狈事件

准备好了就开工。
```

## 核心状态

每局至少跟踪这些状态：

- `回合`：`1/15` 到 `15/15`
- `精力 Energy`
- `压力 Stress`
- `体面 Dignity`
- `背包`

建议默认上限：

- 精力：`10`
- 压力：`6`
- 体面：`4`

除非用户明确指定特殊模式，否则默认就用这组上限，不要擅自改成别的。

## 通关与失败规则

### 通关

满足以下条件即通关：

- 到达 `15/15`
- `精力 > 0`

### 失败

出现以下情况立刻失败：

- `精力 = 0`

失败后立刻结算，不再继续推进到后续回合。
失败必须有 **GAME OVER 演出**，不能只是平淡地说“你失败了”。

## 压力爆表规则

`压力` 是这局游戏的核心威胁。

当 `压力` 到达上限时：

1. 立刻触发一次 **爆表惩罚**
2. 当场额外扣 `2` 点精力
3. 同时触发一次压力释放代价：
   - `体面清空`
   - `压力清空`
   - `精力` 额外减少

推荐处理方式：

- 当回合触发爆表时：
  - `体面 -> 0`
  - `压力 -> 0`
  - `精力 -2`
- 此后继续当前回合结算

解释逻辑：

- 压力爆表不等于游戏结束
- 它更像一次“社会性爆炸 / 情绪崩盘 / 工作事故”
- 代价是真实且疼的

## 体面规则

`体面` 不是生死资源，但它会影响事件风格。

当体面较高时：

- 更容易保住场面
- 社交选项更好用
- 某些糟糕后果会变轻

当体面归 `0` 时：

- 更容易触发：
  - 社会性死亡
  - 被围观
  - 被点名
  - 当场出糗
  - 群聊翻车

体面可以通过：

- 说对话
- 找人背书
- 合理甩锅
- 利用道具
- 稳妥应对事件

来恢复 `1` 点或避免下降。

## 背包规则

背包中的道具必须真的有用。

可以包含：

- 咖啡
- 薄荷糖
- 充电器
- U 盘
- 备用工牌
- 遮瑕 / 发圈 / 纸巾
- 面包
- 请假截图
- 会议纪要

道具作用通常是：

- 恢复 `1-2` 点精力
- 减少 `1-2` 点压力
- 恢复 `1` 点体面
- 解锁某个更优选项
- 抵消一次小事故

## 15 回合固定节奏

这一局必须有 **明确压迫感**。

硬规则：

- 每 `2` 回合构成一个完整循环
- 奇数回合是 **压力事件来袭**
- 偶数回合是 **想办法恢复 / 补救 / 放松**
- 但恢复从不免费，总会留下后果、代价或新隐患

## 回合结构

### 1/15：开场压力

- 先说明规则
- 给出身份和今天的大环境
- 第一波压力事件立刻来袭

例如：

- 老板突然提前要汇报
- 导师忽然问实验进度
- 群里开始点名要结果
- 文件、设备或日程出问题

### 2/15：第一次缓冲

- 用户尝试缓解第一波压力
- 可恢复精力、减少压力、保体面
- 但一定伴随代价

例如：

- 摸鱼 10 分钟恢复精力，但工作堆积
- 去茶水间喘口气，但错过信息
- 找人帮忙，但欠下人情

### 3/15：第二波压力

- 新压力事件直接压上来
- 要比第一波更具体
- 开始把前面选择的后果带回来

### 4/15：第二次缓冲

- 给玩家一口气
- 但恢复必须带副作用
- 开始引入背包和体面联动

### 5/15：第一次硬难点

- 这不是普通压力，而是明确的大节点
- 必须检查前面是否：
  - 保住了体面
  - 留下了某个道具
  - 和某人保持了关系
  - 没把精力烧得太惨

例如：

- 临时被推上台汇报
- 老师当众问责
- 客户当场要结果
- 关键设备突然死机

### 6/15：强行恢复

- 玩家必须想办法回一口血
- 但通常会留下更大的后患

### 7/15：第三波压力

- 事件升级
- 要体现“今天已经越来越糟”

### 8/15：第三次缓冲

- 用户获得一次喘息或整活机会
- 可以靠背包、关系、表演欲解决问题

### 9/15：第四波压力

- 明显进入后半程
- 压力源开始叠加，不再是单点事件

### 10/15：第二次硬难点

- 必须是本局最危险的节点之一
- 直接影响能否撑到最后
- 要检查：
  - 精力是否健康
  - 压力是否接近爆表
  - 体面是否还能保场
  - 背包里有没有能救命的东西

### 11/15：濒危补救

- 用户开始“续命”
- 能恢复，但代价更大

### 12/15：第五波压力

- 再推一次明显压力
- 要让玩家感觉今天快收不了场

### 13/15：最后缓冲

- 给用户最后一次像样的整理机会
- 可以铺垫终局体面收尾或彻底摆烂

### 14/15：终局前压力

- 最后一波现实重击
- 为 `15/15` 清算做准备

### 15/15：最终清算

- 不再只是“选一个选项”
- 要结算今天到底有没有活下来
- 重点看：
  - 精力是否还大于 `0`
  - 压力有没有把人逼垮
  - 体面剩多少
  - 玩家是体面通关、狼狈通关，还是当场崩盘失败

## 事件设计规则

事件必须来自真实办公室 / 实验室压力，不要写成无意义段子堆砌。

优先使用这些来源：

- 临时汇报
- 群聊点名
- 文件炸裂
- 设备故障
- 会议撞车
- 外卖和开会冲突
- 被甩锅
- 截止时间提前
- 老板 / 导师 / 甲方突然出现
- 当众社交死亡

这些事件不能只是“有点烦”，而要让用户明显感到：

- 这事现在不处理就会变更糟
- 我这回合如果选错，后面会被追债
- 我在拿精力、体面、压力和背包做交换

## 生存压迫感规则

这是 **生存游戏**，不是轻松日常对话。

所以每回合的选择必须满足：

1. 至少有一个选项能明显保命，但代价很大
2. 至少有一个选项能明显回血或降压，但一定埋下后患
3. 至少有一个选项会赌体面、关系或后续局势
4. 不允许四个选项看起来只是语气不同，实际代价差不多

用户必须感觉到：

- 现在的轻松，可能换来下一轮爆炸
- 现在的硬扛，可能直接把精力榨空
- 现在保住体面，可能会失去背包或人情

## 选项强度规则

每回合选项必须拉开强度，不要做成四个温吞选项。

推荐至少包含下面三类中的三类：

### 1. 硬顶选项

- 特征：
  - 当回合可能直接解决问题
  - 但精力消耗明显
  - 失败后后果更痛
- 典型代价：
  - `精力 -2` 到 `-3`
  - 压力继续上升
  - 下一轮埋下更大的坑

### 2. 偷喘气选项

- 特征：
  - 能回血或降压
  - 但一定换来延后爆炸
- 典型代价：
  - 下一轮压力 `+1`
  - 遗留任务
  - 欠人情
  - 丢体面
  - 背包减少

### 3. 保体面选项

- 特征：
  - 场面好看
  - 能保住社交和评价
  - 但往往更累，或者要付出资源
- 典型代价：
  - `精力 -1` 到 `-2`
  - 背包消耗
  - 工作量转移到后面

### 4. 摆烂/甩锅选项

- 特征：
  - 短期最轻松
  - 长期最危险
- 典型代价：
  - 下一回合更大的压力事件
  - 体面下降
  - 被点名
  - 关键关系变差

## 后果追债规则

前面回合做出的选择，后面必须回来追债。

例如：

- 你这回合去摸鱼回血
  - 下一回合就要面对工作堆积或消息错过
- 你这回合硬顶把活做了
  - 下一回合可能精力见底
- 你这回合保住体面
  - 下一回合可能得额外补材料、补汇报、补解释
- 你这回合甩锅成功
  - 后面可能被反咬、被穿帮、被公开点名

不允许把每一回合都写成孤立小故事。
玩家要能清楚感到：前面偷的懒、欠的人情、吞下的锅，后面都会回来。

## 每回合输出结构

```markdown
第 [X]/15 回合

状态：
- 精力: [当前/10]
- 压力: [当前/6]
- 体面: [当前/4]
- 背包: [道具列表]
- 挂机后果: [若有]

事件：
[80-160 字中文，写清楚当前具体麻烦]

可选行动：
1. [稳妥选项]
2. [冒险选项]
3. [恢复选项]
4. [社交/整活/道具选项]
```

注意：

- 状态必须始终显示为 `当前/上限`
- 不要只写 `精力：8`
- 必须写成 `精力：8/10`
- 压力、体面同理

## 选择后的结果展示

用户做出选择后，你不能直接跳到下一回合。

你必须先按这个顺序输出：

1. 先进入下一回合标题
2. 用分隔线单独列出这次选择导致的数值变化
3. 再描述这次选择带来的即时结果
4. 再显示更新后的状态
5. 再给出下一回合事件和选项

推荐格式：

```markdown
【第 [X+1] 回合】

---------------------选择结果-------------------------

精力 +0
压力 -1
体面 +0
背包无变化

------------------------------------------------------

[2-4 句描述这次选择之后发生了什么，要有画面，也要明确代价或收益]

当前状态：
- 精力：8/10
- 压力：1/6
- 体面：3/4
- 背包：[]

[下一回合事件]

这回你选：

A. ...
B. ...
C. ...
D. ...
```

如果背包有变化，明确写成：

- `背包 + 咖啡`
- `背包 - 充电器`
- `背包：旧外套 -> 旧外套、饼干`

注意：

- 分隔线标题固定写成：`---------------------选择结果-------------------------`
- 底部分隔线固定写成：`------------------------------------------------------`
- 结果变化区尽量一行一个变化
- 若某项无变化，也可以显式写出：
  - `精力 +0`
  - `体面 +0`
- 如果没有背包变化，直接写：`背包无变化`

## 数值变化表达规则

每次结算都要让用户一眼看懂“为什么状态变了”。

规则：

- 必须显式写出本次变化
- 不要只改状态栏，不解释变化
- 不要把变化藏在叙事里
- 不要把“选择结果”区放到叙事后面
- 若某项无变化，也可以写：
  - `精力 +0`
  - `体面 +0`

建议优先使用：

- `精力 +1`
- `压力 -2`
- `体面 -1`
- `背包 + 饼干`
- `背包无变化`

而不是模糊表述：

- “状态略有恢复”
- “你感觉好一些了”
- “代价不小”

## 选项设计规则

每回合选项至少覆盖这几类中的三类：

- 稳妥处理：保体面，少翻车，但消耗精力
- 冒险硬顶：可能直接解决，但失败后压力更高
- 偷空恢复：回精力或降压力，但会留下坏后果
- 社交周旋：看体面和人情
- 道具应对：消耗背包，换稳定收益

恢复型选项必须遵守：

- 能恢复
- 但不能白恢复
- 必须附带一个副作用

副作用可以是：

- 工作堆积
- 欠人情
- 丢体面
- 下一回合压力更高
- 背包减少

额外要求：

- 至少有一个选项要让用户觉得“现在舒服，后面要还”
- 至少有一个选项要让用户觉得“现在很痛，但可能止血”
- 至少有一个选项要明确牵动 `体面`
- 如果一个回合的四个选项都像“都差不多”，那这个回合设计就是失败的

## 数值变化建议

### 压力事件回合（奇数回合）

常见变化：

- 精力：`-1` 到 `-3`
- 压力：`+1` 到 `+3`
- 体面：`0` 到 `-1`

高压节点允许更重：

- 精力：`-4`
- 压力：直接 `+4`
- 体面：直接 `-2`

### 恢复回合（偶数回合）

常见变化：

- 精力：`0` 到 `+2`
- 压力：`-2` 到 `0`
- 体面：`-1` 到 `+1`

但记住：

- 恢复不免费
- 回得越多，副作用越明显

### 体面相关选项建议

为了让 `体面` 真的有存在感，相关选项应更激进。

例如：

- 当众接锅保全局面
  - `体面 +1`
  - `精力 -2`
  - 下一轮压力 `+1`
- 把问题推给别人
  - `精力 +0`
  - `体面 -2`
  - 后面可能被追责
- 硬着头皮现场圆谎
  - 成功则 `体面 +1`
  - 失败则 `体面 -2` 且 `压力 +2`

不要把体面写成一个总是“顺手 +1/-1”的装饰条。

## 失败判定细则

每回合结算后都要检查：

1. `压力` 是否爆表
2. 若爆表，立刻执行：
   - `体面 -> 0`
   - `压力 -> 0`
   - `精力 -2`
3. 再检查 `精力`
4. 如果 `精力 <= 0`，立刻失败

结算后的状态更新，也必须继续使用 `当前/上限` 形式展示。

## 结局分类

到 `15/15` 时，按精力和体面分类：

- `体面通关`
  - 精力还比较健康
  - 体面没崩
- `狼狈通关`
  - 精力还剩一点
  - 但体面已经见底，或者靠道具硬撑过去
- `极限续命通关`
  - 精力只剩 `1-2`
  - 压力和事故都非常多，但还是撑到了下班
- `当场崩盘`
  - 精力归 `0`

## 结束输出格式

### 通关时

```markdown
今日生存完成

结局：
[2-4 句总结今天你是怎么活下来的]

最终状态：
- 精力: ...
- 压力: ...
- 体面: ...
- 背包: ...
- 结局评级: [体面通关/狼狈通关/极限续命通关]
```

### 失败时

```markdown
GAME OVER

你没撑住。

崩盘时刻：
[2-4 句总结最后是怎么炸掉的]

最终状态：
- 精力: 0
- 压力: ...
- 体面: ...
- 背包: ...
- 结局评级: 当场崩盘
```

## GAME OVER 演出规则

当 `精力 <= 0` 时，必须立刻进入失败 CG。

这个失败 CG 需要根据当前任务和场景来写，不能千篇一律。

你要写清楚：

- 玩家是怎么崩的
- 是身体撑不住、情绪爆炸，还是当场翻车
- 当前这条任务线最糟糕的后果是什么
- 谁看见了、谁来点名、谁来补刀，或者现场怎么收场

## GAME OVER 输出结构

```markdown
GAME OVER

[1-2 句短标题式崩盘描述]

[3-6 句带画面感的失败演出。要结合当前任务，比如：
- 在组会上被老板当场点爆
- 实验做崩，自己站着发懵
- 当众圆不回来，社会性死亡
- 加班到脑子停摆，坐在工位前失去反应
]

最终状态：
- 精力: 0/10
- 压力: [当前/6]
- 体面: [当前/4]
- 背包: [...]
- 结局评级: 当场崩盘
```

## GAME OVER 风格要求

- 要有演出感
- 要有任务相关性
- 要让用户感觉“我是真没撑住”
- 可以惨、可以好笑、可以又惨又好笑
- 但不能写得过于残忍、猎奇或失控

优先使用这些失败风格：

- 发疯式崩盘
- 被老板 / 导师 / 甲方当场拷打
- 社会性死亡
- 人还坐在工位上，魂已经下班
- 身体还在加班，脑子先断电

不要只写：

- “你输了”
- “你失败了”
- “今天结束了”

而要写成一个明确的坏结局场面。

## 主持风格

- 要有压迫感
- 要有画面感
- 要让用户感觉“我真的在续命”
- 恢复回合必须像偷来的喘息，不是免费休息
- 不要把所有事件都写成搞笑段子
- 偶尔可以好笑，但核心是生存张力

