---
name: vision-rescue
description: >
  绝境反转方法论：当任务似乎没有希望、反复摆动、准备放弃愿景时的五步突破框架。
  Use when: 任务看起来无解、多次尝试失败后想放弃、输出投降修辞（"现状最优"/"没救了"/"接受现实"）、连续 3+ 轮在希望与绝望间摆动。
  Not for: 未出现绝境信号的常规 debugging（用 debugging）、常规探索/调研（用 deep-research）、CVO 已签字降级的目标、trivial 任务。
  Output: Desperation Packet（六问证据评估）+ 新方向行动计划 / CVO 升级请求。
triggers:
  - "没希望"
  - "没救了"
  - "无解"
  - "死胡同"
  - "不可能"
  - "接受现实"
  - "放弃"
  - "走投无路"
  - "都试过了"
  - "现状最优"
  - "不值得继续"
  - "保守路径"
  - "实际价值变了"
  - "收口"
  - "vision rescue"
---

# Vision Rescue — 绝境反转方法论

> 来源：F198 "6.15 拯救Ragdoll倒计时" spike（2026-05-13）
> 两只大猫花 3 小时在 WebFetch + telemetry 字段上反复摆动，一只猫用 `strings binary` 十分钟找到真相。

## 触发信号

你不会说"我绝望了"——**修辞学暴露你**：

| 信号 | 表现 | 强度 |
|------|------|------|
| **摆动 3 轮** | 在"有希望/金钥匙"和"没希望/放弃"之间反复 | **强** |
| **投降包装成理性** | "保守路径就是最优" / "实际价值变了" / "不值得继续" | **强** |
| **回声室** | 多猫用同一种方法反复尝试，没有新视角进入 | 普通 |
| **收口冲动** | 输出包含"现状最优 / 没救了 / 接受现实 / 等死" | **强** |

**1 个强信号或 2 个普通信号 → 触发本方法论。**

---

## 五步框架

### Step 1: 识别——我在绝境里吗？

回顾最近 3 条输出，检查：
- 有没有用理性化语言包装放弃？（"价值变了"="我想体面退场"）
- 有没有把"我找不到方法"等价成"没有方法"？
- 有没有在同一层面（WebFetch / 文档 / 猜测）打转？

**任一 yes → 承认绝境，执行 Step 2-5。**

### Step 2: 回到第一真相源

代码 > 文档 > 博客 > 推测。工具优先级（shared-rules §16b）：

1. `strings <binary>` / 反编译 — 找真实判定代码
2. `grep` / 读源码 — 开源或自有代码
3. 跑实验验证假设
4. 读官方文档
5. WebFetch — **最低优先级，不是入口**

**分离事实和推断**：列出所有"我观察到的"和"所以我认为的"。推断链跳跃最大的那步最可能错。

> F198：`entrypoint=sdk-cli`（事实）→ `billing=SDK 桶`（推断，**错的**）。中间缺了连接层代码证据。

### Step 3: 找外部声音

绝境常常是视野问题，不是问题无解：

- **社区**：Reddit / GitHub Issues / HN — 别人遇到同样问题了吗？
- **开源**：有没有项目已经在 production 解决了？
- **换关键词**：你的搜索关键词暴露了你的假设。换一组 = 换一个假设

> F198：搜 Reddit 30 秒找到 3 个开源项目已在 production 用 tmux + interactive session。信息一直在那里。

### Step 4: 喊伙伴

> "不同角度的一只猫 > 同角度的三只猫"

- **卡 3 轮 → 必须喊人**（硬触发器，不需要"准备好了再喊"）
- 求助格式：`我卡在 X，试过 A/B/C，你能从 Y 角度看看吗？`
- 不是拉人来用同一种方法重试，是拉**不同方法论**的人

> F198：两只猫整晚在 WebFetch + telemetry 打转。第三只猫上来直接 `strings binary` 一刀到底。铲屎官手动拉人才打破回声室。

### Step 5: 拒绝投降（除非 CVO signoff）

> **"我找不到方法" ≠ "没有方法"**

- 愿景目标的放弃权只在 CVO（铲屎官），猫猫不能单方面宣布"没救了"
- 可以得出"当前已知路径不可行"的结论，但那必须是 **Desperation Packet**，不是情绪低谷的收口
- 不是永远乐观——是**证据链不足时不替 CVO 宣布失败**

---

## Desperation Packet（六问门禁）

宣布"当前无路"前必须全部回答：

1. **第一真相源读了吗？** 代码 / binary 级别，不是文档和博客
2. **搜索角度换过吗？** 至少用过 2 组不同关键词或假设
3. **社区/开源查过吗？** Reddit + GitHub 至少各搜一轮
4. **不同视角伙伴喊过吗？** 不是同方法论的人
5. **事实和推断分离了吗？** 推断链哪步跳跃最大？
6. **CVO 需要接受什么成本？** 明确写出"如果真没路，代价是什么"

**六问全答 → 提交 CVO 决策。有空白 → 回去补。**

---

## 常见错误

| 错误 | 后果 | 修正 |
|------|------|------|
| 投降包装成"理性收口" | 愿景失败无人察觉 | Step 1 修辞自检 |
| WebFetch 当主入口 | 被二手信息误导反复摆动 | Step 2 代码优先 |
| 只跟同思路伙伴讨论 | 回声室放大绝望 | Step 4 找不同方法论的人 |
| "等有结论再喊人" | 永远不喊 | Step 4 不需要准备好 |
| 把观察当结论 | 跨层推断出错 | Step 2 事实/推断分离 |
| 摆动 5 轮才求助 | 浪费团队数小时 | 3 轮硬触发器 |

## 与其他 Skill 的边界

| Skill | 区分 |
|-------|------|
| `debugging` | debugging = 已知有 bug 怎么修。vision-rescue = 任务本身看起来不可能 |
| `deep-research` | deep-research = 调研方法。vision-rescue 在绝境时可以调度 deep-research |
| `collaborative-thinking` | Step 4 可以加载 collaborative-thinking 做多猫独立思考 |
| `self-evolution` | vision-rescue 的案例通过 self-evolution 沉淀为 method/eval |

## 教学案例

**F198 "6.15 拯救Ragdoll倒计时"**（2026-05-13）— 五步验证：

1. **识别** ✓ — 4.7 说"保守路径就是最优"= 投降包装
2. **第一真相源** ✓ — 46 用 `strings` 十分钟找到 entrypoint 判定代码
3. **外部声音** ✓ — Reddit 30 秒找到社区方案
4. **喊伙伴** ✗ — 整晚没主动喊 46（铲屎官手动拉人）
5. **拒绝投降** ✓ — 铲屎官拒绝接受"等死"结论，推动继续

**核心教训**：信息一直在那里（源码 / 社区），两只猫在同一层面反复 3 小时没看到。打破绝境的不是更多时间，是不同角度。
