gz obpi pipeline¶
Launch the OBPI pipeline runtime surface for one OBPI.
Usage¶
gz obpi pipeline <OBPI-ID> [--from {verify,ceremony,sync}] [--attestor NAME]
[--evidence-json JSON] [--clear-stale] [--no-subagents]
<OBPI-ID> accepts the full canonical identifier or the same identifier
without the OBPI- prefix.
Options¶
| Option | Description |
|---|---|
--from {verify,ceremony,sync} |
Resume the pipeline from the named stage (default: full launch) |
--attestor NAME |
Attestor identity for Stage 5 (e.g. jeff or human:Jeffry); used by ceremony and sync stages when relaying the human attestation |
--evidence-json JSON |
Inline evidence payload merged into the Stage 5 receipt (value_narrative, key_proof, attestation fields, etc.) |
--clear-stale |
Remove pipeline markers older than 4 hours before launching (recovery path for crashed sessions) |
--no-subagents |
Disable subagent dispatch and run every stage in-process (single-session fallback for environments that cannot spawn subagents) |
Runtime Behavior¶
gz obpi pipeline is the canonical CLI launch surface for the governance
pipeline. The gz-obpi-pipeline skill remains available as a thin alias for
agent UX, but it must not redefine stage sequencing or closeout semantics.
src/gzkit/pipeline_runtime.py is the shared runtime engine behind the CLI and
the generated Claude pipeline hooks.
Current command contract:
- full launch creates the active pipeline markers, reads the plan-audit receipt
when present, and prints the implementation handoff with the follow-up
--from=verifycommand --from=verifyreruns Stage 1, executes verification commands from the OBPI brief, adds Heavy-lane docs/BDD checks, clears active markers on success, and prints the follow-up--from=ceremonycommand--from=ceremonyreruns Stage 1, prints the ceremony/accounting checklist, requires explicit human attestation forheavy-lane completion paths (any kind) and for foundation-kind completion paths (any lane), and clears active markers on exit
The active marker files are also the machine-readable stage-state contract while the pipeline is running. They are runtime-managed and should not be edited or cleared manually:
.claude/plans/.pipeline-active-<OBPI-ID>.json.claude/plans/.pipeline-active.json
Those marker payloads now persist:
obpi_idparent_adrlaneentryexecution_modecurrent_stagestarted_atupdated_atreceipt_stateblockersrequired_human_actionnext_commandresume_point
blockers is a list of active stage blockers.
required_human_action is either null or a concise summary of the current
required human action. Lite-lane ceremony state keeps this field null because
human attestation is optional there.
next_command is either null or the next canonical operator command.
resume_point is either null or the stage label the operator should resume
from.
The marker payload is active-state only. It is not authoritative completion history.
Claude hook surfaces and generated control surfaces should point operators back to this command contract instead of re-explaining the stage engine in prose.
Failure Modes¶
The command exits non-zero and prints BLOCKERS: when:
- the OBPI brief cannot be resolved
- the OBPI brief is already completed
- the OBPI brief fails authored-readiness validation (including scaffold placeholders) before execution
- the parent ADR evaluation scorecard has a NO GO verdict (detected by
check_adr_evaluation_verdict) - the matching plan-audit receipt verdict is
FAIL - another OBPI is already active in the pipeline markers
- any verification command fails in
--from=verify
Missing or unreadable plan-audit receipts are warnings, not blockers. Missing evaluation scorecards are not blockers (evaluation is advisory until run).
Examples¶
OBPI pipeline: OBPI-0.13.0-01-runtime-command-contract
Parent ADR: ADR-0.13.0-obpi-pipeline-runtime-surface
Brief: docs/design/adr/pre-release/ADR-0.13.0-obpi-pipeline-runtime-surface/obpis/OBPI-0.13.0-01-runtime-command-contract.md
Lane: heavy
Entry: full
Receipt: MISSING
Stages: 1. Load Context -> 2. Implement -> 3. Verify -> 4. Present Evidence -> 5. Sync And Account
Marker: .claude/plans/.pipeline-active-OBPI-0.13.0-01-runtime-command-contract.json
Legacy Marker: .claude/plans/.pipeline-active.json
Warning: plan-audit receipt is missing; proceeding with an explicit gap
Next:
- Implement the approved OBPI within the brief allowlist.
- When implementation is ready, run: uv run gz obpi pipeline OBPI-0.13.0-01-runtime-command-contract --from=verify
- Keep the active pipeline markers in place during implementation.