devrites 3.0.4 → 3.0.6

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 (752) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/README.md +280 -521
  3. package/SECURITY.md +91 -77
  4. package/docs/adr/README.md +7 -9
  5. package/docs/agents/domain.md +5 -5
  6. package/docs/agents/issue-driven-rites.md +5 -5
  7. package/docs/agents/issue-tracker.md +1 -1
  8. package/docs/agents/triage-labels.md +2 -2
  9. package/docs/architecture.md +101 -85
  10. package/docs/capability-surface-selection.md +3 -1
  11. package/docs/cli.md +20 -13
  12. package/docs/command-map.md +39 -35
  13. package/docs/engine/agent-contract.md +11 -9
  14. package/docs/engine/commands.md +92 -78
  15. package/docs/engine/state-schema.md +23 -19
  16. package/docs/engine/workspace-schema.md +12 -11
  17. package/docs/extensions.md +17 -17
  18. package/docs/flow.md +34 -23
  19. package/docs/harness-compliance.md +2 -2
  20. package/docs/orchestration.md +21 -20
  21. package/docs/porting-to-a-new-harness.md +6 -2
  22. package/docs/release.md +30 -12
  23. package/docs/research/go-authoritative-workflow-schema-and-quality-2026-07-20.md +3 -3
  24. package/docs/skills.md +77 -52
  25. package/docs/templates/CRITIC_REVIEW_PACKET_TEMPLATE.md +35 -0
  26. package/docs/usage.md +56 -45
  27. package/engine/Makefile +2 -2
  28. package/engine/commands.go +3 -3
  29. package/engine/harnessmatrix.go +2 -2
  30. package/engine/hookpolicy.go +9 -9
  31. package/engine/hooks.go +11 -11
  32. package/engine/hooks_workspace.go +11 -11
  33. package/engine/internal/doctor/doctor.go +7 -7
  34. package/engine/internal/gate/gate.go +11 -11
  35. package/engine/internal/harness/compliance.go +1 -1
  36. package/engine/internal/harness/harness.go +7 -7
  37. package/engine/internal/install/install.go +2 -0
  38. package/engine/internal/install/install_test.go +3 -3
  39. package/engine/internal/iohooks/detach_unix.go +1 -1
  40. package/engine/internal/iohooks/iohooks.go +8 -8
  41. package/engine/internal/lib/adoption.go +1 -1
  42. package/engine/internal/lib/analyze.go +15 -15
  43. package/engine/internal/lib/archivesearch.go +3 -3
  44. package/engine/internal/lib/budget.go +3 -3
  45. package/engine/internal/lib/buildreadiness.go +6 -6
  46. package/engine/internal/lib/checkacceptance.go +10 -10
  47. package/engine/internal/lib/closeout.go +5 -5
  48. package/engine/internal/lib/conventions.go +3 -3
  49. package/engine/internal/lib/coverage.go +4 -4
  50. package/engine/internal/lib/doubtcoverage.go +9 -9
  51. package/engine/internal/lib/evidencefresh.go +6 -6
  52. package/engine/internal/lib/extensions.go +9 -9
  53. package/engine/internal/lib/footprint.go +13 -13
  54. package/engine/internal/lib/jsonout.go +2 -2
  55. package/engine/internal/lib/lanes.go +2 -2
  56. package/engine/internal/lib/learnings.go +9 -9
  57. package/engine/internal/lib/ledger.go +8 -8
  58. package/engine/internal/lib/ledger_test.go +5 -5
  59. package/engine/internal/lib/mutationgate.go +4 -4
  60. package/engine/internal/lib/overrides.go +9 -9
  61. package/engine/internal/lib/overrides_test.go +2 -2
  62. package/engine/internal/lib/packageexistence.go +732 -55
  63. package/engine/internal/lib/packageexistence_test.go +343 -0
  64. package/engine/internal/lib/preamble.go +6 -6
  65. package/engine/internal/lib/progress.go +5 -5
  66. package/engine/internal/lib/reconcile.go +80 -20
  67. package/engine/internal/lib/reconcile_test.go +13 -5
  68. package/engine/internal/lib/resolve.go +3 -3
  69. package/engine/internal/lib/reviewerstats.go +2 -2
  70. package/engine/internal/lib/reviewintegrity.go +13 -13
  71. package/engine/internal/lib/reviewintegrity_test.go +6 -6
  72. package/engine/internal/lib/runbook.go +1 -1
  73. package/engine/internal/lib/session.go +1 -1
  74. package/engine/internal/lib/session_test.go +2 -2
  75. package/engine/internal/lib/specparse.go +4 -4
  76. package/engine/internal/lib/specskeleton.go +2 -2
  77. package/engine/internal/lib/specvalidate.go +13 -13
  78. package/engine/internal/lib/stuck.go +13 -13
  79. package/engine/internal/lib/templates/conventions_ledger_header.md +1 -1
  80. package/engine/internal/lib/templates/conventions_orient_header.txt +1 -1
  81. package/engine/internal/lib/testintegrity.go +9 -9
  82. package/engine/internal/lib/tickafk.go +4 -4
  83. package/engine/internal/lib/util.go +1 -1
  84. package/engine/internal/migrate/migrate.go +2 -2
  85. package/engine/internal/migrate/migrate_test.go +1 -0
  86. package/engine/internal/orient/firstrun.go +8 -8
  87. package/engine/internal/orient/orient.go +5 -5
  88. package/engine/internal/state/concurrency_test.go +4 -4
  89. package/engine/internal/state/feature.go +6 -6
  90. package/engine/internal/state/lock_unix.go +1 -1
  91. package/engine/internal/state/schema.go +1 -1
  92. package/engine/internal/state/snapshot.go +2 -2
  93. package/engine/internal/state/write.go +1 -1
  94. package/engine/internal/version/version.go +1 -1
  95. package/engine/main.go +5 -5
  96. package/engine/subagent_orient_context.txt +4 -4
  97. package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +1 -1
  98. package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +2 -2
  99. package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +3 -3
  100. package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +2 -2
  101. package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +4 -4
  102. package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +3 -3
  103. package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +3 -3
  104. package/engine/testdata/golden/TestParityBudget/extra-md.golden +1 -1
  105. package/engine/testdata/golden/TestParityBudget/over-advisory.golden +1 -1
  106. package/engine/testdata/golden/TestParityBudget/over-strict.golden +1 -1
  107. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +1 -1
  108. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +1 -1
  109. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +1 -1
  110. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +1 -1
  111. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +1 -1
  112. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +1 -1
  113. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +1 -1
  114. package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +2 -2
  115. package/engine/testdata/golden/TestParityCursor/bare.golden +1 -1
  116. package/engine/testdata/golden/TestParityCursor/full-afk.golden +1 -1
  117. package/engine/testdata/golden/TestParityCursor/full-hitl.golden +1 -1
  118. package/engine/testdata/golden/TestParityCursor/red.golden +2 -2
  119. package/engine/testdata/golden/TestParityCursor/zerogates.golden +1 -1
  120. package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +1 -1
  121. package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +1 -1
  122. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +1 -1
  123. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +1 -1
  124. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +1 -1
  125. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +1 -1
  126. package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +1 -1
  127. package/engine/testdata/golden/TestParityLearnings/mine.golden +1 -1
  128. package/engine/testdata/golden/TestParityLearnings/nudge.golden +1 -1
  129. package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +1 -1
  130. package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +1 -1
  131. package/engine/testdata/golden/TestParityPackageExistence/declared.golden +1 -1
  132. package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +1 -1
  133. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +1 -1
  134. package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +1 -1
  135. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
  136. package/engine/testdata/golden/TestParityResolve/batch.golden +1 -1
  137. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +1 -1
  138. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +1 -1
  139. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +1 -1
  140. package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +1 -1
  141. package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +1 -1
  142. package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +1 -1
  143. package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +1 -1
  144. package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +1 -1
  145. package/engine/testdata/golden/TestParityStuckCheck/few.golden +1 -1
  146. package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +1 -1
  147. package/engine/testdata/golden/TestParityStuckCheck/identical.golden +1 -1
  148. package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +1 -1
  149. package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +1 -1
  150. package/engine/testdata/golden/TestParityStuckCheck/varied.golden +1 -1
  151. package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +1 -1
  152. package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +1 -1
  153. package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +1 -1
  154. package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +1 -1
  155. package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +1 -1
  156. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +1 -1
  157. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +1 -1
  158. package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +1 -1
  159. package/engine/testdata/golden/TestParityTickAfk/missingField.golden +1 -1
  160. package/engine/testdata/golden/TestParityTickAfk/none.golden +1 -1
  161. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +1 -1
  162. package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +1 -1
  163. package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +1 -1
  164. package/engine/tests/adr_0004_required_by_phase_test.go +2 -2
  165. package/engine/tests/adr_0006_clock_seam_test.go +1 -1
  166. package/engine/tests/budget_test.go +1 -1
  167. package/engine/tests/canonical_ac_ids_test.go +2 -2
  168. package/engine/tests/cli_test.go +1 -1
  169. package/engine/tests/concurrency_cli_test.go +1 -1
  170. package/engine/tests/gate_test.go +4 -4
  171. package/engine/tests/hook_test.go +3 -3
  172. package/engine/tests/hooks_io_test.go +1 -1
  173. package/engine/tests/lib_parity_test.go +29 -29
  174. package/engine/tests/meta_test.go +2 -2
  175. package/engine/tests/parity_closeout_test.go +1 -1
  176. package/engine/tests/parity_learnings_test.go +2 -2
  177. package/engine/tests/parity_mutationgate_test.go +2 -2
  178. package/engine/tests/parity_resolve_test.go +1 -1
  179. package/engine/tests/parity_test.go +3 -3
  180. package/engine/tests/parity_tickafk_test.go +1 -1
  181. package/engine/validatepack.go +5 -5
  182. package/engine/validatepackskills.go +9 -9
  183. package/pack/.claude/agents/devrites-code-reviewer.md +21 -22
  184. package/pack/.claude/agents/devrites-devex-reviewer.md +17 -17
  185. package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -6
  186. package/pack/.claude/agents/devrites-forge-judge.md +26 -26
  187. package/pack/.claude/agents/devrites-frontend-reviewer.md +17 -17
  188. package/pack/.claude/agents/devrites-performance-reviewer.md +19 -18
  189. package/pack/.claude/agents/devrites-plan-reviewer.md +29 -27
  190. package/pack/.claude/agents/devrites-retrospector.md +19 -19
  191. package/pack/.claude/agents/devrites-security-auditor.md +15 -15
  192. package/pack/.claude/agents/devrites-simplifier-reviewer.md +14 -14
  193. package/pack/.claude/agents/devrites-slice-wright.md +52 -51
  194. package/pack/.claude/agents/devrites-spec-reviewer.md +11 -11
  195. package/pack/.claude/agents/devrites-strategy-reviewer.md +21 -21
  196. package/pack/.claude/agents/devrites-test-analyst.md +13 -13
  197. package/pack/.claude/settings.json +1 -1
  198. package/pack/.claude/skills/devrites-api-interface/SKILL.md +12 -12
  199. package/pack/.claude/skills/devrites-audit/SKILL.md +7 -7
  200. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +16 -16
  201. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +14 -14
  202. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  203. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  204. package/pack/.claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  205. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  206. package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
  207. package/pack/.claude/skills/devrites-doubt/SKILL.md +14 -14
  208. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +18 -18
  209. package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
  210. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  211. package/pack/.claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  212. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  213. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  214. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
  215. package/pack/.claude/skills/devrites-interview/SKILL.md +27 -27
  216. package/pack/.claude/skills/devrites-lib/SKILL.md +25 -27
  217. package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +5 -5
  218. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  219. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +11 -3
  220. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -10
  221. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  222. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +37 -37
  223. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  224. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  225. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
  226. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  227. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  228. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +23 -23
  229. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  230. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  231. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  232. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
  233. package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
  234. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  235. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  236. package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  237. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  238. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
  239. package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +15 -15
  240. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
  241. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +5 -5
  242. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +31 -31
  243. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  244. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +30 -30
  245. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  246. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  247. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +40 -40
  248. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
  249. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +5 -5
  250. package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
  251. package/pack/.claude/skills/devrites-source-driven/SKILL.md +8 -8
  252. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +33 -33
  253. package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  254. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  255. package/pack/.claude/skills/rite/SKILL.md +13 -14
  256. package/pack/.claude/skills/rite/reference/menu.md +10 -10
  257. package/pack/.claude/skills/rite-adopt/SKILL.md +17 -18
  258. package/pack/.claude/skills/rite-adopt/reference/adoption.md +9 -9
  259. package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
  260. package/pack/.claude/skills/rite-autocomplete/SKILL.md +14 -14
  261. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  262. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -7
  263. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  264. package/pack/.claude/skills/rite-build/SKILL.md +22 -22
  265. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -9
  266. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +6 -6
  267. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  268. package/pack/.claude/skills/rite-build/reference/checkpoint.md +8 -8
  269. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +1 -1
  270. package/pack/.claude/skills/rite-build/reference/forge.md +28 -29
  271. package/pack/.claude/skills/rite-build/reference/frontend-trigger.md +2 -2
  272. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
  273. package/pack/.claude/skills/rite-build/reference/output.md +1 -1
  274. package/pack/.claude/skills/rite-build/reference/phase-contract.md +44 -44
  275. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  276. package/pack/.claude/skills/rite-build/reference/tdd.md +6 -6
  277. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +23 -23
  278. package/pack/.claude/skills/rite-converge/SKILL.md +17 -17
  279. package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +7 -7
  280. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
  281. package/pack/.claude/skills/rite-customize/SKILL.md +2 -2
  282. package/pack/.claude/skills/rite-define/SKILL.md +25 -25
  283. package/pack/.claude/skills/rite-define/reference/anti-patterns.md +5 -5
  284. package/pack/.claude/skills/rite-define/reference/gates.md +13 -13
  285. package/pack/.claude/skills/rite-define/reference/plan-template.md +1 -1
  286. package/pack/.claude/skills/rite-doctor/SKILL.md +11 -11
  287. package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
  288. package/pack/.claude/skills/rite-explain/SKILL.md +22 -22
  289. package/pack/.claude/skills/rite-explain/reference/intake.md +16 -16
  290. package/pack/.claude/skills/rite-frame/SKILL.md +22 -22
  291. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +13 -13
  292. package/pack/.claude/skills/rite-handoff/SKILL.md +12 -12
  293. package/pack/.claude/skills/rite-learn/SKILL.md +23 -23
  294. package/pack/.claude/skills/rite-plan/SKILL.md +21 -21
  295. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +3 -3
  296. package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +1 -1
  297. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
  298. package/pack/.claude/skills/rite-plan/reference/slicing.md +9 -9
  299. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -3
  300. package/pack/.claude/skills/rite-polish/SKILL.md +11 -11
  301. package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +8 -8
  302. package/pack/.claude/skills/rite-polish/reference/backend-polish.md +13 -13
  303. package/pack/.claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  304. package/pack/.claude/skills/rite-polish/reference/code.md +26 -26
  305. package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +31 -31
  306. package/pack/.claude/skills/rite-polish/reference/ui.md +23 -23
  307. package/pack/.claude/skills/rite-pov/SKILL.md +3 -3
  308. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -2
  309. package/pack/.claude/skills/rite-pressure-test/SKILL.md +14 -14
  310. package/pack/.claude/skills/rite-prototype/SKILL.md +13 -13
  311. package/pack/.claude/skills/rite-prove/SKILL.md +17 -17
  312. package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +4 -4
  313. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +2 -2
  314. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +4 -4
  315. package/pack/.claude/skills/rite-prove/reference/proof-ladder.md +6 -6
  316. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
  317. package/pack/.claude/skills/rite-quick/SKILL.md +22 -22
  318. package/pack/.claude/skills/rite-resolve/SKILL.md +18 -18
  319. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
  320. package/pack/.claude/skills/rite-review/SKILL.md +34 -34
  321. package/pack/.claude/skills/rite-review/reference/anti-patterns.md +4 -4
  322. package/pack/.claude/skills/rite-review/reference/cognitive-load.md +22 -22
  323. package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  324. package/pack/.claude/skills/rite-review/reference/five-axis-review.md +8 -8
  325. package/pack/.claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  326. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -14
  327. package/pack/.claude/skills/rite-review/reference/security-review.md +9 -9
  328. package/pack/.claude/skills/rite-seal/SKILL.md +26 -26
  329. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +8 -8
  330. package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
  331. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +9 -9
  332. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +9 -9
  333. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +43 -43
  334. package/pack/.claude/skills/rite-ship/SKILL.md +12 -12
  335. package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +5 -5
  336. package/pack/.claude/skills/rite-ship/reference/close-out.md +2 -2
  337. package/pack/.claude/skills/rite-ship/reference/design-memory.md +22 -22
  338. package/pack/.claude/skills/rite-ship/reference/git-ship.md +10 -10
  339. package/pack/.claude/skills/rite-ship/reference/ledger.md +9 -9
  340. package/pack/.claude/skills/rite-ship/reference/rollout.md +11 -11
  341. package/pack/.claude/skills/rite-ship/reference/ship-template.md +1 -1
  342. package/pack/.claude/skills/rite-spec/SKILL.md +45 -45
  343. package/pack/.claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  344. package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +6 -6
  345. package/pack/.claude/skills/rite-spec/reference/interview-patterns.md +3 -3
  346. package/pack/.claude/skills/rite-spec/reference/investigation.md +21 -21
  347. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +9 -9
  348. package/pack/.claude/skills/rite-spec/reference/references-intake.md +8 -8
  349. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +19 -19
  350. package/pack/.claude/skills/rite-status/SKILL.md +13 -13
  351. package/pack/.claude/skills/rite-temper/SKILL.md +29 -29
  352. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +11 -11
  353. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +20 -20
  354. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +16 -16
  355. package/pack/.claude/skills/rite-temper/reference/significance.md +10 -10
  356. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +14 -14
  357. package/pack/.claude/skills/rite-vet/SKILL.md +31 -31
  358. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +14 -14
  359. package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -10
  360. package/pack/.claude/skills/rite-vet/reference/cross-model.md +9 -9
  361. package/pack/.claude/skills/rite-vet/reference/depth.md +14 -14
  362. package/pack/.claude/skills/rite-vet/reference/eng-lenses.md +9 -9
  363. package/pack/.claude/skills/rite-vet/reference/review-axes.md +28 -28
  364. package/pack/.claude/skills/rite-zoom-out/SKILL.md +18 -18
  365. package/pack/generated/claude/agents/devrites-code-reviewer.md +21 -22
  366. package/pack/generated/claude/agents/devrites-devex-reviewer.md +17 -17
  367. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -6
  368. package/pack/generated/claude/agents/devrites-forge-judge.md +26 -26
  369. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +17 -17
  370. package/pack/generated/claude/agents/devrites-performance-reviewer.md +19 -18
  371. package/pack/generated/claude/agents/devrites-plan-reviewer.md +29 -27
  372. package/pack/generated/claude/agents/devrites-retrospector.md +19 -19
  373. package/pack/generated/claude/agents/devrites-security-auditor.md +15 -15
  374. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +14 -14
  375. package/pack/generated/claude/agents/devrites-slice-wright.md +52 -51
  376. package/pack/generated/claude/agents/devrites-spec-reviewer.md +11 -11
  377. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +21 -21
  378. package/pack/generated/claude/agents/devrites-test-analyst.md +13 -13
  379. package/pack/generated/claude/settings.json +1 -1
  380. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +12 -12
  381. package/pack/generated/claude/skills/devrites-audit/SKILL.md +7 -7
  382. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +16 -16
  383. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +14 -14
  384. package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  385. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  386. package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  387. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  388. package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +4 -4
  389. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +14 -14
  390. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +18 -18
  391. package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +17 -17
  392. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  393. package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  394. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  395. package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  396. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +13 -13
  397. package/pack/generated/claude/skills/devrites-interview/SKILL.md +27 -27
  398. package/pack/generated/claude/skills/devrites-lib/SKILL.md +25 -27
  399. package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +5 -5
  400. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  401. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +11 -3
  402. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -10
  403. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  404. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +37 -37
  405. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  406. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  407. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +40 -40
  408. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  409. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  410. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +23 -23
  411. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  412. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  413. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  414. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
  415. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +4 -4
  416. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  417. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  418. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  419. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  420. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +3 -3
  421. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +15 -15
  422. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +8 -8
  423. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +5 -5
  424. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +31 -31
  425. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  426. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +30 -30
  427. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  428. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  429. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +40 -40
  430. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +26 -26
  431. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +5 -5
  432. package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +6 -6
  433. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +8 -8
  434. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +33 -33
  435. package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  436. package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  437. package/pack/generated/claude/skills/rite/SKILL.md +13 -14
  438. package/pack/generated/claude/skills/rite/reference/menu.md +10 -10
  439. package/pack/generated/claude/skills/rite-adopt/SKILL.md +17 -18
  440. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +9 -9
  441. package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +6 -6
  442. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +14 -14
  443. package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  444. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -7
  445. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  446. package/pack/generated/claude/skills/rite-build/SKILL.md +22 -22
  447. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -9
  448. package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +6 -6
  449. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  450. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +8 -8
  451. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +1 -1
  452. package/pack/generated/claude/skills/rite-build/reference/forge.md +28 -29
  453. package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +2 -2
  454. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +3 -3
  455. package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
  456. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +44 -44
  457. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +1 -1
  458. package/pack/generated/claude/skills/rite-build/reference/tdd.md +6 -6
  459. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +23 -23
  460. package/pack/generated/claude/skills/rite-converge/SKILL.md +17 -17
  461. package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +7 -7
  462. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +14 -14
  463. package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -2
  464. package/pack/generated/claude/skills/rite-define/SKILL.md +25 -25
  465. package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +5 -5
  466. package/pack/generated/claude/skills/rite-define/reference/gates.md +13 -13
  467. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +1 -1
  468. package/pack/generated/claude/skills/rite-doctor/SKILL.md +11 -11
  469. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
  470. package/pack/generated/claude/skills/rite-explain/SKILL.md +22 -22
  471. package/pack/generated/claude/skills/rite-explain/reference/intake.md +16 -16
  472. package/pack/generated/claude/skills/rite-frame/SKILL.md +22 -22
  473. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +13 -13
  474. package/pack/generated/claude/skills/rite-handoff/SKILL.md +12 -12
  475. package/pack/generated/claude/skills/rite-learn/SKILL.md +23 -23
  476. package/pack/generated/claude/skills/rite-plan/SKILL.md +21 -21
  477. package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +3 -3
  478. package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +1 -1
  479. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +3 -3
  480. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +9 -9
  481. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -3
  482. package/pack/generated/claude/skills/rite-polish/SKILL.md +11 -11
  483. package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +8 -8
  484. package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +13 -13
  485. package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  486. package/pack/generated/claude/skills/rite-polish/reference/code.md +26 -26
  487. package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +31 -31
  488. package/pack/generated/claude/skills/rite-polish/reference/ui.md +23 -23
  489. package/pack/generated/claude/skills/rite-pov/SKILL.md +3 -3
  490. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -2
  491. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +14 -14
  492. package/pack/generated/claude/skills/rite-prototype/SKILL.md +13 -13
  493. package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -17
  494. package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +4 -4
  495. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +2 -2
  496. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +4 -4
  497. package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +6 -6
  498. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +1 -1
  499. package/pack/generated/claude/skills/rite-quick/SKILL.md +22 -22
  500. package/pack/generated/claude/skills/rite-resolve/SKILL.md +18 -18
  501. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +7 -7
  502. package/pack/generated/claude/skills/rite-review/SKILL.md +34 -34
  503. package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +4 -4
  504. package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +22 -22
  505. package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  506. package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +8 -8
  507. package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  508. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -14
  509. package/pack/generated/claude/skills/rite-review/reference/security-review.md +9 -9
  510. package/pack/generated/claude/skills/rite-seal/SKILL.md +26 -26
  511. package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +8 -8
  512. package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +8 -8
  513. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +9 -9
  514. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +9 -9
  515. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +43 -43
  516. package/pack/generated/claude/skills/rite-ship/SKILL.md +12 -12
  517. package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +5 -5
  518. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +2 -2
  519. package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +22 -22
  520. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +10 -10
  521. package/pack/generated/claude/skills/rite-ship/reference/ledger.md +9 -9
  522. package/pack/generated/claude/skills/rite-ship/reference/rollout.md +11 -11
  523. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +1 -1
  524. package/pack/generated/claude/skills/rite-spec/SKILL.md +45 -45
  525. package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  526. package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +6 -6
  527. package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +3 -3
  528. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +21 -21
  529. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +9 -9
  530. package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +8 -8
  531. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +19 -19
  532. package/pack/generated/claude/skills/rite-status/SKILL.md +13 -13
  533. package/pack/generated/claude/skills/rite-temper/SKILL.md +29 -29
  534. package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +11 -11
  535. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +20 -20
  536. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +16 -16
  537. package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -10
  538. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +14 -14
  539. package/pack/generated/claude/skills/rite-vet/SKILL.md +31 -31
  540. package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +14 -14
  541. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -10
  542. package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +9 -9
  543. package/pack/generated/claude/skills/rite-vet/reference/depth.md +14 -14
  544. package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +9 -9
  545. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +28 -28
  546. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +18 -18
  547. package/pack/generated/codex/agents/devrites-code-reviewer.toml +21 -22
  548. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +17 -17
  549. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -6
  550. package/pack/generated/codex/agents/devrites-forge-judge.toml +26 -26
  551. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +17 -17
  552. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +19 -18
  553. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +29 -27
  554. package/pack/generated/codex/agents/devrites-retrospector.toml +19 -19
  555. package/pack/generated/codex/agents/devrites-security-auditor.toml +15 -15
  556. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +14 -14
  557. package/pack/generated/codex/agents/devrites-slice-wright.toml +52 -51
  558. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +11 -11
  559. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +21 -21
  560. package/pack/generated/codex/agents/devrites-test-analyst.toml +13 -13
  561. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +15 -15
  562. package/pack/generated/codex/skills/devrites-audit/SKILL.md +10 -10
  563. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +19 -19
  564. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +17 -17
  565. package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +16 -16
  566. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +2 -2
  567. package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +2 -2
  568. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +3 -3
  569. package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +4 -4
  570. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +17 -17
  571. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +20 -20
  572. package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +17 -17
  573. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +25 -25
  574. package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +6 -6
  575. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +44 -44
  576. package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +9 -9
  577. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +13 -13
  578. package/pack/generated/codex/skills/devrites-interview/SKILL.md +30 -30
  579. package/pack/generated/codex/skills/devrites-lib/SKILL.md +28 -30
  580. package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +5 -5
  581. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -36
  582. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +11 -3
  583. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -10
  584. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +33 -33
  585. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +37 -37
  586. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +9 -9
  587. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +12 -12
  588. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +40 -40
  589. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +7 -7
  590. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +24 -25
  591. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +23 -23
  592. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  593. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -18
  594. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +29 -29
  595. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +12 -13
  596. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +4 -4
  597. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +1 -1
  598. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +26 -26
  599. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +4 -4
  600. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +9 -9
  601. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +3 -3
  602. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +15 -15
  603. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +8 -8
  604. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +5 -5
  605. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +31 -31
  606. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +25 -25
  607. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +30 -30
  608. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +11 -11
  609. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +30 -30
  610. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +40 -40
  611. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +26 -26
  612. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +8 -8
  613. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +9 -9
  614. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +11 -11
  615. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +36 -36
  616. package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +6 -6
  617. package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +9 -9
  618. package/pack/generated/codex/skills/rite/SKILL.md +16 -17
  619. package/pack/generated/codex/skills/rite/reference/menu.md +10 -10
  620. package/pack/generated/codex/skills/rite-adopt/SKILL.md +20 -21
  621. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +9 -9
  622. package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +6 -6
  623. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +17 -17
  624. package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +4 -4
  625. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -7
  626. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +7 -7
  627. package/pack/generated/codex/skills/rite-build/SKILL.md +25 -25
  628. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -9
  629. package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +6 -6
  630. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +14 -14
  631. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +8 -8
  632. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +1 -1
  633. package/pack/generated/codex/skills/rite-build/reference/forge.md +28 -29
  634. package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +2 -2
  635. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +3 -3
  636. package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
  637. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +44 -44
  638. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +1 -1
  639. package/pack/generated/codex/skills/rite-build/reference/tdd.md +6 -6
  640. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +23 -23
  641. package/pack/generated/codex/skills/rite-converge/SKILL.md +20 -20
  642. package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +7 -7
  643. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +14 -14
  644. package/pack/generated/codex/skills/rite-customize/SKILL.md +5 -5
  645. package/pack/generated/codex/skills/rite-define/SKILL.md +28 -28
  646. package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +5 -5
  647. package/pack/generated/codex/skills/rite-define/reference/gates.md +13 -13
  648. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +1 -1
  649. package/pack/generated/codex/skills/rite-doctor/SKILL.md +14 -14
  650. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +5 -5
  651. package/pack/generated/codex/skills/rite-explain/SKILL.md +25 -25
  652. package/pack/generated/codex/skills/rite-explain/reference/intake.md +16 -16
  653. package/pack/generated/codex/skills/rite-frame/SKILL.md +25 -25
  654. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +13 -13
  655. package/pack/generated/codex/skills/rite-handoff/SKILL.md +15 -15
  656. package/pack/generated/codex/skills/rite-learn/SKILL.md +26 -26
  657. package/pack/generated/codex/skills/rite-plan/SKILL.md +24 -24
  658. package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +3 -3
  659. package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +1 -1
  660. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +3 -3
  661. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +9 -9
  662. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -3
  663. package/pack/generated/codex/skills/rite-polish/SKILL.md +14 -14
  664. package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +8 -8
  665. package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +13 -13
  666. package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +4 -4
  667. package/pack/generated/codex/skills/rite-polish/reference/code.md +26 -26
  668. package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +31 -31
  669. package/pack/generated/codex/skills/rite-polish/reference/ui.md +23 -23
  670. package/pack/generated/codex/skills/rite-pov/SKILL.md +6 -6
  671. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -5
  672. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +17 -17
  673. package/pack/generated/codex/skills/rite-prototype/SKILL.md +16 -16
  674. package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -20
  675. package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +4 -4
  676. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +2 -2
  677. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +4 -4
  678. package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +6 -6
  679. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +1 -1
  680. package/pack/generated/codex/skills/rite-quick/SKILL.md +25 -25
  681. package/pack/generated/codex/skills/rite-resolve/SKILL.md +21 -21
  682. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +7 -7
  683. package/pack/generated/codex/skills/rite-review/SKILL.md +37 -37
  684. package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +4 -4
  685. package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +22 -22
  686. package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
  687. package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +8 -8
  688. package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +14 -14
  689. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -14
  690. package/pack/generated/codex/skills/rite-review/reference/security-review.md +9 -9
  691. package/pack/generated/codex/skills/rite-seal/SKILL.md +29 -29
  692. package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +8 -8
  693. package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +8 -8
  694. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +9 -9
  695. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +9 -9
  696. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +43 -43
  697. package/pack/generated/codex/skills/rite-ship/SKILL.md +15 -15
  698. package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +5 -5
  699. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +2 -2
  700. package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +22 -22
  701. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +10 -10
  702. package/pack/generated/codex/skills/rite-ship/reference/ledger.md +9 -9
  703. package/pack/generated/codex/skills/rite-ship/reference/rollout.md +11 -11
  704. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +1 -1
  705. package/pack/generated/codex/skills/rite-spec/SKILL.md +48 -48
  706. package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +4 -4
  707. package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +6 -6
  708. package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +3 -3
  709. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +21 -21
  710. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +9 -9
  711. package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +8 -8
  712. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +19 -19
  713. package/pack/generated/codex/skills/rite-status/SKILL.md +16 -16
  714. package/pack/generated/codex/skills/rite-temper/SKILL.md +32 -32
  715. package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +11 -11
  716. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +20 -20
  717. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +16 -16
  718. package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -10
  719. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +14 -14
  720. package/pack/generated/codex/skills/rite-vet/SKILL.md +34 -34
  721. package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +14 -14
  722. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -10
  723. package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +9 -9
  724. package/pack/generated/codex/skills/rite-vet/reference/depth.md +14 -14
  725. package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +9 -9
  726. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +28 -28
  727. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +21 -21
  728. package/package.json +2 -2
  729. package/scripts/build-binaries.sh +1 -1
  730. package/scripts/build-host-artifacts.sh +1 -1
  731. package/scripts/build-release-tarball.sh +1 -1
  732. package/scripts/check-cross-refs.py +8 -8
  733. package/scripts/check-invocation-integrity.py +4 -4
  734. package/scripts/check-no-global-writes.sh +2 -2
  735. package/scripts/check-reply-contract.sh +1 -1
  736. package/scripts/check-rule-uniqueness.sh +2 -2
  737. package/scripts/codex-generate.sh +5 -5
  738. package/scripts/devrites-detect.sh +33 -33
  739. package/scripts/eval-runner.py +7 -7
  740. package/scripts/grade-feature.sh +14 -14
  741. package/scripts/install-lib.sh +2 -2
  742. package/scripts/pin.sh +12 -12
  743. package/scripts/run-behavioral-evals.sh +12 -12
  744. package/scripts/run-evals.sh +1 -1
  745. package/scripts/run-outcome-evals.sh +12 -12
  746. package/scripts/scan-pack-security.py +4 -4
  747. package/scripts/scan-supply-chain-iocs.py +7 -7
  748. package/scripts/skills-inventory.mjs +21 -4
  749. package/scripts/sync-version.sh +2 -2
  750. package/scripts/validate-workflow-security.py +12 -6
  751. package/scripts/validate-workspace-schema.py +2 -2
  752. package/scripts/validate.sh +7 -7
package/docs/usage.md CHANGED
@@ -1,9 +1,10 @@
1
- # DevRites — usage
1
+ # Using DevRites
2
2
 
3
- Worked workflows. Every feature starts with `/rite-spec` (it investigates,
4
- writes the spec, and creates the workspace). Every later phase reads the
5
- active workspace (`.devrites/ACTIVE` `.devrites/work/<slug>/`) first; if
6
- none exists it tells you to run `/rite-spec <feature>`.
3
+ These examples show the common DevRites workflows. A greenfield feature starts
4
+ with `/rite-spec`; an existing codebase may enter through `/rite-adopt`.
5
+ `/rite-quick` and `/rite-frame` handle bounded work outside the full feature arc.
6
+ Workspace-operating phases read the active workspace (`.devrites/ACTIVE`
7
+ `.devrites/work/<slug>/`) first and report the appropriate on-ramp when none exists.
7
8
 
8
9
  - **Full command reference** → [`command-map.md`](command-map.md)
9
10
  - **Flow diagrams** → [`flow.md`](flow.md)
@@ -12,9 +13,10 @@ none exists it tells you to run `/rite-spec <feature>`.
12
13
 
13
14
  ## The workspace
14
15
 
15
- `/rite-spec` creates `.devrites/work/<slug>/` and writes the spec;
16
- `/rite-define` adds architecture, the plan, tasks, and traceability. All human-readable Markdown that
17
- survives compaction and new sessions:
16
+ `/rite-spec` creates `.devrites/work/<slug>/` and writes the spec.
17
+ `/rite-define` adds the architecture, plan, tasks, and traceability. Together,
18
+ these human-readable Markdown files carry the work across compaction and new
19
+ sessions:
18
20
 
19
21
  | File | Created by | Holds |
20
22
  |---|---|---|
@@ -23,16 +25,16 @@ survives compaction and new sessions:
23
25
  | `spec.md` | `/rite-spec` | product WHAT/WHY, requirements, acceptance, boundaries, measurable success |
24
26
  | `architecture.md` | `/rite-define` | owning module/layer, integration points, data/API/events, dependencies, risks |
25
27
  | `flows.md` | `/rite-spec` or `/rite-define` | optional Mermaid diagrams when sequence/state/data flow clarifies behavior |
26
- | `references/` + `references.md` | `/rite-spec` | saved design refs screenshots, Figma, video, links |
28
+ | `references/` + `references.md` | `/rite-spec` | saved design refs: screenshots, Figma, video, links |
27
29
  | `strategy.md` | `/rite-temper` | strategic spec review (optional): scope mode, pre-mortem, dimension scores |
28
30
  | `plan.md` | `/rite-define` | approach, dependency graph, checkpoints, rollback |
29
31
  | `tasks.md` | `/rite-define` | ordered `SLICE-###` vertical slices, each mapped to `AC-###` and tagged `Mode: AFK \| HITL` + gate fields |
30
32
  | `traceability.md` | `/rite-define` | AC/REQ → slices → tests/proofs → evidence → touched files matrix |
31
- | `eng-review.md` | `/rite-vet` | engineering plan review (optional): scope challenge, axis findings, failure modes, parallelization |
33
+ | `eng-review.md` | `/rite-vet` | mandatory engineering plan review, light or full by stakes: scope challenge, axis findings, failure modes, parallelization |
32
34
  | `test-plan.md` | `/rite-vet` | build-readable coverage target: coverage diagram, per-gap test requirements, acceptance→test map (read by `/rite-build` + `/rite-prove`) |
33
- | `status.md` | every phase | canonical status checkpoint |
34
35
  | `state.md` | every phase | working ledger: phase, active slice + slice mode, risk, next step; plus `Awaiting human` block when paused (run mode is derived from `.devrites/AFK`, not stored here) |
35
- | `questions.md` | every phase | append-only Q&A qid, slice, gate, status (`open` / `answered` / `dropped`), proposed answer, raised/answered timestamps |
36
+ | `status.md` | every phase | compatibility alias for the canonical `state.md` cursor |
37
+ | `questions.md` | every phase | append-only Q&A: qid, slice, gate, status (`open` / `answered` / `dropped`), proposed answer, raised/answered timestamps |
36
38
  | `decisions.md` / `assumptions.md` | every phase | running logs |
37
39
  | `drift.md` | Spec Drift Guard | drift events + resolutions |
38
40
  | `touched-files.md` | `/rite-build` | what files this feature touched |
@@ -43,17 +45,18 @@ survives compaction and new sessions:
43
45
  | `polish-report.md` | `/rite-polish` | Phase 1-4 findings + fixes |
44
46
  | `review.md` | `/rite-review` | Spec + Standards axes, severity-labelled findings |
45
47
  | `seal.md` | `/rite-seal` | GO/NO-GO verdict + acceptance walk + blockers |
46
- | `ship.md` | `/rite-ship` | what shipped commit SHA(s), branch, tag/PR, acceptance summary, follow-ups |
48
+ | `ship.md` | `/rite-ship` | what shipped: commit SHA(s), branch, tag/PR, acceptance summary, follow-ups |
47
49
 
48
- When `/rite-ship` closes the task it **archives** the whole workspace
49
- `.devrites/work/<slug>/` `.devrites/archive/<slug>/` (every `.md` above is
50
- preserved, never deleted) and clears `.devrites/ACTIVE`. The audit trail lives
51
- on under `.devrites/archive/<slug>/`.
50
+ When `/rite-ship` closes the task, it archives the whole workspace from
51
+ `.devrites/work/<slug>/` to `.devrites/archive/<slug>/` and clears
52
+ `.devrites/ACTIVE`. It preserves every Markdown file, so the audit trail remains
53
+ under `.devrites/archive/<slug>/`.
52
54
 
53
55
  Backward compatibility: older `.devrites/features/<slug>/` workspaces remain
54
56
  readable; migration should add the canonical `.devrites/work` shape without
55
57
  deleting the old files. `feature.md`/`index.md` can still act as the workspace
56
- map, and `proof.md` can still act as the proof alias for `evidence.md`.
58
+ map, `status.md` as the cursor alias for `state.md`, and `proof.md` as the proof
59
+ alias for `evidence.md`.
57
60
 
58
61
  Project-root sentinel (outside the workspace):
59
62
 
@@ -65,7 +68,7 @@ Project-root sentinel (outside the workspace):
65
68
  The shape of this directory is also documented in
66
69
  [`flow.md` § Workspace state model](flow.md#7-workspace-state-model).
67
70
 
68
- ## 1) Start a feature spec then plan
71
+ ## 1) Start a feature: spec then plan
69
72
 
70
73
  ```text
71
74
  You: I want some kind of reporting thing for admins.
@@ -82,13 +85,18 @@ You: I want some kind of reporting thing for admins.
82
85
  → reads the approved spec
83
86
  → writes plan.md + vertical task slices + state
84
87
  → stops for confirmation
88
+
89
+ /rite-vet
90
+ → reviews every defined plan; uses a light or full pass based on stakes
91
+ → writes eng-review.md + test-plan.md before build
85
92
  ```
86
93
 
87
- ## 2) Normal feature the build loop
94
+ ## 2) Normal feature: the build loop
88
95
 
89
96
  ```text
90
97
  /rite-spec add-csv-export # investigate → spec.md
91
98
  /rite-define # spec → plan + vertical slices + state
99
+ /rite-vet # mandatory plan review; light or full based on stakes
92
100
  /rite-build # slice 1 ("export endpoint returns CSV"); stops with evidence
93
101
  /rite-build # slice 2 ("download button + states"); repeat for each slice
94
102
  /rite-prove # ONCE all slices built: full tests + browser proof
@@ -98,7 +106,7 @@ You: I want some kind of reporting thing for admins.
98
106
  /rite-ship # type-GO + irreversible git ladder + close the task (archive + clear ACTIVE)
99
107
  ```
100
108
 
101
- `/rite-build` never auto-advances you decide when the next slice runs.
109
+ `/rite-build` never auto-advances: you decide when the next slice runs.
102
110
  `/rite-seal` **decides**; `/rite-ship` **executes + closes**. To run the whole
103
111
  sequence unattended, see `/rite-autocomplete` (§11).
104
112
 
@@ -139,6 +147,9 @@ You: 2
139
147
  /rite-define
140
148
  → spec → slices; UI slice marked frontend-craft + browser-proof
141
149
 
150
+ /rite-vet
151
+ → hardens the UI plan + acceptance-to-test coverage before code
152
+
142
153
  /rite-build
143
154
  → UI slice → devrites-frontend-craft: register = product surface, **match
144
155
  the saved references**, shape the states (default/loading/empty/error/
@@ -160,13 +171,14 @@ You: 2
160
171
  ```
161
172
 
162
173
  If no browser tooling is available, proof is recorded as **pending (manual)**
163
- with exact steps the seal then weighs the UI risk.
174
+ with exact steps: the seal then weighs the UI risk.
164
175
 
165
176
  ## 5) Backend-only feature
166
177
 
167
178
  ```text
168
179
  /rite-spec rate-limit-api # investigate → spec.md (no UI)
169
180
  /rite-define # spec → plan + slices
181
+ /rite-vet # mandatory plan review; checks architecture, tests, perf
170
182
  /rite-build # no UI → no frontend craft / browser proof
171
183
  /rite-prove # targeted tests + build/typecheck; runtime check of the limiter
172
184
  /rite-polish # reference/code.md only (no UI scope detected)
@@ -175,7 +187,7 @@ with exact steps — the seal then weighs the UI risk.
175
187
  /rite-ship # type-GO + commit/push/tag + close the task
176
188
  ```
177
189
 
178
- ## 6) UI-direction prompt refinement modes
190
+ ## 6) UI-direction prompt: refinement modes
179
191
 
180
192
  ```text
181
193
  /rite-polish bolder
@@ -215,16 +227,16 @@ Other modes: `quieter` · `distill` · `harden`.
215
227
 
216
228
  Run before `/clear` if leaving for > a few hours.
217
229
 
218
- ## 9) HITL gate pre-code pause and resume
230
+ ## 9) HITL gate: pre-code pause and resume
219
231
 
220
232
  ```text
221
233
  /rite-build
222
234
  → reads tasks.md slice 03; Mode: HITL, Gate: blocking
223
235
  → STOPS before writing any code:
224
236
 
225
- SLICE-003 list endpoint is HITL (blocking, SLA 15m).
237
+ SLICE-003: list endpoint is HITL (blocking, SLA 15m).
226
238
  Checkpoint: Composite (user_id, created_at) index, or two single-col indexes?
227
- Proposed approach: composite single read path, both columns used together
239
+ Proposed approach: composite: single read path, both columns used together
228
240
  in the most common filter; downside is rebuild cost on bulk updates.
229
241
  Decision needed before this slice can build.
230
242
  Resume: /rite-resolve q-2026-05-28-001 "<answer>"
@@ -232,7 +244,7 @@ Run before `/clear` if leaving for > a few hours.
232
244
  → appends q-...-001 to questions.md (status: open, gate: blocking)
233
245
  → writes `Awaiting human` block to state.md, sets Status: awaiting_human
234
246
 
235
- You: /rite-resolve q-2026-05-28-001 "composite single-col is fine for now"
247
+ You: /rite-resolve q-2026-05-28-001 "composite: single-col is fine for now"
236
248
 
237
249
  /rite-resolve
238
250
  → flips q-...-001 status → answered (with answered_at + answer)
@@ -249,7 +261,7 @@ If the answer changes acceptance criteria or scope, `/rite-resolve` recommends
249
261
  ## 10) AFK overnight run
250
262
 
251
263
  ```text
252
- # Drop the sentinel before bed. Keys are optional empty file works.
264
+ # Drop the sentinel before bed. Keys are optional: empty file works.
253
265
  cat > .devrites/AFK <<'EOF'
254
266
  max_slices: 10
255
267
  notify: "curl -d \"$DEVRITES_QID: $DEVRITES_QUESTION\" ntfy.sh/my-topic"
@@ -276,13 +288,13 @@ EOF
276
288
  /rite-build # continue
277
289
  ```
278
290
 
279
- The loop refuses to mark a slice `built` if tests / types / lint go red it
291
+ The loop refuses to mark a slice `built` if tests / types / lint go red: it
280
292
  writes a blocking question and stops regardless of `allow_gates`. AFK never
281
293
  silently accepts irreversible risk; see
282
294
  [`pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md`](../pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md) for the
283
295
  full list.
284
296
 
285
- ## 11) Full unattended lifecycle `/rite-autocomplete`
297
+ ## 11) Full unattended lifecycle: `/rite-autocomplete`
286
298
 
287
299
  ```text
288
300
  /rite-autocomplete "add CSV export for admins" --max-slices 8
@@ -300,39 +312,38 @@ You: GO # → commit · push · tag, then archive + clear
300
312
  ```
301
313
 
302
314
  Add `--ship` (alias `--yolo`) to auto-confirm the final type-`GO` for a
303
- zero-touch push autocomplete then proceeds straight to `/rite-ship`. It still
315
+ zero-touch push: autocomplete then proceeds straight to `/rite-ship`. It still
304
316
  pauses on hard irreversible-risk (auth / migration / public-API / red tests),
305
317
  blocking / escalating gates, an open `gate: validating`, a NO-GO, exhausted
306
- `max_slices`, or low confidence writing `state.md` and surfacing *why* before
318
+ `max_slices`, or low confidence: writing `state.md` and surfacing *why* before
307
319
  it stops. Args: `[idea] [--ship|--yolo] [--max-slices N]`.
308
320
 
309
321
  ## Checking in
310
322
 
311
- - `/rite` compact menu + suggested next command. **Does not** read state.
312
- - `/rite-status` detailed status: phase, **run mode (AFK / HITL)**, status
323
+ - `/rite`: compact menu + suggested next command. **Does not** read state.
324
+ - `/rite-status`: detailed status: phase, **run mode (AFK / HITL)**, status
313
325
  (`running` / `awaiting_human` / `blocked` / `done`), next action, evidence,
314
326
  open questions broken down by gate, drift, risks, **handoff readiness**.
315
- - `/rite-resolve <qid> "<answer>"` answer / `--drop` / `--batch`-resolve an
327
+ - `/rite-resolve <qid> "<answer>"`: answer / `--drop` / `--batch`-resolve an
316
328
  open question; the canonical writer for `status: open → answered` and the
317
329
  only thing that clears `Awaiting human`.
318
330
 
319
331
  ## Tips
320
332
 
321
333
  - Commit `.devrites/` so the team and future sessions share feature state.
322
- - **`.devrites/AFK` is per-developer, not per-repo** gitignore it (or commit
334
+ - **`.devrites/AFK` is per-developer, not per-repo**: gitignore it (or commit
323
335
  it deliberately if the team agrees on AFK defaults). The sentinel is
324
336
  read-only config: it toggles your local session mode and sets the initial
325
337
  `max_slices` budget; nothing else. The mutable remaining-slice count lives
326
338
  in `state.md` (`AFK slices remaining`), never in the sentinel.
327
- - One feature active at a time (`ACTIVE`). To start or switch, run
328
- `/rite-spec <other>` (it creates/selects that workspace and writes its
329
- spec).
339
+ - One feature active at a time (`ACTIVE`). Start a new workspace with
340
+ `/rite-spec <feature>`; switch to an existing one with `/rite use <slug>`.
330
341
  - **Recommended AFK progression**: HITL first to refine the prompt and plan,
331
342
  then drop the sentinel for the bulk stretch. Always cap iterations
332
343
  (`max_slices: 10` is a reasonable default).
333
- - Let the specialists fire on their triggers you don't invoke `devrites-*`
334
- directly. The exceptions are the three public utilities: `/rite-zoom-out`,
335
- `/rite-prototype`, `/rite-handoff`.
336
- - The `devrites-` prefix is a namespace, not a privacy marker — whether a
337
- skill is public is the `user-invocable:` flag, documented for each in
338
- [`command-map.md`](command-map.md).
344
+ - Invoke public `rite` / `rite-*` skills directly; let the model-invocable
345
+ `devrites-*` specialists fire from their documented triggers. `devrites-lib`
346
+ is an internal reference library, not a workflow.
347
+ - Prefixes are namespaces, not invocation policy. `user-invocable` and
348
+ `disable-model-invocation` frontmatter are authoritative; the effective policy
349
+ for every skill is catalogued in [`command-map.md`](command-map.md).
package/engine/Makefile CHANGED
@@ -22,7 +22,7 @@ fmt-check:
22
22
  test:
23
23
  go test ./...
24
24
 
25
- # Race-enabled run the engine has concurrent index/source-cache paths; the
25
+ # Race-enabled run. The engine has concurrent index/source-cache paths; the
26
26
  # detector is free signal on every test that touches them.
27
27
  test-race:
28
28
  go test -race -count=1 ./...
@@ -30,7 +30,7 @@ test-race:
30
30
  vet:
31
31
  go vet ./...
32
32
 
33
- # quality is the full local gate mirror it in CI so a green `make quality`
33
+ # quality is the full local gate. Mirror it in CI so a green `make quality`
34
34
  # means a green pipeline (the date-sensitive parity golden aside; see ADR-0006).
35
35
  quality: fmt-check vet staticcheck govulncheck gosec test-race
36
36
 
@@ -81,7 +81,7 @@ func cmdDoctor(args []string, stdout, stderr io.Writer) int {
81
81
  fmt.Fprintf(stderr, "devrites: %v\n", err)
82
82
  return exitUsage
83
83
  }
84
- // The project directory is the parent of the .devrites root that is where
84
+ // The project directory is the parent of the .devrites root: that is where
85
85
  // an installed pack's version marker (.claude/devrites.version, package.json)
86
86
  // lives.
87
87
  projectDir := filepath.Dir(root)
@@ -92,7 +92,7 @@ func cmdDoctor(args []string, stdout, stderr io.Writer) int {
92
92
  }
93
93
  fmt.Fprint(stdout, report.Render())
94
94
  if op := gitOperation(projectDir); op != "" {
95
- fmt.Fprintf(stdout, "git-state: %s in progress resolve with .claude/skills/devrites-lib/reference/standards/git-workflow.md#merge-conflict-recovery\n", op)
95
+ fmt.Fprintf(stdout, "git-state: %s in progress: resolve with .claude/skills/devrites-lib/reference/standards/git-workflow.md#merge-conflict-recovery\n", op)
96
96
  }
97
97
  for _, warning := range extensionProvenanceWarnings(root) {
98
98
  fmt.Fprintf(stdout, "warning: %s\n", warning)
@@ -105,7 +105,7 @@ func cmdDoctor(args []string, stdout, stderr io.Writer) int {
105
105
  fmt.Fprintf(stdout, " evidence: %s\n", snap.Evidence.Status)
106
106
  fmt.Fprintf(stdout, " drift: %s\n", snap.Drift.Status)
107
107
  fmt.Fprintf(stdout, " review: %s\n", snap.Review.Status)
108
- fmt.Fprintf(stdout, " harness: %s %s\n", snap.Harness.Status, snap.Harness.Detail)
108
+ fmt.Fprintf(stdout, " harness: %s: %s\n", snap.Harness.Status, snap.Harness.Detail)
109
109
  fmt.Fprintf(stdout, " extensions: %s (%d)\n", snap.Extensions.Status, snap.Extensions.Count)
110
110
  fmt.Fprintf(stdout, " worktree: %s (%d changed)\n", snap.DirtyWorkspace.Status, snap.DirtyWorkspace.Changed)
111
111
  fmt.Fprintln(stdout, " capabilities:")
@@ -12,7 +12,7 @@ import (
12
12
  // cmdHarnessMatrix renders the harness adapter-compliance matrix, or (with
13
13
  // --check FILE) verifies the generated block committed in FILE still matches the
14
14
  // engine's frozen matrix. The check is the drift guard: an edit to the matrix
15
- // data without regenerating the doc or vice versa fails CI.
15
+ // data without regenerating the doc (or vice versa) fails CI.
16
16
  //
17
17
  // Exit: 0 rendered / in-sync · 2 usage · 3 drift (regenerate + commit).
18
18
  func cmdHarnessMatrix(args []string, stdout, stderr io.Writer) int {
@@ -38,7 +38,7 @@ func cmdHarnessMatrix(args []string, stdout, stderr io.Writer) int {
38
38
  return exitBlocked
39
39
  }
40
40
  if strings.TrimSpace(got) != strings.TrimSpace(block) {
41
- fmt.Fprintf(stderr, "harness-matrix: %s is out of date run `devrites-engine harness-matrix` and commit the regenerated block.\n", path)
41
+ fmt.Fprintf(stderr, "harness-matrix: %s is out of date: run `devrites-engine harness-matrix` and commit the regenerated block.\n", path)
42
42
  return exitBlocked
43
43
  }
44
44
  fmt.Fprintf(stdout, "harness-matrix: %s is in sync.\n", path)
@@ -7,7 +7,7 @@ import (
7
7
 
8
8
  // Hook control plane.
9
9
  //
10
- // Every wired hook has a canonical id its `hook <name>` CLI verb (allow,
10
+ // Every wired hook has a canonical id: its `hook <name>` CLI verb (allow,
11
11
  // orient, stop-gate, …). That id is the addressable handle for two orthogonal
12
12
  // runtime controls, both read from the environment so an operator tunes safety
13
13
  // vs speed without editing any JSON:
@@ -17,7 +17,7 @@ import (
17
17
  //
18
18
  // The profile is a floor: a hook runs when its tier is at or below the active
19
19
  // profile AND it is not in the kill list. Everything else short-circuits to a
20
- // clean fail-open no-op in cmdHook identical to the inline `command -v … ||
20
+ // clean fail-open no-op in cmdHook: identical to the inline `command -v … ||
21
21
  // exit 0` guard, so a disabled hook is indistinguishable from an absent binary.
22
22
  //
23
23
  // A SEPARATE axis is enforce-vs-observe: the OBSERVE-by-default guards (a1-guard,
@@ -31,23 +31,23 @@ type hookTier int
31
31
 
32
32
  const (
33
33
  tierMinimal hookTier = iota // orientation-only; never blocks or mutates flow
34
- tierStandard // the default working set gates, guards, caches
34
+ tierStandard // the default working set: gates, guards, caches
35
35
  tierStrict // reserved for experimental/aggressive hooks
36
36
  )
37
37
 
38
38
  // hookRegistry maps each canonical hook id to the profile tier that first
39
39
  // activates it. A name absent from the registry is treated as tierMinimal
40
- // (always active) fail-open: an unrecognised hook is never silently disabled
40
+ // (always active): fail-open: an unrecognised hook is never silently disabled
41
41
  // by the profile mechanism.
42
42
  var hookRegistry = map[string]hookTier{
43
- // minimal orientation and auto-approval, which never interrupt work.
43
+ // minimal: orientation and auto-approval, which never interrupt work.
44
44
  "allow": tierMinimal,
45
45
  "orient": tierMinimal,
46
46
  "subagent-orient": tierMinimal,
47
47
  "cursor": tierMinimal,
48
48
  "statusline": tierMinimal,
49
49
 
50
- // standard the default gates, guards, sentinels and caches.
50
+ // standard: the default gates, guards, sentinels and caches.
51
51
  "a1-guard": tierStandard,
52
52
  "stop-gate": tierStandard,
53
53
  "reviewer-readonly": tierStandard,
@@ -62,7 +62,7 @@ var hookRegistry = map[string]hookTier{
62
62
  }
63
63
 
64
64
  // hookProfileTier resolves DEVRITES_HOOK_PROFILE to a tier, defaulting to
65
- // standard on empty or unrecognised input (fail-open a typo never silently
65
+ // standard on empty or unrecognised input (fail-open: a typo never silently
66
66
  // strips the working set below default).
67
67
  func hookProfileTier() hookTier {
68
68
  switch strings.ToLower(strings.TrimSpace(os.Getenv("DEVRITES_HOOK_PROFILE"))) {
@@ -83,7 +83,7 @@ func hookActive(name string) bool {
83
83
  }
84
84
  tier, known := hookRegistry[name]
85
85
  if !known {
86
- return true // unknown id never disabled by profile
86
+ return true // unknown id: never disabled by profile
87
87
  }
88
88
  return tier <= hookProfileTier()
89
89
  }
@@ -105,7 +105,7 @@ func hookDisabled(name string) bool {
105
105
 
106
106
  // hookEnforce reports whether an OBSERVE-default guard should block rather than
107
107
  // log. It is true when the guard's own DEVRITES_*=enforce var is set, OR when
108
- // the strict profile is active strict enforces every guard at once.
108
+ // the strict profile is active: strict enforces every guard at once.
109
109
  func hookEnforce(specificVar string) bool {
110
110
  if os.Getenv(specificVar) == "enforce" {
111
111
  return true
package/engine/hooks.go CHANGED
@@ -22,13 +22,13 @@ import (
22
22
  // The engine's inline shell guard handles a missing binary; this handles a
23
23
  // present binary run outside a workspace.
24
24
  func hookOrient(h harness.Harness, stdin io.Reader, stdout, stderr io.Writer) int {
25
- // The SessionStart payload is drained but unused orientation is a pure read
25
+ // The SessionStart payload is drained but unused: orientation is a pure read
26
26
  // of the workspace files, not a function of the harness's stdin.
27
27
  _, _ = io.Copy(io.Discard, stdin)
28
28
 
29
29
  root, err := orient.ResolveRoot(os.Getenv("DEVRITES_ROOT"))
30
30
  if err != nil {
31
- return exitOK // not a DevRites workspace silent no-op
31
+ return exitOK // not a DevRites workspace: silent no-op
32
32
  }
33
33
  text, has, err := orient.Digest(root)
34
34
  if err != nil {
@@ -58,7 +58,7 @@ func hookOrient(h harness.Harness, stdin io.Reader, stdout, stderr io.Writer) in
58
58
  func hookStopGate(h harness.Harness, stdin io.Reader, stdout, stderr io.Writer) int {
59
59
  in := h.ParseStopInput(stdin)
60
60
  if in.StopHookActive {
61
- return exitOK // already re-entered this stop cycle let it stop
61
+ return exitOK // already re-entered this stop cycle: let it stop
62
62
  }
63
63
  root, err := orient.ResolveRoot(os.Getenv("DEVRITES_ROOT"))
64
64
  if err != nil {
@@ -89,7 +89,7 @@ func hookStopGate(h harness.Harness, stdin io.Reader, stdout, stderr io.Writer)
89
89
  }
90
90
 
91
91
  // allowReason is the auto-approval message the allow hook emits.
92
- const allowReason = "DevRites read-only orientation/gate command auto-approved by the devrites-allow hook"
92
+ const allowReason = "DevRites read-only orientation/gate command: auto-approved by the devrites-allow hook"
93
93
 
94
94
  var allowReadonlyCommands = map[string]bool{
95
95
  "check-acceptance": true,
@@ -213,10 +213,10 @@ func safeAllowArg(arg string) bool {
213
213
  // reviewerReadonlyDenyReason is the exact denial message
214
214
  // devrites-reviewer-readonly.sh emits. It must stay byte-identical to keep the
215
215
  // parity oracle green.
216
- const reviewerReadonlyDenyReason = "DevRites: reviewers are read-only. This Bash command can mutate or exfiltrate; inspect with Read/Grep/Glob and return findings do not modify the tree or reach the network. (devrites-reviewer-readonly)"
216
+ const reviewerReadonlyDenyReason = "DevRites: reviewers are read-only. This Bash command can mutate or exfiltrate; inspect with Read/Grep/Glob and return findings: do not modify the tree or reach the network. (devrites-reviewer-readonly)"
217
217
 
218
218
  // reviewerMutateRe matches a Bash command that could mutate the tree or reach the
219
- // network the deny-list ported verbatim from devrites-reviewer-readonly.sh. A
219
+ // network: the deny-list ported verbatim from devrites-reviewer-readonly.sh. A
220
220
  // fresh-context reviewer reads untrusted source, so a silent write/exfil path is
221
221
  // a prompt-injection surface (standards/security.md). pack-scan-ignore: this is
222
222
  // the hook's own defensive deny-list, not a payload.
@@ -225,7 +225,7 @@ const reviewerReadonlyDenyReason = "DevRites: reviewers are read-only. This Bash
225
225
  // this matches against the WHOLE command, while the bash hook's
226
226
  // `read -r tool cmd agent_type` truncates the command at its first newline and so
227
227
  // only ever scans line 1. A reviewer running a multi-line Bash whose later lines
228
- // mutate (e.g. `cat x\nsed -i …`) slips past the bash hook but is denied here
228
+ // mutate (e.g. `cat x\nsed -i …`) slips past the bash hook but is denied here:
229
229
  // intentional hardening of a latent bash bug, not a parity regression. (RE2's
230
230
  // `[[:space:]]` already matches `\n`, so no `(?m)` flag is needed for the `-i$`
231
231
  // alternative to fire at an interior line break.)
@@ -240,7 +240,7 @@ func hookReviewerReadonly(h harness.Harness, stdin io.Reader, stdout, stderr io.
240
240
  if err != nil {
241
241
  return exitOK
242
242
  }
243
- // Fast path: a payload with no tool call is not ours mirrors the script's
243
+ // Fast path: a payload with no tool call is not ours: mirrors the script's
244
244
  // `case "$input" in *'"tool_name"'*`.
245
245
  if !bytes.Contains(data, []byte(`"tool_name"`)) {
246
246
  return exitOK
@@ -300,19 +300,19 @@ var subagentOrientContext string
300
300
  // hookSubagentOrient injects the DevRites discipline into every devrites-* subagent
301
301
  // at spawn: a spawned subagent starts in a fresh context and neither auto-loads the
302
302
  // rite-* framework nor discovers skills the way the main thread does. It mirrors
303
- // devrites-subagent-orient.sh fire only for devrites-* agents, emit a fixed
303
+ // devrites-subagent-orient.sh: fire only for devrites-* agents, emit a fixed
304
304
  // context envelope, stay silent + fail-open otherwise.
305
305
  func hookSubagentOrient(h harness.Harness, stdin io.Reader, stdout, stderr io.Writer) int {
306
306
  agentType := h.SubagentAgentType(stdin)
307
307
  if !strings.HasPrefix(agentType, "devrites-") {
308
- return exitOK // not a DevRites subagent (or no identity) silent no-op
308
+ return exitOK // not a DevRites subagent (or no identity): silent no-op
309
309
  }
310
310
  out, err := h.SubagentStartContext(strings.ReplaceAll(subagentOrientContext, "\r\n", "\n"))
311
311
  if err != nil {
312
312
  debugf(stderr, "subagent-orient: %v", err)
313
313
  return exitOK
314
314
  }
315
- // No trailing newline matches the script's `node ... process.stdout.write`.
315
+ // No trailing newline: matches the script's `node ... process.stdout.write`.
316
316
  fmt.Fprint(stdout, out)
317
317
  return exitOK
318
318
  }
@@ -41,7 +41,7 @@ func resolveWorkspaceDir(root, slug string) string {
41
41
  }
42
42
 
43
43
  // resolveWorkspace resolves the active feature's directory.
44
- // ok is false a silent no-op when there is no .devrites root or no active
44
+ // ok is false (a silent no-op) when there is no .devrites root or no active
45
45
  // feature, keeping the hooks fail-open outside a DevRites workspace.
46
46
  func resolveWorkspace() (root, slug, dir string, ok bool) {
47
47
  root, err := orient.ResolveRoot(os.Getenv("DEVRITES_ROOT"))
@@ -74,8 +74,8 @@ type auqEventJSON struct {
74
74
  // bloats the timeline.
75
75
  const auqFieldMax = 300
76
76
 
77
- // hookAUQ deterministically captures an AskUserQuestion exchange every
78
- // question with the user's chosen answer into the session trace, so HITL
77
+ // hookAUQ deterministically captures an AskUserQuestion exchange: every
78
+ // question with the user's chosen answer: into the session trace, so HITL
79
79
  // decisions are recorded at the substrate rather than trusted to the model's
80
80
  // bookkeeping. Capture only: it never tunes, blocks, or replies. Fail-open like
81
81
  // every workspace hook: unparseable payload, unknown response shape, or no
@@ -192,7 +192,7 @@ func hookHandoffSnapshot(stdin io.Reader, stdout, stderr io.Writer) int {
192
192
  next, _ := state.CursorField(stateLines, state.CursorNextAction)
193
193
  stamp := time.Now().UTC().Format(time.RFC3339)
194
194
  var b strings.Builder
195
- fmt.Fprintf(&b, "\n## Handoff snapshot %s\n", stamp)
195
+ fmt.Fprintf(&b, "\n## Handoff snapshot: %s\n", stamp)
196
196
  fmt.Fprintf(&b, "- Feature: %s\n", slug)
197
197
  if phase != "" {
198
198
  fmt.Fprintf(&b, "- Phase: %s\n", phase)
@@ -229,7 +229,7 @@ func hookCursor(stdin io.Reader, stdout, stderr io.Writer) int {
229
229
  afk, _ = state.CursorField(stateLines, state.CursorAFKSlicesRemaining)
230
230
  }
231
231
 
232
- fmt.Fprintf(stdout, "DevRites cursor active feature: %s\n", slug)
232
+ fmt.Fprintf(stdout, "DevRites cursor: active feature: %s\n", slug)
233
233
  if status != "" {
234
234
  fmt.Fprintf(stdout, " status: %s\n", status)
235
235
  }
@@ -241,7 +241,7 @@ func hookCursor(stdin io.Reader, stdout, stderr io.Writer) int {
241
241
  fmt.Fprintf(stdout, " AFK slices remaining: %s\n", afk)
242
242
  }
243
243
  if wsIsFile(filepath.Join(dir, ".red")) {
244
- fmt.Fprintln(stdout, " ⚠ tests/build RED resolve before stopping")
244
+ fmt.Fprintln(stdout, " ⚠ tests/build RED: resolve before stopping")
245
245
  }
246
246
  return exitOK
247
247
  }
@@ -281,7 +281,7 @@ var (
281
281
  redPassRe = regexp.MustCompile(`(?im)PASS(ED)?|0[[:space:]]+(failed|failing|errors?)|all tests passed|BUILD SUCC(ESS|EEDED)|succeeded|no (errors|problems|issues)|(^|[^a-z])ok([^a-z]|$)|✓`)
282
282
  )
283
283
 
284
- const redReasonFmt = "DevRites: tests/build are RED (%s). Fix to green or record the failure + next step in state.md before stopping the Stop gate blocks an end-of-turn while .red is set."
284
+ const redReasonFmt = "DevRites: tests/build are RED (%s). Fix to green or record the failure + next step in state.md before stopping: the Stop gate blocks an end-of-turn while .red is set."
285
285
 
286
286
  // hookRedwatch is the fail-on-red sentinel (PostToolUse Bash). After a test / build
287
287
  // / lint command it sets or clears <featureDir>/.red so the Stop gate can refuse to
@@ -339,7 +339,7 @@ func redwatchSafe(cmd string) string {
339
339
  // node regex the shell guards use.
340
340
  var patchPathRe = regexp.MustCompile(`(?m)^\*\*\* (?:(?:Add|Update|Delete) File|Move to): (.+)$`)
341
341
 
342
- // isEditTool reports whether a tool can write source the Edit family plus
342
+ // isEditTool reports whether a tool can write source: the Edit family plus
343
343
  // Codex's apply_patch.
344
344
  func isEditTool(tool string) bool {
345
345
  switch tool {
@@ -364,10 +364,10 @@ func underDevrites(abs, root string) bool {
364
364
  return strings.HasPrefix(abs, root+string(filepath.Separator))
365
365
  }
366
366
 
367
- const a1DenyReason = "DevRites A1: the orchestrator must not edit source mid-build the slice-wright is the only writer. Re-dispatch the wright (continue it once) or stop + escalate; do not patch the code yourself. (devrites-a1-guard)"
367
+ const a1DenyReason = "DevRites A1: the orchestrator must not edit source mid-build: the slice-wright is the only writer. Re-dispatch the wright (continue it once) or stop + escalate; do not patch the code yourself. (devrites-a1-guard)"
368
368
 
369
369
  // hookA1Guard keeps the /rite-build orchestrator from editing source while a slice
370
- // is mid-build the slice-wright (a subagent) is the only sanctioned writer of
370
+ // is mid-build: the slice-wright (a subagent) is the only sanctioned writer of
371
371
  // code. Ported from devrites-a1-guard.sh onto the new schema: FAIL-OPEN, OBSERVE by
372
372
  // default (logs to .a1-guard.log), blocking only when the build window is open, the
373
373
  // edit is source from the MAIN thread, and enforce mode is on.
@@ -451,7 +451,7 @@ func hookA1Guard(h harness.Harness, stdin io.Reader, stdout, stderr io.Writer) i
451
451
  return exitOK
452
452
  }
453
453
 
454
- const wrightDenyReason = "DevRites scope: this path is not in touched-files.md. Build only the slice contract; if the slice genuinely needs this file, return an Escalation so the orchestrator routes it through the Spec Drift Guard do not widen scope yourself. (devrites-wright-scope)"
454
+ const wrightDenyReason = "DevRites scope: this path is not in touched-files.md. Build only the slice contract; if the slice genuinely needs this file, return an Escalation so the orchestrator routes it through the Spec Drift Guard: do not widen scope yourself. (devrites-wright-scope)"
455
455
 
456
456
  // hookWrightScope fences the slice-wright to its slice: it denies an Edit/Write to a
457
457
  // path not listed in the feature's touched-files.md. Ported from
@@ -1,5 +1,5 @@
1
- // Package doctor reports the version triangle the engine binary, the installed
2
- // DevRites pack, and the on-disk .devrites state schema and a clear skew
1
+ // Package doctor reports the version triangle: the engine binary, the installed
2
+ // DevRites pack, and the on-disk .devrites state schema, and a clear skew
3
3
  // verdict. Version skew is a leading cause of silent breakage; doctor turns it
4
4
  // into one legible line. Everything here is a read; doctor never mutates state.
5
5
  package doctor
@@ -16,7 +16,7 @@ import (
16
16
  )
17
17
 
18
18
  // Unknown is the pack value reported when the installed pack version can't be
19
- // discovered skew against an unknown pack is not asserted.
19
+ // discovered: skew against an unknown pack is not asserted.
20
20
  const Unknown = "unknown"
21
21
 
22
22
  // Report is the resolved version triangle plus its verdict.
@@ -45,7 +45,7 @@ func Diagnose(projectDir, root string) (*Report, error) {
45
45
  return nil, fmt.Errorf("read state schema: %w", err)
46
46
  }
47
47
  if stateSchema == 0 {
48
- // Nothing on disk declares a version treat it as the current schema;
48
+ // Nothing on disk declares a version: treat it as the current schema;
49
49
  // undeclared state is read as the engine's own version.
50
50
  stateSchema = state.SchemaVersion
51
51
  }
@@ -61,10 +61,10 @@ func Diagnose(projectDir, root string) (*Report, error) {
61
61
  switch {
62
62
  case r.StateSchema > r.BinarySchema:
63
63
  r.Refuse = true
64
- r.Verdict = fmt.Sprintf("REFUSE: state schema v%d is newer than this binary supports (v%d) update devrites",
64
+ r.Verdict = fmt.Sprintf("REFUSE: state schema v%d is newer than this binary supports (v%d): update devrites",
65
65
  r.StateSchema, r.BinarySchema)
66
66
  case r.packSkew():
67
- r.Verdict = fmt.Sprintf("WARN: binary %s is older than the installed pack %s update the devrites-engine binary",
67
+ r.Verdict = fmt.Sprintf("WARN: binary %s is older than the installed pack %s: update the devrites-engine binary",
68
68
  r.Binary, r.Pack)
69
69
  default:
70
70
  r.Verdict = "ok: binary, pack, and state schema are compatible"
@@ -131,7 +131,7 @@ func driftChecks(projectDir string) []string {
131
131
  checks = append(checks, "WARN: .claude/settings.json exists but does not reference devrites-engine hooks")
132
132
  }
133
133
  } else if isDir(filepath.Join(projectDir, ".claude")) {
134
- checks = append(checks, "WARN: .claude/settings.json missing Claude hooks/statusline may be absent")
134
+ checks = append(checks, "WARN: .claude/settings.json missing: Claude hooks/statusline may be absent")
135
135
  }
136
136
  if isDir(filepath.Join(projectDir, ".claude", "skills")) && !isDir(filepath.Join(projectDir, ".agents", "skills")) {
137
137
  checks = append(checks, "WARN: Claude skills installed but Codex skill mirror .agents/skills is missing")