/rite: DevRites menu + router
Two modes:
- No args → render the menu and stop. Do not execute a phase or infer
workspace status;
/rite-statusowns that. - Verb arg → pass-through invocation of the matching
rite-<verb>skill (/rite spec foo≡/rite-spec foo); the called skill owns the output.
When the user asks which rite fits, load devrites-lib/reference/intent-map.md.
When they ask how phases connect, load reference/menu.md.
Dispatch
If $ARGUMENTS starts with a verb in this table, load the matching skill and execute its workflow with the remainder of $ARGUMENTS as that skill's argument. Resolve the installed skill path:
V=<verb>; ARGS="<remaining args>"
F=.omp/skills/rite-$V/SKILL.md
# Then Read "$F" and follow its workflow with $ARGS as that skill's $ARGUMENTS.
use and guide are handled inline per the sections below, not via a skill file.
What each verb does lives once, in the Menu below; this table is the invocation map only.
| Verb | Skill |
|---|---|
spec [feature] |
/rite-spec |
adopt [area] |
/rite-adopt |
clarify [feature] |
/rite-clarify |
temper [--mode] |
/rite-temper |
define |
/rite-define |
vet [--cross-model] |
/rite-vet |
plan [mode] |
/rite-plan |
build [slice] |
/rite-build |
converge [slug] |
/rite-converge |
prove |
/rite-prove |
polish [mode] |
/rite-polish |
review [scope] |
/rite-review |
seal |
/rite-seal |
ship |
/rite-ship |
status [slug] |
/rite-status |
doctor |
/rite-doctor |
upgrade [slug] |
/rite-upgrade |
learn ["<lesson>"] |
/rite-learn |
explain [concept | diff | idea | recap] |
/rite-explain |
pov [candidate] |
/rite-pov |
dogfood [--port N] |
/rite-dogfood |
pr-feedback [PR|thread] |
/rite-pr-feedback |
watch-pr [PR|URL] |
/rite-watch-pr |
customize [instruction | skill | agent | plugin] |
/rite-customize |
use <slug> |
(inline) |
guide |
(inline) |
resolve <qid> "<answer>" |
/rite-resolve |
prototype [question] |
/rite-prototype |
handoff [focus] |
/rite-handoff |
zoom-out |
/rite-zoom-out |
pressure-test |
/rite-pressure-test |
autocomplete [idea] [--ship] |
/rite-autocomplete |
quick [change] |
/rite-quick |
frame [task] |
/rite-frame |
Both forms call the same skill. The menu supports discovery; /rite-<verb> is the direct form.
use <slug> is handled inline. There is no rite-use skill. Confirm
.devrites/work/<slug>/ exists, then re-point .devrites/ACTIVE to <slug> and report
the now-active feature. It is cheap context-switching only: no re-spec, no phase run. If
the workspace is missing, list the slugs under .devrites/work/ and stop.
guide is an inline walkthrough for the first feature. Agree on one real, small
change, then run spec → clarify → temper → define → vet → build → prove → polish → review → seal →
ship. Before each phase, say what it decides; after, name what it wrote and why. Pause at
every boundary and explain only what the user needs for the next decision.
Specialist triggers (model-invoked inside the above):
devrites-frontend-craft (UI) · devrites-browser-proof (UI verify) ·
devrites-source-driven (uncertain library) · devrites-doubt (non-trivial
decision) · devrites-api-interface (cross-boundary) ·
devrites-audit <security|perf|simplify> (single-axis review/polish pass) ·
devrites-debug-recovery (failures). Parallel reviewer fan-out at seal is a shared
reference (see devrites-lib/reference/parallel-dispatch.md).
What to output
Reply-contract exception: /rite is the menu/router, not a workspace completion step.
Called phase skills own the shared completion reply contract
(reply-contract.md).
- Verb in
$ARGUMENTS→ invoke the matching skill per the table above. - No args → menu mode, as above.
- Unrecognized first token → tell the user the known verbs and stop. Don't guess.
- No active feature and the user asked "where am I" → point at
/rite spec <feature>(or/rite-spec). Don't summarize state yourself:/rite status(or/rite-status) owns that.
Menu
DevRites — disciplined senior-engineer workflow
menu form direct shortcut
SPEC /rite spec ≡ /rite-spec investigate deeply → write spec.md
ADOPT /rite adopt ≡ /rite-adopt onboard existing code → reverse-derive spec.md
CLARIFY /rite clarify ≡ /rite-clarify close the complete decision surface before planning
TEMPER /rite temper ≡ /rite-temper optional — strategic review: scope mode + pre-mortem, harden the spec
PLAN /rite define ≡ /rite-define turn the spec into plan + task slices + state
VET /rite vet ≡ /rite-vet mandatory every plan — light/full engineering review by stakes
REPLAN /rite plan ≡ /rite-plan decompose / reslice / repair an active plan
BUILD /rite build ≡ /rite-build one slice/wright; HITL stops, `.devrites/AFK` may chain
CONVERGE /rite converge ≡ /rite-converge recovery — append work needed to meet intent
PROVE /rite prove ≡ /rite-prove tests + build + runtime + browser evidence
POLISH /rite polish ≡ /rite-polish code polish always; UI normalize + polish if UI
REVIEW /rite review ≡ /rite-review feature-scoped multi-axis review
SEAL /rite seal ≡ /rite-seal final GO / NO-GO decision (no git)
SHIP /rite ship ≡ /rite-ship pre-GO read-only; fresh GO → commit; optional approved push/tag/PR → archive
STATUS /rite status ≡ /rite-status active feature, next action, evidence, risks
DOCTOR /rite doctor ≡ /rite-doctor installation and native host diagnostics
UPGRADE /rite upgrade ... ≡ /rite-upgrade audit an older workspace; route only proven gaps
LEARN /rite learn ... ≡ /rite-learn review captured lessons → promote to project rules / principles
EXPLAIN /rite explain ... ≡ /rite-explain grounded concept/diff/idea/recap explainer
POV /rite pov ... ≡ /rite-pov decide adopt / trial / hold / reject for an external option
DOGFOOD /rite dogfood ... ≡ /rite-dogfood browser QA by changed user journey
PR FEEDBACK /rite pr-feedback ... ≡ /rite-pr-feedback fix and resolve PR review threads
WATCH PR /rite watch-pr ... ≡ /rite-watch-pr observe PR/CI once without mutation
CUSTOMIZE /rite customize ... ≡ /rite-customize author overrides/extensions without forking the pack
SWITCH /rite use <slug> re-point .devrites/ACTIVE to another feature (inline)
GUIDE /rite guide first feature, guided — full lifecycle on one small real change (inline)
RESUME /rite resolve ... ≡ /rite-resolve answer a HITL checkpoint
AUTO /rite autocomplete ... ≡ /rite-autocomplete unattended lifecycle; `--ship` stops at Ship preflight
QUICK /rite quick <change> ≡ /rite-quick express lane — one small reversible change (escalates if it grows)
UTILITY /rite frame | prototype | handoff | zoom-out | pressure-test (or direct shortcuts)
Small one-off change? A typo, copy tweak, config bump, or one-function fix →
/rite-quick(express lane: one contract → build → prove → ship, no full workspace). It escalates to/rite-specwhen the change is no longer small, reversible, and unambiguous. Use the full lifecycle above for features.
Core operating rules (every DevRites skill enforces)
The operating rules live in .omp/skills/devrites-lib/reference/standards/core.md; DevRites skills Read it as
their first step, and the other rule files load on demand. See
.omp/skills/devrites-lib/reference/standards/README.md for the full index.