gz adr status¶
Show focused OBPI progress, lifecycle status, and gate readiness for one ADR.
Usage¶
<ADR-ID> accepts full IDs (for example ADR-0.5.0-skill-lifecycle-governance) and
unique SemVer prefixes (for example 0.5.0 or ADR-0.5.0) when exactly one ADR ID
starts with that prefix.
Runtime Behavior¶
gz adr status is ledger-first and additive, with OBPI completion as the primary progress unit.
It keeps existing compatibility fields and adds derived semantics:
obpis(linked OBPI status rows includingruntime_state,proof_state,attestation_requirement,attestation_state,req_proof_state,req_proof_inputs,anchor_state,anchor_commit,current_head,anchor_issues,anchor_drift_files,tracked_defects,issue_details, andissues)obpi_summary(total,completed,incomplete,unit_status,outstanding_ids)lanelifecycle_statuscloseout_phaseattestation_termcloseout_initiatedvalidatedcloseout_readycloseout_blockersgate4_na_reason(when applicable)observed_post_validation_gate_failures: gates whose latest rawgate_checkedevent isfailafter the validated lifecycle epoch began. Lifecycle remains the authoritative source for thegatescell; the sidecar surfaces the underlying observation so QC readiness and--show-gatesannotate it instead of silently smoothing it away (GHI #411).
Default text output is OBPI-first and shows both closeout readiness and QC readiness.
QC readiness is fail-closed on OBPI completion: when linked OBPIs exist and unit status is not
completed, readiness is PENDING with OBPI completion in pending checkpoints.
Use --show-gates for full gate-by-gate diagnostics.
Lifecycle is derived from attested, closeout_initiated, and audit_receipt_emitted events.
OBPI-scoped receipts that carry adr_completion: not_completed remain accounting artifacts and do
not set ADR lifecycle to Validated.
If linked OBPIs exist but OBPI unit status is not completed, lifecycle is reported as Pending
even when ledger attestation/receipt events exist.
OBPI rows are resolved from linked ledger children plus on-disk briefs. Missing linked files are
reported explicitly so gaps are visible in a single ADR view.
Closeout readiness reuses the same OBPI runtime issues and reports BLOCKED until every linked
OBPI is closeout-ready.
Anchor-aware OBPI rows preserve completion counts separately from closeout blockers: a completed
OBPI can still surface drift issues when later changes touched its recorded scope or when its
receipt captured degraded git-sync state.
When a brief records local ## Tracked Defects bullets, closeout blockers and
human-facing issue strings annotate the linked GHI-* refs instead of
collapsing every blocker to the same generic symptom text. Each ref's state is
resolved against live GitHub state through gh at render time, never read from
the brief's own (open)/(closed) token — that token is a dated record of the
day the line was written (GHI #966). A resolved ref renders GHI-737 (closed);
when the brief's token disagrees with live state the token is named beside it,
in both directions: GHI-11 (closed; brief says open) for a GHI closed after
the line was authored, GHI-12 (open; brief says closed) for one reopened. A
ref that cannot be resolved — gh absent, unauthenticated, offline — renders
(unresolved) (or (unresolved; brief says closed)), never bare and never as
live: not having checked is not the same as having checked. Resolution costs
one gh call per distinct GHI cited under the ADR; the first failure switches
the resolver off for the rest of the run, so an offline drilldown pays one
failed call. In --json, each tracked_defects[] entry carries state
(open / closed / unresolved) and authored_state (the brief's token, or
null).
Anchor freshness does not downgrade a completed OBPI back to pending; it
remains completed or attested_completed while closeout_blockers stays
fail-closed until the anchor issue is reconciled.
The runtime model is additive and fail-closed:
- legacy receipts without explicit
req_proof_inputsare backfilled from substantive briefKey Proof - missing or placeholder proof/evidence keeps the OBPI in a non-complete runtime state
- heavy/foundation completion requires human-attestation proof before
attested_completed