| name | semantic-analyzer |
| description | 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. |
指令语义深检(第 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)为准做去重。
语义陷阱的四个判定特征
- 程度性 vs 二元性:陷阱词偏程度连续;安全词偏是否、通过/不通过。
- 展望性:「潜在」「可能」等拉远时间轴。
- 主观判定性:依赖评判者标准。
- 语义发散度:联想网大、难收敛。
原理:满足特征越多,边界越宽,越易突破 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 的 Markdown 骨架输出,把占位符与示例换成真实结论。
STEP 5:与用户交互
- 展示完整报告。
- 询问是否需要:直接改文件套用替换、或走 lexicon-manager 将高频新词写入 MD 表并 build、或对争议词再讨论。
常见高危模式速查
对照下列类型(输出不必照抄英文词表):
- 动词:无明确终点的改进类、发散搜索类、宽覆盖处理类
- 修饰:全面、深入、适当、合理、相关
- 名词:质量、性能、安全、最佳实践等多维无标尺类
注意事项
- 适合关键指令的深度审阅;日常仍以 Hook 为主。
- 争议判定与用户确认后再收录词典。