关于 graph-mode
graph-mode 是一项技能,可为聊天回复启用持续的证据规则,适用于审计、计划和复杂故障诊断等高风险结论。每条推理链都须落到六种可检查证据之一;该模式默认关闭。
主要功能
- 01启用持续证据模式
- 02要求推理链有可检查证据终点
- 03支持六类指定证据
- 04保持文档验证机制独立
- 05按指令关闭模式
适用场景
- 01支撑审计中的结论
- 02为架构决策和计划提供依据
- 03排查涉及多个文件的故障
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rheinmir/ setup --skill graph-mode安装后在 Claude Code 中输入/graph-mode确认已加载。
详细介绍
技能:graph-mode
R19(evidence-terminal)的证据规则适用于 CHAT,已从
llmwiki/CLAUDE.md/llmwiki/AGENT.md 中移出(此前会自动注入每个会话——因为强制要求在每次回答中引用/打开更多文件,导致 token 开销很大)。针对带有 ```evidence-chain 块的文档的机器验证器(evidence_terminal.py)不依赖此技能——无论 graph-mode 开启还是关闭,都会通过 harness/policy.yaml 始终运行。此技能只负责开启/关闭 CHAT 规范(没有验证器会覆盖这部分),这是无法自动设限的部分,因此启用前应考虑成本。
内容
目的和背景
- 目的: 开启(并保持开启,直到关闭)CHAT 规范:回答中的每条推理链都必须以六种可打开查看的证据类型之一作为终点。
- 触发条件(何时使用):
- 用户说“graph-mode”“开启 graph mode”“evidence mode”“证据模式”,或输入
/graph-mode。 - 需要高度确信的结论将用于做出决策(审计、验收、编写 ADR/PLAN、诊断影响多个文件的广泛 Bug)——这类情况中,错误结论的代价远高于多几次工具调用。
- 用户说“graph-mode”“开启 graph mode”“evidence mode”“证据模式”,或输入
- 非目标: 不要用于日常事务(修改 1 个文件、回答简单问题、可逆操作)——到处启用会让所有回答变得不必要地冗长且成本更高。它不会取代或覆盖针对文档的 R19 机器验证器(
evidence_terminal.py);它也不是通用推理规范(那是fable5)。
心智模型
结论 A → 因为 B → … → 终点 ∈ {observed, tool-record, graph-edge, web, parametric, absence}。状态:关闭(默认)→ 调用时开启 → 持续开启 → 用户提出要求时关闭。
输入和输出约定
| 字段 | 必填? | 含义 | |
|---|---|---|---|
| 输入 | 开启命令 | 是 | “graph-mode” / /graph-mode / “evidence mode”… |
| 输入 | 关闭命令 | 否 | “关闭 graph mode” / “graph-mode off” / “normal mode” |
| 输出 | 开启时的所有 CHAT 回答 | 是 | 每条推理链都必须以 6 种类型之一作为终点,并完整列出该类型的属性 |
规则和能力
- RULE-01(MUST):这是没有验证器能捕捉到的 CHAT 规范——关闭时,无人会拦截;开启时,必须严格遵守,因为没有任何关卡能补救。
- RULE-02(MUST):不要覆盖针对
evidence-chain文档的 R19 machine-gate 规则(harness/policy.yaml中的applies_to: [write])——该规则独立运行,无论此技能开启还是关闭,都会始终执行。 - RULE-03(MUST):只修改任务所需的内容——不要顺手改动其他内容。
- RULE-04(MUST):
parametric不能作为决策结论的唯一终点。 - RULE-05(MUST):不要以“显而易见”“众所周知”作为结论,也不要通过引用同一回答中的另一条论证来得出结论。
- 能力:读取文件 / 运行命令 / 查询 log-ledger / 查询 wiki graph / 搜索网页以获取证据;此技能本身不会写入任何内容。
失败边界
- 找不到某个推理环节的证据 → 使用
absence明确说明(已运行的命令 + 空输出),或将结论降级为尚未证实,不要用推理填补。 - 决策结论只有
parametric证据 → partial:明确说明尚未验证,并建议提升为web/observed。 - 用户仍在日常事务中启用了此模式 → 仍须遵守(由用户决定),可以提醒一次 token 成本。
工作方式
主要工作流
| 步骤 | 类型 | 输入 | 操作 | 输出/退出 | 失败/下一步 |
|---|---|---|---|---|---|
| W01 | 确定性 | 开启命令 | 开启模式,对所有回答保持 ACTIVE | 状态 = 开启 | — |
| W02 | 判断 | 每个问题 | 构建推理链,追溯至属于 6 种类型之一的证据底层 | 回答包含终点 | 推理环节仍只是推断 → 继续追溯 |
| W03 | 确定性 | 关闭命令 | 关闭,恢复常规回答 | 状态 = 关闭 | 尚无关闭命令 → 重复 W02 |
各步骤的详细说明(W01–W03 的事实依据):
开启(持久化)
从调用开始,后续所有回答都保持开启。多轮之后不会自行退回到泛泛回答。关闭方式:“tắt graph mode” / “graph-mode off” / “normal mode”。 默认:关闭(不会在会话开始时自动开启)。
开启后,CHAT 中的每条推理链都必须以可查看的证据结束,而不能以另一条推理结束。A vì B vì chứng cứ C 就算完成;A vì B vì C 中的 C 若仍是推断,就尚未完成——必须继续追溯 C 的依据,直到触及根本。
以下六类可作为终点:
observed— 可打开的file:line路径,或可重新运行并附带输出的命令。tool-record— provenance-log / events.jsonl / ledger 中某个条目的 id。graph-edge— wiki graph 中某条边的 eid。web— 网络搜索到的数据:必须附上指向找到内容确切位置的链接(而非主页)、访问日期,以及所依据段落的原文引用。parametric— 来自模型训练的知识:必须明确说明属于此类,指出其来源(规范名称、文档、作者),并说明尚未核实。不能作为决策结论的唯一终点——必须进一步提升为web/observed,或同时附带其他类型。absence— 已运行的搜索命令 / 查询,以及其空结果输出。
不要以“显而易见”“众所周知”作结,也不要在同一回答中反向指向另一条推理作为结论。机制详情:[[evidence-terminal-chain]]。
分支
此版本没有子分支。
验证与停止
没有机器验证器会检查 CHAT(RULE-01)——是否遵守需自行检查:发送前,逐一确认每条结论都以六种类型之一作为终点。只有用户说出关闭命令后,此模式才会停止。
示例
- **正例:**开启 graph-mode 后,询问“stop hook 会阻止缺少 Origin 的提交吗?”→ 回答需附上
observedllmwiki/.claude/hooks/stop.py:<line>,或提供可重新运行的命令及其输出,不能止步于“应该会”。 - **边界 / 失败示例:**仅依据“根据 OWASP 规范(parametric)”作出决策性结论 → 仍不充分;必须标明
parametric+ 来源,说明尚未核实,并在用于决策前提升为web(提供指向具体条目的链接 + 访问日期 + 原文引用)。