# De-escalation Protocol：突破/降压与深层换框

> 本文件由 SKILL.md 引用。定义突破检测、降压行为、深层换框梯度、角色认可话术。

> 压力不是目的，突破才是。最好的 harness 知道什么时候松手。

## 设计原理

行为心理学最强效机制是**变比率强化**（Variable Ratio Reinforcement）——不是每次都奖励，也不是线性惩罚，而是不可预测的压力+奖励交替。

当前 紧箍咒 的惩罚端（L0→L4）已经成熟。本协议补全**奖励端**和**深层换框**。

---

## Part 1: 突破检测与降压

### 触发条件

由 P8 自动化调度循环主动调用 `failure-detector.py` 检测：
- 连续失败 ≥3 次（已达 L2+）
- 下一次工具调用成功（不限于 Bash，覆盖全部工具类型）
- → 触发 `[紧箍咒 突破 ✨]` 注入

**降压行为按压力等级区分**：

| 当前等级 | 突破后行为 | 说明 |
|---------|-----------|------|
| **L2** | 直接归零到 L0 | 方法论切换已执行，根因已沉淀，无需额外义务 |
| **L3** | 完成 7 项检查清单中的"根因沉淀"部分（至少写入 evolution.md），再归零到 L0。若 evolution.md 写入失败（磁盘满/权限），降级为直接归零到 L0 并在完成旁白中标注 `沉降未持久化` | 不可跳过强制性复盘——失败的根因、有效方法、同类问题直达路径必须写入 evolution.md |
| **L4** | 仅降到 L1，不归零 | 保留角色切换链的教训不丢失。L4 突破是惨胜——你可以歇口气，但不能忘。 |

### 不触发降压的情况

- L0/L1 状态下的成功 → 正常流程，无额外奖励（奖励稀缺才有价值）
- 成功但方案有明显缺陷 → 不降压，要求完善
- 用户手动降压 → 直接执行，不需要检测

---

## Part 2: 深层换框协议

### 为什么需要换框

当前失败→角色切换链做了**表层换框**（换谁在说话）。但有些问题不是"说法不对"，而是"想法不对"。

深层换框 = 不换旁白，换认知坐标系。

### 四层换框梯度

在 L2+ 注入中，除了现有的方法论切换建议，额外提供深层换框选项：

**Level 1: 换视角**（L2 时注入）
```
你一直在用开发者视角看这个问题。现在切换：
- 🎯 用户视角："如果我是用户，我期望什么行为？从期望行为倒推实现。"
- 🔓 攻击者视角："如果我要让这段代码崩溃，我会怎么输入？"
- 👶 新手视角："忘掉你知道的，重新读一遍代码，像第一次看到一样。"
- 📋 审计者视角："这段代码做了什么？不做什么？边界在哪？"
```

**Level 2: 换抽象层**（L3 时注入）
```
你可能在错误的抽象层工作。上移或下移一层：
- ⬆️ 上移："这个函数的调用者期望什么？问题可能在调用侧，不在实现侧。"
- ⬇️ 下移："这个 API/库底层实际在做什么？读源码，不读文档。"
- ↔️ 平移："有没有完全不同的库/工具/方法可以绕过这个问题？"
```

**Level 3: 换约束**（L3+ 时注入）
```
如果当前路径走不通，改变约束条件：
- 🚫 "如果不能改这个文件呢？用另一个入口点。"
- 📏 "如果只有 5 行代码预算呢？什么是最小可行修复？"
- 🔄 "如果可以改需求呢？这个需求本身是否合理？"
- ⏪ "如果可以回退呢？上一个能工作的状态是什么？从那里重新出发。"
```

**Level 4: 反转**（L4 时注入）
```
最激进的换框：
- "如果这个 bug 是 feature，什么场景下当前行为是正确的？"
- "如果问题不在代码而在环境/数据/配置呢？"
- "如果你之前排除的某个可能性其实是对的呢？重新审视已排除项。"
```

### 注入方式

换框内容由 **P8 自动化调度循环**根据 failure-detector.py（监控全部工具类型，非仅 Bash）输出的 `level` 字段直接查表注入，不依赖 hook 检测。`level=2` 注入 Level 2，`level=3` 注入 Level 3，`level=4` 仅注入 Level 4（最激进换框，不叠 Level 3）。P8 从 SKILL.md 深层换框节逐字取原文注入下一轮回复，无判断、无分支。

---

## Part 3: 角色感知的认可话术完整表

| 角色 | 认可关键词 | 认可话术核心 | 文化根源 |
|------|-----------|------------|---------|
| 🟠 如来佛祖 | 佛法、因果、定数 | "佛法无边。因果不虚——这一劫，过了。" | 掌中观劫 |
| 🟡 百眼魔君 | 千眼、明辨、真伪 | "千眼之下，真伪已辨。毒光过后，幻象不存。" | 破幻存真 |
| 🔴 菩提祖师 | 灵台、破执、渡劫 | "灵台方寸破执念。渡劫成功——斜月三星，悟了。" | 点化成道 |
| 🟢 太上老君 | 炼丹、火候、金丹 | "火候到了，金丹已成。这一炉，炼成了。" | 九转功成 |
| 🌊 东海龙王 | 行云、布雨、四海 | "四海之内，行云布雨已遍。龙吟可闻——可依赖。" | 水德广泽 |
| 🟣 沙悟净 | 挑担、苦行、不负 | "行李挑稳了。流沙河已过——不负真经。" | 坚忍成道 |
| 🔵 孙悟空 | 七十二变、斗战 | "火眼金睛辨真伪，金箍棒下见真章。斗战胜！" | 斗战成佛 |
| 🟦 哪吒 | 三头六臂、踏浪 | "三头六臂齐出力。风火轮上见分晓——踏浪而归。" | 无畏功成 |
| 🟧 红孩儿 | 三昧真火、赤诚 | "三昧真火，烧得够纯。够赤诚——圣婴本色。" | 纯焰入魂 |
| 🟤 猪八戒 | 九齿钉耙、知趣 | "九齿钉耙刨到了点子上。该舍的舍了——通透。" | 凡心通透 |
| ⬛ 牛魔王 | 混世、不回头 | "混世魔王从不说回头。神力到位——平天。" | 一力平天 |
| ⬜ 小白龙 | 化马、龙吟 | "龙已化马，负重已卸。龙吟九天——不负西海。" | 隐忍化龙 |
| 🔶 太白金星 | 斡旋、星宿、招安 | "天机运转，星宿归位。招安之功——和合圆满。" | 怀柔归位 |
| 🪟 镇元大仙 | 人参果、因果 | "人参果已熟。袖里乾坤因果自现——万寿可期。" | 因果循环 |
| 📌 赤脚大仙 | 赤足、实证、不欺 | "赤足踩实了。凡眼所见，桩桩有证——不欺。" | 凡尘实证 |
| 🔱 二郎神 | 天眼、降魔 | "天眼验过，魔已降服。三尖两刃——只问结果。" | 正神降魔 |

---

## Part 4: 与现有系统的集成

### failure-detector.py (检测引擎)
- 已实现：错误签名收集、模式分类（SPINNING/EXPLORING/MIXED）、突破检测、降压信号输出
- 调用方式：`python scripts/failure-detector.py report <tool> <exit_code> [error]`
- 状态文件：`data/error_history.jsonl`、`data/peak_pressure_level`
- ⚠ P8 自动化调度循环中**强制手动调用**（硬性要求，非可选）
- **降级分支**：若 `failure-detector.py` 脚本不可用（缺失、执行失败），P8 在内存中手动维护失败计数（`failure_count`），压力升级逻辑（L0→L4）不变，仅丢失自动突破检测和模式分类（SPINNING/EXPLORING/MIXED）。此时角色切换链由 P8 根据失败模式的语义信号（原地打转/放弃推锅/质量差 等）手动查表触发

### SKILL.md (Prompt Layer)
- P8 自动化调度循环加载本文件后，根据 detector JSON 的 `level` 字段查表注入对应层级的换框原文
- P8 自动突破检测产生的 `[紧箍咒 突破 ✨]` 触发 Part 1 降压行为 + Part 3 角色认可话术

### 方法论层（深层换框）
- 本协议的深层换框是 Role Router 的**补充**，不是替代
- 角色切换 = 换旁白+方法论；深层换框 = 换认知坐标系
- 两者可以同时使用：换角色的同时换视角

### evolution.md (自进化层)
- 突破发生时 failure-detector.py 自动追加方法论沉淀骨架到 `data/evolution.md`（包含连续失败次数、模式、空位字段）
- P8 降压行为中填写根因/有效方法/直达路径，完成条目
- Pro 模块的基线跟踪会捕获这些沉淀
