devrites 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/.claude-plugin/marketplace.json +24 -0
  2. package/.claude-plugin/plugin.json +43 -0
  3. package/CHANGELOG.md +391 -0
  4. package/LICENSE +56 -0
  5. package/NOTICE.md +18 -0
  6. package/README.md +582 -0
  7. package/SECURITY.md +193 -0
  8. package/bin/devrites.mjs +100 -0
  9. package/docs/architecture.md +272 -0
  10. package/docs/cli-mcp.md +57 -0
  11. package/docs/command-map.md +143 -0
  12. package/docs/flow.md +360 -0
  13. package/docs/release.md +29 -0
  14. package/docs/skills.md +214 -0
  15. package/docs/usage.md +325 -0
  16. package/install.sh +359 -0
  17. package/mcp/devrites-mcp.mjs +103 -0
  18. package/pack/.claude/agents/devrites-code-reviewer.md +50 -0
  19. package/pack/.claude/agents/devrites-doubt-reviewer.md +55 -0
  20. package/pack/.claude/agents/devrites-frontend-reviewer.md +52 -0
  21. package/pack/.claude/agents/devrites-performance-reviewer.md +47 -0
  22. package/pack/.claude/agents/devrites-plan-reviewer.md +79 -0
  23. package/pack/.claude/agents/devrites-security-auditor.md +53 -0
  24. package/pack/.claude/agents/devrites-simplifier-reviewer.md +75 -0
  25. package/pack/.claude/agents/devrites-slice-wright.md +181 -0
  26. package/pack/.claude/agents/devrites-spec-reviewer.md +72 -0
  27. package/pack/.claude/agents/devrites-strategy-reviewer.md +62 -0
  28. package/pack/.claude/agents/devrites-test-analyst.md +47 -0
  29. package/pack/.claude/hooks/devrites-a1-guard.sh +81 -0
  30. package/pack/.claude/hooks/devrites-allow.sh +44 -0
  31. package/pack/.claude/hooks/devrites-cursor.sh +28 -0
  32. package/pack/.claude/hooks/devrites-orient.sh +53 -0
  33. package/pack/.claude/hooks/devrites-redwatch.sh +39 -0
  34. package/pack/.claude/hooks/devrites-refresh-indexes.sh +127 -0
  35. package/pack/.claude/hooks/devrites-reviewer-readonly.sh +28 -0
  36. package/pack/.claude/hooks/devrites-statusline.sh +18 -0
  37. package/pack/.claude/hooks/devrites-stop-gate.sh +45 -0
  38. package/pack/.claude/hooks/devrites-wright-scope.sh +35 -0
  39. package/pack/.claude/hooks/hooks.json +52 -0
  40. package/pack/.claude/rules/README.md +48 -0
  41. package/pack/.claude/rules/afk-hitl.md +245 -0
  42. package/pack/.claude/rules/agents.md +98 -0
  43. package/pack/.claude/rules/anti-patterns.md +48 -0
  44. package/pack/.claude/rules/code-review.md +38 -0
  45. package/pack/.claude/rules/coding-style.md +55 -0
  46. package/pack/.claude/rules/context-hygiene.md +97 -0
  47. package/pack/.claude/rules/core.md +119 -0
  48. package/pack/.claude/rules/development-workflow.md +40 -0
  49. package/pack/.claude/rules/documentation.md +27 -0
  50. package/pack/.claude/rules/error-handling.md +33 -0
  51. package/pack/.claude/rules/git-workflow.md +35 -0
  52. package/pack/.claude/rules/hooks.md +38 -0
  53. package/pack/.claude/rules/patterns.md +45 -0
  54. package/pack/.claude/rules/performance.md +27 -0
  55. package/pack/.claude/rules/prose-style.md +101 -0
  56. package/pack/.claude/rules/security.md +63 -0
  57. package/pack/.claude/rules/testing.md +88 -0
  58. package/pack/.claude/rules/tooling.md +72 -0
  59. package/pack/.claude/settings.json +53 -0
  60. package/pack/.claude/skills/devrites-api-interface/SKILL.md +45 -0
  61. package/pack/.claude/skills/devrites-audit/SKILL.md +73 -0
  62. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +38 -0
  63. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +50 -0
  64. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +47 -0
  65. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +17 -0
  66. package/pack/.claude/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  67. package/pack/.claude/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  68. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +31 -0
  69. package/pack/.claude/skills/devrites-doubt/SKILL.md +75 -0
  70. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +96 -0
  71. package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +59 -0
  72. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  73. package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +45 -0
  74. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +215 -0
  75. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +59 -0
  76. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +60 -0
  77. package/pack/.claude/skills/devrites-interview/SKILL.md +81 -0
  78. package/pack/.claude/skills/devrites-lib/SKILL.md +76 -0
  79. package/pack/.claude/skills/devrites-lib/scripts/analyze.sh +78 -0
  80. package/pack/.claude/skills/devrites-lib/scripts/check-acceptance.sh +75 -0
  81. package/pack/.claude/skills/devrites-lib/scripts/close-out.sh +47 -0
  82. package/pack/.claude/skills/devrites-lib/scripts/conventions.py +273 -0
  83. package/pack/.claude/skills/devrites-lib/scripts/coverage.sh +51 -0
  84. package/pack/.claude/skills/devrites-lib/scripts/devrites.sh +69 -0
  85. package/pack/.claude/skills/devrites-lib/scripts/doctor.sh +92 -0
  86. package/pack/.claude/skills/devrites-lib/scripts/evidence-fresh.sh +63 -0
  87. package/pack/.claude/skills/devrites-lib/scripts/footprint.sh +45 -0
  88. package/pack/.claude/skills/devrites-lib/scripts/learnings.sh +74 -0
  89. package/pack/.claude/skills/devrites-lib/scripts/mutation-gate.sh +52 -0
  90. package/pack/.claude/skills/devrites-lib/scripts/package-existence.sh +68 -0
  91. package/pack/.claude/skills/devrites-lib/scripts/preamble.sh +76 -0
  92. package/pack/.claude/skills/devrites-lib/scripts/progress.sh +103 -0
  93. package/pack/.claude/skills/devrites-lib/scripts/readiness.sh +62 -0
  94. package/pack/.claude/skills/devrites-lib/scripts/reconcile.sh +123 -0
  95. package/pack/.claude/skills/devrites-lib/scripts/resolve.sh +279 -0
  96. package/pack/.claude/skills/devrites-lib/scripts/stuck.sh +67 -0
  97. package/pack/.claude/skills/devrites-lib/scripts/test-integrity.sh +87 -0
  98. package/pack/.claude/skills/devrites-lib/scripts/tick-afk.sh +52 -0
  99. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +105 -0
  100. package/pack/.claude/skills/devrites-prose-craft/reference/banned-phrases.md +95 -0
  101. package/pack/.claude/skills/devrites-prose-craft/reference/examples.md +88 -0
  102. package/pack/.claude/skills/devrites-prose-craft/reference/structures.md +134 -0
  103. package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +54 -0
  104. package/pack/.claude/skills/devrites-source-driven/SKILL.md +36 -0
  105. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +121 -0
  106. package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +93 -0
  107. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  108. package/pack/.claude/skills/rite/SKILL.md +135 -0
  109. package/pack/.claude/skills/rite/reference/menu.md +32 -0
  110. package/pack/.claude/skills/rite-adopt/SKILL.md +83 -0
  111. package/pack/.claude/skills/rite-adopt/reference/adoption.md +58 -0
  112. package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +19 -0
  113. package/pack/.claude/skills/rite-autocomplete/SKILL.md +96 -0
  114. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +35 -0
  115. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +54 -0
  116. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +59 -0
  117. package/pack/.claude/skills/rite-build/SKILL.md +261 -0
  118. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +145 -0
  119. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +25 -0
  120. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +149 -0
  121. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +32 -0
  122. package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +39 -0
  123. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +38 -0
  124. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +43 -0
  125. package/pack/.claude/skills/rite-build/reference/tdd.md +26 -0
  126. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +115 -0
  127. package/pack/.claude/skills/rite-define/SKILL.md +157 -0
  128. package/pack/.claude/skills/rite-define/reference/anti-patterns.md +25 -0
  129. package/pack/.claude/skills/rite-define/reference/gates.md +152 -0
  130. package/pack/.claude/skills/rite-define/reference/plan-template.md +65 -0
  131. package/pack/.claude/skills/rite-doctor/SKILL.md +50 -0
  132. package/pack/.claude/skills/rite-frame/SKILL.md +116 -0
  133. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +68 -0
  134. package/pack/.claude/skills/rite-handoff/SKILL.md +95 -0
  135. package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +34 -0
  136. package/pack/.claude/skills/rite-learn/SKILL.md +82 -0
  137. package/pack/.claude/skills/rite-plan/SKILL.md +82 -0
  138. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +24 -0
  139. package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +33 -0
  140. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +42 -0
  141. package/pack/.claude/skills/rite-plan/reference/slicing.md +52 -0
  142. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +34 -0
  143. package/pack/.claude/skills/rite-polish/SKILL.md +90 -0
  144. package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +177 -0
  145. package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +27 -0
  146. package/pack/.claude/skills/rite-polish/reference/backend-polish.md +80 -0
  147. package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +31 -0
  148. package/pack/.claude/skills/rite-polish/reference/code.md +85 -0
  149. package/pack/.claude/skills/rite-polish/reference/design-system-discovery.md +35 -0
  150. package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +109 -0
  151. package/pack/.claude/skills/rite-polish/reference/ui.md +136 -0
  152. package/pack/.claude/skills/rite-pressure-test/SKILL.md +43 -0
  153. package/pack/.claude/skills/rite-prototype/SKILL.md +87 -0
  154. package/pack/.claude/skills/rite-prove/SKILL.md +120 -0
  155. package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +25 -0
  156. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +26 -0
  157. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +25 -0
  158. package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +26 -0
  159. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +30 -0
  160. package/pack/.claude/skills/rite-quick/SKILL.md +81 -0
  161. package/pack/.claude/skills/rite-resolve/SKILL.md +113 -0
  162. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +114 -0
  163. package/pack/.claude/skills/rite-review/SKILL.md +170 -0
  164. package/pack/.claude/skills/rite-review/reference/anti-patterns.md +32 -0
  165. package/pack/.claude/skills/rite-review/reference/cognitive-load.md +90 -0
  166. package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +26 -0
  167. package/pack/.claude/skills/rite-review/reference/five-axis-review.md +46 -0
  168. package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +130 -0
  169. package/pack/.claude/skills/rite-review/reference/parallel-dispatch.md +62 -0
  170. package/pack/.claude/skills/rite-review/reference/performance-review.md +28 -0
  171. package/pack/.claude/skills/rite-review/reference/security-review.md +32 -0
  172. package/pack/.claude/skills/rite-seal/SKILL.md +183 -0
  173. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +27 -0
  174. package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +63 -0
  175. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +72 -0
  176. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +37 -0
  177. package/pack/.claude/skills/rite-seal/reference/parallel-dispatch.md +69 -0
  178. package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +30 -0
  179. package/pack/.claude/skills/rite-seal/reference/seal-template.md +36 -0
  180. package/pack/.claude/skills/rite-ship/SKILL.md +120 -0
  181. package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +25 -0
  182. package/pack/.claude/skills/rite-ship/reference/close-out.md +31 -0
  183. package/pack/.claude/skills/rite-ship/reference/design-memory.md +120 -0
  184. package/pack/.claude/skills/rite-ship/reference/git-ship.md +42 -0
  185. package/pack/.claude/skills/rite-ship/reference/ship-template.md +33 -0
  186. package/pack/.claude/skills/rite-spec/SKILL.md +126 -0
  187. package/pack/.claude/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  188. package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +25 -0
  189. package/pack/.claude/skills/rite-spec/reference/interview-patterns.md +56 -0
  190. package/pack/.claude/skills/rite-spec/reference/investigation.md +64 -0
  191. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +61 -0
  192. package/pack/.claude/skills/rite-spec/reference/references-intake.md +57 -0
  193. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +73 -0
  194. package/pack/.claude/skills/rite-spec/reference/spec-template.md +124 -0
  195. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +159 -0
  196. package/pack/.claude/skills/rite-status/SKILL.md +101 -0
  197. package/pack/.claude/skills/rite-temper/SKILL.md +119 -0
  198. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +29 -0
  199. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +65 -0
  200. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +53 -0
  201. package/pack/.claude/skills/rite-temper/reference/significance.md +46 -0
  202. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +90 -0
  203. package/pack/.claude/skills/rite-vet/SKILL.md +155 -0
  204. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +29 -0
  205. package/pack/.claude/skills/rite-vet/reference/artifacts.md +135 -0
  206. package/pack/.claude/skills/rite-vet/reference/cross-model.md +41 -0
  207. package/pack/.claude/skills/rite-vet/reference/depth.md +53 -0
  208. package/pack/.claude/skills/rite-vet/reference/eng-lenses.md +48 -0
  209. package/pack/.claude/skills/rite-vet/reference/review-axes.md +167 -0
  210. package/pack/.claude/skills/rite-zoom-out/SKILL.md +75 -0
  211. package/package.json +68 -0
  212. package/scripts/build-release-tarball.sh +74 -0
  213. package/scripts/check-cross-refs.py +121 -0
  214. package/scripts/check-no-global-writes.sh +44 -0
  215. package/scripts/check-rule-uniqueness.sh +73 -0
  216. package/scripts/devrites-detect.sh +175 -0
  217. package/scripts/eval-runner.py +273 -0
  218. package/scripts/grade-feature.sh +104 -0
  219. package/scripts/install-lib.sh +83 -0
  220. package/scripts/pin.sh +166 -0
  221. package/scripts/render-eval-summary.py +48 -0
  222. package/scripts/run-evals.sh +149 -0
  223. package/scripts/run-outcome-evals.sh +49 -0
  224. package/scripts/scan-pack-security.py +209 -0
  225. package/scripts/scan-supply-chain-iocs.py +127 -0
  226. package/scripts/supply-chain-iocs.json +11 -0
  227. package/scripts/sync-version.sh +56 -0
  228. package/scripts/validate-frontmatter.py +149 -0
  229. package/scripts/validate-workflow-security.py +86 -0
  230. package/scripts/validate.sh +234 -0
  231. package/uninstall.sh +137 -0
  232. package/update.sh +196 -0
package/docs/skills.md ADDED
@@ -0,0 +1,214 @@
1
+ # All 29 skills
2
+
3
+ The pack ships **29 skills total** — 20 user-invocable `rite-*` workflow + utility skills, 9 model-invoked `devrites-*` specialists. Each skill is a structured workflow with its own operating rules, anti-rationalization tables, and red flags. Engineering rules live at `.claude/rules/`; each `rite-*` skill Reads `.claude/rules/core.md` as its first step (step 0) and pulls the other rule files on demand (no carrier skill, no session-start autoload). A 30th directory — the internal `devrites-lib` library skill (`user-invocable: false`, not a command) — ships the cross-cutting scripts the workflow skills run: the read-only orientation preamble and the `readiness` / `evidence-fresh` / `acceptance` gate scripts, plus the `tick-afk` / `resolve` / `close-out` state mutators. A unified `devrites` CLI and an MCP server expose those ops to any tool (see [`cli-mcp.md`](cli-mcp.md)).
4
+
5
+ **Naming convention.** `rite-*` is the user-facing slash-command surface (lifecycle phases plus utilities — `rite-prototype`, `rite-handoff`, `rite-zoom-out`, `rite-pressure-test`). `devrites-*` is internal (model-invoked, hidden from the menu) and collision-avoiding against bundled Claude Code skill names. Visibility is governed by each skill's `user-invocable:` flag; the prefix mirrors it.
6
+
7
+ ---
8
+
9
+ ## Failure-mode section convention
10
+
11
+ Every skill carries a **failure-mode section** — the highest-signal content for keeping
12
+ the model honest in that phase (per Anthropic's skill-authoring guidance: capture the
13
+ model's actual failure points and grow the list over time). The canonical heading is
14
+ **`## Gotchas`**. Existing skills express the same intent under equivalent headings, all
15
+ of which satisfy the convention:
16
+
17
+ - **Lifecycle skills** → a `> **Mid-flight discipline.**` blockquote pointing at
18
+ `reference/anti-patterns.md` (rite-spec, -temper, -define, -vet, -build, -prove,
19
+ -polish, -review, -seal, -ship, -plan, -resolve, -autocomplete).
20
+ - **Specialists / utilities** → `## Hard rules` (browser-proof, debug-recovery),
21
+ `## NEVER` (ux-shape), `## Rules` (doubt, source-driven), `## Boundaries`
22
+ (pressure-test), `## Don't ask` (interview), `## When NOT to use` (zoom-out),
23
+ `## What NOT to include` (handoff), `## Scope reminders` (audit), `## Anti-AI-slop`
24
+ (frontend-craft), the numbered rule list (prototype), and `## Gotchas`
25
+ (api-interface, rite, status).
26
+
27
+ **New skills SHOULD use `## Gotchas`** — 2–3 traps the model most reaches for in that
28
+ phase (the rationalizations in `pack/.claude/rules/anti-patterns.md`, specialized), not a
29
+ restatement of the positive steps. A mechanical rename of the equivalents above to a
30
+ single `## Gotchas` heading is a possible future normalization; the content already holds.
31
+
32
+ ## Commands quick reference
33
+
34
+ Every user-invocable skill responds to **both** `/rite <verb>` (menu form — type `/rite` for the discoverable entry point) and `/rite-<verb>` (direct shortcut). Both hit the same skill; use whichever reads more naturally.
35
+
36
+ | Menu form | Direct shortcut | Phase | Does |
37
+ |---|---|---|---|
38
+ | `/rite` | — | menu | Compact menu + dispatches verb args to the matching `rite-<verb>` skill. Without args, renders the menu. |
39
+ | `/rite spec <feature>` | `/rite-spec <feature>` | spec | **Start here.** Deep investigation → writes `spec.md`: understands the ask fully, decides **placement** (where it lives), names what it resolves, closes gaps with you (questions with options), and gathers any design references you optionally attach (screenshots / Figma / links / video — there may be none). |
40
+ | `/rite temper` | `/rite-temper` | temper | **Optional, before define.** Strategic review of the readied spec — pick a scope mode (expand / selective / hold-rigor / reduce-to-MVP), run a pre-mortem, harden the spec, write `strategy.md`, and fold the decisions back via the Spec Drift Guard. Significance-gated (skips small work); **mandatory inside `/rite-autocomplete`**. |
41
+ | `/rite define` | `/rite-define` | plan | Turns the approved spec into `plan.md` + vertical task slices + state. |
42
+ | `/rite vet` | `/rite-vet` | vet | **Before build — every feature.** Engineering review of the defined plan — scope challenge (reuse / minimum-diff / complexity smell), then architecture / plan code-quality / test-coverage design / performance through senior-engineer lenses, every finding confidence-banded with a quote-the-source verification gate. Maps failure modes + parallel lanes, hardens `plan.md` / `tasks.md`, writes the build-readable `test-plan.md`; acceptance-changing deltas fold back via the Spec Drift Guard. `--cross-model` adds a different-model second opinion. Runs on every plan — depth scales to stakes (light pass on simple, full on big/risky), never skipped; **always inside `/rite-autocomplete`**. |
43
+ | `/rite plan` | `/rite-plan` | re-plan | Decompose / reslice / repair an active plan. |
44
+ | `/rite build` | `/rite-build` | build | Implement **exactly one** vertical slice, then stop — dispatches a fresh-context `devrites-slice-wright` to write it; gates and records the result. |
45
+ | `/rite prove` | `/rite-prove` | prove | Tests + build + runtime + browser evidence for the current scope. |
46
+ | `/rite polish` | `/rite-polish` | polish | Code polish always; UI normalize + polish if UI in scope. Modes: `bolder / quieter / distill / harden / normalize-only`. |
47
+ | `/rite review` | `/rite-review` | review | Feature-scoped multi-axis review (parallel Spec + Standards axes). |
48
+ | `/rite seal` | `/rite-seal` | seal | Final GO / NO-GO decision gate — walks acceptance vs evidence, fans out reviewers, writes the verdict to `seal.md`. Decides only; hands off to `/rite-ship`. |
49
+ | `/rite ship` | `/rite-ship` | ship | Final phase. Requires a GO in `seal.md` → renders type-`GO`, runs the irreversible git ladder (commit → push → tag/PR), writes `ship.md`, then closes the task (archives the workspace, clears `ACTIVE`). |
50
+ | `/rite autocomplete` | `/rite-autocomplete` | (orchestrator) | Runs the whole lifecycle unattended (spec → … → seal → ship), choosing the best option at each soft gate. `--ship` / `--yolo` auto-confirms the final type-`GO`. |
51
+ | `/rite status` | `/rite-status` | status | Where the active feature stands. |
52
+ | `/rite resolve <qid> "<answer>"` | `/rite-resolve <qid> "<answer>"` | resume | Answer a HITL checkpoint (or `--drop <qid>` / `--batch <file>`); clears `state.md` `Awaiting human` and resumes. |
53
+ | `/rite zoom-out` | `/rite-zoom-out` | utility | Step up an abstraction layer when stuck — returns a map of the area (modules, callers, decisions) in the project's vocabulary. |
54
+ | `/rite prototype` | `/rite-prototype` | utility | Throwaway code that answers ONE design question before committing — routes between a Logic harness (state/data model) and 2–4 radically different UI variations on one route. |
55
+ | `/rite handoff` | `/rite-handoff` | utility | Compact the chat session into a handoff doc a fresh agent can pick up — syncs to the workspace, references existing artifacts by path. |
56
+ | `/rite pressure-test` | `/rite-pressure-test` | utility | Diverge → converge on a rough idea before specifying. |
57
+
58
+ The 9 model-invoked internal specialists (hidden from the menu): `devrites-interview`, `-source-driven`, `-doubt`, `-ux-shape`, `-frontend-craft`, `-browser-proof`, `-debug-recovery`, `-api-interface`, `-audit` (security / perf / simplify). The `/rite` menu carries the routing, the five user-invocable utilities all use the `rite-*` prefix (`rite-prototype`, `rite-handoff`, `rite-zoom-out`, `rite-pressure-test`, `rite-autocomplete`), and the `/rite-polish` phases live as references inside the same skill rather than as `rite-polish-code` / `rite-polish-ui`. Triggers and interactions are documented in [`command-map.md`](command-map.md); diagrams in [`flow.md`](flow.md).
59
+
60
+ ---
61
+
62
+ ## Phase-by-phase catalogue
63
+
64
+ ### Menu & status — Find your place
65
+
66
+ | Skill | What It Does | Use When |
67
+ |---|---|---|
68
+ | [`rite`](../pack/.claude/skills/rite/SKILL.md) | Compact menu + active-feature status + suggested next command. Does not run a workflow. | You type `/rite`, ask "what DevRites commands exist", or "where am I". |
69
+ | [`rite-status`](../pack/.claude/skills/rite-status/SKILL.md) | Read-only report: phase, run mode (AFK/HITL), status, active slice, next action, evidence, open questions by gate, drift, risks. | You ask "where am I", "what's the status", "what's next". |
70
+ | [`rite-resolve`](../pack/.claude/skills/rite-resolve/SKILL.md) | Answer / drop / batch-resolve open `questions.md` entries; clears `state.md` `Awaiting human` and resumes the workflow. | A HITL checkpoint is open or AFK left blocking questions; you type `/rite-resolve <qid> "<answer>"`. |
71
+
72
+ ### Spec — Understand the ask before any code
73
+
74
+ | Skill | What It Does | Use When |
75
+ |---|---|---|
76
+ | [`rite-spec`](../pack/.claude/skills/rite-spec/SKILL.md) | Deep investigation → writes `spec.md`. Decides **placement**, names what it resolves, closes gaps with you, gathers design refs. | You start a feature, have a vague idea, attach screenshots/Figma/video, or say "spec this". |
77
+ | [`devrites-ux-shape`](../pack/.claude/skills/devrites-ux-shape/SKILL.md) | **Plans UX/UI before code** — writes the feature-level `design-brief.md` (design direction, key states, interaction model, Figma/image visual-direction probe) that the build targets. Woven into spec/build, not a separate phase. | `/rite-spec` detects UI, or you say "shape the UX" / "plan the UI before coding" / "design direction". |
78
+ | [`devrites-interview`](../pack/.claude/skills/devrites-interview/SKILL.md) | One-question-at-a-time interview until ~95% confidence. | The ask is underspecified, or user says "interview me" / "grill me". |
79
+ | [`rite-pressure-test`](../pack/.claude/skills/rite-pressure-test/SKILL.md) | Structured divergent → convergent thinking; rough concept → buildable proposal. | The idea itself needs exploration before specifying; users say "ideate", "stress-test my plan", "I have a vague idea". |
80
+
81
+ ### Temper — strategic review before planning *(optional; mandatory in `/rite-autocomplete`)*
82
+
83
+ | Skill | What It Does | Use When |
84
+ |---|---|---|
85
+ | [`rite-temper`](../pack/.claude/skills/rite-temper/SKILL.md) | Strategic review of a readied `spec.md`: pick a scope mode (expand / selective / hold-rigor / reduce-to-MVP), run a pre-mortem, score 9 dimensions on a floor-gate, then write `strategy.md` and fold decisions into `spec.md` / `decisions.md` / `assumptions.md` via the Spec Drift Guard. Adversarial fresh-context loop via [`devrites-strategy-reviewer`](../pack/.claude/agents/devrites-strategy-reviewer.md). Ambition on outcomes, minimalism on the surface. | A big / risky feature (auth · data model · public API · migration · multi-slice · ambiguous scope), or you say "think bigger" / "scope check" / "pre-mortem". Skips low-stakes specs in one line. |
86
+
87
+ ### Plan — Decompose into vertical slices
88
+
89
+ | Skill | What It Does | Use When |
90
+ |---|---|---|
91
+ | [`rite-define`](../pack/.claude/skills/rite-define/SKILL.md) | Approved spec → `plan.md` + vertical task slices + `state.md`. | `spec.md` exists and is approved. |
92
+ | [`rite-plan`](../pack/.claude/skills/rite-plan/SKILL.md) | Decompose / reslice / repair an active plan after drift. | Spec Drift Guard fires, or you need to repair an existing plan. |
93
+
94
+ ### Vet — Lock in the engineering plan before building
95
+
96
+ | Skill | What It Does | Use When |
97
+ |---|---|---|
98
+ | [`rite-vet`](../pack/.claude/skills/rite-vet/SKILL.md) | Engineering review of `plan.md` + `tasks.md`: scope challenge (reuse / minimum-diff / complexity smell), then architecture / plan code-quality / test-coverage design / performance through senior-engineer lenses, every finding confidence-banded with a quote-the-source verification gate. Maps failure modes + parallel lanes, hardens the plan, writes the build-readable `test-plan.md`; acceptance-changing deltas fold back via the Spec Drift Guard. Adversarial fresh-context loop via [`devrites-plan-reviewer`](../pack/.claude/agents/devrites-plan-reviewer.md) on the full pass; optional `--cross-model` second opinion. | **Every defined plan, before build** — depth scales to stakes: a light pass on a simple, reversible plan; the full pass on a big / risky one (migration · auth · public API · data model · multi-slice · >8 files · new dependency). Never skipped; always in `/rite-autocomplete`. |
99
+
100
+ ### Build — One verified slice at a time
101
+
102
+ | Skill | What It Does | Use When |
103
+ |---|---|---|
104
+ | [`rite-build`](../pack/.claude/skills/rite-build/SKILL.md) | Orchestrates **exactly one** vertical slice: pre-flight gates, then dispatches a fresh-context [`devrites-slice-wright`](../pack/.claude/agents/devrites-slice-wright.md) for the build core, then doubts / gates / records with evidence. | A plan exists and the next slice is ready. |
105
+ | [`devrites-source-driven`](../pack/.claude/skills/devrites-source-driven/SKILL.md) | Consult official docs / source before relying on framework behavior; record the source. | API, config, or framework behavior is assumed rather than known. |
106
+ | [`devrites-api-interface`](../pack/.claude/skills/devrites-api-interface/SKILL.md) | Design stable API / interface contracts — REST/GraphQL, module boundaries, type contracts, FE/BE split. | A slice crosses a boundary or defines a public interface. |
107
+ | [`devrites-debug-recovery`](../pack/.claude/skills/devrites-debug-recovery/SKILL.md) | Reproduce → ranked hypotheses → instrument → fix in scope → regression-test. Stops guess-and-retry. | Tests, builds, or runtime checks fail. |
108
+
109
+ ### Prove — Real evidence, including the browser
110
+
111
+ | Skill | What It Does | Use When |
112
+ |---|---|---|
113
+ | [`rite-prove`](../pack/.claude/skills/rite-prove/SKILL.md) | Tests + build + runtime + browser evidence for the current scope. | All slices built; ready for full verification. |
114
+ | [`devrites-browser-proof`](../pack/.claude/skills/devrites-browser-proof/SKILL.md) | Browser proof ladder: browser-harness → Chrome DevTools MCP → `/run`+`/verify` → project E2E → manual. | Scope touches UI. |
115
+
116
+ ### Polish — Normalize, then ship-quality detail pass
117
+
118
+ | Skill | What It Does | Use When |
119
+ |---|---|---|
120
+ | [`rite-polish`](../pack/.claude/skills/rite-polish/SKILL.md) | Orchestrator. Always runs code polish (`reference/code.md`); detects UI scope and runs UI normalize + polish (`reference/ui.md`) when needed. Accepts mode tokens (`bolder`, `quieter`, `distill`, `harden`, `normalize-only`). | All slices proven; ready to finish. |
121
+ | [`devrites-frontend-craft`](../pack/.claude/skills/devrites-frontend-craft/SKILL.md) | Senior frontend craft — register, shape-before-code, all states, design system, anti-AI-slop, Core Web Vitals + WCAG 2.2. | A slice touches UI. |
122
+
123
+ ### Review — Adversarial, scoped to the feature
124
+
125
+ | Skill | What It Does | Use When |
126
+ |---|---|---|
127
+ | [`rite-review`](../pack/.claude/skills/rite-review/SKILL.md) | Multi-axis feature-scoped review. Parallel **Spec axis** (`devrites-spec-reviewer`) + **Standards axis** (`devrites-code-reviewer`) sub-agents; severity-labeled findings. | Polish done; ready for a final pass. |
128
+ | [`devrites-doubt`](../pack/.claude/skills/devrites-doubt/SKILL.md) | In-flight adversarial review of risky decisions — branching logic, boundaries, data/auth/API changes, migrations. | About to stand a "this is safe / scales / matches spec" claim. |
129
+ | [`devrites-audit`](../pack/.claude/skills/devrites-audit/SKILL.md) | Read-only audit dispatch — picks the right reviewer subagent on the requested axis (`security` / `perf` / `simplify`). Single-axis only; multi-axis parallel fan-out lives inline in `/rite-seal` (see `rite-seal/reference/parallel-dispatch.md`). | Polish Phase 1 (`simplify`); review involves user input / auth / data / external integrations / secrets / permissions (`security`); performance is relevant or regression risk visible (`perf`). |
130
+
131
+ ### Seal — GO / NO-GO decision
132
+
133
+ | Skill | What It Does | Use When |
134
+ |---|---|---|
135
+ | [`rite-seal`](../pack/.claude/skills/rite-seal/SKILL.md) | Pure decision gate. Walks acceptance vs evidence, fans out reviewers, writes the GO / NO-GO verdict to `seal.md`. Decides only — no git; on GO it sets `state.md` `Next step: /rite-ship`. | Review is clean; you ask "GO / NO-GO", "is it safe to merge", "decide if we can ship". |
136
+
137
+ ### Ship — Execute + close the task
138
+
139
+ | Skill | What It Does | Use When |
140
+ |---|---|---|
141
+ | [`rite-ship`](../pack/.claude/skills/rite-ship/SKILL.md) | Final phase. Requires a GO in `seal.md` → renders type-`GO`, runs the irreversible git ladder (commit → push → tag/PR per project convention), writes `ship.md`, then closes the task: sets phase `done`, archives `.devrites/work/<slug>/` → `.devrites/archive/<slug>/` (all `.md` preserved), clears `.devrites/ACTIVE`. | Seal returned GO; you say "ship it", "ship this", "push it out", "close the task". |
142
+
143
+ ### Utility — Stand-alone helpers
144
+
145
+ | Skill | What It Does | Use When |
146
+ |---|---|---|
147
+ | [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → … → seal → ship), choosing the best option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers an up-front `devrites-interview`; after that it runs without per-phase iteration, pausing only on hard irreversible-risk / blocking / escalating gates, an open validating gate, NO-GO, or budget exhaustion. Default stops at the final type-`GO`; `--ship` (alias `--yolo`) auto-confirms it. | "Autocomplete", "do the whole thing", "run the full cycle", "one-shot this feature". |
148
+ | [`rite-zoom-out`](../pack/.claude/skills/rite-zoom-out/SKILL.md) | Map an unfamiliar area — modules, callers, callees, decisions — in the project's domain glossary. | You say "zoom out", "I don't know this area", "map this area", "bigger picture". |
149
+ | [`rite-prototype`](../pack/.claude/skills/rite-prototype/SKILL.md) | Throwaway code answering ONE design question — logic harness OR 2–4 UI variations on one route. | "Prototype this", "let me play with it", "try a few designs", question is undecidable on paper. |
150
+ | [`rite-handoff`](../pack/.claude/skills/rite-handoff/SKILL.md) | Compact chat session → handoff doc. References existing `.devrites/work/<slug>/` artifacts by path. | "Handoff", "summarize this session", before `/clear`, fresh agent will continue. |
151
+ | [`rite-learn`](../pack/.claude/skills/rite-learn/SKILL.md) | Cross-feature learning loop — mine shipped features for recurring mistakes + dismissed-finding classes (`learnings.sh mine`), propose project-local lessons into `.devrites/learnings.md` (loaded by the review skills before a fan-out). | After several features ship; "what have we learned", "harvest lessons", "why does this keep coming up". |
152
+
153
+ ### Foundation — Engineering rules
154
+
155
+ | Skill | What It Does | Use When |
156
+ |---|---|---|
157
+ | (engineering rules) | Live at `.claude/rules/` post-install — each `rite-*` skill Reads `.claude/rules/core.md` as its first step (step 0); the other 15 rule files (`coding-style.md`, `error-handling.md`, `testing.md`, `code-review.md`, `security.md`, `performance.md`, `patterns.md`, `git-workflow.md`, `hooks.md`, `documentation.md`, `development-workflow.md`, `agents.md`, `context-hygiene.md`, `afk-hitl.md`, `anti-patterns.md`) load on demand per skill body. No carrier skill, no session-start autoload. | n/a — step-0 core / on-demand by path. |
158
+
159
+ ---
160
+
161
+ ## Review agents — Fresh-context reviewers
162
+
163
+ Spawned by `/rite-review`, `/rite-seal` (post-build), `/rite-temper` (pre-plan), and `/rite-vet` (pre-build) for independent judgment. Read-only; given only the artifact + rubric, never the author's reasoning.
164
+
165
+ | Agent | Purpose |
166
+ |---|---|
167
+ | [`devrites-strategy-reviewer`](../pack/.claude/agents/devrites-strategy-reviewer.md) | **Pre-plan** spec-vs-rubric strategic review (ambition / scope / premise / pre-mortem / YAGNI / testability / irreversibility / cross-cutting / convention) — via `/rite-temper`, not the seal fan-out. |
168
+ | [`devrites-plan-reviewer`](../pack/.claude/agents/devrites-plan-reviewer.md) | **Pre-build** plan-vs-rubric engineering review (architecture / scope-reuse / plan code-quality / test-coverage design / performance / reversibility / failure-mode coverage), confidence-banded with a quote-the-source verification gate — via `/rite-vet`, not the seal fan-out. |
169
+ | [`devrites-spec-reviewer`](../pack/.claude/agents/devrites-spec-reviewer.md) | Does the diff implement the spec? Missing / partial / wrong criteria; scope creep. |
170
+ | [`devrites-code-reviewer`](../pack/.claude/agents/devrites-code-reviewer.md) | Correctness / readability / architecture / maintainability. |
171
+ | [`devrites-test-analyst`](../pack/.claude/agents/devrites-test-analyst.md) | Do the tests actually prove the acceptance criteria? |
172
+ | [`devrites-frontend-reviewer`](../pack/.claude/agents/devrites-frontend-reviewer.md) | UX, a11y, responsive, design-system, anti-AI-slop. |
173
+ | [`devrites-security-auditor`](../pack/.claude/agents/devrites-security-auditor.md) | OWASP Top 10, trust boundary, secrets, deps. |
174
+ | [`devrites-performance-reviewer`](../pack/.claude/agents/devrites-performance-reviewer.md) | N+1s, hot paths, payload size. |
175
+ | [`devrites-doubt-reviewer`](../pack/.claude/agents/devrites-doubt-reviewer.md) | Adversarial check of a single claim/decision. |
176
+ | [`devrites-simplifier-reviewer`](../pack/.claude/agents/devrites-simplifier-reviewer.md) | Independent simplification judgment (called by `devrites-audit simplify`). |
177
+
178
+ Seal fan-out diagram: [`flow.md` § /rite-seal fan-out](flow.md#4-rite-seal-fan-out).
179
+
180
+ ---
181
+
182
+ ## Executor agent — Fresh-context writer
183
+
184
+ The system's one **write-capable** agent — the mirror of the read-only reviewers above. Dispatched by `/rite-build` for the build core, in a clean context, with only the slice contract.
185
+
186
+ | Agent | Purpose |
187
+ |---|---|
188
+ | [`devrites-slice-wright`](../pack/.claude/agents/devrites-slice-wright.md) | Turn ONE slice contract into the smallest complete, idiomatic, proven implementation — orient → TDD → verify, anti-AI-slop, feature scope only. Writes code + tests; returns a structured artifact for the orchestrator to doubt, gate, and record. Writes no `.devrites/` bookkeeping; single-threaded (one per slice). |
189
+
190
+ Dispatch contract + return shape + fallback: [`rite-build/reference/wright-dispatch.md`](../pack/.claude/skills/rite-build/reference/wright-dispatch.md).
191
+
192
+ ---
193
+
194
+ ## `/rite-polish` orchestrator
195
+
196
+ `/rite-polish` always runs code polish; it detects UI scope from the diff and runs UI normalize + polish only when needed. Each half lives as a progressive-disclosure reference inside the skill (`reference/code.md`, `reference/ui.md`) so the orchestrator body stays small and each phase loads only when its trigger fires.
197
+
198
+ ```mermaid
199
+ flowchart LR
200
+ P[/rite-polish/] -->|always| C[reference/code.md<br/>Phase 1 + 2]
201
+ P -->|UI touched?| U[reference/ui.md<br/>Phase 3 + 4]
202
+ C --> O([polish-report.md])
203
+ U --> O
204
+ classDef o fill:#1f2937,stroke:#60a5fa,color:#f9fafb
205
+ classDef s fill:#312e81,stroke:#818cf8,color:#eef2ff
206
+ class P o
207
+ class C,U s
208
+ ```
209
+
210
+ Argument modes (`bolder`, `quieter`, `distill`, `harden`, `normalize-only`) pass through to Phase 4 (`reference/ui.md`).
211
+
212
+ ## `/rite-review` parallel axes & `/rite-seal` fan-out
213
+
214
+ `/rite-review` runs **Spec axis** (`devrites-spec-reviewer`) and **Standards axis** (`devrites-code-reviewer`) as parallel sub-agents so neither masks the other. `/rite-seal` fans out the full reviewer set in parallel (`devrites-{spec,code,test,frontend,security,performance}-reviewer`) and reconciles findings before the GO / NO-GO gate. Severity labels (Critical / Important / Suggestion / Nit / FYI) drive the gate; there's no advisory number — the gate is `Critical == 0` plus proven acceptance plus resolved drift. Diagrams: [`flow.md`](flow.md#3-rite-review-parallel-axes).
package/docs/usage.md ADDED
@@ -0,0 +1,325 @@
1
+ # DevRites — usage
2
+
3
+ Worked workflows. Every feature starts with `/rite-spec` (it investigates,
4
+ writes the spec, and creates the workspace). Every later phase reads the
5
+ active workspace (`.devrites/ACTIVE` → `.devrites/work/<slug>/`) first; if
6
+ none exists it tells you to run `/rite-spec <feature>`.
7
+
8
+ - **Full command reference** → [`command-map.md`](command-map.md)
9
+ - **Flow diagrams** → [`flow.md`](flow.md)
10
+ - **Architecture rationale** → [`architecture.md`](architecture.md)
11
+
12
+ ## The workspace
13
+
14
+ `/rite-spec` creates `.devrites/work/<slug>/` and writes the spec;
15
+ `/rite-define` adds the plan and tasks. All human-readable Markdown that
16
+ survives compaction and new sessions:
17
+
18
+ | File | Created by | Holds |
19
+ |---|---|---|
20
+ | `brief.md` | `/rite-spec` | one-line objective + definition of done |
21
+ | `spec.md` | `/rite-spec` | what to build + why, placement, acceptance, gaps/decisions |
22
+ | `references/` + `references.md` | `/rite-spec` | saved design refs — screenshots, Figma, video, links |
23
+ | `strategy.md` | `/rite-temper` | strategic spec review (optional): scope mode, pre-mortem, dimension scores |
24
+ | `plan.md` | `/rite-define` | approach, dependency graph, checkpoints, rollback |
25
+ | `tasks.md` | `/rite-define` | ordered vertical slices, each tagged `Mode: AFK \| HITL` + `Gate` / `SLA` / `Checkpoint` when HITL |
26
+ | `eng-review.md` | `/rite-vet` | engineering plan review (optional): scope challenge, axis findings, failure modes, parallelization |
27
+ | `test-plan.md` | `/rite-vet` | build-readable coverage target: coverage diagram, per-gap test requirements, acceptance→test map (read by `/rite-build` + `/rite-prove`) |
28
+ | `state.md` | every phase | phase, status, active slice + slice mode, risk, next step (the cursor); plus `Awaiting human` block when paused (run mode is derived from `.devrites/AFK`, not stored here) |
29
+ | `questions.md` | every phase | append-only Q&A — qid, slice, gate, status (`open` / `answered` / `dropped`), proposed answer, raised/answered timestamps |
30
+ | `decisions.md` / `assumptions.md` | every phase | running logs |
31
+ | `drift.md` | Spec Drift Guard | drift events + resolutions |
32
+ | `touched-files.md` | `/rite-build` | what files this feature touched |
33
+ | `evidence.md` | `/rite-build`, `/rite-prove` | recorded commands + output |
34
+ | `browser-evidence.md` | `/rite-prove`, `/rite-polish` (UI) | screenshots, console, network, viewport runs |
35
+ | `design-brief.md` | `devrites-frontend-craft` | shape, states, design references match |
36
+ | `polish-report.md` | `/rite-polish` | Phase 1-4 findings + fixes |
37
+ | `review.md` | `/rite-review` | Spec + Standards axes, severity-labelled findings |
38
+ | `seal.md` | `/rite-seal` | GO/NO-GO verdict + acceptance walk + blockers |
39
+ | `ship.md` | `/rite-ship` | what shipped — commit SHA(s), branch, tag/PR, acceptance summary, follow-ups |
40
+
41
+ When `/rite-ship` closes the task it **archives** the whole workspace —
42
+ `.devrites/work/<slug>/` → `.devrites/archive/<slug>/` (every `.md` above is
43
+ preserved, never deleted) — and clears `.devrites/ACTIVE`. The audit trail lives
44
+ on under `.devrites/archive/<slug>/`.
45
+
46
+ Project-root sentinel (outside the workspace):
47
+
48
+ | File | Created by | Holds |
49
+ |---|---|---|
50
+ | `.devrites/AFK` | you (presence = AFK mode active) | optional YAML: `max_slices`, `notify`, `allow_gates`. Empty file = AFK with defaults. See [`pack/.claude/rules/afk-hitl.md`](../pack/.claude/rules/afk-hitl.md). |
51
+
52
+ The shape of this directory is also documented in
53
+ [`flow.md` § Workspace state model](flow.md#7-workspace-state-model).
54
+
55
+ ## 1) Start a feature — spec then plan
56
+
57
+ ```text
58
+ You: I want some kind of reporting thing for admins.
59
+
60
+ /rite-spec admin-usage-report
61
+ → investigates deeply (codegraph/graphify): current behavior, placement,
62
+ what it resolves
63
+ → asks you one question at a time, each with options + a best guess,
64
+ until gaps are closed
65
+ → gathers any design references you give
66
+ → writes spec.md (creates the workspace)
67
+
68
+ /rite-define
69
+ → reads the approved spec
70
+ → writes plan.md + vertical task slices + state
71
+ → stops for confirmation
72
+ ```
73
+
74
+ ## 2) Normal feature — the build loop
75
+
76
+ ```text
77
+ /rite-spec add-csv-export # investigate → spec.md
78
+ /rite-define # spec → plan + vertical slices + state
79
+ /rite-build # slice 1 ("export endpoint returns CSV"); stops with evidence
80
+ /rite-build # slice 2 ("download button + states"); repeat for each slice
81
+ /rite-prove # ONCE all slices built: full tests + browser proof
82
+ /rite-polish # code polish (always) + UI normalize+polish (if UI)
83
+ /rite-review # feature-scoped multi-axis review (Spec + Standards in parallel)
84
+ /rite-seal # GO / NO-GO decision (no git) → on GO, points at /rite-ship
85
+ /rite-ship # type-GO + irreversible git ladder + close the task (archive + clear ACTIVE)
86
+ ```
87
+
88
+ `/rite-build` never auto-advances — you decide when the next slice runs.
89
+ `/rite-seal` **decides**; `/rite-ship` **executes + closes**. To run the whole
90
+ sequence unattended, see `/rite-autocomplete` (§11).
91
+
92
+ ## 3) Spec drift mid-build
93
+
94
+ ```text
95
+ /rite-build
96
+ → discovers the planned `User.export_token` column doesn't exist and adding
97
+ it changes the data model
98
+ → STOPS (Spec Drift Guard), records the drift in drift.md, classifies it as
99
+ "codebase reality mismatch"
100
+ → because it changes product behavior, asks you:
101
+
102
+ I hit spec drift:
103
+ - Spec/plan assumed: a per-user export token column
104
+ - Code/evidence shows: tokens are issued per-session, no user column
105
+ - Why it matters: changes the data model and the auth story
106
+ Which direction should DevRites take?
107
+ 1. Keep the requirement, add the column + migration
108
+ 2. Adjust to per-session tokens (matches existing behavior)
109
+ 3. Split token work into a follow-up feature
110
+ 4. Custom
111
+
112
+ You: 2
113
+
114
+ /rite-plan repair # updates spec/plan/tasks to per-session, marks drift resolved
115
+ /rite-build # resumes on the corrected plan
116
+ ```
117
+
118
+ ## 4) UI feature with browser-harness
119
+
120
+ ```text
121
+ /rite-spec settings-theme-toggle
122
+ → you give a Figma link + a screenshot of the target toggle; rite-spec
123
+ views them, saves the screenshot to references/, indexes references.md
124
+ → writes spec.md
125
+
126
+ /rite-define
127
+ → spec → slices; UI slice marked frontend-craft + browser-proof
128
+
129
+ /rite-build
130
+ → UI slice → devrites-frontend-craft: register = product surface, **match
131
+ the saved references**, shape the states (default/loading/empty/error/
132
+ disabled), use existing tokens + components, meet CWV + WCAG 2.2, avoid
133
+ anti-AI-slop
134
+
135
+ /rite-prove
136
+ → devrites-browser-proof: browser-harness detected → new_tab(route),
137
+ screenshot at 375 + 1280, exercise the toggle, check console clean,
138
+ **compare to references/**, record to browser-evidence.md
139
+
140
+ /rite-polish
141
+ → /rite-polish detects UI scope → reads reference/ui.md for normalize +
142
+ quality bar; re-screenshots; appends to polish-report.md
143
+
144
+ /rite-review
145
+ /rite-seal
146
+ /rite-ship
147
+ ```
148
+
149
+ If no browser tooling is available, proof is recorded as **pending (manual)**
150
+ with exact steps — the seal then weighs the UI risk.
151
+
152
+ ## 5) Backend-only feature
153
+
154
+ ```text
155
+ /rite-spec rate-limit-api # investigate → spec.md (no UI)
156
+ /rite-define # spec → plan + slices
157
+ /rite-build # no UI → no frontend craft / browser proof
158
+ /rite-prove # targeted tests + build/typecheck; runtime check of the limiter
159
+ /rite-polish # reference/code.md only (no UI scope detected)
160
+ /rite-review # devrites-audit security fires (auth/abuse surface), measure-first perf
161
+ /rite-seal # checks rollback for any config/migration change → GO/NO-GO
162
+ /rite-ship # type-GO + commit/push/tag + close the task
163
+ ```
164
+
165
+ ## 6) UI-direction prompt — refinement modes
166
+
167
+ ```text
168
+ /rite-polish bolder
169
+ → reads reference/ui.md and runs Phase 4 with emphasis on hierarchy +
170
+ weight contrast + decisive accent. Normalize (Phase 3) still runs first.
171
+
172
+ /rite-polish normalize-only
173
+ → reads reference/ui.md and runs Phase 3 only (drift removal). Stops
174
+ without the quality-bar pass.
175
+ ```
176
+
177
+ Other modes: `quieter` · `distill` · `harden`.
178
+
179
+ ## 7) Stuck in unfamiliar code
180
+
181
+ ```text
182
+ /rite-zoom-out
183
+ → returns a map: the area in 1 sentence (project's vocabulary), modules in
184
+ scope, callers in / calls out, ADR / decisions.md entries touching the
185
+ area, smallest sensible change-scope.
186
+ → uses codegraph_context + codegraph_explore if available; falls back to
187
+ Grep + Read otherwise.
188
+ ```
189
+
190
+ ## 8) Mid-flight handoff
191
+
192
+ ```text
193
+ /rite-handoff
194
+ → reads the chat, identifies anything chat-only that the workspace doesn't
195
+ already capture (open questions, decisions discussed, assumptions made,
196
+ drift status, ambiguous next action)
197
+ → appends to questions.md / decisions.md / assumptions.md / drift.md /
198
+ state.md as appropriate
199
+ → writes handoff.md referencing each artifact by path
200
+ → the next session (or a fresh agent) reads the workspace alone
201
+ ```
202
+
203
+ Run before `/clear` if leaving for > a few hours.
204
+
205
+ ## 9) HITL gate — pre-code pause and resume
206
+
207
+ ```text
208
+ /rite-build
209
+ → reads tasks.md slice 03; Mode: HITL, Gate: blocking
210
+ → STOPS before writing any code:
211
+
212
+ Slice 03 — list endpoint is HITL (blocking, SLA 15m).
213
+ Checkpoint: Composite (user_id, created_at) index, or two single-col indexes?
214
+ Proposed approach: composite — single read path, both columns used together
215
+ in the most common filter; downside is rebuild cost on bulk updates.
216
+ Decision needed before this slice can build.
217
+ Resume: /rite-resolve q-2026-05-28-001 "<answer>"
218
+
219
+ → appends q-...-001 to questions.md (status: open, gate: blocking)
220
+ → writes `Awaiting human` block to state.md, sets Status: awaiting_human
221
+
222
+ You: /rite-resolve q-2026-05-28-001 "composite — single-col is fine for now"
223
+
224
+ /rite-resolve
225
+ → flips q-...-001 status → answered (with answered_at + answer)
226
+ → clears `Awaiting human`, sets Status: running
227
+ → recommends /rite-build for slice 03
228
+
229
+ /rite-build
230
+ → resumes with the answer captured in questions.md
231
+ ```
232
+
233
+ If the answer changes acceptance criteria or scope, `/rite-resolve` recommends
234
+ `/rite-plan repair` first instead of an immediate `/rite-build`.
235
+
236
+ ## 10) AFK overnight run
237
+
238
+ ```text
239
+ # Drop the sentinel before bed. Keys are optional — empty file works.
240
+ cat > .devrites/AFK <<'EOF'
241
+ max_slices: 10
242
+ notify: "curl -d \"$DEVRITES_QID: $DEVRITES_QUESTION\" ntfy.sh/my-topic"
243
+ allow_gates: [advisory, validating]
244
+ EOF
245
+
246
+ /rite-build
247
+ → reads sentinel, run mode = afk
248
+ → slice 04 (AFK) → builds; devrites-doubt fires once, logs an advisory
249
+ entry to questions.md and continues
250
+ → slice 05 (AFK) → builds; targeted tests green, evidence.md updated
251
+ → slice 06 (HITL, Gate: validating) → in allow_gates, so builds + queues
252
+ a validating question; slice stays at `built (pending review)`
253
+ → slice 07 (HITL, Gate: blocking) → ALWAYS pauses; writes Awaiting human,
254
+ fires notify hook (your phone pings), STOPs
255
+ → state.md `AFK slices remaining`: 10 → 7 (max_slices stays 10, read-only)
256
+
257
+ # In the morning:
258
+ /rite-status
259
+ → Status: awaiting_human, 1 blocking q-..., 2 validating, 5 advisory
260
+ → recommends /rite-resolve q-...
261
+
262
+ /rite-resolve q-... "<answer>"
263
+ /rite-build # continue
264
+ ```
265
+
266
+ The loop refuses to mark a slice `built` if tests / types / lint go red — it
267
+ writes a blocking question and stops regardless of `allow_gates`. AFK never
268
+ silently accepts irreversible risk; see
269
+ [`pack/.claude/rules/afk-hitl.md`](../pack/.claude/rules/afk-hitl.md) for the
270
+ full list.
271
+
272
+ ## 11) Full unattended lifecycle — `/rite-autocomplete`
273
+
274
+ ```text
275
+ /rite-autocomplete "add CSV export for admins" --max-slices 8
276
+ → vague idea → runs devrites-interview once, up front (the only interactive
277
+ window), to ~95% confidence
278
+ → arms AFK, then drives every phase in order: /rite-spec → /rite-temper →
279
+ /rite-define → /rite-vet → /rite-build ×N → /rite-prove → /rite-polish →
280
+ /rite-review → /rite-seal (→ /rite-ship too when --ship is set)
281
+ → at each soft gate, picks the option the relevant specialist/reviewer
282
+ favours and records the rationale in decisions.md (never silently)
283
+ → seal returns GO → autocomplete STOPS (default) and hands off to /rite-ship
284
+
285
+ /rite-ship # human runs it → renders the type-GO prompt
286
+ You: GO # → commit · push · tag, then archive + clear ACTIVE
287
+ ```
288
+
289
+ Add `--ship` (alias `--yolo`) to auto-confirm the final type-`GO` for a
290
+ zero-touch push — autocomplete then proceeds straight to `/rite-ship`. It still
291
+ pauses on hard irreversible-risk (auth / migration / public-API / red tests),
292
+ blocking / escalating gates, an open `gate: validating`, a NO-GO, exhausted
293
+ `max_slices`, or low confidence — writing `state.md` and surfacing *why* before
294
+ it stops. Args: `[idea] [--ship|--yolo] [--max-slices N]`.
295
+
296
+ ## Checking in
297
+
298
+ - `/rite` — compact menu + suggested next command. **Does not** read state.
299
+ - `/rite-status` — detailed status: phase, **run mode (AFK / HITL)**, status
300
+ (`running` / `awaiting_human` / `blocked` / `done`), next action, evidence,
301
+ open questions broken down by gate, drift, risks, **handoff readiness**.
302
+ - `/rite-resolve <qid> "<answer>"` — answer / `--drop` / `--batch`-resolve an
303
+ open question; the canonical writer for `status: open → answered` and the
304
+ only thing that clears `Awaiting human`.
305
+
306
+ ## Tips
307
+
308
+ - Commit `.devrites/` so the team and future sessions share feature state.
309
+ - **`.devrites/AFK` is per-developer, not per-repo** — gitignore it (or commit
310
+ it deliberately if the team agrees on AFK defaults). The sentinel is
311
+ read-only config: it toggles your local session mode and sets the initial
312
+ `max_slices` budget; nothing else. The mutable remaining-slice count lives
313
+ in `state.md` (`AFK slices remaining`), never in the sentinel.
314
+ - One feature active at a time (`ACTIVE`). To start or switch, run
315
+ `/rite-spec <other>` (it creates/selects that workspace and writes its
316
+ spec).
317
+ - **Recommended AFK progression**: HITL first to refine the prompt and plan,
318
+ then drop the sentinel for the bulk stretch. Always cap iterations
319
+ (`max_slices: 10` is a reasonable default).
320
+ - Let the specialists fire on their triggers — you don't invoke `devrites-*`
321
+ directly. The exceptions are the three public utilities: `/rite-zoom-out`,
322
+ `/rite-prototype`, `/rite-handoff`.
323
+ - The `devrites-` prefix is a namespace, not a privacy marker — whether a
324
+ skill is public is the `user-invocable:` flag, documented for each in
325
+ [`command-map.md`](command-map.md).