agentsclimarketplace

Debugger fluency

Skill Amey-Thakur/AI-SKILLS/skills/debugging/debugger-fluency

Plug-and-play skills and prompts for every AI coding agent

Install
npx -y skills add Amey-Thakur/AI-SKILLS --skill debugger-fluency

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 20 days oldThe repository was created 20 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Drive a real debugger with breakpoints, watch expressions, and conditional stops to read live program state at the moment of failure. Use when a bug needs you to see the call stack and variables as it breaks, not reconstruct them afterward.

SKILL.md

2.7 KB, 577 tokens by cl100k_base, as published. Nobody here has run it

Debugger fluency

A debugger freezes the program where the bug lives and lets you read every variable, frame, and expression at that instant. Many developers reach only for print statements because they never learned the handful of commands that make a debugger fast. Those commands trade an afternoon of recompiling for one inspected pause.

Method

  1. Break at the fault, not at main. Set the breakpoint on the misbehaving line or the exception itself: breakpoint() in Python, a gutter dot in the IDE, or break file.py:88. Stepping from the entry point through everything wastes the tool.
  2. Master the five movements. Step over (n) runs a line, step into (s) enters a call, continue (c) runs to the next stop, finish (r) returns from the frame, and up/down walk the stack. The rest is convenience.
  3. Use conditional breakpoints inside loops. Stop only when it matters: break process.py:40 if user_id == 4187. Instead of hitting continue nine hundred times you land exactly on the iteration that fails.
  4. Watch expressions, not just variables. Add order.total - sum(items) as a watch so the debugger re-evaluates it at every stop. The moment the invariant breaks you see it, without scanning raw fields by eye.
  5. Walk the stack from the crash. On an exception, drop into a post-mortem with pdb.pm() or "break on caught exception," then move up through the callers reading locals. The bad value was often set three frames above where it blew up.
  6. Mutate state live to test a fix. Reassign a variable at the prompt and continue, or evaluate the corrected expression in place. Confirm the hypothesis holds before you edit a single line of source.
  7. Script the repeat with a startup file. Put recurring breakpoints and commands in a .pdbrc or a launch config so re-entering the session drops you at the scene without retyping the setup.

Signals

  • Do you reach the failing state in one continue, not fifty manual steps?
  • Can you name the frame where the wrong value first appears?
  • Do your watch expressions encode the invariant, so a stop explains itself?

Boundaries

Where you cannot attach, a locked container, a hot production path, or a timing race a breakpoint would freeze, fall back to print-debugging or heisenbugs. A debugger inspects one run, so reproduce the failure reliably with reproduction-first before you open it.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.