Use to mine ../airlineops for governance habits gzkit lacks; produces a parity scan report (gzkit leads, AirlineOps adopts).
日本語の概要は準備中です。原文の説明を表示しています。
Use after authoring an ADR or OBPI to score its quality and optionally run the red-team challenges.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Structured quality evaluation for ADRs and their OBPI decompositions. This skill provides rubrics, challenge protocols, and a red-team prompt that form a blocking QC step between ADR authoring and human proposal/defense review.
It can be invoked for newly authored ADRs or for retroactive evaluation of an existing ADR package.
| Thought | Reality |
|---|---|
| "The ADR looks comprehensive, it'll score well" | Comprehensiveness does not equal quality. The rubric measures decision justification, not document length. |
| "The CLI gave a high score, no need for manual review" | The CLI uses heuristics that produce false negatives. Manual review supersedes CLI pre-screen. |
| "This is a retroactive evaluation, I'll be lenient" | The rubric is the rubric. Retroactive evaluation with relaxed standards produces misleading scorecards. |
| "The red-team challenges don't apply to this simple ADR" | Every challenge must be engaged. N/A is not acceptable. Simple ADRs often have unexamined assumptions. |
| "One dimension scored 1, but the overall weighted score is above 3.0" | Any dimension scoring 1 must be revised regardless of the weighted total. |
| "I'll skip the OBPI scoring since the ADR scored well" | ADR quality and OBPI quality are independent assessments. Both are required. |
EVALUATION_SCORECARD.md, which
gz adr evaluate regenerates and will destroy (GHI #769)Active driver: pipeline-orchestrator — read .gzkit/personas/pipeline-orchestrator.md and adopt its behavioral identity before executing this skill. Evaluation is a sequenced ceremony (score dimensions → engage red-team → render verdict); step-discipline keeps the rubric honest. Evaluation is independent judgment, not confirmation. Score what you read, not what you hope.
Evaluation is the highest-risk read-only judgment ceremony — the rubric's 8 dimensions split cleanly along the persona functional boundaries, and a single driver scoring its own scoring is the precise optimistic-bias defect spec-reviewer's anti-traits name. Dispatch the following personas to produce independent dimension scores the driver synthesizes:
| Persona | Function in this ceremony | Invoked at |
|---|---|---|
spec-reviewer | Scores spec/requirement dimensions of the rubric: requirement clarity, target-scope falsifiability, OBPI decomposition coverage, REQ-trace integrity — anything that asks "is the spec honest, falsifiable, traceable?" | Steps 3–4 (manual rubric scoring) |
quality-reviewer | Scores architectural dimensions: decision justification, alternatives considered, SOLID-analogues for ADR design, single-responsibility per ADR, decision boundaries, maintainability of the proposed surface | Steps 3–4 (manual rubric scoring) |
narrator | Composes the operator-facing scorecard and frames red-team challenge findings — each challenge's finding rendered as evidence-to-decision, not as raw analysis | Step 5 (red-team challenges, if invoked) and final scorecard render |
Personas not dispatched: implementer (evaluation is pre-implementation review — no code exists to write or evaluate).
The receipt machinery that would attest these dispatches is not yet authored (GHI #846; ADR-pool.obpi-pipeline-dispatch-attestation is Superseded into ADR-0.0.73, which delivered no receipts). This ceremony does have a dispatch channel: gzkit.adr_eval_dispatch reports NOT DISPATCHED absent a receipt and never infers dispatch from the presence of scores (GHI #770). See § Degraded mode.
Dispatch is sometimes genuinely unavailable — a session that forbids subagents, a headless or cron run, a harness without the Agent tool. Until GHI #770 there was no compliant path for those runs and no way to mark the output, so the mandate was simply skipped: on 2026-08-07 an evaluation of ADR-0.35.0 ran single-driver, produced 8 dimension scores and a GO verdict, and nothing recorded that the mandated dispatch had not happened. An un-compliable mandate gets worked around.
The degraded mode is therefore declared and legitimate, never silent:
render_scorecard_markdown always emits a --- Persona Dispatch --- channel: one row per mandated persona, NOT DISPATCHED / no dispatch receipt recorded absent a receipt, plus a DISPATCH MODE: SINGLE-DRIVER verdict. This is not something you remember to write — the renderer emits it unconditionally, and tests/test_adr_eval_dispatch.py fails closed if a dispatched and an undispatched scorecard could ever render identically.A dispatch is credited only from a recorded receipt (gzkit.adr_eval_dispatch), never inferred from the presence of scores — the same discipline the substance channel applies to judge verdicts (GHI #624). Nothing emits that receipt yet, so every scorecard truthfully reads SINGLE-DRIVER until that machinery is authored (GHI #846); the channel populates then with no change here.
Persona doctrine reference: ADR-0.0.11-persona-driven-agent-identity-frames (Validated).
Layer 1 - Evidence Gathering. This tool reads ADR documents and produces evaluation scorecards. It does not modify ADR or brief content.
EVALUATION_SUBSTANCE.md in the ADR directory (the judge's file;
EVALUATION_SCORECARD.md is machine-owned and regenerated by the CLI)adr-evaluation ledger event per successful gz adr evaluate run (ADR-0.0.26, OBPI-0.0.26-01)/gz-adr-evaluate ADR-X.Y.Z # evaluate a specific ADR
/gz-adr-evaluate ADR-X.Y.Z --red-team # include the 10-challenge red-team protocol
Arguments:
| Argument | Required | Description |
|---|---|---|
adr_id | Yes | ADR identifier (for example ADR-0.13.0) |
--red-team | No | Include the 10-challenge adversarial review protocol |
uv run gz adr evaluate ADR-X.Y.Z
This produces structural quality scores (8 ADR dimensions, OBPI scores) and
writes an initial EVALUATION_SCORECARD.md.
The CLI score is a pre-screen, never a gate. The CLI uses pattern-matching heuristics (keyword detection, section structure) that can under-score or over-score dimensions when an ADR distributes content across non-standard sections. Common false negatives:
Mandatory next step: Always proceed to Step 2 regardless of CLI verdict. The agent reads the ADR, analyzes every CLI dimension score for false-positive and false-negative artifacts, and produces the authoritative manual scorecard that supersedes the CLI pre-screen.
docs/design/adr/**/ADR-X.Y.Z-*/ADR-X.Y.Z-*.mdobpis/ (preferred) or briefs/ (legacy)assets/ADR_EVALUATION_FRAMEWORK.mdEVALUATION_SCORECARD.md — note each dimension score
and the CLI's stated findings for analysis in Step 3Read Part 1 of the framework and score the ADR on each dimension (1-4 scale):
| # | Dimension | Weight |
|---|---|---|
| 1 | Problem Clarity | 15% |
| 2 | Decision Justification | 15% |
| 3 | Feature Checklist Completeness | 15% |
| 4 | OBPI Decomposition Quality | 15% |
| 5 | Lane Assignment Correctness | 10% |
| 6 | Scope Discipline | 10% |
| 7 | Evidence Requirements | 10% |
| 8 | Architectural Alignment | 10% |
For each dimension, work through the checklist items in the framework and score based on how many checklist items pass with path-level evidence.
CLI reconciliation (mandatory per dimension): Compare the agent's manual score against the CLI pre-screen score. When they differ, the scorecard MUST document why — naming the specific CLI heuristic that misfired (false positive or false negative) and the evidence that justifies the override. The manual score is authoritative; the CLI score is recorded for traceability.
For each OBPI, score on 5 dimensions (1-4 scale):
| Dimension | Question |
|---|---|
| Independence | Can this OBPI be completed without waiting for others? |
| Testability | Can completion be verified with commands? |
| Value | What concrete capability would be lost if this OBPI were removed? |
| Size | Is this a 1-3 day work unit? |
| Clarity | Could a different agent implement this without ambiguity? |
If --red-team is specified, or if the evaluator wants stronger adversarial
review, work through all 10 structured challenges from the framework.
Every challenge must be engaged. N/A is not acceptable.
Apply the framework thresholds:
| ADR Weighted Total | Verdict |
|---|---|
| >= 3.0 | GO - Ready for proposal/defense review |
| 2.5 to < 3.0 | CONDITIONAL GO - Address weaknesses, then re-evaluate |
| < 2.5 | NO GO - Structural revision required |
OBPI threshold: Average >= 3.0 per OBPI. Any OBPI scoring 1 on any dimension must be revised.
Red-team threshold: <= 2 failures = GO, 3-4 = CONDITIONAL GO, >= 5 = NO GO.
Write EVALUATION_SUBSTANCE.md in the ADR directory using the summary
template from the framework.
Never write
EVALUATION_SCORECARD.mdby hand (GHI #769). That path is machine-owned:gz adr evaluaterewrites it wholesale on every run, so a judged scorecard authored there is destroyed by the next invocation. The two files measure different things and GHI #624 forbids compositing them — the split makes that separation structural instead of a warning banner the writer ignores. The closeout NO-GO gate reads this file first, so a recorded NO GO now survives regeneration.
Cite the CLI pre-screen for traceability rather than restating it as your own finding. Include:
Append the footer under the condition gz validate --evaluation-justify-binding
fails closed on (ADR-0.0.26 Decision 2): any dimension scores below
low_score_threshold (it ships as < 3.0; the file below, never this line, is
authoritative), or at least red_team_count_threshold red-team challenges
fired — both read from data/eval_feedback_thresholds.json. The weighted total
is not the trigger: a single dimension below threshold fails the gate while the
total stays healthy. The footer requires an OBPI brief under the evaluated ADR
to exist, and names it:
> Consider: uv run -m gzkit justify OBPI-<X.Y.Z>-<NN> --save
When the ADR has no OBPI brief yet there is no footer to append; the evaluation is answered instead on the ADR itself as a draft slug — its id with dots as dashes:
> Consider: uv run -m gzkit justify --draft "<what the evaluation found>" --draft-slug adr-<x>-<y>-<z> --save
Only these two forms discharge the gate: the walkthrough's own frontmatter must name the evaluated ADR, an OBPI under it, or its draft slug (operator ruling 2026-09-14, GHI #996). A walkthrough on a tracking GHI does NOT — the GHI's link to the ADR lives on GitHub, which the gate does not consult — so never route the footer to one.
Amendment record (REQ-0.0.19-04-05, 2026-09-14, GHI #996). That attested REQ
asserts this block cites the < 3.0 threshold, requires a tracking GHI or OBPI
to exist, and suggests uv run -m gzkit justify. All three still hold. What the
operator's ruling retired is the weighted total as the trigger and the
tracking-GHI route: the footer now fires on the gate's own condition and names
only an OBPI, because a GHI walkthrough never discharged the gate it answers.
A trigger means the ADR's structural weakness will leave implementing agents
guessing on at least one OBPI. The
pre-execution walkthrough (gz-justify skill) surfaces the hidden ambiguity
before promotion, and the lifecycle refuses to advance the ADR past Pending
until a qualifying walkthrough exists. Skipping this footer on a triggered
evaluation is the adjacent rationalization pattern the walkthrough exists to
close.
For adversarial review by a separate model:
assets/ADR_EVALUATION_FRAMEWORK.md
| Failure | Cause | Resolution |
|---|---|---|
| Framework not found | assets/ADR_EVALUATION_FRAMEWORK.md missing | Repair skill directory structure |
| ADR not found | No ADR package matches the requested ID | Verify ADR exists and uses canonical naming |
| No OBPIs found | obpis/ and briefs/ are empty | ADR must have co-created OBPIs before evaluation |
| Scorecard not written | Path or permission error | Verify ADR directory is writable |
| NO GO verdict | ADR has structural deficiencies | Revise ADR and re-run evaluation before proposal/defense |
EVALUATION_SUBSTANCE.md is written to the ADR directory (never
EVALUATION_SCORECARD.md, which the CLI regenerates — GHI #769)NO GO blocks progression to human proposal/defense| Skill | Relationship |
|---|---|
gz-adr-create | Authoring workflow that should invoke evaluation before proposal |
gz-adr-audit | Post-completion audit; downstream phase |
gz-adr-closeout-ceremony | Closeout occurs after implementation, not authoring |
assets/ADR_EVALUATION_FRAMEWORK.mddocs/governance/GovZero/adr-lifecycle.mddocs/governance/GovZero/charter.mdgz-adr-evaluate skill (sibling repository; not resolvable from this one)gz-justify walkthrough so hidden ambiguity is surfaced before the ADR is
promoted into active work.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。