Skip to content

MVP: task and verification schemas for outcome-graded evals - #8

Draft
geojaz wants to merge 8 commits into
mainfrom
ehole/task-verification-schemas-mvp
Draft

MVP: task and verification schemas for outcome-graded evals#8
geojaz wants to merge 8 commits into
mainfrom
ehole/task-verification-schemas-mvp

Conversation

@geojaz

@geojaz geojaz commented Jul 24, 2026

Copy link
Copy Markdown
Member

Overview

Adds a deterministic verification layer to devops-bench so tasks can assert exact, machine-checked outcomes against live cluster state — not just LLM-judge narration.

Until now, tasks were scored almost entirely by an LLM judge. This PR adds a typed verification_entries schema so a task can specify precise pass/fail conditions checked programmatically against Kubernetes resources, in-cluster and off-cluster HTTP endpoints, and GitOps repo state, with the judge demoted to non-gating subjective residue.

Verification framework

  • New typed VerificationEntry and Task.verification_entries field, wired through the eval harness as an unconditional evaluation step.
  • Per-entry modes (converge / assert / hold), combinators (all / any / none), and quantifier dispatch.
  • Rollup into three scores: c (objective coverage), rec_v (recoverable safeguards), cat_v (catastrophic safeguards).
  • CLI prints a per-task deterministic + judge summary at end of run.

Verifiers

  • resource_property: JSONPath over live Kubernetes objects with quantity-aware numeric comparisons (150m, 192Mi, 1Gi, etc.).
  • http_probe: in-cluster HTTP via a one-shot curl pod, polled until success or deadline.
  • external_http_probe: off-cluster reachability — discovers a Service/Ingress external address and GETs it from the verifier host.
  • git_repo_sync: grades a host-side bare GitOps repo at a ref without cloning.

Tasks

  • deploy-hello-app onboarded to objective/safeguard verification with an HTTP-server oracle image and external probe grading.
  • Eight tasks onboarded to deterministic verification_entries: fix-config, deploy-config, optimize-scale, spot-rebalancing, lustre-csi-deployment, cve-remediation, opa-remediation, migration-and-upgrade.
  • Two new kind-backed tasks: ledger-read-facade (id 23) and checkout-multi-service-outage (id 24), each with its own dedicated Terraform stack that provisions already-broken.

Terraform

  • Reusable tf/modules/ingress-nginx module.
  • Dedicated per-task kind stacks (prebuilt/ledger-read-facade-kind, prebuilt/checkout-multi-service-outage-kind) that seed the broken fixture during tofu apply.
  • prebuilt/kind gains a reusable install_ingress_nginx gate.
  • hypercomputer-d1 output fix.

Tests + formatting

  • Unit tests across every verifier, the runner, modes, rollup, harness integration, and CLI summary.
  • Ruff format pass on legacy modules (deployers/, pkg/, scripts/, tests/).

geojaz added 8 commits July 27, 2026 22:24
…ispatch, and rollup

Add the core deterministic verification framework:

- VerificationEntry type and Task.verification_entries on the task schema
- resource_property verifier with JSONPath (jsonpath-ng) and quantity-aware
  comparisons
- http_probe verifier over one-shot curl pod with polling and robust status
  parsing
- run_pod ephemeral pod helper in devops_bench.k8s
- all/any/none combinators and quantifier dispatch
- per-entry c/rec_v/cat_v rollup
- per-entry mode dispatch (converge/assert/hold) via run_entry
Wire deterministic verification into the eval harness:

- Evaluate verification_entries and emit c/rec_v/cat_v rollup metrics
- Print a combined deterministic + judge run summary in the CLI
…d verification entries

- Onboard deploy-hello-app to objective/safeguard verification entries
- Add HTTP-server oracle image (Go) and oracle.yaml manifest
- Add oracle validation runbook in docs/appendix
- Add external_http_probe verifier for off-cluster probe grading
- Fix namespace-scoped discovery for external_http_probe
Add a verifier that checks whether a Git repository has been synced to
the expected state (branch, commit, or tag).
Add verification_entries to:
  cve-remediation, migration-and-upgrade, opa-remediation, optimize-scale,
  spot-rebalancing, deploy-config, fix-config, lustre-csi-deployment
… with kind stacks

- Add reusable ingress-nginx Terraform module
- Install ingress-nginx in prebuilt/kind behind a gate variable
- Add ledger-read-facade-kind and checkout-multi-service-outage-kind
  prebuilt stacks with fixture seeding via setup.sh
- Add ledger-read-facade task (id 23) and checkout-multi-service-outage
  task (id 24) with deterministic verification entries
- Update docs/components/infra.md for ingress-nginx module and new stacks
- Link deploy-hello-app oracle validation runbook from docs index
- Update known_issues.md
- Fix hypercomputer-d1 cluster outputs
Autoformat deployers/, pkg/, scripts/, and tests/ with ruff to fix
whitespace, trailing-newline, and indentation style.
@geojaz
geojaz force-pushed the ehole/task-verification-schemas-mvp branch from 2a50c18 to ce61479 Compare July 28, 2026 05:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant