关于 mo-debug
mo-debug 用于根据用户明确提供的会话 ID 或路径诊断 Agent 会话。它通过内置工具读取有范围限制且属于调用者的日志,分类偏差并生成本地报告,不会发布内容或创建 Issue。
主要功能
- 01扫描明确指定的会话
- 02按时间或记录数限制读取范围
- 03分类记录中的偏差
- 04提供历史记录时归属版本
- 05生成本地报告
适用场景
- 01调查 Agent 会话故障
- 02追踪编排或评审偏差
- 03准备外部报告的本地草稿
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shkarupa-alex/ meta-o --skill mo-debug安装后在 Claude Code 中输入/mo-debug确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/cases.jsonreferences/methodology-feedback.mdscripts/mo-debug.mjs详细介绍
诊断你自己的 Agent 会话
仅在用户提到 mo-debug 时启动。调试代码、解释故障或一般性地审查会话的请求都不会触发此功能,也没有其他技能会调用它。
完整阅读 方法论反馈:你遇到的阻碍要在答复中告知用户,此技能不会创建 Issue。
可读取的内容
从用户处获取明确指定的会话路径或 ID——Claude 会话 UUID 或 Codex 线程 ID——以及一个界限:--since <ISO-8601>、--max-records <n> 或两者。缺少时请向用户索取;绝不要自行搜索会话,也绝不要使用其他工具打开会话日志。只有随附的辅助程序会读取这些内容:
node scripts/mo-debug.mjs scan --session <path-or-id> [--session …] \
[--since <ISO-8601>] [--max-records <n>] \
[--history <meta-o-checkout>] [--max-history <n>] [--out <new-file>]
辅助程序只读取 ~/.claude/projects/ 或 ~/.codex/sessions/ 下由调用用户拥有的常规文件;若设置了 CLAUDE_CONFIG_DIR,则以其替代 ~/.claude;若设置了 CODEX_HOME,则以其替代 ~/.codex,两者都必须是绝对路径。foreign_path、session_not_found 和 session_ambiguous 表示拒绝读取:文件未被读取,你也不得尝试其他方式。search_incomplete 表示无法访问会话根目录,或无法读取其下的某个目录,因此既未找到该 ID,也无法证明它不存在;请将该会话称为未知。read_failed 表示已打开归用户所有的日志,但读取失败;其中的事件不会提供,因此也请将其称为未知。--history 指定一个用于版本归属判定的 Meta-O Git 检出。事件及其定位信息只存在于报告中,因此始终要传入 --out,并使用用户指定的路径或系统临时目录下的新文件路径;该文件必须尚不存在,并会以模式 0600 创建。out_exists 表示该路径已有他人数据:请选择其他路径。out_write_failed 出现在扫描行之后,表示报告未能完整写入:文件已被清空但仍保留原位,因此请释放空间,并使用新的 --out 路径重新运行。
首行为 MO-DEBUG/1 status=<ok|partial|unknown|refused> …。partial 表示已达到界限、有会话被拒绝、ID 搜索不完整,或在有可读取会话的情况下发生读取失败,或历史记录不完整——即浅克隆,或 Git 读取失败时显示 history=unreadable;unknown 表示无法读取任何请求的会话,因为没有会话采用可识别格式、其 ID 搜索不完整,或读取失败。说明具体属于哪种情况,绝不要将不完整的读取描述为完整读取。
分类
先查看编排,再查看审查:调用了哪个 mo-* 技能、加载了哪些文本、运行了哪个辅助程序及其返回的类型化行,以及 Agent 接下来做了什么。将每项偏差严格归入以下一个类别:skill_text_defect、agent_deviation、backend_defect、harness_defect 或 unknown,并引用报告中的事件定位信息。无法对应到记录的偏差属于 unknown。
辅助程序运行情况要根据记录的命令文本读取,而不是从 shell 推断:只有当 node 或脚本出现在命令位置,且位于引号、注释和带引号的 here-document 之外时,才算运行。在 bash -c、eval、脚本文件或函数内部启动的辅助程序不会留下 helper_call,因此仅仅缺少调用记录,绝不能证明 Agent 跳过了该辅助程序;如果记录中也没有其类型化行,该偏差就属于 unknown。
skill 行会给出已加载的版本。若 version=source_tree:<id> 且存在提交范围,则表示完整加载文件与带有该构建标记的已提交文件逐字节一致;body_match 表示加载的正文(不含标记)逐字节匹配;unknown 就是未知:绝不要将当前安装的文本或当前提交归属于历史会话。stamp=<id> 仅表示会话中显示的标记;部分读取、文件被编辑、没有任何提交带有该标记,或扫描时未使用 --history,都会导致 version=unknown,因为本地构建或编辑过的技能也可能带有标记。
此技能不会对外发送的内容
仅包括本地报告:助手输入的行、你的分类,以及用户需要时生成的外部报告本地草稿。你引用的所有摘录都来自助手经过脱敏的输出;切勿复制原始会话行、密钥、绝对路径或私密消息正文。以 [REDACTED:<kind>] 结尾的摘录表示该行中凭据密钥之后的内容已被脱敏;缺失的文字并不能作为缺陷证据。脱敏功能可以识别已知的令牌格式和带键值,但无法识别所有密码,因此分享前请让用户阅读报告。此技能不会发布任何内容,也不会创建 Issue:提交草稿属于一个单独的步骤,该步骤由负责路由外部工作的生命周期技能在明确激活后执行,且只有在用户允许发布时才会执行。
这次读取不能证明审查、QC 或编排步骤已运行;相关证据只能来自后端的公共界面。
Meta-O 调用
- 无