verify
Verify Sandcastle
Verification is essential to how Sandcastle works. Sandcastle's job is a seam: a real agent CLI, in a real container, committing onto a real branch of a real repo, and cleaning up after itself. The test suite mocks every agent and every sandbox, so it proves the logic and nothing about those seams. A change is unfinished until a run proves it: reading code gives you a hypothesis, and only a run gives you a verdict. Run the suite and a world on every change.
Worlds
A world is one run's isolated playground. It lives under $TMPDIR/sandcastle-verify/<run id>/ and holds:
- a scratch git project with a commit on
main; - a local bare remote as its
origin; - the Sandcastle under test, packed and installed into the project as
@ai-hero/sandcastle, the way a user installs it; - a HOME and a TMPDIR (
<world>/tmp) of its own.
Inside a world you verify freely, as a user would: run sandcastle init, write prompts, commit, write a script that calls run(), run it twice, break it on purpose. Nothing you do reaches this checkout, Matt's HOME, or a real remote, and the ledger proves it.
npm run verify:world # builds dist, creates a world, prints its run id (alone on stdout)