Skip to content

Repository postures

A repository posture is the operating picture produced by the effective transport and pullRequests policy values. shipper status and shipper_status report the same posture names used here, so an operator or agent can move directly from repository status to the relevant behavior.

Posture and policy tuple (transport / pullRequests)Packaging and merge destinationReview acquisition and deliveryUnavailable capabilities and Shipper’s substituteDisplayed workflow stages
GitHub-backed (origin / github)Packages the implemented change as a GitHub pull request and merges that PR into the target branch on GitHub.Acquires the review from the GitHub PR; Shipper keeps every review round internally.All transport and PR capabilities are enabled; held review rounds and local issue state remain authoritative for Shipper workflow state.PR Open
Remote git without pull requests (origin / none)Pins a LocalChangeRecord, merges by advancing the target branch, and publishes the advanced target branch to origin.Acquires the review from the pinned local three-dot diff and retains the round locally.PR creation, inspection, and checks are unavailable; packaged-change recovery remains available from the pinned record. The local change record, locally held review round, and local target-branch advance substitute for PR workflow artifacts.Change Packaged
Fully local (none / none)Pins a LocalChangeRecord and merges by advancing the local target branch, with no publication.Acquires the review from the pinned local three-dot diff and retains the round locally.Fetch, push, PR creation, inspection and checks are unavailable; packaged-change recovery remains local. The local record, held review round, and target-branch advance are the substitutes.Change Packaged

The two values in the first column derive the posture name. GitHub side effects occur only when the capability that governs them is enabled: transport: "origin" permits remote git transport and pullRequests: "github" permits the PR workflow. In every posture Shipper keeps review rounds internally as held rounds.

baseIntegration is an independent synchronization choice within every posture. It selects rebase or merge when Shipper brings a feature branch up to date; it is not a third posture axis and does not turn these three operating pictures into six. mirrorMode is also independent: it selects whether authoritative local issue state is projected to GitHub wherever the transport policy permits that projection.

Pull-request-disabled repositories use a local display name for the packaged review state. The retired raw label remains readable only as a compatibility alias; it is not a separate stage.

Stored stagePull requests enabledPull requests disabled
shipper:pr-openPR OpenChange Packaged
shipper:pr-reviewedPR Open (legacy alias)Change Packaged (legacy alias)

Implementation creates the package and enters shipper:pr-open; shipper pr review reviews it.

Fully local operation is single-operator by construction. Issue state, locally held reviews, issue locks, and workflow history have no shared transport, so concurrent operators can create divergent authority without a common source of truth. A shared repository requires a remote-backed posture.

Issue mirroring is not a transport substitute. mirrorMode: "mirror-on" is invalid with transport: "none". shipper settings set ... --repo rejects that candidate and prints the conflicting effective values. If someone hand-edits an invalid committed settings file, policy-consuming commands such as shipper status report the conflict. Restore a real origin and select origin transport before enabling mirroring, or keep the repository store-only.

“Fully local” refers narrowly to git hosting and GitHub workflow dependencies. Shipper sign-in and periodic license revalidation still require network access, and the cached license grace period is temporary. This posture does not claim air-gapped support.