Version: 1.0.0
GDH is a Codex-first governed execution layer for software-delivery work. It sits above a coding runner and turns a spec or GitHub issue into a bounded run with policy evaluation, approval stops, deterministic verification, durable artifacts, review-packet output, benchmark scoring, and a local dashboard over the resulting evidence.
This repository is the v1 public-showcase release: a local-first, evidence-backed control plane that stays intentionally conservative about what it automates and what its current evidence can prove.
Coding agents can produce useful changes, but the surrounding process is usually weak: plans live in chat, policy decisions are implicit, verification is easy to skip, and review context disappears once the session ends.
GDH exists to make that process inspectable:
- normalize work into a durable spec and plan
- evaluate repo policy before write-capable execution
- require approval for protected work
- persist run, diff, checkpoint, verification, and review artifacts locally
- package verified work for careful draft-PR review rather than direct merge
- benchmark the control plane itself with deterministic fixture-backed cases
- It is not another coding agent. It is the governed layer above a coding agent.
- It is local-first and artifact-first. The source of truth is persisted evidence under
runs/andreports/, not a hosted control plane or a chat transcript. - It treats policy, approvals, verification, and review packets as first-class product surfaces.
- It measures itself with deterministic benchmarks aimed at the governed workflow, not with vague anecdotal demos.
The v1 showcase includes:
gdh run <spec-file>andgdh run --github-issue <owner/repo#123>- YAML policy packs with
allow,prompt, andforbidoutcomes - approval packets and resumable approval-paused runs
- deterministic verification with persisted
verification.result.json - durable manifests, checkpoints, progress snapshots,
gdh status, andgdh resume - evidence-based review packets
- draft-PR-only GitHub delivery and local
/gdh iteratecomment intake - deterministic benchmark execution, comparison, and regression gating
- bounded benchmark-driven optimization for an explicitly allowlisted config-only surface
- a local API and dashboard over persisted run and benchmark artifacts
This v1 release does not include:
- autonomous merge or deploy automation
- hosted multi-user infrastructure
- background workers, daemons, or webhook processors
- multi-agent orchestration
- open internet access by default
- broad self-optimization loops or arbitrary source-tree mutation
- Node.js
20or newer - pnpm
10or newer - a local Git checkout
- optional: local Codex CLI auth for live
--runner codex-cliruns - optional:
GITHUB_TOKENfor GitHub issue or draft-PR flows
git clone <repo-url>
cd GDH
pnpm bootstrappnpm bootstrap installs dependencies with the lockfile and prepares the tracked runtime directories used by runs, reports, and docs.
pnpm release:validateThat runs the main local validation sweep:
pnpm lintpnpm lint:linkspnpm typecheckpnpm testpnpm buildpnpm benchmark:smoke
The fastest honest path is now:
- Read this README for scope, non-goals, and the reviewer path.
- Run
pnpm review:quick. - Open
reports/review-checklist.md. - Start the dashboard with
pnpm dashboard:dev. - Read docs/architecture-overview.md, reports/benchmark-summary.md, and reports/v1-release-report.md.
The default evaluator path is local-first and does not require live GitHub or live Codex execution.
If you prefer the manual path, use:
pnpm release:validatepnpm demo:preparepnpm gdh status <demo-run-id> --jsonpnpm gdh verify <demo-run-id> --json- docs/demo-walkthrough.md
The core lifecycle is:
- Normalize a spec or GitHub issue into a durable
Spec. - Generate a bounded
Plan. - Evaluate policy and create an approval packet when required.
- Execute through the configured runner.
- Persist run state, checkpoints, diffs, commands, and policy audit artifacts.
- Run deterministic verification before completion.
- Render a review packet.
- Optionally package the verified run for a draft PR.
- Expose the persisted evidence through the local API and dashboard.
Start with the concise architecture doc:
For the more detailed package layout and internal module seams:
The quickest demo path is:
pnpm review:quick
pnpm dashboard:devpnpm review:quick runs pnpm release:validate, then pnpm demo:prepare, then writes reports/review-checklist.md plus reports/review-checklist.latest.json.
pnpm demo:prepare remains available directly. It builds the workspace, runs a safe fake-runner governed demo spec, runs the smoke benchmark suite, and writes a local summary to reports/release/demo-prep.latest.json.
Because the governed demo run executes the repo’s real verification commands against the current checkout, the happy path assumes a clean or otherwise validation-ready working tree.
Use the walkthrough for the full reviewer script, including approval, verification, benchmark, dashboard, and optional GitHub steps:
The benchmark surface is meant to validate the governed control plane, not to claim general autonomous coding performance.
Current corpus:
smoke:10CI-safe casesfresh:8recent repo tasks normalized into deterministic caseslonghorizon:2broader multi-file cases
Current reviewer-facing evidence:
- reports/benchmark-summary.md
- reports/benchmark-corpus-summary.md
- docs/operations/bounded-optimization.md
The latest referenced suite evidence in the repo shows:
smoke:10/10passed with score1.00on2026-03-24fresh:8/8passed with score1.00on2026-03-23longhorizon:2/2passed with score1.00on2026-03-23
pnpm gdh run [<spec-file>] [--github-issue <owner/repo#123>] [--runner codex-cli|fake] [--approval-mode interactive|fail] [--policy <policy-file>] [--json]
pnpm gdh status <run-id> [--json]
pnpm gdh resume <run-id> [--json]
pnpm gdh verify <run-id> [--json]pnpm gdh pr create <run-id> [--branch <branch-name>] [--base-branch <base-branch>] [--json]
pnpm gdh pr sync-packet <run-id> [--comment-id <comment-id>] [--json]
pnpm gdh pr comments <run-id> [--json]
pnpm gdh pr iterate <run-id> [--json]GitHub behavior stays conservative:
- draft PRs only
- no merge automation
- no deploy hooks
- no background polling
- missing credentials fail clearly
pnpm gdh benchmark run <suite-or-case> [--ci-safe] [--json]
pnpm gdh benchmark compare <lhs> [<rhs>] [--against-baseline] [--json]
pnpm gdh benchmark show <run-id> [--json]
pnpm benchmark:smokepnpm gdh optimize run <candidate-manifest> [--json]
pnpm gdh optimize compare <optimization-run-id> [--json]
pnpm gdh optimize decide <optimization-run-id> [--json]The optimizer is intentionally narrow. In this session it can mutate only config/optimization/impact-preview-hints.json, and it rejects ties, regressions, missing comparisons, or any candidate that escapes that allowlist.
pnpm dev:api
pnpm dev:web
pnpm dashboard:dev
pnpm review:quick
pnpm validate
pnpm release:validate
pnpm demo:prepare
pnpm release:package
pnpm release:v1Governed runs persist under runs/local/<run-id>/. Important artifacts include:
run.jsonevents.jsonlsession.manifest.jsonprogress.latest.jsonplan.jsonimpact-preview.jsonpolicy.decision.jsonapproval-packet.*commands-executed.jsonchanged-files.jsondiff.patchverification.result.jsonreview-packet.*github/*when GitHub delivery is used
Benchmarks persist under runs/benchmarks/<benchmark-run-id>/.
Bounded optimization runs persist under runs/optimizations/<optimization-run-id>/.
- Live
codex-clicommand capture remains partially self-reported. - Verification is deterministic and evidence-backed, but it is not a proof system.
- Resume works only from explicit safe checkpoints.
/gdh iteratehandling is local-operator initiated and comment-prefix based.- The dashboard is read-only over persisted artifacts; it does not mutate run state.
- GitHub draft-PR delivery exists, but the local evidence is stronger for the offline path than for the publish-capable path because fresh validation still assumes
GITHUB_TOKENis optional. smokeis the default CI-safe regression gate; broaderfreshandlonghorizoncoverage are available but intentionally non-default.
Live --runner codex-cli runs are optional. Before using them, make sure:
codexis available onPATH- the local Codex CLI session is authenticated
~/.codexis writable and its local state is healthy- you understand GDH keeps network access off by default unless policy explicitly allows it
If a live run appears stuck, inspect:
pnpm gdh status <run-id>runs/local/<run-id>/progress.latest.jsonruns/local/<run-id>/runner.stderr.log
The observed state_5.sqlite missing-migration warning is a Codex-local ~/.codex issue, not a GDH artifact-store issue.
- Version:
1.0.0 - License:
MIT - Status: public local-first showcase release for technical review and careful local evaluation