← Selected work

Independent project / Evalgate

Keep the failure evidence.

Markdown work contracts connect acceptance criteria to executable checks and visible results.

TypeScriptCLIExecutable checksAgent verification
Evalgate contract cards showing two passed checks and a missing-evidence check remaining pending
Real local sample execution · two passed · one deliberate failure · synthetic checks. View full capture ↗

The problem

An agent reporting completion does not establish that a task met its acceptance criteria. The result needs an inspectable check.

What I built

I built Evalgate to connect Markdown work contracts to executable checks, record their results, and leave failed checks unresolved for inspection and an explicit retry.

Decision & tradeoff

Define a verifier alongside the task and use its result to update completion. Shell and HTTP checks test explicit conditions; model-based judgment carries different uncertainty.

A passing check proves only the property it tested. Retries are explicit and the declared retry count is advisory. JSON checks cover a limited shape; file-pattern checks are not a semantic-diff engine.

Completion follows the verifier

Evalgate: define a check, execute a verifier, retain passing or failing results for review.
Open full architecture diagram ↗
  1. Constraint: An agent report is not acceptance evidence.
  2. Decision: Run an explicit verifier and retain its output.
  3. Result: Passing contracts update; failures remain pending for inspection and explicit retry.

Source-verified implementation pattern; sample outcomes are illustrative. A pass covers only the checked property. Retry counts are advisory; model judgments differ from deterministic checks.

Explore the implementation

Real local sample execution · two passed · one deliberate failure · synthetic checks.

1. Passed checks

Two synthetic checks passed in the real local sample run. These are illustrative results, not a performance benchmark.

2. Missing evidence

The deliberately missing source-evidence check failed. Its contract stays pending instead of claiming completion.

3. Review and retry

Read the failure output before an explicit retry. A plausible answer does not replace missing evidence.

Result & limits

The CLI parses pending contracts, runs their verifiers, prints failure output and updates the Markdown using the results. In the sample run, the failed source-evidence contract remains pending.

Sample results are demonstration evidence, not product performance metrics. Passing checks do not prove unchecked properties.

Inspect Evalgate on GitHub

More engineering stories