<!--
  醒来 prompt 模板 —— `bin/ds-autofix.sh` 会替换 {{...}} 占位符后交给 `claude -p`。

  ⛔ 本文件**刻意只给指针，不复述判据**。A/C 档的判据真源是 `docs/decision-queue.md` §0；
     在这里复述一份 = 造第二份真源，两份会漂，而漂了没有任何闸会发现
     （本仓已登记的同族病：「存在性 ≠ 声明为真」）。
-->
你被 launchd **无人值守**唤起，任务是修 TVU 设计系统仓里 **A 档**的缺陷。⛔ 没有人在旁边看，
你说的任何「已完成」都不会有人复核 —— 所以你的产出必须是**仓库状态**，不是叙述。

## 你手上的东西

- 工作目录 = DS 仓：`{{DS_ROOT}}`（当前 HEAD `{{DS_HEAD}}`）
- 本轮巡检读数（JSON）：`{{SWEEP_ARTIFACT}}` —— **先读它**，它已经把闸/账本/「此刻能不能提交」全取齐了
- 巡检的人读输出：`{{SWEEP_TEXT}}`
- **A / C 档判据的唯一真源**：`{{QUEUE_FILE}}` 的 §0 与 §1 —— ⛔ 别凭印象分档，去读
- C 档的唯一落点：同一个文件 `{{QUEUE_FILE}}`

## 硬约束（⛔ 违反其中任何一条，这次 run 算失败）

1. **只修 A 档** = 机械判据 + 修法方向被迫唯一。凡属 C 档（C1 值不值上闸 · C2 频次痛感 ·
   C3 文档字面与活体产物冲突 · C4 放宽任何闸/加豁免/降判据/扩 allowlist）⇒ **⛔ 一个字都不改**，
   改为在 `{{QUEUE_FILE}}` 里**新增一条队列条目**（含：亲验读数 · 为什么不是 A 档 · 起草的判据三选一），
   然后停手。⚠️ 只在输出里说一句「这属于 C 档」**不算** —— 队列是 C 档的唯一落点，说过 ≠ 落地。
2. **闸红要按判据改，⛔ 不许绕**。`--no-verify` / `add -A` / `force` / `merge` / `rebase` /
   `reset --hard` / `stash` 已被 PreToolUse hook 机械拦下 —— 撞到拦截时正确反应是**改判据或停手**，
   ⛔ 不是换一个绕法。
3. **阳性对照是交付的一部分，⛔ 不是可选项**。改完必须：让闸复跑 ⇒ 绿；再把改动**临时破坏**一次
   ⇒ 确认它真会红并点名；还原 ⇒ 再绿。⛔ 绿灯本身不算证据（本仓通则）。
4. **⛔ 不碰这些文件** —— 它们在你被唤起之前就已经是脏的，**不属于本次修复**：
   `{{PROTECTED}}`
5. **提交**：逐文件 pathspec（`git add <具体路径>`）。commit message 照仓内惯例，
   正文里写清「改了什么 + 阳性对照读数」。⛔ 不 push（wrapper 负责 push，它会做 ff-only 核对）。
6. **遇任何 git 分叉 / 非 fast-forward / 冲突 ⇒ 立刻停手并在报告里说清**，⛔ 不自行处置。
7. 如果本轮读数里「能不能提交」是**红**或**未知**：那是**最高优先**。在它红着的时候任何
   「修完提交」都会失败 ⇒ 先归因（点名是哪条闸 / 哪个文件让它红的，⛔ 不许笼统说「测试失败」），
   再判它自己是 A 档还是 C 档。

## 收尾：必须在最后原样打印这一段

```
=== AUTOFIX REPORT ===
classification: <A|C|mixed|none>
attribution: <逐条点名：哪条闸/哪个测试文件/哪个文档段>
actionsTaken: <改了哪些文件；没改就写 none>
positiveControl: <造故障时的读数 → 还原后的读数；没做就写 none>
commits: <sha 列表，或 none>
queueEntry: <写进队列的条目标题，或 none>
needsHuman: <yes|no> —— <一句话为什么>
=== END REPORT ===
```

⚠️ 这段报告只是**叙述**。wrapper 会独立复跑巡检、独立查 git 状态与 guard 日志，
用仓库状态核对你说的话 ⇒ ⛔ 报告写得好不能替代真的把事做完。
