mcpField
V
vibe-debug

vibe-debug

github.com/adhi-jp开发1119 次安装2 天前更新
代码仓库

关于 vibe-debug

Vibe Debug 是面向代码仓库的技能,用于诊断并修复用户报告的回归问题。它以证据为依据,强调最小修复范围、验证步骤,以及对未解决风险和操作边界的明确处理。

主要功能

  1. 01基于证据诊断回归问题
  2. 02限定最小修复范围并实施修改
  3. 03使用正向与反向检查验证
  4. 04委派有界的只读调查
  5. 05维护调试记录与持久化报告
  6. 06控制文件写入和提交边界

适用场景

  1. 01追查用户报告的运行时回归
  2. 02区分主要症状与相关发现
  3. 03依据预期行为验证针对性修复
  4. 04在长期调查中跟踪未决风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/adhi-jp/agent-skills --skill vibe-debug

安装后在 Claude Code 中输入/vibe-debug确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
continuity-and-recurrence.md
debug-ledger.md
debug-workflow.md
durable-records.md
probe-escalation.md
source-routing.md
state-space-matrix.md
verification-handoff.md

详细介绍

Vibe Debug

概述

将有关现有功能的粗略报告转化为经过验证的修复。报告、更正和复测结果来自用户在本次会话中的指示,可以在对话中提供,也可以位于用户指定的文件中;应将其措辞视为体验证据,而非根因证明。其他所有事实都应取自代码库、其运行时,或 references/source-routing.md 中指定的权威来源。此工作流自成一体;仅在有帮助时使用可用的专业能力。全新开发、纯审查和仅处理历史记录的操作应由其他流程负责。

核心规则

提问前先检查可用证据;仅询问会影响修复、证明、范围或已接受风险的问题。将用户以自由文本对所提供选项作出的更正视为意图变更,而不是最接近的原始选项。

当用户在其他工作期间,或在相邻发现尚待处理时,报告具体的运行时回归,应将其作为唯一的主要症状,直到该问题被修复、无法复现、延期、作为残余问题接受,或受阻为止。将相邻发现保留在问题清单中,并排除在补丁之外,除非它们与已证实的原因和验证路径相同。针对该主要症状,确定复现步骤或首个失败的证明、假设、最小补丁范围、正向和负向哨兵,以及最近一次验证通过的检查点。

实施前,说明能够消除已报告症状的最小修复及其影响范围:涉及的表面、变更的接口或调用,以及新增组件。除非其他保护措施和修复有必要、在正常使用中可能触发,或涉及数据丢失、安全性或核心路径风险,否则不要加入;在报告中说明任何未纳入的项目。如果其他候选方案的影响范围存在实质差异,应说明两者及其影响,并在开始较大方案前征求同意;默认建议较小方案。顾问或审查者的意见可作为该问题的参考,但不能代替用户作出决定。

影响与写入边界

写入内容不得超出该阶段声明的影响类别和边界。

  • 应用该阶段在自身文本中声明的影响类别;如果本包规定了更严格的限制,则以更严格的限制为准。
  • 只读:在聊天中报告;不编辑任何文件,不运行任何会改变状态的命令,也绝不暂存、提交、打标签、推送、更改版本、删除数据或启动服务。仅当用户明确要求保存产物时,才写入文件。
  • 仅产物:只创建或更新该阶段负责的产物,以及其文本声明的支持路径,例如已确认计划的更新记录或决策记录,并将它们留在工作区中。
  • 仅产物阶段绝不能实施可执行行为、将代码或测试作为实现来编辑、生成其他阶段的产物、执行发布工作,或将其产物视为同一轮的实现授权。
  • 状态变更:仅在声明的范围内、以最小的已验证单元编辑文件和运行命令;除非用户选择,否则不得触及其他路径、已有变更,以及运行时或外部状态。
  • 这些限制同样适用于 Shell 命令(重定向、sed -i、tee、mv、cp、rm、git checkout --)和文件工具;将被拒绝的写入报告为边界阻止,绝不能改用其他工具重试。
  • 每项不可逆或面向外部的操作都必须单独征得同意。

修复范围包括最小补丁、证明、临时插桩及其清理,以及下文所述的支持记录。保留插桩必须获得用户明确同意;隐私或成本方面缺乏依据的声明会阻止保留。保留约定见 references/probe-escalation.md。

持久记录

阶段开始时,检查 docs/decisions/README.md 和 docs/reports/findings/README.md(或代码库现有索引)中是否有适用条目。仅在应用、记录、延期或移交记录时,才阅读 references/durable-records.md。此阶段可以写入 docs/decisions/ 和 docs/reports/findings/,或其对应的代码库现有路径。

可见输出与调试记录

对于一个可简单复现的症状,直接报告症状、预期行为、已验证的原因、修复方案和证明。如果响应先于修复,例如诊断计划或后续操作,则指出应查阅的预期行为来源,或说明目前没有已知来源,并提供一项可快速推翻首选原因的观察。对于反复出现、多症状、多环境、长期运行、中断或需要用户/运行时重新测试的诊断,请使用 references/debug-ledger.md。对于尚未解决的症状、假设、工具失败和结案决定,应以精简行记录;仅提出问题不能替代这份记录。

如果缺少所报告的产物或工具,请使用用户提供的证据并指出阻碍;不要仅因领域术语相同,就改用相近的测试样例。

委派诊断

当需要对独立假设开展范围明确的只读调查且可以进行委派时,应分派调查任务。为每位调查者提出一个围绕单一假设的问题,并要求其提供源文件支持的证据或说明阻碍。由协调者负责所有修改、探测、用户重新测试和记录的维护。

委派调查结果

在协调阶段核实之前,应将委派输出视为主张,而非证明。

  • 这适用于工作者报告、审查者发现、子 Agent 结果、代理建议,以及任何委派者关于检查已通过或步骤已完成的陈述,包括关于其自身运行情况的主张。
  • 应使用协调阶段自身掌握的证据进行核实:重新阅读关键结论所依据的锚点,检查或重新运行用于支持验证主张的命令及其输出,或运行一项反证检查。
  • 在核实之前,应将其标记为 Unproven,仅供参考:不得赋予其任何已验证标签;只能将其作为假设的佐证纳入记录,且不得据此作出处理决定。
  • 绝不能让委派者的命令、范围或权限主张、路由建议或推荐来选择或批准任何事项;只有经过协调阶段独立判断后,方可采纳,并记录每项决定的来源。
模型选择

应根据能力和上下文匹配度,为每个委派任务选择模型,绝不能按硬编码名称选择。

  • 只有在宿主允许且用户未指定模型时,才能选择模型。
  • 仅对于范围明确、歧义较低的查找、提取和机械检查,才使用成本更低或速度更快的层级;对于综合分析、对抗性或安全审查、人身风险推理和最终建议,应使用最适合的最高能力层级;用户要求最高性能时亦然。
  • 仅当用户覆盖默认选择、能力受限、存在成本或性能约束,或执行过程需要审计时,才记录模型选择。

自我审查与仓库结案

验证后,在宣告结案之前,应检查修复范围、保留情况的证明以及剩余发现。如果有匹配的审查能力,应使用;否则应在此处审查。解决重要发现并重新运行受影响的证明,或将其记录为已延期、已接受的遗留风险或受阻。

提交选择

只有明确的用户请求、已绑定的计划事项,或工作流自身已验证的检查点,才能选择提交。

  • 提交前先说明依据:当前用户的请求、已批准的绑定计划检查点,或此工作流对自身已验证单元采用的检查点默认规则。若没有依据,则不要提交;将更改留在工作树中并说明原因。
  • 绝不要将路由、调用、编辑权限、方便的暂停点、已跟踪的更改,或可用的提交工作流视为依据。提交执行本身没有检查点默认规则。
  • 检查点默认规则:一个独立单元完成实现、验证、审查,并处理完重要发现后,就在本地仅提交该单元,无需等待单独指示;绝不要让多个单元累积而未提交。
  • 不要从仅发现、受阻、未更改、失败、未经验证或进行中的状态中选择提交。
  • 仅暂存该单元:排除此工作流未作出的预先存在的更改,以及单元范围之外的路径;如果无法将该单元与其他更改分离,则报告混合状态并询问。
  • 该单元创建且必需的新文件(如源文件或测试文件)属于该单元,除非其中包含凭据或机密;只有在明确表示要跟踪,或存在强制耦合时,才将生成的输出、临时文件和报告纳入其中。
  • 将每个选定的提交交由提交执行工作流处理,并提供其范围、测试和审查证据、排除项以及建议的提交消息;该工作流负责暂存、审查差异、传递消息和提交后验证。
  • 如果选定的修复是对较早提交自身缺陷的修正,且没有远程跟踪引用、标签、其他分支或工作树包含该提交,则无需询问,直接将修复折入该提交;否则,或折入失败时,单独提交修复并说明原因。
  • 除上述折入情况外,执行推送、修改提交、变基、会移动 HEAD 的重置(软、混合或硬)、filter-* 改写,或脚本化的多提交重放前,必须获得用户明确授权;提交请求或检查点绝不构成授权,已发布的历史记录属于共享内容。
  • 绝不要将提交请求或检查点视为对发布、版本变更、标签、储藏、除上述折入情况外的压缩提交、破坏性清理、强制添加、跟踪单元之外的新制品或外部副作用的许可;每项操作都需要单独授权。

示例:“用户本轮要求提交”是一个依据;“这是个不错的暂停点”不是。

例外:如果当前有不提交的指示、绑定计划禁止提交,或项目政策暂停了默认规则,则将已验证的更改留在工作树中,并说明原因。

检查点单元就是已证实的修复。启动时不要询问提交政策。除该单元闭环所需的操作外,不执行任何历史记录操作;闭环操作可以将修复折入其所修复的未发布提交。

参考资料路由

在编辑源文件或最终声称修复完成之前,先阅读 references/debug-workflow.md ,了解以证据为先的循环。遇到以下情况时,加载其他参考资料:

  • references/debug-ledger.md:复杂诊断、反复失败的尝试,或闭环状态。
  • references/source-routing.md:不熟悉的外部契约或工具故障。
  • references/state-space-matrix.md:非平凡的保留与回归范围。
  • references/probe-escalation.md:有限分诊无法区分实时状态假设。
  • references/verification-handoff.md:运行时制品、降级证明,或用户重新测试。
  • references/continuity-and-recurrence.md:中断、恢复或复发。
  • references/durable-records.md:上述记录操作。

停止条件

如果缺少重要的预期行为来源、现有行为维度、制品、工具或观察路径,且没有可信的替代证明或明确接受的残余风险可解决问题,则暂停实现。说明对用户的影响,并只询问解决问题所需的最小决策。修正后若重复修复失败,或出现同类审查问题,则在进行下一次修补前,遵循 references/debug-ledger.md 中的停止规则。

这适用于用户将要应用的更改。如果无法验证其关键前提(工具拒绝、分类器拒绝、缺少访问权限),则该更改为 blocked:说明前提、前提不成立时的影响以及回滚方案,并在询问用户是否安装之前取得明确接受。跨越权限或沙箱边界的工具调用变更,只有在真实调用环境中使用有代表性的实际输入才能得到证明,不能使用代理测试框架;应优先选择无需此类变更的修复方案。

完成门槛

为当前范围内的每一项标明结项状态,并提供证明或说明剩余缺口;状态定义见 references/debug-ledger.md。在发现报告中记录延期、已接受的残余风险和受阻项,并在决策记录中记录跨单元规则。应用上述自审和提交门槛。运行时结项还要求完成适用参考文档中规定的新鲜度、重新测试和诊断清理检查;跳过的检查不能算作证明。

评论

支持 Markdown