Rite ship
Skill ViktorsBaikers/DevRites/evals/behavioral/controls/rite-ship
Ship the sealed feature: commit, push, tag, archive, close. Use when the user says "ship it", "push the branch", "tag the release", or "close the task" after /rite-seal GO. Not for GO/NO-GO readiness.From its SKILL.md
npx -y skills add ViktorsBaikers/DevRites --skill rite-shipAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.7 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
/rite-ship: ship + close the task
The final phase. /rite-seal decides GO/NO-GO; /rite-ship executes the
irreversible git actions and closes the feature. Read the active workspace
first; if none, tell the user to run /rite-spec <feature>.
Refuses to ship unless seal.md records a GO verdict.
Rules consulted (read on demand from .claude/skills/devrites-lib/reference/standards/)
Step 0: Read .claude/skills/devrites-lib/reference/standards/core.md first. Then pull on demand:
git-workflow.md: Conventional Commits, atomic commits, the never-commit list.afk-hitl.md: type-GO is the irreversible-action gate.definition-of-done.md: final acceptance, evidence, drift, rollback, and documentation bar.release/ship-checklist.md: compact final ship and archive pass/fail sweep.
Operating rules
- Seal GO is a precondition. No GO in
seal.md→ stop, point at/rite-seal. - Evidence must be fresh. If any file in
touched-files.mdchanged afterevidence.mdwas written, the proof is stale → stop, point at/rite-prove. Enforced deterministically bydevrites-engine evidence-freshin step 1 (exit 3 = STALE), not by eyeballing mtimes (see.claude/skills/devrites-lib/reference/standards/development-workflow.md). - type-GO before anything irreversible. Render the prompt verbatim and wait for
the literal
GO. Last safety net: render it every time, even under auto-trigger. - Never delete the audit trail. Closing archives the workspace; it never erases
the
.mdfiles.
Workflow
- Orient. Run
devrites-engine preamblefor deterministic workspace orientation. Then readseal.md,state.md,spec.md,touched-files.md,evidence.md, anddesign-brief.md(if the feature is UI: the design-memory rollup in step 2a reads it). Confirm the verdict is GO, then run the deterministic evidence-freshness gate rather than eyeballing mtimes (mirrors/rite-seal):
Exit 3 → STALE proof: STOP, point atdevrites-engine evidence-fresh; echo "evidence-fresh rc=$?"/rite-prove(a polish/review edit made after/rite-proveinvalidates the proof). Not GO → stop with the single resume command. 1a. Health re-check (advisory). Run the DevRites doctor before the irreversible ladder: a staleACTIVEor corrupt workspace here risks shipping or closing the wrong feature. Advisory: surface issues, don't block.
If it flags the active feature, confirm you're shipping the intended slug before proceeding.devrites-engine doctor; echo "doctor rc=$?" - Build the git plan from
git-workflow.md+ the project's own convention: the Conventional-Commit message(s), commit trailers for non-trivial work, the target branch, and whether a tag / PR applies. Derive trailers fromdecisions.md,assumptions.md,seal.md, andevidence.md:Constraint,Rejected,Confidence,Scope-risk,Not-testedwhen present; skip trailers for trivial typo/formatting commits. Scope the commit totouched-files.md; never stage secrets or out-of-scope files. Completion: message, trailers, target branch, tag/PR choice, and exact staged scope are explicit. 2a. Design memory (UI only). Followreference/design-memory.md. Completion: the confirmed outcome is recorded, and anyDESIGN.mdedit is intouched-files.md; non-UI skips. 2b. Capability ledger sync. Followreference/ledger.md. Completion: proven capability deltas are previewed, the confirmed outcome is recorded, and every synced ledger file is intouched-files.md. 2c. Credential guard (blocking for HIGH). Before the irreversible type-GO prompt, scan staged and touched files plus any PR body draft. HIGH blocks ship and tells the user to rotate/redact; MEDIUM asks for confirmation and records the exception inship.md; LOW is FYI.
rc=3 → STOP: do not type-GO, commit, push, or archive.devrites-engine secret-scan --staged; echo "secret-scan rc=$?" - Render the type-GO prompt (reference/git-ship.md) and
wait. Only the literal
GOproceeds; anything else cancels: record the cancel inship.mdand stop (do not retry without the user asking). - On
GO: run the git ladder: commit → push → tag / PR as applicable (reference/git-ship.md). Capture the commit SHA(s), branch, and tag/PR URL. 4a. PR branch only. Render the structured body fromreference/git-ship.md; omit empty sections. 4b. Durable architecture decisions only. Applyreference/adr-promotion.md; slice-local decisions stay in the archived workspace. - Write
ship.md(reference/ship-template.md): what shipped, SHA(s), branch, tag/PR, acceptance summary (n/total), link toseal.md, follow-ups. - Close the task (reference/close-out.md): set
state.mdphasedone, then rundevrites-engine close-out <slug>to archive.devrites/work/<slug>/→.devrites/archive/<slug>/and clear.devrites/ACTIVE. Every.mdis preserved in the archive. Then refresh any managed project context block soAGENTS.md/CLAUDE.mdno longer advertise a closed active workspace:devrites-engine context sync || true
6a. Cross-feature retro. Run the cadence-gated advisory branch in
reference/close-out.md. Completion: a
silent nudge does nothing; a real recurrence is appended to .devrites/retro.md and
surfaced to /rite-learn, never auto-promoted.
Mid-flight discipline. When tempted to ship without a GO seal, skip the type-GO, stage files outside
touched-files.md, or delete the workspace instead of archiving it: stop. Seeanti-patterns; the gate exists for the failure mode the ask misses.
Output
Progress first: run devrites-engine progress, then use the Shipped typed template from
the shared completion reply contract
(reply-contract.md § Shipped).
If the user declined type-GO: state that nothing shipped, the seal still reads GO, and
the resume command (/rite-ship).