---
"@ux-team/tvu-design-system": patch
---

`audit-stale-anchors` 新增第 6 类判据 `retired-id`：扫代码层（`scripts/*.mjs` + `tests/*.ts`），禁止引用 `mockup-conventions.md` §Legacy ID Map 登记的退役规则号。散文层刻意不扫 —— 散文合法地叙述改号，代码不叙述历史。每个扫描面单独 fail-closed（任一面塌成空集即硬失败）。判据 = 该号在规则真源里**没有精确活定义** 且（自身或其族根）已登记退役 —— 「没有活定义」那一半是必需的，否则 `§M49` 这类「旧号退役、但另一份文档同号规则仍在用」的合法引用会被误报。退役表解析出 0 行、或 `scripts/` 下零个 `.mjs`，均为硬失败（分母为空时闸会空转成假绿）。无豁免表。

同时修掉本判据抓出的存量问题：`audit-mockup-binding-fidelity` 与 `audit-mockup-conformance` 的文案原本引用 `§M49.1`，而该号已于 2026-06-25 因与 `design-process.md` §M49 撞号改为 §M52.1（内容未变）—— 两条闸此前每次运行都把一个无处可达的规则号印给执行者。消费仓若在自己的文档里跟着写过 `§M49.1`，请改成 `§M52.1`。

由此确立一条约定并已应用于本仓闸脚本：**闸脚本里 `§` 是活指针，裸号是历史提及** —— 要说明「某号已退役」写裸号，不加 `§`。
