news 2026/9/19 11:33:43

oh-my-openagent 文档漂移审计实战:以 features.md 与 cli.md 的 158 条声明为样本的文档-代码一致性治理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
oh-my-openagent 文档漂移审计实战:以 features.md 与 cli.md 的 158 条声明为样本的文档-代码一致性治理

oh-my-openagent 文档漂移审计实战:以 features.md 与 cli.md 的 158 条声明为样本的文档-代码一致性治理

【免费下载链接】oh-my-openagentOmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent

本文基于 oh-my-openagent 仓库内.omo/evidence/20260809-docs-drift-audit/下的审计证据链,完整还原一次"文档-代码漂移审计"(docs-vs-code drift audit)的触发背景、执行方法、判定体系与修复闭环。读者将掌握一套可复刻的文档一致性治理流程:如何把文档中的每一条声明与源码 ground-truth 逐一核对,如何区分 CORRECT / OUTDATED / UNVERIFIABLE 三种判定,以及如何在多人(多 Agent)分工审计时通过领导复核避免误判——样本数据来自对docs/reference/features.mddocs/reference/cli.mddocs/reference/monitor.mddocs/reference/web-terminal-visual-qa.md四个文档共 158 条声明的全量核对。

一、审计背景:一条 Discord 报告引发的全量治理

这次审计的直接触发点是一条 Discord 用户报告:文档声称fallback_models受支持,而omo doctor却将其标记为 deprecated。这个矛盾在 PR #6658 中得到解决,但也暴露了一个更深层的问题——文档中的任意一条声明都可能与当前代码脱节。于是审计被推广为一次系统化工程:找出docs/下所有面向用户的、与当前 origin/dev 代码漂移的文档声明,并修复全部被确认的漂移(见 .omo/evidence/20260809-docs-drift-audit/README.md)。

审计采用团队模式(team_create docs-drift)并行推进,将文档划分为 4 个互不重叠的域,由 4 个深度成员分别负责:

审计域覆盖文档声明数过时数
config-docsconfiguration.md+omo-json.md28068
features-clifeatures.md+cli.md+monitor.md+web-terminal-visual-qa.md15844
guidesinstallation / overview / orchestration / team-mode / senpi-task / ollama13235
models-miscagent-model-matching / known-issues / codex-telemetry / lazycodex-npm-reservation / release-process / model-capabilities-maintenance13531
合计705178

其中 features-cli 域的原始核对报告即本文的主线文档 .omo/evidence/20260809-docs-drift-audit/features-cli.md。它包含 159 条逐行审计记录(98 条 CORRECT、44 条 OUTDATED、17 条 UNVERIFIABLE),每条记录都给出:文档位置、原声明、判定结论、代码 ground-truth 文件位置、以及建议的修复方式。

二、审计表结构:五列构成的证据链

features-cli.md的每行审计记录由五列组成,这本身就是一个值得复用的审计模板:

含义示例
doc file:line被审计声明在文档中的位置(审计时行号)docs/reference/features.md:13
claim文档原声明的内容摘要"Sisyphus fallback chain starts with Claude Opus 5 max, then Kimi K3, GPT-5.6 Sol medium, GLM-5.2, and big-pickle"
verdict判定:CORRECT/OUTDATED/UNVERIFIABLECORRECT
code ground-truth file:line支撑判定的源码位置packages/model-core/src/agent-model-requirements.ts:4-31
suggested fix若判定 OUTDATED,给出具体修改建议"Add(low)to thegpt-5.6-luna-fastrung"

三条判定的语义:

  • CORRECT:文档声明与源码实现一致,无需改动(例如声明与 agent-model-requirements.ts 中 fallbackChain 逐项吻合)。
  • OUTDATED:文档描述已与当前代码脱节,必须按suggested fix修正(本报告 44 条)。
  • UNVERIFIABLE:没有任何被审阅的代码能证明或反驳该声明(本报告 17 条),这类条目被有意保留、不臆断修改。

三、Agent 模型链审计:11 个内置 Agent 的 ground-truth 核对

审计表第 3–15 行覆盖了 features.md 中的"Current Agent Model Chains"一节,ground-truth 统一指向 packages/model-core/src/agent-model-requirements.ts(L3-L177,定义了AGENT_MODEL_REQUIREMENTS记录,恰好 11 个键:sisyphus、hephaestus、oracle、librarian、explore、multimodal-looker、prometheus、metis、momus、atlas、sisyphus-junior,印证了"OMO provides 11 specialized built-in agents"的声明)。

Agent判定源码验证结果
sisyphusCORRECT链为 claude-opus-5 (max) → kimi-k3 → gpt-5.6-sol (medium) → glm-5.2 → big-pickle,与文档逐项吻合(L4-24)
hephaestusCORRECT仅 gpt-5.6-sol (medium) 一档(L25-35),文档"uses GPT-5.6 Sol medium only"成立
oracleCORRECTgpt-5.6-sol (xhigh) → gpt-5.6-sol (high) → gemini-3.1-pro (high) → claude-opus-5 (max) → glm-5.2,provider-specific effort 表述准确(L36-52)
librarianOUTDATED链首档gpt-5.6-luna-fast无 reasoning variant,建议补充(low)
exploreOUTDATED与 librarian 相同,首档 luna-fast 缺(low)
multimodal-lookerCORRECTgpt-5.6-sol (low) → kimi-k3 → glm-4.6v → gpt-5-nano(L77-84)
prometheusCORRECTclaude-fable-5-1 (xhigh) → kimi-k3 (max)(L85-98)
metisCORRECTclaude-fable-5-1 (max) → claude-opus-5 (max) → kimi-k3 (max)(L99-117)
momusCORRECTgpt-6-astra (xhigh/high) → claude-opus-5 (max) → gemini-3.1-pro (high) → glm-5.2(L118-135)
atlasCORRECTclaude-sonnet-5 → kimi-k3 → gpt-5.6-sol (medium) → minimax-m3 → MiniMax-M3 → minimax-m2.7(L136-149)
sisyphus-juniorCORRECTatlas 链 + big-pickle 兜底(L150-164)

以当前源码复核:librarian 与 explore 的gpt-5.6-luna-fast档现在均已带variant: "low"(agent-model-requirements.ts、L67),说明审计建议的修复已在后续迭代中落地——这是"审计报告 → 修复 → 代码变化"闭环的直接证据。

审计还确认了一个容易被忽略的细节:Senpi 与 OpenCode 两个版本对同一 Kimi 链位置使用不同的 provider ID(Senpi 用kimi-coding,OpenCode 用kimi-for-coding),但共享同一份解析后的 fallback chain;Senpi 不列出openairung,因为那是其按 token 计费的 API-key 通道,所有 GPT rung 与ultrabrain/deep/unspecified-high默认值在 Senpi 上都走openai-codex(ChatGPT 订阅通道)。

四、Agent 工具限制审计:只读白名单与拒绝列表

审计表第 16–21 行核对 Agent 的工具权限,ground-truth 为 packages/omo-opencode/src/shared/agent-tool-restrictions.ts(L31-L60 的AGENT_RESTRICTIONS映射,语义为true允许、false拒绝):

Agent文档声明判定源码验证
oracle不能 write、edit、task、call_omo_agentCORRECTL36-41 四者全 deny
librarian不能 write、edit、delegateCORRECTL24-29 的EXPLORATION_AGENT_DENYLIST覆盖 write/edit/task/call_omo_agent
explore不能 write、edit、delegateCORRECT同一条 deny 列表
multimodal-looker仅放行readCORRECTL53-55 仅read: true
atlas"不能 task / call_omo_agent"OUTDATED源码中 atlas 根本没有 deny 条目;其 agent 配置显式通过task()扮演编排者,应删除该限制行
momus"不能使用 task"OUTDATED源码 L48-51 仅 deny write/edit,task 并未被拒绝

这两条 OUTDATED 的修正逻辑很有启发:限制声明的来源应是当前的拒绝列表配置,而不是文档的旧表述或直觉推断。此外,sisyphus-junior在 L57-59 中仅 denytask(防止类别委派无限嵌套),这印证了 features.md 中"category worker 不能再次委派"的描述。

五、架构快照与类别系统审计

5.1 架构快照:数字类声明的核对

审计表第 28–35 行核对 features.md 的"Architecture Snapshot",其中 4 条 CORRECT、4 条 OUTDATED:

  • CORRECT:features/含 23 个模块;config 处理分 6 个有序阶段(provider、plugin-components、agents、tools、MCPs、commands);canonical core agent 顺序为 Sisyphus、Hephaestus、Prometheus、Atlas;OpenClaw 支持 outbound HTTP/shell 与 inbound Discord/Telegram 监听回复。
  • OUTDATED(4 条)
    • 工具系统:tools/应为 14 个工具产出目录(原写 15 个),registry 暴露 12–38 个工具(原写 20–39 个),且 8 个 LSP 别名是 MCP 工具而非 registry 工具;
    • Hook 组合:原"54 基础 / 61 含 Team Mode"已过时,应为 58 个组合槽位 + 配置门控后的实际激活数,最大值 62(含 4 个直接 Team Mode 事件处理器);
    • MCP 快照:内置层不应只说 3 个 remote MCP,还应计入本地 stdio 的lsp(后续还有codegraph);
    • 管理器数量:插件启动不止创建 4 个管理器,而是 5 个常驻 manager/controller 字段(TmuxSessionManager、BackgroundManager、SkillMcpManager、ConfigHandler、ModelFallbackControllerAccessor)加可选的 TuiStateMirror 与 MonitorManager。

这些修复已反映在当前的 docs/reference/features.md 中:工具目录 14 个、registry 12–38 工具、9 个 LSP 别名(L143);Hook 58 槽位、默认激活约 50–51、最大 62(L144)。

5.2 类别系统:默认模型与 schema 字段

审计表第 36–44 行核对 Category 系统:

  • CORRECT:visual-engineering默认 Claude Opus 5 max;deep默认 GPT-5.6 Sol medium;artistry默认 Claude Fable 5 xhigh;quick默认 Kimi For Coding Highspeed;unspecified-high默认 Kimi K3 max;writing默认 Kimi K3 low;Sisyphus-Junior 无法 re-delegate;统一运行时配置在omo.jsonc,legacy oh-my 配置文件仅作迁移用途。
  • OUTDATED(3 条)
    • ultrabrain默认值标注xhigh,建议改为max
    • unspecified-low默认值标注 Luna xhigh,建议改为 GPT-5.6 Terra high 并同步更新 fallback 描述;
    • category schema 字段不完整:文档只列了 legacy 字段,应补上modelsreasoningmax_tokensprovider_optionswarn_unavailable,并将fallback_modelsvariantmaxTokensreasoningEffort标记为 deprecated。

其中 schema 字段这条的修复正是本次审计的核心样例之一(Discord 报告的fallback_models矛盾),当前 docs/reference/features.md 的 Category Configuration Schema 表(L191-L212)已经包含modelsreasoningprovider_optionsmax_tokenswarn_unavailable,并明确标注了fallback_modelsvariantmaxTokensreasoningEffortthinking为 deprecated。

值得强调的是审计的领导复核环节对默认值与链 variant 的区分:ultrabrainxhigh→maxunspecified-lowLuna→Terra两条建议,lead 复核后认定——作为 category默认值,源码实际仍是gpt-5.6-sol:xhigh/gpt-5.6-luna:xhigh(见delegate-task/openai-categories.ts),max只是 requirement 链上的 rung variant;因此只修正"以链表述"的文本,保留"以默认值表述"的文本(记录于 .omo/evidence/20260809-docs-drift-audit/README.md)。这是一个"复核可以推翻初判"的关键示例。

5.3 双轨 fallback 与文件化提示词

审计表第 47–48 行确认:per-agent fallback 数组支持字符串与对象混合条目(对象可携带variantthinking等 per-model 设置);插件存在两条互相独立的 fallback 机制——model-fallback(chat 参数中的主动模型链选择)与runtime-fallback(provider/API 运行时失败后的被动恢复)。promptprompt_append支持file://URI 与运行时内容注入。

六、命令与 Skills 审计

6.1 内置命令表(4 条 OUTDATED 中的重点)

审计表第 50–56 行核对 features.md 的 Built-in Commands:

声明判定修复建议
内置命令含/init-deep/goal/refactor/start-work/stop-continuation/handoffOUTDATED从内置命令表移除/init-deep,补入/remove-ai-slops/hyperplan
/init-deep是支持--create-new--max-depth的内置斜杠命令OUTDATED它不是内置命令,应移入内置 skills 章节,通过skill面调用
/goal支持 show/set/pause/resume/clear,工具由goal.enabled门控,默认 false/false/100CORRECT无需改动
/ulw-loop斜杠命令已移除,omo ulw-loop仍是 Codex passthroughCORRECT无需改动
/refactor接受 target、scope、strategy 参数;/start-work支持 plan/worktree/PR/ship;/stop-continuation清空 todo、goal、boulderCORRECT无需改动

当前 docs/reference/features.md 的命令表(L334-L342)确实已无/init-deep,改含/remove-ai-slops/hyperplan(后者要求team_mode.enabled: true);init-deep被移入内置技能章节(L457-L459),通过skill面或--create-new/--max-depth=N参数调用。

6.2 Skills:内置技能表与浏览器自动化

  • OUTDATED:内置技能表并不完整,应补充当前存在的debuggingvisual-qa技能,并说明浏览器 provider 选择与 Team Mode 门控。
  • CORRECT:Playwright MCP 是默认浏览器自动化 provider;agent-browser是可通过browser_automation_engine.provider配置的备选方案。
  • UNVERIFIABLE:技能发现优先级"恰好是列出的五个路径"无法由被审阅代码证明,需引用skills-loader-core的 discovery/merger 实现并区分 source scope 与展示优先级。

七、工具系统审计

审计表第 62–77 行覆盖工具注册表:

  • OUTDATED:registry 工具数量区间应为 12–38(原写 20–39)。
  • CORRECT:grepglob是已注册的代码搜索工具;edit受 hashline 门控(hashline_edit: true才注册,默认 false)并校验LINE#ID锚点;AST 感知的搜索/重写由ast-grepskill 提供而非 registry 工具;委派工具为call_omo_agenttaskbackground_outputbackground_cancellook_at仅在 Multimodal-Looker 启用时条件注册;skillskill_mcp是技能面工具;session 工具共 4 个(list/read/search/info);experimental.task_system注册 4 个task_*工具。
  • OUTDATED(2 条):LSP 工具表不完整——应补lsp_statuslsp_install_decision,共 8 个别名,全部由内置lspMCP 提供(当前 features.md L645-L655 已列出 9 个含这两个);Task schema 缺少可选字段repoURLparentID(当前 features.md L754-L755 已补上,并保留必填threadID)。
  • OUTDATED:任务存储位置已不是项目.omo/tasks/,默认应为 OpenCode 配置目录的tasks/<list-id>,且支持sisyphus.tasks.storage_path覆盖(当前 features.md L788 已按此表述)。
  • CORRECT:任务文件系统持久化并支持依赖;interactive_bash接受不带tmux前缀的 tmux 子命令。
  • OUTDATED:一次性后台命令不应依赖 shell&,应使用受管的后台会话或 Monitor 机制(monitor_start)(当前 features.md L824 已按此修正)。

八、Hooks 审计:槽位数量与事件接线

审计表第 78–95 行是 OUTDATED 密度最高的区域之一。槽位统计方面:

  • CORRECT:Session 槽位(文档最终计 23)、Continuation 7 槽、Skill 2 槽。
  • OUTDATED:Tool Guard 应为 18 槽(17 个非 Team 槽 +teamToolGating,原写 16);Transform 应为 7–8 槽(4 个基础 + Team Mode + Monitor,原写 5);总数应为 58 个组合槽位(原写 54/61),最大值 62(含 4 个直接 Team Mode 事件处理器)。

事件接线方面有多条判定被修正,典型的有:

  • OUTDATEDdirectory-agents-injectordirectory-readme-injectorrules-injector并非 tool 使用前后都执行,而是仅tool.execute.before
  • OUTDATEDcategory-skill-reminder不是 Event + PostToolUse,而是 Skill 层的 chat/message hook;agent-usage-remindertask-resume-infonon-interactive-envsisyphus-junior-notepad的事件归属均有调整;claude-code-hooks被描述为 messages-transform 兼容 hook(仅处理chat.messagetool.execute.before/after,并非在所有 OMO hook 事件上执行)。
  • OUTDATEDthinking-block-validator不在当前 hook 允许列表中,应从文档移除(若原意是tool-pair-validator,则文档化后者——当前 features.md L880 已出现tool-pair-validator)。
  • CORRECT 的代表性条目:keyword-detector处理 ultrawork/search/analyze/team 四种消息模式;goal hook 在 idle 时续推并在 session 删除时清理;claude-code-hooks的兼容层;interactive_bash的 tmux 会话管理。

九、MCP 架构与模型能力审计

审计表第 96–104 行:

  • CORRECT:MCP 三层架构——内置层(packages/omo-opencode/src/mcp/,remote + 本地 stdio)、.mcp.json加载器(支持${VAR}展开)、skill-embedded MCP(SKILL.mdfrontmatter 声明,按会话按需拉起);skill MCP 客户端按${sessionID}:${skillName}:${serverName}键隔离。
  • OUTDATED(2 条):内置注入的 MCP 不止websearchcontext7grep_app三个,还应计入本地 stdiolspcodegraph(并说明codegraph.enabled门控);内置 MCP 表应从 4 项补到 5 项。
  • UNVERIFIABLE:OAuth skill MCP 声称的"发现、DCR、PKCE、资源指示符、持久 token、refresh/step-up、动态回调端口"完整 RFC 覆盖(RFC 9728/8414/8707/7591)需要逐条引用mcp-client-core的 OAuth 实现,或避免在一个块中宣称全覆盖。
  • CORRECT:模型能力使用 models.dev 缓存刷新(refresh-model-capabilities)与 doctor 诊断;claude_code的六个 toggle(mcp/commands/skills/agents/hooks/plugins)分别门控对应功能。

十、CLI 域审计:bin 入口、命令目录、选项与退出码

审计表第 105–131 行覆盖 docs/reference/cli.md,ground-truth 集中在 packages/omo-opencode/src/cli/cli-program.ts 与 runtime-commands.ts。

10.1 bin 入口(OUTDATED 2 条)

原文档 bin 列表为oh-my-openagentoh-my-opencodeomolazycodex-ai。审计判定应补入lazycodex别名;同时lazycodex不只是 marketplace 仓库名,它与lazycodex-ai一样是 npm bin 别名,默认将 install 指向 Codex(Light 版)。当前 cli.md L17-L18 已列出这两个别名,且当前 cli-program.ts 的resolveInstallArgs明确写有invocationName === "lazycodex" || invocationName === "lazycodex-ai"时默认platform = "codex"。附带确认:omobin 已从这些包中移除,归属 senpi-native 版omo-ai(仅 npm beta 通道,裸npm i -g omo-ai会按设计失败)。

10.2 命令目录(OUTDATED)

命令目录缺setup别名、config migrate(迁移 legacy 配置到~/.omo/omo.jsonc,支持--dry-run--json)与ulw-loop(Codex LazyCodex CLI passthrough)。当前 cli.md L42-L55 已包含这三者以及worktree-sweep

10.3 install 选项(OUTDATED)

install 选项表缺三个 provider 订阅 flag:--bailian-coding-plan--minimax-cn-coding-plan(minimaxi.com)、--minimax-coding-plan(minimax.io)。当前 cli-program.ts 的InstallCommandOptions中已存在bailianCodingPlanminimaxCnCodingPlanminimaxCodingPlan字段,cli.md L82-L84 也已列出。

10.4 doctor(OUTDATED)

doctor 检查分组不止 System/Config/Tools/Models 四组,还应包括 TUI Plugin、Deprecated Reasoning Keys、Telemetry、Team Mode,且 Codex 目标运行独立的一套 Codex 检查;doctor 选项表缺--platform <opencode|codex>。当前 cli.md L138、L153 均已按此更新。审计同时确认:最低 OpenCode 版本检查为>= 1.4.0;doctor 会在opencode.json中仍存在 legacyoh-my-opencode插件注册时给出警告。

10.5 run 与退出码

CORRECT:run仅在主会话 idle、所有 todo 完成或取消、所有子会话 idle、无活跃 continuation hook(boulder/ralph-loop/todo-hook)时退出;agent 解析顺序为--agentOPENCODE_DEFAULT_AGENTdefault_run_agent

退出码是一条曾经历复核争议的条目:审计成员初判"所有文档化命令只用 0 和 1"为 OUTDATED,建议记录boulder的退出码 2(boulder 状态文件存在但不可读时);lead 复核时一度依据 boulder 测试判定原声明正确("cli.md claim correct as-is")。最终当前 cli.md L296-L299 明确列出四档退出码:0成功、1失败、2boulder 状态文件不可读、130运行时被中止——修复建议最终落地。

10.6 mcp oauth 与遥测

CORRECT:mcp oauth login/logout/status的选项名与文档一致,但需澄清--server-url在操作上被 login/logout 必需(即使 Commander 未将其标记为 required)。遥测事件名、reason、去重与 opt-out 变量(OMO_SEND_ANONYMOUS_TELEMETRY=0OMO_DISABLE_POSTHOG=1、Codex-only 的OMO_CODEX_*)被列为 UNVERIFIABLE,需要逐事件引用 telemetry-core 与 Codex telemetry hook 源码。

十一、Monitor 与 Web 终端视觉 QA 审计

11.1 monitor.md(OUTDATED 2 条)

审计表第 132–145 行大部分为 CORRECT:Monitor 运行非交互后台命令、暴露 4 个门控工具、输出按不可信处理;权限使用 ToolContext Bash permission(可用时)否则 fail-closed 的程序 allowlist;monitor_start参数为 command/label/mode/match_pattern;禁用 live mode 时将live_safe强制为idle并附说明;monitor_stop按属主 ID 停止,先 SIGTERM 后 SIGKILL 同一进程组;monitor_list支持include_exited且不泄露原始命令;monitor_output支持 stream/sequence/limit,未知或未授权 ID 返回not_found;启用 Monitor 本身不授予命令执行权。

OUTDATED(2 条)

  • idle 模式并非只在父会话空闲时 flush:终端批次在活跃会话的 defer 上限(默认 60 秒)之后会被强制派发;
  • live_safe当前行为等同 idle 模式(活跃会话延迟),同样适用该 defer-ceiling 例外。

11.2 web-terminal-visual-qa.md(OUTDATED 1 条、UNVERIFIABLE 3 条)

CORRECT:辅助脚本通过 node-pty 在 headless Chrome 中运行真实命令并截图(script/qa/xterm-live-terminal.mjs);浏览器端写出terminal.pngterminal.txtterminal-ansi.txtmetadata.json;重复--inputtoken 驱动按键或字面文本;内置 redaction 覆盖 auth headers、assignments、GitHub token、sk-token 并重渲打码 PNG;原始--command不写入 metadata;--from-file回放流、--no-browser只写文本/raw 产物;视觉 QA 通过要求人工 artifact 审查与明确观察记录,而非仅靠测试。

OUTDATEDmetadata.json清理回执只能证明 pty 动作与浏览器关闭尝试被记录,并不能审计端口、临时状态与全部残留进程(原文档表述过强)。

UNVERIFIABLE:truecolor/256 色/box drawing/CJK 宽度的"普遍保真"(应弱化为"经 xterm.js 以 Unicode 11 渲染,字体/平台保真仍需 artifact 审查");node-pty prebuild 可用性与 Linux 源码构建行为;cleanup 的完整保证。

11.3 github-attachment-upload.md(政策类,全部 UNVERIFIABLE)

审计表第 156–160 行涉及的 PR 证据图上传流程(policy POST → S3 表单上传 → asset finalize PUT → user-attachments URL)属于脆弱的逆向工程流程,且 cookie/CSRF 要求、仅输出最终 URL 的安全策略等均为仓库工作流政策而非代码可证行为,全部标记 UNVERIFIABLE 保留。

十二、UNVERIFIABLE 边界:审计的自我约束

跨全部四份报告共有 80 条声明被标记为 UNVERIFIABLE,它们的共同特征是:断言了产品行为,但被审阅的代码既不能证明也不能反驳。例如 features-cli 域中的:后台 agent 继承工作目录但 OMO 是否沙箱化后续 shell 路径(第 24 行);cmux 通过CMUX_SOCKET_PATH或 cmux 提供的TMUX值被检测(第 26 行);session recovery 的"全自动透明"总括保证(第 49 行);自定义命令加载位置(第 57 行);skill 发现优先级恰好五条路径(第 61 行);Claude Code hooks 的加载位置(第 95、103 行);OAuth RFC 全覆盖(第 100 行);AGENTS/README 与条件规则的注入路径(第 102 行);telemetry 事件明细(第 116 行)。

审计纪律是:不为 UNVERIFIABLE 编写修复——软化措辞或逐条引用源码是另一轮独立的编辑工作,宁可保留原样也不臆断(记录于 .omo/evidence/20260809-docs-drift-audit/README.md)。

十三、修复闭环与质量验证

审计的最终阶段由 4 个 fixer 子任务按文件分域执行修复,每处修复在编辑时再次核对引用(fix-report-f1 修 25 条、fix-report-f2 修 29 条、fix-report-f3 修 29 条、fix-report-f4 修 61 条;2 个跳过项由 lead 直接完成,包括重写 features.md 的 category 表、修正 agent-model-matching.md 的 OpenCode Go GLM 行)。最终结果:

  • 17 个文档文件变更,净变化 +350/-419 行,纯文档 diff(构建产物已恢复);
  • markdown 链接审计:16 通过 / 0 失败;
  • 消费文档的仓库测试:45 个文件 203 个测试全部通过;
  • 每条被修改的声明都引用了至少被验证两次的代码file:line(成员初验 + lead 复核 + fixer 编辑时再验)。

十四、实践启示:把审计表变成你的文档治理模板

从这次审计中可以提炼出一套可复用的操作流程:

  1. 分域切分:按文档把声明分成互不重叠的域,每域由独立的执行者(人或 Agent)负责,避免重复劳动与责任模糊。
  2. 逐行建表:每条声明一行,五列固定为doc file:line | claim | verdict | code ground-truth file:line | suggested fix——这是审计报告 features-cli.md 的核心格式。
  3. 强制 ground-truth:判定必须引用具体源码位置,禁止凭印象判定;对数字类声明(模块数、工具数、槽位数、选项数)要逐一清点代码常量。
  4. 领导复核:由独立于初判者的人复核所有 OUTDATED 项,重点审查"默认值与链 variant""退出码""事件接线"这类语义易混区;复核有权推翻初判(本审计中有明确案例)。
  5. 区分三态:只有源码可证才写 CORRECT/OUTDATED;无法证实的写入 UNVERIFIABLE 并明确不臆断修改。
  6. 修复时再验证:编辑文档的瞬间重新核对引用,避免"审计后代码又变"造成的二次漂移。

这种"文档声明 ↔ 源码 ground-truth"的对照治理,正是 oh-my-openagent 在fallback_models这类细粒度配置上保持文档可信的手段。对于依赖docs/reference/下 features.md、cli.md、monitor.md 等文档的用户、Agent 与 LLM 而言,这类审计报告本身就是一份高价值的"当前实现真相"索引——它精确标注了哪些声明与哪一行代码对应,让文档的每句话都可以被追溯与验证。

【免费下载链接】oh-my-openagentOmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 11:33:07

东方财富JSONP行情接口抓取:回调解析与批量稳定实战

1. 从一个抓包请求说起&#xff1a;这个接口到底难在哪很多人第一次接触行情数据抓取&#xff0c;都是从浏览器开发者工具的 Network 面板开始的。打开一个行情页面&#xff0c;筛选 XHR 或者 JS 请求&#xff0c;会看到一堆返回 JSON 的地址。大部分接口复制出来&#xff0c;改…

作者头像 李华
网站建设 2026/9/19 11:33:02

从写Demo到落地中后台:Vue 3学习路线与工程化实践

从“照着文档能写出计数器”到“真拿到一个中后台项目就发懵”&#xff0c;这个断层我猜很多学 Vue 的人都经历过。后来我才想明白&#xff0c;问题不在于 API 背得少&#xff0c;而是把 Vue 当成了一个接受“点对点输入”的工具&#xff0c;没有把它放进真实工程里去理解边界。…

作者头像 李华
网站建设 2026/9/19 11:32:16

MCP协议与Serverless融合:重构企业AI工具调度架构

简介&#xff1a;在AI Agent大规模落地企业场景的进程中&#xff0c;模型能力本身往往不是瓶颈&#xff0c;真正决定智能化上限的&#xff0c;是模型能否稳定、安全地调用内部工具与服务。MCP&#xff08;Model Context Protocol&#xff09;正是为解决这一痛点而生的标准化协议…

作者头像 李华
网站建设 2026/9/19 11:31:11

火场监控去烟:残差检测与Dense U-Net串联网络复现

简介&#xff1a;这份PDF文献面向图像处理、计算机视觉方向的研究者与消防救援技术相关人员&#xff0c;聚焦火场灰度图像中烟雾干扰导致监控画面模糊、对比度下降的问题&#xff0c;提出一套基于深度学习的去烟算法方案。资源为单篇学术论文&#xff0c;压缩包内仅含1个PDF文件…

作者头像 李华
网站建设 2026/9/19 11:31:07

Flutter for OpenHarmony网络层封装与dio实战

1. Flutter for OpenHarmony 网络层封装实战在跨平台开发领域&#xff0c;Flutter for OpenHarmony 作为华为推出的创新解决方案&#xff0c;为开发者提供了全新的技术可能性。作为一名长期深耕 Flutter 生态的开发者&#xff0c;我在实际项目中深刻体会到网络层封装的重要性。…

作者头像 李华