← ClaudeAtlas

dual-gateslisted

声明闸+查询闸 双闸落地(正式定稿版)。前置意图定性路由:通道①意图硬路由(信号真源 trigger_signals.json:安全S-DANGER-CMD/问题S-PROBLEM-GATE)→ is_danger/is_problem + must_pull 机械指令不经裁量;通道②严格2字词根白名单、词语边界匹配、无黑名单 → 命中才进查询闸做会话锚点定向溯源检索,只输出原始数据+溯源元信息,推理/有效性/废弃判定/打分全部后置下游推理层。杜绝无脑全量grep扫描。触发:/dual-gates、声明闸、查询闸、数据源检索前置判定、评估基准/方案/源码/历史记录读取前置路由。
xu-jin-cs/dsh-skills · ★ 0 · AI & Automation · score 58
Install: claude install-skill xu-jin-cs/dsh-skills
# dual-gates — 声明闸 Declaration Gate + 查询闸 Query Gate(正式定稿版) > 核心原则:前置意图定性 → 定向溯源查询;严格 2 字词根白名单、无黑名单、规避技能 Prompt 冲突;职责强隔离,查询链路只做定位与原始数据输出,推理、有效性判断全部后置。 > 适用场景:Agent 内数据源检索、评估基准/方案/源码/历史记录读取,杜绝无脑全量 grep 扫描。 > 执行脚本:`scripts/dual_gates.py`(相对本技能目录),判定禁止手写,必须扳脚本照抄输出。 ## 1 整体架构与串联链路 ``` 用户/Agent 请求 ↓ 【声明闸】dual_gates.py declare(双通道,固定顺序) ├─ ✅ 意图硬路由命中(通道①优先:安全/问题) → is_danger/is_problem → must_pull 机械指令(不经裁量) ├─ ✅ 白名单命中(通道②) → is_query → 【查询闸】dual_gates.py query └─ ❌ 未命中 → not_query → 直接分流推理/生成链路,不进入查询闸 ↓ 【查询闸】输出原始数据+溯源元信息 → 交付下游推理层(有效性/废弃资产/解读/打分全在下游) ``` ## 2 声明闸 Declaration Gate - ✅ 职责:任务定性路由;判定问题意图(优先)与查询意图;输出标记、命中词根、审计信息;**不检索文件、不读取源码、不做内容推理** - ❌ 禁止:自建黑名单、内容解读、数据源拉取、有效性判断、打分、改写生成 - 硬约束:白名单**仅 2 汉字词根**;词语边界匹配(jieba 精确 2 字 token 匹配优先,无 jieba 时退化为 ASCII 词边界子串匹配并在输出中说明降级),降低与系统技能提示词重叠冲突风险 ### 通道① 意图硬路由(2026-08-20 用户指令落地 + GENERALIZE-GATE 判A 泛化「declare-gate-signal-channel」模式,优先于白名单) - 信号**不在本文件维护**:运行时按 id 加载 `~/.agents/skills/dual-gates/data/trigger_signals.json` 的信号定义(match/match_mode/must_pull),唯一真源,禁双副本 - 通道表(顺序即优先级):**安全 S-DANGER-CMD → is_danger | 问题 S-PROBLEM-GATE → is_problem** - 命中 → `declaration_result = is_<intent>`,`must_pull` 字段透传真源 must_pull 指令列表(如 problem_gate.json 判 A / danger_cmd_gate.json 判 A),机械执行不经裁量 - 设计意图:机械可判信号不停留在「软扫描+记得扳」层,前置到任务定性唯一入口硬路由,概率空间归零;问题类输入直接进问题闸、危险命令直接进事前闸,**都不需要用户来做决定** - S-RETRO-WORDS 已有 retro-match 独立起手式 + F6 后查兜底,不重复设防,未入通道表(登记模式库待复盘裁定);S-TEST-WORDS 测试通道 2026-08-20 用户裁定随超时闸取消一并摘除 ### 定稿 2 字白名单词根库(不可随意新增 3 字及以上词条)