Quickstart
Sigil sits between your coding agent and your merge queue. It deploys the PR and a baseline to ephemeral Docker environments, runs sealed Lua scenarios against both, and emits an auditable decision.
Prerequisites
Section titled “Prerequisites”- A
sigilbinary on yourPATH— see Installation - Docker + docker compose
- A service with a
docker-compose.ymlyou can point Sigil at - At least one LLM provider configured for judge scenarios (Ollama, OpenAI, Anthropic, or OpenRouter)
The full loop
Section titled “The full loop”# 1. initialize — creates sigil.toml and .sigil/ layoutsigil init --service api
# 2. write a scenariomkdir -p .sigil/scenarios/api/visible/smoke$EDITOR .sigil/scenarios/api/visible/smoke/health.lua
# 3. lint and type-checksigil scenario lintsigil generate-types # writes .sigil/types/sigil.lua for editor autocomplete
# 4. run eval against a PR ref and baselinesigil eval pull/42/head --service api
# 5. decide — emits exit 0 (ALLOW) / 1 (REVIEW) / 2 (BLOCK)sigil decide pull/42/head --service apiA minimal health-check scenario:
-- .sigil/scenarios/api/visible/smoke/health.luareturn { title = "Service responds to /health", priority = "P0", policy = { capabilities = {"http"} },
run = function() local res = sigil.get("/health") expect(res.status == 200) expect(res.json.ok == true) end,}What just happened
Section titled “What just happened”sigil evalresolvedpull/42/headto a content-addressed image digest, then deployed a PR environment and a baseline environment side by side.- It decrypted the scenario bundle (visible + holdout) and executed each scenario against both environments.
- It computed a baseline-relative satisfaction score and appended
eval.complete+eval.decisionevents to the git-backed ledger. sigil decideloaded the latest eval, checked trust level, ledger freshness, and invariants, then emitted the decision.
Next steps
Section titled “Next steps”- Read Dark Factory to understand why the agent never sees holdout scenarios.
- Read Trust Model to configure earned-autonomy thresholds.
- Read Writing Scenarios for the full Lua DSL.
- Read CI Integration to wire Sigil into GitHub status checks.