problem-locating-solving — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited problem-locating-solving (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use when locating a bug in an unfamiliar codebase, tracing a failure from symptom to source, or choosing between candidate fixes after the symptom is observed but before a patch lands.
End-to-end bug localization workflow: problem-statement construction, search-space reduction by symptom type, boundary-based fault localization (entry-point tracing, differential comparison, binary search, minimal repro, search-before-read), root-cause isolation (symptom vs cause analysis with stop conditions), multi-option fix generation across local-patch / guardrail / structural classes, blast-radius comparison between candidates, implementation rules that bind the fix to a regression-proofing artifact, five verification types (repro test, regression test, neighbor check, blast-radius check, explanation check), and a four-question post-fix reflection that promotes one-off fixes into prevention mechanisms when the class could recur.
The most common debugging failure is not lack of skill — it is skipping steps. Agents jump from symptom to fix without isolating the root cause, which produces patches that hide bugs instead of removing them. This skill exists for the gap between "something is wrong" and "the right fix is verified."
Every step in the loop has been added because skipping it caused a real false fix. Knowing debugging theory is not enough — you need a repeatable way to find the failing boundary, isolate the actual cause, compare solution options, and prove the fix closes the problem without widening the blast radius. The loop is the process; intuition without the loop produces patches that look like fixes and re-emerge under different inputs two days later.
Use the ordered phases, checklists, and guardrails in the sections below as the canonical workflow for this skill. When multiple subsections describe steps, follow them in the order presented.
Use this loop in order. Skipping steps creates false fixes.
Before searching the codebase, write the problem in a concrete form.
| Field | Required question |
|---|---|
| What | What is failing? |
| Where | Which route, job, component, file, or workflow shows the failure? |
| When | Under what timing, input, environment, or user state does it happen? |
| Expected | What should happen instead? |
| Actual | What observable result occurs now? |
| Impact | Why does this matter: correctness, UX, security, cost, or trust? |
If one of these is missing, the search space is still too loose.
Do not search the whole repo emotionally. Reduce the space first.
| Symptom type | Start boundary | Fastest first move |
|---|---|---|
| Route / API failure | Request handler → service → query | Find the route entry point and first downstream call |
| UI bug | Visible component → state source → async edge | Identify the first component that renders wrong data |
| Data mismatch | Read model → transform → source table | Compare the final number against the nearest prior stage |
| Scheduled job issue | Cron trigger → worker → provider call | Find where the run first diverges from normal logs |
| Build / test failure | First failing file → import chain → config | Start from the first deterministic error, not the last cascade |
The critical move is to find the first point where reality stops matching the expected flow.
| Technique | Use when | Result |
|---|---|---|
| Entry-point tracing | You know the failing route or component | Narrows owner path quickly |
| Differential comparison | Good path vs bad path exists | Exposes the divergence point |
| Binary search through the path | Flow has many stages | Cuts search space fast |
| Minimal repro | Failure is noisy or stateful | Produces a smaller truth surface |
| Search-before-read | Codebase is unfamiliar | Finds candidate files without flooding context |
Symptoms are not causes. A cause explains why the symptom appears.
| Symptom | Likely cause form |
|---|---|
| Timeout | Query shape, retry loop, blocking external dependency |
| Wrong total | Missing component, double count, unit mismatch, null semantics |
| Empty UI state | Fetch never ran, filter mismatch, wrong auth or scoping |
| Intermittent failure | Race, stale cache, background mutation, provider variability |
| Build break | Import drift, type-contract break, config mismatch |
If the proposed fix does not explain why the symptom happened, it is probably still a patch.
Do not lock onto the first plausible solution.
| Fix class | Best for | Tradeoff |
|---|---|---|
| Local patch | Clear isolated mistake | Fastest, but may miss recurrence prevention |
| Guardrail | Bad inputs or state transitions | Safer, but may hide deeper issues if overused |
| Structural fix | Repeated or systemic failures | Highest confidence long-term, but higher change cost |
Generate at least two candidate fixes whenever the root cause is not trivial.
Pick the option that solves the root cause with the smallest justified surface area.
The fix is not complete until the original failure mode is proven closed.
| Verification type | Question it answers |
|---|---|
| Repro test | Can I still trigger the original bug? |
| Regression test | Will this exact class of bug return silently? |
| Neighbor check | Did the fix break adjacent behaviour? |
| Blast-radius check | Did the changed boundary affect another subsystem? |
| Explanation check | Can I explain why this fix works? |
After the fix, ask:
If the same class of bug could reasonably recur, promote the learning into a prevention mechanism.
| Instead, use | Why |
|---|---|
debugging | Executing scientific-method debugging on an already-localized bug. Debugging owns the per-technique RCA loop; this skill owns the workflow that produces the localization. |
code-review | Reviewing not-yet-broken code for quality and correctness. Code-review is proactive at PR scope; this skill is reactive once a failure has been observed. |
refactor | Restructuring code for clarity or maintainability when nothing is broken. Refactor is for healthy code; this skill is for broken code. |
diagnosis | Triaging an unknown failure into a problem class before debugging begins. Diagnosis owns the per-incident triage; this skill owns the locate-to-fix workflow that runs after triage. |
pattern-recognition | Identifying the recurring class behind many bugs and proposing a structural rule. Pattern-recognition feeds prevention into the reflection step of this workflow but does not own the per-bug localization. |
lint-overlay | Adding the lint rule that automates prevention of the bug class. Lint-overlay owns the rule machinery; this skill decides whether a recurring bug warrants a rule. |
tool-call-strategy | Deciding which tool (Grep / Glob / Read) to use during search-space reduction. Tool-call-strategy owns the tool selection; this skill owns the workflow within which the tools are used. |
skill-infrastructure | Performing dependency and structural audits across the skill library graph. Skill-infrastructure owns the structural health-tooling perspective; this skill owns the per-bug perspective. |
context-graph | Understanding the relationships between files and modules to estimate blast radius. Context-graph owns the relationship model; this skill consumes it during fix-comparison. |
<!-- skill-graph-context:start (generated — do not edit by hand) -->
Classification
software-engineering-methodtrueengineering/debuggingWhen to use
Not for
Related skills
tool-call-strategy, context-graph, skill-infrastructurediagnosis, pattern-recognition, lint-overlay, testing-strategy, code-reviewKeywords
locate a defect in unfamiliar codebase, failing-boundary identification, first failing boundary, find where defect originates, trace symptom backward to source, search-space reduction by symptom type, boundary-based fault localization, locate-to-solve workflow, search-space bounding rules, entry-point tracing technique<!-- skill-graph-context:end -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.