Skip to content

porch verify --skip bypasses the verify-approval gate — protocol completes with the gate still 'pending' and never requested #1272

Description

@waleedkadous

Problem

Recording a skipped verification via porch verify <id> --skip "reason" then porch done advances the SPIR protocol straight to complete (verified) WITHOUT ever firing the verify-approval gate:

status.yaml gates.verify-approval : still 'pending'
porch gate <id>                   : 'No gate required for this phase'
porch pending                     : project absent
porch next                        : {"status": "complete", "phase": "verified"}

So the human-approval checkpoint that the gate represents is silently skipped along with the verification step, and nothing offers it to a human. If the final sign-off matters as a recorded artifact, an operator must know to run porch approve <id> verify-approval unprompted — porch will not ask, and the protocol already reports complete.

A skip of the verification WORK is a legitimate branch (that's what --skip is for); skipping the human APPROVAL of that decision as a side effect conflates two different checkpoints.

Observed: cluesmith/shannon project 3358, 2026-07-27. Caught because the builder refused to treat 'porch says complete' as equivalent to 'the owner's sign-off happened' and reported the pending-but-unrequested gate rather than letting it pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions