devrites 3.0.7 → 3.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 (484) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +82 -50
  3. package/SECURITY.md +31 -29
  4. package/docs/adr/0001-go-engine-as-control-plane.md +1 -1
  5. package/docs/adr/0002-dual-host-harness.md +1 -1
  6. package/docs/adr/0004-state-schema-phases-sections.md +1 -2
  7. package/docs/adr/0006-clock-seam-and-engine-ci-gates.md +3 -4
  8. package/docs/adr/0009-prebuild-decision-coverage-and-readiness.md +67 -0
  9. package/docs/adr/0010-agent-first-fresh-context-orchestration.md +71 -0
  10. package/docs/adr/0011-define-plan-transition-rights.md +28 -0
  11. package/docs/adr/0012-semantic-workspace-upgrades.md +77 -0
  12. package/docs/adr/README.md +4 -0
  13. package/docs/agents/triage-labels.md +7 -7
  14. package/docs/architecture.md +179 -141
  15. package/docs/cli.md +47 -12
  16. package/docs/command-map.md +61 -38
  17. package/docs/engine/agent-contract.md +92 -15
  18. package/docs/engine/commands.md +248 -72
  19. package/docs/engine/state-schema.md +52 -23
  20. package/docs/engine/workspace-schema.md +103 -15
  21. package/docs/extensions.md +1 -1
  22. package/docs/flow.md +86 -51
  23. package/docs/harness-compliance.md +29 -5
  24. package/docs/orchestration.md +107 -79
  25. package/docs/quick-reference.md +11 -3
  26. package/docs/release.md +4 -3
  27. package/docs/skills.md +67 -38
  28. package/docs/usage.md +84 -39
  29. package/engine/cmd/releasepack/main.go +219 -0
  30. package/engine/cmd/releasepack/main_test.go +170 -0
  31. package/engine/commands.go +170 -23
  32. package/engine/git_guard.go +187 -0
  33. package/engine/git_guard_test.go +283 -0
  34. package/engine/hookpolicy.go +53 -55
  35. package/engine/hookpolicy_test.go +91 -1
  36. package/engine/hooks.go +296 -75
  37. package/engine/hooks_events_test.go +276 -6
  38. package/engine/hooks_workspace.go +640 -159
  39. package/engine/internal/devritespaths/paths.go +65 -10
  40. package/engine/internal/devritespaths/paths_test.go +110 -0
  41. package/engine/internal/doctor/doctor.go +153 -23
  42. package/engine/internal/doctor/doctor_test.go +74 -0
  43. package/engine/internal/forge/forge.go +940 -0
  44. package/engine/internal/forge/forge_test.go +576 -0
  45. package/engine/internal/forge/git.go +245 -0
  46. package/engine/internal/forge/liveness_unix.go +48 -0
  47. package/engine/internal/forge/liveness_windows.go +67 -0
  48. package/engine/internal/forge/manifest.go +402 -0
  49. package/engine/internal/gate/gate.go +90 -71
  50. package/engine/internal/gate/gate_test.go +71 -2
  51. package/engine/internal/harness/compliance.go +18 -24
  52. package/engine/internal/harness/harness.go +37 -44
  53. package/engine/internal/harness/harness_test.go +21 -5
  54. package/engine/internal/install/install.go +486 -38
  55. package/engine/internal/install/install_test.go +383 -10
  56. package/engine/internal/iohooks/iohooks.go +350 -59
  57. package/engine/internal/iohooks/iohooks_test.go +421 -1
  58. package/engine/internal/lib/buildreadiness.go +43 -18
  59. package/engine/internal/lib/clarifyreturn.go +91 -0
  60. package/engine/internal/lib/clarifyreturn_test.go +123 -0
  61. package/engine/internal/lib/context.go +54 -15
  62. package/engine/internal/lib/cursor_compat_test.go +8 -0
  63. package/engine/internal/lib/extensions.go +2 -3
  64. package/engine/internal/lib/gitauthority.go +601 -0
  65. package/engine/internal/lib/gitauthority_test.go +346 -0
  66. package/engine/internal/lib/jsonout.go +25 -11
  67. package/engine/internal/lib/jsonout_test.go +16 -0
  68. package/engine/internal/lib/lanes.go +14 -8
  69. package/engine/internal/lib/observability_test.go +358 -0
  70. package/engine/internal/lib/packageexistence.go +151 -35
  71. package/engine/internal/lib/packageexistence_test.go +163 -0
  72. package/engine/internal/lib/progress.go +11 -9
  73. package/engine/internal/lib/provenance.go +462 -0
  74. package/engine/internal/lib/provenance_test.go +154 -0
  75. package/engine/internal/lib/readiness_contract.json +118 -0
  76. package/engine/internal/lib/readinessartifact.go +533 -0
  77. package/engine/internal/lib/readinessartifact_test.go +422 -0
  78. package/engine/internal/lib/reconcile.go +712 -88
  79. package/engine/internal/lib/reconcile_test.go +335 -16
  80. package/engine/internal/lib/recoveryattempts.go +298 -0
  81. package/engine/internal/lib/recoveryattempts_test.go +215 -0
  82. package/engine/internal/lib/resolve.go +23 -19
  83. package/engine/internal/lib/runbook_context_test.go +20 -0
  84. package/engine/internal/lib/session.go +701 -9
  85. package/engine/internal/lib/session_test.go +80 -13
  86. package/engine/internal/lib/testintegrity.go +33 -37
  87. package/engine/internal/lib/testintegrity_test.go +63 -1
  88. package/engine/internal/migrate/migrate.go +81 -1
  89. package/engine/internal/migrate/migrate_test.go +22 -1
  90. package/engine/internal/reason/reason.go +180 -0
  91. package/engine/internal/reason/reason_test.go +35 -0
  92. package/engine/internal/rootfacts/facts.go +466 -0
  93. package/engine/internal/rootfacts/facts_test.go +306 -0
  94. package/engine/internal/safepath/safepath.go +55 -0
  95. package/engine/internal/safepath/safepath_test.go +69 -0
  96. package/engine/internal/safepath/safepath_windows_test.go +26 -0
  97. package/engine/internal/state/clarify_transition.go +165 -0
  98. package/engine/internal/state/clarify_transition_test.go +130 -0
  99. package/engine/internal/state/cmd/workflowmanifest/main.go +12 -8
  100. package/engine/internal/state/cursor.go +58 -0
  101. package/engine/internal/state/cursor_test.go +42 -1
  102. package/engine/internal/state/feature.go +35 -48
  103. package/engine/internal/state/schema.go +90 -37
  104. package/engine/internal/state/snapshot.go +18 -2
  105. package/engine/internal/state/state_test.go +187 -7
  106. package/engine/internal/state/status.go +48 -11
  107. package/engine/internal/state/workflow_manifest.json +231 -50
  108. package/engine/internal/toolpolicy/classifier.go +533 -0
  109. package/engine/internal/toolpolicy/classifier_test.go +424 -0
  110. package/engine/internal/toolpolicy/git.go +616 -0
  111. package/engine/internal/toolpolicy/scanner.go +382 -0
  112. package/engine/main.go +160 -77
  113. package/engine/observability_cli_test.go +52 -0
  114. package/engine/root_routing_test.go +277 -0
  115. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
  116. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
  117. package/engine/testdata/golden/TestParityBuildReadiness/arg=legacycontract.golden +1 -0
  118. package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +1 -0
  119. package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +1 -0
  120. package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +1 -0
  121. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
  122. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
  123. package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +1 -0
  124. package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +1 -1
  125. package/engine/testdata/golden/TestParityProgress/arg=done.golden +1 -1
  126. package/engine/testdata/golden/TestParityProgress/arg=mid.golden +1 -1
  127. package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +1 -1
  128. package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +1 -1
  129. package/engine/testdata/golden/TestParityProgress/arg=plan.golden +1 -1
  130. package/engine/testdata/golden/TestParityProgress/arg=seal.golden +1 -1
  131. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
  132. package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
  133. package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +1 -0
  134. package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +2 -0
  135. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
  136. package/engine/tests/adr_0011_define_plan_test.go +30 -0
  137. package/engine/tests/budget_test.go +19 -8
  138. package/engine/tests/concurrency_cli_test.go +7 -1
  139. package/engine/tests/doctor_cli_test.go +148 -2
  140. package/engine/tests/forge_cli_test.go +463 -0
  141. package/engine/tests/gate_test.go +63 -8
  142. package/engine/tests/hook_test.go +260 -8
  143. package/engine/tests/hooks_io_test.go +94 -3
  144. package/engine/tests/json_contract_test.go +127 -2
  145. package/engine/tests/migrate_cli_test.go +2 -2
  146. package/engine/tests/parity_buildreadiness_test.go +167 -10
  147. package/engine/tests/parity_learnings_test.go +16 -17
  148. package/engine/tests/parity_reconcile_test.go +20 -17
  149. package/engine/tests/parity_resolve_test.go +12 -11
  150. package/engine/tests/parity_test.go +21 -17
  151. package/pack/.claude/agents/devrites-code-reviewer.md +62 -48
  152. package/pack/.claude/agents/devrites-devex-reviewer.md +69 -53
  153. package/pack/.claude/agents/devrites-doubt-reviewer.md +29 -22
  154. package/pack/.claude/agents/devrites-evidence-scout.md +69 -0
  155. package/pack/.claude/agents/devrites-forge-judge.md +74 -61
  156. package/pack/.claude/agents/devrites-frontend-reviewer.md +48 -39
  157. package/pack/.claude/agents/devrites-performance-reviewer.md +49 -40
  158. package/pack/.claude/agents/devrites-plan-drafter.md +73 -0
  159. package/pack/.claude/agents/devrites-plan-reviewer.md +80 -47
  160. package/pack/.claude/agents/devrites-proof-runner.md +74 -0
  161. package/pack/.claude/agents/devrites-retrospector.md +48 -45
  162. package/pack/.claude/agents/devrites-security-auditor.md +46 -36
  163. package/pack/.claude/agents/devrites-simplifier-reviewer.md +50 -46
  164. package/pack/.claude/agents/devrites-slice-wright.md +153 -165
  165. package/pack/.claude/agents/devrites-spec-reviewer.md +34 -32
  166. package/pack/.claude/agents/devrites-strategy-reviewer.md +63 -34
  167. package/pack/.claude/agents/devrites-test-analyst.md +40 -30
  168. package/pack/.claude/agents/devrites-upgrade-planner.md +100 -0
  169. package/pack/.claude/settings.json +2 -1
  170. package/pack/.claude/skills/devrites-audit/SKILL.md +40 -61
  171. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +24 -13
  172. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
  173. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
  174. package/pack/.claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
  175. package/pack/.claude/skills/devrites-doubt/SKILL.md +25 -17
  176. package/pack/.claude/skills/devrites-interview/SKILL.md +53 -52
  177. package/pack/.claude/skills/devrites-lib/SKILL.md +12 -9
  178. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +4 -2
  179. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
  180. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +8 -1
  181. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +38 -55
  182. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
  183. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +200 -190
  184. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
  185. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
  186. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
  187. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
  188. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
  189. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -18
  190. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
  191. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
  192. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
  193. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
  194. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
  195. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +0 -9
  196. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +1 -3
  197. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +17 -7
  198. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +1 -27
  199. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
  200. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
  201. package/pack/.claude/skills/devrites-source-driven/SKILL.md +23 -22
  202. package/pack/.claude/skills/rite/SKILL.md +10 -6
  203. package/pack/.claude/skills/rite/reference/menu.md +13 -7
  204. package/pack/.claude/skills/rite-adopt/SKILL.md +33 -37
  205. package/pack/.claude/skills/rite-autocomplete/SKILL.md +33 -28
  206. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +21 -21
  207. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
  208. package/pack/.claude/skills/rite-build/SKILL.md +35 -30
  209. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +41 -39
  210. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -0
  211. package/pack/.claude/skills/rite-build/reference/forge.md +186 -156
  212. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
  213. package/pack/.claude/skills/rite-build/reference/phase-contract.md +96 -175
  214. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +10 -4
  215. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +129 -134
  216. package/pack/.claude/skills/rite-clarify/SKILL.md +90 -0
  217. package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +61 -0
  218. package/pack/.claude/skills/rite-converge/SKILL.md +35 -25
  219. package/pack/.claude/skills/rite-define/SKILL.md +58 -32
  220. package/pack/.claude/skills/rite-define/reference/gates.md +16 -15
  221. package/pack/.claude/skills/rite-define/reference/plan-template.md +18 -8
  222. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +22 -24
  223. package/pack/.claude/skills/rite-plan/SKILL.md +47 -16
  224. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -0
  225. package/pack/.claude/skills/rite-polish/SKILL.md +27 -23
  226. package/pack/.claude/skills/rite-prototype/SKILL.md +25 -26
  227. package/pack/.claude/skills/rite-prove/SKILL.md +27 -17
  228. package/pack/.claude/skills/rite-resolve/SKILL.md +12 -11
  229. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
  230. package/pack/.claude/skills/rite-review/SKILL.md +37 -28
  231. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +27 -92
  232. package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
  233. package/pack/.claude/skills/rite-ship/reference/design-memory.md +31 -36
  234. package/pack/.claude/skills/rite-spec/SKILL.md +84 -135
  235. package/pack/.claude/skills/rite-spec/reference/investigation.md +37 -33
  236. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +6 -2
  237. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +25 -24
  238. package/pack/.claude/skills/rite-spec/reference/spec-template.md +9 -2
  239. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +13 -3
  240. package/pack/.claude/skills/rite-temper/SKILL.md +62 -47
  241. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +24 -22
  242. package/pack/.claude/skills/rite-upgrade/SKILL.md +125 -0
  243. package/pack/.claude/skills/rite-vet/SKILL.md +114 -113
  244. package/pack/.claude/skills/rite-vet/reference/artifacts.md +50 -9
  245. package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -37
  246. package/pack/generated/claude/agents/devrites-code-reviewer.md +62 -48
  247. package/pack/generated/claude/agents/devrites-devex-reviewer.md +69 -53
  248. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +29 -22
  249. package/pack/generated/claude/agents/devrites-evidence-scout.md +69 -0
  250. package/pack/generated/claude/agents/devrites-forge-judge.md +74 -61
  251. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +48 -39
  252. package/pack/generated/claude/agents/devrites-performance-reviewer.md +49 -40
  253. package/pack/generated/claude/agents/devrites-plan-drafter.md +73 -0
  254. package/pack/generated/claude/agents/devrites-plan-reviewer.md +80 -47
  255. package/pack/generated/claude/agents/devrites-proof-runner.md +74 -0
  256. package/pack/generated/claude/agents/devrites-retrospector.md +48 -45
  257. package/pack/generated/claude/agents/devrites-security-auditor.md +46 -36
  258. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +50 -46
  259. package/pack/generated/claude/agents/devrites-slice-wright.md +153 -165
  260. package/pack/generated/claude/agents/devrites-spec-reviewer.md +34 -32
  261. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +63 -34
  262. package/pack/generated/claude/agents/devrites-test-analyst.md +40 -30
  263. package/pack/generated/claude/agents/devrites-upgrade-planner.md +100 -0
  264. package/pack/generated/claude/settings.json +2 -1
  265. package/pack/generated/claude/skills/devrites-audit/SKILL.md +40 -61
  266. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +24 -13
  267. package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
  268. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
  269. package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
  270. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +25 -17
  271. package/pack/generated/claude/skills/devrites-interview/SKILL.md +53 -52
  272. package/pack/generated/claude/skills/devrites-lib/SKILL.md +12 -9
  273. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +4 -2
  274. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
  275. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +8 -1
  276. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +38 -55
  277. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
  278. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +200 -190
  279. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
  280. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
  281. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
  282. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
  283. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
  284. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -18
  285. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
  286. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
  287. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
  288. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
  289. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
  290. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +0 -9
  291. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +1 -3
  292. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +17 -7
  293. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +1 -27
  294. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
  295. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
  296. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +23 -22
  297. package/pack/generated/claude/skills/rite/SKILL.md +10 -6
  298. package/pack/generated/claude/skills/rite/reference/menu.md +13 -7
  299. package/pack/generated/claude/skills/rite-adopt/SKILL.md +33 -37
  300. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +33 -28
  301. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +21 -21
  302. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
  303. package/pack/generated/claude/skills/rite-build/SKILL.md +35 -30
  304. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +41 -39
  305. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +10 -0
  306. package/pack/generated/claude/skills/rite-build/reference/forge.md +186 -156
  307. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
  308. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +96 -175
  309. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +10 -4
  310. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +129 -134
  311. package/pack/generated/claude/skills/rite-clarify/SKILL.md +90 -0
  312. package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +61 -0
  313. package/pack/generated/claude/skills/rite-converge/SKILL.md +35 -25
  314. package/pack/generated/claude/skills/rite-define/SKILL.md +58 -32
  315. package/pack/generated/claude/skills/rite-define/reference/gates.md +16 -15
  316. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +18 -8
  317. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +22 -24
  318. package/pack/generated/claude/skills/rite-plan/SKILL.md +47 -16
  319. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -0
  320. package/pack/generated/claude/skills/rite-polish/SKILL.md +27 -23
  321. package/pack/generated/claude/skills/rite-prototype/SKILL.md +25 -26
  322. package/pack/generated/claude/skills/rite-prove/SKILL.md +27 -17
  323. package/pack/generated/claude/skills/rite-resolve/SKILL.md +12 -11
  324. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
  325. package/pack/generated/claude/skills/rite-review/SKILL.md +37 -28
  326. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +27 -92
  327. package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
  328. package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +31 -36
  329. package/pack/generated/claude/skills/rite-spec/SKILL.md +84 -135
  330. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +37 -33
  331. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +6 -2
  332. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +25 -24
  333. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +9 -2
  334. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +13 -3
  335. package/pack/generated/claude/skills/rite-temper/SKILL.md +62 -47
  336. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +24 -22
  337. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +125 -0
  338. package/pack/generated/claude/skills/rite-vet/SKILL.md +114 -113
  339. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +50 -9
  340. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -37
  341. package/pack/generated/codex/AGENTS.md +5 -2
  342. package/pack/generated/codex/agents/devrites-code-reviewer.toml +69 -47
  343. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +75 -51
  344. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +35 -20
  345. package/pack/generated/codex/agents/devrites-evidence-scout.toml +75 -0
  346. package/pack/generated/codex/agents/devrites-forge-judge.toml +80 -59
  347. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +54 -37
  348. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +55 -38
  349. package/pack/generated/codex/agents/devrites-plan-drafter.toml +79 -0
  350. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +82 -47
  351. package/pack/generated/codex/agents/devrites-proof-runner.toml +80 -0
  352. package/pack/generated/codex/agents/devrites-retrospector.toml +54 -43
  353. package/pack/generated/codex/agents/devrites-security-auditor.toml +53 -35
  354. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +56 -44
  355. package/pack/generated/codex/agents/devrites-slice-wright.toml +159 -163
  356. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +40 -30
  357. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +65 -34
  358. package/pack/generated/codex/agents/devrites-test-analyst.toml +46 -28
  359. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +106 -0
  360. package/pack/generated/codex/hooks.json +4 -14
  361. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +7 -3
  362. package/pack/generated/codex/skills/devrites-audit/SKILL.md +47 -64
  363. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +7 -3
  364. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +31 -16
  365. package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
  366. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
  367. package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
  368. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +32 -20
  369. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +7 -3
  370. package/pack/generated/codex/skills/devrites-interview/SKILL.md +60 -55
  371. package/pack/generated/codex/skills/devrites-lib/SKILL.md +19 -12
  372. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +4 -2
  373. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
  374. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +8 -1
  375. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +38 -55
  376. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
  377. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +200 -190
  378. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
  379. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
  380. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +16 -52
  381. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +2 -10
  382. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
  383. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -18
  384. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +17 -57
  385. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
  386. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
  387. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -14
  388. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +9 -25
  389. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +0 -9
  390. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +1 -3
  391. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +17 -7
  392. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +1 -27
  393. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +46 -50
  394. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +40 -10
  395. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +7 -3
  396. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +7 -3
  397. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +29 -24
  398. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +7 -3
  399. package/pack/generated/codex/skills/rite/SKILL.md +21 -13
  400. package/pack/generated/codex/skills/rite/reference/menu.md +13 -7
  401. package/pack/generated/codex/skills/rite-adopt/SKILL.md +40 -40
  402. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +40 -31
  403. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +21 -21
  404. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
  405. package/pack/generated/codex/skills/rite-build/SKILL.md +42 -33
  406. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +41 -39
  407. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +10 -0
  408. package/pack/generated/codex/skills/rite-build/reference/forge.md +186 -156
  409. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +4 -3
  410. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +96 -175
  411. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +10 -4
  412. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +129 -134
  413. package/pack/generated/codex/skills/rite-clarify/SKILL.md +106 -0
  414. package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +61 -0
  415. package/pack/generated/codex/skills/rite-converge/SKILL.md +42 -28
  416. package/pack/generated/codex/skills/rite-customize/SKILL.md +7 -3
  417. package/pack/generated/codex/skills/rite-define/SKILL.md +65 -35
  418. package/pack/generated/codex/skills/rite-define/reference/gates.md +16 -15
  419. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +18 -8
  420. package/pack/generated/codex/skills/rite-doctor/SKILL.md +7 -3
  421. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +7 -3
  422. package/pack/generated/codex/skills/rite-explain/SKILL.md +7 -3
  423. package/pack/generated/codex/skills/rite-frame/SKILL.md +7 -3
  424. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +22 -24
  425. package/pack/generated/codex/skills/rite-handoff/SKILL.md +7 -3
  426. package/pack/generated/codex/skills/rite-learn/SKILL.md +7 -3
  427. package/pack/generated/codex/skills/rite-plan/SKILL.md +54 -19
  428. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +5 -1
  429. package/pack/generated/codex/skills/rite-polish/SKILL.md +34 -26
  430. package/pack/generated/codex/skills/rite-pov/SKILL.md +7 -3
  431. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +7 -3
  432. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -3
  433. package/pack/generated/codex/skills/rite-prototype/SKILL.md +32 -29
  434. package/pack/generated/codex/skills/rite-prove/SKILL.md +34 -20
  435. package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -3
  436. package/pack/generated/codex/skills/rite-resolve/SKILL.md +19 -14
  437. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +3 -0
  438. package/pack/generated/codex/skills/rite-review/SKILL.md +44 -31
  439. package/pack/generated/codex/skills/rite-seal/SKILL.md +7 -3
  440. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +27 -92
  441. package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +13 -0
  442. package/pack/generated/codex/skills/rite-ship/SKILL.md +7 -3
  443. package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +31 -36
  444. package/pack/generated/codex/skills/rite-spec/SKILL.md +91 -138
  445. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +37 -33
  446. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +6 -2
  447. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +25 -24
  448. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +9 -2
  449. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +13 -3
  450. package/pack/generated/codex/skills/rite-status/SKILL.md +7 -3
  451. package/pack/generated/codex/skills/rite-temper/SKILL.md +69 -50
  452. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +24 -22
  453. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +141 -0
  454. package/pack/generated/codex/skills/rite-upgrade/agents/openai.yaml +2 -0
  455. package/pack/generated/codex/skills/rite-vet/SKILL.md +121 -116
  456. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +50 -9
  457. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +40 -38
  458. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +7 -3
  459. package/package.json +1 -1
  460. package/scripts/build-release-tarball.sh +32 -15
  461. package/scripts/check-authority-drift.py +125 -0
  462. package/scripts/check-instruction-size-baseline.mjs +19 -11
  463. package/scripts/check-invocation-integrity.py +2 -0
  464. package/scripts/codex-generate.sh +69 -33
  465. package/scripts/grade-feature.sh +121 -40
  466. package/scripts/live-hosts/agent-result.schema.json +230 -0
  467. package/scripts/live-hosts/claude.sh +87 -0
  468. package/scripts/live-hosts/codex.sh +81 -0
  469. package/scripts/live-hosts/common.sh +113 -0
  470. package/scripts/live-hosts/fake-host.py +264 -0
  471. package/scripts/live-hosts/host-transport.py +287 -0
  472. package/scripts/release-check.sh +5 -1
  473. package/scripts/run-agent-contract-evals.py +1380 -0
  474. package/scripts/run-behavioral-evals.sh +24 -30
  475. package/scripts/run-evals.sh +1 -5
  476. package/scripts/run-live-behavioral-evals.py +1274 -144
  477. package/scripts/run-outcome-evals.sh +445 -88
  478. package/scripts/run-tests.mjs +30 -2
  479. package/scripts/skills-inventory.mjs +1 -1
  480. package/scripts/validate-workflow-security.py +39 -20
  481. package/scripts/validate-workspace-schema.py +362 -10
  482. package/scripts/validate.sh +21 -15
  483. package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +0 -1
  484. /package/engine/testdata/golden/{TestParityReconcile/check-no-claimed.golden → TestParityBuildReadiness/arg=clarifyopen.golden} +0 -0
@@ -7,11 +7,11 @@ user-invocable: true
7
7
 
8
8
  # /rite-define: plan from the spec
9
9
 
10
- Read the active feature's `spec.md` and turn it into a buildable workspace: feature
11
- architecture, approach, a dependency-ordered set of **vertical slices**, traceability, and
12
- the state cursor. The spec is the WHAT/WHY (from `/rite-spec`); this is the HOW. Splitting
13
- spec, architecture, plan, tasks, and traceability keeps each file small and phase-owned.
14
- **No code here.**
10
+ Turn the active feature's `spec.md` into a buildable workspace with architecture, an
11
+ implementation approach, dependency-ordered **vertical slices**, traceability, and a
12
+ state cursor. The spec defines what and why; this phase defines how. Keep spec,
13
+ architecture, plan, tasks, and traceability in their phase-owned files. **Do not write
14
+ code here.**
15
15
 
16
16
  ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
17
17
  Pull these via `Read` when shaping the plan:
@@ -24,14 +24,16 @@ Pull these via `Read` when shaping the plan:
24
24
  - **Requires a readied spec.** Read the active workspace first; if `.devrites/ACTIVE` is empty,
25
25
  the workspace has no `spec.md`, its readiness gate hasn't passed, or any spec-quality
26
26
  `checklists/<domain>.md` has an open CRITICAL → **STOP** and tell the user to run
27
- `/rite-spec <feature>` first. **DO NOT plan from a missing or unreadied spec.**
28
- - Prefer existing conventions; ask before adding a dependency or a second design system.
29
- - **Author section by section, not in one dump.** Write `architecture.md` / `plan.md` one section
30
- at a time and pause after each; a section resting on an open design choice or a shaky estimate can
31
- be deepened right there with a technique from
27
+ `/rite-spec <feature>` first. A missing or non-`CLEAR` `decision-coverage.md` routes to
28
+ `/rite-clarify`. **DO NOT plan from a missing, unreadied, or unclarified spec.**
29
+ - Apply `afk-hitl.md` decision ownership. Prefer conventions; source-check new dependencies or
30
+ design systems, asking only about licensing/cost/security or explicit policy.
31
+ - **Author one section at a time.** Write `architecture.md` and `plan.md` section by
32
+ section, pausing after each. For an open design choice or uncertain estimate, use a
33
+ relevant technique from
32
34
  [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) (Tournament for two viable
33
35
  designs, Delphi for the estimate) before it hardens into slices.
34
- - **Slice count is derived, never dictated.** The number of slices falls out of the work.
36
+ - **Derive the slice count from the work.**
35
37
  One per independently-shippable increment, sized by `slicing.md`, every acceptance
36
38
  criterion mapped to ≥1 slice. A user-named count is a hint at most: slice logically and,
37
39
  if your honest count differs, present it and why. Never pad or compress to hit a figure.
@@ -40,6 +42,9 @@ Pull these via `Read` when shaping the plan:
40
42
  crosses many files, don't fake vertical slices. Add a compatibility/adapter slice, migrate
41
43
  small green batches, then remove the old path. If a batch cannot stay green, use an
42
44
  integration branch plus a final verify slice.
45
+ - **Root writes; drafter proposes.** Use the file-backed fresh-context contract in
46
+ [`agents.md`](../devrites-lib/reference/standards/agents.md). The root owns architecture
47
+ decisions, human questions, approval, and every canonical artifact write.
43
48
 
44
49
  ## Workflow
45
50
  0. **Read `.claude/skills/devrites-lib/reference/standards/core.md`:** the always-on operating rules and anti-rationalizations.
@@ -53,30 +58,46 @@ Pull these via `Read` when shaping the plan:
53
58
  ```
54
59
  If there is no active workspace, no `spec.md`, `spec-skeleton` blocks, or its readiness gate hasn't passed →
55
60
  **STOP** and tell the user to run `/rite-spec <feature>` first.
61
+ If `decision-coverage.md` is absent or does not say `Decision coverage: CLEAR`,
62
+ **STOP** → `/rite-clarify`.
56
63
  1. **Read the spec:** `spec.md` (objective, requirements, acceptance, **placement**,
57
64
  design references, gaps/decisions), plus `references.md`, `decisions.md`,
58
- `assumptions.md`, **`strategy.md` if present** (the scope mode, deferred / out-of-scope
65
+ `assumptions.md`, `decision-coverage.md`, **`strategy.md` if present** (the scope mode, deferred / out-of-scope
59
66
  register, and pre-mortem risks from `/rite-temper`: cut slices to mitigate the top risks
60
67
  and respect the IN/OUT line; map coverage against the **hardened** spec), and
61
68
  **`design-brief.md` if the feature touches UI** (the UX/UI contract `/rite-spec` shaped:
62
69
  its key states, interaction model, and proof targets drive how UI slices are cut). If a blocking
63
- `[NEEDS CLARIFICATION]` remains, stop → `/rite-spec`.
64
- 2. **Decide the architecture + approach** (the HOW the spec deliberately omitted): write
70
+ `[NEEDS CLARIFICATION]` remains, stop → `/rite-clarify`.
71
+ 1a. **Draft from fresh context.** Freeze the planning inputs and dispatch
72
+ `devrites-plan-drafter` in `define` mode for one atomic candidate bundle:
73
+ `architecture.md`, `plan.md`, `tasks.md`, and `traceability.md`, including proof mapping.
74
+ Await and validate `agent-result/v1`. The drafter does not write or ask; any human-owned
75
+ choice returns to this root context.
76
+ 2. **Reconcile and decide the architecture + approach** (the HOW the spec deliberately
77
+ omitted). Validate the candidate against live seams and the following rules; the root writes
78
+ accepted content at step 6. Shape
65
79
  `architecture.md` for owning layer, boundaries, integration points, data/API/events,
66
80
  dependencies, risks, and affected areas; write only the build strategy in `plan.md`.
67
81
  Use a
68
82
  code-intelligence index if available (see
69
83
  `.claude/skills/devrites-lib/reference/standards/tooling.md`) for structure/impact; for the current API or behaviour of
70
84
  an external library/framework the architecture will rely on, consult context7 if available.
71
- Record significant options in `decisions.md` as `DEC-###` ADR entries.
72
- **Deep-modules check**, while sketching the major modules, look for opportunities
85
+ Record significant options as `DEC-###`. For high-cost/hard-to-reverse boundaries, data
86
+ models, public contracts, or dependencies, compare ≥2 viable approaches by drivers,
87
+ trade-offs, and consequences. Specify cross-boundary interfaces for independent work:
88
+ invariants, I/O, ordering/idempotency, errors, versioning, config, and relevant budgets.
89
+ **Deep-module check:** while sketching the major modules, look for opportunities
73
90
  to extract a **deep module**: a small, stable interface that hides a meaningful chunk
74
- of behavior, and is therefore independently testable. A *shallow* module (interface
75
- nearly as complex as its implementation) earns nothing; either deepen it or delete
76
- it. Where a slice will produce a deep module, confirm with the user which deep
77
- modules they want unit-tested in isolation (this informs the slice's "Tests to
78
- write/run" field).
79
- 3. **Slice into vertical tasks:** each delivers one observable capability end-to-end and
91
+ of behavior and is independently testable. A *shallow* module whose interface is
92
+ nearly as complex as its implementation adds no value; deepen it or delete
93
+ it. Put independently testable deep-module behavior in the slice's `Tests/proof`;
94
+ `/rite-vet` confirms the level.
95
+ 2a. **Foreseeable-decision sweep.** Inspect questions, assumptions, architecture, dependencies,
96
+ proof prerequisites, and proposed checkpoints. Search facts and decide reversible technical
97
+ calls. New product/acceptance/policy/irreversible-risk gaps return to `/rite-clarify`; a build
98
+ checkpoint survives only for unavailable pre-code evidence or mandatory action-time approval.
99
+ **Completion:** no known implementation choice is postponed for build to ask later.
100
+ 3. **Create vertical tasks:** each delivers one observable capability end to end and
80
101
  is verifiable on its own; the **count emerges from the work, not a target number**;
81
102
  first slice = thinnest useful end-to-end path; order by dependency (risk-first within a
82
103
  tier). For a broad mechanical refactor, use expand → migrate batches → contract instead
@@ -87,12 +108,15 @@ Pull these via `Read` when shaping the plan:
87
108
  first, see `devrites-frontend-craft/reference/fullstack.md`). **For UI slices, name which
88
109
  of `design-brief.md`'s key states + interaction the slice delivers, and give it a binary
89
110
  **Visual acceptance** target (state × viewport × input + target R-id/brief rule)**, so
90
- the design contract maps onto slices, not just acceptance criteria.
91
- 4. **Map coverage:** every `AC-###` spec acceptance criterion maps to ≥1 `SLICE-###`
111
+ the design contract maps to slices as well as acceptance criteria.
112
+ `Tests/proof` names exact command, cwd, expected signal, prerequisites, and mutable
113
+ provenance inputs; `/rite-vet` preflights them. Write the portable repository command,
114
+ never RTK/local wrappers, user-specific absolute paths, or temporary proof trees.
115
+ 4. **Map coverage and wiring:** every `AC-###` spec acceptance criterion maps to ≥1 `SLICE-###`
92
116
  (`rite-spec/reference/acceptance-criteria.md`); no orphaned criteria, no slice without a
93
117
  criterion. Lift covered/backstop `Edge Coverage` rows and resolved `Prohibitions (must-NOT)`
94
- rows into `traceability.md` and `test-plan.md`; unresolved rows go to `assumptions.md` with
95
- their gate/owner.
118
+ rows into `traceability.md` and `test-plan.md`; unresolved rows get a gate/owner. Each
119
+ cross-slice boundary names producer, consumer, invariant, integration step, and proof.
96
120
  4a. **Parallel-lane sanity check**: after drafting `tasks.md` but before asking for plan
97
121
  approval, run the advisory lane planner:
98
122
  ```bash
@@ -109,7 +133,7 @@ Pull these via `Read` when shaping the plan:
109
133
  S="$(cat .devrites/ACTIVE 2>/dev/null)"
110
134
  devrites-engine coverage "$S" > ".devrites/work/$S/traceability.md"
111
135
  ```
112
- 5. **Complexity & deviations gate:** justify anything off DevRites defaults (new dep,
136
+ 5. **Complexity and deviations gate:** justify anything outside DevRites defaults (new dep,
113
137
  extra abstraction, second design system) in the plan; if you can't justify it, simplify.
114
138
  **Principles conformance:** read `.devrites/principles.md` (if present) and confirm the
115
139
  approach honors every declared invariant. A plan that conflicts with one is not "a deviation
@@ -125,11 +149,12 @@ Pull these via `Read` when shaping the plan:
125
149
  S="$(cat .devrites/ACTIVE 2>/dev/null)"
126
150
  devrites-engine analyze "$S"
127
151
  ```
128
- 7. **Readiness gate** (bottom of plan-template): every acceptance criterion covered by a
129
- slice, dependency order acyclic + risk-first, no unjustified deviation, rollback for
130
- every destructive/migration step. **Stop and confirm** before code. Render the review-before-code
152
+ 7. **Readiness gate** (plan-template): require CLEAR coverage, complete acceptance and
153
+ cross-slice wiring/proof, risk-first acyclic order, justified deviations, rollback, and a
154
+ closed decision sweep. **Stop and confirm** before code. Render the review-before-code
131
155
  digest first: `Intent` (one sentence from the spec), `Done means` (acceptance coverage x/y),
132
- `Plan sanity` (slice count + riskiest boundary/gate), and `Build exactly this?` (yes → approve;
156
+ `Plan sanity` (slice count + riskiest boundary/gate), `Expected build interruptions`
157
+ (`none` or only justified action-time gates), and `Build exactly this?` (yes → approve;
133
158
  no → `/rite-plan revise`). When the human confirms the plan, write `Plan approved: <iso>` to
134
159
  `state.md` (see [state-workspace](../rite-spec/reference/state-workspace.md)); `/rite-build`
135
160
  checks this exists before building.
@@ -141,7 +166,8 @@ Use the canonical slice grammar in
141
166
  Every slice must satisfy that complete field set; phase-specific gate details live in
142
167
  [`reference/gates.md`](reference/gates.md).
143
168
 
144
- > **Mid-flight discipline.** When tempted to skip vertical slicing, coverage mapping, or dependency-order discipline: see [`anti-patterns`](reference/anti-patterns.md) (Common Rationalizations + Red Flags). Load it the moment you reach for the excuse.
169
+ > **Mid-flight discipline.** Do not skip vertical slicing, coverage mapping, or
170
+ > dependency ordering. See [`anti-patterns`](reference/anti-patterns.md).
145
171
 
146
172
  ## Output
147
173
 
@@ -1,12 +1,10 @@
1
1
  # Gate taxonomy: advisory · validating · blocking · escalating
2
2
 
3
- DevRites uses a four-gate model for HITL pauses, adapted from the regulated-agentic-workflow
4
- governance pattern. Picking the right gate for each `Mode: HITL` slice is the difference
5
- between a workflow that catches real risk and one that becomes a review queue.
3
+ DevRites uses four HITL gates, adapted from the regulated-agentic-workflow governance
4
+ pattern. Choose the gate for each `Mode: HITL` slice by its risk and review needs.
6
5
 
7
- > **Default failure mode:** marking every HITL slice as `blocking`. The same reviewer ends
8
- > up approving low-stakes and high-stakes items at the same priority and the gate becomes
9
- > a queue. Mix gate types per slice; most plans use 2-3 of the 4.
6
+ > **Do not mark every HITL slice as `blocking`.** That gives low-stakes and high-stakes
7
+ > items the same priority. Most plans use 2 or 3 gate types.
10
8
 
11
9
  ## The four gates
12
10
 
@@ -39,7 +37,7 @@ validating question; the feature does not seal until the entry is resolved. An o
39
37
  **Example:** "Schema migration adds a non-null column with a default. Backfill plan is
40
38
  recorded; reviewer should confirm the default is the right one for archived rows."
41
39
 
42
- **SLA:** `4h`: the work continues but the validating queue should drain within hours,
40
+ **SLA:** `4h`: the work continues, but the validating queue should clear within hours,
43
41
  not days.
44
42
 
45
43
  ### blocking
@@ -56,8 +54,8 @@ STOPs. The slice is not built until `/rite-resolve` lands.
56
54
  - Auth/authz boundary change.
57
55
  - Public API break.
58
56
  - Spec drift that changes acceptance criteria.
59
- - Tests / types / lint are red and the agent cannot tell whether the slice's contract is
60
- wrong or the failing code is.
57
+ - Bounded debug recovery proved the remaining red test/type/lint failure is a genuine
58
+ product-contract ambiguity the human must decide.
61
59
 
62
60
  **SLA:** `15m`: synchronous gates demand fast turnaround; otherwise treat the work as
63
61
  genuinely blocked and re-plan around it.
@@ -79,7 +77,9 @@ it's `blocking`.
79
77
 
80
78
  ## Picking the gate
81
79
 
82
- Apply this decision tree per HITL slice:
80
+ First apply `afk-hitl.md` decision ownership: an objective implementation/tooling failure
81
+ or reversible technical choice is agent work and gets no human gate. Then apply this
82
+ decision tree per HITL slice:
83
83
 
84
84
  1. **Can the slice ship safely without the answer?**
85
85
  - Yes → `advisory`.
@@ -117,8 +117,9 @@ defaults and the always-pause rules:
117
117
  | `[advisory, validating]` | log + proceed | build + queue | pause | pause |
118
118
  | `[advisory, validating, blocking]` | log + proceed | build + queue | log + proceed* | pause |
119
119
 
120
- \* but **never** for destructive migrations, auth/authz boundary changes, public API
121
- breaks, or red tests/types/lint. Those always pause. See
120
+ \* but **never** for destructive migrations, auth/authz boundary changes, or public API
121
+ breaks. Red tests/types/lint remain hard build gates and must clear bounded recovery before
122
+ the next slice; only a resulting human-owned ambiguity becomes a pause. See
122
123
  [`.claude/skills/devrites-lib/reference/standards/afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md) for the irreversible-risk
123
124
  list.
124
125
 
@@ -127,8 +128,7 @@ shortcut.
127
128
 
128
129
  ## Anti-patterns
129
130
 
130
- - **One gate for everything.** Validates becomes a queue, blocks all work behind one
131
- reviewer. Pick gates per slice.
131
+ - **One gate for everything.** This puts all work behind one reviewer. Pick gates per slice.
132
132
  - **Marking a destructive migration `validating` to "keep the loop moving".** Destructive
133
133
  work is `blocking` regardless of the urge to ship.
134
134
  - **`advisory` as a synonym for "I'm not sure but I don't want to ask".** If the slice
@@ -143,7 +143,8 @@ shortcut.
143
143
  Mode: HITL
144
144
  Gate: blocking
145
145
  SLA: 15m
146
- Checkpoint: Confirm (user_id, created_at) composite index choice vs two single-col indexes.
146
+ Checkpoint: Approve irreversible deletion of legacy records after the dry-run count exists;
147
+ that evidence cannot exist before the migration rehearsal.
147
148
  Blocked by: SLICE-002
148
149
  ...
149
150
  ```
@@ -1,12 +1,11 @@
1
1
  # `plan.md` template
2
2
 
3
- Write **how** to build what `spec.md` defines. The plan is **living, not sacred**:
4
- `/rite-plan` repairs it when reality disagrees. This is where technology choices live
5
- (they're banned from the spec).
3
+ Write **how** to build what `spec.md` defines. Use `/rite-plan` when evidence requires
4
+ an update. Technology choices belong here, not in the spec.
6
5
 
7
6
  ```markdown
8
7
  # Plan: <Feature>
9
- Spec: ./spec.md Date: <date>
8
+ Spec: ./spec.md Decision coverage: ./decision-coverage.md Date: <date>
10
9
 
11
10
  ## Summary
12
11
  1–2 sentences: the primary requirement + the chosen approach.
@@ -17,7 +16,8 @@ Spec: ./spec.md Date: <date>
17
16
  - Storage / data: <...>
18
17
  - Testing tools + commands: <from spec "Commands discovered">
19
18
  - Target / platform / constraints: <...>
20
- - `[NEEDS CLARIFICATION: ...]` for any unknown that affects the approach.
19
+ - Any product/constraint unknown that affects the approach routes to `/rite-clarify`;
20
+ do not carry `[NEEDS CLARIFICATION]` into an approvable plan.
21
21
 
22
22
  ## Global constraints
23
23
  Project-wide requirements from the spec that every slice implicitly includes — version
@@ -26,6 +26,8 @@ values **verbatim from spec.md** (a paraphrased constraint drifts by the time sl
26
26
 
27
27
  ## Approach
28
28
  The strategy in a few sentences. Why this over the alternatives considered.
29
+ For high-cost/hard-to-reverse boundaries, models, contracts, or dependencies compare ≥2
30
+ viable `Option · Drivers · Trade-offs · Consequence`; skip theater for routine choices.
29
31
 
30
32
  ## Slice strategy
31
33
  How the feature is split into vertical `SLICE-###` increments, why the order is
@@ -36,9 +38,9 @@ green, or name the integration branch + final verify slice.
36
38
  ## Architecture decisions
37
39
  Key decisions + rationale (mirror into decisions.md). New pattern vs reuse — prefer
38
40
  reuse of existing project conventions. Record architecture as invariants, not scaffolding:
39
- include a decision only when two implementing slices could otherwise choose incompatibly. For each
40
- medium+ decision, include `Binds:` (what future work must follow) and `Prevents:` (the divergence
41
- or failure it avoids).
41
+ include a decision only when slices could choose incompatibly. Medium+ decisions include
42
+ `Binds:` and `Prevents:`. Cross-boundary interfaces name invariants, I/O, ordering/idempotency,
43
+ errors, versioning, config, and relevant budgets.
42
44
 
43
45
  ## Dependency graph
44
46
  What must exist before what (text is fine):
@@ -55,6 +57,9 @@ slices above the cut, and no slice above it depends on one below.
55
57
  ## Validation strategy
56
58
  After which slices to run tests / build / browser proof. For UI slices, name the visual
57
59
  acceptance targets from `design-brief.md`, not a generic "looks good" check.
60
+ Each proof names exact command/cwd/signal, prerequisites, and mutable provenance inputs.
61
+ Use portable repository commands; runtime wrappers and local absolute/temp paths do not
62
+ belong in a durable plan.
58
63
 
59
64
  **Key links** — the wiring the assembled feature must exhibit, one row each:
60
65
  `<from> → <to> via <mechanism>` (route → handler via registration; producer → consumer via
@@ -81,14 +86,19 @@ Framework/library docs to consult (triggers devrites-source-driven). Record URLs
81
86
  decisions.md / evidence.md when used.
82
87
 
83
88
  ## Readiness gate *(must pass before /rite-build)*
89
+ - [ ] `decision-coverage.md` says `Decision coverage: CLEAR`
84
90
  - [ ] Every spec acceptance criterion is covered by a slice
85
91
  - [ ] Dependency order is acyclic and risk-first
86
92
  - [ ] An `MVP cut` is named, self-contained (ACs above the cut proven above the cut, no dependency reaching below), and marks a genuinely shippable scope
87
93
  - [ ] No unjustified deviation remains in the complexity gate
88
94
  - [ ] Rollback exists for every destructive / migration step
89
95
  - [ ] Every `Mode: HITL` slice has `Gate`, `SLA`, and `Checkpoint` populated
96
+ - [ ] Human-owned choices are resolved; surviving checkpoints need unavailable pre-code
97
+ evidence or action-time approval
98
+ - [ ] Slice proof commands, cwd, prerequisites, and provenance inputs are portable and preflightable
90
99
  - [ ] Every UI slice names `Design brief states` and binary `Visual acceptance`
91
100
  - [ ] `Key links` rows cover every cross-slice wiring (or state `none`)
101
+ - [ ] Cross-boundary contracts name producer, consumer, invariants/errors/order, and proof
92
102
  - [ ] Any wide mechanical refactor is sliced expand → migrate batches → contract, with green migrate batches or an integration branch + final verify slice
93
103
  - [ ] No `Gate: blocking` slice is implicitly chained behind an AFK slice without surfacing the dependency
94
104
  ```
@@ -1,9 +1,8 @@
1
- # The four failure modes: mapped to their DevRites cure
1
+ # Four failure modes and their DevRites controls
2
2
 
3
- The lens behind `rite-frame`. Each mode is a thing LLMs reliably get wrong; each already
4
- has a cure somewhere in the pack. The value of naming them here is a **portable
5
- vocabulary**: a fast self-check you can run on ad-hoc or express-lane work that never
6
- reaches the gates where those cures normally fire.
3
+ `rite-frame` checks four common LLM failure modes. Existing DevRites controls address
4
+ each one. Use these names for quick checks on ad hoc or express-lane work that does not
5
+ reach the normal gates.
7
6
 
8
7
  ## The map
9
8
 
@@ -11,18 +10,17 @@ reaches the gates where those cures normally fire.
11
10
  |---|---|---|---|
12
11
  | 1 | **Silent assumption** | A value, contract, edge case, or interpretation was *guessed* and run with: no note, no question. The ask had two readings and one was picked silently. | `core.md` #2 (no silent assumptions) / #3 (no guessing through confusion); the Spec Drift Guard; `devrites-doubt` for a single high-stakes call; `devrites-interview` when the ask is underspecified. |
13
12
  | 2 | **Overcomplication** | An abstraction, flag, config knob, or indirection nobody asked for. 200 lines where 50 would do. A single-use factory. Defensive `try/catch` + null checks inside trusted code. A dependency added where an in-repo option exists. | `coding-style.md` (simplicity, reuse-first), `patterns.md` (avoid over-engineering), `devrites-audit simplify` (deletion test, Chesterton's Fence), the "over-defensive guarding is slop" anti-pattern. |
14
- | 3 | **Out-of-scope edit** | Touched code, comments, or formatting outside the ask. A "while I'm here" refactor. Renamed something orthogonal. Reflowed an import block. | `core.md` #7 (feature scope only), `touched-files.md` (the recorded diff boundary), `devrites-engine reconcile` (hard-stops a source file changed outside the claimed set), the "it's only a small refactor" anti-pattern. |
13
+ | 3 | **Out-of-scope edit** | Touched code, comments, or formatting outside the ask. A "while I'm here" refactor. Renamed something orthogonal. Reflowed an import block. | `core.md` #7 (feature scope only), root-owned `.wright-allowlist` (the authorized write boundary), `touched-files.md` (the resulting diff record), `devrites-engine reconcile` (hard-stops a source file outside the captured allowlist), the "it's only a small refactor" anti-pattern. |
15
14
  | 4 | **Unverifiable goal** | "It works" with no command, no output, no test. A success criterion that can't be false ("make it better"). A tautological test that passes no matter what. | `rite-spec/reference/acceptance-criteria.md` (measurable acceptance), `core.md` #6 (evidence over confidence), `testing.md` (assertion strength, see it fail first), the TDD wright. |
16
15
 
17
- The first three are the **diseases** Karpathy named; the fourth is the **leverage**: a
18
- falsifiable criterion is what lets the model loop to done without a human in the loop every
19
- few minutes. FRAME front-loads mode 4 so the AUDIT of modes 1-3 has something to check
20
- against.
16
+ Karpathy named the first three. The fourth supplies the falsifiable criterion needed
17
+ for an agent to work without repeated human confirmation. FRAME defines that criterion
18
+ before auditing the other three modes.
21
19
 
22
- ## FRAME: the imperative falsifiable reframe
20
+ ## FRAME: rewrite an imperative as a falsifiable condition
23
21
 
24
- The move is to rewrite the *verb* as a *condition that can be false*. If you can't, the ask
25
- is ambiguous. That's mode 1, caught before the diff instead of after.
22
+ Rewrite the request as a condition that can be false. If that is impossible, the
23
+ request is ambiguous and triggers mode 1 before any diff exists.
26
24
 
27
25
  | Imperative ask | Weak (still a wish) | Falsifiable criterion + verify |
28
26
  |---|---|---|
@@ -33,8 +31,8 @@ is ambiguous. That's mode 1, caught before the diff instead of after.
33
31
  | "Handle errors" | "add error handling" | "On `<failure F>` the system fails closed with `<observable>`; a test forces F." → that test |
34
32
  | "Improve the UX" | "make it nicer" | *(no falsifiable check → ambiguous → `devrites-ux-shape` / ask which states/flows)* |
35
33
 
36
- A criterion passes the bar when a reviewer could run the verify command and get a clear
37
- pass or fail without asking you what you meant. If they'd have to ask, sharpen it.
34
+ A criterion is ready when a reviewer can run the verification command and get a clear
35
+ pass or fail without asking what it means.
38
36
 
39
37
  ## AUDIT: worked finding lines
40
38
 
@@ -49,20 +47,20 @@ utils.ts:5 FYI mode 3 (scope): reflowed an unrelated import block. → r
49
47
  sum.spec:12 Important mode 4 (unverifiable): test asserts `mock.called`, not the result — passes if the fn is empty. → assert the value; see it fail first (testing.md).
50
48
  ```
51
49
 
52
- Clean lanes say so explicitly (`1 assumption: clean`) so the audit is a positive
53
- statement, not a silent skip.
50
+ Record clean modes explicitly (`1 assumption: clean`) so an empty result is not mistaken
51
+ for a skipped check.
54
52
 
55
- ## How this differs from the heavier tools (so you don't reach past it)
53
+ ## Related tools
56
54
 
57
55
  - **`devrites-doubt`:** adversarial *fresh-context subagent* pre-mortem on **one** decision.
58
- Heavier, independent, anti-anchoring. rite-frame is *self-applied* and covers the four modes
59
- broadly; escalate a single load-bearing claim to doubt.
56
+ It is independent and avoids anchoring. rite-frame is self-applied and covers all four
57
+ modes; use doubt for one consequential claim.
60
58
  - **`devrites-audit <axis>`:** *fresh-context subagent* review of an **active feature's** diff
61
59
  on one axis (security / perf / simplify). Needs a `.devrites/` workspace. rite-frame needs no
62
- workspace and runs in your own context: cheaper, less independent.
60
+ workspace and runs in the current context, with less independence.
63
61
  - **`/rite-review` · `/rite-seal`:** the **gates**: parallel reviewer fan-out, blocking
64
62
  severities, written verdict. rite-frame is the inline reflex for work that never reaches a
65
- gate; it does not replace one. If the work is a real feature, the gate is the answer.
63
+ gate and does not replace one.
66
64
 
67
- The point is not redundancy. It's a tiered ladder. rite-frame is the cheapest rung: a lens
68
- you run yourself in seconds. Climb to doubt / audit / the gates as the stakes rise.
65
+ Use rite-frame for the quickest self-check. Use doubt, audit, or the full gates when the
66
+ work needs independent or feature-level review.
@@ -7,8 +7,9 @@ user-invocable: true
7
7
 
8
8
  # /rite-plan: (re)plan an active feature
9
9
 
10
- Reshape the plan when reality and the plan disagree. **Read the active workspace
11
- first.** If `.devrites/ACTIVE` is empty or its workspace is missing, stop and tell the
10
+ Update an existing plan when implementation evidence, drift, or a user decision makes it
11
+ wrong. **Read the active workspace first.** If `.devrites/ACTIVE` is empty or its workspace
12
+ is missing, stop and tell the
12
13
  user to run `/rite-spec <feature>`. **Revise mode is artifact-only**: reconcile
13
14
  `spec.md` / `architecture.md` / `plan.md` / `tasks.md` / `traceability.md` without
14
15
  editing source code.
@@ -17,9 +18,11 @@ editing source code.
17
18
  Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD criteria.
18
19
 
19
20
  ## Operating rules
20
- - Spec is living, not sacred, but never plan around a known-wrong assumption silently.
21
+ - Update the spec when needed, but never plan around a known-wrong assumption.
21
22
  - If a change alters product behavior, scope, architecture, data model, UX, security,
22
- or migration risk → **ask the user first** (use the Spec Drift Guard question format).
23
+ or migration risk → search facts first, then route the human-owned contract decision
24
+ through `/rite-clarify` (using the Spec Drift Guard). Reversible technical repair is
25
+ agent-owned and must not become a question.
23
26
  - Keep each slice small enough for one focused build → prove cycle.
24
27
  - **Slice count is derived, never dictated:** reslice when a slice fails the sizing rule
25
28
  (multiple "and"s, can't build+prove in one cycle), not to hit a user-named tally. A
@@ -28,13 +31,18 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
28
31
  - **Size by complexity, order by dependency.** A slice carries a `Complexity: N/5` score (from
29
32
  `/rite-define`); a slice scoring **>3** is a reslice trigger unless its inline reason justifies
30
33
  the irreducible complexity. Honor each slice's `depends_on:`: the next *buildable* slice is the
31
- lowest pending one whose dependencies are all built (keeps one-slice-at-a-time correct, not parallel).
34
+ lowest pending one whose dependencies are all built. This preserves one-slice-at-a-time execution.
35
+ - **Root writes; drafter proposes.** Follow
36
+ [`agents.md`](../devrites-lib/reference/standards/agents.md). The controlling chat owns
37
+ human questions, decisions, reconciliation, and all planning-artifact writes.
32
38
 
33
39
  ## Workflow
34
40
  0. Read `.claude/skills/devrites-lib/reference/standards/core.md` (operating rules) before reshaping anything.
35
41
  Then run `devrites-engine preamble` for deterministic workspace orientation.
36
- 1. Read `spec.md`, `plan.md`, `tasks.md`, `state.md`, `drift.md`, and the current
37
- `git diff` (if a repo). Read `decisions.md` and `assumptions.md`. If a code-intelligence
42
+ 1. Read `spec.md`, `decision-coverage.md`, `plan.md`, `tasks.md`, `state.md`, `drift.md`,
43
+ `eng-review.md`, and the current `git diff` (if a repo). Read `decisions.md` and
44
+ `assumptions.md`. Require `Decision coverage: CLEAR`; otherwise STOP → `/rite-clarify`.
45
+ If a code-intelligence
38
46
  index is available: `codebase-memory-mcp` first, cross-checked with `codegraph`
39
47
  (`.codegraph/` / `codegraph_*` tools) + `graphify` (`graphify-out/`), else standard methods
40
48
  (LSP / `Read`/`Grep`/`Glob`); see `.claude/skills/devrites-lib/reference/standards/tooling.md`:
@@ -56,28 +64,51 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
56
64
  scope, not a new negotiation.
57
65
  - **revise:** apply a requested planning-artifact revision and reconcile existing artifacts in
58
66
  any direction; propose the file edit set first, confirm each file before writing, and **never
59
- edit source code**. **Gate first: revise or new?** Same intent? >50% of existing scope
67
+ edit source code**. The one confirmation exception is an explicit `/rite-upgrade`: its
68
+ validated `upgrade-assessment` authorizes one atomic, behavior-neutral normalization of
69
+ active planning artifacts, provided source, completed slices, answered questions, and
70
+ historical evidence remain unchanged. **Gate first: revise or new?** Same intent? More than 50% of existing scope
60
71
  survives? original *not* completable without this? Two "no"s → new work: recommend
61
72
  sealing/shipping the current workspace (MVP cut if named) then `/rite-spec` for the new
62
- intent, and stop. Revise preserves context; a new workspace provides clarity.
73
+ intent, and stop. Revise preserves context; a new workspace separates the work.
63
74
  See [replan-and-repair](reference/replan-and-repair.md) for each mode's steps.
75
+ 2a. **Draft the repair from fresh context.** Freeze the inputs and dispatch
76
+ `devrites-plan-drafter` in `repair` mode with only the selected mode, affected artifact
77
+ paths, settled contract, and observed failure/drift. Await one atomic `plan-candidate`;
78
+ the drafter writes nothing and returns human-owned choices separately.
64
79
  3. Reason about dependencies: [dependency-graph](reference/dependency-graph.md).
65
80
  **Completion:** the slice graph is cycle-free and every dependency names an existing slice.
66
81
  4. Re-slice using vertical-slice rules: [slicing](reference/slicing.md) and
67
82
  [task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
68
83
  **Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
69
- 5. Update `plan.md`, `tasks.md`, `state.md`, and append rationale to `decisions.md`.
70
- If you stopped for drift, mark the `drift.md` entry resolved.
71
- 6. If product behavior/acceptance criteria change, confirm with the user before writing.
84
+ 5. Reconcile the candidate against steps 3 and 4, then the root updates `plan.md`, `tasks.md`,
85
+ `state.md`, and appends rationale to `decisions.md`.
86
+ Any change to `architecture.md`, `plan.md`, `tasks.md`, or `traceability.md` invalidates
87
+ the previous vet verdict: set `Phase: plan`, `Next step: /rite-vet`, and, when
88
+ `eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
89
+ across changed planning inputs. Preserve `Plan approved` only for behavior/acceptance-neutral
90
+ technical repair; clear and reconfirm it when the contract changed. If you stopped for drift,
91
+ mark the `drift.md` entry resolved.
92
+ 6. If product behavior/acceptance criteria change, confirm through `/rite-clarify` before
93
+ writing, re-close `decision-coverage.md`, then reconcile the plan. After any edit to
94
+ `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or `questions.md`, including a
95
+ behavior-neutral technical rationale appended to `decisions.md`, re-scan the affected coverage
96
+ rows, assumption audit, residual uncertainty, and closed gates. Partial/Missing, an unowned
97
+ material assumption, or an open blocking/escalating question routes `/rite-clarify`/HITL;
98
+ never refresh past it. Only after the matrix is re-closed, run
99
+ `devrites-engine readiness-digest coverage <slug>` and replace the complete
100
+ `Coverage inputs SHA-256` line in `decision-coverage.md`.
72
101
  **Completion:** the change is classified, and every behavior/acceptance change has explicit
73
102
  confirmation recorded before the artifacts are updated.
74
103
  7. **Done when:** every slice is sized (builds + proves in one cycle; no slice scoring >3
75
104
  left unjustified), the dependency order is acyclic, every `drift.md` entry you stopped for
76
105
  is marked resolved, revised artifacts agree with each other, no source files changed in
77
- `revise` mode, and behavior-change-vs-not is confirmed (`no`, or asked + answered).
106
+ `revise` mode, behavior-change-vs-not is confirmed (`no`, or clarified), and every changed
107
+ plan ends at `/rite-vet` rather than returning directly to build.
78
108
  If any check fails, loop back: don't hand off a half-reshaped plan.
79
109
 
80
- > **Mid-flight discipline.** When tempted to change product behavior without asking, absorb drift silently, or skip the user: see [`anti-patterns`](reference/anti-patterns.md). Load it the moment you reach for the excuse.
110
+ > **Mid-flight discipline.** Do not change product behavior without confirmation or
111
+ > absorb drift silently. See [`anti-patterns`](reference/anti-patterns.md).
81
112
 
82
113
  ## Output
83
114
 
@@ -86,10 +117,10 @@ Pull `development-workflow.md` via `Read` when reshaping slice cadence or DoD cr
86
117
  Default success shape:
87
118
  ```
88
119
  Done: plan repaired for <slug> in <mode> mode.
89
- Changed: plan.md, tasks.md, traceability.md, decisions.md, state.md
120
+ Changed: plan.md, tasks.md, traceability.md, decisions.md, state.md, eng-review.md <invalidated|n/a>
90
121
  Evidence: not applicable; slice map now <n> slices and next slice is <name>
91
122
  Open: <none | behavior question answered | Alternative: /rite-prove if all built slices need re-verification>
92
- Next: <single next command: build, re-define, or prove depending on the revision>
123
+ Next: /rite-vet
93
124
  Record: .devrites/work/<slug>/plan.md
94
125
  ↻ Hygiene: /clear if the repair was large; keep session for small reorder-only repairs
95
126
  ```
@@ -20,6 +20,10 @@ This reference owns decomposition; the shared schema owns field names and meanin
20
20
  planned proof, evidence status, and likely touched files.
21
21
  6. Sanity check: every acceptance criterion in `spec.md` maps to ≥1 slice; no slice has
22
22
  an unowned criterion.
23
+ 7. Resolve every foreseeable human-owned checkpoint now. Keep a build-time checkpoint only
24
+ when it needs evidence unavailable before code or mandatory action-time approval, and say why.
25
+ 8. Make every `Tests/proof` entry executable: exact command, working directory, prerequisites,
26
+ expected signal, and mutable inputs whose provenance evidence must bind.
23
27
 
24
28
  ## Keep it honest
25
29
  - **Interfaces prevent cross-slice drift.** A slice-wright sees only its own contract; the