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,27 @@
1
+ # rite-spec: anti-patterns
2
+
3
+ Load this when standing a non-trivial decision in `/rite-spec`, or when the
4
+ agent feels reluctance toward investigation depth, gap-closing, or
5
+ placement decisions.
6
+
7
+ Pack-wide rationalizations + red flags: see [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
8
+
9
+ ## Phase-specific rationalizations
10
+
11
+ | Excuse | Rebuttal |
12
+ |---|---|
13
+ | "User said *just make it work*: no spec needed." | Vague asks are exactly where `/rite-spec` earns its keep; load `devrites-interview` and ask one question at a time. |
14
+ | "I already understand the request." | Then writing the placement + acceptance criteria takes minutes and saves drift later. Investigation isn't for *you*, it's for `/rite-define`. |
15
+ | "Too small for a spec." | If it's big enough for `/rite-build`, it's big enough for one paragraph of WHAT/WHY + measurable acceptance. |
16
+ | "No design refs were attached, so skip references." | Skip the *gathering*, not the *acknowledgement*. Note "no references provided" in the spec: silence is ambiguous. |
17
+ | "I can resolve gaps as I build." | Drift discovered at slice 3 costs more than 5 questions answered now. |
18
+ | "I'm confident of the answer, so I'll just decide this myself." | Confidence changes the *cost* of the question, not its *owner*. A material decision (scope · placement · data model · UX · security · migration · acceptance) is put to the human as a ranked option set: near-certainty just makes it a one-pick confirm, never a silent decision. |
19
+ | "Presenting options for every gap is over-asking." | Over-asking is many questions at once or asking what the codebase answers. One ranked option set per *material* gap, recommended-first, is the opposite: it hands the human the decision cheaply. Reversible low-impact details you still auto-decide and log. |
20
+
21
+ ## Red Flags
22
+
23
+ - About to start writing `spec.md` without a Placement & integration section.
24
+ - Spec has no measurable acceptance criteria: "works as expected" is not measurable.
25
+ - A `[NEEDS CLARIFICATION]` marker remains on a blocking item.
26
+ - Design references were attached but never opened, saved, or indexed in `references.md`.
27
+ - The investigation didn't read the module/component that currently owns this area.
@@ -0,0 +1,56 @@
1
+ # Interview patterns
2
+
3
+ Question ladders by domain. Pull the rung that matches the biggest current unknown.
4
+ Each question still follows the protocol: one at a time, best guess attached.
5
+
6
+ ## Vague ask? Map the decision tree first
7
+ For a fuzzy one-liner (`"design a contact page"`, `"add reporting"`), sketch the branches
8
+ the answer splits into, then resolve each **depth-first**: one branch to a decision before
9
+ opening the next:
10
+
11
+ ```text
12
+ contact page
13
+ ├─ purpose? ── sales lead | support request | general
14
+ ├─ fields? ── name/email/message | + company/phone | file upload
15
+ ├─ on submit? ── email | ticket/CRM | DB row | embedded third-party form
16
+ └─ success? ── inline confirm | redirect | autoresponder
17
+ ```
18
+
19
+ Once per interview you may **challenge the premise** instead of refining it
20
+ (*"is a form even the right answer, or a mailto / booking link?"*): a good reframe
21
+ collapses whole branches. Then use the domain ladders below for each open branch.
22
+
23
+ ## Objective / problem
24
+ - "What does success look like in one sentence?"
25
+ - "Who hits this, how often, and what do they do today instead?"
26
+ - "If we shipped only one thing here, what must it be?"
27
+
28
+ ## Scope boundaries
29
+ - "What is explicitly **out** of scope for this first version?"
30
+ - "Is this a new capability or a change to an existing flow?"
31
+ - "What's the smallest version that's still useful?" (→ slice 1)
32
+
33
+ ## Data model
34
+ - "What are the core entities and how do they relate?"
35
+ - "What's the source of truth, and can these fields change after creation?"
36
+ - "Any uniqueness, ordering, or soft-delete needs?"
37
+
38
+ ## UX / flow
39
+ - "Walk me through the happy path screen by screen."
40
+ - "What are the empty / loading / error / permission-denied states?"
41
+ - "Brand surface (marketing) or product surface (app UI)?" (drives craft)
42
+
43
+ ## Integration / external
44
+ - "Which external systems or APIs are involved, and who owns them?"
45
+ - "Sync or async? What happens when the dependency is down?"
46
+
47
+ ## Non-functional
48
+ - "Any latency, scale, or volume targets I should design to?"
49
+ - "Auth/permission rules? Anything sensitive (PII, secrets, payments)?"
50
+
51
+ ## Acceptance
52
+ - "How will we *prove* this works: what's the test or observation?"
53
+ - "What would make you reject the PR?"
54
+
55
+ ## Anti-references (taste)
56
+ - "Show me one thing that does this well, and one that does it badly."
@@ -0,0 +1,83 @@
1
+ # Investigation before specification
2
+
3
+ Understand the requirement, decide where it belongs, define the outcome, and identify
4
+ every issue and gap. Resolve material gaps with the user before the spec is ready. A
5
+ gap first found during `/rite-build` is a drift event.
6
+
7
+ Use a code-intelligence index if available (see
8
+ `../../devrites-lib/reference/standards/tooling.md`) for structural questions such as
9
+ where code lives, what calls it, and what it could break. With none present, use
10
+ Read/Grep/Glob. When a gap depends on an external fact, such as a standard, UX pattern,
11
+ or comparable product, **search the web if available** (brave MCP preferred;
12
+ `../../devrites-lib/reference/standards/tooling.md`). Cite the finding in the option
13
+ presented to the human.
14
+
15
+ ## Check the archive first
16
+ Before external research, check whether the project already shipped related work. Search
17
+ the archive for the feature's key nouns. A hit may indicate an extension, conflict, or
18
+ replacement and provides prior decisions:
19
+ Use native file search over `.devrites/archive/*/{spec,decisions}.md`.
20
+ - **Overlap found** → read the overlapping `spec.md` + its `decisions.md`, then put it to
21
+ the human as a ranked option (*extend the shipped feature* · *this supersedes it* ·
22
+ *genuinely distinct*) same option-set contract as a gap.
23
+ - **No archive / no hit** → skip silently; never block a spec on absent history (the
24
+ brownfield / principles no-op discipline).
25
+
26
+ ## Produce these findings (write into spec.md)
27
+ 1. **The request and problem:** restate the goal and the problem behind it (people ask
28
+ for "a dashboard" when they want an answer to a question). Who hits it, how often,
29
+ what they do today instead.
30
+ 2. **Current behavior:** how it works today, or what's absent. Read the actual code and
31
+ flows; don't assume.
32
+ 3. **Placement**
33
+ - Which module / layer / file / component should own this; the right seam.
34
+ - Existing patterns/components/utilities to **extend or reuse** instead of duplicating.
35
+ - **Integration points**: callers and dependents, the data it reads/writes, the
36
+ APIs/events/contracts it touches (interface analysis: how it interacts with the
37
+ rest of the system).
38
+ 4. **Outcome:** the result and how to observe it (feeds
39
+ success + acceptance criteria).
40
+ 5. **Issues:** conflicts with existing code/UX/data/permissions, constraints, and
41
+ anything that makes the obvious approach wrong. Each issue gets a disposition.
42
+ 6. **Gaps:** unknowns, ambiguities, undecided behavior, missing inputs. **Every gap
43
+ becomes a question** (next section).
44
+ 7. **Blast radius:** what this change could break (use the code graph's impact/callers).
45
+ Informs risks, test strategy, and rollback.
46
+ 8. **Human prerequisites:** credentials, accounts, approval windows, or irreversible
47
+ action-time decisions the acceptance path requires. Separate these from agent-owned
48
+ implementation and diagnostic work.
49
+
50
+ Design/reference materials the human supplies: see [references-intake](references-intake.md).
51
+
52
+ ## Gap analysis (present → desired)
53
+ State the present and desired states. Their delta defines the work; unknowns in that
54
+ delta are gaps. Resolve them before `/rite-define`. Mark each gap inline with
55
+ `[NEEDS CLARIFICATION: question]`.
56
+
57
+ ## Present gaps and issues as options
58
+ For each material gap or issue that changes scope, placement, data model, UX, security,
59
+ migration risk, or acceptance, **ask the human** one gap at a time with a ranked
60
+ option set with the recommended option **first and marked `(Recommended)`** plus an escape
61
+ hatch (via `AskUserQuestion` in HITL):
62
+ ```
63
+ <gap/issue stated in one line>. Why it matters: <...>
64
+ 1. <recommended option> (Recommended) — <implication / where it places the work; cite any web/docs finding>
65
+ 2. <alternative> — <implication>
66
+ 3. <alternative> — <implication>
67
+ 4. Something else — I'll describe it
68
+ ```
69
+ Investigate and recommend, but do not settle a material decision. High confidence may
70
+ make the answer a one-pick confirmation; it does not change the decision owner.
71
+ Only a **genuinely reversible, low-impact** gap is decided and recorded in `assumptions.md`
72
+ without asking. Full render contract + AFK behaviour: [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md).
73
+
74
+ ## Done when
75
+ - The shipped archive was checked for prior art; any overlap was surfaced to the human.
76
+ - The problem, current behavior, placement, and outcome are written down.
77
+ - Every issue has a disposition; every material gap is resolved **by a human pick** from its
78
+ option set (or explicitly deferred as non-blocking), not settled silently on your confidence.
79
+ - Every foreseeable build-time human prerequisite is resolved, assigned, or justified as an
80
+ action-time gate; objective repair/retry work is not disguised as a question.
81
+ - No blocking `[NEEDS CLARIFICATION]` remains. The spec covers the gaps found during
82
+ authoring and records correct placement. This is the `/rite-spec` readiness gate
83
+ before `/rite-clarify` performs the systematic topology scan.
@@ -0,0 +1,36 @@
1
+ # Spec question protocol
2
+
3
+ For vague or unknown intent, invoke `devrites-interview` for ordered one-question turns,
4
+ recommendations, option sets, pass limits, reframing, and closure.
5
+ This file owns only Spec-specific coverage and recording. Render through
6
+ [`Option set`](../../devrites-lib/reference/standards/afk-hitl.md#option-set-how-every-gap-is-presented).
7
+
8
+ ## Coverage gate: am I done asking?
9
+ Each dimension MUST be **resolved** or **explicitly deferred** (logged, non-blocking),
10
+ never skipped:
11
+ - [ ] **Objective:** one-sentence success + the real problem behind it.
12
+ - [ ] **Scope**: what's in vs explicitly out for v1.
13
+ - [ ] **Data model**: core entities + relationships (or "none").
14
+ - [ ] **UX / flow**: happy path + empty/loading/error/permission states (or "no UI").
15
+ - [ ] **Integration**: external systems/APIs/contracts (or "none").
16
+ - [ ] **Non-functional**: auth, sensitive data, latency/scale (or "n/a").
17
+ - [ ] **Acceptance**: how each requirement is *proven* (test/observation).
18
+ - [ ] **Human prerequisites**: credentials, approval windows, irreversible action-time gates
19
+ (or "none").
20
+
21
+ An agent recommendation is not a user answer. A human-owned material product, scope, UX,
22
+ compatibility, or acceptance choice closes only by the user's option selection, free-form
23
+ answer, or explicit deferral. Packets MAY be bounded; readiness MUST NOT. Rescan and continue
24
+ while blockers remain. If the user stops, keep them blocking and MUST NOT pass `/rite-spec`
25
+ readiness.
26
+
27
+ ## Spec question boundary
28
+ - Search code, decisions, authoritative docs before asking discoverable facts.
29
+ - Decide and log agent-owned reversible implementation/test details.
30
+ - Record tooling failures as prerequisites or blockers; never ask the human to authorize repair.
31
+ - Ask only material choices, not everything at once.
32
+
33
+ ## Record
34
+ Confirmed answers → `decisions.md` (with rationale). Agent-owned reversible, low-impact
35
+ technical assumptions →
36
+ `assumptions.md`. Open non-blocking items → `questions.md`.
@@ -0,0 +1,62 @@
1
+ # Reference intake: design/style materials from the human
2
+
3
+ During spec, the human may supply screenshots, Figma, video, sites, or docs showing how the
4
+ feature should look or behave. When present, inspect them, save local copies, and classify
5
+ each as a fidelity **target**, hard **constraint**, or **inspiration** so a mood reference
6
+ cannot become a pixel-match contract. No references is valid; skip this intake.
7
+
8
+ ## Gather + understand each reference
9
+ - **Images / screenshots / mockups:** open and **view** them (the Read tool renders
10
+ images). Describe what they show: layout, components, spacing, states, the target look.
11
+ - **Figma link:** if a Figma integration is available, pull its design context (frames,
12
+ tokens, components); otherwise record the link and ask the human for an export/screenshot
13
+ so there's something concrete to match offline.
14
+ - **Links / reference sites / docs:** fetch and read for the relevant intent (tone,
15
+ layout, interaction, quality bar). Capture *why* it's a reference, not just the URL.
16
+ - **Video:** note what it demonstrates (the expected interaction/flow). Save it; later
17
+ phases can step through it as tooling allows.
18
+
19
+ ## Save local assets into the workspace
20
+ Copy any local file (screenshot, mockup, video, export) into
21
+ `.devrites/work/<slug>/references/` so it's durable and connectable later:
22
+ ```
23
+ mkdir -p .devrites/work/<slug>/references
24
+ cp "<the file the human gave>" .devrites/work/<slug>/references/<clear-name>.<ext>
25
+ ```
26
+ Use clear names (`login-mockup.png`, `checkout-flow.mp4`). Don't move the user's
27
+ original; copy it. For remote-only refs (a live Figma/URL), record the link in the index.
28
+ Index source/owner/license and **reference-only** or **may ship** usage; external screenshots
29
+ never grant rights to copy brand, copy, or assets.
30
+
31
+ ## Index in `references.md`
32
+ ```markdown
33
+ # References: <slug>
34
+ | Ref | Role | Usage / provenance | Type | Location | Shows / why it's a reference | Informs |
35
+ |-----|------|--------------------|------|----------|------------------------------|---------|
36
+ | R1 | target | project; may ship | screenshot | references/login-mockup.png | approved composition + spacing | spec UI, slice 2, proof |
37
+ | R2 | constraint | project; may ship | figma | https://figma.com/… | required tokens + components | all UI |
38
+ | R3 | target | user; reference-only | video | references/checkout-flow.mp4 | approved step order + transitions | build, proof |
39
+ | R4 | inspiration | external; reference-only | link | https://example.com | tone + density, not identity/layout | shape |
40
+ ```
41
+
42
+ Roles are normative: **target** means compare fidelity, **constraint** means satisfy the
43
+ named rule, and **inspiration** means extract the cited principle without copying identity,
44
+ composition, copy, or distinctive assets. Usage is normative too: only **may ship** assets
45
+ enter product code.
46
+
47
+ ## Feed them into the spec + the design brief
48
+ - Use references to sharpen `spec.md` (UI impact, success/acceptance: e.g. "matches R1").
49
+ - When the feature touches UI, these references are the primary input to **`devrites-ux-shape`**
50
+ (spec step 3a): they anchor the design direction and can seed the visual-direction probe
51
+ (a Figma link → pulled design context; reference sites → screenshots). The resulting
52
+ `design-brief.md` cites them by R-id **and role**.
53
+ - A reference can *resolve a gap* ("which layout?"): record that in the gaps table.
54
+ - If a reference **conflicts** with the existing design system, that's an issue to raise
55
+ with the human (match the system, or adopt the reference: their call).
56
+
57
+ ## Later phases use them (wire-through)
58
+ `devrites-frontend-craft` builds to the approved brief and its **target** references,
59
+ honors **constraints**, and uses **inspiration** only for the named principle. `/rite-prove`
60
+ records rendered comparisons in `browser-evidence.md`; `/rite-polish` and `/rite-seal`
61
+ reuse that same contract. Save and classify once here so every downstream phase makes the
62
+ same fidelity decision.
@@ -0,0 +1,89 @@
1
+ # Spec-quality checklists
2
+
3
+ Before `/rite-define`, test requirement prose for completeness, clarity, and
4
+ measurability—not implementation. “Banner is prominent” lacks a threshold; ask
5
+ whether export defines empty data, never whether `exportCsv()` handles `[]`.
6
+ Function/file/library checks belong to `/rite-vet` and `/rite-prove`.
7
+
8
+ ## Output: one file per requirement domain
9
+
10
+ Emit `.devrites/work/<slug>/checklists/<domain>.md` per covered domain; skip
11
+ `none`. Each domain maps gaps to a `devrites-interview` dimension:
12
+
13
+ | Domain file | Tests the prose of |
14
+ | --- | --- |
15
+ | `functional.md` | Functional requirements + scenarios: is each capability stated, bounded, testable? |
16
+ | `data-model.md` | Key entities / data model: shapes, fields, lifecycle, relationships (skip if "none"). |
17
+ | `interaction.md` | API / UI impact + UX states: every screen state and contract named (skip if no UI/API). |
18
+ | `non-functional.md` | Invariants; security/privacy/accessibility, latency/scale, compatibility, operations, and human-only proof prerequisites. |
19
+ | `edge-cases.md` | Empty/boundary/invalid/concurrent/failure/recovery paths plus the spec's applicability map. |
20
+
21
+ ## Each item: a question, a verdict, the line it interrogates
22
+
23
+ ```markdown
24
+ # Spec checklist: <domain> — <slug>
25
+ Scored: <iso> Verdict: pass | gaps (<n CRITICAL / n minor>)
26
+
27
+ | # | Question (tests the requirement prose) | Verdict | Spec line | Severity |
28
+ |---|---|---|---|---|
29
+ | 1 | Is every quantitative qualifier ("prominent", "fast", "large") given a number or reference? | fail | "banner is prominent" | **CRITICAL** |
30
+ | 2 | Does each requirement name an observable outcome a test could check? | pass | REQ-001..004 | — |
31
+ | 3 | Are all enumerations closed — no "etc." / "and so on" / open "…"? | pass | — | — |
32
+ ```
33
+
34
+ Verdict: `pass | fail | n/a`. A fail is **CRITICAL** when ambiguity changes build
35
+ or acceptance: unquantified success, open enumeration, ambiguous data shape,
36
+ undefined stated-flow edge, or contradictory requirements. Other vague prose is
37
+ **minor**: record it; do not block.
38
+
39
+ ## Question bank
40
+
41
+ Each question checks one requirement-prose failure mode:
42
+
43
+ - **Measurability:** every "good / fast / prominent / simple / secure" carries a number, a budget,
44
+ or a named reference. No adjective stands in for a threshold.
45
+ - **Completeness:** every enumeration is closed (no "etc."); every requirement with a precondition
46
+ states the failure branch; every entity names its required fields + lifecycle; every stated flow
47
+ names its empty / error / boundary behaviour.
48
+ - **Clarity:** one entity, one name (no `user`/`customer`/`account` drift); no requirement two
49
+ readers would implement differently; no "should" where "MUST" is meant.
50
+ - **Assumptions:** no material behavior, scope, data, security, or proof fact survives as a
51
+ hidden assumption; verify it or record an owned/deadlined assumption or blocking question.
52
+ - **Testability:** each acceptance criterion is binary and names (or clearly implies) its evidence.
53
+ A criterion only provable by reading code is a fail.
54
+ - **Consistency:** no requirement contradicts another, the data model, or a non-goal.
55
+ - **Stakeholders:** affected actors/operators are named; conflicting outcomes have an
56
+ explicit priority or decision owner rather than two simultaneously impossible promises.
57
+ - **Applicability:** topology, data, integration, security, UI/i18n/time zone, and
58
+ compatibility/delivery rows are `applies` with IDs or specifically justified `not applicable`.
59
+ - **Failure/recovery:** each partial, timeout, invalid, interrupted, or unavailable state
60
+ implied by an applicable row has a user outcome, system state, and safe retry/recovery rule.
61
+ - **Data:** schema/backfill/concurrency/tenant/retention implications state invariants and
62
+ prohibited loss/leakage; implementation detail stays for Define.
63
+ - **Integration:** timeout, invalid/partial response, auth/rate-limit/outage, duplicate,
64
+ ordering, and version-change behavior is specified when the boundary can produce it.
65
+ - **Preservation:** each material brownfield outcome appears in `Existing behavior
66
+ to preserve` with preserving REQ/AC and current evidence. Missing/vague “no
67
+ regressions” or unjustified `none` is CRITICAL.
68
+ **Failing case:** brownfield login still works but the table has no evidence column
69
+ → CRITICAL until a test path, command, or observed contract is named.
70
+ - **Backstops:** each row names an independent held-out, property/metamorphic, or
71
+ direct behavioral check and the failure it discriminates; confidence/presence/self-review fail.
72
+ - **Non-functional:** each NFR names affected REQ/AC IDs or a bounded `global` scope;
73
+ human-only proof prerequisites name their owner.
74
+
75
+ ## Readiness gate
76
+
77
+ The spec **Readiness gate** at the bottom of
78
+ [`spec-template.md`](spec-template.md) requires every
79
+ emitted `checklists/<domain>.md` to reach `Verdict: pass` (zero CRITICAL fails) before the gate
80
+ passes. Minor fails are logged, not blocking. A single open CRITICAL keeps the spec `Status: Draft`.
81
+ `/rite-define` reads the checklists at step 0 and **hard-blocks while any CRITICAL is
82
+ unchecked**. A spec without checklists is not yet checked, so define stops and routes
83
+ back here.
84
+
85
+ ## Discipline
86
+
87
+ - Score honestly. Do not soften a checklist question to pass a weak spec.
88
+ - Don't pad. Five real questions that find one CRITICAL beat thirty rubber-stamped rows.
89
+ - If a question needs a function name, it belongs in `/rite-vet`'s `test-plan.md`.
@@ -0,0 +1,154 @@
1
+ # `spec.md` template
2
+
3
+ Contract WHAT users get, WHY, success, and scope. HOW belongs in `plan.md`,
4
+ topology in `architecture.md`/`flows.md`, coverage in `traceability.md`.
5
+
6
+ Use `[NEEDS CLARIFICATION: <question>]` (blocking stops `/rite-clarify`); before readiness
7
+ every surviving marker converts to a gated `Q-###` open question ([`spec-grammar.md`](../../devrites-lib/reference/standards/spec-grammar.md) §
8
+ Unresolved-question markers — fail closed). Stable `REQ-001`/`AC-001` IDs; link, never
9
+ duplicate, source artifacts; over-budget requires `Budget override: <reason>`.
10
+
11
+ ```markdown
12
+ # Spec: <Feature>
13
+ Slug: <kebab-case>
14
+ Status: Draft | Ready
15
+ Created: <date>
16
+
17
+ ## Problem
18
+ <What is broken, missing, or costly.>
19
+
20
+ ## Goal
21
+ <User-visible outcome and why it matters.>
22
+
23
+ Capability impact: <affected capability/ies and change | none — specific justification>
24
+
25
+ ## Non-goals
26
+ - <Explicitly out of scope.>
27
+
28
+ ## Existing behavior to preserve
29
+ List affected observable public/security/data/operational outcomes that MUST
30
+ survive; map preserving REQ/AC plus current test/runtime/contract/source evidence.
31
+ No implementation detail. True greenfield: `none — no existing behavior in the affected scope`.
32
+
33
+ | Existing outcome | Preserved by | Current evidence |
34
+ | --- | --- | --- |
35
+ | <outcome that must not regress> | REQ-001 / AC-001 | <current evidence> |
36
+
37
+ Each preservation row **must** cite current evidence (test, runtime, contract, or
38
+ observed behavior). An empty or vague evidence cell blocks Spec readiness.
39
+
40
+ **Failing case:** row lists REQ-001 with evidence "none" or "TBD" → readiness gate
41
+ fails until evidence is named or the outcome is removed from scope.
42
+
43
+ ## Stakeholders and priorities
44
+ | Actor/stakeholder | Observable outcome | Conflict / priority rule |
45
+ | --- | --- | --- |
46
+ | <actor or affected owner> | <goal, protection, or operational need> | <none or how competing goals resolve> |
47
+
48
+ ## Constraints and invariants
49
+ - INV-001: <fact that MUST remain true across success, failure, retry, and recovery>.
50
+ - <security/privacy/accessibility/performance/compatibility/data/operational constraint,
51
+ or `none — <specific reason>` for a materially relevant category>.
52
+
53
+ ## Requirements
54
+ - REQ-001: The system MUST <observable product behavior>.
55
+ - REQ-002: The system MUST NOT <prohibited behavior>.
56
+
57
+ ## Acceptance criteria
58
+ Binary/evidence-backed; each maps to a requirement and later a traceability slice.
59
+
60
+ - [ ] AC-001: Given <state>, when <action>, then <outcome>. (REQ-001)
61
+ - [ ] AC-002: Given <state>, when <action>, then <outcome>. (REQ-002)
62
+
63
+ Behavioral/high-risk work uses this grammar, with the AC ID inside the scenario:
64
+
65
+ ### Requirement: <name>
66
+ The system SHALL <core observable behavior>.
67
+
68
+ #### Scenario: <name>
69
+ - [ ] AC-003: **WHEN** <trigger> **THEN** <observable outcome>. (REQ-001)
70
+
71
+ ## Edge Coverage
72
+ Use `covered | backstop | dismissed | unresolved`; target an existing REQ/AC
73
+ unless dismissed. `backstop` requires a named independent held-out,
74
+ property/metamorphic, or direct behavioral check plus the wrong behavior it
75
+ discriminates. If unavailable, use `unresolved`; presence/prose/self-judgment cannot pass.
76
+
77
+ | Edge ID | Requirement/AC | Class | Status | Reason/backstop |
78
+ | --- | --- | --- | --- | --- |
79
+ | EDGE-001 | AC-001 | empty/error/permission/race/migration | covered | <evidence/rationale> |
80
+
81
+ ## Prohibitions (must-NOT)
82
+ Bespoke only; generic security/privacy stays in standards. Status:
83
+ `resolved/test | resolved/judgment | dismissed | unresolved`.
84
+
85
+ | Prohibition ID | Requirement/AC | Status | Test/evidence |
86
+ | --- | --- | --- | --- |
87
+ | PROH-001 | REQ-002 | resolved/test | <test/evidence link> |
88
+
89
+ ## Failure and recovery behavior
90
+ | Trigger / partial state | User-visible outcome | System state | Recovery / retry rule | Requirement/AC |
91
+ | --- | --- | --- | --- | --- |
92
+ | <timeout, invalid input, interruption, dependency loss> | <clear bounded outcome> | <unchanged/pending/reconciling> | <who/what can safely recover> | <REQ/AC> |
93
+
94
+ ## Applicability map
95
+ Use `applies | not applicable`; a non-applicable row needs a specific reason. The
96
+ status routes Define/Vet/Build/Prove to the named standard without copying it here.
97
+
98
+ | Concern | Status and trigger | Affected REQ/AC/invariant |
99
+ | --- | --- | --- |
100
+ | Repository topology (nested/mono/multi-repo, languages, services, generated/vendor) | <status + reason> | <ids> |
101
+ | Data integrity (writes, schema/migration, concurrency, tenant, retention/privacy) | <status + reason> | <ids> |
102
+ | Integration reliability (API/webhook/queue/job/cache/cross-service) | <status + reason> | <ids> |
103
+ | Security boundary (authn/authz, hostile input/files, secrets, privilege) | <status + reason> | <ids> |
104
+ | UI/accessibility/i18n/time-zone behavior | <status + reason> | <ids> |
105
+ | Compatibility/delivery (old/new versions, config, flag, rollout/rollback) | <status + reason> | <ids> |
106
+
107
+ ## Edge cases
108
+ - <Boundary note not captured above.>
109
+
110
+ ## AI-SPEC annex
111
+ - Model/RAG/agent/eval/LLM-output scope: `ai-spec.md` from `ai-spec-template.md`.
112
+ - Otherwise: not applicable.
113
+
114
+ ## Success metrics
115
+ - <Metric or observable proof.>
116
+
117
+ ## Scope boundaries
118
+ - Owns: <surface/behavior>.
119
+ - Does not own: <adjacent area>.
120
+ - Placement summary: <module/layer>; full map in `architecture.md`.
121
+
122
+ ## Coverage seed
123
+ - Actors/journeys/components: <material surfaces>.
124
+ - States/data/contracts/integrations: <material boundaries>.
125
+ - Operations/proof: <config, observability, rollout/rollback, evidence constraints>.
126
+
127
+ ## References
128
+ - `brief.md`: request/outcome/scope; `architecture.md`: placement/integration;
129
+ `flows.md`: Mermaid-first diagrams (optional `visual/<flow>.html`+`.outline.md` companion
130
+ + link when richer presentation earns it — load playbooks via
131
+ [`index.md`](../../devrites-lib/reference/visual-playbooks/index.md)); `decisions.md`: decisions;
132
+ `decision-coverage.md`: Clarify topology/verdict; `traceability.md`: Define coverage;
133
+ `design-brief.md`: UI direction.
134
+
135
+ ## Open questions
136
+ | Question ID | Gate | Question | Impact |
137
+ | --- | --- | --- | --- |
138
+ | Q-001 | blocking | [NEEDS CLARIFICATION: <question>] | AC-001 |
139
+
140
+ ## Readiness gate
141
+ - [ ] No blocking clarification or open `blocking`/`escalating` question; REQ/AC IDs are valid and ACs independently provable.
142
+ - [ ] Stakeholder conflicts/priority rules, constraints, and invariants are explicit;
143
+ implementation preferences are not disguised as requirements.
144
+ - [ ] Existing affected behavior maps to preserving REQ/AC + current evidence, or uses the exact justified greenfield `none`.
145
+ - [ ] Edge rows target REQ/AC or justify dismissal; every backstop names independent discriminating evidence, else `unresolved`.
146
+ - [ ] Prohibitions resolve/dismiss; `resolved/test` links evidence.
147
+ - [ ] Each material failure/partial state names user outcome, system state, recovery,
148
+ and REQ/AC; no silent success or blind retry remains.
149
+ - [ ] Every applicability row is `applies` with affected IDs or has a specific
150
+ evidence-backed `not applicable` reason.
151
+ - [ ] AI has `ai-spec.md` and UI has `design-brief.md`; out-of-scope work states not applicable.
152
+ - [ ] Non-goals/scope are explicit; capability impact is singular/specific and matches ledger deltas.
153
+ - [ ] Architecture/flows/decisions are linked, not duplicated; Coverage seed names Clarify surfaces.
154
+ ```