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¶
- Validates brief exists and is not already Completed
- Checks evidence sufficiency (Implementation Summary, Key Proof)
- Writes attestation to ADR-local audit ledger
- Updates brief with evidence, attestation, and Completed status
- Emits
obpi_receipt_emittedevent 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