pwguler/skills

debug

Find the root cause of a bug before you fix it.

Zobacz źródło

Jak używać

  1. Skopiuj polecenie instalacji i sprawdź źródła przed instalacją we własnym środowisku agenta.
  2. W oryginale sprawdź wymagane narzędzia, dane dostępowe i obsługiwane środowiska.
  3. Opisz dane wejściowe i oczekiwany rezultat; porównaj wynik ze źródłami.
npx skills add https://github.com/pwguler/skills --skill debug

Przed rozpoczęciem

  • Instalacja nie obejmuje subskrypcji modelu, limitu API ani uprawnień do plików.
  • Gwiazdki i instalacje pokazują aktywność, a nie niezależny test jakości lub bezpieczeństwa.
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

Do not fix a bug before you know its root cause. The search starts at the symptom, but it does not end there.

Fast path: when the error output shows the first cause directly, skip the hypothesis steps. An example is a stack line that points at the cause. Do not skip the reproduction, the regression test, or the verify skill in step 8. If the visible fix does not make the reproduction pass on the first try, the cause was not visible. Then do all the steps.

  1. Before you reproduce the bug, create a task list with these steps as its items. If a task list already exists, add the steps to it. Each step is one item. When you skip a step, mark it done and add skip: <reason> to its text. The fast path skips the hypothesis steps this way. To go back to an earlier step, add that step and each step after it again as new items. Then delete the unfinished items that the new items replace.
  2. Reproduce the bug first. Build the smallest reproduction that fails every time. If you cannot reproduce the bug, collect evidence until you can: logs, inputs, and versions. Do not guess.
  3. Read the actual error. Find the first cause in the chain of causes, not the nearest symptom.
  4. Make one hypothesis. Write it with the observation that would confirm it or refute it. Get that observation before you start a fix: a log line, an assertion, or a probe. If the evidence does not exist yet, add instrumentation. Keep the instrumentation small and easy to remove, and remove it when it has given its answer.
  5. When two hypotheses compete, design one observation that shows which one is true. Do not try fixes one after another.
  6. Fix the root cause, one fix at a time. Flag another problem that you find, such as a second bug, but do not fix it. Dead code is not another problem. Before the fix, delete the dead code in each file that the fix changes, as implement does. Do this also when the bug did not touch that code. Dead code is functions, imports, and parameters that no caller uses, and branches that no caller reaches. It is also stale flags, and validators that repeat a check that a boundary already did. It is also comments that repeat the code or excuse a workaround. Keep dead code that a non-goal puts out of scope. Read fix root causes before a fix that adds a guard, a catch, or a comment that defends it. Read it also when the same cause can occur elsewhere, or when the failure shows only after a restart.
  7. Add the regression test that would have caught this bug. It fails on the old code and passes with the fix.
  8. Before you report the fix, read the verify skill and follow it. Your report claims that the bug is fixed, and verify proves that claim. When the bug appeared inside a slice, the full gate waits for the slice's commit.

Rules:

  • Do not try several fixes at random to see if one helps.
  • Stop the loop after three refuted hypotheses in a row. Stop it also when the available evidence cannot give a reproduction. Then report what you tried and which observation is missing, and let the user decide.
  • If the fix does not make the reproduction pass, the hypothesis was wrong. Go back to step 4. Do not keep the failed fix and add a second fix. When two failed fixes shared one premise, read attack the premise.
  • If the root cause shows a design problem, say so. Offer to run drill on the redesign. Do not hide the problem under a workaround.
  • When the cause took more than one hypothesis to find, propose a cheap signal that stays on. It is a log line, a metric, or an assertion that would have shown this cause at once. Add it when the user agrees.

Powiązane zadania

z tego samego repozytorium

Więcej Skills

Wszystkie Skills
pwguler
Społeczność

core-interview

Internal support skill that runs the interview loop for other skills, until every decision is settled. Use it only when another skill or the user starts it, never on your own.

instalacje
1
GitHub Stars
10
Aktualizacja
16 paź
pwguler
Społeczność

drill

Question a plan or design until every decision in it is settled and agreed. Read this skill first when the user asks for a new feature, or when a design is not settled. Use it when the user wants a plan stress-tested or a design settled before building. Use it also to settle the structure of a new codebase or area. Use it when the user says \"drill this\" or \"drill me\".

instalacje
1
GitHub Stars
10
Aktualizacja
16 paź
pwguler
Społeczność

parallel

Run independent tasks at once in subagents, race attempts at one task, or cover many parts of one job. Use it only when the user asks for parallel work. Use it when the user asks to run two or more independent tasks or failures in parallel. Use it also to race or compare several attempts at one task, or to cover many parts of one job.

instalacje
1
GitHub Stars
10
Aktualizacja
16 paź
pwguler
Społeczność

prototype

Build a throwaway UI prototype for the user to react to before any real code. Read this skill when the user asks for a mockup or a prototype of a UI. Use it when a design decision depends on look, feel, or flow that text cannot settle.

instalacje
1
GitHub Stars
10
Aktualizacja
16 paź