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
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: rite-upgrade
3
+ description: User-invoked semantic upgrade for an active legacy DevRites workspace. Reconciles unfinished planning with the installed workflow contract while preserving completed work and history.
4
+ argument-hint: "[feature-slug]"
5
+ user-invocable: true
6
+ disable-model-invocation: true
7
+ ---
8
+
9
+ # /rite-upgrade: bring an active workspace onto the current contract
10
+
11
+ Use this when a workspace created under older DevRites rules cannot safely continue with
12
+ the installed pack. It reconciles the workspace to the current desired state; it does not
13
+ replay a chain of release-specific scripts. Structural `devrites-engine migrate` remains a
14
+ separate first step.
15
+
16
+ Current semantic contract: `devrites.readiness-artifacts.v2`.
17
+
18
+ ## Rules consulted
19
+
20
+ Read `devrites-lib/reference/standards/core.md`,
21
+ `devrites-lib/reference/standards/agents.md`,
22
+ `devrites-lib/reference/workspace-artifact-schema.md`, and the current Clarify, Define,
23
+ Plan, Vet, Converge, and Build phase contracts needed by the assessment.
24
+
25
+ ## Invariants
26
+
27
+ - Never edit application source, tests, dependencies, Git state, or historical evidence.
28
+ - Preserve completed-slice identity, status, acceptance, dependencies, historical proof,
29
+ answered questions, and `touched-files.md`.
30
+ - Reassess only unfinished planning. Archived or `done` workspaces are a no-op.
31
+ - Never downgrade a workspace that names a future semantic contract.
32
+ - This is a recovery command, not a lifecycle phase; never write `Phase: upgrade`.
33
+ - Durable plans contain portable repository commands, not RTK/local aliases, user-specific
34
+ absolute paths, or temporary proof trees. Runtime packets may name an execution adapter;
35
+ evidence may record both logical and executed forms.
36
+ - Ask at most one coherent question, and only for product, policy, irreversible risk, or
37
+ human-only access/action. Retry and repair authorization is agent-owned.
38
+ - The explicit `/rite-upgrade` invocation authorizes the bounded workspace reconciliation.
39
+ The root remains the only canonical writer.
40
+
41
+ ## Workflow
42
+
43
+ 0. **Orient and normalize structure.** Read the active slug or `$ARGUMENTS`. Run:
44
+ ```bash
45
+ devrites-engine doctor --verbose; echo "doctor rc=$?"
46
+ ```
47
+ A binary/pack integrity mismatch stops at `/rite-doctor`; do not run migration or
48
+ mutate semantic artifacts. Once healthy, orient without writing:
49
+ ```bash
50
+ devrites-engine preamble [feature-slug]
51
+ devrites-engine snapshot [feature-slug]
52
+ ```
53
+ A missing workspace stops at `/rite-spec`; an archived or `Status: done` workspace is
54
+ a no-op. For an active healthy workspace, run:
55
+ ```bash
56
+ devrites-engine migrate
57
+ devrites-engine preamble [feature-slug]
58
+ devrites-engine snapshot [feature-slug]
59
+ ```
60
+ If every semantic artifact names the current contract and `build-readiness` passes,
61
+ report a no-op.
62
+ 1. **Freeze the preservation baseline.** Create the standard orchestrator-controlled
63
+ `agent-packet/v1` baseline. Include exact paths for current phase/artifact contracts,
64
+ `state.md`, `spec.md`, `decision-coverage.md`, `architecture.md`, `plan.md`, `tasks.md`,
65
+ `traceability.md`, `test-plan.md`, `eng-review.md`, `questions.md`, `decisions.md`,
66
+ `assumptions.md`, `drift.md`, `evidence.md`, and `touched-files.md` when present. Record
67
+ the source diff identity plus the protected identity/status/acceptance/dependency
68
+ fields for every completed slice and each preserved artifact identity. Freeze the
69
+ workspace while it is assessed.
70
+ 2. **Classify from fresh context.** Dispatch `devrites-upgrade-planner` with objective
71
+ `reconcile this workspace with devrites.readiness-artifacts.v2`, the exact baseline,
72
+ and budgets `25 files / 2,000 loaded lines / 180 result lines`. Require one validated
73
+ `upgrade-assessment`. The agent writes nothing and asks nothing.
74
+ 3. **Reconcile ownership.** Reject stale, malformed, or preservation-breaking advice.
75
+ Dispatch `devrites-evidence-scout` only for a bounded missing fact. Drop an open
76
+ retry/tool-repair question with `devrites-engine resolve --drop <qid>
77
+ "superseded by explicit semantic upgrade; agent-owned recovery"` and continue. Keep a
78
+ genuine existing human gate intact; if a newly discovered human-owned choice is
79
+ unavoidable, persist one option packet and stop.
80
+ 4. **Apply current desired state in the root.**
81
+ - Remove obsolete old-engine reconstruction, old workflow hashes, temporary proof
82
+ recipes, and host-local wrappers from active `plan.md`, `tasks.md`, and
83
+ `test-plan.md`. Keep historical evidence unchanged.
84
+ - Re-run Clarify against unfinished intent until `Decision coverage: CLEAR`; it writes
85
+ exactly one `DevRites contract: devrites.readiness-artifacts.v2` field. Do not stamp a
86
+ marker over stale content.
87
+ - Re-run Temper only where unfinished scope still needs strategic review.
88
+ - For unstarted planning, use the current Define contract. When active planning needs
89
+ normalization, dispatch `devrites-plan-drafter` in repair mode and reconcile only
90
+ pending slices. Preserve all completed slices without changing their protected fields.
91
+ For all-built active work, normalize only gate-required planning fields. Use Converge
92
+ only when live code and recorded intent genuinely differ.
93
+ - Invalidate stale engineering readiness after any planning edit. Run the full current
94
+ Vet contract, including its fresh plan reviewer, portable proof commands, preflight,
95
+ and digest refresh. Vet writes exactly one current contract field to `test-plan.md`
96
+ and `eng-review.md`.
97
+ 5. **Verify preservation and readiness.** Recompute the frozen source diff, every protected
98
+ completed-slice field, `evidence.md`, answered-question records, and `touched-files.md`;
99
+ any mismatch is a hard stop and must be restored before proceeding. Then run:
100
+ ```bash
101
+ devrites-engine build-readiness [feature-slug]; echo "readiness rc=$?"
102
+ ```
103
+ Follow the gate's current route for `2` through `7`; `8` means the semantic
104
+ reconciliation is still incomplete. Finish only at `0`. Preserve the original active
105
+ build cursor when it still names the next pending slice; otherwise use the current
106
+ deterministic next action.
107
+ 6. **STOP.** Do not start Build. A second `/rite-upgrade` must take the current-contract
108
+ no-op path.
109
+
110
+ ## Output
111
+
112
+ Run `devrites-engine progress`, then use the shared completion reply contract in
113
+ `devrites-lib/reference/reply-contract.md`:
114
+
115
+ ```text
116
+ Done: workspace <slug> upgraded to devrites.readiness-artifacts.v2.
117
+ Changed: <active planning artifacts only | none; already current>
118
+ Evidence: build-readiness rc=0; source/completed slices/history preserved
119
+ Open: <none | one genuine human gate>
120
+ Next: <snapshot next command>
121
+ Record: .devrites/work/<slug>/state.md
122
+ ↻ Hygiene: /clear before the next lifecycle step
123
+ ```
124
+
125
+ On a no-op, say so and keep the snapshot's current next command.
@@ -5,44 +5,31 @@ argument-hint: "[slug] [--cross-model] [--full]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- # /rite-vet: vet the plan before you build
8
+ # /rite-vet: review the plan before build
9
9
 
10
- Take a defined plan and **vet** it the way a senior staff engineer would in a plan review:
11
- challenge the scope, walk architecture / plan code-quality / test-coverage / performance,
12
- calibrate every finding by confidence (and refuse to emit one you can't trace to a quoted
13
- line), design the test coverage the build will target, and map the failure modes and
14
- parallel lanes: *before* `/rite-build` writes a line. The one DevRites step that hardens
15
- the **implementation plan** at the engineering level and folds the result into the canonical
16
- contract, so the build follows a reviewed plan. Runs on **every** plan (depth scales to
17
- stakes; never skipped) and is always part of `/rite-autocomplete`; `--cross-model` adds a
18
- different-model second opinion. **Read the active workspace first**; if there's no
19
- `plan.md`, tell the user to run `/rite-define`.
10
+ Review a defined plan for implementation scope, architecture, code quality, test
11
+ coverage, performance, failure modes, and parallel work. Cite the source for every
12
+ finding and design the test coverage that `/rite-build` will use. Fold accepted
13
+ engineering changes into the canonical plan before code is written. Run this step on
14
+ **every** plan; depth varies with risk. `/rite-autocomplete` always includes it, and
15
+ `--cross-model` adds a second opinion from another model. **Read the active workspace
16
+ first**; if there is no `plan.md`, tell the user to run `/rite-define`.
20
17
 
21
- This is the engineering counterpart to `/rite-temper` (which is strategic, on the *spec*).
22
- Temper decides *the right thing*; vet decides *the right way to build it*.
18
+ `/rite-temper` reviews product scope and strategy in the spec. `/rite-vet` reviews how
19
+ to implement that settled scope.
23
20
 
24
21
  ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
25
- Pull on demand: `principles.md` (the project
26
- invariants gate (how `.devrites/principles.md` is scored pass/fail), `patterns.md` +
27
- `coding-style.md` (the over-engineering / reuse-first / YAGNI rubric) reuse the pack's
28
- standard), `testing.md` (the test-coverage axis) + `spec-grammar.md` (when the spec uses
29
- structured Requirement/Scenario blocks, each scenario is a coverage unit `test-plan.md` must
30
- map), `performance.md` (the perf axis),
31
- `error-handling.md` (failure-mode coverage), `development-workflow.md` (parallel lanes,
32
- definition of done), `afk-hitl.md` (irreversible-risk list + gate ceiling),
33
- `developer-experience.md` (when the plan ships a developer-facing surface (API / CLI / SDK /
34
- webhook / config / error messages / getting-started) predict the DX scorecard here),
35
- `elicitation.md` (the move-set to deepen an axis finding or a risky design choice: selected by
36
- the section's risk: Tournament for two viable designs, Delphi for a shaky estimate, Assumption
37
- Audit for a plan resting on unstated beliefs).
38
- - `definition-of-done.md`: standing Done bar: acceptance mapped, fresh proof, no open hard gates, scoped edits, rollback/docs where needed.
22
+ Pull the standard named by the active axis: `principles.md`, `patterns.md`,
23
+ `coding-style.md`, `testing.md`, `spec-grammar.md`, `performance.md`,
24
+ `error-handling.md`, `development-workflow.md`, `afk-hitl.md`,
25
+ `developer-experience.md`, `elicitation.md`, and `definition-of-done.md`.
39
26
 
40
27
 
41
28
  ## Operating rules
42
- - **Review the plan, not the spec's ambition.** The spec's scope/ambition is `/rite-temper`'s
43
- job and is treated as settled here. Vet asks *given this scope, is this the right, simplest,
44
- best-tested, lowest-risk way to build it*, and challenges only implementation scope creep.
45
- - **You harden the plan directly; the reviewer judges.** Vet *is* the plan-hardening phase, so
29
+ - **Review implementation, not product ambition.** Treat the scope established by
30
+ `/rite-temper` as settled. Check whether the plan is simple, well tested, and low risk,
31
+ and challenge only implementation scope creep.
32
+ - **The root updates the plan; the reviewer judges.** Vet is the plan-hardening phase, so
46
33
  behavior-preserving plan refinements (test requirements, tightened scope boundaries, ordering,
47
34
  parallel lanes, error-handling + failure-mode coverage) are written straight into
48
35
  `plan.md` / `tasks.md` / `test-plan.md`. You are the single canonical writer. A finding that
@@ -50,80 +37,71 @@ Audit for a plan resting on unstated beliefs).
50
37
  through the **Spec Drift Guard** (record in `drift.md`, recorded decision, then `/rite-plan
51
38
  repair` for any structural reslice). Nothing that grows the build's scope lands without a
52
39
  recorded human decision.
53
- - **Confidence over assertion.** Every finding carries a confidence band; a finding you cannot
40
+ - **Support every finding.** Every finding carries a confidence band; a finding you cannot
54
41
  back by quoting the plan/spec line (or the code it references) is forced to low confidence and
55
42
  suppressed from the main report: see the verification gate in [`reference/review-axes.md`](reference/review-axes.md).
56
- - **Bound rigor by reversibility.** Auth / migration / public-API / data-model touches get
57
- maximum conservatism and always pause (irreversible-risk list), regardless of run mode.
58
- - **Honest verdict, gated on the floor.** Never round "thin" up to "ready"; the axis verdict is
59
- the weakest finding, not an average. Record every call's *why*.
43
+ - **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
44
+ data-model changes always pause under the irreversible-risk list.
45
+ - **Use the lowest axis band.** Never round `thin` up to `ready`; do not average the
46
+ axes. Record the reason for every decision.
47
+ - **Search before asking.** Apply `afk-hitl.md` decision ownership: verify facts and fold
48
+ reversible technical hardening into the plan; ask only about human-owned choices.
49
+ - **Root hardens; reviewer judges.** Dispatch follows the file-backed contract in
50
+ [`agents.md`](../devrites-lib/reference/standards/agents.md). The root owns every
51
+ question, decision, fold-back, readiness verdict, and workspace write.
60
52
 
61
53
  ## Workflow
62
54
  0. **Read `.claude/skills/devrites-lib/reference/standards/core.md`** first.
63
- Then **run the shared orientation preamble**. It prints `state.md`, the artifacts present,
64
- the run mode (HITL/AFK), and the open-question tally by gate, so you orient deterministically
65
- instead of re-deriving state from raw Markdown:
55
+ Then run the shared orientation preamble. It prints `state.md`, present artifacts,
56
+ run mode, and open-question totals:
66
57
  ```bash
67
58
  devrites-engine preamble
68
59
  devrites-engine snapshot
69
60
  ```
70
- Then the workspace: `plan.md`, `tasks.md`, `spec.md`
61
+ Then the workspace: `plan.md`, `tasks.md`, `spec.md`, `decision-coverage.md`
71
62
  (for intent + acceptance), `strategy.md` (if `/rite-temper` ran), `decisions.md`,
72
63
  `assumptions.md`, `design-brief.md` (if UI), `state.md`. Require a `plan.md` whose
73
- Readiness gate passes (or `Plan approved`): else STOP → `/rite-define`. Prefer a
64
+ Readiness gate passes (or `Plan approved`): else STOP → `/rite-define`. Require
65
+ `Decision coverage: CLEAR`: else STOP → `/rite-clarify`. Prefer a
74
66
  code-intelligence index if available (see
75
67
  `.claude/skills/devrites-lib/reference/standards/tooling.md`) for placement / blast-radius / reuse checks.
76
- 1. **Calibrate depth. Never skip this step.** See [`reference/depth.md`](reference/depth.md). Every plan is
77
- vetted; what scales is the *depth*. A simple, single-module, reversible plan with no
78
- irreversible-risk / data-model / new-pattern trigger → **light pass** (brief scope check + a
79
- one-line scan per axis + the acceptance→test map). Any full-pass trigger (or `--full`) → the
80
- **full pass** below. There is no skip: every feature leaves a recorded engineering verdict and
81
- a `test-plan.md` coverage map.
82
- 2. **Scope Challenge (blocking gate):** [`reference/review-axes.md`](reference/review-axes.md)
83
- §0. Search prior archived decisions for the plan's main nouns before asking the human to re-decide:
84
- `devrites-engine decisions search "<2-4 plan nouns>"` (run `decisions index` first if needed).
85
- What already exists that solves a sub-problem (reuse vs rebuild)? The minimum diff for the
86
- stated acceptance? Complexity smell (the plan touches **>8 files** or adds **>2 new
87
- services/modules**) **STOP and ask** before any axis. Verify each new pattern / infra choice
88
- against a built-in (dispatch `devrites-source-driven`); completeness check (with AI, full
89
- coverage is ~100× cheaper than the human-hours saved by a shortcut: prefer complete); and a
90
- distribution check for any new artifact.
91
- 2a. **Cross-artifact analyze gate + principles / charter / conventions gate.** Before the axes, run
92
- one read-only consistency+coverage pass over `spec.md` + `plan.md` + `tasks.md` (+ `traceability.md`
93
- if present); any **CRITICAL**: an acceptance criterion with no slice, a slice satisfying no
94
- criterion, a contradiction across artifacts, a requirement stated twice with conflicting terms:
95
- **blocks `/rite-build`** until resolved. The engine covers the deterministic floor (AC coverage,
96
- orphan slices, vague adjectives); you add the semantic passes it can't: **terminology drift**
97
- (the same concept named differently across artifacts: normalize to the spec's term) and
98
- **duplicated or conflicting requirements**. Then score
99
- the three project gates as explicit **pass/fail** on the planned approach:
100
- - **Principles** (`.devrites/principles.md`, rubric in [`principles.md`](../devrites-lib/reference/standards/principles.md)).
101
- The authored invariants the project will not break. A plan that bakes in a violation of a
102
- declared principle with **no recorded, human-approved exception** is a **top-severity** finding,
103
- walked **first**, and **blocks `/rite-build`**. Absent or empty file → none declared → passes;
104
- **never block for the absence of principles**. A genuine need to break one routes to a scoped,
105
- dated exception in the principles register: never a silent work-around (adding the exception is
106
- an irreversible-risk decision: it always pauses for a human, even in AFK).
107
- - **The anti-slop charter** (`coding-style.md` + `prose-style.md`) and **the conventions ledger**
108
- (`.devrites/conventions.md`): a plan that bakes in a god-module, a speculative abstraction with
109
- no second caller, or a dependency where an in-repo option exists is a **top-severity** violation.
110
- **Re-check all three after the axes harden the plan** (post-design). Write the result to `analysis.md`.
68
+ 1. **Set review depth. Never skip this step.** Apply
69
+ [`reference/depth.md`](reference/depth.md) exactly. Every plan leaves a recorded
70
+ engineering verdict and `test-plan.md` coverage map.
71
+ 1a. **Required initial independent pass (light and full).** Before hardening or writing,
72
+ freeze the candidate and dispatch `devrites-plan-reviewer` with the plan/spec packet.
73
+ Await and validate its report. Light depth reduces the inline hardening, not this
74
+ independent gate. Dispatch the DevEx predictor alongside it when triggered (within the
75
+ maximum-three read-only budget).
76
+ 2. **Scope challenge (blocking gate):** apply §0 of
77
+ [`reference/review-axes.md`](reference/review-axes.md). Search prior decisions first:
78
+ `devrites-engine decisions search "<2-4 plan nouns>"`. Harden to the smallest
79
+ behavior-preserving plan; ask only when that changes acceptance or explicit architecture policy.
80
+ 2a. **Cross-artifact analyze + project gates.** Run the deterministic gate, add the
81
+ semantic terminology/conflict pass, and score principles, the anti-slop charter, and
82
+ conventions using their named standards. Any Critical blocks `/rite-build`; a principle
83
+ exception is always human-owned, while an absent principles file passes. Re-check after
84
+ hardening and write the result to `analysis.md`.
111
85
  ```bash
112
86
  devrites-engine analyze; echo "analyze rc=$?"
113
87
  ```
114
- 3. **Four-axis review:** [`reference/review-axes.md`](reference/review-axes.md), through the
115
- senior-engineer lenses in [`reference/eng-lenses.md`](reference/eng-lenses.md): **Architecture
116
- Plan code-quality Test-coverage design Performance**, ≤8 findings per axis, each
117
- `[severity] (confidence: N/10) <ref> finding`. **Walk findings WITH the human, one at a
118
- time** via `AskUserQuestion` (best-guess + why + options with effort/risk/maintenance, mapped
119
- to a rule): the artifact is the *output* of the review, not a substitute for it.
120
- When an axis finding hinges on a genuinely open design choice or a shaky estimate, deepen that
121
- one finding with a fitting technique from
122
- [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) (Tournament for two viable
123
- designs, Delphi for the estimate, Assumption Audit for unstated beliefs) before you band it. (AFK ceiling
124
- single-sourced in [`reference/depth.md`](reference/depth.md): hardening /
125
- coverage-increasing findings auto-apply; **anything that grows scope or changes acceptance is a
126
- blocking pause**; irreversible-risk always pauses.)
88
+ 2b. **Build-entry preflight.** Using [`reference/artifacts.md`](reference/artifacts.md), verify
89
+ each exact proof command/cwd/tool/version and prerequisite; package names against their
90
+ authoritative source plus nearest manifest/lockfile; parser-sensitive planned syntax in an
91
+ isolated fixture; and the existing UI/browser harness where applicable. Record complete
92
+ SHA-256 provenance inputs. This is non-mutating and need not make future behavior pass.
93
+ 2c. **Implementation-readiness audit.** Goal-backward map every REQ/AC/NFR, interaction,
94
+ edge/prohibition, and decision-coverage row to a slice and executable proof. Verify
95
+ UX/spec/architecture alignment, producer-consumer contracts, slice independence/order and
96
+ wiring, exact prerequisites, failure paths, operations, observability, rollout, and rollback.
97
+ Fold technical fixes into the plan. Product/risk gaps are `NEEDS CLARIFICATION`
98
+ `/rite-clarify`; technical plan/preflight gaps are `NEEDS REPLAN` → `/rite-plan repair`.
99
+ Neither becomes a build qid.
100
+ 3. **Review four axes:** apply [`reference/review-axes.md`](reference/review-axes.md)
101
+ through [`reference/eng-lenses.md`](reference/eng-lenses.md). Fold verified,
102
+ behavior-preserving technical findings into the plan. Walk only human-owned decisions with
103
+ the human, one coherent option packet at a time. The AFK ceiling remains owned by
104
+ [`reference/depth.md`](reference/depth.md): scope/acceptance changes and irreversible risk pause.
127
105
  4. **Required outputs:** write every shape and fold-back required by
128
106
  [`reference/artifacts.md`](reference/artifacts.md), using the review rules in
129
107
  [`reference/review-axes.md`](reference/review-axes.md). Ground parallelization in:
@@ -131,34 +109,56 @@ Audit for a plan resting on unstated beliefs).
131
109
  devrites-engine lanes plan "$(cat .devrites/ACTIVE 2>/dev/null)"
132
110
  ```
133
111
  Completion: every scenario and acceptance criterion maps to planned proof, every slice is
134
- one-pass implementable, and developer-facing plans have a predicted `devex.md` scorecard.
135
- 4a. **Forge gate (only when `Forge: yes`).** Apply the eligibility and scorecard contract in
136
- [`rite-build/reference/forge.md`](../rite-build/reference/forge.md). Confirm and record
137
- genuinely distinct strategies, or clear the flag; an ineligible Forge never reaches build.
138
- 5. **Write `eng-review.md` + `test-plan.md`, fold back:** [`reference/artifacts.md`](reference/artifacts.md).
139
- `eng-review.md` is the durable record; `test-plan.md` is the build-readable coverage target
140
- (`/rite-build` and `/rite-prove` read it). Harden `plan.md` / `tasks.md` directly for
141
- behavior-preserving refinements; route every acceptance/behavior-changing delta through the
142
- **Spec Drift Guard** (`drift.md` + recorded decision + `/rite-plan repair`). Append
143
- `decisions.md` (one ADR per material call) and `assumptions.md`. Re-run the gate after
144
- every fold-back so a task edit cannot invalidate the earlier pass:
112
+ one-pass implementable, the Build-entry preflight is green or names an owned prerequisite,
113
+ and developer-facing plans have a predicted `devex.md` scorecard. Durable proof commands
114
+ are portable repository commands; host-local wrappers belong only in runtime packets and
115
+ recorded execution evidence.
116
+ 4a. **Forge gate.** `/rite-define` leaves `no` / `none` / `none`; Vet alone promotes under
117
+ [`rite-build/reference/forge.md`](../rite-build/reference/forge.md). Require a costly
118
+ unresolved architecture fork, 2–3 distinct complete contiguous `A`–`C` strategies, every
119
+ slice AC plus exact `test-plan.md` rows/commands, and `manifest-env-v1` as an explicit
120
+ Build-entry prerequisite. After final fold-back the three fields must agree, else clear
121
+ Forge before READY.
122
+ 5. **Write and fold back every artifact required by
123
+ [`reference/artifacts.md`](reference/artifacts.md).** Route every
124
+ acceptance/behavior-changing delta through the **Spec Drift Guard** (`drift.md` +
125
+ recorded decision + `/rite-plan repair`). After any edit to
126
+ `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or `questions.md`, re-scan the
127
+ affected coverage rows, assumption audit, residual uncertainty, and closed gates.
128
+ Partial/Missing, an unowned material assumption, or an open blocking/escalating question is
129
+ `NEEDS CLARIFICATION` → `/rite-clarify`/HITL; never refresh past it. Only after the matrix is
130
+ re-closed, run `devrites-engine readiness-digest coverage <slug>` and replace the complete
131
+ `Coverage inputs SHA-256` line in `decision-coverage.md`. This coverage refresh must precede
132
+ `devrites-engine readiness-digest engineering <slug>`.
133
+ Re-run the gate after every fold-back so a task edit cannot invalidate the earlier pass:
145
134
  ```bash
146
135
  devrites-engine analyze; echo "final analyze rc=$?"
147
136
  ```
148
137
  Any non-zero result blocks the handoff. Then update `state.md`:
149
- `Phase: vet`, `Next step: /rite-build`; on a blocking pause write the `Awaiting human` block +
150
- `Status: awaiting_human` before stopping.
151
- 6. **Adversarial verification loop.** Apply the light/full branching contract in
152
- [`reference/depth.md`](reference/depth.md). Full mode dispatches the fresh-context plan
153
- reviewer, plus the devex predictor when applicable, for at most three repair iterations;
138
+ write exactly one `DevRites contract: devrites.readiness-artifacts.v2` field to both
139
+ `test-plan.md` and `eng-review.md`, plus one typed field to `eng-review.md`:
140
+ `Implementation readiness: READY`,
141
+ `NEEDS CLARIFICATION`, or `NEEDS REPLAN`. Only READY sets `Phase: vet` and
142
+ `Next step: /rite-build`, after a final sweep leaves no foreseeable human choice except a
143
+ justified action-time checkpoint. Technical failure records its reproduction and
144
+ `/rite-plan repair` without a qid; a human-owned contract gap routes `/rite-clarify` and
145
+ uses the normal awaiting-human block.
146
+ 6. **One narrow recheck after accepted edits.** If steps 2 through 5 changed the frozen candidate,
147
+ dispatch `devrites-plan-reviewer` once more with only the accepted initial findings,
148
+ changed planning paths, affected criteria, and the new immutable identity. Do not repeat
149
+ the full review or start a third loop. If nothing changed, the initial report is final.
150
+ If the recheck causes an accepted edit, repeat step 5, including coverage refresh and analyze,
151
+ before generating the engineering digest.
154
152
  [`reference/cross-model.md`](reference/cross-model.md) owns the optional outside voice.
155
- Completion: the final axis floor clears or a blocking gate is recorded.
156
- 7. **STOP.** Report the scope verdict, the per-axis floor, the coverage gaps closed, and the
157
- failure-mode criticals; recommend `/rite-build`.
153
+ Completion: the final axis floor clears, an objective technical blocker is recorded, or a
154
+ genuine human-owned gate is recorded.
155
+ 7. **STOP.** Report the scope verdict, lowest axis band, coverage gaps closed, the
156
+ Build-entry preflight, expected action-time checkpoints, and the failure-mode criticals;
157
+ recommend `/rite-build` only when the entry contract is ready.
158
158
 
159
- > **Mid-flight discipline.** When tempted to batch-dump findings into `eng-review.md` and skip
160
- > the walk-through, harden the plan past a finding that changes acceptance, score before
161
- > quoting the source, or wave through a complexity smell "to keep moving": see
159
+ > **Mid-flight discipline.** Do not replace the interactive review with
160
+ > `eng-review.md`, change acceptance through plan hardening, score without source
161
+ > evidence, or ignore unexplained complexity. See
162
162
  > [`reference/anti-patterns.md`](reference/anti-patterns.md).
163
163
 
164
164
  ## Output
@@ -169,12 +169,13 @@ Default success shape:
169
169
  ```
170
170
  Done: plan vetted for <slug>; depth <light|full> with axis floor <band>.
171
171
  Changed: eng-review.md, test-plan.md, plan.md, decisions.md
172
- Evidence: coverage <x/y> planned; open findings Critical 0 / Important 0 / Suggestion <n>; reviewer loop <n>; outside-voice <ran|skipped-unavailable|disabled>
172
+ Evidence: Implementation readiness: READY; coverage <x/y> planned; build-entry preflight <pass>; open findings Critical 0 / Important 0 / Suggestion <n>; reviewer loop <n>; outside-voice <ran|skipped-unavailable|disabled>
173
173
  Open: none
174
174
  Next: /rite-build
175
175
  Record: .devrites/work/<slug>/eng-review.md
176
176
  ↻ Hygiene: /clear before /rite-build
177
177
  ```
178
178
  If a blocker or Spec Drift Guard delta remains, use the shared `Stopped / blocked`
179
- form and route `Fix:` to `/rite-plan`; do not recommend `/rite-build`.
179
+ form and route `Fix:` to `/rite-clarify` for product/risk decisions or `/rite-plan`
180
+ for technical replanning; do not recommend `/rite-build`.
180
181
  **DO NOT write code, slice, or run the build here**. That's `/rite-build`. Vet reviews and hardens the plan; it never implements.
@@ -1,9 +1,7 @@
1
1
  # `eng-review.md` + `test-plan.md` templates + fold-back rules
2
2
 
3
- `/rite-vet` produces two artifacts and a set of fold-back edits. `eng-review.md` is the durable
4
- **record** of the review; `test-plan.md` is the build-readable **coverage target**; the
5
- fold-back edits to `plan.md` / `tasks.md` are what the build follows. The record
6
- without the fold-back is dead prose: the build reads `plan.md` + `test-plan.md`, not `eng-review.md`.
3
+ `eng-review.md` records the review; `test-plan.md` is the build-readable coverage target.
4
+ Fold findings into `plan.md`/`tasks.md`: review prose alone does not change the build.
7
5
 
8
6
  ## `eng-review.md`: the record
9
7
  Write to `.devrites/work/<slug>/eng-review.md`. If one exists for the slug, **update** it, don't
@@ -12,6 +10,9 @@ clobber.
12
10
  ```markdown
13
11
  # Eng review: <slug>
14
12
  Vetted: <iso> Cross-model: ran (codex) | off
13
+ DevRites contract: devrites.readiness-artifacts.v2
14
+ Implementation readiness: <READY | NEEDS CLARIFICATION | NEEDS REPLAN>
15
+ Readiness inputs SHA-256: <exact value from `devrites-engine readiness-digest engineering <slug>`>
15
16
 
16
17
  ## 1. Depth
17
18
  light | full (<trigger that escalated it>) # every plan is vetted — light or full, never skipped (see depth.md)
@@ -22,6 +23,19 @@ light | full (<trigger that escalated it>) # every plan is vetted — light
22
23
  - Complexity: ok | smell (<n files, m new services) → asked → <reduce|proceed, why>
23
24
  - Built-in / completeness / distribution: <flags, with source citations>
24
25
 
26
+ ## 2a. Build-entry preflight
27
+ | Gate | Command + cwd | Tool/version | Prerequisite owner | Full provenance inputs | Fixture/smoke | Verdict |
28
+ |---|---|---|---|---|---|---|
29
+ | <test/browser/package> | <command · cwd> | <version> | <owner + item> | <tool/manifest/lockfile/config SHA-256> | <what ran> | pass/fail/blocked |
30
+
31
+ ## 2b. Implementation readiness
32
+ | Surface | Requirement/decision | Boundary/wiring | Slice | Proof | Verdict |
33
+ |---|---|---|---|---|---|
34
+ | <journey/data/interface/ops> | <REQ/AC + coverage row> | <contract + key link> | <SLICE-###> | <test-plan row> | ready/gap |
35
+
36
+ Inventory/currentness: <pass/gaps> · slice order/independence: <pass/gaps> ·
37
+ UX/spec/architecture: <pass/n-a/gaps> · operations/rollout/rollback: <pass/n-a/gaps>
38
+
25
39
  ## 3. Axis findings (floor-gated)
26
40
  | Axis | Floor band | Findings (sev · confidence) |
27
41
  |---|---|---|
@@ -47,6 +61,7 @@ Sequential — no opportunity # OR the dependency table + lanes + order + conf
47
61
  ## 7. Completion summary
48
62
  - Scope: accepted | reduced · Architecture: <n> · Code-quality: <n>
49
63
  - Coverage: <x/y> planned, <n> gaps, <n> regressions (Critical)
64
+ - Build entry: preflight <pass/fail/blocked>; action-time checkpoints <none/list>
50
65
  - Failure modes: <n> mapped, <n> critical gaps
51
66
  - NOT in scope: written · What already exists: written
52
67
  - Plan: hardened in place | <n> deltas via Spec Drift Guard
@@ -60,6 +75,19 @@ test and where*, not implementation detail.
60
75
  ```markdown
61
76
  # Test plan: <slug>
62
77
  From /rite-vet on <iso>. Runner + conventions: <detected framework + command>.
78
+ DevRites contract: devrites.readiness-artifacts.v2
79
+
80
+ ## Build-entry preflight
81
+ | Gate | Command | Cwd | Expected | Prerequisites | Provenance to recapture |
82
+ |---|---|---|---|---|---|
83
+ | <test/browser/package> | <exact command> | <path> | <exit/output> | <service/browser/credential owner> | <tool version + full SHA-256s> |
84
+
85
+ Link any disposable parser fixture. Build evidence recomputes every digest; preflight values
86
+ are not post-build proof.
87
+
88
+ Commands in this durable artifact are portable repository commands: no RTK or local shell
89
+ aliases, user-specific absolute paths, or temporary proof trees. A runtime packet may name
90
+ an execution adapter, and evidence may record the portable and executed forms.
63
91
 
64
92
  ## Coverage diagram
65
93
  <the ASCII code-paths + user-flows diagram from review-axes.md, with COVERAGE / GAPS / REGRESSIONS line>
@@ -77,11 +105,8 @@ fails any row with no passing result — an unverified element is a NO-GO, like
77
105
  ```markdown
78
106
  | Element / flow | Kind (field/checkbox/select/radio/toggle/button/link/flow) | Level | Test file | Asserts (action → expected) |
79
107
  |---|---|---|---|---|
80
- | email field | field | unit | <form.test> | invalid → error shown; valid → accepted |
81
- | 'remember me' | checkbox | unit | <form.test> | toggles the persisted flag |
82
- | country | select | unit | <form.test> | options load; change fires handler |
83
- | submit | button | component | <form.test> | disabled until valid; click → submits once |
84
- | login | flow ★★★ | E2E | <login.e2e> | enter → submit → lands on dashboard |
108
+ | email field | field | unit | <form.test> | invalid → error; valid → accepted |
109
+ | login | flow ★★★ | E2E | <login.e2e> | submit dashboard |
85
110
  ```
86
111
  Omit the whole section only for a slice with **no** interactive surface (pure backend/logic).
87
112
 
@@ -114,6 +139,9 @@ acceptance/behavior changes route through the **Spec Drift Guard**.
114
139
  - `tasks.md` slices ← added test requirements (point at `test-plan.md`), added error-handling /
115
140
  failure-mode coverage, tightened slice scope, a split of a refactor+behavior slice into two.
116
141
  Adjust a slice's `Gate:` upward when vet reveals higher stakes (e.g. an unflagged migration).
142
+ For an eligible architecture competition, set the canonical `Forge`, `Forge strategies`,
143
+ and `Forge scorecard` fields only after the acceptance→test map is final; otherwise keep
144
+ `no` / `none` / `none`.
117
145
  - Re-run the `plan.md` Readiness gate after edits; it must still pass.
118
146
  - **Route through the Spec Drift Guard** (record `drift.md` + a recorded decision, then `/rite-plan
119
147
  repair` for any structural reslice) for anything that **changes an acceptance criterion, product
@@ -133,3 +161,16 @@ acceptance/behavior changes route through the **Spec Drift Guard**.
133
161
  `/rite-build` (the slice-wright) and `/rite-prove` **read `test-plan.md`** as the coverage
134
162
  target; `/rite-review` and `/rite-seal` may consult `eng-review.md` for the failure-mode +
135
163
  scope record.
164
+ - Write `test-plan.md` and finish all fold-back edits and rechecks first. If this pass changed
165
+ `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or `questions.md`, revalidate the
166
+ affected decision-coverage rows, assumption audit, residual uncertainty, and closed gates.
167
+ Partial/Missing, an unowned material assumption, or an open blocking/escalating question routes
168
+ `/rite-clarify`/HITL; never hide it with a new digest. Once re-closed, run
169
+ `devrites-engine readiness-digest coverage <slug>` and replace the complete
170
+ `Coverage inputs SHA-256` line in `decision-coverage.md`. Only then run
171
+ `devrites-engine readiness-digest engineering <slug>` and copy its complete
172
+ field line into `eng-review.md`. Write
173
+ `DevRites contract: devrites.readiness-artifacts.v2` exactly once in both artifacts
174
+ only after their current-contract review is complete. The build gate rejects a stale digest,
175
+ placeholders, non-passing preflight/readiness rows, empty tables, or an
176
+ acceptance criterion with no test mapping.