/rite-ship: ship + close the task
/rite-seal decides; /rite-ship mutates Git and closes. Read the active workspace;
if absent, route to /rite-spec <feature>. Ship only with current GO in seal.md.
Rules consulted (read on demand from .claude/skills/devrites-lib/reference/standards/)
Step 0: Read core.md, then pull as needed:
git-workflow.md: Conventional Commits, atomicity, never-commit list.afk-hitl.md: AFK pause rules for irreversible actions (the type-GO gate itself:git-ship.md,rollout.md).definition-of-done.md: acceptance, evidence, drift, rollback, docs.release/ship-checklist.md: final pass/fail sweep.
Operating rules
- GO is prerequisite. No current
seal.mdGO → stop at/rite-seal. - Ship is candidate-read-only. Follow
candidate-integrity.md. Ship must not change any candidate path ortouched-files.md; it may write only workspaceship.md,state.md, and archive bookkeeping. Project/manifest mutation returns through Prove → Review → Seal. - Bindings stay exact. Rerun candidate/Seal checks; require the digest bound in evidence, optional browser evidence, review, and seal. Any mismatch stops.
- Fresh approval. Disclose the exact Git attempt; literal
GOauthorizes it once. Change/retry means re-prompt. Native approval remains separate/authoritative. - Archive, never delete, every audit
.md.
Workflow
- Orient. Snapshot; read seal, state, spec, touched files, evidence, and any UI
brief. Confirm GO/closed digest, then run:
Nonzero/mismatch stops; never reinterpret it. 1a. Health (advisory). Applydevrites-engine check candidate <slug> devrites-engine check seal <slug>/rite-doctorread-only; surface WARN/FAIL without repair. If ACTIVE is flagged, confirm the slug. - Prepare the exact Git candidate. Follow
git-ship.md: refuse out-of-manifest staged work; stage exact manifest paths only after Seal GO; compare NUL-delimited staged state/path sets, require identical index/worktree bytes, and rerun candidate/Seal checks. From the verified index, build the exact project-conformant message/trailers, branch, tag/PR, commands, and skips. 2a. Credential guard (HIGH blocks). Scan staged blobs and any PR body. HIGH stops and requires rotation/redaction; MEDIUM needs confirmation recorded inship.md; LOW is FYI.
Scan a PR body withdevrites-engine secret-scan --stageddevrites-engine secret-scan --stdinonly through non-logging process stdin, then close it—never command/argv/env/heredoc/log/temp file. If that channel is unavailable, stop. rc=3 → STOP: no type-GO/commit/push/archive. 2b. Reconcile residuals before type-GO. Scanstrategy.mddeferrals,decisions.mdFYIs/revisit triggers, unresolvedreview.mdnon-blocking/if-minor/ FYI findings, andseal.mdfollow-ups. Deduplicate only rows with identical obligation + disposition, preserving every source pointer. Each residual appears once in the pendingship.mdtable astracked(durable path/ID) orno-action(prior decision or explicit human acceptance + reason/revisit). Type-GO never impliesno-action. Missing/vague/conflicting disposition blocks;nonerequires empty sources. - Type-GO. Render
git-ship.md's prompt and wait. LiteralGOproceeds once; anything else records cancellation inship.mdand stops. Any command/scope/branch/message/tag/PR change or retry needs a fresh prompt; native approval is still required. - On GO, commit; verify committed state/path set and exact candidate digest; then push →
tag/PR as applicable via
git-ship.md. Capture SHA(s), branch, tag/PR URL. Mismatch stops before push/tag; retry needs fresh approval. 4a. PR only: rendergit-ship.md's structured body; omit empty sections. - Re-scan the four residual sources; any new/missing/changed item blocks archive. Write the template with shipment metadata and the unchanged pre-GO reconciliation.
- Close. Set
state.mdphasedone; followclose-out.mdand rundevrites-engine state close <slug>to move.devrites/work/<slug>→.devrites/archive/<slug>and clearACTIVEonly if it names this slug; preserve another active feature's cursor. Preserve every.md; stable hierarchical instructions need no active-workspace sync.
Mid-flight discipline. No seal GO, skipped type-GO, out-of-manifest stage, or deleted workspace. Stop and use
anti-patterns.