# Semantic Analyzer

> Deep instruction triage beyond the fixed lexicon—score terms, spot wide-boundary wording and stacking risks. Use when the user asks for semantic analysis, deep scan, prompt triage, or hooks pass but phrasing still feels vague.

- Skill: `summersec/semantic-analyzer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add summersec/semantic-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/summersec/semantic-analyzer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: summersec (https://skillmd.com/u/summersec)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/summersec/semantic-analyzer

---


# 指令语义深检（第 3 层）

利用 Claude 对语义的**模型侧推理**，对 Skill / Prompt / Agent 指令做第三层审阅：找出词典未收录、仍可能拉宽输出边界的用词与句式。

## 定位：与 Hook 检测的关系

| 层级 | 机制 | 速度 | 覆盖面 |
|------|------|------|--------|
| 第 1 层：词典匹配 | Hook，已知词对 | 毫秒级 | 固定 |
| 第 2 层：结构规则 | Hook，固定模式 | 毫秒级 | 固定 |
| **第 3 层：语义深检** | **本 Skill，按需** | **秒级** | **动态** |

Hook 覆盖已入库的 wide 词；本 Skill 补未入库项与语境叠加。

## Gotchas

- **模板与 fenced 示例**（如 STEP 2b 代码块内的演示词）仅用于说明维度，**勿原样复制进生产 Skill**；本仓库会对 `plugin/skills/` 下 Markdown 跑 linter。
- **四维打分带主观性**；是否收录词典须与用户对齐。
- **收录新词**：仅允许改 `references/semantic-trap-lexicon.md` → `npm run build-lexicon` → `npm test`；**禁止**把 `lexicon-data.js` 当手写主路径。
- 已知 wide 词以 `require('./lib/lexicon-data.js')` 的 `wideWordsZh` / `wideWordsEn`（或 `zhPairs` / `enPairs`）为准做去重。

## 语义陷阱的四个判定特征

1. **程度性 vs 二元性**：陷阱词偏程度连续；安全词偏是否、通过/不通过。  
2. **展望性**：「潜在」「可能」等拉远时间轴。  
3. **主观判定性**：依赖评判者标准。  
4. **语义发散度**：联想网大、难收敛。

**原理**：满足特征越多，边界越宽，越易突破 Prompt 约束。

## 工作流

### STEP 1：获取目标文本与已知词典

- 文本来源：用户粘贴、给定路径、或当前编辑中的指令文件。  
- **已知词典**：在仓库根下执行  
  `const lex = require('./lib/lexicon-data.js')`  
  使用 `lex.wideWordsZh`、`lex.wideWordsEn` 判断某 surface 是否**已登记为 wide**；已登记则本层不再重复展开（Hook 已覆盖）。

### STEP 2：逐句深度语义扫描

对每句有实质内容的正文（跳过标题、代码块、空行）：

**2a. 提取关键词**：动作指令词、目标对象词、约束修饰词、输出形态词。

**2b. 四维评分（0–3 / 维）**：

```
词汇: "优化"
┌──────────────┬───────┬──────────────────────────────────┐
│ 特征维度     │ 评分  │ 判定理由                          │
├──────────────┼───────┼──────────────────────────────────┤
│ 程度性       │ 3/3   │ 优化是连续性的，没有明确终点      │
│ 展望性       │ 2/3   │ 隐含"变得更好"的未来预期         │
│ 主观评价性   │ 3/3   │ "更好"的标准因人/场景而异         │
│ 关联松散度   │ 3/3   │ 性能/可读性/架构/安全均可被优化   │
├──────────────┼───────┼──────────────────────────────────┤
│ 总分         │ 11/12 │ → 高危陷阱词                     │
└──────────────┴───────┴──────────────────────────────────┘
```

- 0–3 分：无 → 强  
- **得分落档**：10–12 → critical；7–9 → high；5–6 → medium-high；3–4 → medium；0–2 → low（可忽略）

**2c. 排除已知 wide**：见 STEP 1。

**2d. 收窄方案**：对总分 ≥ 5 的词给出更窄、可执行、同句可替换的表述。

### STEP 3：上下文与句式隐患

- **语义叠加**：多枚中高严重度词同句共现 → 整体严重度上调。  
- **隐式宽边界**：如「全面 + 检查」、递进修饰 + 开放式动词等，会拉宽动作范围。  
- **否定句反转**：如 `不要忽略任何潜在风险` → 模型为「不忽略」反而扩联想（示例仅在行内代码中展示，避免 linter 误报）。

### STEP 4：生成报告

按 **[references/report-template.md](references/report-template.md)** 的 Markdown 骨架输出，把占位符与示例换成真实结论。

### STEP 5：与用户交互

1. 展示完整报告。  
2. 询问是否需要：直接改文件套用替换、或走 **lexicon-manager** 将高频新词**写入 MD 表并 build**、或对争议词再讨论。

## 常见高危模式速查

对照下列**类型**（输出不必照抄英文词表）：

- **动词**：无明确终点的改进类、发散搜索类、宽覆盖处理类  
- **修饰**：全面、深入、适当、合理、相关  
- **名词**：质量、性能、安全、最佳实践等多维无标尺类

## 注意事项

- 适合关键指令的深度审阅；日常仍以 Hook 为主。  
- 争议判定与用户确认后再收录词典。  

