dynobox

Deterministic agent verification

01 / VERIFY THE WORK

Your agent said done.
Now verify the work.

Use Dynobox to test that your SKILL.md and agent workflows follow the defined steps and produce the expected results across models and runs.

Dynobox records what your agent does, then checks that work against deterministic assertions rather than asking one model to judge another.

Start testing $ npx dynobox init
~/skills/dyno-from-skill

npx dynobox run dyno/dyno-from-skill.dyno.mjs

■ dynobox  0.9.3

discovered 1 dyno · 1 scenario · harnesses: 2

[dyno-from-skill] generates test dyno

create dyno from skill

claude-code/sonnet/da... 13 assertions

skill.referenced(dyno-from-skill)

artifact.exists(example.dyno.mjs)

verify.command(dynobox validate)

codex/gpt-5.4-mini/da... 13 assertions


✓ 2 jobs passed · 26 assertions · 3m25s

02 / EVIDENCE OVER OPINION

Behavior is the contract.

Agents are non-deterministic. Your acceptance criteria shouldn't be. Define what must happen, then evaluate the same evidence every run.

OBSERVE

What the agent did

Tool calls, normalized commands, work-directory artifacts, skills, transcript, and final response.

ASSERT

What the test requires

Explicit matchers authored in TypeScript or YAML and compiled before the harness runs.

EXPLAIN

Why it passed or failed

Evaluator-recorded evidence attached to every result, ready for inspection and comparison.

03 / DEFINE THE CHECKS

Turn instructions
into checks.

A dyno translates skill requirements into deterministic assertions. Each result connects a requirement to evidence captured during the run.

Read the assertion reference
Assertion checks and observed evidence
CHECKWHAT IT PROVESOBSERVED EVIDENCESTATUS
skill.referencedConsult the dyno authoring skilldyno-from-skill / SKILL.mdPASS
http.calledFetch the current authoring referenceconfig-authoring.md · status 200PASS
artifact.existsCreate the example dynodyno / example.dyno.mjsPASS
artifact.containsUse the Dynobox SDKdefineDyno · @dynobox/sdkPASS
command.notCalledDo not run the generated dynono dynobox run observedPASS
verify.commandValidate the generated dynodynobox validate · exit 0PASS

04 / BUILD A RECORD

Find the run where behavior changed.

Saved runs preserve the evidence. Compare a baseline against another run and see exactly which assertion changed.

Open the dashboard
dynobox/ dash
dyno-eng
COMPARE RUNS

create dyno from skill

1 REGRESSION
BASELINEPASSED
a48c920 dyno-from-skill · main
COMPARISONFAILED
f17bd44 dyno-from-skill · current run
verify.commandGenerated dyno passes validation
PASSED → FAILED
Baseline and comparison assertion evidence
BASELINEPASSED
COMPARISONFAILED
1dynobox validate wordcount.dyno.mjs
1dynobox validate wordcount.dyno.mjs
2exit code 0 · valid dyno
2+exit code 1 · invalid assertion

READY TO VERIFY

Trust the agent.
Verify the work.

Get started