ask-matt
無料询问哪个技能或流程适合你的情况。本仓库内技能的路由器。
日本語の概要は準備中です。原文の説明を表示しています。
针对棘手 bug 和性能回归的诊断循环。当用户说"诊断"/"调试这个",或报告某处崩溃/报错/不正常/缓慢时使用。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
针对棘手 bug 的一条纪律:只有显式说明正当理由时才能跳过某个阶段。
在探索代码库时,读取 GLOSSARY.md(如果存在)以获得相关模块的清晰心智模型,并查看你所触及区域的 ADR。
本技能会让你展示命令、输出和捕获的产物。先脱敏所有秘密:用 <REDACTED> 替换。针对环境变量构建循环,这样凭证留在环境中而不是出现在你展示的内容里。捕获的产物可能携带认证头:只引用携带信号的若干行。
如果脱敏后的输出不足以诊断 bug,要明确说明,并请用户提供更多材料。
这才是这个技能本身。 其它一切都只是机械动作。如果你对这个 bug 有一条紧密的通过/失败信号(一条会针对_这个_ bug 变红的信号),你就能找到根因;二分、假设检验、插桩都只是这条信号的消费者。如果你没有这条信号,盯着代码看到天荒地老也救不了你。
在这一步投入不成比例的精力。要激进。要有创意。绝不放弃。
git bisect run。scripts/hitl-loop.template.sh 来驱动_他们_,这样循环仍是结构化的。捕获到的输出再反馈给你。把反馈循环做对了,bug 已经解决了 90%。
把循环当作产品。一旦你有了_一条_循环,就收紧它:
30 秒的 flaky 循环只比没有循环强一点点;2 秒、确定性的循环才是真正紧凑的——是调试的超能力。
目标不是干净的复现,而是更高的复现率。把触发条件循环跑 100 轮,并行化、增加压力、收紧时窗、注入 sleep。一个 50% 复现率的 flaky bug 是可调试的;1% 不行,所以持续把复现率抬到可调试为止。
停下来,并明确说出来。列出你尝试过的所有办法。请用户提供:(a) 能复现该 bug 的环境的访问权限,(b) 一份脱敏后的捕获产物(HAR 文件、日志 dump、core dump、带时间戳的录屏),或 (c) 允许你在生产环境加临时插桩的授权。不要在没有循环的情况下进入空谈理论。
Phase 1 完成的标志是循环紧凑且能变红:你能点出一条命令(脚本路径、一次测试调用、一条 curl),并至少已经实际跑过一次(给出调用与已脱敏的输出),并且它满足:
scripts/hitl-loop.template.sh 时才在环里放一个人。如果你在写出这条命令之前就已经开始读代码、构建理论,停下:跳过假设直接行动正是本技能要防止的失败模式。 没有能变红的命令,就没有 Phase 2。
跑循环。看着它因 bug 出现而变红。
确认:
一旦它变红,就把复现例子收缩到仍然会变红的最小场景。逐个裁剪输入、调用者、配置、数据和步骤,每次裁剪后重新跑循环,只保留对失败承重的部分。
为什么要做:最小化的复现例子压缩了 Phase 3 的假设空间(剩下来需要怀疑的活动部件更少),同时在 Phase 5 中又成为干净的回归测试。
完成的标志是剩下的每个元素都承重:移除任何一项都会让循环变绿。
在复现并最小化都完成之前,不要进入下一阶段。
在测试任何假设之前,生成3–5 个排序后的假设。只生成单个假设会锚定在第一个看似合理的想法上。
每个假设必须可证伪:明确陈述它做出的预测。
格式:"如果 <X> 是原因,那么 <改变 Y> 会让 bug 消失 / <改变 Z> 会让它更严重。"
如果说不清预测,那这只是 vibe:丢掉或重新打磨它。
在测试之前把排序后的列表展示给用户。 他们经常拥有些能瞬间重新排序的领域知识("我们刚部署了一个改动到 #3"),或者知道他们已经排除掉的假设。这是个廉价的检查点,但能省下大量时间。别阻塞在用户身上;如果用户 AFK,就按你自己的排序继续推进。
每一次探测都必须对应 Phase 3 中某个具体的预测。一次只改一个变量。
工具偏好:
为每条调试日志打上唯一前缀,例如 [DEBUG-a4f2]。最后的清理就变成一次 grep。不带前缀的日志会活下来,带前缀的会死掉。
性能分支。 对性能回归,日志通常不合适。改为:先建立基线测量(计时 harness、performance.now()、profiler、查询计划),再做二分。先测,再修。
把回归测试写在修复之前,但前提是存在正确的 seam。
正确的 seam 是指测试能在调用现场触发的位置真实复现 bug 模式。如果唯一可用的 seam 太浅(单调用方测试,但 bug 需要多个调用方;unit 测试无法复现触发 bug 的整条链路),那里的回归测试只会带来虚假信心。
如果不存在正确的 seam,这就是发现本身。 记下来。代码库架构正在阻止 bug 被锁定。把这标记到下一阶段。
如果存在正确的 seam:
diff,确认修改确实生效后再相信测试结果。宣布完成前必须做的事项:
[DEBUG-...] 插桩已移除(grep 该前缀)まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
询问哪个技能或流程适合你的情况。本仓库内技能的路由器。
日本語の概要は準備中です。原文の説明を表示しています。
在单次长会话中协调子智能体并安排日程,持续推进一项长期目标。
日本語の概要は準備中です。原文の説明を表示しています。
把当前对话交接给一个全新的后台 agent,让它立刻接手工作。
日本語の概要は準備中です。原文の説明を表示しています。
从固定点(commit、branch、tag 或 merge-base)开始,沿两条轴线审查变更——规范(代码是否遵循仓库文档化的编码规范?)和规格(代码是否与原始 issue/PRD 的要求一致?)。两条审查线在并行子 agent 中运行,并以并排方式报告结果。当用户想审查一个分支、PR、进行中的变更,或要求"从 X 开始审查"时使用。
日本語の概要は準備中です。原文の説明を表示しています。
设计深度模块的共享词汇。当用户想要设计或改进模块的接口、寻找深化机会、决定 seam 的位置、让代码更可测试或更易被 AI 导航,或者其他 skill 需要深度模块词汇时使用。
日本語の概要は準備中です。原文の説明を表示しています。
构建和完善项目的领域模型。当讨论代码库术语、编写或编辑 GLOSSARY.md,或记录或编辑 ADR 时使用。
日本語の概要は準備中です。原文の説明を表示しています。