Gate evidence
gate-manifest record and verify
A log line saying a gate passed is a claim. Gate evidence is an append-only record of each gate outcome that can be checked later. agb writes it with the ADLC CLI's gate-manifest tool into the target repo's .adlc/manifest.jsonl, and anyone can rebuild the history from that file alone with adlc gate-manifest verify.
What agb records
During agb run, the scheduler calls adlc gate-manifest record <gate> --ticket <id> --data <json> for these gates (lib/scheduler.mjs):
| Gate name | When | --data |
|---|---|---|
build | After the build and test gates in the ticket worktree | { ok, strikes } (lib/scheduler.mjs) |
prosecution | After the prosecution loop | { verdict, findings, dryPasses }, where findings is a count (lib/scheduler.mjs) |
post-merge-build | After the gates in the integration worktree | { ok } (lib/scheduler.mjs) |
rollback | When an integration fails before the base ref advanced | { reason }, truncated to 300 characters (lib/scheduler.mjs) |
Each call goes through the authenticated adlc binary with a 15-second timeout.
Audit, not enforcement
Recording is best effort. If adlc is missing or .adlc/ is not writable, recordGate returns { ok: false, error } and the run continues (lib/scheduler.mjs). A broken audit trail never fails a build or merge that otherwise succeeded. Enforcement gates such as rails-guard work the other way: they fail closed (see Rail enforcement).
.adlc/manifest.jsonl is runtime state. agb adds .adlc/* (keeping the ticket store, archive, specs and config.json tracked) to the target repo's .gitignore, so writing evidence mid-run does not make the repo look dirty (lib/worktrees.mjs). In session, the policy guard treats the manifest as an implicit rail, so agents cannot edit it (hooks/policy/constants.mjs).
Verifying
agb itself never calls verify. Run it yourself, from the target repo, to check the manifest:
npx adlc gate-manifest verifyYou can also add your own entries for gates you run by hand, such as a test run before opening a pull request:
npm test && npx adlc gate-manifest record tests --ticket T-EXAMPLE && npx adlc gate-manifest verifySigning and verification depend on your ADLC setup (for example ADLC_MANIFEST_KEY). agb strips that key from every worker's environment, so a builder cannot forge entries (lib/agy.mjs). For the command's flags, file format and key handling, see the @adlc/cli documentation.