Rite ship
Skill ViktorsBaikers/DevRites/pack/generated/codex/skills/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
9.4 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
Codex compatibility
This is the Codex mirror of a DevRites skill. In Codex:
- Load DevRites engineering standards from
.agents/skills/devrites-lib/reference/standards/. Read.agents/skills/devrites-lib/reference/standards/core.mdbefore workflow work, then load the other.agents/skills/devrites-lib/reference/standards/*.mdfiles exactly when this skill asks for them. - Use the installed
devrites-enginebinary as the canonical runtime helper surface for orientation, gates, and state mutation. - Invocation and dispatch are different: invoke means run a skill in this context; dispatch means start a fresh agent with
spawn_agent, await it, and reconcile its result. Never describe inline skill work as a dispatch. - On MultiAgent V2, call
spawn_agentwith the exact namedagent_type=devrites-<role>, a uniquetask_name, andfork_turns="none". Codex loads that role TOML'sdeveloper_instructionsnatively. Because V2 collaboration lifecycle calls bypass hooks, DevRites verifies the current durable parent/child rollout for the exact role, wait, completion, and non-empty delivered result. - On MultiAgent V1, when the named role is not exposed, use generic
explorerfor a read-only role withfork_turns="none"and name exactly one.codex/agents/devrites-<role>.tomlcontract in the message. Trusted.codex/hooks.jsoninjects that contract's exactdeveloper_instructionsand binds the child to the fail-closed reviewer read-only guard. - On MultiAgent V1,
devrites-slice-wrightuses genericworkerwithfork_turns="none"and the exact role TOML named in the message. Trusted.codex/hooks.jsonbinds it to the active reconcile window and.wright-allowlist; do not substituteworkerfor an exposed V2 named role. - The invoked skill's
required-agent-rolesfrontmatter arms the fail-closed Stop receipt. Every listed role must have a confirmed start, wait, and non-empty result in this turn. - If any required named or generic agent dispatch is unavailable or rejected, stop for HITL. Never execute a DevRites specialist role in the root context.
- Wait for every required fresh-context dispatch before reconciling or advancing. A backgrounded or lost result is incomplete.
- Codex project hooks are installed in
.codex/hooks.json; declared-leaf hooks are scoped inside.codex/agents/devrites-*.toml. Review and trust them with/hooksbefore relying on hook enforcement. - When this skill asks a HITL question via
AskUserQuestion: Codex's equivalent (request_user_input) exists only in Plan mode. Outside Plan mode, render the option set as a plain numbered list in chat and end the turn so the human answers: NEVER silently pick an option yourself; auto-picking is AFK's contract, gated by the.devrites/AFKsentinel.
$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 .agents/skills/devrites-lib/reference/standards/)
Step 0: Read .agents/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.agents/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).