devrites 3.0.6 → 3.1.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 (472) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +67 -45
  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/README.md +3 -0
  12. package/docs/agents/triage-labels.md +7 -7
  13. package/docs/architecture.md +157 -140
  14. package/docs/cli.md +41 -12
  15. package/docs/command-map.md +49 -35
  16. package/docs/engine/agent-contract.md +92 -15
  17. package/docs/engine/commands.md +242 -72
  18. package/docs/engine/state-schema.md +52 -23
  19. package/docs/engine/workspace-schema.md +94 -15
  20. package/docs/extensions.md +1 -1
  21. package/docs/flow.md +80 -50
  22. package/docs/harness-compliance.md +29 -5
  23. package/docs/orchestration.md +107 -79
  24. package/docs/quick-reference.md +7 -3
  25. package/docs/release.md +4 -3
  26. package/docs/skills.md +64 -38
  27. package/docs/usage.md +57 -38
  28. package/engine/cmd/releasepack/main.go +219 -0
  29. package/engine/cmd/releasepack/main_test.go +170 -0
  30. package/engine/commands.go +170 -23
  31. package/engine/git_guard.go +187 -0
  32. package/engine/git_guard_test.go +283 -0
  33. package/engine/hookpolicy.go +53 -55
  34. package/engine/hookpolicy_test.go +91 -1
  35. package/engine/hooks.go +296 -75
  36. package/engine/hooks_events_test.go +276 -6
  37. package/engine/hooks_workspace.go +640 -159
  38. package/engine/internal/devritespaths/paths.go +65 -10
  39. package/engine/internal/devritespaths/paths_test.go +110 -0
  40. package/engine/internal/doctor/doctor.go +153 -23
  41. package/engine/internal/doctor/doctor_test.go +74 -0
  42. package/engine/internal/forge/forge.go +940 -0
  43. package/engine/internal/forge/forge_test.go +576 -0
  44. package/engine/internal/forge/git.go +245 -0
  45. package/engine/internal/forge/liveness_unix.go +48 -0
  46. package/engine/internal/forge/liveness_windows.go +67 -0
  47. package/engine/internal/forge/manifest.go +402 -0
  48. package/engine/internal/gate/gate.go +90 -71
  49. package/engine/internal/gate/gate_test.go +71 -2
  50. package/engine/internal/harness/compliance.go +18 -24
  51. package/engine/internal/harness/harness.go +37 -44
  52. package/engine/internal/harness/harness_test.go +21 -5
  53. package/engine/internal/install/install.go +575 -58
  54. package/engine/internal/install/install_test.go +490 -9
  55. package/engine/internal/iohooks/iohooks.go +350 -59
  56. package/engine/internal/iohooks/iohooks_test.go +421 -1
  57. package/engine/internal/lib/buildreadiness.go +35 -18
  58. package/engine/internal/lib/clarifyreturn.go +91 -0
  59. package/engine/internal/lib/clarifyreturn_test.go +123 -0
  60. package/engine/internal/lib/context.go +54 -15
  61. package/engine/internal/lib/cursor_compat_test.go +8 -0
  62. package/engine/internal/lib/extensions.go +2 -3
  63. package/engine/internal/lib/gitauthority.go +601 -0
  64. package/engine/internal/lib/gitauthority_test.go +346 -0
  65. package/engine/internal/lib/jsonout.go +25 -11
  66. package/engine/internal/lib/jsonout_test.go +16 -0
  67. package/engine/internal/lib/lanes.go +14 -8
  68. package/engine/internal/lib/observability_test.go +358 -0
  69. package/engine/internal/lib/packageexistence.go +151 -35
  70. package/engine/internal/lib/packageexistence_test.go +163 -0
  71. package/engine/internal/lib/progress.go +11 -9
  72. package/engine/internal/lib/provenance.go +462 -0
  73. package/engine/internal/lib/provenance_test.go +154 -0
  74. package/engine/internal/lib/readiness_contract.json +111 -0
  75. package/engine/internal/lib/readinessartifact.go +510 -0
  76. package/engine/internal/lib/readinessartifact_test.go +321 -0
  77. package/engine/internal/lib/reconcile.go +712 -88
  78. package/engine/internal/lib/reconcile_test.go +335 -16
  79. package/engine/internal/lib/recoveryattempts.go +298 -0
  80. package/engine/internal/lib/recoveryattempts_test.go +215 -0
  81. package/engine/internal/lib/resolve.go +23 -19
  82. package/engine/internal/lib/runbook_context_test.go +20 -0
  83. package/engine/internal/lib/session.go +701 -9
  84. package/engine/internal/lib/session_test.go +80 -13
  85. package/engine/internal/lib/testintegrity.go +33 -37
  86. package/engine/internal/lib/testintegrity_test.go +63 -1
  87. package/engine/internal/migrate/migrate.go +81 -1
  88. package/engine/internal/migrate/migrate_test.go +22 -1
  89. package/engine/internal/reason/reason.go +180 -0
  90. package/engine/internal/reason/reason_test.go +35 -0
  91. package/engine/internal/rootfacts/facts.go +466 -0
  92. package/engine/internal/rootfacts/facts_test.go +306 -0
  93. package/engine/internal/safepath/safepath.go +55 -0
  94. package/engine/internal/safepath/safepath_test.go +69 -0
  95. package/engine/internal/safepath/safepath_windows_test.go +26 -0
  96. package/engine/internal/state/clarify_transition.go +165 -0
  97. package/engine/internal/state/clarify_transition_test.go +130 -0
  98. package/engine/internal/state/cmd/workflowmanifest/main.go +12 -8
  99. package/engine/internal/state/cursor.go +58 -0
  100. package/engine/internal/state/cursor_test.go +42 -1
  101. package/engine/internal/state/feature.go +35 -48
  102. package/engine/internal/state/schema.go +90 -37
  103. package/engine/internal/state/snapshot.go +18 -2
  104. package/engine/internal/state/state_test.go +187 -7
  105. package/engine/internal/state/status.go +48 -11
  106. package/engine/internal/state/workflow_manifest.json +231 -50
  107. package/engine/internal/toolpolicy/classifier.go +533 -0
  108. package/engine/internal/toolpolicy/classifier_test.go +424 -0
  109. package/engine/internal/toolpolicy/git.go +616 -0
  110. package/engine/internal/toolpolicy/scanner.go +382 -0
  111. package/engine/main.go +160 -77
  112. package/engine/observability_cli_test.go +52 -0
  113. package/engine/root_routing_test.go +277 -0
  114. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
  115. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
  116. package/engine/testdata/golden/TestParityBuildReadiness/arg=noclarify.golden +1 -0
  117. package/engine/testdata/golden/TestParityBuildReadiness/arg=novet.golden +1 -0
  118. package/engine/testdata/golden/TestParityBuildReadiness/arg=stalevet.golden +1 -0
  119. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
  120. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
  121. package/engine/testdata/golden/TestParityBuildReadiness/arg=vetnotready.golden +1 -0
  122. package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +1 -1
  123. package/engine/testdata/golden/TestParityProgress/arg=done.golden +1 -1
  124. package/engine/testdata/golden/TestParityProgress/arg=mid.golden +1 -1
  125. package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +1 -1
  126. package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +1 -1
  127. package/engine/testdata/golden/TestParityProgress/arg=plan.golden +1 -1
  128. package/engine/testdata/golden/TestParityProgress/arg=seal.golden +1 -1
  129. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
  130. package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
  131. package/engine/testdata/golden/TestParityReconcile/snapshot-no-allowlist.golden +1 -0
  132. package/engine/testdata/golden/TestParityWrightScope/devrites-edit-denied.golden +2 -0
  133. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
  134. package/engine/tests/adr_0011_define_plan_test.go +30 -0
  135. package/engine/tests/budget_test.go +19 -8
  136. package/engine/tests/concurrency_cli_test.go +7 -1
  137. package/engine/tests/doctor_cli_test.go +148 -2
  138. package/engine/tests/forge_cli_test.go +463 -0
  139. package/engine/tests/gate_test.go +63 -8
  140. package/engine/tests/hook_test.go +260 -8
  141. package/engine/tests/hooks_io_test.go +94 -3
  142. package/engine/tests/json_contract_test.go +127 -2
  143. package/engine/tests/migrate_cli_test.go +2 -2
  144. package/engine/tests/parity_buildreadiness_test.go +141 -10
  145. package/engine/tests/parity_learnings_test.go +16 -17
  146. package/engine/tests/parity_reconcile_test.go +20 -17
  147. package/engine/tests/parity_resolve_test.go +12 -11
  148. package/engine/tests/parity_test.go +21 -17
  149. package/pack/.claude/agents/devrites-code-reviewer.md +62 -48
  150. package/pack/.claude/agents/devrites-devex-reviewer.md +69 -53
  151. package/pack/.claude/agents/devrites-doubt-reviewer.md +29 -22
  152. package/pack/.claude/agents/devrites-evidence-scout.md +69 -0
  153. package/pack/.claude/agents/devrites-forge-judge.md +74 -61
  154. package/pack/.claude/agents/devrites-frontend-reviewer.md +48 -39
  155. package/pack/.claude/agents/devrites-performance-reviewer.md +49 -40
  156. package/pack/.claude/agents/devrites-plan-drafter.md +71 -0
  157. package/pack/.claude/agents/devrites-plan-reviewer.md +80 -47
  158. package/pack/.claude/agents/devrites-proof-runner.md +74 -0
  159. package/pack/.claude/agents/devrites-retrospector.md +48 -45
  160. package/pack/.claude/agents/devrites-security-auditor.md +46 -36
  161. package/pack/.claude/agents/devrites-simplifier-reviewer.md +50 -46
  162. package/pack/.claude/agents/devrites-slice-wright.md +153 -165
  163. package/pack/.claude/agents/devrites-spec-reviewer.md +34 -32
  164. package/pack/.claude/agents/devrites-strategy-reviewer.md +63 -34
  165. package/pack/.claude/agents/devrites-test-analyst.md +40 -30
  166. package/pack/.claude/settings.json +2 -1
  167. package/pack/.claude/skills/devrites-audit/SKILL.md +40 -61
  168. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +24 -13
  169. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
  170. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
  171. package/pack/.claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
  172. package/pack/.claude/skills/devrites-doubt/SKILL.md +25 -17
  173. package/pack/.claude/skills/devrites-interview/SKILL.md +53 -52
  174. package/pack/.claude/skills/devrites-lib/SKILL.md +11 -9
  175. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +3 -2
  176. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
  177. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +8 -1
  178. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +38 -55
  179. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
  180. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +198 -190
  181. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
  182. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
  183. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
  184. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
  185. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
  186. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -18
  187. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
  188. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
  189. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
  190. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
  191. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
  192. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +0 -9
  193. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +1 -3
  194. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +17 -7
  195. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +1 -27
  196. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
  197. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +23 -10
  198. package/pack/.claude/skills/devrites-source-driven/SKILL.md +23 -22
  199. package/pack/.claude/skills/rite/SKILL.md +8 -6
  200. package/pack/.claude/skills/rite/reference/menu.md +8 -6
  201. package/pack/.claude/skills/rite-adopt/SKILL.md +33 -37
  202. package/pack/.claude/skills/rite-autocomplete/SKILL.md +33 -28
  203. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +21 -21
  204. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
  205. package/pack/.claude/skills/rite-build/SKILL.md +35 -30
  206. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +38 -38
  207. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -0
  208. package/pack/.claude/skills/rite-build/reference/forge.md +186 -156
  209. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
  210. package/pack/.claude/skills/rite-build/reference/phase-contract.md +96 -175
  211. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +129 -134
  212. package/pack/.claude/skills/rite-clarify/SKILL.md +89 -0
  213. package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +59 -0
  214. package/pack/.claude/skills/rite-converge/SKILL.md +35 -25
  215. package/pack/.claude/skills/rite-define/SKILL.md +57 -32
  216. package/pack/.claude/skills/rite-define/reference/gates.md +16 -15
  217. package/pack/.claude/skills/rite-define/reference/plan-template.md +16 -8
  218. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +22 -24
  219. package/pack/.claude/skills/rite-plan/SKILL.md +44 -16
  220. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +4 -0
  221. package/pack/.claude/skills/rite-polish/SKILL.md +27 -23
  222. package/pack/.claude/skills/rite-prototype/SKILL.md +25 -26
  223. package/pack/.claude/skills/rite-prove/SKILL.md +27 -17
  224. package/pack/.claude/skills/rite-resolve/SKILL.md +12 -11
  225. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
  226. package/pack/.claude/skills/rite-review/SKILL.md +37 -28
  227. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +27 -92
  228. package/pack/.claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
  229. package/pack/.claude/skills/rite-ship/reference/design-memory.md +31 -36
  230. package/pack/.claude/skills/rite-spec/SKILL.md +84 -135
  231. package/pack/.claude/skills/rite-spec/reference/investigation.md +37 -33
  232. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +6 -2
  233. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +25 -24
  234. package/pack/.claude/skills/rite-spec/reference/spec-template.md +9 -2
  235. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +13 -3
  236. package/pack/.claude/skills/rite-temper/SKILL.md +62 -47
  237. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +24 -22
  238. package/pack/.claude/skills/rite-vet/SKILL.md +110 -113
  239. package/pack/.claude/skills/rite-vet/reference/artifacts.md +42 -9
  240. package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -37
  241. package/pack/generated/claude/agents/devrites-code-reviewer.md +62 -48
  242. package/pack/generated/claude/agents/devrites-devex-reviewer.md +69 -53
  243. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +29 -22
  244. package/pack/generated/claude/agents/devrites-evidence-scout.md +69 -0
  245. package/pack/generated/claude/agents/devrites-forge-judge.md +74 -61
  246. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +48 -39
  247. package/pack/generated/claude/agents/devrites-performance-reviewer.md +49 -40
  248. package/pack/generated/claude/agents/devrites-plan-drafter.md +71 -0
  249. package/pack/generated/claude/agents/devrites-plan-reviewer.md +80 -47
  250. package/pack/generated/claude/agents/devrites-proof-runner.md +74 -0
  251. package/pack/generated/claude/agents/devrites-retrospector.md +48 -45
  252. package/pack/generated/claude/agents/devrites-security-auditor.md +46 -36
  253. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +50 -46
  254. package/pack/generated/claude/agents/devrites-slice-wright.md +153 -165
  255. package/pack/generated/claude/agents/devrites-spec-reviewer.md +34 -32
  256. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +63 -34
  257. package/pack/generated/claude/agents/devrites-test-analyst.md +40 -30
  258. package/pack/generated/claude/settings.json +2 -1
  259. package/pack/generated/claude/skills/devrites-audit/SKILL.md +40 -61
  260. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +24 -13
  261. package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
  262. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
  263. package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
  264. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +25 -17
  265. package/pack/generated/claude/skills/devrites-interview/SKILL.md +53 -52
  266. package/pack/generated/claude/skills/devrites-lib/SKILL.md +11 -9
  267. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +3 -2
  268. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
  269. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +8 -1
  270. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +38 -55
  271. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
  272. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +198 -190
  273. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
  274. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
  275. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +16 -52
  276. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +2 -10
  277. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
  278. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -18
  279. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +17 -57
  280. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
  281. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
  282. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -14
  283. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +9 -25
  284. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +0 -9
  285. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +1 -3
  286. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +17 -7
  287. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +1 -27
  288. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +46 -50
  289. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +23 -10
  290. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +23 -22
  291. package/pack/generated/claude/skills/rite/SKILL.md +8 -6
  292. package/pack/generated/claude/skills/rite/reference/menu.md +8 -6
  293. package/pack/generated/claude/skills/rite-adopt/SKILL.md +33 -37
  294. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +33 -28
  295. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +21 -21
  296. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
  297. package/pack/generated/claude/skills/rite-build/SKILL.md +35 -30
  298. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +38 -38
  299. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +10 -0
  300. package/pack/generated/claude/skills/rite-build/reference/forge.md +186 -156
  301. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +4 -3
  302. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +96 -175
  303. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +129 -134
  304. package/pack/generated/claude/skills/rite-clarify/SKILL.md +89 -0
  305. package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +59 -0
  306. package/pack/generated/claude/skills/rite-converge/SKILL.md +35 -25
  307. package/pack/generated/claude/skills/rite-define/SKILL.md +57 -32
  308. package/pack/generated/claude/skills/rite-define/reference/gates.md +16 -15
  309. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +16 -8
  310. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +22 -24
  311. package/pack/generated/claude/skills/rite-plan/SKILL.md +44 -16
  312. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +4 -0
  313. package/pack/generated/claude/skills/rite-polish/SKILL.md +27 -23
  314. package/pack/generated/claude/skills/rite-prototype/SKILL.md +25 -26
  315. package/pack/generated/claude/skills/rite-prove/SKILL.md +27 -17
  316. package/pack/generated/claude/skills/rite-resolve/SKILL.md +12 -11
  317. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +3 -0
  318. package/pack/generated/claude/skills/rite-review/SKILL.md +37 -28
  319. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +27 -92
  320. package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +13 -0
  321. package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +31 -36
  322. package/pack/generated/claude/skills/rite-spec/SKILL.md +84 -135
  323. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +37 -33
  324. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +6 -2
  325. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +25 -24
  326. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +9 -2
  327. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +13 -3
  328. package/pack/generated/claude/skills/rite-temper/SKILL.md +62 -47
  329. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +24 -22
  330. package/pack/generated/claude/skills/rite-vet/SKILL.md +110 -113
  331. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +42 -9
  332. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -37
  333. package/pack/generated/codex/AGENTS.md +5 -2
  334. package/pack/generated/codex/agents/devrites-code-reviewer.toml +69 -47
  335. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +75 -51
  336. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +35 -20
  337. package/pack/generated/codex/agents/devrites-evidence-scout.toml +75 -0
  338. package/pack/generated/codex/agents/devrites-forge-judge.toml +80 -59
  339. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +54 -37
  340. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +55 -38
  341. package/pack/generated/codex/agents/devrites-plan-drafter.toml +77 -0
  342. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +82 -47
  343. package/pack/generated/codex/agents/devrites-proof-runner.toml +80 -0
  344. package/pack/generated/codex/agents/devrites-retrospector.toml +54 -43
  345. package/pack/generated/codex/agents/devrites-security-auditor.toml +53 -35
  346. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +56 -44
  347. package/pack/generated/codex/agents/devrites-slice-wright.toml +159 -163
  348. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +40 -30
  349. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +65 -34
  350. package/pack/generated/codex/agents/devrites-test-analyst.toml +46 -28
  351. package/pack/generated/codex/hooks.json +4 -14
  352. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +7 -3
  353. package/pack/generated/codex/skills/devrites-audit/SKILL.md +47 -64
  354. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +7 -3
  355. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +31 -16
  356. package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +24 -21
  357. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -6
  358. package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +2 -2
  359. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +32 -20
  360. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +7 -3
  361. package/pack/generated/codex/skills/devrites-interview/SKILL.md +60 -55
  362. package/pack/generated/codex/skills/devrites-lib/SKILL.md +18 -12
  363. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +3 -2
  364. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +82 -137
  365. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +8 -1
  366. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +38 -55
  367. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +53 -27
  368. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +198 -190
  369. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +5 -15
  370. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +27 -58
  371. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +16 -52
  372. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +2 -10
  373. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +18 -61
  374. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -18
  375. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +17 -57
  376. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +4 -33
  377. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +4 -20
  378. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -14
  379. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +9 -25
  380. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +0 -9
  381. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +1 -3
  382. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +17 -7
  383. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +1 -27
  384. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +46 -50
  385. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +23 -10
  386. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +7 -3
  387. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +7 -3
  388. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +29 -24
  389. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +7 -3
  390. package/pack/generated/codex/skills/rite/SKILL.md +19 -13
  391. package/pack/generated/codex/skills/rite/reference/menu.md +8 -6
  392. package/pack/generated/codex/skills/rite-adopt/SKILL.md +40 -40
  393. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +40 -31
  394. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +21 -21
  395. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +15 -6
  396. package/pack/generated/codex/skills/rite-build/SKILL.md +42 -33
  397. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +38 -38
  398. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +10 -0
  399. package/pack/generated/codex/skills/rite-build/reference/forge.md +186 -156
  400. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +4 -3
  401. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +96 -175
  402. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +129 -134
  403. package/pack/generated/codex/skills/rite-clarify/SKILL.md +105 -0
  404. package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +59 -0
  405. package/pack/generated/codex/skills/rite-converge/SKILL.md +42 -28
  406. package/pack/generated/codex/skills/rite-customize/SKILL.md +7 -3
  407. package/pack/generated/codex/skills/rite-define/SKILL.md +64 -35
  408. package/pack/generated/codex/skills/rite-define/reference/gates.md +16 -15
  409. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +16 -8
  410. package/pack/generated/codex/skills/rite-doctor/SKILL.md +7 -3
  411. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +7 -3
  412. package/pack/generated/codex/skills/rite-explain/SKILL.md +7 -3
  413. package/pack/generated/codex/skills/rite-frame/SKILL.md +7 -3
  414. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +22 -24
  415. package/pack/generated/codex/skills/rite-handoff/SKILL.md +7 -3
  416. package/pack/generated/codex/skills/rite-learn/SKILL.md +7 -3
  417. package/pack/generated/codex/skills/rite-plan/SKILL.md +51 -19
  418. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +5 -1
  419. package/pack/generated/codex/skills/rite-polish/SKILL.md +34 -26
  420. package/pack/generated/codex/skills/rite-pov/SKILL.md +7 -3
  421. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +7 -3
  422. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -3
  423. package/pack/generated/codex/skills/rite-prototype/SKILL.md +32 -29
  424. package/pack/generated/codex/skills/rite-prove/SKILL.md +34 -20
  425. package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -3
  426. package/pack/generated/codex/skills/rite-resolve/SKILL.md +19 -14
  427. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +3 -0
  428. package/pack/generated/codex/skills/rite-review/SKILL.md +44 -31
  429. package/pack/generated/codex/skills/rite-seal/SKILL.md +7 -3
  430. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +27 -92
  431. package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +13 -0
  432. package/pack/generated/codex/skills/rite-ship/SKILL.md +7 -3
  433. package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +31 -36
  434. package/pack/generated/codex/skills/rite-spec/SKILL.md +91 -138
  435. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +37 -33
  436. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +6 -2
  437. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +25 -24
  438. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +9 -2
  439. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +13 -3
  440. package/pack/generated/codex/skills/rite-status/SKILL.md +7 -3
  441. package/pack/generated/codex/skills/rite-temper/SKILL.md +69 -50
  442. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +24 -22
  443. package/pack/generated/codex/skills/rite-vet/SKILL.md +117 -116
  444. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +42 -9
  445. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +40 -38
  446. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +7 -3
  447. package/package.json +1 -1
  448. package/scripts/build-release-tarball.sh +32 -15
  449. package/scripts/check-authority-drift.py +125 -0
  450. package/scripts/check-instruction-size-baseline.mjs +19 -11
  451. package/scripts/check-invocation-integrity.py +2 -0
  452. package/scripts/codex-generate.sh +69 -33
  453. package/scripts/grade-feature.sh +121 -40
  454. package/scripts/live-hosts/agent-result.schema.json +230 -0
  455. package/scripts/live-hosts/claude.sh +87 -0
  456. package/scripts/live-hosts/codex.sh +81 -0
  457. package/scripts/live-hosts/common.sh +113 -0
  458. package/scripts/live-hosts/fake-host.py +264 -0
  459. package/scripts/live-hosts/host-transport.py +287 -0
  460. package/scripts/release-check.sh +5 -1
  461. package/scripts/run-agent-contract-evals.py +1380 -0
  462. package/scripts/run-behavioral-evals.sh +24 -30
  463. package/scripts/run-evals.sh +1 -5
  464. package/scripts/run-live-behavioral-evals.py +1274 -144
  465. package/scripts/run-outcome-evals.sh +414 -88
  466. package/scripts/run-tests.mjs +30 -2
  467. package/scripts/skills-inventory.mjs +1 -1
  468. package/scripts/validate-workflow-security.py +39 -20
  469. package/scripts/validate-workspace-schema.py +362 -10
  470. package/scripts/validate.sh +21 -15
  471. package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +0 -1
  472. /package/engine/testdata/golden/{TestParityReconcile/check-no-claimed.golden → TestParityBuildReadiness/arg=clarifyopen.golden} +0 -0
@@ -19,9 +19,12 @@ Load that schema before creating or updating workspace artifacts.
19
19
  decisions.md
20
20
  assumptions.md
21
21
  questions.md
22
+ decision-coverage.md # from /rite-clarify
22
23
  plan.md # from /rite-define
23
24
  tasks.md # from /rite-define
24
25
  traceability.md # from /rite-define
26
+ eng-review.md # from /rite-vet
27
+ test-plan.md # from /rite-vet
25
28
  state.md
26
29
  evidence.md # from /rite-build or /rite-prove (proof.md alias supported)
27
30
  browser-evidence.md # UI only
@@ -46,8 +49,10 @@ canonical files and preserves aliases rather than deleting old ones.
46
49
  - `/rite-spec` creates the workspace map, `brief.md`, `spec.md`, `decisions.md`,
47
50
  `assumptions.md`, `questions.md`, `state.md`, optional `references.md` /
48
51
  `references/`, and optional `design-brief.md` for UI.
52
+ - `/rite-clarify` adds `decision-coverage.md`.
49
53
  - `/rite-define` adds `architecture.md`, `plan.md`, `tasks.md`, and
50
54
  `traceability.md`.
55
+ - `/rite-vet` adds `eng-review.md` and `test-plan.md`.
51
56
  - Later phases add only the artifact they own. Do not create optional files as
52
57
  empty placeholders; absence means the phase has not produced that artifact.
53
58
  - Each artifact starts with a summary and links to deeper source files instead of
@@ -61,7 +66,7 @@ canonical files and preserves aliases rather than deleting old ones.
61
66
  # <Feature> Workspace
62
67
  phase: spec
63
68
  status: running
64
- next_action: /rite-define after spec readiness passes
69
+ next_action: /rite-clarify after spec readiness passes
65
70
  last_updated: <date>
66
71
 
67
72
  ## Artifact map
@@ -69,6 +74,7 @@ last_updated: <date>
69
74
  | --- | --- |
70
75
  | brief.md | Objective and bounds |
71
76
  | spec.md | Product contract |
77
+ | decision-coverage.md | Clarification verdict; absent until /rite-clarify |
72
78
  | architecture.md | Technical map; absent until /rite-define |
73
79
  | plan.md | Technical approach; absent until /rite-define |
74
80
  | tasks.md | Vertical slices; absent until /rite-define |
@@ -79,7 +85,8 @@ last_updated: <date>
79
85
  | Phase / role | Read |
80
86
  | --- | --- |
81
87
  | Spec | brief.md, spec.md, questions.md |
82
- | Build | state.md, tasks.md, plan.md |
88
+ | Clarify | spec.md, decisions.md, assumptions.md, questions.md |
89
+ | Build | state.md, decision-coverage.md, eng-review.md, test-plan.md, tasks.md, plan.md |
83
90
  | Review | traceability.md, evidence.md, decisions.md |
84
91
 
85
92
  ## Blocking gates
@@ -100,6 +107,8 @@ None.
100
107
  | slice_mode | none |
101
108
  | risk | none |
102
109
  | next_action | <single command + reason> |
110
+ | return_phase | <later phase; retrofit clarification only> |
111
+ | return_next_action | <saved command; retrofit clarification only> |
103
112
 
104
113
  ## Awaiting human
105
114
  Only present when status is awaiting_human.
@@ -112,7 +121,8 @@ Only present when status is awaiting_human.
112
121
 
113
122
  `state.md` is a compact cursor, not a history file. Put proof in `evidence.md`,
114
123
  decisions in `decisions.md`, assumptions in `assumptions.md`, and drift in
115
- `drift.md`.
124
+ `drift.md`. Omit both `return_*` rows outside a later-phase `/rite-clarify`
125
+ retrofit; `devrites-engine clarify-return` owns their atomic lifecycle.
116
126
 
117
127
  ## questions.md entry format
118
128
 
@@ -5,15 +5,13 @@ argument-hint: "[feature-slug] [--mode expand|selective|hold|reduce]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- # /rite-temper: temper the spec before you plan
8
+ # /rite-temper: review scope and risk before planning
9
9
 
10
- Take a readied spec and **temper** it: heat it (raise ambition on the *outcome*), then
11
- quench it (pre-mortem + prune the *solution surface*): stronger and less brittle. The one
12
- DevRites step that decides scope/ambition on a written spec and folds the result into the
13
- canonical contract, so `/rite-define` plans the **hardened** spec. Optional for small work
14
- (significance-gated: auto-skips low-stakes specs), but always invoked inside
15
- `/rite-autocomplete`. **Read the active workspace first**; if there's no readied
16
- `spec.md`, tell the user to run `/rite-spec`.
10
+ Review a readied spec for outcome ambition, scope, pre-mortem risks, and unnecessary
11
+ solution surface. Fold accepted decisions into the canonical contract before
12
+ `/rite-define`. This step is optional for small work and skips low-stakes specs, but
13
+ `/rite-autocomplete` always invokes it. **Read the active workspace first**; if there
14
+ is no readied `spec.md`, tell the user to run `/rite-spec`.
17
15
 
18
16
  ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
19
17
  Pull on demand: `patterns.md` +
@@ -23,65 +21,70 @@ invent one), `documentation.md` (ADR-style `decisions.md` entries), `afk-hitl.md
23
21
  that needs more than the default pre-mortem) selected by the section's risk).
24
22
 
25
23
  ## Operating rules
26
- - **Ambition on outcomes, minimalism on the surface.** Raise the success bar and solve the
27
- *real* problem; never add speculative capability/abstraction. The reconciliation hinge:
28
- bigger ambition, smaller surface.
29
- - **Every scope change routes through the Spec Drift Guard:** it only becomes real by being
30
- written into `spec.md` as a recorded, confirmable decision. Expansion is **opt-in** (HITL
24
+ - **Raise outcome ambition without expanding the solution unnecessarily.** Solve the
25
+ underlying problem without adding speculative capability or abstraction.
26
+ - **Route every scope change through the Spec Drift Guard.** A scope change takes effect
27
+ only when `spec.md` records the confirmed decision. Expansion is **opt-in** (HITL
31
28
  confirm; AFK pauses: see autocomplete policy). Nothing auto-grows into the build.
32
- - **Bound ambition by reversibility.** Auth / migration / public-API / data-model touches get
33
- the *opposite* of ambition: maximum conservatism; they always pause (irreversible-risk list).
29
+ - **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
30
+ data-model changes always pause under the irreversible-risk list.
34
31
  - **Honest verdict.** Never round "needs work" up to "ready"; record every scope call's *why*.
32
+ - **Search before asking.** Apply `afk-hitl.md` decision ownership; only human-owned calls
33
+ enter the interactive walk.
35
34
  - **You write; the reviewer judges.** You are the single canonical writer (`strategy.md` +
36
35
  the spec edits); the reviewer agent is read-only.
37
- - **Demand the spec-quality checklists for big features.** `/rite-temper` only fires on
38
- significant specs: exactly where vague requirement prose is most expensive. Before hardening,
36
+ - **Require spec-quality checklists for significant features.** Before hardening,
39
37
  confirm `checklists/<domain>.md` exist and pass (`rite-spec/reference/spec-checklists.md`); a
40
38
  scope expansion you fold in **adds its own** rows (new Success/Acceptance criteria get
41
- "unit-tested for English" too). A folded expansion with an unquantified criterion is a CRITICAL
42
- fail that re-opens the readiness gate.
39
+ checklist rows too). A folded expansion with an unquantified criterion is a CRITICAL
40
+ failure that reopens the readiness gate.
43
41
 
44
42
  ## Workflow
45
43
  0. **Read `.claude/skills/devrites-lib/reference/standards/core.md`**, then run
46
44
  `devrites-engine preamble` for deterministic workspace orientation.
47
- Then read the workspace: `spec.md` (+ `decisions.md`,
45
+ Then read the workspace: `spec.md`, `decision-coverage.md` (+ `decisions.md`,
48
46
  `assumptions.md`, `design-brief.md` if UI), `state.md`. Require `Spec gate: passed`: else
49
- STOP → `/rite-spec`. If a plan already exists, scope changes route through `/rite-plan
47
+ STOP → `/rite-spec`. Require `Decision coverage: CLEAR`: else STOP
48
+ `/rite-clarify`. If a plan already exists, scope changes route through `/rite-plan
50
49
  repair` (record in `drift.md`), not a blind spec edit.
51
50
  1. **Significance test:** [`reference/significance.md`](reference/significance.md). Low-stakes
52
- / shape-not-meaning work → write the one-line `skipped — low stakes (<trigger>)` verdict to `strategy.md`,
51
+ / shape-not-meaning work → write the exact one-line `skipped — low stakes (<trigger>)` verdict to `strategy.md`,
53
52
  set `state.md` `Next step: /rite-define`, and recommend it. Otherwise fire the full pass below.
54
53
  2. **FORWARD pass + mode selection:** [`reference/scope-modes.md`](reference/scope-modes.md).
55
54
  First, the **one-sentence-intent test**: state the whole change's intent in a single sentence.
56
55
  If you can't without an "and" that joins two unrelated outcomes, it is **two features**: the
57
- sharpest scope-creep signal there is; recommend splitting the spec (or narrowing this one) before
58
- tempering further. Then diverge on the *outcome* (the 10-star version of the real problem), and
59
- commit **exactly one** scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`)
60
- with its rationale and the **hinge** (what would change the call). `$ARGUMENTS` `--mode` is a
56
+ scope-creep signal; recommend splitting or narrowing the spec before continuing.
57
+ Then consider the 10-star outcome for the underlying problem and choose **exactly one**
58
+ scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`) with its
59
+ rationale and the condition that would change the choice. `$ARGUMENTS` `--mode` is a
61
60
  hint, not a command.
62
61
  3. **INVERSION pass:** pre-mortem in past tense ("it shipped and failed: what went wrong"),
63
62
  each top risk carrying likelihood + mitigation + the slice it will bind to; then the **YAGNI
64
63
  ledger** (each candidate scope item gets the "imagine the later refactor" test; defer unless
65
64
  now-cost is trivial AND deferred-cost is large).
66
- - **Deepen on demand.** When a specific scope call, requirement, or risk needs sharper thinking
67
- than the default pre-mortem gives, pull the 3-5 techniques from
65
+ **Interruption pre-mortem:** audit the spec forecast and assumptions for unresolved behavior,
66
+ proof prerequisites, approvals, access, and irreversible gates. Resolve facts and reversible
67
+ details now; retain only unavailable-pre-code or mandatory action-time checkpoints.
68
+ - **Deepen on demand.** When a scope decision, requirement, or risk needs more analysis
69
+ than the default pre-mortem provides, choose 3-5 techniques from
68
70
  [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) whose *when-to-reach-for-it* matches that
69
71
  section's risk (irreversible decision → Red-Team/Blue-Team + Assumption Audit; sizing → Delphi;
70
- vague requirement → Steelman-then-Attack), offer them, and run the chosen one **on that one
71
- section**. Record what it changed, not that you ran it. Optional: the default passes stand on
72
- their own.
72
+ vague requirement → Steelman-then-Attack), offer them, and run the chosen one **on that
73
+ section**. Record what changed, not the technique name. The default passes remain
74
+ sufficient when no deeper analysis is needed.
73
75
  4. **Score the 9 dimensions:** [`reference/review-dimensions.md`](reference/review-dimensions.md).
74
76
  Cite evidence *before* the band; **gate on the floor** (the weakest dimension, not an average).
75
77
  **Completion:** all nine dimensions have cited evidence, a band, and one explicit floor verdict.
76
- 5. **Walk the findings WITH the human: do not batch-dump.** The artifact is the *output* of an
77
- interactive review, not a substitute for it: surface each material scope call / finding via
78
+ 5. **Review human-owned findings with the human; do not batch them.** `strategy.md`
79
+ records the interactive review but does not replace it. Present each material scope decision through
78
80
  `AskUserQuestion`, one at a time, best-guess + **why**. Each material scope call ends as a
79
81
  **recorded decision**: a resolved `questions.md` qid (HITL) or a `decisions.md` ADR (AFK):
80
- so the walk leaves an auditable trail, not just chat. (AFK gate policy is single-sourced in
82
+ so the review leaves an auditable record outside chat. (AFK gate policy is single-sourced in
81
83
  [`reference/significance.md`](reference/significance.md): `hold-rigor` + `reduce-to-MVP`
82
84
  auto-apply, **any `expand` is a blocking pause**, irreversible-risk always pauses.)
85
+ Apply objective clarity, mitigation, and assumption fixes directly.
83
86
  6. **Write `strategy.md` + fold back:** [`reference/strategy-template.md`](reference/strategy-template.md).
84
- **One drift rule (decide by whether a plan exists):** *no `plan.md` yet* (the normal pre-define
87
+ **Choose the drift path based on whether a plan exists:** *no `plan.md` yet* (the normal pre-define
85
88
  case) → update `spec.md` **through the Spec Drift Guard**. *Success criteria* **and**
86
89
  *Acceptance criteria* for each opt-in expansion / cut, **Non-goals** for every deferred item,
87
90
  *Constraints* **and** *Risks* the pre-mortem demands, and the gaps/decisions table; *`plan.md`
@@ -90,22 +93,33 @@ that needs more than the default pre-mortem) selected by the section's risk).
90
93
  decision · why-not · what-would-change-it) and `assumptions.md` (every "we'll probably need X" →
91
94
  assumption-to-verify). **Every scope delta must carry a recorded human decision**: a resolved
92
95
  `questions.md` qid (HITL) or a `decisions.md` ADR (AFK within the ceiling); a folded change with
93
- no recorded decision is the batch-dump failure. **Re-check the spec Readiness gate** (it fails if
94
- any folded scope delta lacks its decision). Update `state.md`: `Phase: temper`,
96
+ no recorded decision is invalid. **Re-check the spec Readiness gate** (it fails if
97
+ any folded scope delta lacks its decision or leaves a foreseeable human build choice).
98
+ After any edit to `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or
99
+ `questions.md`, re-scan the affected coverage rows, assumption audit, residual uncertainty,
100
+ and closed gates. Partial/Missing, an unowned material assumption, or an open
101
+ blocking/escalating question routes `/rite-clarify`/HITL; never refresh past it. Only after the
102
+ matrix is re-closed, run `devrites-engine readiness-digest coverage <slug>` and replace the
103
+ complete `Coverage inputs SHA-256` line in `decision-coverage.md`.
104
+ Update `state.md`: `Phase: temper`,
95
105
  `Next step: /rite-define`; on a blocking pause (expand / irreversible / a dimension still below
96
106
  bar) write the `Awaiting human` block + `Status: awaiting_human` before stopping.
97
107
  7. **Adversarial verification loop:** dispatch [`devrites-strategy-reviewer`](../../agents/devrites-strategy-reviewer.md)
98
- (fresh context, **only** the hardened spec + the rubric: no authoring reasoning). Resolve
108
+ through the file-backed fresh-context contract in
109
+ [`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** the hardened
110
+ spec + rubric: no authoring reasoning. Resolve
99
111
  actionable findings by editing `spec.md`/`strategy.md`, re-dispatch; **cap ≤3 iterations**. A
100
- dimension still below bar after 3 blocking question (HITL) or AFK gate-ceiling entry;
101
- irreversible-risk findings always pause. If sub-agents are unavailable, do the independent
102
- rubric pass yourself in a separate read, discarding the authoring reasoning (a flagged
103
- fallback, not an independent review).
112
+ dimension still below bar after 3 is classified by decision ownership: a product/scope/risk
113
+ choice becomes a blocking question; an objective spec defect stays blocked with the exact
114
+ required edit and routes to `/rite-spec`, not `/rite-resolve`. Irreversible-risk findings
115
+ always pause. Use the shared capability ladder; an inline final-rung pass is labeled
116
+ `independence: fallback`, never an independent review. After an accepted edit to a
117
+ coverage-bound input, repeat step 6's revalidation and digest refresh before handoff.
104
118
  8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `/rite-define`.
105
119
 
106
- > **Mid-flight discipline.** When tempted to dump findings into `strategy.md` and skip the
107
- > walk-through, expand the surface (not the outcome), grow scope without the Drift Guard, or
108
- > score before citing evidence: see [`reference/anti-patterns.md`](reference/anti-patterns.md).
120
+ > **Mid-flight discipline.** Do not replace the interactive review with `strategy.md`,
121
+ > expand implementation surface without need, grow scope outside the Drift Guard, or score
122
+ > before citing evidence. See [`reference/anti-patterns.md`](reference/anti-patterns.md).
109
123
 
110
124
  ## Output
111
125
 
@@ -115,12 +129,13 @@ Default success shape:
115
129
  ```
116
130
  Done: spec tempered for <slug>; mode <expand|selective|hold-rigor|reduce-to-MVP|skipped-low-stakes>.
117
131
  Changed: strategy.md, spec.md, decisions.md, assumptions.md
118
- Evidence: dimension floor <band>; reviewer loop <n>; spec readiness re-checked pass
132
+ Evidence: dimension floor <band>; reviewer loop <n>; spec readiness + decision coverage re-checked pass
119
133
  Open: <none | n deferred non-goals>
120
134
  Next: /rite-define
121
135
  Record: .devrites/work/<slug>/strategy.md
122
136
  ↻ Hygiene: /clear before /rite-define
123
137
  ```
124
138
  If readiness is blocked, use the shared `Stopped / blocked` form and route `Fix:`
125
- to `/rite-spec`; do not recommend `/rite-define`.
139
+ to `/rite-clarify` for an uncovered decision surface or `/rite-spec` for an objective
140
+ spec defect; do not recommend `/rite-define`.
126
141
  **DO NOT plan, slice, or write code here**. That's `/rite-define` and `/rite-build`.
@@ -1,23 +1,25 @@
1
- # Review dimensions + the floor-gate rubric
1
+ # Review dimensions and floor-gate rubric
2
2
 
3
- The spec is scored on nine dimensions. Each catches a *different* failure mode: strength in
4
- one never compensates for collapse in another, so the gate is the **floor**, not an average.
3
+ Score the spec on nine dimensions. A strong dimension cannot offset a failed one, so
4
+ the gate uses the **lowest band**, not an average.
5
5
 
6
6
  ## The nine dimensions
7
- 1. **Problem altitude & ambition:** is this solving the *right* problem at the right altitude,
8
- or timidly improving the obvious path / over-reaching past the real need? Here, *under-
9
- reaching* on the outcome is a failure, not just over-building.
10
- 2. **Scope honesty & boundary:** are Non-goals explicit? Is there a Minimum Usable Subset and a
11
- clear IN/OUT line? Flags grab-bags and a missing "Won't-have-this-time".
12
- 3. **Premise & alternatives:** are the load-bearing premises stated and challenged, and is at
7
+ 1. **Problem choice and ambition:** does the spec solve the underlying problem, or only
8
+ make a minor improvement to the obvious path? It may also reach beyond the actual need.
9
+ Both insufficient outcome ambition and over-building are failures.
10
+ 2. **Scope and boundary:** are non-goals explicit? Is there a Minimum Usable Subset and
11
+ a clear IN/OUT line? Flag unrelated bundles and a missing "Won't-have-this-time".
12
+ 3. **Premise and alternatives:** are the consequential premises stated and challenged, and is at
13
13
  least one genuinely different approach (different data model / flow / boundary) considered
14
14
  with its trade-off? ("Alternatives considered" is one of the most useful parts of a spec.)
15
- 4. **Pre-mortem risk coverage:** run in prospective hindsight; each top risk carries likelihood
16
- + mitigation + the slice that owns it. **Unmitigated top risks are gating.**
15
+ 4. **Pre-mortem risk coverage:** assess the feature as if it shipped and failed. Each top risk carries likelihood
16
+ + mitigation + the slice that owns it. The interruption pre-mortem accounts for foreseeable
17
+ human prerequisites and action-time approvals instead of deferring generic uncertainty to
18
+ build. **Unmitigated top risks are gating.**
17
19
  5. **Over-engineering / YAGNI:** speculative capability, unused extension points, premature
18
20
  abstraction, second-system bloat. Apply the pack's standard (`patterns.md`) + the "imagine
19
21
  the later refactor" test. Defer unless now-cost is trivial AND deferred-cost is large.
20
- 6. **Acceptance testability & done-ness:** every acceptance criterion measurable, technology-
22
+ 6. **Acceptance testability and completion:** every acceptance criterion measurable, technology-
21
23
  agnostic, and comparable **down to a baseline** ("better than the current workaround"), not
22
24
  up to an unbounded ideal. Vague adjectives ("fast/robust/intuitive") and "handles X
23
25
  gracefully" are flagged.
@@ -34,9 +36,8 @@ UI specs also inherit `rite-polish/reference/anti-ai-slop.md` at the cross-cutti
34
36
  dimension (design-system fit, anti-AI-slop), but `/rite-temper` reviews the *spec/design-brief*,
35
37
  not pixels; the built UI is judged later by `devrites-frontend-reviewer`.
36
38
 
37
- ## The rubric: coarse bands, evidence first
38
- Score each dimension on a **labeled band**, never a 1-10 float or a composite number (labels do
39
- the work: matches the pack's severity-vocabulary stance):
39
+ ## Rubric
40
+ Score each dimension on a **labeled band**, never a 1-10 float or composite number:
40
41
 
41
42
  | Band | Meaning |
42
43
  |---|---|
@@ -45,9 +46,8 @@ the work: matches the pack's severity-vocabulary stance):
45
46
  | **thin** | Under-addressed; a real gap to close before planning (Important). |
46
47
  | **broken** | Missing or wrong in a way that will cost a redo (Critical). |
47
48
 
48
- **Cite evidence before the band**: name the spec line / absence that justifies it; never score
49
- first and rationalize after. Borderline dimensions may be sampled twice; take the **lower** band
50
- (don't average up).
49
+ **Cite evidence before assigning the band.** Name the spec line or absence that
50
+ justifies it. Review a borderline dimension twice if needed and use the **lower** band.
51
51
 
52
52
  ## The floor-gate
53
53
  - **Pass** only when every dimension is `adequate` or `strong` **and** no unmitigated top
@@ -57,9 +57,11 @@ first and rationalize after. Borderline dimensions may be sampled twice; take th
57
57
  Suggestion / Nit / FYI**) so they compose with `/rite-review` and `/rite-seal`. `broken` →
58
58
  Critical, `thin` → Important; **FYI is band-independent**: an observation on a `strong` /
59
59
  `adequate` dimension, not a failing band.
60
- - **Don't double-count overlap.** Some dimensions key on the same evidence (e.g. #7
60
+ - **Do not double-count overlap.** Some dimensions use the same evidence (e.g. #7
61
61
  irreversibility & #9 convention-fit both touch codebase realism; #1 ambition & #2 scope both
62
62
  touch over/under-reach). Don't fail two dimensions for the *same* root cause: cite the
63
- evidence once, band it once, so one problem isn't laundered into two floor failures.
64
- - Below-bar dimension after the ≤3-iteration reviewer loop → blocking question (HITL) or AFK
65
- gate-ceiling entry. Irreversible-risk findings always pause regardless of band.
63
+ evidence once and assign one band so one problem does not create two floor failures.
64
+ - Below-bar dimension after the ≤3-iteration reviewer loop → classify by decision ownership:
65
+ product/scope/risk uncertainty becomes a blocking question; an objective prose/coverage defect
66
+ routes back to `/rite-spec` without inventing a human decision. Irreversible-risk findings
67
+ always pause regardless of band.