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,120 @@
1
+ ---
2
+ name: rite-prove
3
+ description: Prove a completed feature with tests and the full test suite, build/typecheck/lint, end-to-end/browser evidence, screenshots, commands, and outputs for seal. Not for single-slice proof.
4
+ argument-hint: "[feature-slug]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # /rite-prove: prove the completed feature
9
+
10
+ Prove the assembled feature once. No workspace: use `/verify` or `/run`;
11
+ pending tasks: stop for `/rite-build`.
12
+ Never assert unobserved passes. After Polish/Review edits, repeat affected
13
+ criteria/dependencies and bind under
14
+ [evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
15
+ Initial full feature proof and required mutable observations still run.
16
+
17
+ ## Rules
18
+
19
+ Read the applicable standards: `testing.md`, `test-proof-checklist.md`,
20
+ `browser-proof-checklist.md` for UI, `spec-grammar.md`, `performance.md`,
21
+ `observability.md`, topology/data/integration rules named by the plan,
22
+ `developer-experience.md`, `definition-of-done.md`, `one-shot-actions.md`, and
23
+ `workflow-artifacts.md`. Developer surfaces require an observed flow, measured
24
+ TTHW, and exact signal-bearing errors; never assert DX.
25
+
26
+ - Each claim needs an executed positive, discriminating assertion and decisive
27
+ signal; green commands alone are unproven.
28
+ - Follow [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md). Prove owns proof binding, not candidate
29
+ grammar/hashing. Spec Drift Guard owns revealed contract drift.
30
+ - Root runs vetted gates/browser and records immutable evidence; proof runner
31
+ validates it. Only the bounded wright fixes product source/tests.
32
+ - **Prove remains the controlling caller** during technical backtracking. Save
33
+ its cursor; run Plan repair, Recovery Vet, remediation, and re-proof inline;
34
+ consume nested boundaries; resume the failed rung. Recovery exhausts after
35
+ three no-progress attempts on the exact same fingerprint. Closing one or exposing a distinct
36
+ Critical/Important invariant is progress, not a reason to hand work off.
37
+ <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Prove consumes installed Workflow Artifact or CLEANED rerun","action":"VERIFY_EXISTING or admitted proof path ending PROVE_AND_RETURN","return":"saved Prove cursor; stop before real action"} -->
38
+ ## Released-workspace refresh
39
+
40
+ Only an admitted `/rite-upgrade` assessment proving a released-format candidate
41
+ defect enters. Require legacy touched-file scope, live diff, tasks, and traceability agree unambiguously
42
+ on every candidate path/state. Missing or
43
+ ambiguous scope stops; never guess from Git. Preserve unrelated manifest content
44
+ and refresh only the strict manifest from observed bytes.
45
+
46
+ Discard old passes. Run all current approved real proof from scratch. Establish
47
+ pre-proof and post-proof engine digest with `devrites-engine check candidate
48
+ <slug>` and require equality, then write one fresh exact binding in evidence and
49
+ browser evidence. Current failure blocks; Upgrade does not authorize source or
50
+ test changes.
51
+
52
+ ## Workflow
53
+
54
+ 1. **Orient.** Read core, resolve active slug, require `state.md`, and read its
55
+ cursor. On blocked Prove cold resume, reconcile retained consumptive evidence
56
+ and no-progress corrections before accepting terminal none; a distinct
57
+ fingerprint below cap resumes offline triage without another real action.
58
+ 2. **Freeze scope.** Read spec, tasks, state, test plan, and full diff. Require
59
+ every slice built. Missing `test-plan.md` returns to Vet inline (Prove stays the controlling
60
+ caller) and resumes here; it never authorizes ad hoc proof.
61
+ 3. **Approve commands.** If absent, use
62
+ [test-command-discovery](reference/test-command-discovery.md) over repository
63
+ manifests/CI. Discovery is evidence only: `test-plan.md` is the sole approved runtime
64
+ command list. A newly found command must return to the current Vet contract,
65
+ refresh readiness, then resume without user handoff.
66
+ 4. **Execute a frozen candidate.** Run `devrites-engine check candidate <slug>` and retain its digest.
67
+ The root runs only commands declared by `test-plan.md`, with exact approved
68
+ command, cwd, prerequisites, exit, and sanitized
69
+ decisive output. Run relevant suite plus build/typecheck/lint. Recheck the
70
+ candidate and require identical digest/no source mutation. Reject substituted
71
+ commands, malformed manifests, zero-test/skipped/filtered behavioral claims,
72
+ exit-status-only claims, and source drift. Static gates prove only their named
73
+ static criterion.
74
+ 5. **Gate consumptive actions.** Immediately before execution, apply
75
+ `one-shot-actions.md`: current retained identity, bounds/sanitization,
76
+ injective boundary map, per-seam fault fixtures, collision mutant, terminal
77
+ fixtures, and cleanup-survival proof must be green. Missing/stale/disposable-
78
+ only evidence returns to Vet without spending an attempt. Record the admitted artifact identity before execution.
79
+ After failure, retained evidence is the
80
+ reproduction; never rerun for diagnosis. Spent authorization blocks another
81
+ action, but when action budget is zero it does not exhaust a newly identified
82
+ offline fingerprint.
83
+ 6. **Prove UI when applicable.** Use design brief/references, browser harness,
84
+ allowed scratch path, [proof ladder](reference/proof-ladder.md), and
85
+ [browser proof](reference/browser-proof.md): routes, viewports, opened and
86
+ described screenshots, console/network, interaction, target comparisons, and
87
+ every required state. Material mismatch fails.
88
+ 7. **Independent validation.** Fresh read-only `devrites-proof-runner` and
89
+ `devrites-spec-reviewer` judge the same candidate/commands/evidence/acceptance map.
90
+ Neither runs commands; reject missing/stale, invented-ID, label-only or self-attested reports.
91
+ 8. **Map proof.** Reconcile verdicts under [acceptance-proof.md](reference/acceptance-proof.md).
92
+ Every criterion/scenario/interaction/key link needs discriminating evidence or a
93
+ blocker, including critical-path, observability, developer and wiring branches.
94
+ 9. **Recover red.** Use [failure triage](reference/failure-triage.md) and Debug
95
+ Recovery. Reconcile reproduction; send accepted in-scope source/test correction
96
+ to the sole wright; update actual manifest; rerun affected proof, both candidate
97
+ checks, and fresh proof runner. Recheck affected acceptance with the exact spec
98
+ reviewer; reconcile both validators under evidence validity. Scope growth blocks.
99
+
100
+ Agent-owned durable-plan errors run Spec Drift Guard, Plan, and Vet inline,
101
+ preserving Prove as origin. Consumptive failures use retained fixtures, repair,
102
+ and Vet, then stop for fresh GO after changed conditions. Ambiguous retained
103
+ evidence does not prove that no safe future acquisition design exists: treat
104
+ an in-scope discriminator as diagnostic-amplification Plan gap, repair its
105
+ finite map/collision proof, narrow-Vet, then seek fresh GO before one evidence
106
+ attempt. Never guess the runtime fix or reuse old GO.
107
+ 10. **Record.** Root updates `evidence.md`, optional `browser-evidence.md`,
108
+ traceability, and state, with exactly one observed candidate binding.
109
+
110
+ > Do not claim an unobserved pass, skip browser proof, or proceed with pending
111
+ > slices. Load `reference/anti-patterns.md` when tempted to do so.
112
+
113
+ ## Phase exit
114
+
115
+ **Complete when:** every criterion in `acceptance-proof.md` has discriminating
116
+ evidence bound to the current candidate digest, both independent validators admit
117
+ accounts, and `state.md` records Prove complete with no open `cannot_verify` rows.
118
+
119
+ **Failing case:** narrative "all tests passed" without `evidence.md` binding and
120
+ proof-runner admission → phase not complete; Seal blocks.
@@ -0,0 +1,88 @@
1
+ # Acceptance proof
2
+
3
+ Map each `spec.md` criterion to `test | command | browser | judgment` evidence
4
+ and one-line reason. Run `spec-grammar.md`'s Native grammar re-read on the saved
5
+ spec before mapping; reopen after corrections. No parser/script may replace it.
6
+
7
+ Every structured WHEN/THEN scenario needs a passing asserting test. When
8
+ `test-plan.md` exists, every acceptance/gap requirement, interactive element, and
9
+ user flow needs a passing result. Missing coverage blocks.
10
+
11
+ Apply [`testing.md`'s positive, discriminating proof](../../devrites-lib/reference/standards/testing.md#positive-discriminating-proof),
12
+ including invalid-result exclusions and static/textual criterion boundaries.
13
+ Unsupported behavioral claims are `cannot_verify` and block proof.
14
+
15
+ ## Silent-failure probe
16
+
17
+ When tests pass but error paths, dropped results, or partial success could hide
18
+ failure, require at least one **discriminating** check that would fail if the silent
19
+ path regressed (assert the failure surface, not only the happy path).
20
+
21
+ **Failing case:** handler returns success while logging or swallowing internally; the
22
+ suite stays green → map `cannot_verify` unless a test asserts the user-visible or
23
+ contract failure outcome.
24
+
25
+ ## Backstop disposition
26
+
27
+ A `backstop` passes only on its spec-named independent held-out,
28
+ property/metamorphic, or direct behavioral check plus discriminating observed
29
+ output. Presence, test names without results, author judgment, or an expectation
30
+ copied from the same implementation logic fails.
31
+
32
+ Undefined/unavailable signal: `cannot_verify`, evidence
33
+ `insufficient_spec: <missing fact or evidence surface>`, then Spec Drift; never
34
+ judgment or pass.
35
+
36
+ ## Applicable system-risk proof
37
+
38
+ Reconcile `spec.md`'s applicability map with the final diff. For each triggered owner:
39
+
40
+ - `repository-topology.md`: prove commands ran at every affected root and both provider
41
+ and consumer used the same canonical contract; identify generated/vendor sources.
42
+ - `data-integrity.md`: prove declared invariants plus relevant duplicate/retry,
43
+ concurrency, interruption/resume, old/new coexistence, tenant isolation, and
44
+ rollback/forward-recovery cases with recorded scale/counts.
45
+ - `integration-reliability.md`: prove relevant invalid/partial response, auth failure,
46
+ timeout/unknown outcome, rate limit/outage, duplicate/order, poison/backlog, cache/partition,
47
+ degradation, and recovery behavior.
48
+
49
+ An evidence-backed dismissal is valid for an irrelevant case. An applicable case with no
50
+ executable proof surface is `cannot_verify`; do not infer it from an implementation review
51
+ or a mock that cannot produce the risk.
52
+
53
+ ## Critical-path assertion strength
54
+
55
+ For regression-Critical, irreversible, and data-loss paths, require
56
+ [`testing.md`'s safe perturbation](../../devrites-lib/reference/standards/testing.md#safe-perturbation).
57
+ Missing evidence is `cannot_verify`; a green test on broken code is unproven.
58
+ Pure transforms also get a round-trip or
59
+ metamorphic property check when applicable.
60
+
61
+ ## Runtime observability branch
62
+
63
+ For endpoints, jobs, consumers, integrations, user flows, or new error paths,
64
+ trigger failure and observe the required log/metric/trace per `observability.md`;
65
+ record it. Skip pure internal, docs, config, and type-only changes.
66
+
67
+ ## Developer-facing branch
68
+
69
+ For public API/CLI/SDK/webhook/config/error/onboarding, execute the real entry on
70
+ clean state, measure time-to-hello-world, and capture verbatim failure output.
71
+ Browser-capture docs/quickstarts when applicable. Write the scorecard to
72
+ `devex.md` and headline evidence to `evidence.md`.
73
+
74
+ ## Wiring branch
75
+
76
+ Exercise/follow every key `plan.md` link in the assembled feature; record each as
77
+ `EVID-###`, or record none declared. An unwired link blocks.
78
+
79
+ For every critical link, apply safe perturbation to the load-bearing input/link and observe the
80
+ promised surface fail. Existence/registration/spy-call evidence is insufficient when a
81
+ different path can coincidentally produce the expected result.
82
+
83
+ ## Baseline and environment claims
84
+
85
+ Classify a failure as pre-existing or environment-specific only with a dated
86
+ before-candidate result for the same command, working directory, prerequisites, and
87
+ material environment. Otherwise record it as an unresolved candidate result. For time/local
88
+ behavior, bind the instant, time zone, locale, and relevant old/new configuration.
@@ -0,0 +1,25 @@
1
+ # rite-prove: anti-patterns
2
+
3
+ Load this when standing a non-trivial proof decision, or when tempted to
4
+ report a pass you didn't observe, skip a rung of the browser-proof ladder,
5
+ or proceed without all slices built.
6
+
7
+ Pack-wide rationalizations + red flags (incl. observed-but-not-recorded):
8
+ see [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
9
+
10
+ ## Phase-specific rationalizations
11
+
12
+ | Excuse | Rebuttal |
13
+ |---|---|
14
+ | "Tests passed during build; that's enough." | Build = per-slice sanity check. Prove = whole-feature suite + build/typecheck/lint + browser. |
15
+ | "Browser proof is overkill for this UI change." | If it's UI and a browser can run, the ladder applies. If you can't, document which rung and why. |
16
+ | "Failure is in pre-existing code, not in this feature." | Still surfaces as a blocker. Feature scope = fix in scope or record + halt. |
17
+ | "Some slices are still pending but the rest can be proved." | No: `/rite-prove` runs once, when every slice is built. Otherwise you're proving a partial system. |
18
+
19
+ ## Red Flags
20
+
21
+ - Reporting "pass" for a command you didn't run.
22
+ - Skipping browser-proof rungs 1-3 because rung 4 (project E2E) was easier.
23
+ - An acceptance criterion left "unproven" without a corresponding blocker note.
24
+ - Tests recorded green but the diff shows the test file wasn't touched (stale run).
25
+ - About to write `evidence.md` without command + output.
@@ -0,0 +1,51 @@
1
+ # Browser proof: evidence schema
2
+
3
+ What `browser-evidence.md` must capture for a UI slice. Delegates to
4
+ `devrites-browser-proof`; this is the record contract.
5
+
6
+ ```markdown
7
+ # Browser Evidence
8
+
9
+ ## Browser evidence
10
+ | Evidence ID | Route | State/input | Viewport | Compared with | Tooling | Result | Related IDs | Limitation |
11
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- |
12
+ | EVID-003 | <route> | empty/keyboard | 375 | brief Proof targets + target reference 1 | playwright-mcp | <observed result> | AC-002, SLICE-002 | <none / exact gap> |
13
+
14
+ ## Visual Verdict
15
+ | State | Result | Notes |
16
+ | --- | --- | --- |
17
+ | default | PASS / FAIL | <what is visible> |
18
+ | loading | PASS / FAIL | <what is visible> |
19
+ | error | PASS / FAIL | <what is visible> |
20
+
21
+ ## Comparison deltas
22
+ | State / viewport | Target | Material delta observed | Disposition | Result |
23
+ | --- | --- | --- | --- | --- |
24
+ | empty / 375 | design-brief.md + R1 | <hierarchy/layout/spacing/type/behavior difference> | fixed + re-rendered / accepted with reason | PASS / FAIL |
25
+
26
+ ## Run notes
27
+ - Screenshots: <path(s)> — opened and described above.
28
+ - Console: <errors/warnings, or "clean">.
29
+ - Network: <failures, or "no failures">.
30
+ - Interaction path: <clicks/inputs performed and result>.
31
+ - Accessibility: <focus order / labels / contrast spot-check>.
32
+ - Responsive: <what changed across viewports; any breakage>.
33
+ ```
34
+
35
+ ## Rules
36
+ - Open every screenshot path and describe it: never assert from the filename.
37
+ - Read `design-brief.md` + `references.md` first. Compare fidelity only with references
38
+ classified **target**; check constraints as rules and never pixel-match inspiration.
39
+ - Render every proof target named by the brief/slice using the canonical viewport
40
+ set and state coverage in [quality-standards.md](../../devrites-frontend-craft/reference/quality-standards.md).
41
+ Apply [capture admissibility](../../devrites-lib/reference/standards/browser-proof-checklist.md)
42
+ before assigning a visual verdict; invalid captures leave proof `cannot_verify`.
43
+ - Compare structure before decoration: hierarchy/layout → responsive/state behavior →
44
+ type/spacing/color → polish. Record each material delta, fix it, and re-render. A visual
45
+ PASS requires zero unresolved material deltas; an accepted departure needs its reason in
46
+ the design brief's build-time refinements.
47
+ - A clean console + no layout shift are part of the evidence, not extras.
48
+ - If no browser can run, write the manual verification steps a human would follow and
49
+ mark the slice's browser proof as **pending (manual)**.
50
+ - Every browser evidence row uses `EVID-###` and names the related `AC-###` and
51
+ `SLICE-###`; `/rite-prove` mirrors the evidence ID in `traceability.md`.
@@ -0,0 +1,43 @@
1
+ # Failure triage
2
+
3
+ When a test/build/runtime/browser check fails, triage before fixing. Delegates the deep
4
+ loop to `devrites-debug-recovery`.
5
+
6
+ ## Triage ladder
7
+ 1. **Reproduce:** for a repeatable command, run it again and capture the exact
8
+ error (quote it). For a consumptive action under
9
+ [`one-shot-actions.md`](../../devrites-lib/reference/standards/one-shot-actions.md),
10
+ never rerun it: use the retained bounded artifact as the reproduction input.
11
+ 2. **Classify** the failure:
12
+ - test is right, code is wrong → fix the code (in scope).
13
+ - test is wrong/outdated → that may be **spec drift** (acceptance criteria wrong).
14
+ - environment/setup (missing dep, wrong node/ruby) → fix it when agent-owned;
15
+ record a blocker only for human/access ownership, scope overflow, or exhausted
16
+ fingerprint recovery.
17
+ - flaky (passes on re-run, timing/order) → note it; don't paper over with retries.
18
+ - external dependency down → record blocker; don't fake the result.
19
+ 3. **Isolate:** minimize to the smallest failing case; bisect the diff if needed.
20
+ If consumptive evidence maps to multiple causal seams, this is a
21
+ diagnostic-amplification plan gap: design and Vet an injective boundary
22
+ discriminator offline instead of guessing a runtime correction or declaring
23
+ the cleaned-away past state terminal.
24
+ 4. **Fix within scope:** the current slice/feature only. If the fix reaches outside
25
+ scope, stop and record a blocker in `state.md` (then `/rite-plan unblock`).
26
+ 5. **Re-run** the same command when it is repeatable; confirm green and record both
27
+ attempts in `evidence.md`. A consumptive action needs re-vetted evidence
28
+ completeness and any fresh authorization before a new attempt. Its spent
29
+ action authorization does not stop offline recovery: a retained new fingerprint
30
+ enters caller-owned diagnosis, correction, fixtures, and narrow Vet immediately.
31
+ A separately authorized diagnostic-amplification attempt may acquire the missing
32
+ discriminator after its evidence design passes Vet; it is not a blind rerun.
33
+
34
+ ## Rules
35
+ - Quote the real error text; don't paraphrase it away.
36
+ - Don't loosen/delete a failing assertion to get green: investigate whether it's drift.
37
+ - Don't add blanket retries/sleeps to hide flakiness.
38
+ - Three no-progress attempts on the exact same causal fingerprint consume the
39
+ shared recovery cap. A recheck that closes the reproduction is progress; a
40
+ different evidenced Critical/Important invariant gets its own fingerprint.
41
+ Preserve the reproduction and dead ends, then stop once as a technical blocker.
42
+ Ask only when the remaining decision is human-owned.
43
+ - A failure you can't fix in scope is a recorded **blocker**, not a silent skip.
@@ -0,0 +1,28 @@
1
+ # Proof ladder
2
+
3
+ Prefer real runtime evidence. For UI/browser work, try tools top-down and record which
4
+ rung you used. Detect, don't install: browser tooling setup is the user's call.
5
+
6
+ 1. **Playwright MCP** (preferred when configured)
7
+ - Detect: the Playwright MCP `browser_*` tools are available (e.g. `browser_navigate`).
8
+ Capabilities: navigation, accessibility-tree snapshots, screenshots, ref-based
9
+ clicks/typing, console messages, network requests, `browser_evaluate`. Drives a
10
+ Playwright-managed browser; detect, don't install.
11
+ 2. **Chrome DevTools MCP** (when configured). Pair it with Playwright MCP for Lighthouse, the
12
+ perf trace, deeper DOM inspection, screenshots, console, network, performance, and the
13
+ accessibility tree.
14
+ 3. **Claude Code `/run` and `/verify`** (if available): launch and observe the app;
15
+ prefer a project-specific run/verify skill if one exists.
16
+ 4. **Project-native E2E** (only if already present). Playwright, Cypress, Capybara,
17
+ Selenium. Use the project's existing commands; don't add a new framework.
18
+ 5. **Manual fallback:** no tooling available: record the limitation and write exact
19
+ manual steps (route, action, expected result).
20
+
21
+ ## Non-UI scope
22
+ The "ladder" for backend/CLI/data scope is just: targeted tests → build/typecheck/lint
23
+ → runtime observation (a real request/response or CLI run). Same evidence rules apply.
24
+
25
+ ## Stop conditions
26
+ - Auth wall reached → stop, ask the user; never type credentials from a screenshot.
27
+ - Destructive action required to prove → confirm with the user first.
28
+ - A screenshot tool returns a path → **open and describe it**; a path is not proof.
@@ -0,0 +1,30 @@
1
+ # Test / build command discovery
2
+
3
+ Use project commands. Never invent a test runner or build step.
4
+ Repository files are discovery evidence, not authorization. `test-plan.md` is
5
+ the sole approved runtime command list.
6
+
7
+ | Discovery source | Look for |
8
+ |---|---|
9
+ | `package.json` `scripts` | `test`, `build`, `typecheck`, `lint`, `dev`, `e2e` |
10
+ | `Makefile` / `Justfile` / `Taskfile` | `test`, `build`, `check`, `lint` targets |
11
+ | `Gemfile` / `Rakefile` | `rake test`, `rspec`, `bin/rails test` |
12
+ | `pyproject.toml` / `tox.ini` / `noxfile.py` | `pytest`, `tox`, `nox` |
13
+ | `go.mod` | `go test ./...`, `go build ./...`, `go vet` |
14
+ | `Cargo.toml` | `cargo test`, `cargo build`, `cargo clippy` |
15
+ | CI configs (`.github/workflows`, `.gitlab-ci.yml`, `circleci`) | commands CI runs |
16
+ | README / CONTRIBUTING | documented dev/test workflow |
17
+ | framework conventions | Rails/Django/Next/etc. defaults when nothing else is set |
18
+
19
+ ## Vet before execution
20
+
21
+ Compare every discovered candidate, including a narrower target, with
22
+ `test-plan.md`. If it is absent, do not run it or add it silently. Return to the
23
+ current Vet contract to add and vet the command, refresh readiness, then return
24
+ to Prove. A command may run only when its exact command, cwd, and prerequisites
25
+ are approved in `test-plan.md`.
26
+
27
+ ## If nothing exists
28
+ No tests in the project: say so. Propose the minimal test setup as a
29
+ **follow-up** (ask before adding a framework); any runtime observation command
30
+ still needs Vet approval in `test-plan.md`.
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: rite-quick
3
+ description: Express lane for a small reversible change: typo/copy/config, rate-limit constant, error message, local variable rename, feature flag, README link, one-file/function fix.
4
+ argument-hint: "<what to change>"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # /rite-quick: express lane for small changes
9
+
10
+ The full DevRites lifecycle is right for real features; it is **ceremony** for a typo, a
11
+ copy tweak, a one-function fix, or a small config change. `/rite-quick` keeps the
12
+ discipline that matters (idiom, TDD, evidence, escape-to-full-lifecycle) and drops the
13
+ artifacts that don't, in a **single pass**. Senior-engineer "right step, right time" made
14
+ executable, not advisory. This lane uses the **Quick** depth profile from
15
+ [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md).
16
+
17
+ ## The significance gate (the whole safety story)
18
+
19
+ **Run this first. If ANY of these holds, STOP and route to `/rite-spec`. Do NOT use the
20
+ express lane:**
21
+ - Touches **auth / authz**, a **data migration**, a **public API contract**, or any
22
+ **destructive / data-loss** path in the irreversible-risk list. See `../devrites-lib/reference/standards/afk-hitl.md`.
23
+ - Spans **more than one vertical slice**, or more than a couple of files of real logic.
24
+ - **Ambiguous scope:** you'd have to guess what "done" means, or the ask hides a design
25
+ decision (data model, new dependency, second design system).
26
+ - Security-sensitive input handling, or a measurable performance-critical path.
27
+ - Would **break a declared project principle** (`.devrites/principles.md`) with no recorded,
28
+ human-approved exception: the express lane never relaxes a project gate; a needed exception is
29
+ a deliberate human decision, so route it to `/rite-spec`.
30
+
31
+ If none hold, the change is small + reversible + unambiguous → proceed. **When in doubt,
32
+ escalate**: the cost of the full lifecycle on a small change is minutes; the cost of the
33
+ express lane on a risky one is the failure mode the lifecycle exists to prevent.
34
+
35
+ ## Rules consulted (read on demand from `.pi/skills/devrites-lib/reference/standards/`)
36
+ Load this lane's conditional standards when needed:
37
+ - `coding-style.md`: naming, guard clauses, reuse-first.
38
+ - `testing.md`: TDD, **completeness** (every touched behavior/element asserted) +
39
+ **assertion strength** (no tautological tests; see it fail first), scaled to the change.
40
+ - `error-handling.md` / `security.md`: only if the change touches input/errors.
41
+ - `principles.md`: when `.devrites/principles.md` exists; a change that breaks an invariant is a gate, not a quick fix.
42
+ - `definition-of-done.md`: standing Done bar: acceptance mapped, fresh proof, no open hard gates, scoped edits, rollback/docs where needed.
43
+
44
+
45
+ ## Workflow
46
+ 0. **Orient.** Read `core.md`. If a `.devrites/` workspace is active, read its
47
+ `state.md` directly; `/rite-quick` does **not** require
48
+ a workspace and does **not** create the full tree.
49
+ 1. **Significance gate** (above). Fail → STOP, tell the user to run `/rite-spec <feature>`.
50
+ 2. **One-line contract.** Restate in 1-3 lines: the change, its **acceptance** (how you'll
51
+ know it works), and the **scope boundary** (what you will NOT touch). This is the entire
52
+ "spec + plan" for a quick change: keep it in the chat; optionally drop a `brief.md` +
53
+ `evidence.md` under an unused `.devrites/work/<slug>/` (no `state.md`; not a workspace
54
+ cursor) if the user wants a record. This is the
55
+ `/rite-frame` FRAME move: if the acceptance won't reduce to a check that could be *false*,
56
+ the ask is ambiguous → escalate per the significance gate. Its AUDIT pass is the diff
57
+ self-review in step 5.
58
+ 3. **Build with TDD.** Failing test first when behavior changes (see it fail for the right
59
+ reason) → smallest complete change in the **project's idiom** (reuse before you write,
60
+ anti-AI-slop) → cover every touched behavior / interactive element with a **real**
61
+ assertion. UI → check the states + a browser glance.
62
+ 4. **Prove (scoped).** Run the **targeted** tests + typecheck / lint for what changed (not
63
+ the whole suite) → green. Record the command + output. A tautological test that can't
64
+ fail is not proof.
65
+ 5. **Review-lite + ship.** Self-review the diff for correctness, scope, and idiom. If
66
+ `.devrites/principles.md` exists, confirm that no declared invariant is broken. This is
67
+ `/rite-frame`'s AUDIT pass: one pass, no subagent fan-out. Show the diff, then on the user's confirm commit it
68
+ (Conventional Commits, atomic), or hand to `/rite-ship` only when the change belongs to the active
69
+ feature's candidate; otherwise commit standalone. **Never push
70
+ without the user asking.**
71
+
72
+ ## Escalation (mid-flight): the Spec Drift Guard still applies
73
+ If the "small" change turns out to be not small: a second slice appears, a real design
74
+ decision surfaces, scope grows past the boundary, or you hit an irreversible-risk item:
75
+ **STOP, say so, and route to `/rite-spec` / `/rite-define`**. Don't quietly grow a quick
76
+ fix into an unreviewed feature; that's the exact drift the lifecycle guards against.
77
+
78
+ If the quick boundary does not hold or an escalation remains, use `Stopped / blocked`
79
+ and route to the full lifecycle; do not render `Done`.
80
+
81
+ **DO NOT** use this lane to dodge the gate: the express lane is for changes that are
82
+ genuinely small, not for shipping risky work faster.
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: rite-resolve
3
+ description: User-invoked resume verb for answering, dropping, or batch-resolving open `questions.md` gates.
4
+ argument-hint: "<qid> \"<answer>\" | --drop <qid> [\"<reason>\"] | --batch <path-to-file>"
5
+ user-invocable: true
6
+ disable-model-invocation: true
7
+ ---
8
+
9
+ # /rite-resolve: answer the human gate
10
+
11
+ `/rite-resolve` resumes an **async** human gate: a checkpoint that already paused and
12
+ **stopped the session** (an AFK blocking/escalating/irreversible queue, or a HITL pause
13
+ left unanswered), plus `--batch`. When `/rite-build` asks a question **inline**
14
+ via `AskUserQuestion` and the human is present, that pick resolves the gate **in place** through
15
+ the `devrites-engine state resolve` writer. You don't type `/rite-resolve` for it. For the async case this
16
+ skill takes the human's answer (or `--drop` / `--batch`), writes it to `questions.md`, updates
17
+ `state.md` (clears `Awaiting human`, sets `Status: running`), and recommends the next command.
18
+
19
+ It has one verb, one source of truth (`questions.md`), and one cursor (`state.md`). The
20
+ full AFK / HITL contract lives in
21
+ [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md).
22
+
23
+ ## Rules consulted (read on demand from `.pi/skills/devrites-lib/reference/standards/`)
24
+
25
+ Pull these via `Read` when shaping the resolve:
26
+
27
+ - `afk-hitl.md`: gate taxonomy, `questions.md` schema, AFK exception rules.
28
+ - `documentation.md`: record decisions and rationale where the answer changes scope.
29
+
30
+ ## Operating rules
31
+
32
+ - **Requires an active workspace.** Read `.devrites/ACTIVE` first; if empty, **STOP** and
33
+ tell the user to run `/rite-spec <feature>` first. If the slug has no `questions.md`,
34
+ report the missing required artifact and stop.
35
+ - **One mutation per call.** A single qid (or `--batch` file) per invocation; never
36
+ silently coalesce multiple human decisions into one log entry.
37
+ - **Never overwrite an answered question.** If the qid's `status` is `answered` or
38
+ `dropped`, refuse with the existing answer; ask the user to open a new qid that
39
+ references the old one (the file is the audit trail).
40
+ - **If the answer materially changes scope, architecture, or acceptance**, route it
41
+ through the Spec Drift Guard (`/rite-plan repair`) **after** writing the answer: do
42
+ not modify `spec.md` / `plan.md` inside this skill.
43
+ - **The script is the source of truth.** Always invoke
44
+ `devrites-engine state resolve`. It keeps `questions.md` + `state.md` consistent and emits the
45
+ next-action recommendation. The one `state.md` field this skill may write by hand is the
46
+ unblocked slice's `Slice mode` (step 4, the named exception); everything else goes through
47
+ the script, never by hand.
48
+ - **Human gates are for human-only decisions, not the agent's work.** A `questions.md` entry the
49
+ human must answer is a genuine decision (a scope / design / risk call only the human can make),
50
+ not a task the agent can do. If a question is really agent-doable ("should I write the
51
+ test?", "go implement X"), do not record a human answer that returns the agent's work to it:
52
+ flag the mis-tag and route it to the right skill (`/rite-build`, `/rite-plan unblock`,
53
+ `devrites-debug-recovery`). The human resolves decisions; the agent does the work.
54
+
55
+ ## Workflow
56
+
57
+ 0. **Read `.pi/skills/devrites-lib/reference/standards/core.md`** (operating rules + persistence discipline) before
58
+ touching the workspace.
59
+ Then read the explicit or active workspace's `state.md` directly.
60
+ 1. **Parse arguments.** `$ARGUMENTS` is one of:
61
+ - `<qid> "<answer>"`: answer the single open question.
62
+ - `--drop <qid>` (optional `"<reason>"`): mark the question `dropped`; record
63
+ the reason inline.
64
+ - `--batch <path-to-file>`: bulk resolve, one entry per qid (see
65
+ [`reference/answer-protocol.md`](reference/answer-protocol.md) for the batch
66
+ format).
67
+ 2. **Load context.** Read `state.md`, `questions.md`, and the relevant slice from
68
+ `tasks.md`. Confirm the qid is `status: open`. If `state.md` `Status` is not
69
+ `awaiting_human` and the question's `gate` is `blocking`, surface the inconsistency
70
+ before proceeding (don't auto-repair: flag it).
71
+ 3. **Apply explicit consent.** Supplying `<qid> "<answer>"`, `--drop`, or `--batch` is the
72
+ user's explicit consent for this local workspace mutation. Echo the qid, answer/drop,
73
+ and slice being unblocked, then continue immediately; do not ask the user to confirm the
74
+ command they just typed.
75
+ 4. **Mutate.** Run `devrites-engine state resolve` with those arguments. It:
76
+ - flips the qid's `status` to `answered` / `dropped` and stamps `answered_at` + `answer`;
77
+ - if the qid is in `state.md`'s `Awaiting human` block (single-question pause), clears
78
+ that block and sets `Status: running`;
79
+ - appends a `Log` line to `state.md`.
80
+
81
+ On resume, also clear or update the unblocked slice's `Slice mode` in `state.md`: if
82
+ the answer lets the slice proceed, drop the pause-time `Slice mode` so `/rite-build`
83
+ re-derives it on the next selection; if the answer re-shapes how the slice should be
84
+ built, set `Slice mode` to match.
85
+ 5. **Post-resolve hand-off.** If the answer changes product behavior or acceptance →
86
+ recommend `/rite-plan repair`. Otherwise → recommend the slice's natural next action
87
+ (typically `/rite-build` for the slice that was awaiting).
88
+ **Completion:** the resolved state contains exactly one next command.
89
+ 6. **STOP.** This skill does not run `/rite-build` itself: the user re-enters the
90
+ workflow explicitly.
91
+
92
+ > **Mid-flight discipline.** Don't edit `spec.md` / `plan.md` to "incorporate" the
93
+ > answer. That's `/rite-plan repair`. Don't silently retry a build after the answer
94
+ > lands: the user types the next command. Don't merge two open questions into one
95
+ > answered entry: each question is independently auditable.