debrief
The evidence MCP: answers agent questions from receipts — what ggufbench measured, and where the last buildwright run broke — and proposes role changes as text. It never writes.
Status: scaffolding. The harness is installed and the parent feature is
pending— the spec (harness/specs/debrief/) is not written yet, so the tool list below is the plan, not the product.
The idea
ggufbenchowns the catalog: what a model measured, under which task signature, and why rows were excluded.buildwrightowns the episode: one run, its gates, its failures.debriefis the reader. One query surface, one shared finding type, and a proposal that cites both. Two ports that answer different questions:
| Port | Question | Reads | Tools (planned) |
|---|---|---|---|
bench |
What did we measure? | ggufbench artifacts | bench.which_model · bench.compare · bench.why_excluded |
run |
Where did this run break? | a buildwright run log | run.inspect_run · run.failures · run.tool_calls |
routing.propose |
What would you change? | findings from both | prints a BW_ROLE_* diff as text |
Product rules (the gates that matter in code)
- debrief never writes. Every tool is read-only or returns a proposal as
text. No tool touches
.env,BW_ROLE_*,models.yaml, or any other file. - Proposals target roles, not the registry. A proposed change is a
BW_ROLE_<ROLE>diff.models.yamlis the registry of what exists — not debrief's to edit. - bench and run answer from their own source.
runmay citebenchfindings;benchnever reads runs. - Rows never cross a task signature. Incomparable rows are refused with a reason — never averaged.
The gates (process)
The repo runs the harness SDD
workflow in hybrid mode: one in-session agent plays the roles, the human
gates stay mandatory. Architecture is hexagonal (docs/architecture.md);
features are cut into vertical slices (docs/slicing-protocol.md) —
S1 bench_query → S2 run_inspect → S3 role_propose, each demoable
end-to-end.
| Gate | What it checks | Command / artefact |
|---|---|---|
| Spec Gate (human) | EARS trio in harness/specs/<name>/, slice map approved before any slice starts |
review + explicit approval |
| Batch gates (every 2–4 tasks) | tests + lint + types, evidence saved | uv run pytest tests, ruff check, mypy --strict — full output to harness/logs/<feature>/batch-<n>.log |
Security audit (audit_level: standard) |
path traversal, input validation, secrets — run at review time | bash harness/tools/audit-security.sh |
| Gauntlet G1–G4 (before Completion) | correctness, adversarial input, maintainability, evidence | bash harness/tools/gauntlet.sh --feature <name> + report in harness/progress/gauntlet_<name>.md |
| Completion Gate (human) | traceability R<n> ↔ test, plus a recorded end-to-end demo per slice |
python3 harness/tools/check-traceability.py --feature <name> → harness/specs/<name>/review.md |
| Session verify | harness files, docs, tests, state coherence | harness/init.sh |
Two gates are non-negotiable and human: the Spec Gate and the Completion Gate. The gauntlet filters what reaches them; it never replaces them.
Development
uv sync
uv run pytest tests
Requires Python ≥ 3.14 (uv).
Repository map
See AGENTS.md — it is the navigation map for agents (and humans).
Architecture: docs/architecture.md. Decisions worth
remembering: harness/decisions/.
Metadata
Release files for debrief-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| debrief_mcp-0.1.0.tar.gz | 14.1 kB | With provenance | Details for debrief_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| debrief_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for debrief_mcp-0.1.0-py3-none-any.whl |
Total release size: 31.8 kB
Release files / debrief_mcp-0.1.0.tar.gz
| Download URL | debrief_mcp-0.1.0.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b97e9e0e0f4d6ca6ee7529b6a6b2c01276b964ac6fdf9981a041483ce8a7acc
|
|
BLAKE2b-256 checksum How to use checksums |
b46a9dbd2fc9b6a43ef86c96fffaf0968e32b0ddd9f022127bbf594c470d7dfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / debrief_mcp-0.1.0-py3-none-any.whl
| Download URL | debrief_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a520510495059de8ab2f82f833568a40fc7ae8b7286702bdef192fb3fcb9331b
|
|
BLAKE2b-256 checksum How to use checksums |
f3b808be296b0e680f53851d28f607a09704bca9f8496d620ddcd09543917ff4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for debrief-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for debrief_mcp-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.