devrites 7.1.2 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +9 -4
  3. package/docs/dsh.md +46 -0
  4. package/engine/internal/devritespaths/paths.go +2 -0
  5. package/engine/internal/hostpack/hostpack.go +29 -5
  6. package/engine/internal/install/apply.go +14 -2
  7. package/engine/internal/install/install.go +7 -3
  8. package/engine/internal/install/merge.go +1 -0
  9. package/engine/internal/install/preflight.go +9 -2
  10. package/engine/internal/install/update.go +1 -1
  11. package/engine/internal/lib/dispatch_packet.go +1 -1
  12. package/pack/generated/README.md +3 -1
  13. package/pack/generated/dsh/AGENTS.md +20 -0
  14. package/pack/generated/dsh/agents/devrites-code-reviewer.md +180 -0
  15. package/pack/generated/dsh/agents/devrites-devex-reviewer.md +137 -0
  16. package/pack/generated/dsh/agents/devrites-doubt-reviewer.md +100 -0
  17. package/pack/generated/dsh/agents/devrites-evidence-scout.md +93 -0
  18. package/pack/generated/dsh/agents/devrites-frontend-reviewer.md +139 -0
  19. package/pack/generated/dsh/agents/devrites-performance-reviewer.md +142 -0
  20. package/pack/generated/dsh/agents/devrites-plan-drafter.md +113 -0
  21. package/pack/generated/dsh/agents/devrites-plan-reviewer.md +167 -0
  22. package/pack/generated/dsh/agents/devrites-proof-runner.md +101 -0
  23. package/pack/generated/dsh/agents/devrites-retrospector.md +82 -0
  24. package/pack/generated/dsh/agents/devrites-security-auditor.md +146 -0
  25. package/pack/generated/dsh/agents/devrites-simplifier-reviewer.md +113 -0
  26. package/pack/generated/dsh/agents/devrites-slice-wright.md +240 -0
  27. package/pack/generated/dsh/agents/devrites-spec-reviewer.md +105 -0
  28. package/pack/generated/dsh/agents/devrites-strategy-reviewer.md +109 -0
  29. package/pack/generated/dsh/agents/devrites-test-analyst.md +110 -0
  30. package/pack/generated/dsh/agents/devrites-upgrade-planner.md +107 -0
  31. package/pack/generated/dsh/agents/fast-builder.md +92 -0
  32. package/pack/generated/dsh/agents/fast-checker.md +61 -0
  33. package/pack/generated/dsh/agents/fast-critic.md +71 -0
  34. package/pack/generated/dsh/agents/fast-planner.md +95 -0
  35. package/pack/generated/dsh/agents/overhaul-backend-engineer.md +70 -0
  36. package/pack/generated/dsh/agents/overhaul-boundary.md +64 -0
  37. package/pack/generated/dsh/agents/overhaul-craft.md +85 -0
  38. package/pack/generated/dsh/agents/overhaul-frontend-engineer.md +73 -0
  39. package/pack/generated/dsh/agents/overhaul-implementer.md +72 -0
  40. package/pack/generated/dsh/agents/overhaul-recon.md +77 -0
  41. package/pack/generated/dsh/agents/overhaul-specialist.md +67 -0
  42. package/pack/generated/dsh/agents/overhaul-verifier.md +73 -0
  43. package/pack/generated/dsh/runtime/cordis.patch.yml +1450 -0
  44. package/pack/generated/dsh/runtime/specialist.mjs +62 -0
  45. package/pack/generated/dsh/skills/devrites-api-interface/SKILL.md +65 -0
  46. package/pack/generated/dsh/skills/devrites-audit/SKILL.md +60 -0
  47. package/pack/generated/dsh/skills/devrites-browser-proof/SKILL.md +109 -0
  48. package/pack/generated/dsh/skills/devrites-browser-proof/reference/browser-performance.md +19 -0
  49. package/pack/generated/dsh/skills/devrites-browser-proof/reference/visual-verdict.md +38 -0
  50. package/pack/generated/dsh/skills/devrites-debug-recovery/SKILL.md +119 -0
  51. package/pack/generated/dsh/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  52. package/pack/generated/dsh/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +41 -0
  53. package/pack/generated/dsh/skills/devrites-debug-recovery/reference/hypotheses.md +23 -0
  54. package/pack/generated/dsh/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  55. package/pack/generated/dsh/skills/devrites-debug-recovery/reference/regression-test.md +33 -0
  56. package/pack/generated/dsh/skills/devrites-debug-recovery/reference/trace.md +25 -0
  57. package/pack/generated/dsh/skills/devrites-doubt/SKILL.md +83 -0
  58. package/pack/generated/dsh/skills/devrites-frontend-craft/SKILL.md +89 -0
  59. package/pack/generated/dsh/skills/devrites-frontend-craft/reference/craft.md +63 -0
  60. package/pack/generated/dsh/skills/devrites-frontend-craft/reference/design-references.md +120 -0
  61. package/pack/generated/dsh/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
  62. package/pack/generated/dsh/skills/devrites-frontend-craft/reference/quality-standards.md +286 -0
  63. package/pack/generated/dsh/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
  64. package/pack/generated/dsh/skills/devrites-frontend-craft/reference/shape.md +61 -0
  65. package/pack/generated/dsh/skills/devrites-interview/SKILL.md +107 -0
  66. package/pack/generated/dsh/skills/devrites-lib/SKILL.md +98 -0
  67. package/pack/generated/dsh/skills/devrites-lib/reference/candidate-integrity.md +59 -0
  68. package/pack/generated/dsh/skills/devrites-lib/reference/intent-map.md +86 -0
  69. package/pack/generated/dsh/skills/devrites-lib/reference/orchestration-profiles.md +48 -0
  70. package/pack/generated/dsh/skills/devrites-lib/reference/parallel-dispatch.md +184 -0
  71. package/pack/generated/dsh/skills/devrites-lib/reference/reply-contract.md +123 -0
  72. package/pack/generated/dsh/skills/devrites-lib/reference/standards/README.md +70 -0
  73. package/pack/generated/dsh/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +32 -0
  74. package/pack/generated/dsh/skills/devrites-lib/reference/standards/afk-hitl.md +467 -0
  75. package/pack/generated/dsh/skills/devrites-lib/reference/standards/agents.md +231 -0
  76. package/pack/generated/dsh/skills/devrites-lib/reference/standards/anti-patterns.md +50 -0
  77. package/pack/generated/dsh/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  78. package/pack/generated/dsh/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  79. package/pack/generated/dsh/skills/devrites-lib/reference/standards/audit-coverage.md +107 -0
  80. package/pack/generated/dsh/skills/devrites-lib/reference/standards/browser-proof-checklist.md +37 -0
  81. package/pack/generated/dsh/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
  82. package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-index.md +111 -0
  83. package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-navigation.md +69 -0
  84. package/pack/generated/dsh/skills/devrites-lib/reference/standards/code-review.md +178 -0
  85. package/pack/generated/dsh/skills/devrites-lib/reference/standards/coding-style.md +53 -0
  86. package/pack/generated/dsh/skills/devrites-lib/reference/standards/context-hygiene.md +136 -0
  87. package/pack/generated/dsh/skills/devrites-lib/reference/standards/core.md +202 -0
  88. package/pack/generated/dsh/skills/devrites-lib/reference/standards/data-integrity.md +144 -0
  89. package/pack/generated/dsh/skills/devrites-lib/reference/standards/debug-recovery.md +42 -0
  90. package/pack/generated/dsh/skills/devrites-lib/reference/standards/definition-of-done.md +25 -0
  91. package/pack/generated/dsh/skills/devrites-lib/reference/standards/deprecation.md +49 -0
  92. package/pack/generated/dsh/skills/devrites-lib/reference/standards/developer-experience.md +128 -0
  93. package/pack/generated/dsh/skills/devrites-lib/reference/standards/development-workflow.md +31 -0
  94. package/pack/generated/dsh/skills/devrites-lib/reference/standards/documentation.md +55 -0
  95. package/pack/generated/dsh/skills/devrites-lib/reference/standards/duplicate-code.md +129 -0
  96. package/pack/generated/dsh/skills/devrites-lib/reference/standards/edge-case-trace.md +94 -0
  97. package/pack/generated/dsh/skills/devrites-lib/reference/standards/elicitation.md +114 -0
  98. package/pack/generated/dsh/skills/devrites-lib/reference/standards/error-handling.md +49 -0
  99. package/pack/generated/dsh/skills/devrites-lib/reference/standards/gates.md +159 -0
  100. package/pack/generated/dsh/skills/devrites-lib/reference/standards/git-workflow.md +51 -0
  101. package/pack/generated/dsh/skills/devrites-lib/reference/standards/glossary.md +40 -0
  102. package/pack/generated/dsh/skills/devrites-lib/reference/standards/hooks.md +41 -0
  103. package/pack/generated/dsh/skills/devrites-lib/reference/standards/integration-reliability.md +121 -0
  104. package/pack/generated/dsh/skills/devrites-lib/reference/standards/loop-operations.md +123 -0
  105. package/pack/generated/dsh/skills/devrites-lib/reference/standards/observability.md +90 -0
  106. package/pack/generated/dsh/skills/devrites-lib/reference/standards/one-shot-actions.md +105 -0
  107. package/pack/generated/dsh/skills/devrites-lib/reference/standards/patterns.md +70 -0
  108. package/pack/generated/dsh/skills/devrites-lib/reference/standards/performance.md +88 -0
  109. package/pack/generated/dsh/skills/devrites-lib/reference/standards/principles.md +56 -0
  110. package/pack/generated/dsh/skills/devrites-lib/reference/standards/prose-style.md +127 -0
  111. package/pack/generated/dsh/skills/devrites-lib/reference/standards/release/ship-checklist.md +12 -0
  112. package/pack/generated/dsh/skills/devrites-lib/reference/standards/repository-topology.md +82 -0
  113. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/README.md +28 -0
  114. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  115. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/default.md +42 -0
  116. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/go.md +47 -0
  117. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/python.md +46 -0
  118. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/react.md +55 -0
  119. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  120. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  121. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review/ts-js.md +74 -0
  122. package/pack/generated/dsh/skills/devrites-lib/reference/standards/review-checklist.md +14 -0
  123. package/pack/generated/dsh/skills/devrites-lib/reference/standards/security-checklist.md +30 -0
  124. package/pack/generated/dsh/skills/devrites-lib/reference/standards/security.md +283 -0
  125. package/pack/generated/dsh/skills/devrites-lib/reference/standards/skill-authoring.md +269 -0
  126. package/pack/generated/dsh/skills/devrites-lib/reference/standards/spec-grammar.md +214 -0
  127. package/pack/generated/dsh/skills/devrites-lib/reference/standards/test-proof-checklist.md +18 -0
  128. package/pack/generated/dsh/skills/devrites-lib/reference/standards/testing.md +295 -0
  129. package/pack/generated/dsh/skills/devrites-lib/reference/standards/tooling.md +125 -0
  130. package/pack/generated/dsh/skills/devrites-lib/reference/standards/verification-methods.md +143 -0
  131. package/pack/generated/dsh/skills/devrites-lib/reference/standards/windows.md +60 -0
  132. package/pack/generated/dsh/skills/devrites-lib/reference/standards/workflow-artifacts.md +435 -0
  133. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
  134. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
  135. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
  136. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
  137. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
  138. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
  139. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
  140. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
  141. package/pack/generated/dsh/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
  142. package/pack/generated/dsh/skills/devrites-lib/reference/workspace-artifact-schema.md +312 -0
  143. package/pack/generated/dsh/skills/devrites-prose-craft/SKILL.md +81 -0
  144. package/pack/generated/dsh/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
  145. package/pack/generated/dsh/skills/devrites-prose-craft/reference/examples.md +136 -0
  146. package/pack/generated/dsh/skills/devrites-prose-craft/reference/structures.md +196 -0
  147. package/pack/generated/dsh/skills/devrites-source-driven/SKILL.md +54 -0
  148. package/pack/generated/dsh/skills/devrites-ux-shape/SKILL.md +135 -0
  149. package/pack/generated/dsh/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  150. package/pack/generated/dsh/skills/devrites-ux-shape/reference/visual-direction-probe.md +50 -0
  151. package/pack/generated/dsh/skills/overhaul/SKILL.md +221 -0
  152. package/pack/generated/dsh/skills/overhaul/references/audit-domains.md +390 -0
  153. package/pack/generated/dsh/skills/overhaul/references/lifecycle.md +314 -0
  154. package/pack/generated/dsh/skills/overhaul/references/orchestration.md +291 -0
  155. package/pack/generated/dsh/skills/overhaul/references/records.md +203 -0
  156. package/pack/generated/dsh/skills/overhaul/references/repair-and-measurement.md +310 -0
  157. package/pack/generated/dsh/skills/overhaul/references/review-and-report.md +139 -0
  158. package/pack/generated/dsh/skills/overhaul/references/scope-and-safety.md +233 -0
  159. package/pack/generated/dsh/skills/overhaul/references/scoring.md +261 -0
  160. package/pack/generated/dsh/skills/overhaul/references/stack-profiles.md +316 -0
  161. package/pack/generated/dsh/skills/rite/SKILL.md +157 -0
  162. package/pack/generated/dsh/skills/rite/reference/menu.md +49 -0
  163. package/pack/generated/dsh/skills/rite-adopt/SKILL.md +64 -0
  164. package/pack/generated/dsh/skills/rite-adopt/reference/adoption.md +25 -0
  165. package/pack/generated/dsh/skills/rite-adopt/reference/anti-patterns.md +19 -0
  166. package/pack/generated/dsh/skills/rite-autocomplete/SKILL.md +167 -0
  167. package/pack/generated/dsh/skills/rite-autocomplete/reference/decision-policy.md +44 -0
  168. package/pack/generated/dsh/skills/rite-autocomplete/reference/lookahead.md +50 -0
  169. package/pack/generated/dsh/skills/rite-autocomplete/reference/loop.md +164 -0
  170. package/pack/generated/dsh/skills/rite-autocomplete/reference/stop-conditions.md +118 -0
  171. package/pack/generated/dsh/skills/rite-build/SKILL.md +126 -0
  172. package/pack/generated/dsh/skills/rite-build/reference/afk-discipline.md +153 -0
  173. package/pack/generated/dsh/skills/rite-build/reference/anti-patterns.md +27 -0
  174. package/pack/generated/dsh/skills/rite-build/reference/checkpoint-protocol.md +115 -0
  175. package/pack/generated/dsh/skills/rite-build/reference/checkpoint.md +79 -0
  176. package/pack/generated/dsh/skills/rite-build/reference/frontend-trigger.md +39 -0
  177. package/pack/generated/dsh/skills/rite-build/reference/one-slice-cycle.md +57 -0
  178. package/pack/generated/dsh/skills/rite-build/reference/output.md +29 -0
  179. package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +260 -0
  180. package/pack/generated/dsh/skills/rite-build/reference/phase-contract.md +130 -0
  181. package/pack/generated/dsh/skills/rite-build/reference/spec-drift-guard.md +91 -0
  182. package/pack/generated/dsh/skills/rite-build/reference/tdd.md +27 -0
  183. package/pack/generated/dsh/skills/rite-build/reference/wright-dispatch.md +198 -0
  184. package/pack/generated/dsh/skills/rite-clarify/SKILL.md +104 -0
  185. package/pack/generated/dsh/skills/rite-clarify/reference/anti-patterns.md +24 -0
  186. package/pack/generated/dsh/skills/rite-clarify/reference/decision-coverage.md +56 -0
  187. package/pack/generated/dsh/skills/rite-converge/SKILL.md +167 -0
  188. package/pack/generated/dsh/skills/rite-converge/reference/anti-patterns.md +35 -0
  189. package/pack/generated/dsh/skills/rite-converge/reference/convergence-assessment.md +70 -0
  190. package/pack/generated/dsh/skills/rite-customize/SKILL.md +64 -0
  191. package/pack/generated/dsh/skills/rite-define/SKILL.md +203 -0
  192. package/pack/generated/dsh/skills/rite-define/reference/anti-patterns.md +26 -0
  193. package/pack/generated/dsh/skills/rite-define/reference/gates.md +160 -0
  194. package/pack/generated/dsh/skills/rite-define/reference/plan-template.md +153 -0
  195. package/pack/generated/dsh/skills/rite-doctor/SKILL.md +107 -0
  196. package/pack/generated/dsh/skills/rite-dogfood/SKILL.md +57 -0
  197. package/pack/generated/dsh/skills/rite-explain/SKILL.md +154 -0
  198. package/pack/generated/dsh/skills/rite-explain/reference/intake.md +89 -0
  199. package/pack/generated/dsh/skills/rite-fast/SKILL.md +185 -0
  200. package/pack/generated/dsh/skills/rite-fast/reference/artifacts.md +107 -0
  201. package/pack/generated/dsh/skills/rite-fast/reference/check-and-triage.md +51 -0
  202. package/pack/generated/dsh/skills/rite-frame/SKILL.md +119 -0
  203. package/pack/generated/dsh/skills/rite-frame/reference/failure-modes.md +66 -0
  204. package/pack/generated/dsh/skills/rite-handoff/SKILL.md +117 -0
  205. package/pack/generated/dsh/skills/rite-handoff/reference/handoff-template.md +56 -0
  206. package/pack/generated/dsh/skills/rite-harness/SKILL.md +76 -0
  207. package/pack/generated/dsh/skills/rite-harness/reference/feature-map.md +60 -0
  208. package/pack/generated/dsh/skills/rite-learn/SKILL.md +107 -0
  209. package/pack/generated/dsh/skills/rite-plan/SKILL.md +215 -0
  210. package/pack/generated/dsh/skills/rite-plan/reference/anti-patterns.md +34 -0
  211. package/pack/generated/dsh/skills/rite-plan/reference/dependency-graph.md +48 -0
  212. package/pack/generated/dsh/skills/rite-plan/reference/replan-and-repair.md +114 -0
  213. package/pack/generated/dsh/skills/rite-plan/reference/slicing.md +187 -0
  214. package/pack/generated/dsh/skills/rite-plan/reference/task-breakdown.md +50 -0
  215. package/pack/generated/dsh/skills/rite-polish/SKILL.md +128 -0
  216. package/pack/generated/dsh/skills/rite-polish/reference/adr-promotion.md +11 -0
  217. package/pack/generated/dsh/skills/rite-polish/reference/anti-ai-slop.md +210 -0
  218. package/pack/generated/dsh/skills/rite-polish/reference/anti-patterns.md +30 -0
  219. package/pack/generated/dsh/skills/rite-polish/reference/backend-polish.md +80 -0
  220. package/pack/generated/dsh/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
  221. package/pack/generated/dsh/skills/rite-polish/reference/code.md +87 -0
  222. package/pack/generated/dsh/skills/rite-polish/reference/design-memory.md +117 -0
  223. package/pack/generated/dsh/skills/rite-polish/reference/design-system-discovery.md +8 -0
  224. package/pack/generated/dsh/skills/rite-polish/reference/harden-checklist.md +110 -0
  225. package/pack/generated/dsh/skills/rite-polish/reference/ledger.md +67 -0
  226. package/pack/generated/dsh/skills/rite-polish/reference/ui.md +146 -0
  227. package/pack/generated/dsh/skills/rite-pov/SKILL.md +71 -0
  228. package/pack/generated/dsh/skills/rite-pr-feedback/SKILL.md +61 -0
  229. package/pack/generated/dsh/skills/rite-pressure-test/SKILL.md +76 -0
  230. package/pack/generated/dsh/skills/rite-prototype/SKILL.md +106 -0
  231. package/pack/generated/dsh/skills/rite-prove/SKILL.md +151 -0
  232. package/pack/generated/dsh/skills/rite-prove/reference/acceptance-proof.md +88 -0
  233. package/pack/generated/dsh/skills/rite-prove/reference/anti-patterns.md +25 -0
  234. package/pack/generated/dsh/skills/rite-prove/reference/browser-proof.md +51 -0
  235. package/pack/generated/dsh/skills/rite-prove/reference/failure-triage.md +53 -0
  236. package/pack/generated/dsh/skills/rite-prove/reference/proof-ladder.md +39 -0
  237. package/pack/generated/dsh/skills/rite-prove/reference/test-command-discovery.md +36 -0
  238. package/pack/generated/dsh/skills/rite-quick/SKILL.md +97 -0
  239. package/pack/generated/dsh/skills/rite-resolve/SKILL.md +113 -0
  240. package/pack/generated/dsh/skills/rite-resolve/reference/answer-protocol.md +129 -0
  241. package/pack/generated/dsh/skills/rite-review/SKILL.md +190 -0
  242. package/pack/generated/dsh/skills/rite-review/reference/anti-patterns.md +32 -0
  243. package/pack/generated/dsh/skills/rite-review/reference/cognitive-load.md +90 -0
  244. package/pack/generated/dsh/skills/rite-review/reference/feature-scoped-review.md +26 -0
  245. package/pack/generated/dsh/skills/rite-review/reference/five-axis-review.md +66 -0
  246. package/pack/generated/dsh/skills/rite-review/reference/nielsen-heuristics.md +126 -0
  247. package/pack/generated/dsh/skills/rite-review/reference/performance-checklist.md +99 -0
  248. package/pack/generated/dsh/skills/rite-review/reference/performance-review.md +14 -0
  249. package/pack/generated/dsh/skills/rite-review/reference/security-review.md +44 -0
  250. package/pack/generated/dsh/skills/rite-seal/SKILL.md +99 -0
  251. package/pack/generated/dsh/skills/rite-seal/reference/anti-patterns.md +29 -0
  252. package/pack/generated/dsh/skills/rite-seal/reference/final-evidence.md +41 -0
  253. package/pack/generated/dsh/skills/rite-seal/reference/go-no-go.md +32 -0
  254. package/pack/generated/dsh/skills/rite-seal/reference/output.md +5 -0
  255. package/pack/generated/dsh/skills/rite-seal/reference/phase-contract.md +56 -0
  256. package/pack/generated/dsh/skills/rite-seal/reference/risk-and-rollback.md +56 -0
  257. package/pack/generated/dsh/skills/rite-seal/reference/seal-template.md +32 -0
  258. package/pack/generated/dsh/skills/rite-ship/SKILL.md +101 -0
  259. package/pack/generated/dsh/skills/rite-ship/reference/anti-patterns.md +28 -0
  260. package/pack/generated/dsh/skills/rite-ship/reference/close-out.md +69 -0
  261. package/pack/generated/dsh/skills/rite-ship/reference/git-ship.md +128 -0
  262. package/pack/generated/dsh/skills/rite-ship/reference/rollout.md +62 -0
  263. package/pack/generated/dsh/skills/rite-ship/reference/ship-template.md +40 -0
  264. package/pack/generated/dsh/skills/rite-spec/SKILL.md +169 -0
  265. package/pack/generated/dsh/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  266. package/pack/generated/dsh/skills/rite-spec/reference/ai-spec-template.md +40 -0
  267. package/pack/generated/dsh/skills/rite-spec/reference/anti-patterns.md +27 -0
  268. package/pack/generated/dsh/skills/rite-spec/reference/interview-patterns.md +56 -0
  269. package/pack/generated/dsh/skills/rite-spec/reference/investigation.md +83 -0
  270. package/pack/generated/dsh/skills/rite-spec/reference/question-protocol.md +36 -0
  271. package/pack/generated/dsh/skills/rite-spec/reference/references-intake.md +62 -0
  272. package/pack/generated/dsh/skills/rite-spec/reference/spec-checklists.md +89 -0
  273. package/pack/generated/dsh/skills/rite-spec/reference/spec-template.md +160 -0
  274. package/pack/generated/dsh/skills/rite-spec/reference/state-workspace.md +240 -0
  275. package/pack/generated/dsh/skills/rite-status/SKILL.md +74 -0
  276. package/pack/generated/dsh/skills/rite-temper/SKILL.md +137 -0
  277. package/pack/generated/dsh/skills/rite-temper/reference/anti-patterns.md +30 -0
  278. package/pack/generated/dsh/skills/rite-temper/reference/review-dimensions.md +66 -0
  279. package/pack/generated/dsh/skills/rite-temper/reference/scope-modes.md +52 -0
  280. package/pack/generated/dsh/skills/rite-temper/reference/significance.md +55 -0
  281. package/pack/generated/dsh/skills/rite-temper/reference/strategy-template.md +101 -0
  282. package/pack/generated/dsh/skills/rite-upgrade/SKILL.md +142 -0
  283. package/pack/generated/dsh/skills/rite-vet/SKILL.md +242 -0
  284. package/pack/generated/dsh/skills/rite-vet/reference/anti-patterns.md +43 -0
  285. package/pack/generated/dsh/skills/rite-vet/reference/artifacts.md +248 -0
  286. package/pack/generated/dsh/skills/rite-vet/reference/cross-model.md +19 -0
  287. package/pack/generated/dsh/skills/rite-vet/reference/depth.md +59 -0
  288. package/pack/generated/dsh/skills/rite-vet/reference/eng-lenses.md +48 -0
  289. package/pack/generated/dsh/skills/rite-vet/reference/review-axes.md +210 -0
  290. package/pack/generated/dsh/skills/rite-watch-pr/SKILL.md +87 -0
  291. package/pack/generated/dsh/skills/rite-zoom-out/SKILL.md +76 -0
  292. package/package.json +3 -1
  293. package/scripts/build-host-artifacts.sh +6 -2
  294. package/scripts/dsh-generate.py +135 -0
  295. package/scripts/dsh-specialist.mjs +62 -0
  296. package/scripts/install-lib.sh +3 -1
@@ -0,0 +1,114 @@
1
+ # Re-plan & repair modes
2
+
3
+ `/rite-plan` runs in one of these modes. Pick from `$ARGUMENTS` or infer from state.
4
+
5
+ Authority: `.dsh/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
6
+
7
+ <!-- BEGIN RESLICE ROUTE-TO-ACTION -->
8
+ - `FOLD` → reconcile `architecture.md`, `plan.md`, `tasks.md`, and `traceability.md` atomically; invalidate Vet/readiness; Vet.
9
+ - `GUARD_AND_REPAIR` → no planning writes; Spec Drift Guard → Clarify → Plan repair → Vet.
10
+ - `BLOCKED_INPUT` → no planning writes; exact diagnostic; recover input; reclassify.
11
+ <!-- END RESLICE ROUTE-TO-ACTION -->
12
+
13
+ ## decompose
14
+
15
+ First (or fresh) breakdown into vertical slices. Use `task-breakdown.md` +
16
+ `slicing.md`. Output: a populated `tasks.md` and an ordered `plan.md` graph.
17
+
18
+ ## reslice
19
+
20
+ A slice proved too large (couldn't build+prove in one cycle, or its goal has multiple
21
+ "and"s). Split into thinner end-to-end slices, preserving acceptance coverage: split
22
+ **by the sizing rule, not to a target count**. Update `tasks.md` under the canonical
23
+ [ID contract](../../devrites-lib/reference/workspace-artifact-schema.md#id-contract):
24
+ preserve unaffected IDs; never renumber or fill retired gaps. New meanings get the
25
+ next unused IDs; record relationships in `decisions.md` or `drift.md` before updating
26
+ downstream dependency edges and traceability.
27
+
28
+ ## repair (after Spec Drift Guard)
29
+
30
+ A drift event stopped the build. Steps:
31
+
32
+ 1. Read the `drift.md` entries and their classifications. Fold EVERY open entry
33
+ and accepted finding for the affected artifacts in ONE pass, never serially.
34
+ 2. If the user answered a drift question, encode that decision in `decisions.md`.
35
+ Fold each `decisions.md` carry-forward constraint into `Prior-slice learnings`
36
+ of the remaining slices it affects.
37
+ 3. Update `spec.md` (only the affected sections) and `plan.md`/`tasks.md` to match
38
+ reality. Fix acceptance wording only when its meaning stays the same. An
39
+ acceptance meaning change needs a user directive or a recorded user decision
40
+ ([provenance](../../devrites-lib/reference/standards/acceptance-preserving-reslice.md));
41
+ without one, ask with a recommended option. **Failing case:** root rewords an
42
+ AC so a bound may be exceeded, records its own decision, and sends it to Vet.
43
+ **Write the pointer, not the history.** Name the findings a fold closes by ID, one line
44
+ of meaning each; never restate prior folds, prior DEC lists, or closed-round narrative in
45
+ `architecture.md`/`plan.md`/`tasks.md`/`traceability.md`. That text belongs in
46
+ `decisions.md`, or in `history/` via [Budget relocation](#revise) once closed, so each
47
+ fold appends a bounded line. A banner that grows with the round count is the defect.
48
+ 4. Mark each `drift.md` entry **resolved** with the resolution + date.
49
+ 5. **Self-check and self-attack the repaired candidate on the delta before
50
+ handoff** — re-verify every invariant the correction touched (acyclic
51
+ dependency graph, bidirectional traceability, Shared contract proof vs
52
+ boundary set, sizing, no correction-created regression), then probe the
53
+ delta against the reviewers' attack classes (race/observation windows,
54
+ alias escapes, ordering gaps, capability gaps, unbounded blocking,
55
+ happy-path-only coverage); fold a fix or a named bounded residual into
56
+ the same pass. Record both in the Plan
57
+ checkpoint; Vet's recheck verifies it rather than rediscovering the defect a
58
+ loop later.
59
+ 6. Resume at the corrected slice.
60
+ Never quietly delete a requirement; use the marked action before contract edits.
61
+
62
+ ## reorder
63
+
64
+ Dependency order is wrong or suboptimal. Recompute the graph (`dependency-graph.md`),
65
+ re-sort risk-first within tiers, update `plan.md`'s implementation order.
66
+
67
+ ## split (backend/frontend contract)
68
+
69
+ A slice couples two sides too tightly. Define the contract first (shape, status codes,
70
+ errors: `devrites-api-interface`), then split into a backend slice (can land with a
71
+ stub consumer) and a frontend slice (can land against a mock/real contract).
72
+
73
+ ## unblock
74
+
75
+ An exhausted fingerprint blocks diagnosis, not symptom. Route around/reslice; escalate
76
+ only for scope change. If proof removed that cause but symptom remains, keep the dead
77
+ end and plan a new diagnosis/proof fingerprint. Never clear/reuse old one.
78
+
79
+ ## course-correct
80
+
81
+ Mid-build user pivot. Apply the marked action, choose rollback or forward-fix, and
82
+ update permitted artifacts atomically (`MVP cut` is the named retreat). Invalidate
83
+ Vet/readiness when contract or topology changes.
84
+
85
+ **Feature-ceiling cut.** When unbuilt slices exceed the
86
+ [feature ceiling](slicing.md#feature-ceiling-split-an-epic-never-override-the-budget),
87
+ `MVP cut` keeps the built slices plus the thinnest shippable unbuilt subset here; the
88
+ remaining slices, their REQ/AC IDs and proof rows move verbatim into a named
89
+ continuation list (spec `Non-goals` → future `/rite-spec <slug>-2`, `-3`, …) through
90
+ the Spec Drift Guard. IDs never renumber; each ID is owned by exactly one workspace.
91
+ Record the sequence once in `decisions.md`.
92
+
93
+ ## revise
94
+
95
+ Artifact-only reconciliation of `spec.md`, `architecture.md`, `plan.md`, `tasks.md`,
96
+ or `traceability.md` — never source. Propose/confirm the file set first. A neutral workspace
97
+ edit is authorized by explicit `/rite-upgrade` with a `repairable` assessment, or, for budget
98
+ relocation only, by the phase owner when `orient` reports `over: true`.
99
+
100
+ Unchanged acceptance/behavior with non-equivalent `proposed_coverage` is a
101
+ contradictory input: the canonical classifier blocks it — there is no fourth
102
+ route (see [`acceptance-preserving-reslice.md`](../../devrites-lib/reference/standards/acceptance-preserving-reslice.md)).
103
+
104
+ **Budget relocation** (authorized as above): move checkpoint narrative, historical fold text and
105
+ closed-round accounts verbatim from `state.md`/`tasks.md`/`plan.md`/`architecture.md`/
106
+ `eng-review.md` into `history/<file>-<YYYYMMDD>.md`, packets/accounts from the root
107
+ into `packets/`, leaving a one-line pointer. Cursor, live slices, open findings, IDs,
108
+ answers, decisions and bindings stay unchanged; nothing is deleted or reworded.
109
+ Re-emit the readiness binding when a readiness input moved.
110
+
111
+ ## Always
112
+
113
+ Update `state.md` (phase, next step) and append a dated line to `decisions.md`
114
+ explaining *why* the plan changed. Preserve mapped-action decisions.
@@ -0,0 +1,187 @@
1
+ # Slicing
2
+
3
+ DevRites builds in **thin vertical slices**: each slice cuts through every layer it
4
+ needs (data → logic → API → UI) and leaves the system in a working, testable state.
5
+
6
+ ## Vertical, not horizontal
7
+ Horizontal layering delays integration feedback. Vertical slicing delivers a usable path:
8
+ ```
9
+ SLICE-001: Create a task (DB + API + minimal UI) -> user can create + test passes
10
+ SLICE-002: List tasks (query + API + UI) -> user can see them
11
+ SLICE-003: Edit a task (update + API + UI) -> user can modify
12
+ SLICE-004: Delete a task (delete + API + UI + confirm) -> full CRUD
13
+ ```
14
+
15
+ ## Sizing a slice
16
+ A slice is the right size when it:
17
+ - delivers one observable capability end-to-end;
18
+ - can finish its writer, independent review, and slice proof within `/rite-build`;
19
+ - has acceptance criteria you can verify with evidence;
20
+ - can be rolled back on its own;
21
+ - is worth its own review gate: a reviewer could meaningfully reject *this* slice while
22
+ approving its neighbor. If two slices can only pass or fail together, they're one slice.
23
+
24
+ Size by independent invariants, failure modes, and proof seams, not file count or
25
+ the word "and". Split independently acceptable/provable responsibilities; several
26
+ files may serve one inseparable capability. Full feature `/rite-prove` follows all
27
+ slices; slice proof never replaces final integration or acceptance proof.
28
+
29
+ For `Complexity` and irreducible boundaries, use the canonical
30
+ [`tasks.md` slice grammar](../../devrites-lib/reference/workspace-artifact-schema.md#canonical-slice-grammar).
31
+ Keep the smallest cut that stands alone end-to-end; do not add slices or gates for
32
+ fragments that can only pass together. No slice size guarantees first-pass correctness.
33
+
34
+ ## How many slices?: derive, don't dictate
35
+ The slice **count is an output, not an input.** It falls out of the work: one slice per
36
+ independently-shippable vertical increment that satisfies one (or a tight group of)
37
+ acceptance criteria and passes the sizing test above. A 2-criterion feature is 1-2 slices;
38
+ a 12-criterion feature is however many thin end-to-end cuts those 12 need.
39
+
40
+ - **Never slice to a target number.** Don't pad a small feature into "5 slices" or
41
+ compress a large one into "3" because a figure was named.
42
+ - **A user-supplied count is a hint at most.** If the user says "do it in 4", slice the
43
+ work logically first; if your honest decomposition differs, present the logical count
44
+ and *why*, then let them redirect: don't silently force their number.
45
+ - **Re-size by the rule, not the tally** (`/rite-plan reslice`): split a slice because it
46
+ failed the sizing test, not to hit a count.
47
+
48
+ `.devrites/AFK` `max_slices` limits unattended execution, never plan decomposition.
49
+
50
+ ## Feature ceiling: split an epic, never override the budget
51
+
52
+ The derived count is also a size signal. A decomposition that cannot fit the
53
+ `tasks.md` / `plan.md` / `traceability.md` budgets in
54
+ [`workspace-artifact-schema.md`](../../devrites-lib/reference/workspace-artifact-schema.md)
55
+ (about ten canonical slices) is an epic: every Vet/Doubt/Build review re-reads the
56
+ whole surface, each round finds new material, and the loop never converges.
57
+ `Budget override` never covers slice or acceptance-criteria count.
58
+
59
+ - Keep the thinnest independently shippable subset here; the rest becomes spec
60
+ `Non-goals` (via the Spec Drift Guard), each continuation a named future `/rite-spec`
61
+ workspace. Record the sequence once in `decisions.md`.
62
+ - Acceptance-preserving: every REQ/AC keeps its ID, owned by exactly one workspace.
63
+ - Earliest owner wins: Temper's one-sentence test → Define/Plan decomposition → Vet §0
64
+ scope finding → `/rite-plan course-correct` (`MVP cut`). Mid-build, unbuilt slices
65
+ beyond the ceiling move; built slices stay.
66
+ - The ceiling bounds one **workspace**, never the product: the sequence delivers every
67
+ slice, in order, each with its own Vet/Build/Review loop. A human may still accept a
68
+ single larger workspace by recording the decision in `decisions.md` and a bounded
69
+ `Budget override: <=N lines; <reason>` (N at most 2x the budget; past that only
70
+ relocation to history/ or a split) in the affected artifacts; the extra review rounds on the whole
71
+ surface are then the accepted, named cost. The deterministic gate
72
+ (`check readiness`/`check seal`) blocks only a material overshoot without such an
73
+ override, so the choice stays explicit rather than accidental.
74
+
75
+ ### Continuation workspaces
76
+
77
+ Granularity is a real cost choice, not a formality: a workspace costs ~8–12 fixed
78
+ dispatches (drafter, plan reviewer, proof runner, spec/code reviewers, seal roster;
79
+ Temper is skippable when the parent's `strategy.md` already covers the scope) plus
80
+ ~3–5 per slice. The split does not remove per-slice cost; it bounds each round's
81
+ context, stops the non-convergent whole-surface loop, isolates a plan defect's blast
82
+ radius to its own workspace, and lets independent continuations run in parallel.
83
+
84
+ Make each continuation cheap and drift-free:
85
+
86
+ - `brief.md` names the parent slug and the sequence position; `decisions.md` holds the
87
+ sequence once (in the parent).
88
+ - The child's `state.md` seeds the durable cursor at creation — `sequence_parent` =
89
+ parent slug, `sequence_position` = parent position + 1,
90
+ `sequence_workspaces_remaining` = parent remaining − 1, and `sequence_role:
91
+ release` only when the recorded entry is the sequence's release milestone.
92
+ Values derive from the parent's `state.md` and its `decisions.md` record,
93
+ exactly once; resume re-derives the same values rather than charging again.
94
+ A workspace that is not a recorded continuation leaves all four rows absent.
95
+ This is what `state merge-manifest` walks and what the release-union gate reads,
96
+ so a manually opened continuation needs the same seeding as an armed run.
97
+ - Read the parent's `architecture.md`, `plan.md`, `decisions.md` (or its archived copy)
98
+ as **design input** — never re-derive settled architecture, dependency choices, or
99
+ interfaces. Proof is always fresh for the new candidate; parent evidence is cited as
100
+ input, never as proof for this workspace.
101
+ - Shared interfaces, data shapes, and contracts are pinned **once**, in the workspace
102
+ that introduces them, and referenced afterwards. A continuation that must change a
103
+ pinned contract does so through its own `plan.md` shared-contract proof and an ADR
104
+ that names the superseded owner — never by silently re-deciding it.
105
+ - A request that names a recorded continuation is a new workspace, not
106
+ `/rite-plan revise` on the parent.
107
+ - Phases chain automatically only **inside** one workspace (`/rite-autocomplete`
108
+ drives spec → clarify → temper → define → vet → build × slices → prove → polish →
109
+ review → seal; plain HITL chains plan↔vet inline and stops at each other boundary).
110
+ HITL: next continuation is a new invocation. Autocomplete chains it
111
+ (Deferred-ship) unless `continue_sequence: false`.
112
+
113
+ ### Release milestone (full-picture gate)
114
+
115
+ Milestone gates are feature-scoped: `prove` proves *that* workspace's acceptance,
116
+ `review`/`seal` judge *that* candidate. A product release therefore needs one more
117
+ workspace — the **release milestone** — planned last, whose subject is the assembled
118
+ product:
119
+
120
+ - Its ACs are product-level: cross-milestone integration, end-to-end journeys,
121
+ performance/release budgets, docs/rollout. Milestone ACs stay owned by their
122
+ milestones and are **referenced** here, never re-owned.
123
+ - Its candidate manifest lists the union of shipped surfaces, so one `prove` → `review`
124
+ → `seal` binds the whole product, and one `ship` commits/pushes/tags the release.
125
+ Its `state.md` cursor carries `sequence_role: release` (seeded when the recorded
126
+ continuation is the sequence's release entry); `check candidate`/`check seal`
127
+ then require the manifest to cover the whole recorded chain. Build that union
128
+ deterministically: `devrites-engine state merge-manifest <release-slug>` walks
129
+ the recorded `sequence_parent` chain (live `work/` first, then `archive/`) and
130
+ folds every predecessor's manifest into the release `## Candidate manifest`;
131
+ on a path collision the later sequence position's row wins. An explicit
132
+ ordered `<pred>...` argument exists for chains recorded before the sequence
133
+ cursor fields.
134
+ - Earlier milestones keep their own slice-level proof and their own prove/review/seal;
135
+ that is what stops a late defect from invalidating 170 slices of work. Skipping a
136
+ milestone's proof is allowed only by recording the decision — the release milestone
137
+ then carries the full acceptance burden, and that cost is the named trade-off.
138
+ - The capability ledger (`.devrites/specs/<capability>/spec.md`) accumulates the
139
+ product picture across milestones; Polish folds each milestone's deltas.
140
+ - **Deferred-ship sequence** (autocomplete default; `.devrites/AFK` `max_workspaces: N`):
141
+ milestones are sealed but not shipped, and the armed run opens the next recorded
142
+ continuation automatically; local `WIP(<slug>):` checkpoints still land with
143
+ human summaries (never a slice id),
144
+ so the tree stays clean. One release ship at the end collapses the sequence's
145
+ checkpoints into the single release commit, pushes/tags it, and may archive the
146
+ sealed predecessors. Because no milestone boundary was shipped, later work can touch
147
+ an earlier milestone's surfaces without an affected-re-proof trigger — so the release
148
+ milestone re-proves the union acceptance map, and that full re-proof is this mode's
149
+ named cost. Trade-off against per-milestone ship: no shared-history rollback point
150
+ per increment, one Git approval at the end.
151
+ - What is full-surface here is the **review**: reviewers see the whole product diff.
152
+ Re-proof stays targeted — this milestone's product ACs, everything a later milestone
153
+ touched, and any uncertain closure. Milestone evidence is cited only under
154
+ [evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity)
155
+ with explicit unchanged-input/dependency justification and a link to the original
156
+ account; a blind re-proof of every milestone AC is a recorded decision, not a default.
157
+
158
+ ## First slice
159
+ Make slice 1 the **thinnest useful end-to-end path**. It flushes out integration and
160
+ convention surprises early, while changes are cheap.
161
+
162
+ **Risk-first exception.** When the biggest risk is a technical *unknown*: "will this library
163
+ even do X?", "can we hit the latency target?": let slice 1 (or a throwaway spike ahead of it)
164
+ prove that unknown, even if it isn't the thinnest user-facing path. Fail the risky bet first,
165
+ while pivoting is still cheap.
166
+
167
+ ## Slice independence
168
+ Order by dependency, but minimize coupling. A slice that needs three other slices first
169
+ is a smell: look for a thinner cut that stands alone. An edge exists only when this slice
170
+ reads something the other produces: write it as `SLICE-001 (via <interface>)`. If you
171
+ cannot name what crosses, drop the edge; a shallow, wide graph runs in parallel.
172
+
173
+ Slices sharing a file never build side by side: put a hub file's shared edit
174
+ (registry, command table, test harness) in one seam slice the others depend on.
175
+ `check task-graph` prints the `schedule:`, `ADVISORY hub:` and `ADVISORY chain:` lines.
176
+ A `chain` line means only one slice was ever ready, so the DAG rather than the cap
177
+ serializes: cut a slice that stands alone, or record `Serial rationale: <why>`.
178
+ `check task-graph <slug> --strict` refuses a plan whose shared path carries `ADVISORY hub:`
179
+ writers, so a contended plan must split disjointly instead of widening the cap.
180
+ Never merge slices or drop acceptance to widen it.
181
+
182
+ ## Deferred slice
183
+ A slice with `Satisfies: none` is an optional follow-up: plan-invented hardening or
184
+ owner-moved scope kept with its preserved source and contracts. It carries no acceptance
185
+ (every AC still maps to a required slice), is never dispatched (`check slice` refuses
186
+ it), and never counts toward "all slices built", Prove, or Seal. The owner elects it
187
+ later through a plan change that gives it an AC.
@@ -0,0 +1,50 @@
1
+ # Task breakdown
2
+
3
+ How to turn a spec into ordered, vertical slices in `tasks.md`.
4
+
5
+ ## Each slice is one task
6
+
7
+ Use the complete canonical grammar in
8
+ [`workspace-artifact-schema.md`](../../devrites-lib/reference/workspace-artifact-schema.md#canonical-slice-grammar).
9
+ This reference owns decomposition; the shared schema owns field names and meanings.
10
+
11
+ ## Process
12
+ 1. List the capabilities the spec promises.
13
+ 2. Map each to a vertical slice (thinnest end-to-end cut).
14
+ 3. Order by dependency; risk-first within a tier (do the scary slice early while it's
15
+ cheap to change).
16
+ 4. Mark which slices touch UI (→ frontend craft + browser proof), map each to the design
17
+ brief states, and give each a binary visual acceptance target. Mark which slices cross
18
+ a module/service boundary (→ `devrites-api-interface`, `devrites-doubt`). For a changed
19
+ provider/consumer boundary, map the plan's `Shared contract proof` artifact before its
20
+ provider- and consumer-side asserting tests; both tests consume that same artifact and
21
+ their slice dependencies preserve the order. Do not duplicate the contract in each slice.
22
+ For each applicable topology/data/integration row, assign its owner, failure/recovery
23
+ case, and proof to a slice; preserve deployment/resource ordering from the plan.
24
+ 5. Write or update `traceability.md` so every `AC-###` maps to ≥1 `SLICE-###`, a
25
+ planned proof, evidence status, and likely touched files.
26
+ 6. Sanity check: every acceptance criterion in `spec.md` maps to ≥1 slice; no slice has
27
+ an unowned criterion.
28
+ 7. Resolve every foreseeable human-owned checkpoint now. Keep a build-time checkpoint only
29
+ when it needs evidence unavailable before code or mandatory action-time approval, and say why.
30
+ 8. Make every `Tests/proof` entry executable: exact command, working directory, prerequisites,
31
+ expected signal, and mutable inputs whose provenance evidence must bind. Source the command
32
+ from `devrites-engine detect commands` output where a slot resolves; an `unresolved` slot
33
+ means the plan names the concrete command explicitly, never an invented one.
34
+
35
+ ## Keep it honest
36
+ - **Interfaces prevent cross-slice drift.** A slice-wright sees only its own contract; the
37
+ `Interfaces` line is how it learns the names and types neighboring slices use. A function
38
+ called `clearLayers()` in slice 3 and `clearFullLayers()` in slice 7 is a planning bug:
39
+ name shared symbols once, here.
40
+ - Don't pre-write code in the task: describe the outcome, not the implementation.
41
+ - **Read the fields, not the title.** A slice fails Vet (`kind: contract`, Important, field
42
+ quoted) when its `Goal` or `Done condition` names an activity instead of an observable end
43
+ state ("implement backend", "add tests", "handle errors", "wire up UI"); when a no-op or
44
+ wrong diff could meet the `Done condition` ("tests pass", "works correctly"); or when
45
+ `Tests/proof` names no specific test or assertion ("run the suite"). **Failing case:**
46
+ `Goal: Implement export backend · Done condition: tests pass · Tests/proof: go test ./...`.
47
+ - Don't bundle "while we're here" work into a slice. That's scope creep; log it as a
48
+ follow-up instead.
49
+ - Don't slice to a target number: the count comes from the capabilities + the sizing
50
+ rule (`slicing.md`), not a figure anyone named.
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: rite-polish
3
+ description: Polish the active feature's code and any touched UI before review. Use for finish or normalization requests; not for repository-wide refactors.
4
+ argument-hint: "[target | bolder | quieter | distill | harden | normalize-only]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/candidate-integrity.md","rite-polish/reference/code.md","rite-polish/reference/anti-patterns.md","rite-polish/reference/anti-ai-slop.md","rite-polish/reference/harden-checklist.md","rite-polish/reference/ledger.md","rite-build/reference/checkpoint.md"],"triggers":{"adr":["rite-polish/reference/adr-promotion.md"],"agents":["devrites-lib/reference/standards/agents.md"],"backend":["rite-polish/reference/backend-polish.md"],"coding":["devrites-lib/reference/standards/coding-style.md","devrites-lib/reference/standards/duplicate-code.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"ui":["rite-polish/reference/ui.md","rite-polish/reference/design-memory.md","rite-polish/reference/design-system-discovery.md","rite-polish/reference/browser-polish-evidence.md","devrites-lib/reference/standards/browser-proof-checklist.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","design-brief.md","browser-evidence.md","polish-report.md"],"workspaceByRole":{"slice-wright":["spec.md","architecture.md","plan.md","tasks.md","test-plan.md","state.md","decisions.md","design-brief.md"]},"rootOnly":["rite-build/reference/checkpoint.md"]} -->
9
+ > Read-set manifest: `devrites-engine context --skills-root .dsh/skills <slug> --phase polish` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
10
+
11
+
12
+ # /rite-polish: finish before review
13
+
14
+ Polish code for every feature. When the feature touches UI, normalize and polish the
15
+ UI as well. Complete this self-review before `/rite-review`. The code and UI phases
16
+ live in [`reference/code.md`](reference/code.md)
17
+ ([`anti-ai-slop.md`](reference/anti-ai-slop.md),
18
+ [`backend-polish.md`](reference/backend-polish.md))
19
+ and [`reference/ui.md`](reference/ui.md)
20
+ ([`browser-polish-evidence.md`](reference/browser-polish-evidence.md),
21
+ [`design-system-discovery.md`](reference/design-system-discovery.md),
22
+ [`harden-checklist.md`](reference/harden-checklist.md));
23
+ read only the phase in scope.
24
+
25
+ ## Operating rules
26
+
27
+ - **Functionality complete first.** Polish runs after `/rite-prove` (full
28
+ feature proven).
29
+ - Follow the shared
30
+ [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md).
31
+ Polish owns every candidate-affecting correction and durable rollup before Review.
32
+ - Feature scope only.
33
+ - For UI, **normalize before polishing**. Do not add decoration on top of drift.
34
+ - **Bounded polish passes.** Verification runs in bounded passes, not a loop: after the
35
+ Phase 4 assessment, at most one more correction round for **new** findings, then stop —
36
+ residual subjective preference is recorded in `polish-report.md`, not re-polished.
37
+ **Failing case:** the same surface reopened a third time with no new failing evidence.
38
+ - **Root selects; wright edits.** The controlling chat assesses and reconciles, but every
39
+ accepted source/test correction is dispatched to the sole writer,
40
+ `devrites-slice-wright`, through
41
+ [`agents.md`](../devrites-lib/reference/standards/agents.md). Never edit source inline or
42
+ run two correction writers concurrently.
43
+
44
+ ## Polish axes (C3 — completeness vs craft)
45
+
46
+ Score **separately**; conflating them hides gaps:
47
+
48
+ | Axis | Question | Failing case |
49
+ | --- | --- | --- |
50
+ | **ux_coverage** | Did we compare every stated alternative/state? | Omitted empty/error state treated as agreement |
51
+ | **completeness** | Are required states, copy, and flows present? | Hero-only layout with no loading/error |
52
+ | **craft / anti-slop** | Does the UI avoid generic template patterns? | Inter + purple gradient hero with no product-specific hierarchy |
53
+ | **distinction** | Is there one intentional signature detail? | Polished but indistinguishable from a template |
54
+
55
+ Incomplete comparison is **not** agreement. Record axis deltas in `polish-report.md`.
56
+
57
+ ## Orchestration
58
+
59
+ 0. **Read** `.dsh/skills/devrites-lib/reference/standards/core.md` first (the always-on operating rules). The
60
+ per-phase rule files ([`coding-style.md`](../devrites-lib/reference/standards/coding-style.md), [`error-handling.md`](../devrites-lib/reference/standards/error-handling.md), …) load on demand
61
+ from `reference/code.md` / `reference/ui.md` when their phase runs; for UI scope also read
62
+ `.dsh/skills/devrites-lib/reference/standards/browser-proof-checklist.md`.
63
+ Then read the explicit or active workspace's `state.md` directly.
64
+ 1. **Read** `state.md`, `touched-files.md`, the current candidate digest, and the
65
+ `git diff` for the active workspace (or `$ARGUMENTS` if a target was given).
66
+ 2. **Detect UI scope:** UI is touched when the diff changes rendered output:
67
+ markup, template, style, design token, client component, or a visible string
68
+ (including an API error message shown in the UI). These paths are leads to
69
+ inspect, not the predicate: `.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`,
70
+ `.scss`, `.sass`, `.less`, `.styl`, component dirs (`components/`,
71
+ `pages/`, `routes/`, `app/`, `views/`, `screens/`), Storybook stories,
72
+ or design-token files; when in doubt whether output changes, treat it as UI
73
+ scope. A diff with no rendered-output change records
74
+ `UI scope: none (no rendered output)` and skips Phases 3–4; non-visual client
75
+ code still gets frontend engineering review (`devrites-code-reviewer` frontend lane).
76
+ **Failing case:** an `app/services/billing.rb` diff opens Phase 4 and demands
77
+ captures.
78
+ 3. **Always** read [`reference/code.md`](reference/code.md) and assess **Phase 1
79
+ (code polish)**; if backend was touched, assess **Phase 2 (backend polish)** from
80
+ the same file. Assess step 4's UI phases on the same frozen digest while the
81
+ code assessment runs, reconcile both, then send every accepted code and UI
82
+ correction as one bounded wright contract (normalize corrections before polish
83
+ ones): build its read-set with
84
+ `devrites-engine context --skills-root .dsh/skills <slug> --phase polish --role slice-wright`, run the
85
+ single-agent wave through `devrites-engine dispatch <slug> open|start|seal|return`
86
+ (auto-records dispatch/return metrics; `open` passes `--claim-session <id>` and one
87
+ `--claim <path>` per contract path, so the root-edit tripwire attributes its edits), and gate returned paths
88
+ with `devrites-engine check diff-scope <slug> --allow <contract-paths>` before
89
+ proof.
90
+ 4. **If UI scope detected** read [`reference/ui.md`](reference/ui.md), and read
91
+ `design-brief.md` if present so the polish follows the direction and states established
92
+ by `devrites-ux-shape` and refined by `devrites-frontend-craft`. **Read the
93
+ `## Visual Verdict` table in `browser-evidence.md` if present:
94
+ its `FAIL` and `PARTIAL` rows are the normalize/quality-bar worklist**: identify the root
95
+ cause of each (a missing state, an off-token CTA, or an anti-slop hit) rather than
96
+ hiding it with decoration. Assess **Phase 3 (normalize)** → **Phase 4 (UI polish)**,
97
+ and fold accepted UI
98
+ corrections into step 3's single wright contract (the wright invokes the relevant craft skill). Honor argument modes:
99
+ - `bolder | quieter | distill | harden`: passed to Phase 4 as the
100
+ emphasis dial.
101
+ - `normalize-only`: assess Phase 3 and stop (no Phase 4).
102
+ 5. **Finish durable rollups before Review.** Apply the capability
103
+ [`ledger`](reference/ledger.md) when requirements changed, the optional UI
104
+ [`design memory`](reference/design-memory.md), and durable
105
+ [`ADR promotion`](reference/adr-promotion.md). Add every changed project path
106
+ to the candidate manifest and record each root-written ADR or `DESIGN.md` path the
107
+ tripwire flags (`check candidate` names it) with `devrites-engine dispatch <slug> attribute --reason "polish rollup" --path <path>`;
108
+ none of these writes waits for Ship.
109
+ 6. **Re-prove and close.** After all accepted code/UI corrections and rollups,
110
+ run `devrites-engine check candidate <slug>` and `devrites-engine check
111
+ windows <slug>` — an unwaived deferral marker surfaces here, not at Seal.
112
+ Any digest change requires
113
+ affected real re-proof using the approved commands, fresh proof-runner
114
+ validation, refreshed evidence/browser bindings, and an updated candidate
115
+ manifest. Record a **`Re-verification:`** line in `polish-report.md`. Close
116
+ the candidate for Review only after these checks are green. Then checkpoint
117
+ remaining candidate diffs per
118
+ [`checkpoint.md`](../rite-build/reference/checkpoint.md).
119
+ 7. **Aggregate output:** each phase appends to the single `polish-report.md`.
120
+
121
+ ## Refinement modes
122
+
123
+ Pass the requested UI direction to Phase 4. Modes do not bypass normalization or the
124
+ quality bar; they apply after the system is aligned. See `reference/ui.md`.
125
+
126
+ > **Mid-flight discipline.** When tempted to polish UI without normalize, cite
127
+ > clean lint as proof of quality, skip Phase 2 on a backend diff, or delete a
128
+ > Chesterton's Fence: see [anti-patterns](reference/anti-patterns.md).
@@ -0,0 +1,11 @@
1
+ # ADR promotion
2
+
3
+ During Polish, promote a `decisions.md` architecture/interface choice only when it is
4
+ hard to reverse, surprising without context, and a real trade-off. Otherwise leave it in
5
+ the archived workspace. If the project has no `docs/adr/`, ask before creating that
6
+ convention.
7
+
8
+ Write the next append-only `docs/adr/ADR-NNN.md` with Context, Decision, Status
9
+ `accepted`, and Consequences. Never rewrite an accepted ADR; supersede it with a linked
10
+ new ADR. Add it to the candidate manifest, run affected real re-proof, and refresh evidence
11
+ and browser bindings before Review. Ship performs no ADR promotion.