Use to mine ../airlineops for governance habits gzkit lacks; produces a parity scan report (gzkit leads, AirlineOps adopts).
日本語の概要は準備中です。原文の説明を表示しています。
Use for an ADR's Gate-5 audit; provides the audit templates and procedure.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Execute reproducible ADR verification to move from COMPLETED → VALIDATED.
Active driver: pipeline-orchestrator — read .gzkit/personas/pipeline-orchestrator.md and adopt its behavioral identity before executing this skill. The audit is a sequenced ceremony (verify proof → reproduce → run the fidelity gate); step-discipline and ceremony-completion are not rules to follow — they are who you are while running it.
The audit is read-only judgment work — a single driver scoring its own findings is the optimistic-bias failure mode spec-reviewer's anti-traits literally name. Dispatch the following personas as independent subagents to produce the evidence the driver synthesizes:
| Persona | Function in this ceremony | Invoked at |
|---|---|---|
spec-reviewer | Independent requirement-tracing against ledger proof; verifies each OBPI's claimed REQ coverage holds against a fresh read of brief and tests | Steps 1–2 (Verify Ledger Proof, Reproduce Key Evidence) |
quality-reviewer | Independent assessment of the ADR package's structural coherence: do the OBPIs cohere into the ADR's claimed capability, or is the integration brittle? | After Step 2, before Step 3 |
narrator | Frames the Step 4 audit documentation (AUDIT.md) in operator-value terms; the Step 3 fidelity gate is now bound and runs itself — no prose value-demonstration to compose | Step 4 (Document) |
Personas not dispatched: implementer (no code written in this ceremony — if audit reveals a defect requiring code, file a GHI via /ghi-author and route to a fresh OBPI brief, never spawn an implementer inside the audit).
This ceremony has no artifact channel for these dispatches — they are unattested and undisclosed (GHI #770's named residual), and the receipt machinery that would record them is not yet authored (GHI #846; ADR-pool.obpi-pipeline-dispatch-attestation is Superseded into ADR-0.0.73, which delivered no receipts). Treat the mandate as binding on you, not as something a gate will catch.
Persona doctrine reference: ADR-0.0.11-persona-driven-agent-identity-frames (Validated).
| Thought | Reality |
|---|---|
| "All OBPIs passed individually, the ADR is obviously complete" | Individual OBPI completion doesn't prove ADR-level integration. The audit verifies the whole. |
| "Tests pass and coverage is met, the audit is done" | That's verification, not fidelity. Step 3 (Fidelity Gate) runs the ADR's thesis against the running system, not just its tests. |
| "The closeout ceremony already covered this" | Audit and closeout invoke the same bound fidelity gate; running one satisfies the other's fidelity step. Mechanical checks (Step 1-2) are still independent. |
| "Ledger entries exist from a previous audit, I can skip re-verification" | Check staleness. Entries older than 7 days or predating code changes require fresh verification. |
| "This is a Foundation ADR, the audit can be lighter" | Foundation ADRs run the same fidelity gate. The thesis is held against the running system. |
uv run gz adr report to confirm lifecycle changeThis is a Layer 2 tool — it consumes proof from the ledger rather than re-running verification commands.
Trust Chain:
gz-obpi-sync, the OBPI pipeline) run tests, check coverage, validate evidencegz adr audit-check) — if all briefs show PASS/Completed, skip re-verificationWhy trust the ledger?
When to force re-verification:
In these cases, run uv run gz audit <adr-id> first to regenerate ledger proof.
assets/AUDIT_PLAN.template.md — Plan scaffold (scope, checks, risk focus)assets/AUDIT.template.md — Annotation shell (✓/✗/⚠, summary, attestation)Prerequisite: ADR is COMPLETED (all briefs done, tests/coverage/docs pass).
Each Bash invocation starts a fresh shell, so do NOT export shell
variables across calls. Inline the full ADR directory path in every
command so each Bash call is self-contained. Substitute the real ADR
directory (e.g. docs/design/adr/foundation/ADR-0.0.16-foo-slug) for the
placeholder below.
mkdir -p docs/design/adr/<kind>/ADR-x.y.z-slug/audit/proofs
audit/AUDIT_PLAN.md with checks for each claimuv run gz cli audit for governance issuesdocs/design/audit/** remains historical only; new audits live under the ADR folder.Before running any commands, check ledger proof:
uv run gz adr audit-check <adr-id>
If ledger is complete (all briefs PASS):
If ledger is incomplete or missing:
Audit-check failure has two causes that look identical at the CLI but require opposite remediation. Diagnose before editing:
.gzkit/rules/tests.md § Red-Green-Refactor), then decorate it with
@covers(REQ-X.Y.Z-NN-MM). Re-run uv run gz audit <adr-id> to write fresh
ledger entries, then return to Step 2..gzkit/rules/tests.md
§ Red-Green-Refactor (Tests assert semantics, not strings).
Backfilling a cosmetic @covers decorator without re-deriving the
assertion is the forbidden anti-pattern — it silences gz adr audit-check
while leaving the semantic gap intact.After remediation, re-run uv run gz audit <adr-id> to write fresh ledger
entries, then return to Step 2.
Force re-verification (optional):
If you need to regenerate proof (staleness, suspicion, etc.), run the validation commands:
Inline the full ADR directory path, as in Step 1:
uv run gz test > docs/design/adr/<kind>/ADR-x.y.z-slug/audit/proofs/unittest.txt 2>&1
uv run mkdocs build --strict > docs/design/adr/<kind>/ADR-x.y.z-slug/audit/proofs/mkdocs.txt 2>&1
uv run gz closeout <adr-id> --dry-run > docs/design/adr/<kind>/ADR-x.y.z-slug/audit/proofs/gates.txt 2>&1
Record ✓/✗/⚠ outcomes for each check.
An audit that only verifies mechanical checks (tests pass, coverage met) without holding the ADR's thesis against the running system is incomplete.
This step is a bound, runnable gate, not prose: the audit ceremony invokes the SAME standalone fidelity gate the closeout ceremony invokes (one gate, two consumers — gzkit.fidelity.assert_fidelity_for_ceremony). gz audit runs it automatically; you do not narrate it.
What the gate does:
uv run gz adr fidelity <ADR-ID>
It parses the ADR Decision's ## Fidelity Assertions block and RUNS each assertion's command against the committed tree — a detached worktree at HEAD, so uncommitted files cannot satisfy it and its commands cannot write to the live checkout; no buildable worktree fails closed (GHI #1156) — comparing observed vs expected exit. A failed assertion blocks the audit (exit 3) before any validation receipt is written — a red thesis cannot record a false validated.
Absence policy (graceful migration, OBPI-0.0.73-04): an ADR that carries no ## Fidelity Assertions block is flagged with a warning (the prose 'Demonstrate Value' step is gone — absence is surfaced, not papered over with agent prose) but does not hard-block the in-flight audit. Hard presence-enforcement lives at ADR closeout (ADR-0.0.73 Boundary Invariant #4) and the new-ADR template. The back-fill of fidelity blocks onto already-VALIDATED ADRs is a separate forced sweep.
Authoring duty: if the ADR under audit has no block yet, author a ## Fidelity Assertions table (claim / command / expected-exit rows that exercise the ADR's thesis) before closeout — do not substitute prose.
Relationship to closeout ceremony: both ceremonies invoke the identical gate, so running one satisfies the other's fidelity step. There is no separate prose demonstration to write in either path.
Populate audit/AUDIT.md with:
Review for:
For each shortfall:
Implement fixes, re-validate, update AUDIT.md.
When all shortfalls resolved:
AUDIT.md; the operator's acceptance in Step 8 is the attestation — the agent does not sign for themAfter a successful audit the agent emits the validated receipt. The
operator's verbatim audit acceptance, relayed via the --evidence-json
attestation_text field, IS the Gate-5 attestation — there is no TTY
ATTEST gate. The gz adr audit-begin / gz adr audit-end pair brackets
the audit ceremony as a distinct operator moment. Steps:
Open the ceremony. uv run gz adr audit-begin <adr-id> — writes
the per-ADR co-presence marker at
.claude/plans/.pipeline-active-<adr-id>.json. The marker is
written by the gzkit CLI itself, not by hand; the slash-command
entry-point chain (operator typed /gz-adr-audit → skill ran
audit-begin) is the legitimate co-presence proof the runtime
accepts.
Operator verbal attestation. Wait for the operator's verbal
ack — accept audit or verify audit. This is the ADR
audit-validation acceptance, not OBPI Gate-5 closeout (which
already happened on each linked OBPI; by the time /gz-adr-audit
runs, every linked OBPI is attested_completed in the ledger).
The audit ceremony is a distinct operator moment — accepting the
audit's verification of the integrated ADR (ledger proof complete,
fidelity gate ran, no shortfalls remain) — and wants its
own phrasing so the ledger's attestation_text field is
self-documenting. The verbal ack IS the Gate-5 human-attestation
event; the agent relays it into the ledger receipt.
Emit the receipt.
uv run gz adr emit-receipt <adr-id> --event validated \
--attestor "g0" \
--evidence-json '{"gate":5,"tests_passed":true,"tests_count":...,
"scope":"<adr-id>","date":"<YYYY-MM-DD>",
"attestation_text":"<operator verbatim ack> — <agent enrichment>"}'
The receipt records evidence.attestation_type=operator-verbatim-conversational
from the attestation_text field — the operator's verbatim acceptance is
the Gate-5 attestation.
Close the ceremony. uv run gz adr audit-end <adr-id> —
removes the marker. Marker hygiene matters: leaving it behind
would let a second emit succeed without a fresh operator
invocation, defeating the co-presence proof.
Rules:
g0 — never the operator's real name and never
their personal email (AGENTS.md § Execution Rules, Operator PII). Do
not use agent:<model-id> — validated/attested/
accepted are human-attestation events and the ledger receipt
records the operator on whose behalf the agent is relaying.audit-begin with audit-end.
If the emit fails for any reason, still run audit-end so the
next ceremony starts clean.gz adr audit-begin CLI
verb — hand-fabricating the marker file bypasses the ceremony
entry-point.MANDATORY. After emitting the receipt, confirm the lifecycle change took effect before declaring success:
uv run gz adr report <adr-id>
The Lifecycle column MUST show Validated. If it still shows Completed,
the audit is not done — investigate why the state did not propagate. Do not
report success to the operator until the report command confirms the change.
Recommended evidence fields:
| Field | Type | Description |
|---|---|---|
gate | int | Gate number (e.g., 5) |
tests_passed | bool | Whether unit tests passed |
coverage_pct | float | Coverage percentage |
briefs_completed | int | Number of briefs completed |
shortfalls_resolved | int | Number of shortfalls fixed |
| Type | Command | Layer |
|---|---|---|
| Ledger check | uv run gz adr audit-check <adr-id> | L2 |
| Ledger check (JSON) | uv run gz adr audit-check <adr-id> --json | L2 |
| ADR lifecycle summary | uv run gz adr status <adr-id> --json | L1 |
| Unit tests | uv run gz test | L1 |
| Docs build | uv run mkdocs build --strict | L1 |
| Governance | uv run gz cli audit | L1 |
| Config paths | uv run gz check-config-paths | L1 |
| Heavy gates | uv run gz closeout <adr-id> --dry-run | L1 |
| OBPI reconcile | uv run gz audit <adr-id> | L1+L2 |
| Coverage discovery | uv run gz covers <adr-id> | L1 |
| Open audit ceremony | uv run gz adr audit-begin <adr-id> — writes per-ADR co-presence marker. | L1 |
| Emit receipt | uv run gz adr emit-receipt <adr-id> --event validated --attestor "g0" --evidence-json '{...,"attestation_text":"<operator verbatim ack>"}' after operator's verbal accept audit / verify audit (NOT OBPI-closeout attest completed). | L2 |
| Close audit ceremony | uv run gz adr audit-end <adr-id> — removes marker. | L1 |
Layer key: L1 = runs verification, L2 = reads ledger proof
When to run evidence checks:
gz closeout, gz attest, or gz audit/gz-adr-closeout-ceremony)COMPLETED (Phase 1):
VALIDATED (Phase 2):
uv run gz adr report <adr-id> shows Validatedgz-adr-audit and gz-adr-closeout-ceremony are complementary but independent:
| Concern | gz-adr-audit | gz-adr-closeout-ceremony |
|---|---|---|
| Focus | Evidence verification + bound fidelity gate | Human-witnessed runbook walkthrough + bound fidelity gate |
| Mode | Agent-driven with human attestation | Human-driven with agent presenting |
| Outputs | AUDIT.md + proofs/ + ledger entries | Closeout form + attestation record |
| Fidelity gate | Step 3 (gz adr fidelity, bound) | EXECUTE→ATTESTATION edge (same gate, bound) |
Both invoke the same bound gate (assert_fidelity_for_ceremony) — one gate, two consumers. Running either ceremony exercises the ADR's ## Fidelity Assertions against the running system; there is no separate prose value-demonstration to write or duplicate.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use to mine ../airlineops for governance habits gzkit lacks; produces a parity scan report (gzkit leads, AirlineOps adopts).
日本語の概要は準備中です。原文の説明を表示しています。
Use to file a GitHub issue when a finding needs its own work order or the operator asks; OBPI corrections stay in its change log.
日本語の概要は準備中です。原文の説明を表示しています。
Use to do the work a GHI describes, verify it and close the issue with evidence in one sweep.
日本語の概要は準備中です。原文の説明を表示しています。
Use to triage the open GHI queue before planning or choosing what to pull; produces a ranked deliverable.
日本語の概要は準備中です。原文の説明を表示しています。
Run the guarded repository sync ritual; commit-time hooks enforce the cheap gates and the pre-push hook runs gz check.
日本語の概要は準備中です。原文の説明を表示しています。
Run the guarded repository sync ritual; the hooks your pre-commit config declares enforce the quality gates.
日本語の概要は準備中です。原文の説明を表示しています。