navori
navori

audit

查看 harness 真实执行:token 去向及未能遵守的指令。

用法

navori audit [--session <id>] [--days <n>] [--since <date>] [--until <date>] [--all-repos] [--include-human-content] [--snapshot <name>] [--compare <snapshot>] [--json]

参数

--session <id> 按 id、前缀或 latest 选择一个会话。
--days <n> 仅选择最近 N 天标记的会话。
--since <YYYY-MM-DD> 起始日期。
--until <YYYY-MM-DD> 截止日期。
--json JSON 报告输出到 stdout,不写文件。
--out <dir> 覆盖输出目录。
--all-repos 汇总所有已审计仓库的区间报告,并显示各仓库覆盖率。
--include-human-content 仅本次调用把人类内容加入私有报告,不能与 --collect 组合。
--disarm 取消待生效的 --arm,不启动任何会话。
--snapshot <name> 将区间指标固定为审计根目录内的版本化快照;格式 2 按宿主、运行方式、模型和工作分组。不覆盖现有快照,不能与 --json 组合。
--copy-to <path> 复制快照到相对于 git 根目录的此路径,不覆盖。
--compare <snapshot> 逐指标与快照比较,仅描述结果;分组一致时标 matched,不宣称改进。可与 --json 组合且不写文件。
--start <id> 将会话标为已审计,供钩子流程使用。
--arm 准备 audit-mode:仓库中已打开会话在下一消息激活,可在会话内用 ! navori audit --arm;否则下个新会话激活。钩子自行执行 --start,仅作用一次;--disarm 可取消。
--stop <id> 封存会话日志并生成报告。
--collect 在 127.0.0.1:4318 运行 OTel 接收器直至停止。它是第三来源,记录宿主权限批准与活跃技能;输出地址、目录和需在审计会话终端导出的变量。
--cwd <dir> 待审计仓库,默认当前目录。

示例

启用 audit-mode

$ navori audit --start 8f3c1d2e
└  audit-mode active ~/.navori/audits/demo/session-8f3c1d2e.log

无已标记会话

$ navori audit
└  No sessions marked with audit-mode for 'demo'. Activate it with 'navori audit --start <session-id>'.

单会话报告

$ navori audit --session latest
◇  demo · 2026-09-01 → 2026-09-01 ─╮
│  1 sessions · 19 agents          │
│  billable  2.3M tok              │
│  startup  346k tok               │
│  findings  1 high · 3 warn       │
└  Report ~/.navori/audits/demo/sessions/2026-09-01-8f3c1d2e/report.md

注意事项

  • 逐会话主动启用,未提前 --start 就没有日志,navori 不观察活动。
  • 两个来源互不替代:钩子事件日志记录 harness 行为,Claude Code 会话记录是 token 用量唯一来源。
  • Markdown 和 JSON 报告保存在 ~/.navori/audits/<repo>/,旁边留存会话日志副本。
  • 记录器较晚启动时钩子计数不完整,orchestrator 卡片说明限制及实际观察比例。
  • 宿主未暴露数据标为不可用,不记作 0。报告含任务结果(review、receipt、dispatch)和按各自分母分组的建议,不合成总分。
  • 每项指标声明从哪个版本或来源开始可用,并提供逐任务效率。未声明参数被拒绝,退出 2。
  • 限制:receipt review 动词从 0.11.3 提供,最低值与上限未校准,--compare 噪声带未测量,逐任务 token 归因仅覆盖 implementer。