diagnosing-bugs
面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
Skill by vinvcn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vinvcn-diagnosing-bugs
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: debugging
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/diagnosing-bugs
What's inside
- Skill name
diagnosing-bugs- Description
- 面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
- License
- MIT
- Instructions
- 135 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (3)
- SKILL.md
- openai.yaml · agents/
- hitl-loop.template.sh · scripts/
SKILL.md (first lines)
# 诊断缺陷 面向棘手 bugs 的纪律。只有在明确说明理由时才跳过阶段。 探索 codebase 时,先读取 `GLOSSARY.md`(如果存在),建立相关 modules 的清晰 mental model,并检查你将触碰区域的 ADRs。 ## 脱敏 这个 skill 会要求你展示 commands、outputs 和捕获的 artifacts。**先 redact 掉每个 secret**:用 `<REDACTED>` 替换。Build loops 要针对 env vars 进行,让 credential 留在 environment 里而不是你展示的内容中。捕获的 artifacts 带有 auth headers:只引用携带 signal 的那些行。 如果 redact 后的 output 不足以诊断 bug,就说明情况并询问用户。 ## Phase 1 - 构建 feedback loop **这就是这个 skill 的核心。** 其他所有内容都是机械步骤。如果你拥有一个针对该 bug 的 **tight** pass/fail signal,即它会在 _这个_ bug 上变红,你就能找到原因;bisection、hypothesis-testing 和 instrumentation 都只是消费这个 signal。没有它,盯着代码看多久都救不了你。 在这里投入不成比例的精力。**要强硬、要有创造力、拒绝放弃。** ### 构建 loop 的方式 - 大致按以下顺序尝试 1. **Failing test**,放在能触达 bug 的 seam 上:unit、integration、e2e 都可以。 2. **Curl / HTTP script**,打到运行中的 dev server。 3. **CLI invocation**,使用 fixture input,并把 stdout 与 known-good snapshot diff。 4. **Headless browser script**(Playwright / Puppeteer),驱动 UI,并断言 DOM/console/network。 5. **Replay a captured trace.** 把真实 network request / payload / event log 保存到磁盘,并在隔离环境中 replay 到代码路径。 6. **Throwaway harness.** 启动系统的最小子集(一个 service、mocked deps),用一次 function call 触发 bug code path。 7. **Property / fuzz loop.** 如果 bug 是 "sometimes wrong output",运行 1000 个 random inputs 并寻找 failure mode。 8. **Bisection harness.** 如果 bug 出现在两个已知状态之间(commit、dataset、version),自动化 "boot at state X, check, repeat",这样可以 `git bisect run`。 9. **Differential loop.** 用同一 input 跑 old-version vs new-version(或两个 configs),然后 diff outputs。 10. **HITL bash script.** 最后手段。如果必须由人点击,就用 `scripts/hitl-loop.template.sh` 驱动 _人_,让 loop 仍保持结构化。捕获的输出反馈给你。 构建正确的 feedback loop,bug 就修好了 90%。 ### 收紧 loop 把 loop 当作产品。只要有了 _一个_ loop,就继续 **tighten** 它: - 我能让它更快吗?(Cache setup、跳过无关 init、缩小 test scope。) - 我能让 signal 更尖锐吗?(断言具体 symptom,而不是 "didn't crash"。) - 我能让它更 deterministic 吗?(Pin time、seed RNG、isolate filesystem、freeze network。) 一个 30 秒且 flaky 的 loop 几乎不比没有 loop 好;一个 2 秒 deterministic loop 才是 tight 的调试超能力。 ### 非确定性 bugs 目标不是 clean repro,而是 **higher reproduction rate**。循环触发 100x、parallelise、加 stress、缩小 timing windows、注入 sleeps。50%-flake bug 可以调试;1% 不行。持续提高复现率,直到它可调试。 ### 当你确实无法构建 loop 时 停下来并明确说明。列出你尝试过什么。向用户请求:(a) 能复现的环境访问权限,(b) 经 redact 的 captured artifact(HAR file、log dump、core dump、带 timestamps 的 screen recording),或 (c) 添加临时 production instrumentation 的许可。**不要** 在没有 loop 时继续 hypothesise。 ### 完成条件 - 能变红的 tight loop Phase 1 完成条件:loop **tight** 且 **red-capable**。你能指出 **一个 command**(script path、test invocation、curl),并且你已经至少运行过一次(展示 invocation 和 output,已 redact),且它满足: - [ ] **Red-capable** - 它驱动真实 bug code path,并断言 **用户的 exact symptom**,因此能在该 bug 上变红、修复后变绿。不是 "runs without erroring",而是必须能 _catch this specific bug_。 - [ ] **Deterministic** - 每次运行 verdict 相同(flaky bugs:按上文固定到高复现率)。 - [ ] **Fast** - 秒级,而不是分钟级。 - [ ] **Agent-runnable** - 你可以无人值守运行;human in the loop 只能通过 `scripts/hitl-loop.template.sh`。 如果你发现自己在 command 存在前就读代码构建理论,**停下;直接跳到 hypothesis 正是这个 skill 要防止的失败。** 没有 red-capable command,就没有 Phase 2。 ## Phase 2 - 复现 + 最小化 运行 loop。看它变红,也就是 bug 出现。 确认: - [ ] Loop 产出的 failure mode 是 **用户** 描述的那个,而不是附近另一个失败。Wrong bug = wrong fix。 - [ ] Failure 能在多次运行中复现(或对于 non-deterministic bugs,复现率足够高,能用来调试)。 - [ ] 你已捕获 exact symptom(error message、wrong output、slow timing),后续阶段可以验证 fix 确实解决它。 ### 最小化 一旦变红,就把 repro 缩到 **仍会变红的最小场景**。逐个削减 inputs、callers、config、data 和 steps,每次削减后重新运行 loop;只保留 failure 的 load-bearing 部分。 原因:minimal repro 会缩小 Phase 3 的 hypothesis space(可怀疑的 moving parts 更少),并成为 Phase 5 中干净的 regression test。 完成条件:**每个剩余元素都是 load-bearing**,移除任意一个都会让 loop 变绿。 在 reproduce 并 minimise 之前不要继续。 ## Phase 3 - 形成假设 在测试任何假设前,生成 **3-5 个 ranked hypotheses**。单假设会锚定在第一个看似合理的想法上。 每个 hypothesis 必须 **falsifiable**:说明它会做出什么 prediction。 > Format: "If <X> is the cause, then <changing Y> will make the bug disappear / <changing Z> will make it worse." 如果无法说明 prediction,这就是 vibe;丢弃或打磨它。 **测试前把 ranked list 展示给用户。** 用户常常有 domain knowledge,可以立即重排("we just deployed a change to #3"),或知道哪些 hypotheses 已被排除。便宜 checkpoint,大幅省时。不要因此阻塞;如果用户 AFK,就按你的排序继续。 ## Phase 4 - 插桩 每个 probe 都必须映射到 Phase 3 的某个具体 prediction。**一次只改变一个变量。** Tool preference: 1. **Debugger / REPL inspection**,如果环境支持。一个 breakpoint 胜过十条 logs。 2. **Targeted logs**,放在能区分 hypotheses 的 boundaries。 3. 永远不要 "log everything and grep"。 **给每条 debug log 加唯一 prefix**,例如 `[DEBUG-a4f2]`。最后 cleanup 就能一次 grep。未打 tag 的 logs 会存活;带 tag 的 logs 要删除。 **Perf branch。** 对 performance regressions,logs 通常不对。改为先建立 baseline measurement(timing harness、`performance.now()`、profiler、query plan),然后 bisect。先 measure,再 fix。 ## Phase 5 - 修复 + regression test 在 fix 前写 regression test,但前提是存在 **correct seam**。 Correct seam 是 test 能以 call site 中真实发生的方式触发 **real bug pattern** 的地方。如果唯一可用 seam 太 shallow(bug 需要多个 callers,但 test 只有 single-caller;unit test 无法复制触发 bug 的 chain),那里的 regression test 会给出 false confidence。 **如果不存在 correct seam,这本身就是发现。** 记录下来。Codebase architecture 阻止你锁住 bug。把它标记给下一阶段。 如果存在 correct seam: 1. 把 minimised repro 变成该 seam 上的 failing test。
From vinvcn/mattpocock-skills-zh-CN, MIT.
More from vinvcn/mattpocock-skills-zh-CN
- 0.848score
git-guardrails-claude-code
vinvcn
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-pre-commit
vinvcn
在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-ts-deep-modules
vinvcn
在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
translate-skill
vinvcn
将 mattpocock/skills 的内容翻译、刷新或复核到简体中文本地化仓库 vinvcn/mattpocock-skills-zh-CN 时使用这个项目级 skill。适用于 skill files、README content、CLAUDE.md、GLOSSARY.md、docs,以及其他需要保留行为关键…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
wizard
vinvcn
生成一个交互式 bash wizard,逐步引导人完成只有他们能执行的手动流程。用于 provisioning 基础设施、设置 credentials 或 CI secrets、走查不熟悉的第三方 dashboard,或运行一次性 migration 或 cutover。对于 agent…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
code-review
vinvcn
从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec 的要求?)两个轴线审查变更。两个审查会在并行子代理中运行,并并排报告。适用于用户想审查…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
to-tickets
vinvcn
把 plan、spec 或当前对话拆成一组 tracer-bullet tickets,每个 ticket 声明 blocking edges,并发布到已配置的 tracker;本地用每 ticket 一个文件中的文本 edge,真实 tracker 用 native blocking links。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
writing-beats
vinvcn
Writing, exploit——把原始素材组装成一段节拍旅程,在某个 beat 依赖一个术语之前先把它 grounded。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
scaffold-exercises
vinvcn
创建包含章节、题目、答案和讲解的练习目录结构,并确保通过 linting。适用于用户想 scaffold exercises、创建 exercise stubs,或设置新的课程章节时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
migrate-to-shoehorn
vinvcn
将测试文件从 `as` 类型断言迁移到 @total-typescript/shoehorn。适用于用户提到 shoehorn、想替换测试中的 `as`,或需要局部测试数据时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
grilling
vinvcn
围绕计划、decision 或 idea 持续追问用户。适用于用户想对自己的思路做压力测试,或使用任何 “grill” 触发措辞时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
wayfinder
vinvcn
把单个 agent session 装不下的一大块工作规划成 issue tracker 上的 decision tickets shared map,并逐一解决,直到通往 destination 的路清晰。
SkillAFreshness: A★ 5.2KClaude Code +9
Signals
- Stars
- 5,245
- Forks
- 416
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (19 days ago)
- Last release
- Oct 8, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from vinvcn
- 0.848score
git-guardrails-claude-code
vinvcn
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-pre-commit
vinvcn
在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
wizard
vinvcn
生成一个交互式 bash wizard,逐步引导人完成只有他们能执行的手动流程。用于 provisioning 基础设施、设置 credentials 或 CI secrets、走查不熟悉的第三方 dashboard,或运行一次性 migration 或 cutover。对于 agent…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-ts-deep-modules
vinvcn
在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
code-review
vinvcn
从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec 的要求?)两个轴线审查变更。两个审查会在并行子代理中运行,并并排报告。适用于用户想审查…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
to-tickets
vinvcn
把 plan、spec 或当前对话拆成一组 tracer-bullet tickets,每个 ticket 声明 blocking edges,并发布到已配置的 tracker;本地用每 ticket 一个文件中的文本 edge,真实 tracker 用 native blocking links。
SkillAFreshness: A★ 5.2KClaude Code +9
Cite this page
diagnosing-bugs skill. Agent Mart. https://agentmart.dev/skills/vinvcn-diagnosing-bugs (last updated 2026-10-24)