ADLC
Toolkit

prosecute

A P5 review-evidence recorder. It validates, hashes, and records ticket- and revision-bound reviewer findings, and passes only after two dry passes across three lenses.

prosecute

ADLC phase: P5 Prosecute · Gate: two consecutive dry passes across at least three distinct lenses are recorded before a change may merge.

The ADLC lifecycle, with P5 highlighted. Read the theory for P5

What it defends against

F2: Sycophancy (theory ↗)

prosecute is a recorder, not a reviewer. It makes zero model calls and finds no bugs of its own. The model-judged skeptical review is a separate tool (npx adversarial-review, which adlc review wraps); adlc prosecute consumes that review's output as evidence. It validates the findings, hashes and binds them to the ticket and reviewed revision, and appends normalized pass records to .adlc/manifest.jsonl. It passes only after two consecutive dry passes covering three distinct lenses, so a single sycophantic "looks good" cannot stand in for a real prosecution. The recorded evidence is what P6 later checks.

Note the binary is adlc-prosecute (registry binName) but it dispatches as adlc prosecute.

Usage

adlc-prosecute --input <passes.json> --ticket id [--target label] [--revision rev] [--dir .adlc] [--json]
FlagDescription
--input <passes.json>(required) Normalized reviewer-produced pass evidence to record.
--ticket id(required) Ticket the evidence is bound to; must be referenced by the transcript.
--target labelHuman-readable label for what was reviewed (e.g. feature branch).
--revision revReviewed revision string; defaults to git-worktree:<hash>.
--dir pathLedger directory (default .adlc).
--jsonMachine-readable result.
--helpShow usage and exit 0.

Evidence files (transcript, prompt, inputs) that resolve inside the worktree must live under .adlc/ or .omo/evidence/, and the transcript must reference both the ticket and the resolved revision. These are trust-boundary controls against faked review evidence.

Exit codes

0: two consecutive dry passes were recorded.1: operational error (unreadable input, missing --ticket, bad evidence path).2: verified or needs-human findings remain, or the convergence budget ended before two dry passes.

Example

$ adlc-prosecute --input p5-passes.json --ticket T1 --dir .adlc
recorded 2 consecutive dry passes across 3 lenses (security, correctness, tests)
exit 0

Go deeper

On this page