Debugging Engine
Package: debugging-engine 1.0.8 (PyPI / CLI). Architecture spec remains Debugging Engine v1.0.0 — see docs/SPECIFICATION.md and CHANGELOG.md.
Debugging Engine (State Machine–Driven Agentic Debugging Workflow) is an investigation kernel, not a chat agent.
Coding agents (Cursor, Claude Code, Copilot, Codex, …) 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.
Why
- Investigation state is explicit (Case / Unknown / Hypothesis / Experiment / Evidence), not buried in chat
- A Judge schedules the next role and allowed events — agents advance the case, they don’t “find the answer” alone
- Experiments carry Verification Specs; evidence beats persuasion
- Same kernel for every coding agent via project skills
Concurrency (current)
The Judge returns one next Task at a time. You may propose many hypotheses/experiments in one submit batch, but approve/verify them sequentially on a single case_id. Spec §10 allows parallel experiment execution under constraints; that orchestration is not implemented yet. Event appends use a per-case file lock, and append_many validates the full batch before writing so mid-batch validation failures do not leave partial events.
Install
uv tool install debugging-engine
Local checkout:
uv tool install --force .
# or
uv pip install -e ".[dev]"
Quick start
# Scaffold skills into the current project
debugging-engine --agent cursor # or: claude, copilot, codex, all
# Describe the unknown
# (create issues/my-bug.md with symptoms + success criteria)
debugging-engine open issues/my-bug.md
debugging-engine next <case-id>
# … reason / edit outside the kernel …
debugging-engine submit <case-id> --events events.json
debugging-engine verify <case-id> <experiment-id>
Loop until RootCauseAccepted or escalate.
Scaffold & uninstall
| Agent | Skill root |
|---|---|
claude |
.claude/skills/ |
cursor |
.cursor/skills/ |
copilot |
.github/skills/ |
codex |
.agents/skills/ |
debugging-engine --agent claude,cursor
debugging-engine --agent all
debugging-engine --agent cursor --force
debugging-engine --agent cursor --path /other/repo
debugging-engine --uninstall claude
debugging-engine --uninstall all --force
debugging-engine uninstall-cli # uv tool uninstall debugging-engine
CLI
debugging-engine open <issue.md>
debugging-engine next <case-id>
debugging-engine submit <case-id> --events events.json
debugging-engine verify <case-id> <experiment-id>
debugging-engine status|log|replay <case-id>
debugging-engine query <case-id> [slice]
debugging-engine demo # offline stub investigation (temp fixture)
debugging-engine validate # Phase 2 architectural scenarios (temp fixture)
Python API
from debugging_engine import Case, Engine
engine = Engine(repo_root=".")
case = Case.open(engine, "issues/my-bug.md")
task = case.next()
# case.submit([...]); case.verify(experiment_id)
Full surface: docs/api.md.
Specification
Architecture specification Debugging Engine v1.0.0: docs/SPECIFICATION.md.
Package release notes: CHANGELOG.md.
The published kernel implements serial Judge scheduling (one Task at a time). Spec §10 parallel experiment execution is architectural capability, not implemented in package 1.0.8.
Skills: /debugging-engine-investigate is report-only (write issues/, no Implementer). /debugging-engine-incident owns the fix loop.
| Parts | Status |
|---|---|
| I–VI | Normative |
| VII | Informative |
Repository layout
| Path | Role |
|---|---|
docs/SPECIFICATION.md |
Official Debugging Engine v1.0.0 specification |
docs/api.md |
Public framework API |
CHANGELOG.md |
Package release notes |
src/debugging_engine/ |
Kernel, CLI, skill templates, offline fixtures |
.cursor/skills/ |
Cursor skills (synced from package templates) |
issues/ |
Kernel audits (001–005 closed) + incident briefs (006–008) |
scenes/ |
Local incident reproduction fixtures |
.debugging-engine/cases/ |
Local Event Logs (gitignored) |
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-1.0.8.tar.gz.
File metadata
- Download URL: debugging_engine-1.0.8.tar.gz
- Upload date:
- Size: 61.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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 |
1b4001b59425fce4a2b46a7e01bb7cab3e95c5f8100efd3c2aa7b969b96ce96a
|
|
| MD5 |
2c6761a734af39f8a4586614f8a6630a
|
|
| BLAKE2b-256 |
0274890353d31f34d7ee9d2cce4ff83b3f170a01e6dc2ee2bbbd7e21bfe10b41
|
File details
Details for the file debugging_engine-1.0.8-py3-none-any.whl.
File metadata
- Download URL: debugging_engine-1.0.8-py3-none-any.whl
- Upload date:
- Size: 64.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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 |
5b16fde4969d154cd4841737b277754ad4ba0f677d8c76dfc659d1292b318f9e
|
|
| MD5 |
9404329f77348e8cb5e87181e2f5eb95
|
|
| BLAKE2b-256 |
4c8f89afafb8ad48905263551254c689f7d1af39083b5753633d6dd767f50b8d
|