devrites 5.10.1 → 5.11.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 (296) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +24 -10
  3. package/bin/devrites.mjs +2 -0
  4. package/docs/cli.md +4 -1
  5. package/docs/command-map.md +7 -5
  6. package/docs/engine/commands.md +7 -5
  7. package/docs/orchestration.md +5 -2
  8. package/docs/skills.md +10 -4
  9. package/docs/usage.md +3 -1
  10. package/engine/commands.go +3 -0
  11. package/engine/help.go +190 -0
  12. package/engine/help_test.go +98 -0
  13. package/engine/internal/devritespaths/paths.go +2 -0
  14. package/engine/internal/hostpack/hostpack.go +39 -5
  15. package/engine/internal/hostpack/hostpack_test.go +27 -13
  16. package/engine/internal/install/apply.go +17 -4
  17. package/engine/internal/install/install.go +9 -2
  18. package/engine/internal/install/install_test.go +15 -2
  19. package/engine/internal/install/preflight.go +8 -2
  20. package/engine/internal/install/update.go +1 -1
  21. package/engine/internal/parallel/cli.go +90 -32
  22. package/engine/internal/parallel/cli_test.go +32 -0
  23. package/engine/main.go +15 -8
  24. package/engine/root_routing_test.go +4 -0
  25. package/install.sh +4 -1
  26. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
  27. package/pack/.claude/skills/rite-autocomplete/SKILL.md +10 -5
  28. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +12 -7
  29. package/pack/.claude/skills/rite-build/SKILL.md +3 -1
  30. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +4 -3
  31. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +3 -1
  32. package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
  33. package/pack/generated/README.md +4 -2
  34. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
  35. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +10 -5
  36. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +12 -7
  37. package/pack/generated/claude/skills/rite-build/SKILL.md +3 -1
  38. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +4 -3
  39. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +3 -1
  40. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
  41. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
  42. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +10 -5
  43. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +12 -7
  44. package/pack/generated/codex/skills/rite-build/SKILL.md +3 -1
  45. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +4 -3
  46. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +3 -1
  47. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
  48. package/pack/generated/devin/AGENTS.md +23 -0
  49. package/pack/generated/devin/agents/devrites-code-reviewer.md +145 -0
  50. package/pack/generated/devin/agents/devrites-devex-reviewer.md +126 -0
  51. package/pack/generated/devin/agents/devrites-doubt-reviewer.md +91 -0
  52. package/pack/generated/devin/agents/devrites-evidence-scout.md +77 -0
  53. package/pack/generated/devin/agents/devrites-frontend-reviewer.md +119 -0
  54. package/pack/generated/devin/agents/devrites-performance-reviewer.md +117 -0
  55. package/pack/generated/devin/agents/devrites-plan-drafter.md +102 -0
  56. package/pack/generated/devin/agents/devrites-plan-reviewer.md +144 -0
  57. package/pack/generated/devin/agents/devrites-proof-runner.md +76 -0
  58. package/pack/generated/devin/agents/devrites-retrospector.md +64 -0
  59. package/pack/generated/devin/agents/devrites-security-auditor.md +112 -0
  60. package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +97 -0
  61. package/pack/generated/devin/agents/devrites-slice-wright.md +219 -0
  62. package/pack/generated/devin/agents/devrites-spec-reviewer.md +99 -0
  63. package/pack/generated/devin/agents/devrites-strategy-reviewer.md +102 -0
  64. package/pack/generated/devin/agents/devrites-test-analyst.md +97 -0
  65. package/pack/generated/devin/agents/devrites-upgrade-planner.md +91 -0
  66. package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +64 -0
  67. package/pack/generated/devin/skills/devrites-audit/SKILL.md +51 -0
  68. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +77 -0
  69. package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  70. package/pack/generated/devin/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  71. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +97 -0
  72. package/pack/generated/devin/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  73. package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
  74. package/pack/generated/devin/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  75. package/pack/generated/devin/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  76. package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  77. package/pack/generated/devin/skills/devrites-debug-recovery/reference/trace.md +25 -0
  78. package/pack/generated/devin/skills/devrites-doubt/SKILL.md +80 -0
  79. package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +87 -0
  80. package/pack/generated/devin/skills/devrites-frontend-craft/reference/craft.md +63 -0
  81. package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  82. package/pack/generated/devin/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
  83. package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
  84. package/pack/generated/devin/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
  85. package/pack/generated/devin/skills/devrites-frontend-craft/reference/shape.md +56 -0
  86. package/pack/generated/devin/skills/devrites-interview/SKILL.md +103 -0
  87. package/pack/generated/devin/skills/devrites-lib/SKILL.md +57 -0
  88. package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +42 -0
  89. package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +64 -0
  90. package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
  91. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +73 -0
  92. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +88 -0
  93. package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +60 -0
  94. package/pack/generated/devin/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
  95. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +415 -0
  96. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +99 -0
  97. package/pack/generated/devin/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
  98. package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
  99. package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
  100. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  101. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +108 -0
  102. package/pack/generated/devin/skills/devrites-lib/reference/standards/coding-style.md +48 -0
  103. package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +109 -0
  104. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +167 -0
  105. package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
  106. package/pack/generated/devin/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
  107. package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
  108. package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +31 -0
  109. package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
  110. package/pack/generated/devin/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
  111. package/pack/generated/devin/skills/devrites-lib/reference/standards/documentation.md +43 -0
  112. package/pack/generated/devin/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
  113. package/pack/generated/devin/skills/devrites-lib/reference/standards/elicitation.md +85 -0
  114. package/pack/generated/devin/skills/devrites-lib/reference/standards/error-handling.md +47 -0
  115. package/pack/generated/devin/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
  116. package/pack/generated/devin/skills/devrites-lib/reference/standards/hooks.md +25 -0
  117. package/pack/generated/devin/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
  118. package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
  119. package/pack/generated/devin/skills/devrites-lib/reference/standards/observability.md +88 -0
  120. package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
  121. package/pack/generated/devin/skills/devrites-lib/reference/standards/patterns.md +68 -0
  122. package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +51 -0
  123. package/pack/generated/devin/skills/devrites-lib/reference/standards/principles.md +42 -0
  124. package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +123 -0
  125. package/pack/generated/devin/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
  126. package/pack/generated/devin/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
  127. package/pack/generated/devin/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
  128. package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
  129. package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +202 -0
  130. package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
  131. package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
  132. package/pack/generated/devin/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
  133. package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +212 -0
  134. package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +92 -0
  135. package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
  136. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
  137. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
  138. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
  139. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
  140. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
  141. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
  142. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
  143. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
  144. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
  145. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +267 -0
  146. package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +74 -0
  147. package/pack/generated/devin/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
  148. package/pack/generated/devin/skills/devrites-prose-craft/reference/examples.md +131 -0
  149. package/pack/generated/devin/skills/devrites-prose-craft/reference/structures.md +196 -0
  150. package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +53 -0
  151. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +135 -0
  152. package/pack/generated/devin/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  153. package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  154. package/pack/generated/devin/skills/rite/SKILL.md +148 -0
  155. package/pack/generated/devin/skills/rite/reference/menu.md +48 -0
  156. package/pack/generated/devin/skills/rite-adopt/SKILL.md +51 -0
  157. package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +19 -0
  158. package/pack/generated/devin/skills/rite-adopt/reference/anti-patterns.md +19 -0
  159. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +142 -0
  160. package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +43 -0
  161. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +151 -0
  162. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +97 -0
  163. package/pack/generated/devin/skills/rite-build/SKILL.md +102 -0
  164. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +148 -0
  165. package/pack/generated/devin/skills/rite-build/reference/anti-patterns.md +27 -0
  166. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +120 -0
  167. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +56 -0
  168. package/pack/generated/devin/skills/rite-build/reference/frontend-trigger.md +39 -0
  169. package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +51 -0
  170. package/pack/generated/devin/skills/rite-build/reference/output.md +33 -0
  171. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +214 -0
  172. package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +89 -0
  173. package/pack/generated/devin/skills/rite-build/reference/spec-drift-guard.md +84 -0
  174. package/pack/generated/devin/skills/rite-build/reference/tdd.md +27 -0
  175. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +96 -0
  176. package/pack/generated/devin/skills/rite-clarify/SKILL.md +98 -0
  177. package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +24 -0
  178. package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +55 -0
  179. package/pack/generated/devin/skills/rite-converge/SKILL.md +144 -0
  180. package/pack/generated/devin/skills/rite-converge/reference/anti-patterns.md +35 -0
  181. package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +65 -0
  182. package/pack/generated/devin/skills/rite-customize/SKILL.md +60 -0
  183. package/pack/generated/devin/skills/rite-define/SKILL.md +168 -0
  184. package/pack/generated/devin/skills/rite-define/reference/anti-patterns.md +26 -0
  185. package/pack/generated/devin/skills/rite-define/reference/gates.md +159 -0
  186. package/pack/generated/devin/skills/rite-define/reference/plan-template.md +149 -0
  187. package/pack/generated/devin/skills/rite-doctor/SKILL.md +68 -0
  188. package/pack/generated/devin/skills/rite-dogfood/SKILL.md +55 -0
  189. package/pack/generated/devin/skills/rite-explain/SKILL.md +152 -0
  190. package/pack/generated/devin/skills/rite-explain/reference/intake.md +89 -0
  191. package/pack/generated/devin/skills/rite-frame/SKILL.md +114 -0
  192. package/pack/generated/devin/skills/rite-frame/reference/failure-modes.md +66 -0
  193. package/pack/generated/devin/skills/rite-handoff/SKILL.md +97 -0
  194. package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +44 -0
  195. package/pack/generated/devin/skills/rite-learn/SKILL.md +72 -0
  196. package/pack/generated/devin/skills/rite-plan/SKILL.md +185 -0
  197. package/pack/generated/devin/skills/rite-plan/reference/anti-patterns.md +34 -0
  198. package/pack/generated/devin/skills/rite-plan/reference/dependency-graph.md +48 -0
  199. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +105 -0
  200. package/pack/generated/devin/skills/rite-plan/reference/slicing.md +168 -0
  201. package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +42 -0
  202. package/pack/generated/devin/skills/rite-polish/SKILL.md +105 -0
  203. package/pack/generated/devin/skills/rite-polish/reference/adr-promotion.md +11 -0
  204. package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +187 -0
  205. package/pack/generated/devin/skills/rite-polish/reference/anti-patterns.md +30 -0
  206. package/pack/generated/devin/skills/rite-polish/reference/backend-polish.md +80 -0
  207. package/pack/generated/devin/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
  208. package/pack/generated/devin/skills/rite-polish/reference/code.md +82 -0
  209. package/pack/generated/devin/skills/rite-polish/reference/design-memory.md +117 -0
  210. package/pack/generated/devin/skills/rite-polish/reference/design-system-discovery.md +8 -0
  211. package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +109 -0
  212. package/pack/generated/devin/skills/rite-polish/reference/ledger.md +65 -0
  213. package/pack/generated/devin/skills/rite-polish/reference/ui.md +137 -0
  214. package/pack/generated/devin/skills/rite-pov/SKILL.md +57 -0
  215. package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +54 -0
  216. package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +66 -0
  217. package/pack/generated/devin/skills/rite-prototype/SKILL.md +104 -0
  218. package/pack/generated/devin/skills/rite-prove/SKILL.md +122 -0
  219. package/pack/generated/devin/skills/rite-prove/reference/acceptance-proof.md +88 -0
  220. package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +25 -0
  221. package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +51 -0
  222. package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +43 -0
  223. package/pack/generated/devin/skills/rite-prove/reference/proof-ladder.md +28 -0
  224. package/pack/generated/devin/skills/rite-prove/reference/test-command-discovery.md +30 -0
  225. package/pack/generated/devin/skills/rite-quick/SKILL.md +81 -0
  226. package/pack/generated/devin/skills/rite-resolve/SKILL.md +98 -0
  227. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +118 -0
  228. package/pack/generated/devin/skills/rite-review/SKILL.md +171 -0
  229. package/pack/generated/devin/skills/rite-review/reference/anti-patterns.md +32 -0
  230. package/pack/generated/devin/skills/rite-review/reference/cognitive-load.md +90 -0
  231. package/pack/generated/devin/skills/rite-review/reference/feature-scoped-review.md +26 -0
  232. package/pack/generated/devin/skills/rite-review/reference/five-axis-review.md +66 -0
  233. package/pack/generated/devin/skills/rite-review/reference/nielsen-heuristics.md +126 -0
  234. package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +80 -0
  235. package/pack/generated/devin/skills/rite-review/reference/performance-review.md +14 -0
  236. package/pack/generated/devin/skills/rite-review/reference/security-review.md +42 -0
  237. package/pack/generated/devin/skills/rite-seal/SKILL.md +74 -0
  238. package/pack/generated/devin/skills/rite-seal/reference/anti-patterns.md +29 -0
  239. package/pack/generated/devin/skills/rite-seal/reference/final-evidence.md +41 -0
  240. package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +29 -0
  241. package/pack/generated/devin/skills/rite-seal/reference/output.md +5 -0
  242. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +47 -0
  243. package/pack/generated/devin/skills/rite-seal/reference/risk-and-rollback.md +56 -0
  244. package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +27 -0
  245. package/pack/generated/devin/skills/rite-ship/SKILL.md +87 -0
  246. package/pack/generated/devin/skills/rite-ship/reference/anti-patterns.md +28 -0
  247. package/pack/generated/devin/skills/rite-ship/reference/close-out.md +68 -0
  248. package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +120 -0
  249. package/pack/generated/devin/skills/rite-ship/reference/rollout.md +62 -0
  250. package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +39 -0
  251. package/pack/generated/devin/skills/rite-spec/SKILL.md +149 -0
  252. package/pack/generated/devin/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  253. package/pack/generated/devin/skills/rite-spec/reference/ai-spec-template.md +40 -0
  254. package/pack/generated/devin/skills/rite-spec/reference/anti-patterns.md +27 -0
  255. package/pack/generated/devin/skills/rite-spec/reference/interview-patterns.md +56 -0
  256. package/pack/generated/devin/skills/rite-spec/reference/investigation.md +83 -0
  257. package/pack/generated/devin/skills/rite-spec/reference/question-protocol.md +36 -0
  258. package/pack/generated/devin/skills/rite-spec/reference/references-intake.md +62 -0
  259. package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +89 -0
  260. package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +154 -0
  261. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +227 -0
  262. package/pack/generated/devin/skills/rite-status/SKILL.md +57 -0
  263. package/pack/generated/devin/skills/rite-temper/SKILL.md +129 -0
  264. package/pack/generated/devin/skills/rite-temper/reference/anti-patterns.md +30 -0
  265. package/pack/generated/devin/skills/rite-temper/reference/review-dimensions.md +66 -0
  266. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +53 -0
  267. package/pack/generated/devin/skills/rite-temper/reference/significance.md +46 -0
  268. package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +90 -0
  269. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +121 -0
  270. package/pack/generated/devin/skills/rite-vet/SKILL.md +192 -0
  271. package/pack/generated/devin/skills/rite-vet/reference/anti-patterns.md +43 -0
  272. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +202 -0
  273. package/pack/generated/devin/skills/rite-vet/reference/cross-model.md +19 -0
  274. package/pack/generated/devin/skills/rite-vet/reference/depth.md +59 -0
  275. package/pack/generated/devin/skills/rite-vet/reference/eng-lenses.md +48 -0
  276. package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +201 -0
  277. package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +84 -0
  278. package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +69 -0
  279. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
  280. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +10 -5
  281. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +12 -7
  282. package/pack/generated/omp/skills/rite-build/SKILL.md +3 -1
  283. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +4 -3
  284. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +3 -1
  285. package/pack/generated/omp/skills/rite-define/reference/plan-template.md +1 -1
  286. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +15 -8
  287. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +10 -5
  288. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +12 -7
  289. package/pack/generated/pi/skills/rite-build/SKILL.md +3 -1
  290. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +4 -3
  291. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +3 -1
  292. package/pack/generated/pi/skills/rite-define/reference/plan-template.md +1 -1
  293. package/package.json +4 -2
  294. package/scripts/build-host-artifacts.sh +48 -5
  295. package/scripts/devin-generate.sh +222 -0
  296. package/update.sh +2 -1
@@ -0,0 +1,28 @@
1
+ # Debug recovery (async wait discipline)
2
+
3
+ Triggered standard for polling async readiness without blind sleep. Skill owner:
4
+ [`devrites-debug-recovery`](../../../devrites-debug-recovery/SKILL.md).
5
+
6
+ ## Condition-based wait (bounded)
7
+
8
+ When waiting for async readiness (server start, job completion, browser signal):
9
+
10
+ 1. Set `max_wait_ms` (default 30_000 unless the calling task or test-plan artifact specifies otherwise).
11
+ 2. Poll with **condition check** — never fixed sleep as the primary strategy.
12
+ 3. Capture **last signal** (last log line, HTTP status, DOM state) on timeout.
13
+ 4. Record artifact: `{ condition, max_wait_ms, last_signal, outcome }`.
14
+
15
+ **Failing case:** `sleep(5)` loop with no captured last signal → recovery incomplete;
16
+ treat as flaky/unproven.
17
+
18
+ ## Diagnosis write freeze
19
+
20
+ During diagnosis, writable paths are the reproduction harness plus the files
21
+ named by the current ranked hypothesis. Other product paths are frozen until
22
+ the hypothesis is confirmed. **Failing case:** while debugging one test, the
23
+ agent "fixes" lint in an unrelated package.
24
+
25
+ ## Relationship to debug-recovery skill
26
+
27
+ The seven-step recovery cycle owns reproduction and fix. This standard owns the
28
+ **wait recipe** only; do not duplicate the full cycle here.
@@ -0,0 +1,19 @@
1
+ # Definition of Done
2
+
3
+ Acceptance criteria prove the requested behavior; this bar proves the change is
4
+ shippable. Phase owners keep the checks — this file is the index, not a second list.
5
+
6
+ A feature is not done when any required row is missing. Open the owner; do not
7
+ re-judge from this table alone.
8
+
9
+ | Required | Owner | Failing case |
10
+ | --- | --- | --- |
11
+ | Each AC names a stored evidence path (command or artifact) | [`testing.md`](testing.md), `rite-prove` | An AC is checked off with no path in `evidence.md` |
12
+ | Discriminating tests for changed behavior | [`testing.md`](testing.md) | Suite green; revert of the change would still be green |
13
+ | Fresh runtime/build/test/browser records | `rite-prove`, [`browser-proof-checklist.md`](browser-proof-checklist.md) | Proof claimed from stale or unrun commands |
14
+ | Scope-clean diff | [`code-review.md`](code-review.md) | Unscoped edits or a hidden second system remain |
15
+ | Open hard gates closed | [`afk-hitl.md`](afk-hitl.md), `rite-seal` | HITL, red tests, drift, or NO-GO still open |
16
+ | Rollback named for risky work | [`data-integrity.md`](data-integrity.md) | "revert if needed" with no trigger/procedure/proof |
17
+ | Docs/ADR for public behavior | [`documentation.md`](documentation.md) | Command or contract changed; docs did not |
18
+
19
+ Use from `rite-vet`, `rite-build`, `rite-prove`, `rite-seal`, and `rite-quick`.
@@ -0,0 +1,31 @@
1
+ # Deprecation & migration
2
+
3
+ Removing behavior is riskier than adding it because hidden consumers may depend on observable quirks as well as documented contracts (Hyrum's law). Destructive migration, public-API breakage, auth changes, and data-loss paths always use the irreversible-risk pause in [`afk-hitl.md`](afk-hitl.md).
4
+
5
+ ## Prove it is unused
6
+
7
+ Find callers, subscribers, stored data, external clients, and scheduled jobs with code intelligence, then confirm runtime usage through [`observability.md`](observability.md). Static absence alone does not prove zero consumers. If zero usage cannot be proven, deprecate instead of deleting.
8
+
9
+ ## Expand → migrate → contract
10
+
11
+ Use three independently shippable and reversible steps:
12
+
13
+ 1. **Expand:** add the new path beside the old one.
14
+ 2. **Migrate:** move consumers and data; observe old-path usage falling to zero.
15
+ 3. **Contract:** remove the old path only after telemetry confirms zero use.
16
+
17
+ For data, this may mean add column → backfill → switch reads → drop the old column. Every destructive step needs a rollback.
18
+
19
+ ## Deprecate before delete
20
+
21
+ - Mark the old path with its replacement and a measurable removal trigger: a date or a condition such as zero v1 traffic.
22
+ - Emit a usage signal so the trigger is evidence, not hope.
23
+ - The owner of the deprecated surface also owns migration. Provide the codemod, backfill, compatible update, documentation, and support consumers need; a deadline alone is a break with a countdown.
24
+
25
+ ## Design for removal
26
+
27
+ When introducing a system, keep its exit bounded behind a flag, adapter, or small call surface. An unowned but still-used zombie must either regain an owner and green proof or follow the prove-unused and expand/contract path; do not leave it as an unmaintained dependency.
28
+
29
+ ## Scope
30
+
31
+ Treat removal or migration as a feature with its own spec, slices, evidence, and risk review. Do not hide deletion inside an unrelated change.
@@ -0,0 +1,119 @@
1
+ # Developer experience
2
+
3
+ When a change ships a surface another engineer has to *use* (a public API, a CLI, an SDK
4
+ or library, a webhook, a config/env contract, an error message, or the getting-started path
5
+ that introduces all of them) the developer using it is a user, and their experience is part
6
+ of the change. Code that compiles and passes its tests can still strand the next developer at
7
+ a cryptic error, a getting-started snippet that doesn't run, or an endpoint whose shape you
8
+ have to read the source to learn. Un-tested DX is a claim, the same way un-run code is a claim.
9
+
10
+ This rule is the developer-facing counterpart to [`performance.md`](performance.md): perf says
11
+ *measure the speed before you assert it*; this says *measure the experience before you assert
12
+ it*. It pairs with the [`devrites-api-interface`](../../../devrites-api-interface/SKILL.md)
13
+ skill (which shapes the contract). This rule **proves** the shape is usable.
14
+
15
+ ## Scope: when this applies
16
+
17
+ Conditional, like [`performance.md`](performance.md) and [`observability.md`](observability.md).
18
+ It applies when the diff changes a **developer-facing surface**:
19
+
20
+ - a public/external **API** endpoint, response shape, or status-code contract;
21
+ - a **CLI** command, flag, output, or exit code;
22
+ - an **SDK / library / package** export, signature, or type;
23
+ - a **webhook**, event payload, or integration contract;
24
+ - a **config / env-var** interface a consumer must set;
25
+ - an **error message, exit code, or failure response** a developer reads to recover;
26
+ - the **getting-started path**. README, install steps, quickstart, the first-run docs.
27
+
28
+ Skip it for pure-internal refactors, private helpers, app-only UI (that's
29
+ [`devrites-frontend-craft`](../../../devrites-frontend-craft/SKILL.md) /
30
+ `devrites-frontend-reviewer`), docs-only typo fixes, and config that no external consumer
31
+ touches. Don't DX-review a change with no developer-facing surface: the same scope discipline
32
+ as the rest of the conditional rules. End-user UX is a different axis; this rule is about the
33
+ *developer* consuming the surface.
34
+
35
+ ## The boomerang: predict at plan, measure at prove, reconcile at seal
36
+
37
+ DevRites already runs a predict-then-prove spine (the vetted `test-plan.md` coverage target at
38
+ `/rite-vet`, proven at `/rite-prove`, gated at `/rite-seal`). DX rides the same spine, and the
39
+ gap between the two ends is the signal:
40
+
41
+ 1. **Predict:** at `/rite-vet`, when a developer-facing surface is in scope, score the *planned*
42
+ surface against the dimensions below and write a predicted scorecard to `devex.md` (the
43
+ estimate, e.g. "time-to-hello-world: ~3 min"). This is cheap and pre-build; it forces the
44
+ ergonomics question before the contract sets.
45
+ 2. **Measure:** at `/rite-prove`, exercise the surface (run the getting-started flow,
46
+ call the endpoint, invoke the CLI, trigger the error) and record the *measured* scorecard with
47
+ evidence: real TTHW, security-redacted exact error text, and a safely captured docs screenshot.
48
+ 3. **Reconcile (the boomerang):** at `/rite-seal`, compare predicted against measured. A material
49
+ gap: "the plan said 3 minutes, the getting-started flow took 8 and step 4 errored":
50
+ is a finding, not a rounding error. The estimate was wrong *or* the surface regressed; either
51
+ way the developer using it pays, and the gap is exactly what a single end-state score would hide.
52
+
53
+ The boomerang is what makes DX a measured axis rather than an opinion: the prediction is on
54
+ record, so the measured reality can falsify it.
55
+
56
+ ## The scorecard: what to score
57
+
58
+ One entity, one name: call the metric **time-to-hello-world (TTHW)** consistently, not "onboarding
59
+ time" in one place and "setup time" in another. Score these dimensions; only the ones the diff
60
+ touches:
61
+
62
+ - **Discoverability:** can a developer find the entry point without reading the source? Is the
63
+ new surface named, exported, and documented where they'll look?
64
+ - **Time-to-hello-world (TTHW):** wall-clock from "I have the repo/package" to "I got one
65
+ successful call/response/render". The headline number; measure it, don't estimate it at seal.
66
+ - **Getting-started friction:** does the quickstart run *as written*, copy-pasted, on a clean
67
+ checkout? Every undocumented prerequisite, wrong command, or missing step is friction.
68
+ - **Error-message quality:** does a failure say *what* failed, *why*, and *how to recover*, with
69
+ the relevant ids (never secrets: see [`security.md`](security.md))? A bare stack trace, a
70
+ silent exit, or "an error occurred" is a defect on a developer-facing path.
71
+ - **Ergonomics & consistency:** does the surface match the project's existing conventions
72
+ (naming, argument order, pagination, error shape)? An inconsistent new endpoint taxes everyone
73
+ who learned the old ones. Sensible defaults; the common case is one call.
74
+ - **Docs accuracy:** examples are copy-pasteable and correct, the signature in the docs matches
75
+ the code, and changed behavior updated its docs in the same change ([`documentation.md`](documentation.md)).
76
+
77
+ ## Measure, don't assert
78
+
79
+ The same discipline as `performance.md` "measure first" and `testing.md` "see it fail first":
80
+
81
+ - **Run it, don't read it.** A scorecard backed by "the code looks fine" is Source mode and says
82
+ so. The graded scorecard comes from invoking the surface (the getting-started flow on
83
+ a clean state, the real CLI `--help`, the real error path) and recording what happened.
84
+ - **Quote the artifact.** Record exact signal-bearing error text with typed security redactions
85
+ (not paraphrase), secret-free command shape, and measured TTHW. For docs, use the
86
+ [browser-proof ladder](../../../devrites-browser-proof/SKILL.md) and describe the screenshot;
87
+ a path alone is not proof.
88
+ - **No measurement → no DX claim**, and usually no finding above Suggestion. "Feels confusing" is
89
+ a hypothesis to test, not a verdict.
90
+
91
+ ## The gate: severity by who-pays
92
+
93
+ DX findings carry the standard labels (Critical / Important / Suggestion / Nit / FYI), scaled to
94
+ the cost the consumer bears, not to how polished it feels:
95
+
96
+ - A **public/external contract that ships broken or wrong** (a documented command that errors, an
97
+ endpoint whose response contradicts its contract, a getting-started flow that can't complete) is
98
+ **Important**, and **Critical** when it's a frozen public surface (the principles-gated public-API
99
+ invariant, [`principles.md`](principles.md)) or an irreversible break.
100
+ - A **measured DX regression** against the predicted scorecard with no recorded reason is a
101
+ finding the boomerang surfaces at seal, at least **Important** when it lands on a public surface.
102
+ - An **unactionable error message** on a developer-facing failure path is **Important**: the
103
+ on-call test ([`observability.md`](observability.md)) applied to the consumer instead of the operator.
104
+ - Inconsistent-but-working ergonomics, a thin doc, a missable default → **Suggestion**, unless the
105
+ spec made it acceptance.
106
+
107
+ ## The artifact: `devex.md`
108
+
109
+ When a developer-facing surface is in scope, the workspace carries `devex.md`: the **predicted**
110
+ scorecard (from `/rite-vet`), the **measured** scorecard with evidence (from `/rite-prove`), and
111
+ the **boomerang delta** (reconciled at `/rite-seal`). Absent surface → no `devex.md`, and the gate
112
+ passes silently: never block a change for the *absence* of a DX surface, the same no-op discipline
113
+ as the principles and spec-grammar gates.
114
+
115
+ ## Scope discipline
116
+
117
+ Review the developer-facing surface the change *touches*. A surface the diff didn't change is not
118
+ this change's job; a project-wide DX audit (every endpoint, the whole CLI) is its own effort:
119
+ record it as a follow-up, don't smuggle it into an unrelated change.
@@ -0,0 +1,29 @@
1
+ # Development workflow
2
+
3
+ Ship small, integrate often, and keep the main branch releasable. Workflow phase order comes from the engine manifest, not this standard.
4
+
5
+ ## Work in small batches
6
+ - Break work into thin, independently shippable slices and integrate them frequently:
7
+ ideally merging to the main branch at least once a day.
8
+
9
+ ## Short-lived branches, trunk always green
10
+ - Prefer short-lived branches off the main branch.
11
+ - The main branch is **always in a releasable state**. Validate every change through a
12
+ **fast, reliable CI pipeline** (tests + build) before it merges.
13
+ - **Trunk broken?** Revert first (default repair); fix forward only when revert is harder. Red trunk blocks all merges.
14
+ - Hide incomplete work behind a **feature flag / toggle** rather than a long branch, so
15
+ partial work can land without blocking releases or breaking the trunk.
16
+
17
+ ## Feature-flag lifecycle
18
+
19
+ - Name the **removal trigger** at flag creation; delete the flag once the work ships — a
20
+ flag past its trigger is **flag debt**, a review finding. Prove **both states**
21
+ ([`testing.md`](testing.md)); widen rollout only with the rollback path recorded
22
+ ([`data-integrity.md`](data-integrity.md)).
23
+
24
+ ## Review gate
25
+ - A human reviews every change before merge; `code-review.md` owns review scope and evidence.
26
+
27
+ ## Definition of done
28
+
29
+ [`definition-of-done.md`](definition-of-done.md) owns the standing bar. Acceptance criteria prove the slice-specific behavior; the Definition of Done proves the change is shippable.
@@ -0,0 +1,43 @@
1
+ # Documentation
2
+
3
+ Document intent/decisions; public inputs, outputs, errors, and gotchas; non-obvious
4
+ constraints; and real build/test/run commands. Update with behavior; prefer one runnable
5
+ example. Do not restate code or types.
6
+
7
+ ## Drift check (docs describe what runs)
8
+
9
+ A documented command/example that no longer runs is a **documentation-drift finding** at
10
+ review/polish: run it — failure plus output is the evidence. A behavior change updates the
11
+ doc or records the divergence; doc and code never hold contradictory "truths".
12
+
13
+ ## Record decisions
14
+
15
+ - Capture significant context, decision, consequences, accepted trade-off, change trigger,
16
+ and why viable alternatives lost. DevRites uses `decisions.md` for feature decisions.
17
+ - ADRs move `PROPOSED → ACCEPTED → SUPERSEDED / DEPRECATED`. Preserve accepted history;
18
+ a replacement ADR cites and supersedes the old one rather than rewriting it.
19
+
20
+ ## Promote durable guidance
21
+
22
+ Promotion is maintenance of an existing authority, not a new memory system.
23
+
24
+ 1. **Trigger:** the same reviewed correction appears in at least two distinct features, or
25
+ one explicit product/architecture decision has durable rationale. A one-off, generic,
26
+ stale, or merely inferred observation does not trigger promotion.
27
+ 2. **Ground:** verify each current claim against live authoritative repository sources.
28
+ Report the source and currentness signal. Unverifiable means `unknown`, not false.
29
+ 3. **Scope:** state when the guidance applies and does not apply. Reject a candidate whose
30
+ observable trigger cannot be named. If final code/tests/docs already recover the
31
+ reasoning, reject or consolidate the lesson; promote only the missing durable constraint.
32
+ **Failing case:** a regression test already explains input rejection, yet a second
33
+ generic "validate input" rule is added with no lost reasoning identified.
34
+ 4. **Own and expose:** choose one existing canonical owner (`AGENTS.md`/`CLAUDE.md`, a scoped
35
+ standard, or an ADR) and name the phases, agents, or contributors that discover it and
36
+ how (direct read, index link, or existing on-demand route).
37
+ 5. **Reconcile:** search current guidance for duplicates, contradictions, and supersession.
38
+ Update, narrow, replace, or retire contradicted guidance at its owner; do not append a
39
+ competing rule. Record the conflict/retirement disposition.
40
+ 6. **Approve:** show evidence and the exact durable edit before writing; user approval is
41
+ required. Never create a learning ledger, index, queue, score, or parallel authority.
42
+
43
+ Long reference material stays behind its existing on-demand route.
@@ -0,0 +1,92 @@
1
+ # Edge-case trace
2
+
3
+ Use this when requirements, plans, diffs, or proof change a boundary, branch,
4
+ validation rule, deletion contract, retryable action, or claim that a path is safe.
5
+ The trace finds relevant cases, records why irrelevant ones were dismissed, and prevents
6
+ confidence from turning an untested negative claim into a pass.
7
+
8
+ ## Scope before enumeration
9
+
10
+ Name the observable surface, caller/actor, state or data it owns, external boundaries,
11
+ and the must-NOT outcome the author would reject even if the happy path worked. Do not
12
+ expand into a whole-system checklist: a class applies only when the changed surface can
13
+ reach it.
14
+
15
+ ## Closed probe classes
16
+
17
+ Probe each relevant class once:
18
+
19
+ | Class | Questions |
20
+ | --- | --- |
21
+ | Boundary | Empty/missing, minimum/maximum, off-by-one, oversized, invalid encoding/shape. |
22
+ | State | Initial, repeated, stale, terminal, illegal transition, interruption and resume. |
23
+ | Ordering | Duplicate, out-of-order, retry, partial completion, clock/time-zone boundary. |
24
+ | Concurrency | Competing writer, lost update, cancellation, race, deadlock or resource exhaustion. |
25
+ | Authority | Unauthenticated, unauthorized, wrong tenant, forged identity, privilege increase. |
26
+ | Dependency | Timeout, partial/invalid response, rate limit, outage, version/config mismatch. |
27
+ | Persistence | Transaction split, crash, migration/backfill restart, rollback, retention/deletion. |
28
+ | Compatibility | Old/new reader or writer, caller not updated, feature-flag off/on, environment difference. |
29
+ | Wiring | Code exists but is not registered, called, awaited, persisted, emitted, or consumed with real data. |
30
+ | Removal | Deleted behavior, caller, data, telemetry, docs, or fallback has no surviving owner. |
31
+
32
+ Route detailed applicable cases to
33
+ [`repository-topology.md`](repository-topology.md),
34
+ [`data-integrity.md`](data-integrity.md),
35
+ [`integration-reliability.md`](integration-reliability.md), or
36
+ [`security.md`](security.md); do not repeat those standards here.
37
+
38
+ ## Trace procedure
39
+
40
+ 1. **Walk explicit paths.** Follow every changed condition, loop exit, error, and
41
+ boundary value to the nearest observable outcome.
42
+ 2. **Walk fixed-set siblings.** A special case for one enum/status/role/mode implies
43
+ every untouched sibling is a path to check.
44
+ 3. **Follow real wiring.** Verify existence, substance, registration/call path, and
45
+ real data flow. A complete-looking implementation can still be hollow, orphaned,
46
+ or a stub.
47
+ 4. **Check negative intent.** Ask what silently permitted outcome would violate a
48
+ requirement, invariant, non-goal, or security boundary. Add a prohibition only
49
+ when bespoke intent is not already owned by a standard.
50
+ 5. **Check removal.** Name the contract removed code carried and its surviving owner,
51
+ or cite the accepted decision that retires it.
52
+
53
+ ## Disposition and evidence
54
+
55
+ Every applicable case receives one status:
56
+
57
+ - `covered`: mapped to a REQ/AC and positive discriminating test or observed runtime proof;
58
+ - `backstop`: an independent held-out, property/metamorphic, or direct behavioral check
59
+ names the wrong outcome it would detect — and is **exogenous**: not produced or
60
+ executed by the same code path it validates (a check the changed code also controls is
61
+ `covered` evidence, not a backstop);
62
+ - `dismissed`: unreachable or irrelevant with a concrete reason and supporting evidence;
63
+ - `unresolved`: a material case lacks a fact or proof surface and blocks the owning gate.
64
+
65
+ Judgment may dismiss a demonstrably irrelevant case; it cannot prove behavior. When a
66
+ case is not inferable from available evidence, say `unresolved`/`cannot_verify` rather
67
+ than estimating confidence upward.
68
+
69
+ ## Backstop honesty (fail-closed)
70
+
71
+ A row marked `covered` or `backstop` **must** name an evidence class: test path,
72
+ command output, observed runtime, or an independent held-out/property check. A row
73
+ with disposition but **no** evidence class is **`cannot_verify`** at Prove/Seal — not
74
+ a pass.
75
+
76
+ **Failing case:** the happy-path suite is green, the trace lists "error path handled"
77
+ with no test or runtime proof → Prove blocks until the row gains a discriminating
78
+ surface or moves to `unresolved`.
79
+
80
+ ## Outputs
81
+
82
+ Spec records relevant cases in **Edge Coverage** and bespoke negative intent in
83
+ **Prohibitions**. Plan/Vet maps applicable cases to a slice, recovery, and proof. Review
84
+ reports only reachable gaps:
85
+
86
+ ```md
87
+ Finding: <severity> | path:line | <trigger> reaches <unhandled outcome> | <observable harm> |
88
+ <minimal handling>; missing proof: <test/signal>.
89
+ ```
90
+
91
+ Use the caller's severity scale. Do not create a separate edge score, pad rows with
92
+ irrelevant classes, or report a case already handled and proven.
@@ -0,0 +1,85 @@
1
+ # Elicitation: a move-set for the thinking phases
2
+
3
+ The thinking phases (`/rite-temper` on the spec, `/rite-vet` on the plan) default to one shape each.
4
+ A pre-mortem, a plan review. That's a floor, not a ceiling. When a section needs deeper thought,
5
+ this is the menu you reach into: named reasoning techniques, each with the shape it produces, so
6
+ "make this stronger" becomes a concrete move instead of a vibe.
7
+
8
+ ## How to use it (progressive: no ceremony by default)
9
+ 1. Look at the **one section** in front of you (a requirement, a risk, an estimate, a boundary).
10
+ 2. Read its **risk**, then pull the 3-5 techniques below whose *When to reach for it* matches.
11
+ 3. Present them as a short numbered menu; the human picks one (or `skip`).
12
+ 4. Run that technique on that section, apply the result, move on.
13
+ 5. **No-yield exit:** when the technique surfaces nothing that changes the section — no
14
+ new requirement, mitigation, estimate change, or blocking question — record
15
+ `elicitation: <technique> — no yield` in the phase artifact and stop offering menus
16
+ for that section. **Failing case:** repeated technique menus on a settled section are
17
+ ceremony, not diligence; a second menu without new section input is a process defect.
18
+
19
+ Selection is by the section's risk, not taste. Reach for the row that fits:
20
+
21
+ | The section is… | Reach for |
22
+ |---|---|
23
+ | an irreversible / boundary / auth / data-model decision | Red-Team vs Blue-Team ¡ Assumption Audit ¡ Pre-Mortem |
24
+ | a vague or contested requirement | Steelman-then-Attack ¡ Devil's Advocate ¡ Five Whys |
25
+ | an estimate, sizing, or a "how long / how risky" | Delphi ¡ Reference-Class Forecast |
26
+ | a design with more than one plausible shape | Tournament (A vs B) ¡ Inversion ¡ Analogy Mapping |
27
+ | a spec that feels *too* big or *too* small | Scope Extremes (MVP vs Gold-plate) ¡ YAGNI Pass |
28
+ | a risk surface you suspect is under-explored | Chaos Scenarios ¡ Edge-Case Hunt ¡ Second-Order Effects |
29
+
30
+ ## The techniques
31
+
32
+ Each entry is **name (when to reach for it) the shape it produces** (`→` reads "then").
33
+
34
+ ### Sharpening a claim
35
+ - **Steelman-then-Attack:** a requirement or approach you're inclined to accept. Build the
36
+ *strongest* case for it → then attack that strongest form. Survives → keep; falls → revise.
37
+ - **Devil's Advocate:** consensus formed too fast. One voice argues the opposite in good faith →
38
+ surface the objection the room skipped.
39
+ - **Assumption Audit:** a plan resting on unstated beliefs. List every assumption the section
40
+ makes → mark each *load-bearing / verified / unverified* → the unverified load-bearing ones are
41
+ the work.
42
+ - **Five Whys:** a stated requirement whose *reason* is fuzzy. Ask "why" five times down from the
43
+ ask → reach the root need (often narrower or different than the surface ask).
44
+
45
+ ### Stress-testing a decision
46
+ - **Pre-Mortem:** before committing an irreversible choice. Assume it's six months later and this
47
+ failed → write the failure story → each cause becomes a mitigation or a blocking question. (This
48
+ is `/rite-temper`'s default; the others deepen it.)
49
+ - **Red-Team vs Blue-Team:** a security, trust-boundary, or adversarial-input surface.
50
+ `defense → attack → hardening`: state the defense, attack it as a hostile party, harden the gap.
51
+ - **Inversion:** "how do we make X good?" stalls. Ask instead "how would we *guarantee X fails*?"
52
+ → invert each failure into a requirement.
53
+ - **Second-Order Effects:** a change that touches shared surface. For each first-order effect ask
54
+ "and then what?" twice → surface the downstream consequence the diff hides.
55
+
56
+ ### Sizing and estimating
57
+ - **Delphi:** an estimate one person is anchoring. Gather independent estimates *without* seeing
58
+ each other → reveal → discuss the spread → re-estimate → converge. Kills anchoring.
59
+ - **Reference-Class Forecast:** "this'll be quick." Find 3 past changes of the same *class* → use
60
+ their actual cost as the base rate, not the inside view.
61
+
62
+ ### Widening the option space
63
+ - **Tournament (A vs B):** two plausible designs. Put them head-to-head on the *decision hinge*
64
+ (the one axis that differs) → pick on that axis, not on a feature checklist.
65
+ - **Analogy Mapping:** a novel problem. "What is this *like* that's already solved?" → borrow the
66
+ solved structure, note where the analogy breaks.
67
+ - **Scope Extremes:** a spec of uncertain size. Describe the *MVP* (smallest thing that ships
68
+ value) and the *gold-plated* version → the right scope is usually named by the gap between them.
69
+ - **YAGNI Pass:** a plan carrying "might need it later." For each speculative piece, demand a
70
+ *current* acceptance criterion → no criterion, cut it to a follow-up.
71
+
72
+ ### Finding what's missing
73
+ - **Edge-Case Hunt:** a happy-path-shaped spec. Walk empty / boundary / invalid / concurrent /
74
+ huge-or-weird input for each element → each uncovered case is a missing criterion.
75
+ - **Chaos Scenarios:** a system with external dependencies. "What if the DB is down / the API
76
+ times out / the clock jumps / the input is hostile?" → each becomes a failure-mode requirement.
77
+ - **Completeness Critic:** end of a section. Ask only "what's *missing*: a modality not covered, a
78
+ claim not verified, a flow with no path?" → the answer is the next round of work.
79
+
80
+ ## The one rule
81
+ Run the technique on the **section in front of you**, not the whole document: a move applied to
82
+ everything is a move applied to nothing. Record what it changed in the phase artifact (a new
83
+ requirement, a mitigation, a blocking question), not just that you ran it.
84
+
85
+ A project can append its own house techniques to this file: same entry shape — **name (when to reach for it)** → the shape it produces.
@@ -0,0 +1,47 @@
1
+ # Error handling
2
+
3
+ Errors are part of the contract, not an afterthought. Make failure loud, local, and
4
+ recoverable.
5
+
6
+ ## Fail fast
7
+ - Validate preconditions at the top; stop the moment state is invalid, close to the root
8
+ cause. Don't let bad data propagate and surface as a confusing failure three layers
9
+ later.
10
+
11
+ ## No silent catches
12
+ - Never swallow an error to make a problem "go away", that hides bugs and corrupts
13
+ state silently.
14
+ - Catch the **narrowest** error you can handle, not a blanket catch-all. A
15
+ bare/broad catch masks unrelated failures.
16
+ - If you catch, either recover meaningfully, or rethrow/wrap with added context. Don't
17
+ log-and-continue past an error you didn't handle.
18
+
19
+ ## Classify the outcome before retrying
20
+
21
+ Never retry blind — match the outcome first:
22
+
23
+ - **Rejected** (refused: validation/authz/conflict): fix input; unchanged retry fails again.
24
+ - **Unknown** (timed out mid-call): check state at the source before any retry.
25
+ - **Partial** (half-committed): [`data-integrity.md`](data-integrity.md) (see `Writes, retries, and concurrency`) — reconcile or roll back, never resume blind.
26
+ - **Clean failure** (not started / fully rolled back): safe to retry after fixing the cause.
27
+
28
+ **Failing case:** an **Unknown** outcome retried unchanged double-applies (duplicate charge). Idempotency: [`data-integrity.md`](data-integrity.md); outcome taxonomies: [`integration-reliability.md`](integration-reliability.md). Not provable → `cannot_verify` and stop.
29
+
30
+ ## Meaningful messages
31
+ - Error messages state what failed, the relevant context (ids, inputs, not secrets),
32
+ and ideally how to recover. Cryptic messages cost hours.
33
+ - Distinguish *expected* failures (validation, not-found) from *unexpected* (bugs);
34
+ handle the first as flow, surface the second.
35
+ - Structured error surfaces carry one consistent envelope — **severity, stable code,
36
+ human message, fix** — so callers and logs can act programmatically; a bare string that
37
+ forces callers to parse prose is a contract gap.
38
+
39
+ ## Fail closed (security-relevant paths)
40
+ - On error in an auth/permission/transaction path, **deny and roll back**: never
41
+ default to granting access or committing partial state.
42
+
43
+ ## Logging
44
+ - Log key events (failures, access violations, validation errors) with enough context to
45
+ debug. Prefer structured logs (key/value or JSON).
46
+ - **Never log secrets, credentials, tokens, or personal data.** Show users a clear,
47
+ non-revealing message; keep the detail in the logs for the team.
@@ -0,0 +1,49 @@
1
+ # Git workflow
2
+
3
+ History is documentation. Keep it clean, atomic, and readable.
4
+
5
+ ## Conventional Commits
6
+ Format: `type(scope): subject`
7
+ - **type**: `feat fix docs style refactor perf test build ci chore revert` (lower-case).
8
+ - **scope**: the area changed (lower-case).
9
+ - **subject**: imperative mood, no leading capital, no trailing period
10
+ ("add export endpoint", not "Added export endpoint.").
11
+ - Keep the header short (~50, hard cap ~72). Put the *why* in the body, wrapped, after a
12
+ blank line. Reference issues in the footer.
13
+
14
+ ## Atomic commits
15
+ - One logical change per commit; it should build and pass tests on its own.
16
+ - Don't mix refactor + behavior change in one commit: split them so each is reviewable
17
+ and revertible.
18
+
19
+ ## Small, focused branches/PRs
20
+ - One concern per branch. Short-lived; rebase/merge per the project's convention.
21
+ - Keep PRs small (see `code-review.md`) so they get a real review.
22
+
23
+ ## Change summary: prove the scope
24
+ When you hand back a change, state what you deliberately left alone as well as what you touched.
25
+ A **"Things I didn't touch (intentionally)"** line (the adjacent smells you noticed and declined
26
+ to fix) proves the diff is feature-scoped ([`core.md`](core.md) rule 7) and matches
27
+ `touched-files.md`, rather than an unsolicited renovation the reviewer has to untangle from the
28
+ real change. Noticed-but-not-fixed becomes an FYI follow-up, never a silent addition to this diff.
29
+
30
+ ## Merge conflict recovery
31
+ When git is mid-merge or mid-rebase, recover before other workflow work:
32
+
33
+ 1. Inspect state: `git status --short --branch`, then note whether this is a merge or rebase.
34
+ 2. For each conflicted file, identify **our intent** and **their intent** before editing.
35
+ 3. Resolve each hunk by preserving both intents when possible; if intents conflict, pick one and
36
+ record the trade-off in the commit/PR body.
37
+ 4. `git add` the resolved files, then run the smallest relevant checks.
38
+ 5. Finish with `git merge --continue` or `git rebase --continue`; abort only when the chosen
39
+ branch direction is wrong, not because a hunk is annoying.
40
+
41
+ ## Versioning & changelog
42
+ - Semver describes what consumers may rely on. Treat an observable breaking change as major.
43
+ - Derive the version from the tag; do not maintain competing manual copies.
44
+ - Curate changelog entries by user impact in the change that earns them; a changelog is not a git log.
45
+
46
+ ## Never commit
47
+ - Secrets, credentials, tokens, or `.env` files. If one lands in history, rotate it and
48
+ scrub it: deleting the file in a later commit is not enough.
49
+ - Generated artifacts, dependencies, or large binaries that belong in ignore rules.
@@ -0,0 +1,25 @@
1
+ # Automation hooks
2
+
3
+ Automate easy-to-forget checks at the earliest affordable stage. Keep local hooks fast
4
+ and scoped so developers continue to run them.
5
+
6
+ ## Stage the work by cost (the 10-second rule)
7
+ - **pre-commit** (must finish in well under ~10s): format, lint, and secret-scan the
8
+ exact **staged index blobs only** via `devrites-engine secret-scan --staged`.
9
+ - **commit-msg**: enforce the commit convention (e.g. Conventional Commits). DevRites
10
+ ships a `commit-msg` hook for its own repo as the reference example.
11
+ - **pre-push** (seconds to a couple of minutes): broader/affected tests.
12
+ - **CI** (no time pressure): the full test suite, build, integration, and deeper
13
+ security scans. CI is the source of truth for "green", not local hooks.
14
+
15
+ ## Secret scanning
16
+ Scan for credentials/keys/tokens before they enter history: catching a secret
17
+ pre-commit is cheap; rotation is not. Findings disclose metadata only; `/rite-ship`
18
+ owns fail-closed PR-body transport.
19
+
20
+ ## Adoption & escape hatches
21
+ - Introduce hooks gradually (formatting → linting → security → tests) so the team
22
+ adopts them instead of disabling them.
23
+ - Bypassing a hook (`--no-verify`) is for genuine emergencies, not routine. CI must
24
+ re-check what a bypass skipped, so a skipped local check can't reach the trunk.
25
+ - Hooks are checked into the repo and shared, so the whole team gets the same gates.