一键导入
qa-debugging
Systematic debugging for crashes, regressions, flakes, and production bugs. Use when diagnosing stack traces, logs, traces, or profiling data.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Systematic debugging for crashes, regressions, flakes, and production bugs. Use when diagnosing stack traces, logs, traces, or profiling data.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Builds multi-repo context hubs and compiled markdown knowledge maps. Use when profiling repo portfolios or assembling LLM-ready cross-repo knowledge bases.
Builds per-repo code graphs in JSON and markdown-ready derived artifacts. Use when you need blast radius, symbol-level maps, import graphs, inheritance, or test links.
Context-driven AI development with AGENTS.md, repo knowledge bases, Claude Code, Codex, and Copilot. Use when adopting repo-native AI workflows or multi-repo setups.
Technical writing for READMEs, ADRs, API docs, and changelogs. Use when revising or consolidating a repo documentation folder.
Design, implement, and troubleshoot NUKE-based CI/CD pipelines for .NET services with fast local-to-CI feedback loops. Use when creating or refactoring `nuke/Build.cs` target graphs, tuning `DependsOn`/`After`/`Triggers`/`OnlyWhenDynamic` behavior, orchestrating unit/API/DB test categories, merging and publishing coverage and test reports, building and pushing Docker images with traceable tags and digests, producing artifact contracts such as `deploy.env`, and diagnosing flaky or slow pipeline execution. For service code changes use $software-csharp-backend, for NUnit fixture design use $qa-testing-nunit, and for safe logging rewrites use $dev-structured-logs.
Implement OpenTelemetry logs/metrics/traces, SLI/SLO gates, burn-rate alerts, and APM integrations. Use when adding or validating observability.
| name | qa-debugging |
| description | Systematic debugging for crashes, regressions, flakes, and production bugs. Use when diagnosing stack traces, logs, traces, or profiling data. |
Use systematic debugging to turn symptoms into evidence, then into a verified fix with a regression test and prevention plan.
Reproduce:
Isolate:
git bisect).Instrument:
Fix:
Verify:
Prevent:
| Symptom | First Action | Common Pitfall |
|---|---|---|
| Crash/exception | Start at the first stack frame in your code; capture request/trace ID | Fixing the last error, not the first cause |
| Wrong output | Create a “known good vs bad” diff; isolate the first divergent state | Debugging from UI backward without narrowing inputs |
| Intermittent/flaky | Re-run with tracing enabled; correlate by IDs; classify flake type | Adding sleeps without proving a race |
| Slow/timeout | Identify the bottleneck (CPU/memory/DB/network); profile before changing code | “Optimizing” without a baseline measurement |
| Production-only | Compare configs/data volume/feature flags; use safe observability | Debugging interactively in prod without a plan |
| Distributed issue | Use end-to-end trace; follow a single request across services | Searching logs without correlation IDs |
When debugging failures involving URLs, domains, IDs, or third-party payloads, classify and validate at the earliest boundary before downstream analyzers execute.
domain, display_name, uuid, slug, email, free_text).Without boundary normalization, invalid upstream inputs become downstream DNS/HTTP failures that hide the real root cause and waste retries.
| Need | Read/Use | Location |
|---|---|---|
| Step-by-step RCA workflow | Operational patterns | references/operational-patterns.md |
| Debugging approaches | Methodologies | references/debugging-methodologies.md |
| What/when to log | Logging guide | references/logging-best-practices.md |
| Safe prod debugging | Production patterns | references/production-debugging-patterns.md |
| Memory leaks | Detection + profiling | references/memory-leak-detection.md |
| Race conditions | Diagnosis + concurrency bugs | references/race-condition-diagnosis.md |
| Distributed debugging | Cross-service RCA | references/distributed-debugging.md |
| Input boundary normalization | Prevent invalid identifiers from propagating downstream | references/external-input-normalization-boundary.md |
| Copy-paste checklist | Debugging checklist | assets/debugging/template-debugging-checklist.md |
| One-page triage | Debugging worksheet | assets/debugging/template-debugging-worksheet.md |
| Incident response | Incident template | assets/incidents/template-incident-response.md |
| Root cause to guardrail | Convert incident findings into concrete prevention actions | assets/debugging/template-root-cause-to-guardrail.md |
| Logging setup examples | Logging template | assets/observability/template-logging-setup.md |
| Curated external links | Sources list | data/sources.json |
../qa-observability/SKILL.md (monitoring/tracing/logging infrastructure)../qa-refactoring/SKILL.md (refactor for maintainability/safety)../qa-testing-strategy/SKILL.md (test design and quality gates)../data-sql-optimization/SKILL.md (DB performance and query tuning)../ops-devops-platform/SKILL.md (infra/CI/CD/incident operations)../dev-api-design/SKILL.md (API behavior, contracts, error handling)Classify every failure first:
path/glob: missing path, shell expansion, quotingcli-contract: invalid flag/unsupported optionbaseline: pre-existing repo failure unrelated to current changelogic: regression introduced by current editsenv/toolchain: missing runtime/binary/version mismatchOn any nonzero command:
Before using bracketed/dynamic paths:
test -e "<path>" || echo "missing path"
Prefer quoted paths and explicit file discovery:
rg --files <root> | rg '<needle>'
When broad checks fail due to unrelated baseline issues:
pre-existing.Every debugging report includes: