Skip to content

gz obpi complete

Atomically complete an OBPI: validate, write evidence, flip status, record attestation, and emit a completion receipt in a single all-or-nothing transaction.

Usage

Text Only
gz obpi complete OBPI-X.Y.Z-NN --attestor NAME --attestation-text TEXT
    [--implementation-summary TEXT] [--key-proof TEXT] [--json] [--dry-run]

Arguments

Argument Description
OBPI-X.Y.Z-NN OBPI identifier to complete
--attestor NAME Identity of the attestor (required)
--attestation-text TEXT Substantive attestation text (required)
--implementation-summary TEXT Implementation summary (reads from brief if omitted)
--key-proof TEXT Key proof text (reads from brief if omitted)
--attestor-present Agent-relayed operator attestation, gated on an active pipeline marker (GHI #292)
--accept-uncovered REQ_ID Explicitly waive an uncovered REQ (repeatable; requires --accept-uncovered-reason)
--accept-uncovered-reason REASON Rationale for the corresponding --accept-uncovered entry (repeatable, 1:1 pairing)
--json Machine-readable JSON output
--dry-run Show plan without writing files

Runtime Behavior

  1. Validates brief exists and is not already Completed
  2. Checks evidence sufficiency (Implementation Summary, Key Proof)
  3. Writes attestation to ADR-local audit ledger
  4. Updates brief with evidence, attestation, and Completed status
  5. Emits obpi_receipt_emitted event to main ledger

If any step fails, all changes are rolled back (no partial writes).

Exit Codes

Code Meaning
0 OBPI completed successfully
1 Validation failure (missing brief, already completed, insufficient evidence, or --accept-uncovered without --accept-uncovered-reason)
2 I/O error
3 REQ-coverage gate: one or more REQs in ## Acceptance Criteria lack a passing @covers-decorated unit test or @REQ-* BDD scenario tag (heavy-lane or foundation-kind briefs); or --accept-uncovered override refused (no active pipeline marker / headless invocation)

Examples

Bash
gz obpi complete OBPI-0.0.14-01 \
  --attestor jeff \
  --attestation-text "Lock commands verified"

gz obpi complete OBPI-0.0.14-01 \
  --attestor jeff \
  --attestation-text "Verified" \
  --implementation-summary "- Files: obpi_complete.py" \
  --key-proof "gz obpi complete exits 0" \
  --json

gz obpi complete OBPI-0.0.14-01 \
  --attestor jeff \
  --attestation-text "Verified" \
  --dry-run

# Accept an uncovered REQ with a recorded rationale (requires active pipeline marker)
gz obpi complete OBPI-0.0.14-01 \
  --attestor jeff \
  --attestation-text "Verified" \
  --accept-uncovered REQ-0.0.14-01-03 \
  --accept-uncovered-reason "REQ validated by manual integration walkthrough; no unit harness exists" \
  --attestor-present