Skip to main content

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 investigation
  • debugging-engine-incident — production incidents
  • debugging-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

  1. Open a case (library or CLI)
  2. next — Judge returns the next Task
  3. Reason / edit outside Debugging Engine
  4. submit domain events
  5. verify experiments when scheduled
  6. 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

debugging_engine-0.7.0.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

debugging_engine-0.7.0-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

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

Hashes for debugging_engine-0.7.0.tar.gz
Algorithm Hash digest
SHA256 13356a6fcda7668102293a4225e5adad7e31b358849c164854e492cb922ad722
MD5 092c0c20d6db523b9f75ceb30f3d822f
BLAKE2b-256 d16543fe9e99be6c6f7004ff3f1ba3824babb51efeff1d42fc2e3d0f1d4824b3

See more details on using hashes here.

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

Hashes for debugging_engine-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee6d4186b115c5759e5fbe66143ace284bee99b12e0cb0f1e4488c39582caf24
MD5 1e135991cada3ce935a9fa3bcec1ef30
BLAKE2b-256 487c24d918c7cd4e6ad7cc0cbcfe26511c57478ca5c4b0103c4329c748900b9d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page