SuperAPI AI 工具集

mo-debug

测试与质量

查看项目

更新于 10-16 09:50

技能介绍

用途:诊断自己的智能体会话。仅当用户明确说出 mo-debug 时才启动;一般的调试代码、解释失败或评审会话请求不会激活它,其他技能也不会调用它。

读取范围:由用户提供明确的会话路径或 id(Claude 会话 UUID 或 Codex thread 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 搜索不完整、在可读会话旁发生读取失败,或历史不完整;unknown 表示没有任何请求的会话可读。必须说明具体情形,不得把部分读取当作完整。

分类:先看编排,再看评审:调用了哪个 mo-* 技能、加载了哪些文本、运行了哪个助手及其返回的类型化行、智能体随后做了什么。每个偏离归入且仅归入一类:skill_text_defect、agent_deviation、backend_defect、harness_defect 或 unknown,并引用报告中的事件定位符。无法关联记录的偏离为 unknown。助手调用从记录的命令文本读取,而非 shell:仅当 node 或脚本位于引号、注释和引号 here-doc 之外的命令位置时才计数。从 bash -c、eval、脚本文件或函数内启动的助手不会留下 helper_call,因此仅缺调用不能证明智能体跳过了该助手。技能行给出加载版本;version=source_tree:<id> 配合提交范围表示加载文件与带该构建标记的已提交文件逐字节相同;body_match 是无标记加载正文的字节精确匹配;除此之外为 unknown,不得把当前安装文本或当前提交归因于历史会话。stamp=<id> 只是会话显示的标记;部分读取、被编辑文件、无提交携带该标记或未指定 --history 的扫描均保持 version=unknown。

输出范围:只有本地报告,即助手的类型化行、你的分类,以及用户需要时的外部报告本地草稿。引用的每段摘录均来自助手的脱敏输出;不得复制原始会话行、密钥、绝对路径或私信正文。摘录以 [REDACTED:<kind>] 结尾表示该行在凭据键之后的剩余内容被脱敏;缺失词不构成缺陷证据。脱敏只识别已知令牌形态和键值,不覆盖所有密码,因此应请用户在分享前阅读报告。本技能不发布任何内容,也不创建 Issue;提交草稿是另一显式激活的生命周期技能的独立步骤,且需用户许可发布。读取本身不是评审、QC 或编排步骤运行的证据,该证据只来自后端的公开界面。Meta-O 调用:无。