Communitygithub.com

运行时调试工具包

智能体工具包,用于基于日志的运行时追踪和循证调试。

运行时调试工具包 是什么?

该技能为AI编程助手(如Codex、Claude Code等)提供了一套完整的循证调试工作流程。它专门用于在运行时环境中,通过日志驱动的方式追踪和分析代码行为,从而定位和修复缺陷。该技能支持多种平台,当无法使用原生交互工具时,可以自动降级使用基于文本的模板。其主要工作流程包括:代码路径分析、构建可证伪的假设矩阵、通过事件探测进行运行时追踪、通过检查点进行用户交互确认、基于证据的代码修复以及最终的验证和清理。该技能的独特之处在于强调“证据循环”——即分析、假设、追踪、证明、修复、验证的迭代过程,确保每一次修复都有确凿的运行时数据支撑。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add wangnan0916/runtime-debug-toolkit

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

调试模式

仅当当前用户调用 $debug-mode、说出“调试模式”或请求仪表化调试时,才启动一个会话。 在活动调试会话存在时(包括用户回复或上下文压缩后)恢复会话。 当步骤3启动服务器时,会话变为活动状态。 会话仅在步骤8清理或显式放弃后结束。 如果以上条件均不适用,则在分析、收集或仪表化之前停止。

此工作流构建于同级 trace-mode 工作流之上。 它通过修正、验证和清理来扩展位置证据。 同级脚本需要 Node.js 24 或更高版本。

运行此证据循环:

分析代码 -> 提出假设 -> 使用trace-mode追踪 -> 证明 -> 修复 -> 验证 -> 清理

通过仪表化自主工作。 首次计划的用户交互是复现检查点。 复现和验证是门控环节。

检查点不变式:每次手动复现或验证尝试都需要一个全新的检查点。 仅凭工具可用性选择其路径:当原生 Codex request_user_input 被列出时,你必须调用它; 否则,当 Pi 选择器被列出时调用它;仅在这两种交互路径都无法运行时,使用确切的纯文本模板。 原生工具调用就是检查点;注释或最终答案不能替代它。 原生取消会使门控保持挂起状态,先前的结果仅授权其当前的尝试。

1. 分析代码路径

从报告的症状开始进行仓库摸底工作。 阅读相关的入口点、处理器、状态转换、现有日志和最近更改。 绘制从用户触发到观察到的结果的候选路径。 编写错误卡片:

  • 症状和预期行为
  • 已知触发器、路由、命令、输入或固定装置
  • 候选运行时路径和有争议的边界
  • 相关环境、频率、变更和证据
  • 可观察的验收标准

将不可用的事实记录为 unknown。 通过代码阅读或区分性运行时探测来解决关键未知项。

完成条件: 一条候选路径链接了触发器和症状,并且每个有争议的分支都有一个命名的探测边界。

2. 构建假设矩阵

在添加探测之前,编写两到五个排好序的假设。 将矩阵锚定在代码分析和可用证据上。 使用以下格式:

H1 <简短原因>
预测:<运行时状态、路径或时序>
探测:<事件名称和代码位置>
确认条件:<特定记录条件>
拒绝条件:<特定记录条件>

没有具体预测的假设需要更多的代码阅读。 倾向于选择能够区分多个假设的探测。

完成条件: 每个假设都具有可证伪的条件和一个明确的计划探测。

3. 通过追踪模式进行追踪

阅读同级 trace-mode 技能。 结合错误卡片使用其事件规划、服务器启动和仪表化步骤。 阅读 references/probes.md 以了解调试事件扩展。 在其独立的追踪检查点之前返回此处。

此工作流是调用方。 trace-mode 工作流必须交回活动探测和五个服务器值。

完成条件: 每个假设都有一个活动探测,并且五个服务器值都已确定。

4. 通过复现门控

在呈现修复前检查点之前,阅读 references/checkpoints.md。 通过上面选定的检查点路径执行修复前协议。 然后等待并将结果通过状态表进行路由。 每次重试都通过一个新的交互调用返回到此门控。

完成条件: 有效的 A、B 或 C 结果已按阶段路由。

5. 证明原因

在修复前 A 之后,先读取 LOG_FILE 中的当前会话记录,再编辑产品代码。 确认每个预期的探测都存在,然后按文件顺序检查记录,并将相关值与每个假设预测进行比较。 将每个假设分类为 CONFIRMED、REJECTED 或 INCONCLUSIVE。 编写证据报告:

H1 <简短原因>
状态:CONFIRMED
证据:<特定事件和值>

H2 <简短原因>
状态:REJECTED
证据:<特定事件和值>

验收标准:<一个可观察的句子>
下一步动作:<针对已确认原因的最小修正>

缺失预期的探测会阻碍确认。 当每个结果都被拒绝或不确定时,返回步骤2。

完成条件: 当前运行记录确认了一个解释性原因,并有一个可观察的验收标准。

6. 进行基于证据的修复

做出能解决已确认原因的最小更改。 保持每个探测处于活动状态。 将事件更改为 runId: "post-fix"。 当行为可自动化时,添加一个有针对性的回归测试。

完成条件: 每个产品编辑都可追溯到原因,并且修复后证据已准备就绪。

7. 通过验证门控

通过选定的路径,从 references/checkpoints.md 呈现修复后检查点。 然后等待并将结果通过状态表进行路由。 后续的每次验证尝试都需要另一个交互调用。

完成条件: 用户针对声明的验收标准返回修复后 B。

8. 机械性清理

移除每个标记为 LOG_SERVER_PROBE <session_id> 的配对区域。 搜索会话 ID、LOG_SERVER_PROBE 以及两种区域形式。 移除复制的辅助程序和所有临时仪表化代码。 删除 LOG_FILE,除非用户要求保留证据。 保持共享服务器运行,除非用户要求关闭。 运行相关检查并检查最终的差异。

完成条件: 标记和会话搜索在仓库中无匹配项,检查通过,且仅保留产品更改。

异常分支

仅在收集、复现或交付失败时阅读 references/troubleshooting.md。

相关技能