Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bh-rat/steer --skill systematic-debugginggit clone --depth 1 https://github.com/bh-rat/steerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bh-rat/steer/systematic-debugging)<a href="https://agentmods.dev/skills/bh-rat/steer/systematic-debugging"><img src="https://agentmods.dev/badge/skills/bh-rat/steer/systematic-debugging/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bh-rat/steer/systematic-debugging"><img src="https://agentmods.dev/badge/skills/bh-rat/steer/systematic-debugging.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00021 | $0.02229 |
| Opus 5.5 | $0.00008 | $0.00892 |
| Sonnet 5.5 | $0.00004 | $0.00446 |
| Haiku 4.5 | $0.00002 | $0.00223 |
Grade A, and why
systematic-debugging scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 222 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Systematic Debugging
Random fixes waste time and create new bugs. Quick patches mask underlying issues.
Core principle: ALWAYS find root cause before attempting fixes. Symptom fixes are failure.
This skill bundles its own steer runtime at scripts/steer.py; the
commands below invoke it with python3 and need nothing installed.
Paths are relative to this skill's directory: when your working
directory is elsewhere (it usually is), use the skill's full path
(python3 <path-to-this-skill>/scripts/steer.py ...).
The Iron Law
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
In this skill the law is machine-enforced: the flow below keeps the fix step locked until the investigation artifacts actually exist. You cannot propose fixes in Phase 1 because the flow will not let you get there.
When to Use
Use for ANY technical issue: test failures, bugs in production, unexpected behavior, performance problems, build failures, integration issues.
Use this ESPECIALLY when:
- Under time pressure (emergencies make guessing tempting)
- "Just one quick fix" seems obvious
- You've already tried multiple fixes
- Previous fix didn't work
- You don't fully understand the issue
Don't skip when:
- Issue seems simple (simple bugs have root causes too)
- You're in a hurry (rushing guarantees rework)
- Manager wants it fixed NOW (systematic is faster than thrashing)
Process
The four phases are an enforced flow; steps verify themselves against
artifacts in out/debug/, and you cannot skip ahead.
- Announce: "Working through the systematic-debugging flow."
- Run
python3 scripts/steer.py flow status(in the workspace) to see the current phase. - Do what the directive says, guided by the phase notes below.
- Run
python3 scripts/steer.py flow nextand repeat until all steps report complete.
Do NOT claim the bug is fixed while python3 scripts/steer.py flow status shows incomplete
steps. The flow is defined in flow.toml.
Phase 1: Root Cause Investigation (step: investigate)
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- flow.toml 2.4 KB
- LICENSE.txt 1.0 KB
- NOTICE.md 1.7 KB
- references/condition-based-waiting-example.ts 4.9 KB runs code
- references/condition-based-waiting.md 3.4 KB
- references/defense-in-depth.md 3.6 KB
- references/root-cause-tracing.md 5.2 KB
- scripts/find-polluter.sh 1.5 KB runs code
- scripts/steer.py 94 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 222 lines · 21 tokens per session scan A cbf5c98aa2fd
systematic-debugging is a skill published in the GitHub repository bh-rat/steer (7 stars, last pushed 3mo ago), licensed MIT. It adds 21 tokens to every session and 2,229 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
gke-workload-scaling-troubleshooting
Diagnoses GKE HorizontalPodAutoscaler (HPA) failures — metrics showing as , FailedGetResourceMetric / FailedGetScale / FailedComputeMetricsReplicas events, missing Pod resource requests, custom/external metrics-pipeline breakage (FailedGetExternalMetric / FailedGetCustomMetric, unavailable metrics adapter…
gke-ai-troubleshooting-jobset-interruption
Diagnoses GKE JobSet interruptions, restarts, and preemptions for AI/ML training workloads autonomously. Use when troubleshooting JobSet restart loops, spot VM preemptions, node readiness failures, host VM issues, or coordinator worker crashes. Don't use for general GKE cluster creation, basic workload deployment, or…
gke-node-notready
Diagnoses GKE nodes reporting NotReady or Unknown status by inspecting node conditions, events, kubelet/containerd logs, and node metrics, then proposing safe remediations. Use when nodes show NotReady, when the kubelet stops posting node status, or when workloads are evicted or stuck Pending due to node health. Don't…
gke-ai-troubleshooting-tpu-performance-degradation
Diagnose GKE Cloud TPU training throughput drops and step-time regressions (15%+ TPU duty-cycle drop) using ML Diagnostics Workload Monitoring (gcloud alpha mldiagnostics monitored-events / hypercomputecluster.googleapis.com/v1alpha) and 1-minute Cloud Monitoring system metrics (kubernetes.io/node/accelerator/).…
bigquery-troubleshooting
Provides diagnostic workflows and step-by-step root-cause analysis procedures for actively broken, failing, or slow BigQuery jobs, execution graph and query plan stage bottlenecks, system performance issues, or unexpectedly expensive workloads. Use when interpreting symptoms, isolating bottlenecks, diagnosing cost…
gke-ai-troubleshooting-tpu-vbar-oom
Diagnoses and prevents vbarcontrolagent segfaults, out-of-memory (OOM) errors, and TPU device initialization failures on TPU v6e nodes in GKE caused by race conditions during TPU device resets or high-frequency metrics polling. Use when troubleshooting vbarcontrolagent crashes, memory cgroup OOMs in serial console…