# 元规划协议与动态约束注入 — 测试报告

> 文档编号：TEST-RPT-009
> 日期：2026-06-12
> 关联设计：[DESIGN-ARCH-025] khyos 元规划协议与动态约束注入规范
> 关联实现：[IMPL-RPT-025] 元规划协议与动态约束注入 — 实现报告

---

## 1. 范围

验证 `src/services/metaplan/*` 子系统：元规划解析/防偷懒升级、动态约束注入、真实代码拦截器、
信任熔断、宪法红线，以及 `MetaPlanCoordinator` 的端到端闭环。

## 2. 运行

```bash
node --test tests/services/metaplan/metaPlanSubsystem.test.js
# tests 31 / suites 7 / pass 31 / fail 0
```

## 3. 用例矩阵（31 例）

| 套件 | 用例数 | 覆盖诉求/防呆 |
|---|---|---|
| constraintStrategy — 单调升级阶梯 | 2 | LUB 取严、未知 fail-safe |
| executorRegistry — 武器库单一真源 | 4 | 防呆②（enum==注册表、拒捏造、拒空、裸网识别）|
| metaPlanSchema — 解析与防偷懒升级 | 4 | 防呆①、拒绝偷懒（Soft 缺论证升级）、非法枚举拒绝 |
| constraintInjection — 按需配发锁具 | 4 | Soft 不挂锁、Hard 挂锁、Block 要快照、真校验打回坏 JS |
| constitutionalRedLines — 不可覆盖红线 | 4 | 防呆④（删库/删机密/清 package.json 强制 Block；常规放行）|
| trustCircuitBreaker — 信任熔断 | 5 | 类型级降级、不牵连他型、防呆③连续 2 次锁会话、Hard 失败不扣信任、Soft 成功重置连击 |
| MetaPlanCoordinator — 端到端 | 8 | §6 同任务不同风险→不同策略、防呆①②、拒绝偷懒、红线覆盖、闭环自愈、缺票据兜底 |

## 4. 核心验证（§6 同一任务不同风险 → 不同策略）

- **改 JS 注释**：`toolchain:[raw_string_injector]` + `Prompt_Soft` + 充分 `risk_dissent`
  → `effectiveStrategy = Prompt_Soft`，`validateExecution` 的 `ranValidation = false`（跳过校验，极速）。
- **重构 JS 异步控制流**（同一文件）：`toolchain:[js_babel_writer]` + `Code_Hard`
  → 真 babel 校验：`async function f(){ await (` 被打回（`allowed:false`），
  `async function f(){ await g(); return 1; }` 通过。

**同一目标、不同风险判定 → 截然不同的执行策略与挂锁，得证。**

## 5. 防呆与诉求逐条验证

| 项 | 用例 | 结果 |
|---|---|---|
| 防呆①（先规划后执行）| 无元规划 JSON → 拒绝；缺票据 → validateExecution 拒绝并要求快照 | ✅ |
| 防呆②（执行器须自注册表）| `ghost_writer_9000` → 拒绝 | ✅ |
| 防呆③（连续 2 次 Soft 翻车锁会话）| 两次 Soft 失败后任意新类型被升 `Code_Hard` | ✅ |
| 防呆④（红线不可覆盖）| 选 `Prompt_Soft` 但 `rm app.sqlite` → 强制 `System_Block` | ✅ |
| 拒绝偷懒 | `risk_dissent:"ok"` 的 Soft → 升 `Code_Hard` | ✅ |
| 极致省资源 | Soft `ranValidation:false`，零拦截器开销 | ✅ |
| 闭环自愈 | Soft 翻车 → 同类型下一次自动升 `Code_Hard` | ✅ |

## 6. 结论

31/31 全绿。子系统满足全部核心诉求与五条防呆红线，且零侵入既有模块、无回归面。
