@handsealed/engine
v0.25.0
Published
Handsealed's deterministic trust rules: lanes, mandate binding, scope ceilings, evidence classes, verdicts.
Readme
@handsealed/engine
The offline judge: every Handsealed rule as pure computation over the
Facts contract. No git,
no filesystem, no network — the same composition runs in a CLI, a CI job, or
a serverless worker, and always returns the same verdict for the same range.
npm install @handsealed/engineimport { judge } from "@handsealed/engine";
import { createGitFacts } from "@handsealed/facts-git";
const verdicts = await judge(createGitFacts("."), baseSha, headSha);
console.log(verdicts.overall); // "pass" | "fail"What it holds:
- Formats — the frozen mandate grammar (
parseSpec/printSpec), the.handsealed.ymlconfig, and thehandsealed-results.jsoncontract. - Rules — lane classification, mandate binding (exactly one byte-clean
status flip), scope ceiling, evidence class, acceptance markers
(
[slug#n]), suite cardinality, the re-approval fact, and revert checks. - Verdicts —
pass/fail/info/attentionper rule, with deterministic markdown and stable JSON rendering.
The judging config is read at the base commit, so a change can never edit its own rulebook; delivered mandates are immutable history and can never be reopened.
Part of Handsealed. Apache-2.0.
