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,80 @@
1
+ # Performance checklist (baseline for the perf reviewer)
2
+
3
+ The minimum baseline `devrites-performance-reviewer` checks against, in feature scope. It
4
+ is a checklist, not a mandate: flag what the diff touches or what a measurement
5
+ flags, never a project-wide sweep. The philosophy lives in
6
+ [`standards/performance.md`](../../devrites-lib/reference/standards/performance.md) (measure first). This file is the
7
+ concrete what-to-look-for.
8
+
9
+ ## Core Web Vitals targets
10
+
11
+ | Metric | Good | Needs work | Poor |
12
+ |---|---|---|---|
13
+ | LCP: Largest Contentful Paint | ≤ 2.5s | ≤ 4.0s | > 4.0s |
14
+ | INP: Interaction to Next Paint | ≤ 200ms | ≤ 500ms | > 500ms |
15
+ | CLS: Cumulative Layout Shift | ≤ 0.1 | ≤ 0.25 | > 0.25 |
16
+
17
+ A CWV value only counts when it carries a source: `Field (CrUX)`, `Lab (Lighthouse)`, or
18
+ `Trace (DevTools)`. No source → it's a Source-mode hypothesis, not a measurement.
19
+
20
+ ## Frontend (only when the feature is UI-facing)
21
+
22
+ Identify the framework first; apply only its idioms.
23
+
24
+ - **Images:** modern format (WebP/AVIF); responsive `srcset`/`sizes`; explicit
25
+ `width`/`height` to reserve space (CLS); below-the-fold `loading="lazy"`; the LCP image
26
+ gets `fetchpriority="high"` and is **not** lazy-loaded.
27
+ - **JavaScript:** initial bundle stays small (≈200KB gzipped is the usual line); code-split
28
+ routes and heavy features; no blocking script in `<head>` without `defer`/`async`; break
29
+ long tasks (>50ms) so the main thread stays free (the main INP lever); `memo`/`useMemo`/
30
+ `useCallback` only where profiling shows a win, not wrapped over everything.
31
+ - **CSS:** critical CSS not render-blocking; no per-render CSS-in-JS runtime cost in prod.
32
+ - **Fonts:** 2-3 families max; WOFF2; self-hosted where possible; preload the LCP font;
33
+ `font-display: swap`; subset with `unicode-range`.
34
+ - **Rendering:** no layout thrashing (batch reads, then writes); animate `transform`/
35
+ `opacity` only; virtualize long lists; `content-visibility: auto` for off-screen sections;
36
+ don't break bfcache (no `unload` handler, no `Cache-Control: no-store` on HTML).
37
+
38
+ ## Backend (every feature, UI or not)
39
+
40
+ - No N+1 queries; eager-load / join / batch instead.
41
+ - New queries have the indexes they need for their filter/sort columns.
42
+ - List endpoints paginate: never an unbounded `SELECT *`.
43
+ - Per-request work that doesn't change per call is cached or hoisted.
44
+ - Responses compressed (gzip/brotli); bulk operations instead of a loop of single calls.
45
+
46
+ ## Network
47
+
48
+ - Static assets cached with a long `max-age` + content hashing.
49
+ - Known origins `preconnect`-ed; no unnecessary redirects; HTTP/2 or HTTP/3 where available.
50
+
51
+ ## AI-codegen perf smells (fold into the area above, not a separate finding category)
52
+
53
+ - State duplicated instead of lifted; effects with over-broad deps that re-run needlessly.
54
+ - Sequential `await`s where `Promise.all` / parallel fetch fits.
55
+ - Over-fetching "just in case"; redundant calls a dedup would collapse.
56
+ - Defensive memoization wrapping cheap components: cost with no benefit.
57
+
58
+ ## Modern APIs to consider (one-liners: reach for these, don't gate on them)
59
+
60
+ `scheduler.yield()` to keep input responsive in long loops · Speculation Rules for
61
+ prefetch/prerender · View Transitions on SPA navigation · Long Animation Frames (LoAF) for
62
+ production INP attribution · `fetchpriority` on critical non-image resources.
63
+
64
+ ## Measurement commands (name these in Source mode; don't run installs in review)
65
+
66
+ ```bash
67
+ # Lighthouse (lab)
68
+ npx lighthouse <url> --output json --output-path ./report.json
69
+ # or via the Chrome DevTools MCP CLI, no install:
70
+ npx -p chrome-devtools-mcp chrome-devtools lighthouse_audit --output-format=json > report.json
71
+
72
+ # Bundle size
73
+ npx vite-bundle-visualizer # Vite
74
+ npx webpack-bundle-analyzer stats.json # webpack
75
+
76
+ # Field data: CrUX / PageSpeed Insights (real users, p75) — needs an API key
77
+ ```
78
+
79
+ Field is what real users experienced; lab is one synthetic run. Don't present one as the
80
+ other.
@@ -0,0 +1,14 @@
1
+ # Performance review (feature-scoped)
2
+
3
+ Apply only when a stated budget or visible regression risk makes performance relevant.
4
+ The canonical measurement, pitfall, optimization, and scope rules live in
5
+ [`performance.md`](../../devrites-lib/reference/standards/performance.md); apply every
6
+ one before filing a performance finding.
7
+
8
+ The agent runs **Source mode** (static scan, findings tagged `potential` + the verify
9
+ command) or **Measured mode** (real CWV numbers → a source-labeled scorecard). Baseline
10
+ checks + measurement commands: [`performance-checklist.md`](performance-checklist.md).
11
+
12
+ ## Labels
13
+ A perf issue that breaches a stated budget is **Important** or **Critical**; a
14
+ speculative micro-optimization is a **Suggestion** at most.
@@ -0,0 +1,42 @@
1
+ # Security review (feature-scoped)
2
+
3
+ Apply when the feature involves user input, auth/authz, data storage, external
4
+ integrations, secrets, or permissions. Delegates to `devrites-audit security`.
5
+
6
+ ## OWASP-Top-10-oriented checks
7
+
8
+ This is the **single-sourced OWASP-web checklist** both `/rite-review` and the
9
+ `devrites-security-auditor` agent apply (trust-boundary + the OWASP **LLM** Top 10 live in
10
+ [`standards/security.md`](../../devrites-lib/reference/standards/security.md)). Keep the enumeration here; don't restate it.
11
+
12
+ - **Injection:** parameterized queries; no string-built SQL/shell/HTML; validate &
13
+ encode at boundaries.
14
+ - **Broken access control:** every sensitive action checks authz server-side; no
15
+ trusting client-supplied IDs/roles/tenant; no IDOR, cross-tenant read/write/cache/search,
16
+ confused-deputy path, or privilege change without re-authorization.
17
+ - **Auth / session:** secure session handling; no credentials in code/logs; correct
18
+ password/token handling.
19
+ - **Sensitive data:** PII/secrets not logged or returned; encryption where required;
20
+ least data exposed.
21
+ - **SSRF / external calls:** validate/allowlist outbound URLs; timeouts; don't reflect
22
+ untrusted input into requests.
23
+ - **Misconfiguration:** safe defaults; debug off; CORS scoped; security headers as the
24
+ project uses them.
25
+ - **Files / request integrity:** resolved paths remain below the allowed root across
26
+ traversal/encoding/symlink/archive cases; state-changing browser requests use the
27
+ framework's forgery protection; CORS is not treated as CSRF defense.
28
+ - **Vulnerable dependencies:** new/updated deps audited; no known-vuln versions added.
29
+ - **Integrity / deserialization:** safe non-executable parsing with type/size/depth limits;
30
+ untrusted data cannot instantiate executable objects.
31
+
32
+ ## Trust boundary
33
+ Apply the three-tier discipline (untrusted → boundary → trusted) per the canonical rule
34
+ in [`standards/security.md`](../../devrites-lib/reference/standards/security.md#trust-boundary-three-tiers). A value
35
+ that skips the boundary tier is a finding.
36
+
37
+ ## Rules
38
+ - Findings labeled Critical/Important/Suggestion. A real auth/data-exposure issue is
39
+ **Critical** → NO-GO until fixed.
40
+ - Secrets management: never commit secrets; use the project's secret mechanism.
41
+ - Don't expand into a project-wide security audit: feature scope. Record out-of-scope
42
+ risks as follow-ups.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: rite-seal
3
+ description: Decide GO/NO-GO for an active feature; /rite-ship owns commit, push, tag, and close.
4
+ argument-hint: "[feature-slug] [--full]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # /rite-seal: GO / NO-GO
9
+
10
+ Verify final candidate in `seal.md`; `/rite-ship` owns authorized irreversible
11
+ actions and close-out.
12
+
13
+ ## Authority
14
+
15
+ Read [`core.md`](../devrites-lib/reference/standards/core.md) plus only
16
+ final-diff-relevant standards: agents, code-review, testing, browser-proof-checklist,
17
+ security, principles, documentation, observability, deprecation, and
18
+ definition-of-done.
19
+ Load [`final-evidence.md`](reference/final-evidence.md) and
20
+ [`go-no-go.md`](reference/go-no-go.md) for proof and verdict safety.
21
+ Follow the shared
22
+ [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md) for
23
+ the reviewed digest and artifact bindings.
24
+
25
+ The host runs/reconciles named read-only reviewers; engine checks invariants.
26
+ **Standard** is default; **Full** broadens conditional axes per
27
+ [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md).
28
+
29
+ ## Gate
30
+
31
+ | State | Verdict |
32
+ |---|---|
33
+ | Acceptance proven, deterministic checks pass, no unresolved drift or human gate, `Critical == 0`, `Important == 0` | **GO** |
34
+ | Same, but `Important > 0` | Ask `Important findings remain. Proceed to seal? [y/N]`; default **N** |
35
+ | `Critical > 0` | **NO-GO** |
36
+ | Any acceptance criterion, resolved prohibition, or declared key link lacks proof | **NO-GO** |
37
+ | Evidence is stale, or native diff review plus the exact test analyst finds weakened tests | **NO-GO: Critical** |
38
+ | Any exact required reviewer account is missing or silent | **NO-GO** |
39
+ | Any deferred finding (`touched-files.md` `## Review trail`, `eng-review.md` `## Deferred findings`) lacks a `review.md` verdict | **NO-GO** |
40
+ | Any `gate: validating` question remains open | **NO-GO** |
41
+ | Material UI acceptance lacks or fails required browser proof | **NO-GO** |
42
+ | Unresolved drift, unsafe migration/removal, or unapproved principle violation remains | **NO-GO** |
43
+
44
+ A judgment-only criterion needs the human eye; AFK records a validating question
45
+ and stops.
46
+
47
+ ## Workflow
48
+
49
+ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
50
+ ([`risk-and-rollback.md`](reference/risk-and-rollback.md),
51
+ [`seal-template.md`](reference/seal-template.md),
52
+ [`anti-patterns.md`](reference/anti-patterns.md)):
53
+
54
+ 1. read workspace and final diff;
55
+ 2. recheck the canonical candidate/bindings and approved repository/CI proof;
56
+ 3. admit valid Spec/Code accounts; dispatch remaining required exact roles under
57
+ `../devrites-lib/reference/parallel-dispatch.md` on the same frozen candidate;
58
+ 4. reconcile their read-only verdicts against source and immutable evidence;
59
+ 5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven accounts;
60
+ 6. write exactly one candidate binding, then run
61
+ `devrites-engine check seal <slug>` for structure and identity, never semantics.
62
+
63
+ Corrections return through affected Prove/Review before restarting Seal under
64
+ [evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
65
+
66
+ Only repository scripts/CI authorize commands; never guess.
67
+
68
+ ## On GO
69
+
70
+ Set `state.md` `Next step: /rite-ship` and stop. A GO is a verdict, not
71
+ authorization to perform an irreversible action.
72
+
73
+ ## Output
74
+
75
+ Use [`reference/output.md`](reference/output.md).
@@ -0,0 +1,29 @@
1
+ # rite-seal: anti-patterns
2
+
3
+ Load this when standing the final GO/NO-GO decision, or when tempted to round
4
+ NO-GO up to GO. (The irreversible push/tag/deploy and its type-GO gate now live in
5
+ `/rite-ship`: see that skill's anti-patterns for the type-GO discipline.)
6
+
7
+ Pack-wide rationalizations + red flags (incl. user-wants-it-bypass-gate):
8
+ see [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
9
+
10
+ ## Phase-specific rationalizations
11
+
12
+ | Excuse | Rebuttal |
13
+ |---|---|
14
+ | "All Important findings are minor; just GO." | `Important > 0` triggers an interactive y/N: do not bypass the prompt, present it. |
15
+ | "User clearly wants this to ship." | Ship is evidence-driven, not consent-driven. A Critical finding outranks "the user said go". |
16
+ | "Drift is small; resolve it inline and seal." | Unresolved drift = NO-GO, no exceptions. Route through `/rite-plan` to repair, then seal. |
17
+ | "Reviewer findings overlap; average them away." | Surface disagreements explicitly. Averaging hides where the reviewers disagree. |
18
+ | "Carry the old reviewer verdicts though the diff changed." | If the diff changed since `/rite-review`, re-run the Spec + Code axes: don't carry stale verdicts forward. |
19
+ | "The wright was confident in a material decision. GO without independent review." | Confidence is not independent evidence. Ask the exact `devrites-doubt-reviewer` to test a boundary / data-model / auth / public-API / migration claim, reconcile its result against source, and record the verdict in `decisions.md`; unresolved irreversible risk is NO-GO. |
20
+
21
+ ## Red Flags
22
+
23
+ - About to write `Verdict: GO` while any `Critical` finding is open.
24
+ - Writing `Next step` as anything other than `/rite-ship` after a GO verdict.
25
+ - Reviewer subagents spawned with the author's reasoning attached (defeats the fresh-context point).
26
+ - `seal.md` written before walking *every* acceptance criterion one by one.
27
+ - A NO-GO rounded up to GO "to be agreeable".
28
+ - Unresolved drift, unresolved questions, or pending tasks, and you're sealing anyway.
29
+ - A stood irreversible-risk decision (auth / public-API / migration) has no recorded independent `devrites-doubt` verdict, and you are sealing GO anyway.
@@ -0,0 +1,41 @@
1
+ # Final evidence check
2
+
3
+ Map spec promises to valid observed proof.
4
+
5
+ ## Acceptance
6
+
7
+ For each AC/REQ/scenario/key link, exact `devrites-proof-runner` maps immutable
8
+ results and exact `devrites-spec-reviewer` checks implementation and proof
9
+ against its meaning. Bug fixes require original-symptom proof; self-report,
10
+ inspection alone, and generic "tests pass" do not count.
11
+
12
+ Apply [`testing.md`'s positive, discriminating proof](../../devrites-lib/reference/standards/testing.md#positive-discriminating-proof),
13
+ including invalid-result exclusions and static/textual criterion boundaries.
14
+ Unproven behavior: NO-GO.
15
+
16
+ ## Cross-check
17
+
18
+ Require built slices, resolved or accepted findings, no drift/open validating
19
+ question, required UI/boundary proof, and an exact doubt verdict per stood decision.
20
+ Reconcile the final diff with the spec applicability map. Every triggered topology,
21
+ data, integration, security, and delivery owner needs its relevant observed failure/
22
+ recovery evidence or an evidence-backed dismissal; a generic green suite cannot close it.
23
+
24
+ ## Candidate binding and test integrity
25
+
26
+ Run `devrites-engine check candidate <slug>` and require its digest to match the
27
+ single evidence/review bindings and browser binding when present. Diff tests,
28
+ dispatch exact `devrites-test-analyst`; apply
29
+ [evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity)
30
+ to approved proof, then require unchanged digest/sources. Deleted/skipped/focused/
31
+ weakened/tautological tests are Critical.
32
+
33
+ After recording verdicts in `seal.md`, run:
34
+
35
+ ```bash
36
+ devrites-engine check seal "<slug>"
37
+ ```
38
+
39
+ This checks structure and exact candidate bindings, never acceptance, test
40
+ quality, doubt, or review. Apply [`testing.md`'s safe perturbation](../../devrites-lib/reference/standards/testing.md#safe-perturbation)
41
+ for its mandatory critical/regression cases and any additional project/test-plan requirement.
@@ -0,0 +1,29 @@
1
+ # GO / NO-GO
2
+
3
+ [`../SKILL.md`](../SKILL.md) owns gates. Draft native acceptance, test, doubt,
4
+ and seven reviewer accounts in `seal.md`; then run
5
+ `devrites-engine check seal <slug>` for structure/freshness.
6
+
7
+ ## NO-GO
8
+
9
+ NO-GO on unproven acceptance/prohibitions/key links, red repository checks,
10
+ stale proof, drift/open validating questions, Critical code/security, unsafe
11
+ rollback, or an unapproved principle violation. Also block:
12
+ - missing/adverse exact proof, spec, or test verdict;
13
+ - deleted/skipped/focused/tautological/weakened tests;
14
+ - missing/silent required review or invalid conditional account;
15
+ - a stood decision without reconciled exact doubt verdict;
16
+ - opted-in mutation missing/below threshold (otherwise optional).
17
+
18
+ ## GO
19
+
20
+ GO needs fresh acceptance, green proof, resolved drift/human gates, acceptable
21
+ security/data/rollback risk, every account, and no Critical.
22
+
23
+ When only Important findings remain, ask:
24
+
25
+ ```text
26
+ Important findings remain. Proceed to seal? [y/N]
27
+ ```
28
+
29
+ Default NO-GO. `y` accepts named Important risks only, never Critical/missing proof.
@@ -0,0 +1,5 @@
1
+ # rite-seal output
2
+
3
+ Use the shared [GO or NO-GO reply contract](../../devrites-lib/reference/reply-contract.md).
4
+
5
+ Do not imply anything shipped. `/rite-seal` decides; `/rite-ship` executes.
@@ -0,0 +1,47 @@
1
+ # rite-seal phase contract
2
+
3
+ 1. **Read.** Resolve the explicit slug or `.devrites/ACTIVE`, require its
4
+ `state.md`, then read required workspace artifacts, conditional
5
+ browser/design/devex evidence, and final diff.
6
+ 2. **Recheck identity and real proof.** Run
7
+ `devrites-engine check candidate <slug>` and require its exact digest to match
8
+ the single evidence/review bindings and the browser binding when present.
9
+ Apply `spec-grammar.md`'s Native grammar re-read checklist and
10
+ [evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity).
11
+ Run required `test-plan.md` commands unless valid observed proof already satisfies
12
+ them under that contract. Rerun the
13
+ candidate check afterward and require the identical digest and no source
14
+ mutation. Capture command, cwd, exit, decisive output, and identity.
15
+ Missing/red/mismatched blocks; unavailable is `cannot_verify`, never pass.
16
+ 3. **Judge acceptance.** Dispatch exact `devrites-proof-runner` on immutable
17
+ proof; admit valid same-candidate `devrites-spec-reviewer` evidence from Review
18
+ or dispatch that exact reviewer. Reconcile every
19
+ AC/REQ/scenario/key link by ID and meaning; missing/stale/self-attested/mismatched is NO-GO.
20
+ 4. **Judge tests.** Diff baseline/candidate tests for deletion, skip/focus,
21
+ tautology, or weakening; dispatch exact `devrites-test-analyst`. Missing or
22
+ adverse account, or green tests not asserting mapped behavior, is Critical.
23
+ 5. **Resolve gates.** Open blocking/escalating/validating questions and drift
24
+ block. Each stood decision needs a reconciled exact `devrites-doubt-reviewer` verdict.
25
+ Every deferred finding (`touched-files.md` `## Review trail`, `eng-review.md`
26
+ `## Deferred findings`) needs its `review.md` verdict; a row without one blocks.
27
+ 6. **Risk and native review.** Apply [`risk-and-rollback.md`](risk-and-rollback.md)
28
+ and the [`review roster`](../../devrites-lib/reference/parallel-dispatch.md) on
29
+ the candidate. Admit each result through
30
+ [`result admission`](../../devrites-lib/reference/standards/agents.md#result-admission).
31
+ `## Reviewer Accounts` preserves all seven; gap/missing/malformed blocks;
32
+ conditional `Not-applicable` names why.
33
+ 7. **Route corrections.** Reconcile cited findings/disagreements, but do not
34
+ edit the candidate or manifest in Seal. Route an accepted correction through
35
+ one bounded wright, update the manifest, run affected Prove, complete a fresh
36
+ Review under evidence validity, then restart Seal on the new digest.
37
+ 8. **Draft/check.** Write `seal.md` from
38
+ [`seal-template.md`](seal-template.md) with the GO/NO-GO rationale, acceptance map,
39
+ test-analysis account, stood-decision verdicts, all seven reviewer accounts,
40
+ and exactly one `Candidate SHA-256: <64 lowercase hex>` line. Then run:
41
+ ```bash
42
+ devrites-engine check seal "<slug>"
43
+ ```
44
+ Structure/bindings only: blocks exit `3`, invalid state `2`. GO sets
45
+ `Next step: /rite-ship`; NO-GO names the fix. No commit/push/tag/publish/deploy/close.
46
+
47
+ Apply [`anti-patterns.md`](anti-patterns.md); never average away disagreement.
@@ -0,0 +1,56 @@
1
+ # Risk & rollback
2
+
3
+ Before GO, know how to undo the change and what could go wrong in production.
4
+
5
+ ## Risk scan
6
+ Rank risks; for each, note likelihood × impact and any mitigation:
7
+ - **Topology/ownership**: affected roots/deployables, shared contracts/state/resources,
8
+ dependency cycles, and intermediate deployment combinations.
9
+ - **Data**: schema changes, migration/backfill interruption, concurrent/duplicate writes,
10
+ tenant/retention boundaries, destructive operations, and invariant reconciliation.
11
+ - **Security**: new trust boundaries, auth/authz changes, secret handling, new deps.
12
+ - **Compatibility**: API contract changes, breaking changes for existing clients,
13
+ feature interactions.
14
+ - **Integration/operational**: timeouts/unknown outcomes, retry/idempotency, duplicate/order,
15
+ partial/invalid responses, provider/queue/cache outage, config/env, and rate limits.
16
+ - **Delivery**: schema/config/application/worker/flag order, environment mismatch,
17
+ monitoring gap, exposure stages, and time to detect/recover.
18
+ - **UX**: changed flows users rely on; unverified UI.
19
+
20
+ ## Rollback plan (required for risky changes)
21
+ For each risky step, state how to back it out:
22
+ - **Migrations**: is there a reversible `down` / a documented manual revert? Is data
23
+ loss possible on rollback? If rollback is unsafe, is bounded forward recovery rehearsed?
24
+ - **Feature flag**: can it be disabled without a deploy?
25
+ - **Revert boundary**: can the change be `git revert`-ed cleanly, or does it entangle
26
+ with other work?
27
+ - **Data**: is there a backup / a way to restore prior state?
28
+ - **External/async effects**: can an unknown outcome be reconciled without duplicating it;
29
+ who drains/replays/quarantines work and repairs partial state?
30
+ - **Configuration/deployables**: what order restores compatible versions and values at
31
+ every root/environment?
32
+
33
+ ## Blocking rules
34
+ - A **destructive or data-migration change with no rollback plan** is a **NO-GO**.
35
+ - A data change with unknown invariant/tenant impact, no interruption/retry proof, or no
36
+ rollback/forward-recovery rehearsal is **NO-GO**.
37
+ - A new/changed external or asynchronous boundary with blind retry, silent partial success,
38
+ or no outage/backlog recovery and monitoring is **NO-GO**.
39
+ - Unsafe intermediate deployment order, unvalidated required configuration, or no watched
40
+ rollout signal/owner is **NO-GO** for live exposure.
41
+ - Record the chosen rollback path in `seal.md` → "Risks / Rollback".
42
+
43
+ ## Fresh-context availability
44
+
45
+ A required review must run in a fresh spawned agent:
46
+
47
+ - If the named role is unavailable, record the roster skip reason and keep seal
48
+ **NO-GO**.
49
+ - Never run the reviewer in the root context or log root work as a dispatched review.
50
+ - AFK never auto-accepts a missing reviewer.
51
+ - Security or irreversible-risk scope remains NO-GO while independent review is
52
+ unavailable.
53
+
54
+ ## Destructive operations
55
+ Confirm any destructive step with the user before shipping. Verify backups exist where
56
+ relevant. Never treat an irreversible action as routine.
@@ -0,0 +1,27 @@
1
+ # `seal.md` template
2
+
3
+ ```md
4
+ # Seal: <Feature>
5
+ Verdict: GO / NO-GO
6
+ Candidate SHA-256: <64 lowercase hex>
7
+ ## Acceptance Criteria
8
+ - <AC>: <evidence>
9
+ ## Verification Evidence
10
+ <proof>
11
+ ## Reviewer Accounts
12
+ - devrites-spec-reviewer: <outcome>
13
+ - devrites-code-reviewer: <outcome>
14
+ - devrites-test-analyst: <outcome>
15
+ - devrites-frontend-reviewer: <outcome>
16
+ - devrites-security-auditor: <outcome>
17
+ - devrites-performance-reviewer: <outcome>
18
+ - devrites-devex-reviewer: <outcome>
19
+ ## Risks / Rollback
20
+ <risks/recovery>
21
+ ## Stood Decisions
22
+ <doubt verdict per stood decision>
23
+ ## Blockers / Follow-ups
24
+ <blockers/follow-ups>
25
+ ## Final Decision
26
+ <verdict/reason>
27
+ ```
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: rite-ship
3
+ description: Commit, push, tag, archive, or close a sealed feature after /rite-seal GO. Use for repository mutation; not for GO/NO-GO readiness.
4
+ argument-hint: "[feature-slug]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # /rite-ship: ship + close the task
9
+
10
+ `/rite-seal` decides; `/rite-ship` mutates Git and closes. Read the active workspace;
11
+ if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `seal.md`.
12
+
13
+ ## Rules consulted (read on demand from `.pi/skills/devrites-lib/reference/standards/`)
14
+ **Step 0:** Read `core.md`, then pull as needed:
15
+ - `git-workflow.md`: Conventional Commits, atomicity, never-commit list.
16
+ - `afk-hitl.md`: AFK pause rules for irreversible actions (the type-GO gate itself: [`git-ship.md`](reference/git-ship.md), [`rollout.md`](reference/rollout.md)).
17
+ - `definition-of-done.md`: acceptance, evidence, drift, rollback, docs.
18
+ - [`release/ship-checklist.md`](../devrites-lib/reference/standards/release/ship-checklist.md): final pass/fail sweep.
19
+
20
+ ## Operating rules
21
+ - **GO is prerequisite.** No current `seal.md` GO → stop at `/rite-seal`.
22
+ - **Ship is candidate-read-only.** Follow
23
+ [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md).
24
+ Ship must not change any candidate path or `touched-files.md`; it may write only
25
+ workspace `ship.md`, `state.md`, and archive bookkeeping. Project/manifest mutation
26
+ returns through Prove → Review → Seal.
27
+ - **Bindings stay exact.** Rerun candidate/Seal checks; require the digest bound in
28
+ evidence, optional browser evidence, review, and seal. Any mismatch stops.
29
+ - **Fresh approval.** Disclose the exact Git attempt; literal `GO` authorizes it once.
30
+ Change/retry means re-prompt. Native approval remains separate/authoritative.
31
+ - **Archive, never delete,** every audit `.md`.
32
+
33
+ ## Workflow
34
+ 1. **Orient.** Snapshot; read seal, state, spec, touched files, evidence, and any UI
35
+ brief. Confirm GO/closed digest, then run:
36
+ ```bash
37
+ devrites-engine check candidate <slug>
38
+ devrites-engine check seal <slug>
39
+ ```
40
+ Nonzero/mismatch stops; never reinterpret it.
41
+ 1a. **Health (advisory).** Apply `/rite-doctor` read-only; surface WARN/FAIL without
42
+ repair. If ACTIVE is flagged, confirm the slug.
43
+ 2. **Prepare the exact Git candidate.** Follow
44
+ [`git-ship.md`](reference/git-ship.md): refuse out-of-manifest staged work; stage
45
+ exact manifest paths only after Seal GO; compare NUL-delimited staged state/path
46
+ sets, require identical index/worktree bytes, and rerun candidate/Seal checks.
47
+ From the verified index, build the exact project-conformant message/trailers,
48
+ branch, tag/PR, commands, and skips.
49
+ 2a. **Credential guard (HIGH blocks).** Scan staged blobs and any PR body. HIGH stops
50
+ and requires rotation/redaction; MEDIUM needs confirmation recorded in `ship.md`;
51
+ LOW is FYI.
52
+ ```bash
53
+ devrites-engine secret-scan --staged
54
+ ```
55
+ Scan a PR body with `devrites-engine secret-scan --stdin` only through non-logging
56
+ process stdin, then close it—never command/argv/env/heredoc/log/temp file. If that
57
+ channel is unavailable, stop. **rc=3 → STOP:** no type-GO/commit/push/archive.
58
+ 2b. **Reconcile residuals before type-GO.** Scan `strategy.md` deferrals,
59
+ `decisions.md` FYIs/revisit triggers, unresolved `review.md` non-blocking/if-minor/
60
+ FYI findings, and `seal.md` follow-ups. Deduplicate only rows with identical
61
+ obligation + disposition, preserving every source pointer. Each residual appears
62
+ once in the pending `ship.md` table as `tracked` (durable path/ID) or `no-action`
63
+ (prior decision or explicit human acceptance + reason/revisit). Type-GO never
64
+ implies `no-action`. Missing/vague/conflicting disposition blocks; `none` requires
65
+ empty sources.
66
+ 3. **Type-GO.** Render [`git-ship.md`](reference/git-ship.md)'s prompt and wait.
67
+ Literal `GO` proceeds once; anything else records cancellation in `ship.md` and
68
+ stops. Any command/scope/branch/message/tag/PR change or retry needs a fresh prompt;
69
+ native approval is still required.
70
+ 4. On GO, commit; verify committed state/path set and exact candidate digest; then push →
71
+ tag/PR as applicable via `git-ship.md`. Capture SHA(s), branch, tag/PR URL. Mismatch
72
+ stops before push/tag; retry needs fresh approval.
73
+ 4a. **PR only:** render [`git-ship.md`](reference/git-ship.md#pull-request-body)'s
74
+ structured body; omit empty sections.
75
+ 5. Re-scan the four residual sources; any new/missing/changed item blocks archive.
76
+ Write [the template](reference/ship-template.md) with shipment metadata and the
77
+ unchanged pre-GO reconciliation.
78
+ 6. **Close.** Set `state.md` phase `done`; follow
79
+ [`close-out.md`](reference/close-out.md) and run `devrites-engine state close <slug>`
80
+ to move `.devrites/work/<slug>` → `.devrites/archive/<slug>` and clear `ACTIVE`
81
+ only if it names this slug; preserve another active feature's cursor.
82
+ Preserve every `.md`; stable hierarchical instructions need no active-workspace sync.
83
+ Report the recorded `Next step` verbatim — the exact `/rite-spec <parent>-<n> "<objective>"`
84
+ when a continuation sequence remains — so the next increment starts from one line,
85
+ never from chat memory.
86
+
87
+ > **Mid-flight discipline.** No seal GO, skipped type-GO, out-of-manifest stage, or
88
+ > deleted workspace. Stop and use [`anti-patterns`](reference/anti-patterns.md).
@@ -0,0 +1,28 @@
1
+ # rite-ship: anti-patterns
2
+
3
+ Load this before any irreversible action: `git commit`, `push`, `tag`, publish, deploy,
4
+ or when tempted to skip the close-out.
5
+
6
+ Pack-wide rationalizations + red flags: see
7
+ [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
8
+
9
+ ## Phase-specific rationalizations
10
+
11
+ | Excuse | Rebuttal |
12
+ |---|---|
13
+ | "Seal said GO, so I can just push." | A GO verdict is a decision, not authorization. **Render the type-GO prompt every time** and wait for the literal `GO`. |
14
+ | "I'll push the tag now; type-GO is a formality." | Type-GO is the last safety net before an irreversible action. Always render it: even under auto-trigger. |
15
+ | "`git add -A` is faster than listing touched files." | Stage only what's in `touched-files.md`. `-A` sweeps secrets, scratch files, and out-of-scope edits into the ship. |
16
+ | "The evidence is probably still good." | Recheck the canonical candidate digest and every artifact binding. Any mismatch stops. |
17
+ | "The ledger/DESIGN/ADR update is just ship bookkeeping." | Those are candidate paths. Route the change through Polish, affected Prove, Review, and Seal; Ship is read-only. |
18
+ | "Delete the workspace, the feature's done." | Closing **archives** the workspace (`.devrites/archive/<slug>/`); it never deletes the audit trail. |
19
+
20
+ ## Red Flags
21
+
22
+ - About to run `git push` / `git tag` without rendering the type-GO prompt.
23
+ - Shipping without a `GO` verdict recorded in `seal.md`.
24
+ - Staging files not listed in `touched-files.md`, or any secret / `.env`.
25
+ - Changing a candidate path or the manifest after Seal.
26
+ - Pushing or tagging before the committed NUL-delimited state/path and digest checks pass.
27
+ - `rm`-ing `.devrites/work/<slug>/` instead of archiving it.
28
+ - Marking the feature `done` but leaving `.devrites/ACTIVE` pointing at it.
@@ -0,0 +1,68 @@
1
+ # Close-out: archive the workspace, free the active slot
2
+
3
+ Closing a feature means it stops being the *active* work, not that its record is
4
+ deleted. DevRites keeps the audit trail; it just moves out of the live path.
5
+
6
+ ## What close-out does
7
+
8
+ 1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step`.
9
+ When this workspace's `decisions.md` records an unfinished
10
+ [continuation sequence](../../rite-plan/reference/slicing.md#continuation-workspaces),
11
+ that step is the **exact** next command — `/rite-spec <parent>-<n> "<objective>"` —
12
+ and the ship reply prints the same line. Otherwise it stays
13
+ `/rite-spec <next feature>`. Nothing spawns the continuation automatically:
14
+ the recorded command is the handoff, so the human starts each increment knowingly.
15
+ 2. **Archive.** Run the deterministic script:
16
+ ```bash
17
+ devrites-engine state close <slug>
18
+ ```
19
+ It moves `.devrites/work/<slug>/` → `.devrites/archive/<slug>/` (every `.md`
20
+ intact) and clears `.devrites/ACTIVE` **only if** ACTIVE still points at `<slug>`.
21
+ It refuses to clobber an existing `.devrites/archive/<slug>/` (exit 5).
22
+ 3. **Confirm the observed post-state.** The archive exists with its audit records
23
+ intact and the live workspace is absent. If ACTIVE named this slug, verify it is
24
+ empty; if it named another feature, verify that value remains unchanged. Only an
25
+ empty cursor permits the claim "no active feature".
26
+
27
+ Any nonzero exit stops close-out. Archive collision (exit 5) never authorizes overwrite.
28
+ If clearing ACTIVE fails, the engine attempts to move the archive back; that rollback
29
+ can also fail. Inspect the actual live path, archive and cursor before reporting or
30
+ retrying. Record the command/error and observed locations; never claim restored state
31
+ from an attempted rollback or repeat a move against an unverified destination.
32
+
33
+ ## Sequence predecessors
34
+
35
+ A deferred-ship sequence leaves earlier milestones sealed and unarchived in
36
+ `.devrites/work/`. The release ship's disclosed plan may close them
37
+ (`devrites-engine state close '<slug>'` per predecessor) after the release commit
38
+ lands; each close is safe because `ACTIVE` names the release workspace. Closing is
39
+ bookkeeping only: the release commit already carries their bytes, and their audit
40
+ records move intact.
41
+
42
+ ## Why archive, not delete
43
+
44
+ - The `.md` files (`spec`, `decisions`, `assumptions`, `evidence`, `seal`, `ship`, …)
45
+ are the project's record of *why* the feature is the way it is. A future
46
+ `/rite-zoom-out` or incident review reads them.
47
+ - Deleting them would make the workflow's own "evidence over confidence" rule a lie.
48
+
49
+ ## Re-opening an archived feature
50
+
51
+ Before restoring an archive, verify its identity, released cursor form and declared
52
+ workspace schema, that the live destination is absent, and that ACTIVE is empty or
53
+ already names this slug. A collision or another active feature stops restoration;
54
+ do not replace its workspace or cursor. Supported released cursor forms remain valid:
55
+ age or encoding alone never requires normalization (see
56
+ [workspace-artifact-schema.md](../../devrites-lib/reference/workspace-artifact-schema.md)).
57
+ An unsupported declared schema stops restoration: record the observed version,
58
+ installed engine's recovery diagnostic and pending normalization owner. Do not guess
59
+ a repair or claim `/rite-upgrade` migrates archives; archived/done work is its no-op.
60
+
61
+ After an authorized restoration, verify the actual paths and cursor and preserve the
62
+ audit records. Reconcile the resumed scope through `/rite-converge`; changes return to
63
+ the applicable earlier lifecycle stage. Historical proof/GO remains historical: a new
64
+ candidate requires fresh Prove → Polish → Review → Seal bindings before Ship. Restoring files
65
+ does not reactivate an old GO.
66
+
67
+ Cross-feature review is user-invoked through `/rite-learn`; close-out does not
68
+ mine, score, nudge, or write a retrospective ledger.