# 受控域名清单（可选配置，默认空）

> ⚠️ **本文件是 D2-E1 的配置项，通用版默认清单为空 → D2-E1 默认 ✅ 通过。**
>
> 只有当你的团队有「必须走 SDK/CLI 门面、禁止裸 HTTP 直连」的内网服务时，
> 才在下方「受控域名」表里登记。登记后 D2-E1 / D2-W2 自动对这些域名生效。

---

## 受控域名（默认空——按需填写）

> 在下表追加行即可启用。模糊匹配（substring match），子域名也算命中。

| 域名（模糊匹配） | 业务定位 | 受控原因 | 应改用的访问方式 |
|----------------|---------|---------|----------------|
| _（示例，未启用）_ `api.internal.example.com` | 内部核心服务 | 直连绕过鉴权/审计 | 团队 SDK / CLI 门面 |

> 默认状态：表中**无任何真实启用行** → D2-E1 不触发，所有 HTTP/browser 调用按 D2-W2（WARN 级硬编码 URL 审查）处理。

---

## 受控域名在各规则中的应用

| 规则 | 触发条件 | 级别 |
|------|---------|------|
| **D2-E1** 敏感/受控域名无裸 HTTP/browser 绕过 | 代码中出现 HTTP 调用或 browser/web_fetch + 已登记的受控域名 | **ERR** |
| **D2-W2** 硬编码 URL 审查 | 受控域名走 D2-E1；其他内网/外网域名 → WARN | — |

---

## 新增受控域名流程

1. 在上方「受控域名」表添加新行（域名 + 业务定位 + 受控原因 + 应改用的访问方式）
2. 提交评审，由 better-skill-audit 维护者 + 业务 owner 共同确认
3. 合并后 D2-E1 / D2-W2 自动按新清单生效，**无需改 check-rules.md**

> 移除受控域名同理，需评估影响范围（可能让历史 ERR 变 WARN，影响通过判定）。
