Rite ship
Skill ViktorsBaikers/DevRites/evals/behavioral/controls/rite-ship
Stop your AI from shipping half-baked code. A disciplined senior-engineer workflow for Claude Code (spec, vet, build, prove, review, seal, ship) that keeps each feature's state on disk, catches spec drift mid-build, gates every phase on your project's principles, and refuses to claim "done" without proof.
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.
What its author says it does
Copied from the file, not written here
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.
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).