shipper unblock
shipper unblock
Section titled “shipper unblock”Usage: shipper unblock [options]
Check if a blocked issue can proceed
Arguments
Section titled “Arguments”| Argument | Required | Description | Choices |
|---|---|---|---|
| yes | Shipper issue ID, gh: | - |
| Long | Short | Value | Default | Description | Choices |
|---|---|---|---|---|---|
| —force | - | - | - | force unblock by overriding unresolved stored blockers | - |
Examples
Section titled “Examples”Check whether S#42 can be unblocked.
shipper unblock S#42Explicitly override unresolved stored blockers after an operator decision.
shipper unblock S#42 --forceExit Codes
Section titled “Exit Codes”| Code | When |
|---|---|
| 0 | Stored blockers are evaluated; ordinary unblock clears only fully resolved blockers, while —force overrides unresolved blockers only when they remain. |
| 1 | Validation, issue lookup, store update, force audit comment creation, or GitHub mirror repair fails. |
Constraints
Section titled “Constraints”- Unblock does not run an agent prompt.
- Shipper blockers clear only from completed local tombstones.
- A native dependency created by grooming follows the same rule: ordinary unblock clears it after
completed, while a laternot_plannedclosure remains unresolved for operator review. - Closing a managed blocker as not planned can return a Groomed-through-Planned dependent to New for grooming, but it does not release that blocker or clear blocked state. New, failed, and packaged dependents are not moved, and locked or closure-held returns are deferred.
- External GitHub issue blockers clear when closed; external PR blockers clear when closed or merged.
- When any stored blocker remains unresolved or cannot be fetched, the local store and GitHub mirrors are left unchanged.
- Ordinary unblock records a local workflow event that retires prior live block events; the unblock comment and deleted blocked comment are GitHub projections that reconcile can repair without recreating retired blocked comments.
- A Rework rejection creates an operator-decision hold with no dependency. Automatic dispatch and dependency sweeps retain it. Ordinary operator unblock retires only the hold and resumes the same Rework trigger; use an explicit reset when the request, design, plan, or correction premise must change.
- —force is an explicit operator-only override and does not run from automated unblock flows.
- —force only takes effect when at least one stored blocker is unresolved; when all blockers are resolved, use ordinary
shipper unblock. - —force clears all remaining blockers together, records a local
force_unblockworkflow event, and posts the distinct permanent## Force Unblockedaudit comment with overridden blocker details instead of the generic unblock comment. - —force clears groom-created native dependencies through that same audited override path.