Repository navigation
v0.8.0 — thesis artifact (byte-faithful cut)
Governed Agent Harness 0.8.0: the cut evaluated in the thesis.
This release is the byte-faithful import of the research artifact designed, implemented and evaluated in the master's thesis Diseño y evaluación de una arquitectura de harness engineering para el desarrollo de software asistido por inteligencia artificial, con supervisión humana y retrospectiva basada en evidencia (Juan Sebastián Barrera Pulido, Maestría en Informática, Escuela Colombiana de Ingeniería Julio Garavito). It reproduces the evaluated cut exactly. It is not a new version of the software.
Warning
The wheel and sdist attached here are the original binaries of the thesis cut. This repository's CI did not build them, so they carry no build-provenance attestation. Attested, SBOM-backed artifacts start with v0.8.1. Verify these files with SHA256SUMS.
Provenance
| Item | Value |
|---|---|
| Cut | governed-agent-harness-0_8_0-current.zip |
| ZIP SHA-256 recorded in the thesis | 7e1401ad9f324a9e9fe488b5eb4d9c842f3f8ec52ec7340e5913813440b4d0cd |
| Files in the cut | 236 (macOS .DS_Store metadata excluded) |
| Versioned in Git | 232, byte-identical to the cut (scripts/verify_provenance.py full → matched: 232/232, mismatched: 0, missing: 0) |
| Attached instead of versioned | dist/governed_agent_harness-0.8.0-py3-none-any.whl, dist/governed_agent_harness-0.8.0.tar.gz, .coverage.release (published as coverage.release.sqlite). dist/.gitignore is a 1-byte file and is not versioned. |
| Reference manifest | provenance/v0.8.0.sha256 (also attached as provenance-v0.8.0.sha256) |
The ZIP archive itself was no longer available when the repository was published, so its SHA-256 could not be recomputed. Fidelity is anchored to the per-file manifest of the extracted cut. Every import step was checked against that manifest in CI.
The tag also contains repository infrastructure added around the cut. None of it modifies a file of the cut: .gitattributes, .editorconfig, provenance/, scripts/verify_provenance.py, scripts/check_denylist.py, .github/privacy-denylist.txt and .github/workflows/import-ci.yml. The original .github/workflows/ci.yml is kept byte-identical and is disabled through the Actions API (#15).
MANIFEST.sha256 is attached as shipped in the cut. It is stale: 51 of its 88 entries do not match the files (#13).
Snapshot evaluated in the thesis
The thesis author reported these figures for this cut. The last column shows what was re-verified while publishing this repository. These figures describe the frozen cut, not the current state of develop; the CI badges show that.
| Fact | Thesis value | Re-verified during publication |
|---|---|---|
Python modules in src/governed_harness |
74 modules, 6,746 lines | 74 source files (mypy count) |
| JSON Schema contracts | 25 | 25 files in schemas/v1 |
| CLI commands | 21 | 21 (command tree introspection) |
| API routes | 9: seven queries, one decision POST, dashboard at / |
9 routes in api/app.py |
| Tests | 86: core 79, E2E Python 4, E2E Node 1, performance 2 | 86 pass; core families 79 |
| Full suite in one process | exit 0 in three runs, 19–21 s | exit 0 in three runs, 16–20 s (macOS, Python 3.12.11); green in CI on CPython 3.12/3.13/3.14 |
| Core coverage | lines 77.48 %, branches 59.29 %, 3,268 statements | not recomputed for this release |
| Ruff | 140 findings in src, 11 in tests (0.16.5); 60 F401, 40 B008 |
identical counts with ruff 0.16.7 |
| Mypy strict | package mode blocked by the missing py.typed; 54 errors in 15 files on sources, 34 attr-defined |
55 errors in 15 files with mypy 1.20.2 |
| Wheel in a clean environment | 18 dependencies; harness runs |
18 dependencies (25 with [api]); harness --help exits 0 |
| Governed-process overhead | 10.09 % and 11.23 % in two runs, about 1.2 ms | microbenchmarks are published from v0.8.1 onwards |
| Exit codes | 0, 1, 2, 3, 4, 5, 6, 130 | 3 (not found) and 5 (stale approval) reproduced with the original wheel |
| Brownfield case | pallets/itsdangerous 2.2.0, tarball SHA-256 7b0c6d41…37f2b, baseline broken by missing freezegun, 298 tests after installing it, ChangeSet digest invariant |
reproduced: GitHub tag archive SHA-256 matches; 298 passed; digest sha256:e775aa2d…23d46 unchanged; APPROVE exit 5, APPROVE_EXCEPTION exit 0; 46 events, chain valid |
Known limitations and defects
The harness is a research beta. It is not a sandbox: an authorized process keeps the file-system, network, CPU and memory permissions of the OS user. The local web dashboard has no authentication and must stay on loopback (#18).
Behavioral defects are kept unfixed so that this cut stays identical to what the thesis measured. They are tracked in the milestone backlog — thesis-impact:
- #1: a mandatory validator whose Python module is missing yields
FAILED/HIGH instead ofBLOCKED. - #2: the gate stays
FAILEDafter a passing retry when the ChangeSet digest does not change (needs-decision). - #3: workflow YAML phase settings are persisted and digested but not enforced.
- #4: capabilities are resolved per run and actor, not per phase.
- #5:
allowNetwork,repositoryContentTrustedanddestructiveActionsDefaultare declared but not enforced. - #6: memory store: no production path creates records, exclusions go unrecorded, supersession depends on order.
- #7:
PREEXISTING_ERRORandINTRODUCED_ERRORare never assigned. - #8:
PLANNINGdeclaresapproval.request, but no checkpoint is wired. - #9: the process runner truncates output only after buffering all of it.
- #19:
contained_pathrejects absolute paths under a symlinked ancestor (macOS/var).
Quality and infrastructure items are addressed in v0.8.1: #10–#17, #20, #22–#26.
Assets
| File | Description |
|---|---|
governed_agent_harness-0.8.0-py3-none-any.whl |
Original wheel of the cut |
governed_agent_harness-0.8.0.tar.gz |
Original sdist of the cut |
coverage.release.sqlite |
Original .coverage.release coverage database of the cut |
MANIFEST.sha256 |
Original integrity manifest, stale (#13) |
provenance-v0.8.0.sha256 |
Per-file SHA-256 manifest of the extracted cut, the provenance reference |
SHA256SUMS |
SHA-256 of all of the above |
To verify the binaries:
sha256sum -c SHA256SUMSTo verify a checkout of this tag:
git checkout v0.8.0
python3 scripts/verify_provenance.py full