Use to mine ../airlineops for governance habits gzkit lacks; produces a parity scan report (gzkit leads, AirlineOps adopts).
日本語の概要は準備中です。原文の説明を表示しています。
Use when exiting plan mode or before implementing to verify ADR intent, OBPI scope and plan agree.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Pre-flight alignment audit that catches misalignment before implementation begins. The operator runs this after plan mode produces a plan, verifying three artifacts agree:
ADR (intent) <-> OBPI brief (scope) <-> Plan (execution steps)
Misalignment between these artifacts is the root cause of wasted implementation work: building the wrong thing, missing requirements, or solving problems the ADR did not ask for. This audit catches that drift before a single line of code is written.
Typical workflow:
/gz-plan-audit OBPI-X.Y.Z-NN and audits ADR <-> OBPI
alignment. If no plan exists yet, the plan audit is skipped..claude/plans/./gz-plan-audit OBPI-X.Y.Z-NN again after planning.gz-obpi-pipeline.The receipt and its consumers:
uv run gz plan audit writes the receipt, one per OBPI: .claude/plans/.plan-audit-receipt-{OBPI-ID}.json
(pipeline_receipt_path). The bare .plan-audit-receipt.json is the legacy
name; readers still accept it as a fallback, nothing writes it.plan-audit-gate.py blocks ExitPlanMode without a valid receipt;
pipeline-router.py routes a PASS receipt into gz-obpi-pipeline, which reads
it at Stage 1.Active persona: main-session — read .gzkit/personas/main-session.md and adopt its behavioral identity before executing this skill. Alignment auditing is skeptical comparison, not optimistic scanning. If the ADR says X and the brief says Y, that is a gap — not an interpretation difference.
These thoughts mean STOP — you are about to skip a critical alignment check:
| Thought | Reality |
|---|---|
| "The brief requirements are clear enough to skip the audit" | Clarity is not alignment. The audit catches drift between ADR intent and brief scope that no amount of reading catches. |
| "I already read the ADR and brief, they match" | Reading is not auditing. The structured comparison catches gaps that casual reading misses every time. |
| "There's no plan yet, so I'll skip the audit entirely" | The ADR-to-OBPI alignment check runs without a plan. Skip plan checks only — the ADR alignment is still required. |
| "The plan-audit hook will catch problems later" | The hook enforces receipt existence, not alignment quality. This skill provides the quality check the hook cannot. |
| "This is a small OBPI, alignment is obvious" | Small OBPIs drift more, not less. Brief constraints are easy to miss when scope feels trivial. |
| "The ADR hasn't changed since the brief was written" | ADR stability does not guarantee brief fidelity. Briefs are authored under time pressure and miss intent regularly. |
.claude/plans//gz-plan-audit OBPI-X.Y.Z-NN
Run before planning for ADR <-> OBPI alignment and again after planning for Plan <-> OBPI alignment.
Layer 1 - Evidence Gathering. See
docs/governance/GovZero/layered-trust.md.
.claude/plans/, and relevant
codebase files| Parameter | Required | Description |
|---|---|---|
obpi_id | Yes | OBPI identifier, for example OBPI-0.12.0-07 |
adr_id | No | Parent ADR identifier; derive from OBPI ID if omitted |
plan_path | No | Path to a plan file in .claude/plans/; auto-discover if omitted |
.claude/plans/.plan-audit-receipt-{OBPI-ID}.json, written by the CLI in Step 1uv run gz plan audit OBPI-X.Y.Z-NN
This runs deterministic prerequisite checks (ADR exists, brief exists, plan
file found, path overlap validation) and writes the receipt to
.claude/plans/.plan-audit-receipt-{OBPI-ID}.json. If PASS and no semantic
review is needed, the skill is done. If FAIL, review the gaps and continue
with manual alignment checks below.
Locate and read the parent ADR under docs/design/adr/. Extract:
Locate and read the brief from either of these layouts:
docs/design/adr/**/obpis/OBPI-{id}-*.mddocs/design/adr/**/briefs/OBPI-{id}-*.mdExtract:
Compare the brief against its parent ADR checklist item:
| Check | Question |
|---|---|
| Objective match | Does the brief objective match the ADR checklist item's intent? |
| Scope match | Are the brief allowed paths consistent with the ADR integration points? |
| Requirements coverage | Do the brief requirements cover what the ADR checklist item implies? |
| Lane consistency | Does the brief lane match the parent ADR lane? |
| Attestation rule | Gate 5 attestation is universal (ADR-0.0.36) — does the brief avoid claiming an exemption from it? |
| No scope creep | Does the brief avoid adding requirements not present in the ADR? |
| No scope gap | Does the brief avoid omitting requirements present in the ADR? |
Record each check as Aligned, Drifted, or Missing.
Auto-discover the plan file from .claude/plans/:
.claude/plans/*.md for files referencing this OBPI ID.plan_path was provided explicitly, use that instead.No plan found and skip Steps 6 and 6a.Extract:
Compare the plan against the brief:
| Check | Question |
|---|---|
| OBPI reference | Does the plan reference the correct OBPI brief? |
| Requirements coverage | Does every brief requirement appear as a plan step? |
| Allowed paths | Does the plan only touch files in the brief allowlist? |
| Denied paths | Does the plan avoid files in the brief denylist? |
| Verification | Does the plan include the brief verification commands? |
| No gold-plating | Does the plan avoid extra work not required by the brief? |
| Feasibility | Based on current codebase state, are the plan steps achievable? |
The "destination-first" failure mode: the agent explores deeply, forms a conclusion, and only then authors the plan. The plan that results is a reconstruction of a destination already chosen — the audit passes because the plan matches the exploration, but the exploration was already motivated reasoning (Lindsey et al. 2025, rhyme experiment).
Self-introspection is not a verification pathway. Per docs/governance/arb-middleware.md
§ Why receipts, not narrative and Lindsey et al. 2025, the reporting pathway and the execution pathway are
structurally separate — a post-hoc answer to "did I enter plan mode early?"
is reconstruction, not observation. Until the receipt-stream is available,
this step requires the agent to record two narrative disclosures regardless
of perceived ordering:
The fields are required in narrative form — not as checkboxes. Empty or cosmetic answers are themselves a failure signal.
Mechanical enforcement — counting pre-ExitPlanMode tool calls from the
session transcript and wiring concrete thresholds into gz plan audit — is
deferred to a dedicated receipt-stream GHI; until then this step produces
disclosure, not verification.
Use this structure:
## ADR <-> OBPI Alignment
| Check | Status | Detail |
|-------|--------|--------|
| Objective match | Aligned / Drifted / Missing | [specifics] |
| Scope match | ... | ... |
## Plan <-> OBPI Alignment
| Check | Status | Detail |
|-------|--------|--------|
| Requirements coverage | Aligned / Drifted / Missing | [specifics] |
| Allowed paths | ... | ... |
## Gaps Found
1. [specific gap with file:line citation]
## Recommendations
1. [specific action]
## Verdict
PASS - All checks aligned, safe to proceed with implementation.
FAIL - N gaps found. Fix alignment before implementing.
The receipt already exists: Step 1's gz plan audit wrote it, with these fields
(plus gaps and scope_collisions when present):
{
"obpi_id": "OBPI-X.Y.Z-NN",
"timestamp": "2026-03-12T12:00:00Z",
"verdict": "PASS",
"plan_file": "shimmering-beaming-sonnet.md",
"gaps_found": 0
}
If Steps 2–6 found gaps the CLI's structural checks did not, rewrite that same
file with verdict: FAIL and the true gaps_found — the CLI has no flag for a
semantic verdict, and a PASS receipt over a failed audit routes the pipeline.
Receipt contract:
verdict must be PASS or FAILplan_file should name the plan that was auditedThe audit produces a report and receipt. Fixing alignment is a separate action — never bundled into the audit pass.
Return control to the caller:
gz-obpi-pipeline as a sub-step: control returns to Stage 1
(which goes on to the lock claim) and Stage 2 (implementation) begins in the
same turn. Do NOT end the turn — that violates the pipeline's Iron Law.Active enforcement contract for gzkit:
.claude/hooks/plan-audit-gate.py.claude/hooks/pipeline-router.py.claude/settings.json.gzkit/skills/gz-obpi-pipeline/SKILL.md (Stage 1)The operator still invokes /gz-plan-audit manually. The gate's logic lives in
plan-audit-gate.py, not here: it finds the newest plan, extracts its OBPI ids,
and blocks plan exit unless a receipt exists for that OBPI, is newer than the
plan file, and carries a PASS or FAIL verdict. A plan that references no
OBPI is allowed through.
| Failure | Cause | Resolution |
|---|---|---|
| ADR not found | ADR ID incorrect or structure mismatch | Verify ADR ID; search docs/design/adr/ |
| Brief not found | OBPI ID typo or brief missing | Check obpis/ and briefs/ layouts |
| Brief lacks required sections | Incomplete or non-standard brief | Report as an alignment gap |
| No plan file found | Plan mode not run yet or no matching plan exists | Audit ADR <-> OBPI only and skip plan checks |
| Multiple plan files match | Several plans reference the same OBPI | Use the newest plan and note ambiguity |
| ADR checklist item ambiguous | Checklist item text is vague | Flag an ADR defect and recommend clarification |
gz-obpi-pipeline sub-step.gzkit/skills/gz-obpi-pipeline/SKILL.md.gzkit/skills/gz-obpi-sync/SKILL.md.gzkit/skills/gz-session-handoff/SKILL.mddocs/design/adr/pre-release/ADR-0.12.0-obpi-pipeline-enforcement-parity/claude-pipeline-hooks-parity-matrix.mdまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。