debugging-engine
Reference implementation of Debugging Engine v3.1 (State Machine–Driven Agentic Debugging Workflow).
Debugging Engine is an investigation kernel, not a chat agent. Coding agents (Cursor, Claude Code, Codex, etc.) drive it through a CLI or the Python library. The engine owns Case State, the Event Log, validation, projections, and Judge scheduling. It does not embed an LLM.
Install
# Preferred once published to PyPI
uv tool install debugging-engine
# Until PyPI publish — install from GitHub
uv tool install debugging-engine --from git+https://github.com/NguyenGiaThuy/debugging-engine
# Local checkout
uv tool install --force .
Scaffold agent skills
In any project:
debugging-engine --agent claude # .claude/skills/
debugging-engine --agent cursor # .cursor/skills/
debugging-engine --agent copilot # .github/skills/
debugging-engine --agent codex # .agents/skills/
debugging-engine --agent claude,cursor # multiple agents in one call
debugging-engine --agent all # all supported agents
debugging-engine --agent claude --force
debugging-engine --agent cursor --path /path/to/project
Uninstall
# Remove scaffolded skills (keeps modified files unless --force)
debugging-engine --agent claude --uninstall
debugging-engine --agent claude,cursor --uninstall
debugging-engine --agent all --uninstall
debugging-engine --agent cursor --uninstall --force
debugging-engine --agent claude --uninstall --path /path/to/project
# Remove the globally installed uv tool
debugging-engine uninstall-cli
# same as: uv tool uninstall debugging-engine
Skills installed:
debugging-engine-investigate— general debugging investigationdebugging-engine-incident— production incidentsdebugging-engine-performance— latency / throughput / memory
See docs/roadmap.md and ADR 0007.
Specification
The complete Debugging Engine v3.1 RFC lives in docs/rfc/.
| Parts | Status |
|---|---|
| I–VI | Normative |
| VII | Informative |
Library
from debugging_engine import Case, Engine, DomainEvent, EventType
engine = Engine(repo_root=".")
case = Case.open(engine, "subject/issues/001-cache-miss.md")
task = case.next()
# coding agent reasons outside Debugging Engine, then:
# case.submit([... DomainEvent ...])
# case.verify(experiment_id)
CLI (investigation)
debugging-engine demo
debugging-engine validate
debugging-engine open subject/issues/001-cache-miss.md
debugging-engine next <case-id>
debugging-engine submit <case-id> --events path/to/events.json
debugging-engine verify <case-id> <experiment-id>
Agent workflow
- Open a case (library or CLI)
next— Judge returns the next Task- Reason / edit outside Debugging Engine
submitdomain eventsverifyexperiments when scheduled- Repeat until root cause accepted or escalate
Layout
| Path | Role |
|---|---|
docs/rfc/ |
Debugging Engine specification |
docs/api.md |
Public framework API |
docs/roadmap.md |
Phases 1–5 |
docs/decisions/ |
ADRs |
src/debugging_engine/integrations/ |
Agent scaffold + skill templates |
.cursor/skills/ |
Cursor skills (synced from package templates) |
src/debugging_engine/ |
Investigation kernel + public API |
subject/ |
System under investigation (seeded bugs) |
.debugging-engine/cases/ |
Local Event Logs (gitignored) |
Release (PyPI)
uv build
uv publish # or twine upload dist/*
Then users can run uv tool install debugging-engine.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file debugging_engine-0.7.0.tar.gz.
File metadata
- Download URL: debugging_engine-0.7.0.tar.gz
- Upload date:
- Size: 37.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13356a6fcda7668102293a4225e5adad7e31b358849c164854e492cb922ad722
|
|
| MD5 |
092c0c20d6db523b9f75ceb30f3d822f
|
|
| BLAKE2b-256 |
d16543fe9e99be6c6f7004ff3f1ba3824babb51efeff1d42fc2e3d0f1d4824b3
|
File details
Details for the file debugging_engine-0.7.0-py3-none-any.whl.
File metadata
- Download URL: debugging_engine-0.7.0-py3-none-any.whl
- Upload date:
- Size: 42.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee6d4186b115c5759e5fbe66143ace284bee99b12e0cb0f1e4488c39582caf24
|
|
| MD5 |
1e135991cada3ce935a9fa3bcec1ef30
|
|
| BLAKE2b-256 |
487c24d918c7cd4e6ad7cc0cbcfe26511c57478ca5c4b0103c4329c748900b9d
|