Use to mine ../airlineops for governance habits gzkit lacks; produces a parity scan report (gzkit leads, AirlineOps adopts).
日本語の概要は準備中です。原文の説明を表示しています。
Use before implementing a GHI, OBPI or draft when direction or scope is unsure; renders a reasoning scaffold.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Pre-execution reasoning walkthrough. Run it when scope is unclear, when an integration point is unresolved, when you are relying on a surface you have not read, or when a prior evaluation (gz-adr-evaluate) flagged structural weakness. The verb renders a grounded scaffold from anchor evidence; the skill instructs you to fill it honestly, not to invent.
Self-Escalation (opus-tier). The dialogue with the operator stays in the main session: a subagent cannot ask the operator a question or hear the answer, and what the operator adds is this skill's primary input. When the session model is below opus-tier, you may spawn an
Agentwithmodel="opus"for a bounded drafting or QC track that needs no operator input — pass the operator's words verbatim and the relevant context (ADR IDs, OBPI IDs, prior decisions), and treat what it returns as a draft you verify, not as the operator-facing result.
Agents proceed on unstated assumptions instead of reading or asking more than they break any other behavioral rule (AGENTS.md § Operator Doctrine: a search is not a read; stop and ask the operator in case of uncertainty). The cost is confident-wrong-direction work — implementations that burn context and get discarded because an unstated assumption was wrong.
gz justify <anchor> closes the loop mechanically. It:
---, with each reasoning block pre-populated with the gathered evidence and a _[To be filled]_ prompt.gz justify validate <file>.This skill is the operator-facing ritual that turns the verb into discipline: it tells you when to invoke, how to fill, and what counts as fabrication.
Each row pairs the rationalization with the honest rebuttal.
| Rationalization | Rebuttal |
|---|---|
| "I already understand the brief — writing a walkthrough is busywork." | If you understood the brief you could fill all eight sections in under three minutes. Do so, and you have evidence. Skip, and you have a story. |
| "The anchor is obvious; I'll justify later." | Later means after a wrong-direction pass has already been committed. The walkthrough's value is pre-execution; post-hoc it is narrative. |
| "My previous anchor is similar enough." | Similar is not the same. Rerun justify on this anchor; let the evidence tell you what's different. |
| "I'll fill it in if the operator asks." | Then the walkthrough is theater for the operator, not evidence for you. Fill it for your own execution. |
Stop if any of the following apply. Each is a defect, not a judgment call.
| Red Flag | Why it's a defect |
|---|---|
| You are about to fabricate a filled reasoning block — invent a rule citation, synthesize a commit reference, paraphrase an anchor quote that isn't actually there. | Fabrication poisons the trust chain. The walkthrough becomes a reporting-pathway artifact (Lindsey et al. 2025) that is structurally separate from execution — exactly the failure mode docs/governance/arb-middleware.md § Why receipts, not narrative names. If the evidence isn't there, write _[No evidence in gathered sources]_ instead of inventing. |
| You are copy-pasting reasoning from a previous walkthrough and retargeting it to this anchor. | Cross-anchor reuse is the adjacent rationalization the CLI was built to prevent. If two anchors really do share reasoning, cite the first walkthrough's artifact path — don't restate the reasoning. |
| You are filling blocks before reading the anchor body the CLI embedded in Section 1. | Section 1 pre-populates anchor-body citations specifically so your reasoning can ground in them. Skipping the read step is the defining move of vibe coding (see AGENTS.md § DO IT RIGHT, items 2 (6b) and 5 (6e)). |
You are declaring the walkthrough complete without running gz justify validate <file>. | The validator checks structural completeness (no unfilled ordinals). Skipping it means the artifact can silently ship with _[To be filled]_ still in the body. |
| You feel sure, but cannot point to a specific surface you read that supports the plan. | Subjective confidence without evidence is the rationalization the walkthrough exists to neutralize. Run the CLI anyway; if the walkthrough genuinely takes 90 seconds because the anchor is that clear, you've spent 90 seconds and have a cite-able artifact. |
Active persona: main-session — craftsperson, governance-aware, whole-file-reasoning, direct. See .gzkit/personas/main-session.md. The walkthrough is whole-file-reasoning applied to a single change instance: you see the anchor and its evidence as one unit before you touch a line.
gz justify is Layer 1 — evidence gathering. The CLI does not make reasoning claims on your behalf; it assembles the grounding surface you need to make them. Filling the walkthrough is co-authorship between the CLI (evidence) and the agent (reasoning). The filled artifact becomes durable evidence consumable by downstream governance — plan-audit receipts, OBPI brief verification, ADR closeout walkthroughs.
The contract is one-way: the CLI promises byte-stable scaffolds (identical input produces identical output; see gzkit.justify.walkthrough.render_markdown). You promise that every filled block grounds in the evidence the CLI gathered.
Default rendering (stdout):
uv run -m gzkit justify GHI-195
uv run -m gzkit justify OBPI-0.0.19-04-skill-and-upstream-integrations
Persist the scaffold (auto-path artifacts/justify/<slug>-<timestamp>.md):
uv run -m gzkit justify GHI-195 --save
Persist to an explicit path:
uv run -m gzkit justify OBPI-0.0.19-04 --output artifacts/justify/obpi-04-pre-exec.md
Literal draft (anchor not yet booked):
uv run -m gzkit justify --draft "consider extracting the parser into its own module" --draft-slug "extract-parser" --save
Validate a filled walkthrough on return:
uv run -m gzkit justify validate artifacts/justify/obpi-04-pre-exec.md
uv run -m gzkit justify validate artifacts/justify/obpi-04-pre-exec.md --json
The CLI rejects ADR anchors (ADR-X.Y.Z) by design — ADRs are governance packages, not change instances. Invoke on the tracking GHI or an OBPI under the ADR.
Answering an ADR evaluation is narrower (ADR-0.0.26 Decision 2, GHI #996). When gz validate --evaluation-justify-binding refuses an ADR, only a walkthrough whose own frontmatter names that ADR discharges it: an OBPI under the ADR (justify OBPI-X.Y.Z-NN --save), or — when the ADR has no OBPI yet — a draft slug of the ADR id with dots as dashes (justify --draft "<what the evaluation found>" --draft-slug adr-x-y-z --save). A tracking-GHI walkthrough does not, because the GHI's link to the ADR lives on GitHub (operator ruling 2026-09-14). The walkthrough must also be complete and generated after the evaluation; the filename carries no weight.
Invoke gz justify at any of the following moments. The upstream skills surface these automatically so you don't have to remember.
gz-obpi-pipeline skill's Justification Gate finds an ambiguous scope boundary, an unresolved integration point, or a surface the plan relies on that you have not read.gz-adr-evaluate skill appends a footer pointing to an OBPI under the ADR, or the ADR's draft slug when it has no OBPI.Do not use it for governance ceremony steps that already have dedicated skills (plan-audit, OBPI completion, closeout). Those surfaces already produce receipts. gz justify is the pre-execution reasoning layer, not a substitute for any of them.
--draft + --draft-slug. Use --save if you want the artifact persisted to artifacts/justify/, --output <path> if you want an explicit destination._[To be filled]_ block, use the Edit tool to replace the placeholder with grounded reasoning. Every filled block MUST cite evidence the CLI gathered or evidence you verified by reading the anchor body. If a section has no supporting evidence in the gathered sources and none available elsewhere, write _[No evidence in gathered sources]_ and move on — do not invent.--save or --output, or commit the edited file in place if you rendered to an explicit path.uv run -m gzkit justify validate <file>. Exit 0 means every section is filled. Exit 1 lists unfilled ordinals; go back to step 3 for each.The whole loop should take 3-10 minutes on a well-understood anchor and 15-30 minutes on an ambiguous one. If it takes less than 3 minutes, you probably rationalized through step 2 — re-read the scaffold before committing.
The skill's own completion contract — the state in which a walkthrough can be cited as evidence.
artifacts/justify/<slug>-<ts>.md or an explicit --output destination).uv run -m gzkit justify validate <file> exits 0 (every section is filled)._[No evidence in gathered sources]_ rather than invented.gz-adr-evaluate — sources the triggered-evaluation footer that routes to uv run -m gzkit justify OBPI-<X.Y.Z>-<NN> --save, or the ADR's draft slug.gz-obpi-pipeline — Stage 1→2 Justification Gate routes here on an ambiguous scope boundary, an unresolved integration point, or an unread surface.gz-plan-audit — downstream consumer; filled walkthrough artifacts are acceptable evidence in plan receipts.gz-design — upstream; if the anchor is a draft concept, run gz-design first to book the artifact, then gz-justify on the booked identifier.When gz justify is invoked on an OBPI whose ## Allowed Paths section includes
.py files, the rendering pipeline automatically invokes the OBPI-03 authoring
engine (gzkit.complexity.authoring.engine.analyze) on each matching path. If
advise-band crossings are found, a ### Authoring-time complexity hints sub-heading
is injected into the scaffold, listing per-hint: metric, precedence band, archetype,
doctrinal-frame headline, recommended-move headline, and file:line range.
When the heading appears: OBPI has .py allowed-paths AND the engine finds
at least one advise-band crossing.
When the heading is absent: No .py allowed-paths, no crossings, or engine
failure. All three cases produce silent absence — not an empty heading.
Fail-open: If the authoring engine raises (e.g., distilled-characteristics
document missing at .gzkit/rules/complexity-thresholds.json), gz justify
completes normally, the hints heading is omitted, and a structured warning is
appended to .gzkit/insights/justify-failures.jsonl. The failure never blocks
the walkthrough.
Closed forward reference: This integration closes the ADR-0.0.19 ↔ ADR-0.0.30
cross-reference. Operators no longer need to run gz justify and gz complexity guide
separately and stitch the outputs together — the hints surface inline within the
pre-execution reasoning scaffold.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。