python-automated-debugging
Use when fixing a Python test that has failed multiple attempts, when print-debugging hasn't revealed the issue, or when you need to investigate runtime state systematically
Best use case
python-automated-debugging is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when fixing a Python test that has failed multiple attempts, when print-debugging hasn't revealed the issue, or when you need to investigate runtime state systematically
Teams using python-automated-debugging should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/python-automated-debugging/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How python-automated-debugging Compares
| Feature / Agent | python-automated-debugging | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when fixing a Python test that has failed multiple attempts, when print-debugging hasn't revealed the issue, or when you need to investigate runtime state systematically
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Python Automated Debugging
## Overview
**Run the debugger. Don't just plan to run it.**
This skill uses `debug_session.py` to run non-interactive pdb sessions. You specify commands upfront, execute, analyze output, then iterate. Works on macOS/Linux only.
## When to Use
- Test has failed 2+ times despite your fixes
- Code looks correct but behaves wrong
- You need to see runtime state, not just read code
- Print statements haven't revealed the issue
## The Cycle
```dot
digraph debug_cycle {
rankdir=LR;
"Form Hypothesis" -> "Write pdb commands";
"Write pdb commands" -> "RUN debug_session.py";
"RUN debug_session.py" -> "Analyze output";
"Analyze output" -> "Hypothesis confirmed?" [style=invis];
"Hypothesis confirmed?" [shape=diamond];
"Hypothesis confirmed?" -> "Fix bug" [label="yes"];
"Hypothesis confirmed?" -> "Form Hypothesis" [label="no - new hypothesis"];
}
```
**You MUST actually execute the tool.** Planning what you would run is not debugging.
## Tool Usage
Location: `debug_session.py` in this skill's directory.
```bash
# Basic usage
python debug_session.py <script.py> "cmd1" "cmd2" ... "q"
# Debug a module
python debug_session.py -m <module> "cmd1" "cmd2" "q"
# Save output
python debug_session.py <script.py> "cmd1" "cmd2" "q" --output debug.log
```
**Always end with `q`** to quit cleanly and avoid hanging.
## Example Sessions
**Investigate a caching bug:**
```bash
python debug_session.py test_file.py \
"b process_item" \
"c" \
"p multiplier" \
"p self.cache" \
"c" \
"p multiplier" \
"p self.cache" \
"q"
```
Hypothesis: cache isn't updating. Commands compare state across two calls.
**Trace unexpected None return:**
```bash
python debug_session.py buggy.py \
"b compute_result" \
"c" \
"a" \
"n" \
"n" \
"p intermediate" \
"p result" \
"w" \
"q"
```
Hypothesis: intermediate calculation fails. Commands trace through function.
**Debug exception origin:**
```bash
python debug_session.py crash.py \
"c" \
"w" \
"pp locals()" \
"l" \
"q"
```
Let it crash, then inspect stack and locals at crash point.
## Iteration Is Expected
Your first debug run rarely gives complete answers. Common pattern:
1. **Run 1**: Set breakpoint, print obvious variables → discover which variable is wrong
2. **Run 2**: Trace where that variable gets set → discover it's cached
3. **Run 3**: Inspect cache behavior across calls → find the bug
Each run narrows the search space. **Don't repeat the same debug session** - each iteration should test a new hypothesis or investigate what you learned from the previous run.
## Common Mistakes
| Mistake | Fix |
|---------|-----|
| Planning commands but not running them | Execute debug_session.py immediately |
| Repeating the same debug session | Each run should test a different hypothesis |
| One massive debug session | Multiple focused sessions, each testing one hypothesis |
| Forgetting `q` at the end | Always end with `q` to avoid hanging |
| Debugging without a hypothesis | State what you expect to find BEFORE running |
## Red Flags - You're Not Actually Debugging
- "I would run..." → Run it now
- "The commands I'd use are..." → Execute them
- "Based on reading the code..." → You need runtime data, not code reading
- Repeating the same session hoping for different results → New hypothesis neededRelated Skills
testing-strategy-python
Python/FastAPI/Django testing conventions. pytest, fixtures, httpx, TestClient, factory_boy. Use when writing or reviewing Python tests.
temporal-python-pro
Master Temporal workflow orchestration with Python SDK. Implements durable workflows, saga patterns, and distributed transactions. Covers async/await, testing strategies, and production deployment.
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
standards-python
This skill provides Python coding standards and is automatically loaded for Python projects. It includes naming conventions, best practices, and recommended tooling.
sentry-python-setup
Setup Sentry in Python apps. Use when asked to add Sentry to Python, install sentry-sdk, or configure error monitoring for Python applications, Django, Flask, FastAPI.
sentry-python-sdk
Full Sentry SDK setup for Python. Use when asked to "add Sentry to Python", "install sentry-sdk", "setup Sentry in Python", or configure error monitoring, tracing, profiling, logging, metrics, crons, or AI monitoring for Python applications. Supports Django, Flask, FastAPI, Celery, Starlette, AIOHTTP, Tornado, and more.
reviewing-python-architecture
Review ADRs to check they follow testing principles and parent PDR constraints. Use when reviewing ADRs or architecture decisions.
qa-debugging
Systematic debugging methodologies, troubleshooting workflows, logging strategies, error tracking, performance profiling, stack trace analysis, and debugging tools across languages and environments. Covers local debugging, distributed systems, production issues, and root cause analysis.
python-workflow
Python project workflow guidelines. Triggers: .py, pyproject.toml, uv, pip, pytest, Python. Covers package management, virtual environments, code style, type safety, testing, configuration, CQRS patterns, and Python-specific development tasks.
python-workflow-development
Develop Python scripts and modules for building AI workflows and integrations. Use when coding data ingestion, transformation, analysis, and automation pipelines in pilot projects requiring Python automation.
python-typing
Migrate Python codebases to strict type checking with pyright. Use when user wants to add types, fix type errors, set up strict mode, or run a typing migration. Provides setup automation, fix patterns, discipline enforcement, and optional iteration loop support.
python-testing
Use when implementing new Python code (follow TDD), designing test suites, reviewing test coverage, setting up pytest infrastructure, writing fixtures, mocking dependencies, or performing parametrized testing