devrites 5.5.0 → 5.6.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 (281) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +8 -6
  3. package/engine/internal/devritespaths/paths.go +3 -0
  4. package/engine/internal/hostpack/hostpack.go +45 -6
  5. package/engine/internal/hostpack/hostpack_test.go +29 -13
  6. package/engine/internal/install/apply.go +14 -5
  7. package/engine/internal/install/install.go +8 -2
  8. package/engine/internal/install/install_test.go +12 -5
  9. package/engine/internal/install/merge.go +5 -0
  10. package/engine/internal/install/preflight.go +20 -2
  11. package/engine/internal/install/uninstall.go +5 -0
  12. package/engine/internal/install/update.go +1 -1
  13. package/install.sh +4 -1
  14. package/pack/generated/README.md +5 -1
  15. package/pack/generated/pi/AGENTS.md +22 -0
  16. package/pack/generated/pi/agents/devrites-code-reviewer.md +142 -0
  17. package/pack/generated/pi/agents/devrites-devex-reviewer.md +124 -0
  18. package/pack/generated/pi/agents/devrites-doubt-reviewer.md +88 -0
  19. package/pack/generated/pi/agents/devrites-evidence-scout.md +72 -0
  20. package/pack/generated/pi/agents/devrites-frontend-reviewer.md +116 -0
  21. package/pack/generated/pi/agents/devrites-performance-reviewer.md +115 -0
  22. package/pack/generated/pi/agents/devrites-plan-drafter.md +99 -0
  23. package/pack/generated/pi/agents/devrites-plan-reviewer.md +142 -0
  24. package/pack/generated/pi/agents/devrites-proof-runner.md +74 -0
  25. package/pack/generated/pi/agents/devrites-retrospector.md +61 -0
  26. package/pack/generated/pi/agents/devrites-security-auditor.md +109 -0
  27. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +94 -0
  28. package/pack/generated/pi/agents/devrites-slice-wright.md +204 -0
  29. package/pack/generated/pi/agents/devrites-spec-reviewer.md +96 -0
  30. package/pack/generated/pi/agents/devrites-strategy-reviewer.md +100 -0
  31. package/pack/generated/pi/agents/devrites-test-analyst.md +94 -0
  32. package/pack/generated/pi/agents/devrites-upgrade-planner.md +89 -0
  33. package/pack/generated/pi/prompts/rite-adopt.md +5 -0
  34. package/pack/generated/pi/prompts/rite-autocomplete.md +5 -0
  35. package/pack/generated/pi/prompts/rite-build.md +5 -0
  36. package/pack/generated/pi/prompts/rite-clarify.md +5 -0
  37. package/pack/generated/pi/prompts/rite-converge.md +5 -0
  38. package/pack/generated/pi/prompts/rite-customize.md +5 -0
  39. package/pack/generated/pi/prompts/rite-define.md +5 -0
  40. package/pack/generated/pi/prompts/rite-doctor.md +5 -0
  41. package/pack/generated/pi/prompts/rite-dogfood.md +5 -0
  42. package/pack/generated/pi/prompts/rite-explain.md +5 -0
  43. package/pack/generated/pi/prompts/rite-frame.md +5 -0
  44. package/pack/generated/pi/prompts/rite-handoff.md +5 -0
  45. package/pack/generated/pi/prompts/rite-learn.md +5 -0
  46. package/pack/generated/pi/prompts/rite-plan.md +5 -0
  47. package/pack/generated/pi/prompts/rite-polish.md +5 -0
  48. package/pack/generated/pi/prompts/rite-pov.md +5 -0
  49. package/pack/generated/pi/prompts/rite-pr-feedback.md +5 -0
  50. package/pack/generated/pi/prompts/rite-pressure-test.md +5 -0
  51. package/pack/generated/pi/prompts/rite-prototype.md +5 -0
  52. package/pack/generated/pi/prompts/rite-prove.md +5 -0
  53. package/pack/generated/pi/prompts/rite-quick.md +5 -0
  54. package/pack/generated/pi/prompts/rite-resolve.md +5 -0
  55. package/pack/generated/pi/prompts/rite-review.md +5 -0
  56. package/pack/generated/pi/prompts/rite-seal.md +5 -0
  57. package/pack/generated/pi/prompts/rite-ship.md +5 -0
  58. package/pack/generated/pi/prompts/rite-spec.md +5 -0
  59. package/pack/generated/pi/prompts/rite-status.md +5 -0
  60. package/pack/generated/pi/prompts/rite-temper.md +5 -0
  61. package/pack/generated/pi/prompts/rite-upgrade.md +5 -0
  62. package/pack/generated/pi/prompts/rite-vet.md +5 -0
  63. package/pack/generated/pi/prompts/rite-watch-pr.md +5 -0
  64. package/pack/generated/pi/prompts/rite-zoom-out.md +5 -0
  65. package/pack/generated/pi/prompts/rite.md +5 -0
  66. package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +63 -0
  67. package/pack/generated/pi/skills/devrites-audit/SKILL.md +50 -0
  68. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +76 -0
  69. package/pack/generated/pi/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  70. package/pack/generated/pi/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  71. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +96 -0
  72. package/pack/generated/pi/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  73. package/pack/generated/pi/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
  74. package/pack/generated/pi/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  75. package/pack/generated/pi/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  76. package/pack/generated/pi/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  77. package/pack/generated/pi/skills/devrites-debug-recovery/reference/trace.md +25 -0
  78. package/pack/generated/pi/skills/devrites-doubt/SKILL.md +79 -0
  79. package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +86 -0
  80. package/pack/generated/pi/skills/devrites-frontend-craft/reference/craft.md +63 -0
  81. package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  82. package/pack/generated/pi/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
  83. package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
  84. package/pack/generated/pi/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
  85. package/pack/generated/pi/skills/devrites-frontend-craft/reference/shape.md +56 -0
  86. package/pack/generated/pi/skills/devrites-interview/SKILL.md +102 -0
  87. package/pack/generated/pi/skills/devrites-lib/SKILL.md +58 -0
  88. package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +42 -0
  89. package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +64 -0
  90. package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
  91. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +73 -0
  92. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +88 -0
  93. package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +60 -0
  94. package/pack/generated/pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
  95. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +398 -0
  96. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +99 -0
  97. package/pack/generated/pi/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
  98. package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
  99. package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
  100. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  101. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +108 -0
  102. package/pack/generated/pi/skills/devrites-lib/reference/standards/coding-style.md +48 -0
  103. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +109 -0
  104. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +167 -0
  105. package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
  106. package/pack/generated/pi/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
  107. package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
  108. package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +31 -0
  109. package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
  110. package/pack/generated/pi/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
  111. package/pack/generated/pi/skills/devrites-lib/reference/standards/documentation.md +43 -0
  112. package/pack/generated/pi/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
  113. package/pack/generated/pi/skills/devrites-lib/reference/standards/elicitation.md +85 -0
  114. package/pack/generated/pi/skills/devrites-lib/reference/standards/error-handling.md +47 -0
  115. package/pack/generated/pi/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
  116. package/pack/generated/pi/skills/devrites-lib/reference/standards/hooks.md +25 -0
  117. package/pack/generated/pi/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
  118. package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
  119. package/pack/generated/pi/skills/devrites-lib/reference/standards/observability.md +88 -0
  120. package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
  121. package/pack/generated/pi/skills/devrites-lib/reference/standards/patterns.md +68 -0
  122. package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +51 -0
  123. package/pack/generated/pi/skills/devrites-lib/reference/standards/principles.md +42 -0
  124. package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +123 -0
  125. package/pack/generated/pi/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
  126. package/pack/generated/pi/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
  127. package/pack/generated/pi/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
  128. package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
  129. package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +202 -0
  130. package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
  131. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
  132. package/pack/generated/pi/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
  133. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +212 -0
  134. package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +92 -0
  135. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
  136. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
  137. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
  138. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
  139. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
  140. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
  141. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
  142. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
  143. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
  144. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
  145. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +267 -0
  146. package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +73 -0
  147. package/pack/generated/pi/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
  148. package/pack/generated/pi/skills/devrites-prose-craft/reference/examples.md +131 -0
  149. package/pack/generated/pi/skills/devrites-prose-craft/reference/structures.md +196 -0
  150. package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +52 -0
  151. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +134 -0
  152. package/pack/generated/pi/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  153. package/pack/generated/pi/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  154. package/pack/generated/pi/skills/rite/SKILL.md +148 -0
  155. package/pack/generated/pi/skills/rite/reference/menu.md +48 -0
  156. package/pack/generated/pi/skills/rite-adopt/SKILL.md +52 -0
  157. package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +19 -0
  158. package/pack/generated/pi/skills/rite-adopt/reference/anti-patterns.md +19 -0
  159. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +132 -0
  160. package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +41 -0
  161. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +148 -0
  162. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +92 -0
  163. package/pack/generated/pi/skills/rite-build/SKILL.md +96 -0
  164. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +145 -0
  165. package/pack/generated/pi/skills/rite-build/reference/anti-patterns.md +23 -0
  166. package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +120 -0
  167. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +44 -0
  168. package/pack/generated/pi/skills/rite-build/reference/frontend-trigger.md +39 -0
  169. package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +50 -0
  170. package/pack/generated/pi/skills/rite-build/reference/output.md +33 -0
  171. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +205 -0
  172. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +87 -0
  173. package/pack/generated/pi/skills/rite-build/reference/spec-drift-guard.md +84 -0
  174. package/pack/generated/pi/skills/rite-build/reference/tdd.md +27 -0
  175. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +89 -0
  176. package/pack/generated/pi/skills/rite-clarify/SKILL.md +99 -0
  177. package/pack/generated/pi/skills/rite-clarify/reference/anti-patterns.md +24 -0
  178. package/pack/generated/pi/skills/rite-clarify/reference/decision-coverage.md +55 -0
  179. package/pack/generated/pi/skills/rite-converge/SKILL.md +145 -0
  180. package/pack/generated/pi/skills/rite-converge/reference/anti-patterns.md +35 -0
  181. package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +65 -0
  182. package/pack/generated/pi/skills/rite-customize/SKILL.md +60 -0
  183. package/pack/generated/pi/skills/rite-define/SKILL.md +169 -0
  184. package/pack/generated/pi/skills/rite-define/reference/anti-patterns.md +26 -0
  185. package/pack/generated/pi/skills/rite-define/reference/gates.md +154 -0
  186. package/pack/generated/pi/skills/rite-define/reference/plan-template.md +149 -0
  187. package/pack/generated/pi/skills/rite-doctor/SKILL.md +69 -0
  188. package/pack/generated/pi/skills/rite-dogfood/SKILL.md +55 -0
  189. package/pack/generated/pi/skills/rite-explain/SKILL.md +152 -0
  190. package/pack/generated/pi/skills/rite-explain/reference/intake.md +89 -0
  191. package/pack/generated/pi/skills/rite-frame/SKILL.md +115 -0
  192. package/pack/generated/pi/skills/rite-frame/reference/failure-modes.md +66 -0
  193. package/pack/generated/pi/skills/rite-handoff/SKILL.md +97 -0
  194. package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +44 -0
  195. package/pack/generated/pi/skills/rite-learn/SKILL.md +72 -0
  196. package/pack/generated/pi/skills/rite-plan/SKILL.md +186 -0
  197. package/pack/generated/pi/skills/rite-plan/reference/anti-patterns.md +34 -0
  198. package/pack/generated/pi/skills/rite-plan/reference/dependency-graph.md +48 -0
  199. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +105 -0
  200. package/pack/generated/pi/skills/rite-plan/reference/slicing.md +167 -0
  201. package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +42 -0
  202. package/pack/generated/pi/skills/rite-polish/SKILL.md +104 -0
  203. package/pack/generated/pi/skills/rite-polish/reference/adr-promotion.md +11 -0
  204. package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +187 -0
  205. package/pack/generated/pi/skills/rite-polish/reference/anti-patterns.md +30 -0
  206. package/pack/generated/pi/skills/rite-polish/reference/backend-polish.md +80 -0
  207. package/pack/generated/pi/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
  208. package/pack/generated/pi/skills/rite-polish/reference/code.md +82 -0
  209. package/pack/generated/pi/skills/rite-polish/reference/design-memory.md +117 -0
  210. package/pack/generated/pi/skills/rite-polish/reference/design-system-discovery.md +8 -0
  211. package/pack/generated/pi/skills/rite-polish/reference/harden-checklist.md +109 -0
  212. package/pack/generated/pi/skills/rite-polish/reference/ledger.md +65 -0
  213. package/pack/generated/pi/skills/rite-polish/reference/ui.md +137 -0
  214. package/pack/generated/pi/skills/rite-pov/SKILL.md +58 -0
  215. package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +54 -0
  216. package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +67 -0
  217. package/pack/generated/pi/skills/rite-prototype/SKILL.md +104 -0
  218. package/pack/generated/pi/skills/rite-prove/SKILL.md +120 -0
  219. package/pack/generated/pi/skills/rite-prove/reference/acceptance-proof.md +88 -0
  220. package/pack/generated/pi/skills/rite-prove/reference/anti-patterns.md +25 -0
  221. package/pack/generated/pi/skills/rite-prove/reference/browser-proof.md +51 -0
  222. package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +43 -0
  223. package/pack/generated/pi/skills/rite-prove/reference/proof-ladder.md +28 -0
  224. package/pack/generated/pi/skills/rite-prove/reference/test-command-discovery.md +30 -0
  225. package/pack/generated/pi/skills/rite-quick/SKILL.md +82 -0
  226. package/pack/generated/pi/skills/rite-resolve/SKILL.md +95 -0
  227. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +118 -0
  228. package/pack/generated/pi/skills/rite-review/SKILL.md +170 -0
  229. package/pack/generated/pi/skills/rite-review/reference/anti-patterns.md +32 -0
  230. package/pack/generated/pi/skills/rite-review/reference/cognitive-load.md +90 -0
  231. package/pack/generated/pi/skills/rite-review/reference/feature-scoped-review.md +26 -0
  232. package/pack/generated/pi/skills/rite-review/reference/five-axis-review.md +66 -0
  233. package/pack/generated/pi/skills/rite-review/reference/nielsen-heuristics.md +126 -0
  234. package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +80 -0
  235. package/pack/generated/pi/skills/rite-review/reference/performance-review.md +14 -0
  236. package/pack/generated/pi/skills/rite-review/reference/security-review.md +42 -0
  237. package/pack/generated/pi/skills/rite-seal/SKILL.md +75 -0
  238. package/pack/generated/pi/skills/rite-seal/reference/anti-patterns.md +29 -0
  239. package/pack/generated/pi/skills/rite-seal/reference/final-evidence.md +41 -0
  240. package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +29 -0
  241. package/pack/generated/pi/skills/rite-seal/reference/output.md +5 -0
  242. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +47 -0
  243. package/pack/generated/pi/skills/rite-seal/reference/risk-and-rollback.md +56 -0
  244. package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +27 -0
  245. package/pack/generated/pi/skills/rite-ship/SKILL.md +88 -0
  246. package/pack/generated/pi/skills/rite-ship/reference/anti-patterns.md +28 -0
  247. package/pack/generated/pi/skills/rite-ship/reference/close-out.md +68 -0
  248. package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +120 -0
  249. package/pack/generated/pi/skills/rite-ship/reference/rollout.md +62 -0
  250. package/pack/generated/pi/skills/rite-ship/reference/ship-template.md +39 -0
  251. package/pack/generated/pi/skills/rite-spec/SKILL.md +150 -0
  252. package/pack/generated/pi/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  253. package/pack/generated/pi/skills/rite-spec/reference/ai-spec-template.md +40 -0
  254. package/pack/generated/pi/skills/rite-spec/reference/anti-patterns.md +27 -0
  255. package/pack/generated/pi/skills/rite-spec/reference/interview-patterns.md +56 -0
  256. package/pack/generated/pi/skills/rite-spec/reference/investigation.md +83 -0
  257. package/pack/generated/pi/skills/rite-spec/reference/question-protocol.md +36 -0
  258. package/pack/generated/pi/skills/rite-spec/reference/references-intake.md +62 -0
  259. package/pack/generated/pi/skills/rite-spec/reference/spec-checklists.md +89 -0
  260. package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +154 -0
  261. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +227 -0
  262. package/pack/generated/pi/skills/rite-status/SKILL.md +57 -0
  263. package/pack/generated/pi/skills/rite-temper/SKILL.md +130 -0
  264. package/pack/generated/pi/skills/rite-temper/reference/anti-patterns.md +30 -0
  265. package/pack/generated/pi/skills/rite-temper/reference/review-dimensions.md +66 -0
  266. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +53 -0
  267. package/pack/generated/pi/skills/rite-temper/reference/significance.md +46 -0
  268. package/pack/generated/pi/skills/rite-temper/reference/strategy-template.md +90 -0
  269. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +121 -0
  270. package/pack/generated/pi/skills/rite-vet/SKILL.md +193 -0
  271. package/pack/generated/pi/skills/rite-vet/reference/anti-patterns.md +43 -0
  272. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +202 -0
  273. package/pack/generated/pi/skills/rite-vet/reference/cross-model.md +19 -0
  274. package/pack/generated/pi/skills/rite-vet/reference/depth.md +59 -0
  275. package/pack/generated/pi/skills/rite-vet/reference/eng-lenses.md +48 -0
  276. package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +201 -0
  277. package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +85 -0
  278. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +69 -0
  279. package/package.json +3 -2
  280. package/scripts/build-host-artifacts.sh +54 -4
  281. package/scripts/pi-generate.sh +198 -0
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: rite-temper
3
+ description: Temper a readied spec before planning. Use when the user says "temper this", "strategy review", "pre-mortem the spec", or asks if we are over/under-building. Not for code review or final seal.
4
+ argument-hint: "[feature-slug] [--mode expand|selective|hold|reduce]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # /rite-temper: review scope and risk before planning
9
+
10
+ Review the readied spec for ambition, scope, pre-mortem risk and unnecessary surface. Fold accepted decisions into the canonical contract before
11
+ `/rite-define`. This step is optional for small work and skips low-stakes specs, but
12
+ `/rite-autocomplete` always invokes it. **Read the active workspace first**; if there
13
+ is no readied `spec.md`, tell the user to run `/rite-spec`. Review depth follows
14
+ [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md);
15
+ the required exact strategy reviewer never changes with profile.
16
+
17
+ ## Rules consulted (read on demand from `.pi/skills/devrites-lib/reference/standards/`)
18
+ Pull on demand: `patterns.md` +
19
+ `coding-style.md` (the over-engineering / YAGNI rubric (reuse the pack's standard, don't
20
+ invent one), `documentation.md` (ADR-style `decisions.md` entries), `afk-hitl.md`
21
+ (irreversible-risk list + gate ceiling), `elicitation.md` (the move-set to deepen a section
22
+ that needs more than the default pre-mortem) selected by the section's risk). Load
23
+ `repository-topology.md`, `data-integrity.md`, or `integration-reliability.md` only when
24
+ the spec applicability map triggers that risk family.
25
+
26
+ ## Operating rules
27
+ - **Raise outcome ambition without expanding the solution unnecessarily.** Solve the
28
+ underlying problem without adding speculative capability or abstraction.
29
+ - **Route every scope change through the Spec Drift Guard.** A scope change takes effect
30
+ only when `spec.md` records the confirmed decision. Expansion is **opt-in** (HITL
31
+ confirm; AFK pauses: see autocomplete policy). Nothing auto-grows into the build.
32
+ - **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
33
+ data-model changes always pause under the irreversible-risk list.
34
+ - **Honest verdict.** Never round "needs work" up to "ready"; record every scope call's *why*.
35
+ - **Search before asking.** Apply `afk-hitl.md` decision ownership; only human-owned calls
36
+ enter the interactive walk.
37
+ - **You write; the reviewer judges.** You are the single canonical writer (`strategy.md` +
38
+ the spec edits); the reviewer agent is read-only.
39
+ - **Require spec-quality checklists for significant features.** Before hardening,
40
+ confirm `checklists/<domain>.md` exist and pass (`rite-spec/reference/spec-checklists.md`); a
41
+ scope expansion you fold in **adds its own** rows (new Success/Acceptance criteria get
42
+ checklist rows too). A folded expansion with an unquantified criterion is a CRITICAL
43
+ failure that reopens the readiness gate.
44
+
45
+ ## Workflow
46
+ 0. **Read `.pi/skills/devrites-lib/reference/standards/core.md`**, then
47
+ resolve the active slug, require its `state.md`, and read the cursor directly.
48
+ Then read the workspace: `spec.md`, `decision-coverage.md` (+ `decisions.md`,
49
+ `assumptions.md`, `design-brief.md` if UI), `state.md`. Require `Spec gate: passed`: else
50
+ STOP → `/rite-spec`. Require `Decision coverage: CLEAR`: else STOP →
51
+ `/rite-clarify`. If a plan already exists, scope changes route through `/rite-plan
52
+ repair` (record in `drift.md`), not a blind spec edit.
53
+ 1. **Significance test:** [`reference/significance.md`](reference/significance.md). Low-stakes
54
+ / shape-not-meaning work → write the exact one-line `skipped — low stakes (<trigger>)` verdict to `strategy.md`,
55
+ set `state.md` `Phase: temper` + `Next step: /rite-define`, and recommend it. Otherwise fire the full pass below.
56
+ 2. **FORWARD pass + mode selection:** [`reference/scope-modes.md`](reference/scope-modes.md).
57
+ First, the **one-sentence-intent test**: state the whole change's intent in a single sentence.
58
+ If you can't without an "and" that joins two unrelated outcomes, it is **two features**: the
59
+ scope-creep signal; recommend splitting or narrowing the spec before continuing.
60
+ Apply the same test to size: a spec whose honest decomposition would exceed the
61
+ [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
62
+ (roughly ten slices or more than ~20 acceptance criteria) is a feature sequence;
63
+ recommend the thinnest shippable subset now and name the continuations as Non-goals.
64
+ Then consider the 10-star outcome for the underlying problem and choose **exactly one**
65
+ scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`) with its
66
+ rationale and the condition that would change the choice. `$ARGUMENTS` `--mode` is a
67
+ hint, not a command.
68
+ 3. **INVERSION pass:** pre-mortem in past tense ("it shipped and failed: what went wrong"),
69
+ each top risk carrying likelihood + mitigation + the slice it will bind to; then the **YAGNI
70
+ ledger** (each candidate scope item gets the "imagine the later refactor" test; defer unless
71
+ now-cost is trivial AND deferred-cost is large).
72
+ **Interruption pre-mortem:** audit the spec forecast and assumptions for unresolved behavior,
73
+ proof prerequisites, approvals, access, and irreversible gates. Resolve facts and reversible
74
+ details now; retain only unavailable-pre-code or mandatory action-time checkpoints.
75
+ Challenge each `not applicable` decision against live evidence and each applicable
76
+ topology/data/integration row against its worst credible partial-state/recovery case.
77
+ - **Deepen on demand.** When a scope decision, requirement, or risk needs more analysis
78
+ than the default pre-mortem provides, choose 3-5 techniques from
79
+ [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) whose *when-to-reach-for-it* matches that
80
+ section's risk (irreversible decision → Red-Team/Blue-Team + Assumption Audit; sizing → Delphi;
81
+ vague requirement → Steelman-then-Attack), offer them, and run the chosen one **on that
82
+ section**. Record what changed, not the technique name. The default passes remain
83
+ sufficient when no deeper analysis is needed.
84
+ 4. **Score the 9 dimensions:** [`reference/review-dimensions.md`](reference/review-dimensions.md).
85
+ Cite evidence *before* the band; **gate on the floor** (the weakest dimension, not an average).
86
+ **Completion:** all nine dimensions have cited evidence, a band, and one explicit floor verdict.
87
+ 5. **Review human-owned findings with the human; do not batch them.** `strategy.md`
88
+ records the interactive review but does not replace it. Present each material scope decision through
89
+ `AskUserQuestion`, one at a time, best-guess + **why**. Each material scope call ends as a
90
+ **recorded decision**: a resolved `questions.md` qid (HITL) or a `decisions.md` ADR (AFK):
91
+ so the review leaves an auditable record outside chat. (AFK gate policy —
92
+ [`reference/significance.md`](reference/significance.md) — `hold-rigor` + `reduce-to-MVP`
93
+ auto-apply, **any `expand` is a blocking pause**, irreversible-risk always pauses.)
94
+ Apply objective clarity, mitigation, and assumption fixes directly.
95
+ 6. **Write `strategy.md` + fold back:** [`reference/strategy-template.md`](reference/strategy-template.md).
96
+ **Choose the drift path based on whether a plan exists:** *no `plan.md` yet* (the normal pre-define
97
+ case) → update `spec.md` **through the Spec Drift Guard**. *Success metrics* (outcome-level, no AC id)
98
+ **and** *Acceptance criteria* for each opt-in expansion / cut, **Non-goals** for every deferred item,
99
+ *Constraints and invariants*, with top failure modes + mitigations folded into *Failure and recovery
100
+ behavior* rows, and the *Open questions* table; *`plan.md`
101
+ already exists* → do **not** edit `spec.md` here: write the deltas to `drift.md` and hand off
102
+ to `/rite-plan repair`. Either way, append `decisions.md` (one ADR per scope call: context ·
103
+ decision · why-not · what-would-change-it) and `assumptions.md` (every "we'll probably need X" →
104
+ assumption-to-verify). (every delta carries the step-5 recorded decision; an untraceable
105
+ fold is invalid). **Re-check the spec Readiness gate** (it fails if
106
+ any folded scope delta lacks its decision or leaves a foreseeable human build choice).
107
+ After any edit to `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or
108
+ `questions.md`, re-scan the affected coverage rows, assumption audit, residual uncertainty,
109
+ and closed gates. Partial/Missing, an unowned material assumption, or an open
110
+ blocking/escalating question routes `/rite-clarify`/HITL. Only after the
111
+ matrix is re-closed may the phase advance.
112
+ Set `Phase: temper`; `Next step: /rite-define` only after verification.
113
+ Human-owned expansion/unapproved irreversible choices set `Awaiting human` +
114
+ `Status: awaiting_human`; objective below-bar findings continue correction.
115
+ 7. **Adversarial verification loop:** ask the exact
116
+ [`devrites-strategy-reviewer`](.pi/agents/devrites-strategy-reviewer.md)
117
+ through the native fresh-context contract in
118
+ [`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** the hardened
119
+ spec + rubric, no authoring reasoning. Fold technical findings into one correction;
120
+ exact strategy reviewer rechecks open findings and affected coverage/regressions under
121
+ [the canonical retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
122
+ Product/scope choices and unapproved irreversible risk remain human gates;
123
+ technical exhaustion preserves blocker/reproduction.
124
+ If the named agent is unavailable, stop for HITL. After an accepted edit to a
125
+ coverage-bound input, repeat step 6's native coverage revalidation before handoff.
126
+ 8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `/rite-define`.
127
+
128
+ > **Mid-flight discipline.** Do not replace the interactive review with `strategy.md`,
129
+ > expand implementation surface without need, grow scope outside the Drift Guard, or score
130
+ > before citing evidence. See [`reference/anti-patterns.md`](reference/anti-patterns.md).
@@ -0,0 +1,30 @@
1
+ # /rite-temper: anti-patterns
2
+
3
+ For cross-phase issues, read [universal anti-patterns](../../devrites-lib/reference/standards/anti-patterns.md).
4
+
5
+ ## Phase rationalizations
6
+
7
+ | Excuse | Rebuttal |
8
+ |---|---|
9
+ | "I'll write all the findings into `strategy.md` and let the user read it." | Fold and recheck objective corrections preserving scope, behavior, and risk policy. Ask human-owned strategy/acceptance choices with recommendations and await answers. Recording alone resolves nothing; never silently expand or trim the spec. |
10
+ | "Bigger is better: let's add the extra capability while we're thinking big." | Ambition belongs on the **outcome**, not the **solution surface**. A speculative capability/abstraction is gold plating. Expand the problem + acceptance; never the machinery. |
11
+ | "The user obviously wants the ambitious version. I'll add it to the spec." | Expansion is **opt-in**, recorded, and confirmed (HITL) or paused (AFK). Adding acceptance the human didn't approve is silent scope growth: route it through the Spec Drift Guard or don't add it. |
12
+ | "It's over-scoped, I'll just trim those criteria." | Reducing scope is **still a spec change**. Cut acceptance only as a recorded Spec-Drift-Guard decision, and park the rest in Non-goals with a revisit note: never a silent trim. |
13
+ | "This dimension is weak but the others are strong: net it's fine." | The gate is the **floor**, not the average; strong clarity cannot offset broken risk. |
14
+ | "I can see it's adequate. I'll note the band, evidence is obvious." | Cite spec evidence **before** the band; never score first and rationalize later. |
15
+ | "It's a strategy doc, the implementation concerns don't apply yet." | Cross-cutting concerns (security/data/observability/modifiability) are where strategy breaks down. Address each or mark it explicitly N/A: silent omission is a gap. |
16
+ | "This greenfield design is elegant." | Ground ambition in live seams/blast radius; a new dependency or second design system needs an explicit decision. |
17
+
18
+ ## Red flags
19
+ - An accepted strategy change recorded in `strategy.md` but not reflected in its
20
+ owning spec acceptance/Non-goals. A clean review does not require gratuitous spec edits.
21
+ - An `expand` decision auto-applied in AFK, an unapproved risk-policy change, or an
22
+ irreversible operation without its required authorization.
23
+ - A pre-mortem with risks listed but no mitigation + owning slice: a risk without an owner is a
24
+ wish.
25
+ - Repeating an exhausted causal failure under the shared no-progress rule in
26
+ [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md), or stopping a
27
+ distinct cause solely because the total review round exceeds three.
28
+ - The reviewer being handed the author's reasoning as independent evidence
29
+ (defeats the fresh-context point).
30
+ - The skill writing a `plan.md`, slicing, or touching code. That's `/rite-define` / `/rite-build`.
@@ -0,0 +1,66 @@
1
+ # Review dimensions and floor-gate rubric
2
+
3
+ Score the spec on nine dimensions. A strong dimension cannot offset a failed one, so
4
+ the gate uses the **lowest band**, not an average.
5
+
6
+ ## The nine dimensions
7
+ 1. **Problem choice and ambition:** does the spec solve the underlying problem, or only
8
+ make a minor improvement to the obvious path? It may also reach beyond the actual need.
9
+ Both insufficient outcome ambition and over-building are failures.
10
+ 2. **Scope and boundary:** are non-goals explicit? Is there a Minimum Usable Subset and
11
+ a clear IN/OUT line? Flag unrelated bundles and a missing "Won't-have-this-time".
12
+ 3. **Premise and alternatives:** are the consequential premises stated and challenged, and is at
13
+ least one genuinely different approach (different data model / flow / boundary) considered
14
+ with its trade-off? ("Alternatives considered" is one of the most useful parts of a spec.)
15
+ 4. **Pre-mortem risk coverage:** assess the feature as if it shipped and failed. Each top risk carries likelihood
16
+ + mitigation + the slice that owns it. The interruption pre-mortem accounts for foreseeable
17
+ human prerequisites and action-time approvals instead of deferring generic uncertainty to
18
+ build. **Unmitigated top risks are gating.**
19
+ 5. **Over-engineering / YAGNI:** speculative capability, unused extension points, premature
20
+ abstraction, second-system bloat. Apply the pack's standard (`patterns.md`) and the YAGNI
21
+ ledger test (scope-modes.md Pass 2).
22
+ 6. **Acceptance testability and completion:** every acceptance criterion measurable, technology-
23
+ agnostic, and comparable **down to a baseline** ("better than the current workaround"), not
24
+ up to an unbounded ideal. Vague adjectives ("fast/robust/intuitive") and "handles X
25
+ gracefully" are flagged.
26
+ 7. **Irreversibility & blast radius:** are auth / migration / public-API / data-model touches
27
+ treated with conservatism + rollback, and is the blast radius understood (from a
28
+ code-intelligence index if available)?
29
+ 8. **Cross-cutting coverage:** security/trust-boundary, data & migration, observability, and
30
+ modifiability each explicitly addressed **or explicitly N/A**: no silent omission.
31
+ 9. **Convention fit & placement realism:** does the ambition fit the codebase's existing seams
32
+ and patterns, or assume greenfield freedom a constrained space doesn't have? Prefer existing
33
+ conventions; flag a new dependency / second design system for explicit decision.
34
+
35
+ UI specs also inherit `rite-polish/reference/anti-ai-slop.md` at the cross-cutting
36
+ dimension (design-system fit, anti-AI-slop), but `/rite-temper` reviews the *spec/design-brief*,
37
+ not pixels; the built UI is judged later by `devrites-frontend-reviewer`.
38
+
39
+ ## Rubric
40
+ Score each dimension on a **labeled band**, never a 1-10 float or composite number:
41
+
42
+ | Band | Meaning |
43
+ |---|---|
44
+ | **strong** | Addressed well; no action needed. |
45
+ | **adequate** | Addressed; minor sharpening only (Suggestion/Nit). |
46
+ | **thin** | Under-addressed; a real gap to close before planning (Important). |
47
+ | **broken** | Missing or wrong in a way that will cost a redo (Critical). |
48
+
49
+ **Cite evidence before assigning the band.** Name the spec line or absence that
50
+ justifies it. Review a borderline dimension twice if needed and use the **lower** band.
51
+
52
+ ## The floor-gate
53
+ - **Pass** only when every dimension is `adequate` or `strong` **and** no unmitigated top
54
+ pre-mortem risk remains. The verdict is the **weakest** dimension: a spec strong on clarity
55
+ but `broken` on risk does **not** pass.
56
+ - Individual findings carry the pack's standard severity labels (**Critical / Important /
57
+ Suggestion / Nit / FYI**) so they compose with `/rite-review` and `/rite-seal`. `broken` →
58
+ Critical, `thin` → Important; **FYI is band-independent**: an observation on a `strong` /
59
+ `adequate` dimension, not a failing band.
60
+ - **Do not double-count overlap.** Some dimensions use the same evidence (e.g. #7
61
+ irreversibility & #9 convention-fit both touch codebase realism; #1 ambition & #2 scope both
62
+ touch over/under-reach). Don't fail two dimensions for the *same* root cause: cite the
63
+ evidence once and assign one band so one problem does not create two floor failures.
64
+ - Below-bar blocks readiness; objective fixes return to the caller under
65
+ [the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
66
+ Human-owned scope/risk choices keep their gate; exhaustion blocks technically.
@@ -0,0 +1,53 @@
1
+ # Scope modes + the two passes
2
+
3
+ The heart of `/rite-temper`: two ordered passes (heat, then quench), converging on exactly
4
+ one scope mode. Ambition is a **generative** move followed by a **required convergence**: the
5
+ divergence is never the spec; the converged sweet spot is.
6
+
7
+ ## Pass 1: FORWARD (heat: raise ambition on the outcome)
8
+ Diverge on the *real problem*, not the obvious path. Ask:
9
+ - What would an order-of-magnitude-better **outcome** look like (the 10-star version)? Design
10
+ the extreme, then come back to the feasible sweet spot: don't ship the extreme.
11
+ - Is a **premise** load-bearing and wrong? Name the assumptions the spec rests on; challenge
12
+ the one that, if false, changes everything.
13
+ - Where is **under-reaching** the real risk: a timid improvement to a path we should reframe?
14
+
15
+ Ambition aims at the **outcome** (problem definition, success bar, user value) and at
16
+ complexity-**neutral** future-proofing. It never aims at the **solution surface** (that's Pass 2's
17
+ job to prune). Ground every ambitious idea in the codebase's real seams and blast radius. Use a
18
+ code-intelligence index if available (see `../../devrites-lib/reference/standards/tooling.md`). Don't invent greenfield scope a
19
+ constrained codebase can't absorb.
20
+
21
+ ## Pass 2: INVERSION (quench: pre-mortem + prune)
22
+ Invert. Two subtractive moves:
23
+ - **Pre-mortem (prospective hindsight).** State it in past tense: *"It's six months out. This
24
+ shipped and failed. What went wrong?"* List the top failure modes; for each: likelihood,
25
+ mitigation, and the slice that will own the mitigation. Unmitigated top risks are **gating**.
26
+ - **YAGNI ledger.** Each candidate scope item gets the "imagine the later refactor" test: if
27
+ adding it *later* isn't materially more expensive, **defer it** (with a revisit note).
28
+ Bias hard toward defer: most presumed-needed features are never used. Reuse the
29
+ pack's existing `patterns.md` standard ('no speculative abstraction or pattern
30
+ without a current need'). Don't invent a new YAGNI rule.
31
+
32
+ ## The four modes: commit exactly one
33
+ Mode selection is the first convergence move. Record the chosen mode + rationale + the
34
+ **hinge** (what would change the call) in `strategy.md` and `decisions.md`.
35
+
36
+ | Mode | When | What it does | YAGNI / Drift Guard |
37
+ |---|---|---|---|
38
+ | **EXPAND** *(opt-in, default OFF)* | Under-reaching on the outcome is the real risk | Raise the success bar / reframe to the deeper problem; thinner-but-more-complete path to a bigger target | Expands the *problem + acceptance*, not machinery. Each added criterion is a Drift-Guard-recorded, human-confirmed (HITL) decision: never auto-grown |
39
+ | **SELECTIVE** | One or two high-leverage dimensions deserve more; the rest is right | Expand only the high-upside dimension; hold the rest at spec scope | Each selected expansion routes through the Guard; everything not selected is parked in Non-goals so it's neither dropped nor re-injected mid-build |
40
+ | **HOLD-RIGOR** | The spec is right-sized (default for irreversible-risk-heavy or already-tight specs) | No scope change: pure hardening: pre-mortem, risk mitigations, acceptance sharpening, cross-cutting coverage | Adds zero surface; trivially Drift-Guard-clean (no acceptance change) |
41
+ | **REDUCE-TO-MVP** | Over-scoped: second-system bloat, ~all must-haves, gold-plating | Hammer scope to the Minimum Usable Subset; move the rest to Non-goals with one-line reasons + revisit notes | Strongest YAGNI alignment. Cutting acceptance is **still a spec change**: record it via the Guard, never a silent trim |
42
+
43
+ ## Bound ambition by reversibility
44
+ The bigger the bet, the more it must be reversible. Irreversible-risk areas (auth, migrations,
45
+ public API, data model) get the **opposite** of ambition: maximum conservatism, explicit
46
+ rollback, and they **always pause** regardless of mode (the `afk-hitl.md` irreversible-risk
47
+ list is honored verbatim). Size big bets so that if the whole thing vanished tomorrow, you'd be
48
+ fine.
49
+
50
+ ## Effort foresight (frame it now, not "later")
51
+ While choosing scope, surface the late-stage questions early: *"What will surprise us at
52
+ integration? What will we wish we'd planned for at polish/test time?"* Turn each into a
53
+ constraint, a risk, or a deferred Non-goal **now**, not a "figure it out later".
@@ -0,0 +1,46 @@
1
+ # Significance test: fire the full review, or skip it
2
+
3
+ `/rite-temper` is **significance-gated**: full strategic rigor only when the work is big
4
+ enough to earn it, a one-line skip otherwise. This is the shared definition used by both the
5
+ optional `/rite-temper` path and the always-run (significance-gated) `/rite-autocomplete` step,
6
+ so they agree on when it fires.
7
+
8
+ ## Fire the FULL review when ANY trips
9
+ - **Irreversible-risk contact:** the slice/spec touches anything on the `afk-hitl.md`
10
+ irreversible-risk list: destructive data migration, auth/authz boundary, public-API break,
11
+ external-service contract, filesystem destruction outside the workspace.
12
+ - **Data model:** new/changed entities, relationships, or persistence shape.
13
+ - **Cross-module blast radius:** the impact (from a code-intelligence index if available (see
14
+ `../../devrites-lib/reference/standards/tooling.md`) or an honest estimate) crosses
15
+ module/service boundaries or has many dependents.
16
+ - **Greenfield / ambiguous scope:** a new surface with no existing seam to follow, or a spec
17
+ whose "right size" is genuinely open (multiple defensible scopes).
18
+ - **Multi-slice / multi-day:** the work decomposes into several slices (large enough that a
19
+ wrong scope call is expensive to unwind).
20
+ - **The user asked:** "think bigger", "is this ambitious enough", "scope check", "pre-mortem",
21
+ an explicit `/rite-temper` invocation, or a chosen `--mode`. An explicit ask always fires.
22
+
23
+ ## Skip (low stakes) when ALL hold
24
+ - Single-module, reversible, behavior-shaped-not-structural change.
25
+ - No irreversible-risk contact; blast radius contained to the touched files.
26
+ - Scope is unambiguous: there's one obvious right size and the spec already has it.
27
+
28
+ On skip, **don't run the passes**. Write only the one-line verdict to `strategy.md`:
29
+
30
+ ```markdown
31
+ # Strategy: <slug>
32
+ Tempered: <iso>
33
+
34
+ ## 1. Significance
35
+ skipped — low stakes (<trigger>)
36
+ Next: /rite-define
37
+ ```
38
+
39
+ Then recommend `/rite-define`. A skip is a *recorded* decision, not a silent omission: the
40
+ seal can see the call was made deliberately.
41
+
42
+ ## In `/rite-autocomplete`
43
+ Autocomplete runs the significance test every feature. On skip → straight to `/rite-define`
44
+ (no pause). On fire → run the full review under the AFK gate ceiling: `hold-rigor` and
45
+ `reduce-to-MVP` auto-apply (they never grow acceptance); **any `expand` is a blocking pause**;
46
+ irreversible-risk findings always pause. Expansion is never auto-grown unattended.
@@ -0,0 +1,90 @@
1
+ # `strategy.md` template + fold-back rules
2
+
3
+ `/rite-temper` produces two kinds of output. The `strategy.md` artifact is the durable
4
+ **record** of the review; the **fold-back edits** are what the build follows. The
5
+ record without the fold-back is dead prose: the build reads `spec.md`, not `strategy.md`.
6
+
7
+ ## `strategy.md`: the record
8
+ Write to `.devrites/work/<slug>/strategy.md`. If one exists for the slug, **update** it, don't
9
+ clobber.
10
+
11
+ ```markdown
12
+ # Strategy: <slug>
13
+ Tempered: <iso>
14
+
15
+ ## 1. Significance
16
+ full | skipped — low stakes (<trigger>) # if skipped, stop here (see significance.md)
17
+
18
+ ## 2. Scope mode
19
+ Mode: expand | selective | hold-rigor | reduce-to-MVP
20
+ Rationale: <why this mode>
21
+ Hinge: <what evidence/answer would change the call>
22
+
23
+ ## 3. Forward pass (ambition)
24
+ 10-star outcome (the deliberate overshoot): <one or two lines>
25
+ Premises challenged: <load-bearing assumption(s) + verdict>
26
+ Converged sweet spot: <where we landed and why — this, not the overshoot, is what folds in>
27
+
28
+ ## 4. Pre-mortem (inversion)
29
+ | Failure mode (past tense) | Likelihood | Mitigation | Owning slice/criterion |
30
+ |---|---|---|---|
31
+ | It shipped and <…> | high/med/low | <mitigation> | <slice or FR it binds to> |
32
+
33
+ ## 5. YAGNI ledger
34
+ | Candidate scope item | later-refactor cost | Verdict |
35
+ |---|---|---|
36
+ | <item> | trivial / large | build-now / defer (revisit: <trigger>) |
37
+
38
+ ## 6. Cross-cutting coverage
39
+ | Concern | Addressed? |
40
+ |---|---|
41
+ | Security / trust boundary | <how | N/A — why> |
42
+ | Data & migration | <… | N/A> |
43
+ | Observability | <… | N/A> |
44
+ | Modifiability | <… | N/A> |
45
+
46
+ ## 7. Dimension scores (floor-gate)
47
+ | Dimension | Band | Evidence |
48
+ |---|---|---|
49
+ | Problem altitude & ambition | strong/adequate/thin/broken | <spec line / absence> |
50
+ | … (all 9) | … | … |
51
+ Floor verdict: <weakest band> on <dimension> → pass | blocked
52
+
53
+ ## 8. Deferred / Won't-have-this-time
54
+ - <item> — <one-line reason> (revisit when: <trigger>)
55
+
56
+ ## 9. Reviewer loop
57
+ - iter 1: <findings → resolution> · iter 2: … (≤3)
58
+ - Final: floor = <band>; unresolved → <none | blocking qid>
59
+ ```
60
+
61
+ ## Fold-back: the part the build follows
62
+ Apply through the **Spec Drift Guard** (these are spec changes, not free edits). If a plan
63
+ already exists, record in `drift.md` and route via `/rite-plan repair` instead of editing
64
+ `spec.md` blind.
65
+
66
+ - **`spec.md`:** these are the spec template's actual section headings. Edit each named one;
67
+ don't collapse pairs.
68
+ - Add to *Success metrics* **and** *Acceptance criteria* (separate sections) for
69
+ every opt-in **expansion**; remove (via the Guard) from both for every **reduction**. Each
70
+ must stay measurable + technology-agnostic.
71
+ - *Non-goals*: append every deferred item (from the YAGNI ledger + the Deferred register), so
72
+ it is neither silently dropped nor silently re-injected mid-build.
73
+ - *Constraints and invariants*: tighten where the pre-mortem demands; top failure modes +
74
+ mitigations go to *Failure and recovery behavior* rows.
75
+ - *Open questions* table: one row per scope call (options offered → decision → owner).
76
+ - **Re-run the Readiness gate** at the bottom of the spec after edits; it must still pass, and
77
+ **every folded scope delta must trace to a recorded decision** (a `questions.md` qid or a
78
+ `decisions.md` ADR): an untraceable change is the batch-dump failure.
79
+ - **`decisions.md`:** one ADR-style entry per scope call and accepted trade-off:
80
+ `context · decision · why-not-the-alternative · what-would-change-it`.
81
+ - **`assumptions.md`:** every "we'll probably need X" demoted to an explicit
82
+ **assumption-to-verify**, never smuggled into scope as a fact.
83
+
84
+ ## Write discipline
85
+ - **Single canonical writer.** The skill writes `strategy.md` and edits the canonical files; the
86
+ `devrites-strategy-reviewer` agent is **read-only** and only returns findings + bands.
87
+ - **No silent scope.** An expansion that the human didn't opt into, or a reduction that drops an
88
+ acceptance criterion without a recorded decision, is a defect, not a convenience.
89
+ - Add `strategy.md` to the workspace between `spec.md` and `plan.md`; `/rite-define` and
90
+ `/rite-ship` read it.
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: rite-upgrade
3
+ description: Audit and reconcile an older released DevRites workspace. Proves a current-contract defect, then routes its phase owner while preserving completed work and history.
4
+ argument-hint: "[feature-slug]"
5
+ user-invocable: true
6
+ disable-model-invocation: true
7
+ ---
8
+
9
+ # /rite-upgrade: reconcile a released workspace safely
10
+
11
+ Use when an unfinished workspace from an older release cannot resume. This is an
12
+ audit/orchestrator—not a pack update, cursor conversion, release replay,
13
+ structural migration, or generic cleanup.
14
+
15
+ ## Rules consulted
16
+
17
+ Read `devrites-lib/reference/standards/core.md`, its agent and workspace-schema
18
+ references, and only current phase contracts needed for the observed gap.
19
+
20
+ ## Invariants
21
+
22
+ - Upgrade writes no workspace artifact and never edits source, tests, dependencies,
23
+ or Git. It observes, admits, invokes current owners, and re-audits only.
24
+ - Recognize only released workspace forms: `.devrites/work/<slug>/state.md` with v1/v2
25
+ bullet fields (`- Phase:`, `- Next step:`, optional `- qid:`) or the v3 cursor table.
26
+ Preserve its encoding; only its owning rite may change fields. Never create aliases,
27
+ journals, telemetry, version markers, or an engine migrator.
28
+ - Older provenance, cursor form, or pack version alone is never a defect. A repair requires
29
+ a current rule, exact workspace evidence, affected gate, owning rite, exact paths, and
30
+ the smallest behavior-neutral delta.
31
+ - Existing rites own semantic changes. Upgrade may sequence `/rite-clarify`,
32
+ `/rite-plan repair|revise|course-correct`, `/rite-converge`, `/rite-vet`, `/rite-prove`, `/rite-polish`,
33
+ `/rite-review`, and `/rite-seal`; it never reimplements them or starts Build or Ship.
34
+ `/rite-doctor` owns install/config diagnosis.
35
+ - An admitted candidate route may name only the exact current gate artifacts its owner
36
+ must refresh: `touched-files.md`, `evidence.md`, optional `browser-evidence.md`,
37
+ `polish-report.md`, `review.md`, `seal.md`, and the owner's `state.md` fields as
38
+ applicable. Source, completed-slice identities, answers, decisions, and unrelated
39
+ history remain protected. Each owner preserves unrelated content and normal gates.
40
+ - Archived/`done` workspaces are no-ops. Unknown or unverifiable inputs stop without
41
+ writes. There is no legacy fallback: never synthesize or guess scope, bytes, proof,
42
+ freshness, or a historical pass.
43
+ - The explicit invocation authorizes only admitted, behavior-neutral workspace repairs.
44
+ Product/policy choices, acceptance changes, irreversible risk, and human-only actions
45
+ remain HITL.
46
+
47
+ ## Workflow
48
+
49
+ 0. **Orient read-only.** Apply `/rite-doctor`. Resolve the explicit or active slug.
50
+ Archive-only is `current`; otherwise require contained regular `state.md` and read its
51
+ cursor. A damaged/mismatched install stops at Doctor; missing live work routes
52
+ `/rite-spec`; `done` is `current`. An unknown cursor is `unsupported`.
53
+ 1. **Freeze preservation evidence.** Record `git status --short`, cursor form/fields,
54
+ `devrites-engine orient <slug>` (cursor, `task_graph`, `artifact_budgets`,
55
+ `bulk_files`), and
56
+ hashes of completed-slice fields, candidate gate artifacts, existing answers/decisions,
57
+ and protected history. Inventory every path that could change; absence is evidence,
58
+ never permission to synthesize history. For a post-Build workspace, also retain the
59
+ exact result of `devrites-engine check candidate <slug>`; at or after Seal retain the
60
+ exact result of `devrites-engine check seal <slug>`.
61
+ 2. **Assess from fresh context.** Dispatch exact `devrites-upgrade-planner` with the named
62
+ installed contracts, workspace paths, cursor form, current phase, and frozen baseline.
63
+ Require one read-only typed assessment. It writes and asks nothing.
64
+ 3. **Admit the assessment fail closed.** Accept `current` only when every applicable axis has
65
+ cited evidence and no finding. Accept `repairable` only when every finding names the
66
+ current rule, exact workspace evidence, affected gate, owning rite, exact writable paths,
67
+ minimal delta, and protected invariants. Missing fields become `gap`.
68
+ Unsupported shapes remain untouched. Reject version-only, speculative, alias-creating,
69
+ source-changing, history-changing, or acceptance-changing advice.
70
+ 4. **Route; do not duplicate.** For `repairable`, invoke only the admitted current owners,
71
+ one at a time:
72
+ - decision coverage or a material assumption → `/rite-clarify`;
73
+ - stale/inconsistent planning or traceability with settled intent → `/rite-plan repair`;
74
+ - over-budget `state.md` or planning artifacts carrying checkpoint narrative, or
75
+ packets/traces in the workspace root → `/rite-plan revise` (verbatim relocation to
76
+ `history/` / `packets/`, current view only; IDs, meaning, answers and decisions
77
+ unchanged; nothing deleted);
78
+ - unbuilt slices beyond the [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
79
+ → `/rite-plan course-correct` (`MVP cut` plus the named continuation sequence;
80
+ built slices and their evidence stay);
81
+ - live code and recorded intent disagreement → `/rite-converge`;
82
+ - any changed planning input or readiness defect → `/rite-vet`;
83
+ - a missing/malformed strict manifest, missing/malformed/mismatched evidence binding,
84
+ a browser-binding defect when that file exists, or current candidate-check failure
85
+ → `/rite-prove`;
86
+ - candidate-affecting capability-ledger, `DESIGN.md`, or ADR rollups still deferred by
87
+ an old Ship-era workspace → `/rite-polish`;
88
+ - a missing, stale, or mismatched review binding → `/rite-review`;
89
+ - a missing, stale, or mismatched seal binding or failed Seal gate → `/rite-seal`.
90
+
91
+ Sequence only applicable owners; candidate owners stay in the Prove → Polish → Review
92
+ → Seal order above. Each owner keeps normal gates/write limits. Stop on HITL/blocked.
93
+ Never infer `/rite-customize --import-legacy`; that mode requires the exact token in the
94
+ user's current invocation.
95
+ 5. **Re-audit and prove preservation.** Re-dispatch the planner once against the changed
96
+ candidate. `gap`, `unsupported`, or a remaining finding stops. Compare the frozen hashes
97
+ and Git status; only admitted paths may differ. Cursor changes must match the owning
98
+ rite while preserving form. Any unadmitted, protected, or source change is a gap and
99
+ stops; Upgrade never restores it itself.
100
+ For a post-Build workspace, run `devrites-engine check candidate <slug>` and require
101
+ the assessed bindings to match it. At or after Seal, also run
102
+ `devrites-engine check seal <slug>`. Run readiness where applicable:
103
+ ```bash
104
+ devrites-engine check readiness <slug>; echo "readiness rc=$?"
105
+ ```
106
+ Any nonzero result or mismatch remains a `gap` and stops.
107
+ 6. **STOP.** Do not advance to Build or Ship. A repeated `/rite-upgrade` is a no-op only
108
+ when the fresh assessment independently returns `current`; no marker may manufacture
109
+ that result.
110
+
111
+ ## Output
112
+
113
+ ```text
114
+ Done: workspace <slug> compatibility <current | reconciled>.
115
+ Changed: <admitted active-workspace paths | none>
116
+ Evidence: assessment=current; candidate rc=<n|n/a>; seal rc=<n|n/a>; readiness rc=<n|n/a>; protected history/source unchanged
117
+ Open: <none | exact unsupported shape, evidence gap, or human gate>
118
+ Next: <state.md next action | one owning rite>
119
+ Record: <owning rite's state.md — written by the owner, not Upgrade>
120
+ ↻ Hygiene: /clear before the next lifecycle step
121
+ ```