Legislate
A Planner runs `gantry legislate` to write scope in `.gitagent/missions/MSN-XXXX.yaml` and commits `[MSN-XXXX]`.
OpenGantry is not a certification. It is a local evidence engine: every mission leaves a chain in Git that a reviewer can open without trusting IDE chat or a hand-waved “passed locally.”
Chain
If the gate fails, a quote is missing, or an anchor is wrong, verify fails closed. Nothing passes because a model said so.
A Planner runs `gantry legislate` to write scope in `.gitagent/missions/MSN-XXXX.yaml` and commits `[MSN-XXXX]`.
An executor edits only inside TMVC roots declared in the Mission YAML.
Evidence lands in `EXECUTOR_LOG.md` as verbatim PASS quotes tied to DoD rows.
`gantry verify` checks the gate command and maps every claimed PASS to a real quote. Fail closed.
The Planner (allowlisted in GANTRY_PLANNER_EMAILS) owns mission law and Planner
commits. The executor does the edits. The verifier is gantry verify — separate
from whoever did the work. Rule 4.4 treats a PASS claim without a matching
EXECUTOR_LOG.md quote as evidence tampering.
Evidence
Regulated and security-sensitive teams get asked one question: can you prove the agent was authorized, stayed in scope, and ran your gates? The tabs below contrast what assessors reject vs what they can actually replay from Git.
Assessors and incident reviewers need artifacts they can grep, diff, and replay. IDE chat approval, a green screenshot, or “the agent said it passed” are not bound to declared scope, not signed by your Planner workflow, and not tied to a deterministic gate. You cannot prove what ran, what changed, or who authorized it.
Strong evidence is a chain a skeptical reviewer can open in five minutes: a Planner `[MSN-XXXX]` commit that legislates mission YAML, edits confined to declared TMVC roots, verbatim gate output quoted in `EXECUTOR_LOG.md`, and `gantry verify` pass (or structured failure JSON) that maps every PASS claim to a real quote. Retention, signing, and branch policy follow your normal Git controls.
Review
Scope, gate command, trace rows — the law for one MSN.
`[MSN-XXXX]` in the subject — who authorized the change.
Verbatim PASS quotes tied to DoD rows.
Gate result and structured failures from `gantry verify --json`.
Digest-only outcome under `.gitagent/history/receipts/` (optional `--sign`).
Output
{
"status": "passed",
"envelope_schema_version": 3,
"phase": "full",
"msn_id": "MSN-0042",
"mission_file_path": ".gitagent/missions/MSN-0042.ship-feature.yaml"
} {
"envelope_schema_version": 3,
"failed_gate": "arch",
"offending_file": "src/core/auth.ts",
"line": 12,
"severity": "error",
"resolution_hint": "Import crosses layer boundary per TARGET_ARCHITECTURE.yaml"
} gantry attest and gantry verify --receipt write schema-stable JSON
receipts under .gitagent/history/receipts/ (git-ignored). Payloads contain digests
and outcomes only — no source file bodies.
gantry receipt list gantry receipt show MSN-0042
Default flight telemetry is hash-only (chunk_sha256 + byte counts, no raw gate
stream bodies). Use gantry doctor --policy <expected-digests.json> offline
to compare MANIFEST, TARGET_ARCHITECTURE.yaml, and config digests.
OpenGantry does not replace your QMS, pen test, or auditor. It gives you developer-native
artifacts you can attach to control narratives. For SOC 2 change management, mission commits
plus verify JSON show scoped, gated changes instead of opaque agent edits. For ISO/IEC 27001
logging themes, Git history plus EXECUTOR_LOG.md plus deterministic gates read as
a reproducible audit log.
Certification outcomes still depend on policies, access control, infra, and training across the whole environment.
gantry verify --break-glass --reason "..." exists for emergencies. It is
explicit, reasoned, and note-backed. Forbidden-zone policy is never bypassed.