devrites 2.6.1 → 3.0.1

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 (1079) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +85 -50
  3. package/SECURITY.md +65 -39
  4. package/bin/devrites.mjs +135 -51
  5. package/docs/agents/domain.md +58 -0
  6. package/docs/agents/issue-driven-rites.md +11 -0
  7. package/docs/agents/issue-tracker.md +29 -0
  8. package/docs/agents/triage-labels.md +15 -0
  9. package/docs/architecture.md +60 -35
  10. package/docs/capability-surface-selection.md +18 -0
  11. package/docs/cli.md +53 -0
  12. package/docs/command-map.md +59 -22
  13. package/docs/engine/agent-contract.md +92 -0
  14. package/docs/engine/commands.md +323 -0
  15. package/docs/engine/state-schema.md +134 -0
  16. package/docs/engine/workspace-schema.md +150 -0
  17. package/docs/extensions.md +178 -0
  18. package/docs/flow.md +19 -16
  19. package/docs/harness-compliance.md +45 -0
  20. package/docs/orchestration.md +6 -4
  21. package/docs/porting-to-a-new-harness.md +27 -0
  22. package/docs/quick-reference.md +22 -0
  23. package/docs/release.md +3 -3
  24. package/docs/skills.md +42 -48
  25. package/docs/usage.md +21 -8
  26. package/engine/.gosec.json +5 -0
  27. package/engine/Makefile +64 -0
  28. package/engine/commands.go +195 -0
  29. package/engine/go.mod +5 -0
  30. package/engine/harnessmatrix.go +60 -0
  31. package/engine/harnessmatrix_test.go +59 -0
  32. package/engine/hookpolicy.go +114 -0
  33. package/engine/hookpolicy_test.go +64 -0
  34. package/engine/hooks.go +336 -0
  35. package/engine/hooks_events_test.go +106 -0
  36. package/engine/hooks_workspace.go +603 -0
  37. package/engine/internal/devritespaths/paths.go +76 -0
  38. package/engine/internal/doctor/doctor.go +178 -0
  39. package/engine/internal/doctor/doctor_test.go +150 -0
  40. package/engine/internal/fsutil/copy.go +101 -0
  41. package/engine/internal/fsutil/replace_other.go +7 -0
  42. package/engine/internal/fsutil/replace_windows.go +31 -0
  43. package/engine/internal/gate/gate.go +243 -0
  44. package/engine/internal/gate/gate_test.go +145 -0
  45. package/engine/internal/harness/compliance.go +102 -0
  46. package/engine/internal/harness/harness.go +304 -0
  47. package/engine/internal/harness/harness_test.go +104 -0
  48. package/engine/internal/hostpack/hostpack.go +259 -0
  49. package/engine/internal/hostpack/hostpack_test.go +111 -0
  50. package/engine/internal/hostpack/templates/alias_skill.md.tmpl +11 -0
  51. package/engine/internal/hostpack/templates/devrites_readme.md.tmpl +14 -0
  52. package/engine/internal/install/install.go +1560 -0
  53. package/engine/internal/install/install_test.go +564 -0
  54. package/engine/internal/iohooks/detach_other.go +11 -0
  55. package/engine/internal/iohooks/detach_unix.go +11 -0
  56. package/engine/internal/iohooks/iohooks.go +546 -0
  57. package/engine/internal/iohooks/iohooks_test.go +130 -0
  58. package/engine/internal/lib/adoption.go +634 -0
  59. package/engine/internal/lib/adoption_test.go +91 -0
  60. package/engine/internal/lib/analyze.go +224 -0
  61. package/engine/internal/lib/archivesearch.go +93 -0
  62. package/engine/internal/lib/archivesearch_test.go +110 -0
  63. package/engine/internal/lib/budget.go +172 -0
  64. package/engine/internal/lib/buildreadiness.go +88 -0
  65. package/engine/internal/lib/checkacceptance.go +176 -0
  66. package/engine/internal/lib/closeout.go +69 -0
  67. package/engine/internal/lib/command_other.go +7 -0
  68. package/engine/internal/lib/command_unix.go +24 -0
  69. package/engine/internal/lib/context.go +236 -0
  70. package/engine/internal/lib/conventions.go +449 -0
  71. package/engine/internal/lib/coverage.go +145 -0
  72. package/engine/internal/lib/doubtcoverage.go +88 -0
  73. package/engine/internal/lib/evidencefresh.go +85 -0
  74. package/engine/internal/lib/extensions.go +619 -0
  75. package/engine/internal/lib/extensions_test.go +305 -0
  76. package/engine/internal/lib/footprint.go +239 -0
  77. package/engine/internal/lib/jsonout.go +115 -0
  78. package/engine/internal/lib/jsonout_test.go +57 -0
  79. package/engine/internal/lib/lanes.go +106 -0
  80. package/engine/internal/lib/learnings.go +391 -0
  81. package/engine/internal/lib/learnings_inject_test.go +77 -0
  82. package/engine/internal/lib/learnings_remediation_test.go +24 -0
  83. package/engine/internal/lib/ledger.go +298 -0
  84. package/engine/internal/lib/ledger_test.go +162 -0
  85. package/engine/internal/lib/mutationgate.go +85 -0
  86. package/engine/internal/lib/overrides.go +164 -0
  87. package/engine/internal/lib/overrides_test.go +112 -0
  88. package/engine/internal/lib/packageexistence.go +175 -0
  89. package/engine/internal/lib/preamble.go +159 -0
  90. package/engine/internal/lib/progress.go +168 -0
  91. package/engine/internal/lib/reconcile.go +173 -0
  92. package/engine/internal/lib/reconcile_test.go +197 -0
  93. package/engine/internal/lib/resolve.go +376 -0
  94. package/engine/internal/lib/resolve_remediation_test.go +49 -0
  95. package/engine/internal/lib/reviewers.go +143 -0
  96. package/engine/internal/lib/reviewers_test.go +45 -0
  97. package/engine/internal/lib/reviewerstats.go +199 -0
  98. package/engine/internal/lib/reviewerstats_test.go +104 -0
  99. package/engine/internal/lib/reviewintegrity.go +143 -0
  100. package/engine/internal/lib/reviewintegrity_test.go +103 -0
  101. package/engine/internal/lib/runbook.go +292 -0
  102. package/engine/internal/lib/runbook_context_test.go +119 -0
  103. package/engine/internal/lib/session.go +328 -0
  104. package/engine/internal/lib/session_test.go +110 -0
  105. package/engine/internal/lib/specparse.go +125 -0
  106. package/engine/internal/lib/specskeleton.go +79 -0
  107. package/engine/internal/lib/specvalidate.go +391 -0
  108. package/engine/internal/lib/specvalidate_test.go +185 -0
  109. package/engine/internal/lib/stuck.go +206 -0
  110. package/engine/internal/lib/templates/conventions_drift.tmpl +6 -0
  111. package/engine/internal/lib/templates/conventions_ledger_header.md +6 -0
  112. package/engine/internal/lib/templates/conventions_orient_header.txt +1 -0
  113. package/engine/internal/lib/testintegrity.go +203 -0
  114. package/engine/internal/lib/testintegrity_test.go +72 -0
  115. package/engine/internal/lib/tickafk.go +99 -0
  116. package/engine/internal/lib/util.go +68 -0
  117. package/engine/internal/migrate/migrate.go +213 -0
  118. package/engine/internal/migrate/migrate_test.go +105 -0
  119. package/engine/internal/orient/firstrun.go +50 -0
  120. package/engine/internal/orient/firstrun_test.go +72 -0
  121. package/engine/internal/orient/orient.go +69 -0
  122. package/engine/internal/orient/orient_test.go +25 -0
  123. package/engine/internal/profile/profile.go +270 -0
  124. package/engine/internal/state/concurrency_test.go +184 -0
  125. package/engine/internal/state/feature.go +309 -0
  126. package/engine/internal/state/lock_other.go +24 -0
  127. package/engine/internal/state/lock_unix.go +35 -0
  128. package/engine/internal/state/lock_windows.go +56 -0
  129. package/engine/internal/state/schema.go +102 -0
  130. package/engine/internal/state/snapshot.go +384 -0
  131. package/engine/internal/state/state_test.go +260 -0
  132. package/engine/internal/state/status.go +90 -0
  133. package/engine/internal/state/write.go +59 -0
  134. package/engine/internal/testutil/testutil.go +66 -0
  135. package/engine/internal/version/version.go +57 -0
  136. package/engine/internal/workflow/commands.go +64 -0
  137. package/engine/main.go +530 -0
  138. package/engine/profile_test.go +76 -0
  139. package/engine/subagent_orient_context.txt +6 -0
  140. package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/decisions.md +4 -0
  141. package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/feature.md +8 -0
  142. package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/plan.md +5 -0
  143. package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/spec.md +6 -0
  144. package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/status.md +4 -0
  145. package/engine/testdata/fixtures/basic/devrites-root/features/auth-tokens/tasks.md +1 -0
  146. package/engine/testdata/fixtures/basic/devrites-root/features/search-ranking/feature.md +8 -0
  147. package/engine/testdata/fixtures/basic/devrites-root/features/search-ranking/spec.md +6 -0
  148. package/engine/testdata/golden/TestParityA1Guard/devrites-edit-allowed.golden +1 -0
  149. package/engine/testdata/golden/TestParityA1Guard/inline-fallback-silent.golden +1 -0
  150. package/engine/testdata/golden/TestParityA1Guard/no-window-silent.golden +1 -0
  151. package/engine/testdata/golden/TestParityA1Guard/non-edit-tool.golden +1 -0
  152. package/engine/testdata/golden/TestParityA1Guard/observe-mode-silent.golden +1 -0
  153. package/engine/testdata/golden/TestParityA1Guard/source-edit-enforce-denies.golden +2 -0
  154. package/engine/testdata/golden/TestParityA1Guard/subagent-allowed.golden +1 -0
  155. package/engine/testdata/golden/TestParityAnalyze/noactive.golden +1 -0
  156. package/engine/testdata/golden/TestParityAnalyze/slug=covered.golden +15 -0
  157. package/engine/testdata/golden/TestParityAnalyze/slug=dangling.golden +16 -0
  158. package/engine/testdata/golden/TestParityAnalyze/slug=ghost.golden +1 -0
  159. package/engine/testdata/golden/TestParityAnalyze/slug=noac.golden +15 -0
  160. package/engine/testdata/golden/TestParityAnalyze/slug=order.golden +17 -0
  161. package/engine/testdata/golden/TestParityAnalyze/slug=orphan.golden +16 -0
  162. package/engine/testdata/golden/TestParityAnalyze/slug=uncovered.golden +16 -0
  163. package/engine/testdata/golden/TestParityBudget/default-active.golden +4 -0
  164. package/engine/testdata/golden/TestParityBudget/extra-md.golden +5 -0
  165. package/engine/testdata/golden/TestParityBudget/no-active.golden +1 -0
  166. package/engine/testdata/golden/TestParityBudget/no-feature.golden +1 -0
  167. package/engine/testdata/golden/TestParityBudget/over-advisory.golden +6 -0
  168. package/engine/testdata/golden/TestParityBudget/over-strict.golden +6 -0
  169. package/engine/testdata/golden/TestParityBudget/within.golden +6 -0
  170. package/engine/testdata/golden/TestParityBuildReadiness/arg=approved.golden +2 -0
  171. package/engine/testdata/golden/TestParityBuildReadiness/arg=approvenone.golden +1 -0
  172. package/engine/testdata/golden/TestParityBuildReadiness/arg=await.golden +1 -0
  173. package/engine/testdata/golden/TestParityBuildReadiness/arg=blocked.golden +1 -0
  174. package/engine/testdata/golden/TestParityBuildReadiness/arg=emptystatus.golden +2 -0
  175. package/engine/testdata/golden/TestParityBuildReadiness/arg=ghost.golden +1 -0
  176. package/engine/testdata/golden/TestParityBuildReadiness/arg=noapprove.golden +1 -0
  177. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailhash.golden +2 -0
  178. package/engine/testdata/golden/TestParityBuildReadiness/arg=trailpipe.golden +2 -0
  179. package/engine/testdata/golden/TestParityCheckAcceptance/arg=blank-section.golden +1 -0
  180. package/engine/testdata/golden/TestParityCheckAcceptance/arg=empty.golden +1 -0
  181. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-dropped.golden +1 -0
  182. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-ok.golden +2 -0
  183. package/engine/testdata/golden/TestParityCheckAcceptance/arg=flat-unchecked.golden +1 -0
  184. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-gap.golden +1 -0
  185. package/engine/testdata/golden/TestParityCheckAcceptance/arg=id-ok.golden +2 -0
  186. package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-seal.golden +1 -0
  187. package/engine/testdata/golden/TestParityCheckAcceptance/arg=no-section.golden +1 -0
  188. package/engine/testdata/golden/TestParityCheckAcceptance/arg=nonexistent.golden +1 -0
  189. package/engine/testdata/golden/TestParityCheckAcceptance.golden +1 -0
  190. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +2 -0
  191. package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +2 -0
  192. package/engine/testdata/golden/TestParityCloseOut/archive_clobber.golden +1 -0
  193. package/engine/testdata/golden/TestParityCloseOut/missing_slug.golden +1 -0
  194. package/engine/testdata/golden/TestParityCloseOut/missing_workspace.golden +1 -0
  195. package/engine/testdata/golden/TestParityCoverage/arg=flat.golden +7 -0
  196. package/engine/testdata/golden/TestParityCoverage/arg=full.golden +10 -0
  197. package/engine/testdata/golden/TestParityCoverage/arg=nonexistent.golden +1 -0
  198. package/engine/testdata/golden/TestParityCoverage/arg=nospec.golden +1 -0
  199. package/engine/testdata/golden/TestParityCoverage/arg=speconly.golden +9 -0
  200. package/engine/testdata/golden/TestParityCoverage.golden +1 -0
  201. package/engine/testdata/golden/TestParityCursor/bare.golden +3 -0
  202. package/engine/testdata/golden/TestParityCursor/full-afk.golden +6 -0
  203. package/engine/testdata/golden/TestParityCursor/full-hitl.golden +5 -0
  204. package/engine/testdata/golden/TestParityCursor/no-active.golden +1 -0
  205. package/engine/testdata/golden/TestParityCursor/red.golden +5 -0
  206. package/engine/testdata/golden/TestParityCursor/zerogates.golden +5 -0
  207. package/engine/testdata/golden/TestParityDoubtCoverage/arg=doubted.golden +2 -0
  208. package/engine/testdata/golden/TestParityDoubtCoverage/arg=ghost.golden +2 -0
  209. package/engine/testdata/golden/TestParityDoubtCoverage/arg=inline.golden +3 -0
  210. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing-inline.golden +3 -0
  211. package/engine/testdata/golden/TestParityDoubtCoverage/arg=missing.golden +3 -0
  212. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nodoubt.golden +4 -0
  213. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nolog.golden +2 -0
  214. package/engine/testdata/golden/TestParityDoubtCoverage/arg=nowright.golden +2 -0
  215. package/engine/testdata/golden/TestParityDoubtCoverage.golden +1 -0
  216. package/engine/testdata/golden/TestParityLearnings/add.golden +2 -0
  217. package/engine/testdata/golden/TestParityLearnings/list.golden +5 -0
  218. package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +2 -0
  219. package/engine/testdata/golden/TestParityLearnings/mine.golden +5 -0
  220. package/engine/testdata/golden/TestParityLearnings/nudge.golden +2 -0
  221. package/engine/testdata/golden/TestParityLearnings/unknown.golden +1 -0
  222. package/engine/testdata/golden/TestParityMutationGate/active-slug.golden +3 -0
  223. package/engine/testdata/golden/TestParityMutationGate/explicit-slug.golden +3 -0
  224. package/engine/testdata/golden/TestParityMutationGate/ghost.golden +1 -0
  225. package/engine/testdata/golden/TestParityOrientSilentPath.golden +1 -0
  226. package/engine/testdata/golden/TestParityPackageExistence/declared.golden +2 -0
  227. package/engine/testdata/golden/TestParityPackageExistence/default-import-subpath.golden +2 -0
  228. package/engine/testdata/golden/TestParityPackageExistence/ghost-workspace.golden +1 -0
  229. package/engine/testdata/golden/TestParityPackageExistence/no-manifest.golden +1 -0
  230. package/engine/testdata/golden/TestParityPackageExistence/not-git.golden +1 -0
  231. package/engine/testdata/golden/TestParityPackageExistence/undeclared.golden +1 -0
  232. package/engine/testdata/golden/TestParityPreamble/afk/a.golden +14 -0
  233. package/engine/testdata/golden/TestParityPreamble/hitl/active.golden +18 -0
  234. package/engine/testdata/golden/TestParityPreamble/hitl/bare.golden +10 -0
  235. package/engine/testdata/golden/TestParityPreamble/hitl/full.golden +18 -0
  236. package/engine/testdata/golden/TestParityPreamble/hitl/ghost.golden +2 -0
  237. package/engine/testdata/golden/TestParityPreamble/hitl/nonl.golden +11 -0
  238. package/engine/testdata/golden/TestParityPreamble/hitl/openend.golden +13 -0
  239. package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +4 -0
  240. package/engine/testdata/golden/TestParityProgress/arg=done.golden +3 -0
  241. package/engine/testdata/golden/TestParityProgress/arg=ghost.golden +1 -0
  242. package/engine/testdata/golden/TestParityProgress/arg=mid.golden +4 -0
  243. package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +3 -0
  244. package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +3 -0
  245. package/engine/testdata/golden/TestParityProgress/arg=plan.golden +4 -0
  246. package/engine/testdata/golden/TestParityProgress/arg=seal.golden +3 -0
  247. package/engine/testdata/golden/TestParityReconcile/bad-mode.golden +1 -0
  248. package/engine/testdata/golden/TestParityReconcile/check-clean/snapshot.golden +2 -0
  249. package/engine/testdata/golden/TestParityReconcile/check-clean.golden +2 -0
  250. package/engine/testdata/golden/TestParityReconcile/check-no-base.golden +1 -0
  251. package/engine/testdata/golden/TestParityReconcile/check-no-claimed/snapshot.golden +2 -0
  252. package/engine/testdata/golden/TestParityReconcile/check-no-claimed.golden +1 -0
  253. package/engine/testdata/golden/TestParityReconcile/check-violation/snapshot.golden +2 -0
  254. package/engine/testdata/golden/TestParityReconcile/check-violation.golden +1 -0
  255. package/engine/testdata/golden/TestParityReconcile/inline-fallback/snapshot.golden +2 -0
  256. package/engine/testdata/golden/TestParityReconcile/inline-fallback.golden +1 -0
  257. package/engine/testdata/golden/TestParityReconcile/not-git.golden +1 -0
  258. package/engine/testdata/golden/TestParityReconcile/snapshot/snapshot.golden +2 -0
  259. package/engine/testdata/golden/TestParityReconcile/snapshot.golden +2 -0
  260. package/engine/testdata/golden/TestParityRedwatch/fail-writes-red.golden +2 -0
  261. package/engine/testdata/golden/TestParityRedwatch/non-bash-tool.golden +1 -0
  262. package/engine/testdata/golden/TestParityRedwatch/non-test-command.golden +1 -0
  263. package/engine/testdata/golden/TestParityRedwatch/pass-clears-red.golden +1 -0
  264. package/engine/testdata/golden/TestParityResolve/answer/questions.md.golden +9 -0
  265. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +6 -0
  266. package/engine/testdata/golden/TestParityResolve/answer.golden +4 -0
  267. package/engine/testdata/golden/TestParityResolve/batch/questions.md.golden +9 -0
  268. package/engine/testdata/golden/TestParityResolve/batch-unterminated/questions.md.golden +9 -0
  269. package/engine/testdata/golden/TestParityResolve/batch-unterminated.golden +2 -0
  270. package/engine/testdata/golden/TestParityResolve/batch.golden +3 -0
  271. package/engine/testdata/golden/TestParityResolve/drop/questions.md.golden +9 -0
  272. package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +8 -0
  273. package/engine/testdata/golden/TestParityResolve/drop.golden +4 -0
  274. package/engine/testdata/golden/TestParityResolve/missing-answer.golden +1 -0
  275. package/engine/testdata/golden/TestParityResolve/next-qid.golden +2 -0
  276. package/engine/testdata/golden/TestParityResolve/no-workspace.golden +1 -0
  277. package/engine/testdata/golden/TestParityResolve/not-found.golden +1 -0
  278. package/engine/testdata/golden/TestParityResolve/not-open.golden +1 -0
  279. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-devrites-agent-denies.golden +2 -0
  280. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-non-devrites-allows.golden +1 -0
  281. package/engine/testdata/golden/TestParityReviewerReadonly/agent-required-subagent-type-only-allows.golden +1 -0
  282. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-git-commit.golden +2 -0
  283. package/engine/testdata/golden/TestParityReviewerReadonly/enforce-deny-mutating.golden +2 -0
  284. package/engine/testdata/golden/TestParityReviewerReadonly/non-bash-tool.golden +1 -0
  285. package/engine/testdata/golden/TestParityReviewerReadonly/non-tool-input.golden +1 -0
  286. package/engine/testdata/golden/TestParityReviewerReadonly/observe-mutating-silent.golden +1 -0
  287. package/engine/testdata/golden/TestParityReviewerReadonly/safe-bash-command.golden +1 -0
  288. package/engine/testdata/golden/TestParitySpecValidate/arg=dup.golden +1 -0
  289. package/engine/testdata/golden/TestParitySpecValidate/arg=empty.golden +1 -0
  290. package/engine/testdata/golden/TestParitySpecValidate/arg=flat.golden +2 -0
  291. package/engine/testdata/golden/TestParitySpecValidate/arg=nonexistent.golden +1 -0
  292. package/engine/testdata/golden/TestParitySpecValidate/arg=noscenario.golden +1 -0
  293. package/engine/testdata/golden/TestParitySpecValidate/arg=noshall.golden +1 -0
  294. package/engine/testdata/golden/TestParitySpecValidate/arg=nothen.golden +1 -0
  295. package/engine/testdata/golden/TestParitySpecValidate/arg=valid/spec.md.golden +2 -0
  296. package/engine/testdata/golden/TestParitySpecValidate/arg=valid.golden +2 -0
  297. package/engine/testdata/golden/TestParitySpecValidate.golden +1 -0
  298. package/engine/testdata/golden/TestParityStatusline/full-afk.golden +2 -0
  299. package/engine/testdata/golden/TestParityStatusline/full-hitl.golden +2 -0
  300. package/engine/testdata/golden/TestParityStatusline/no-active.golden +1 -0
  301. package/engine/testdata/golden/TestParityStatusline/nophase.golden +2 -0
  302. package/engine/testdata/golden/TestParityStatusline/red.golden +2 -0
  303. package/engine/testdata/golden/TestParityStuckCheck/bad-cmd.golden +1 -0
  304. package/engine/testdata/golden/TestParityStuckCheck/custom-window-2.golden +2 -0
  305. package/engine/testdata/golden/TestParityStuckCheck/dominant.golden +2 -0
  306. package/engine/testdata/golden/TestParityStuckCheck/few.golden +2 -0
  307. package/engine/testdata/golden/TestParityStuckCheck/ghost.golden +2 -0
  308. package/engine/testdata/golden/TestParityStuckCheck/identical.golden +2 -0
  309. package/engine/testdata/golden/TestParityStuckCheck/no-cmd.golden +1 -0
  310. package/engine/testdata/golden/TestParityStuckCheck/no-slug.golden +1 -0
  311. package/engine/testdata/golden/TestParityStuckCheck/nolog.golden +2 -0
  312. package/engine/testdata/golden/TestParityStuckCheck/pingpong.golden +2 -0
  313. package/engine/testdata/golden/TestParityStuckCheck/varied.golden +2 -0
  314. package/engine/testdata/golden/TestParityStuckCheck/window-04-identical.golden +2 -0
  315. package/engine/testdata/golden/TestParityStuckCheck/window-2.5-varied4.golden +2 -0
  316. package/engine/testdata/golden/TestParityStuckCheck/window-4x-varied4.golden +2 -0
  317. package/engine/testdata/golden/TestParityStuckCheck/window-leadspace-varied4.golden +2 -0
  318. package/engine/testdata/golden/TestParityStuckCheck/window-plus4-identical.golden +2 -0
  319. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent-subagent-type-key.golden +2 -0
  320. package/engine/testdata/golden/TestParitySubagentOrient/devrites-agent.golden +2 -0
  321. package/engine/testdata/golden/TestParitySubagentOrient/garbage-input.golden +1 -0
  322. package/engine/testdata/golden/TestParitySubagentOrient/non-devrites-agent.golden +1 -0
  323. package/engine/testdata/golden/TestParityTestIntegrity/assertion-dropped.golden +1 -0
  324. package/engine/testdata/golden/TestParityTestIntegrity/clean.golden +2 -0
  325. package/engine/testdata/golden/TestParityTestIntegrity/deleted.golden +1 -0
  326. package/engine/testdata/golden/TestParityTestIntegrity/ghost-workspace.golden +1 -0
  327. package/engine/testdata/golden/TestParityTestIntegrity/not-git.golden +1 -0
  328. package/engine/testdata/golden/TestParityTestIntegrity/skip-added.golden +1 -0
  329. package/engine/testdata/golden/TestParityTickAfk/budget1/state.md.golden +1 -0
  330. package/engine/testdata/golden/TestParityTickAfk/budget1.golden +2 -0
  331. package/engine/testdata/golden/TestParityTickAfk/budget3/state.md.golden +5 -0
  332. package/engine/testdata/golden/TestParityTickAfk/budget3.golden +2 -0
  333. package/engine/testdata/golden/TestParityTickAfk/bulletPipe/state.md.golden +1 -0
  334. package/engine/testdata/golden/TestParityTickAfk/bulletPipe.golden +2 -0
  335. package/engine/testdata/golden/TestParityTickAfk/missingField/state.md.golden +3 -0
  336. package/engine/testdata/golden/TestParityTickAfk/missingField.golden +2 -0
  337. package/engine/testdata/golden/TestParityTickAfk/missingFile.golden +1 -0
  338. package/engine/testdata/golden/TestParityTickAfk/nonNumeric/state.md.golden +1 -0
  339. package/engine/testdata/golden/TestParityTickAfk/nonNumeric.golden +1 -0
  340. package/engine/testdata/golden/TestParityTickAfk/none/state.md.golden +1 -0
  341. package/engine/testdata/golden/TestParityTickAfk/none.golden +2 -0
  342. package/engine/testdata/golden/TestParityWrightScope/agent-required-non-wright.golden +1 -0
  343. package/engine/testdata/golden/TestParityWrightScope/devrites-edit-allowed.golden +1 -0
  344. package/engine/testdata/golden/TestParityWrightScope/in-scope-allowed.golden +1 -0
  345. package/engine/testdata/golden/TestParityWrightScope/non-edit-tool.golden +1 -0
  346. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-enforce-denies.golden +2 -0
  347. package/engine/testdata/golden/TestParityWrightScope/out-of-scope-observe-silent.golden +1 -0
  348. package/engine/testdata/golden/TestSpecSkeleton/missing-some.golden +2 -0
  349. package/engine/testdata/golden/TestSpecSkeleton/present-all.golden +2 -0
  350. package/engine/testdata/golden/TestStatusLiveWorkspace.golden +10 -0
  351. package/engine/testdata/golden/TestStuckLogHashParity.golden +1 -0
  352. package/engine/testdata/golden/status/auth-tokens.txt +9 -0
  353. package/engine/testdata/golden/status/search-ranking.txt +9 -0
  354. package/engine/tests/adr_0003_gate_exit_code_test.go +32 -0
  355. package/engine/tests/adr_0004_required_by_phase_test.go +62 -0
  356. package/engine/tests/adr_0006_clock_seam_test.go +36 -0
  357. package/engine/tests/budget_test.go +77 -0
  358. package/engine/tests/canonical_ac_ids_test.go +44 -0
  359. package/engine/tests/cli_test.go +209 -0
  360. package/engine/tests/concurrency_cli_test.go +125 -0
  361. package/engine/tests/conventions_test.go +106 -0
  362. package/engine/tests/doctor_cli_test.go +62 -0
  363. package/engine/tests/gate_test.go +235 -0
  364. package/engine/tests/hook_test.go +390 -0
  365. package/engine/tests/hooks_io_test.go +218 -0
  366. package/engine/tests/json_contract_test.go +99 -0
  367. package/engine/tests/lib_parity_test.go +942 -0
  368. package/engine/tests/meta_test.go +67 -0
  369. package/engine/tests/migrate_cli_test.go +193 -0
  370. package/engine/tests/parity_analyze_test.go +55 -0
  371. package/engine/tests/parity_buildreadiness_test.go +42 -0
  372. package/engine/tests/parity_closeout_test.go +102 -0
  373. package/engine/tests/parity_githelpers_test.go +41 -0
  374. package/engine/tests/parity_learnings_test.go +90 -0
  375. package/engine/tests/parity_mutationgate_test.go +36 -0
  376. package/engine/tests/parity_packageexistence_test.go +64 -0
  377. package/engine/tests/parity_reconcile_test.go +88 -0
  378. package/engine/tests/parity_resolve_test.go +144 -0
  379. package/engine/tests/parity_test.go +380 -0
  380. package/engine/tests/parity_testintegrity_test.go +65 -0
  381. package/engine/tests/parity_tickafk_test.go +83 -0
  382. package/engine/validatepack.go +192 -0
  383. package/engine/validatepack_test.go +79 -0
  384. package/engine/validatepackskills.go +181 -0
  385. package/engine/validatepackskills_test.go +171 -0
  386. package/install.sh +67 -912
  387. package/pack/.claude/agents/devrites-code-reviewer.md +20 -3
  388. package/pack/.claude/agents/devrites-devex-reviewer.md +13 -3
  389. package/pack/.claude/agents/devrites-doubt-reviewer.md +16 -3
  390. package/pack/.claude/agents/devrites-forge-judge.md +14 -4
  391. package/pack/.claude/agents/devrites-frontend-reviewer.md +27 -3
  392. package/pack/.claude/agents/devrites-performance-reviewer.md +18 -2
  393. package/pack/.claude/agents/devrites-plan-reviewer.md +13 -3
  394. package/pack/.claude/agents/devrites-retrospector.md +12 -7
  395. package/pack/.claude/agents/devrites-security-auditor.md +20 -4
  396. package/pack/.claude/agents/devrites-simplifier-reviewer.md +17 -2
  397. package/pack/.claude/agents/devrites-slice-wright.md +32 -16
  398. package/pack/.claude/agents/devrites-spec-reviewer.md +17 -2
  399. package/pack/.claude/agents/devrites-strategy-reviewer.md +12 -2
  400. package/pack/.claude/agents/devrites-test-analyst.md +20 -3
  401. package/pack/.claude/settings.json +58 -8
  402. package/pack/.claude/skills/devrites-api-interface/SKILL.md +22 -5
  403. package/pack/.claude/skills/devrites-audit/SKILL.md +1 -1
  404. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +26 -53
  405. package/pack/.claude/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  406. package/pack/.claude/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  407. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -6
  408. package/pack/.claude/skills/devrites-debug-recovery/reference/build-the-loop.md +11 -0
  409. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +2 -3
  410. package/pack/.claude/skills/devrites-debug-recovery/reference/trace.md +25 -0
  411. package/pack/.claude/skills/devrites-doubt/SKILL.md +10 -3
  412. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +16 -13
  413. package/pack/.claude/skills/devrites-frontend-craft/reference/craft.md +15 -3
  414. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +19 -0
  415. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  416. package/pack/.claude/skills/devrites-interview/SKILL.md +30 -7
  417. package/pack/.claude/skills/devrites-lib/SKILL.md +35 -36
  418. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +16 -0
  419. package/pack/.claude/skills/devrites-lib/reference/model-tiers.md +43 -0
  420. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +104 -20
  421. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +111 -0
  422. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/README.md +14 -6
  423. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/afk-hitl.md +10 -18
  424. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/agents.md +81 -16
  425. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/anti-patterns.md +3 -4
  426. package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +9 -0
  427. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
  428. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +141 -0
  429. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/context-hygiene.md +17 -0
  430. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/core.md +9 -18
  431. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +16 -0
  432. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/deprecation.md +21 -0
  433. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/developer-experience.md +3 -3
  434. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +51 -0
  435. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/documentation.md +9 -1
  436. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +19 -0
  437. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +80 -0
  438. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +65 -0
  439. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/observability.md +13 -0
  440. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/performance.md +1 -1
  441. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/principles.md +3 -3
  442. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/prose-style.md +18 -2
  443. package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +9 -0
  444. package/pack/.claude/skills/devrites-lib/reference/standards/review-checklist.md +10 -0
  445. package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +9 -0
  446. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/security.md +45 -4
  447. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +105 -0
  448. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +185 -0
  449. package/pack/.claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +9 -0
  450. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +162 -0
  451. package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/tooling.md +29 -2
  452. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +110 -0
  453. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +40 -76
  454. package/pack/.claude/skills/devrites-prose-craft/reference/examples.md +19 -5
  455. package/pack/.claude/skills/devrites-refresh-indexes/SKILL.md +3 -6
  456. package/pack/.claude/skills/devrites-source-driven/SKILL.md +17 -1
  457. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +20 -7
  458. package/pack/.claude/skills/devrites-ux-shape/reference/brief-template.md +25 -10
  459. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +2 -2
  460. package/pack/.claude/skills/rite/SKILL.md +67 -42
  461. package/pack/.claude/skills/rite/reference/menu.md +4 -1
  462. package/pack/.claude/skills/rite-adopt/SKILL.md +31 -22
  463. package/pack/.claude/skills/rite-adopt/reference/adoption.md +6 -9
  464. package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +1 -1
  465. package/pack/.claude/skills/rite-autocomplete/SKILL.md +25 -25
  466. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +2 -2
  467. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +1 -1
  468. package/pack/.claude/skills/rite-build/SKILL.md +24 -256
  469. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +3 -3
  470. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +1 -1
  471. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  472. package/pack/.claude/skills/rite-build/reference/checkpoint.md +44 -0
  473. package/pack/.claude/skills/rite-build/reference/evidence-standard.md +10 -7
  474. package/pack/.claude/skills/rite-build/reference/forge.md +17 -7
  475. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +2 -0
  476. package/pack/.claude/skills/rite-build/reference/output.md +41 -0
  477. package/pack/.claude/skills/rite-build/reference/phase-contract.md +258 -0
  478. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +11 -10
  479. package/pack/.claude/skills/rite-converge/SKILL.md +131 -0
  480. package/pack/.claude/skills/rite-converge/reference/anti-patterns.md +35 -0
  481. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +61 -0
  482. package/pack/.claude/skills/rite-customize/SKILL.md +67 -0
  483. package/pack/.claude/skills/rite-define/SKILL.md +82 -93
  484. package/pack/.claude/skills/rite-define/reference/anti-patterns.md +2 -1
  485. package/pack/.claude/skills/rite-define/reference/gates.md +3 -3
  486. package/pack/.claude/skills/rite-define/reference/plan-template.md +35 -6
  487. package/pack/.claude/skills/rite-doctor/SKILL.md +41 -16
  488. package/pack/.claude/skills/rite-dogfood/SKILL.md +49 -0
  489. package/pack/.claude/skills/rite-explain/SKILL.md +148 -0
  490. package/pack/.claude/skills/rite-explain/reference/intake.md +79 -0
  491. package/pack/.claude/skills/rite-frame/SKILL.md +14 -15
  492. package/pack/.claude/skills/rite-frame/reference/failure-modes.md +1 -1
  493. package/pack/.claude/skills/rite-handoff/SKILL.md +19 -17
  494. package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +16 -6
  495. package/pack/.claude/skills/rite-learn/SKILL.md +46 -24
  496. package/pack/.claude/skills/rite-plan/SKILL.md +35 -26
  497. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +1 -1
  498. package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +3 -3
  499. package/pack/.claude/skills/rite-plan/reference/slicing.md +20 -7
  500. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +15 -16
  501. package/pack/.claude/skills/rite-polish/SKILL.md +18 -23
  502. package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +31 -2
  503. package/pack/.claude/skills/rite-polish/reference/anti-patterns.md +4 -1
  504. package/pack/.claude/skills/rite-polish/reference/code.md +16 -5
  505. package/pack/.claude/skills/rite-polish/reference/design-system-discovery.md +5 -32
  506. package/pack/.claude/skills/rite-pov/SKILL.md +46 -0
  507. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +49 -0
  508. package/pack/.claude/skills/rite-pressure-test/SKILL.md +40 -10
  509. package/pack/.claude/skills/rite-prototype/SKILL.md +23 -2
  510. package/pack/.claude/skills/rite-prove/SKILL.md +41 -96
  511. package/pack/.claude/skills/rite-prove/reference/acceptance-proof.md +48 -0
  512. package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +1 -1
  513. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +36 -13
  514. package/pack/.claude/skills/rite-quick/SKILL.md +19 -12
  515. package/pack/.claude/skills/rite-resolve/SKILL.md +21 -25
  516. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -2
  517. package/pack/.claude/skills/rite-review/SKILL.md +43 -45
  518. package/pack/.claude/skills/rite-review/reference/anti-patterns.md +1 -1
  519. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +1 -1
  520. package/pack/.claude/skills/rite-review/reference/performance-review.md +4 -22
  521. package/pack/.claude/skills/rite-review/reference/security-review.md +2 -2
  522. package/pack/.claude/skills/rite-seal/SKILL.md +40 -174
  523. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +1 -1
  524. package/pack/.claude/skills/rite-seal/reference/conventions-ledger.md +6 -9
  525. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +6 -14
  526. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +3 -3
  527. package/pack/.claude/skills/rite-seal/reference/output.md +7 -0
  528. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +211 -0
  529. package/pack/.claude/skills/rite-seal/reference/seal-template.md +1 -1
  530. package/pack/.claude/skills/rite-ship/SKILL.md +45 -75
  531. package/pack/.claude/skills/rite-ship/reference/adr-promotion.md +9 -0
  532. package/pack/.claude/skills/rite-ship/reference/anti-patterns.md +1 -1
  533. package/pack/.claude/skills/rite-ship/reference/close-out.md +12 -1
  534. package/pack/.claude/skills/rite-ship/reference/design-memory.md +2 -2
  535. package/pack/.claude/skills/rite-ship/reference/git-ship.md +32 -1
  536. package/pack/.claude/skills/rite-ship/reference/ledger.md +56 -0
  537. package/pack/.claude/skills/rite-ship/reference/rollout.md +43 -0
  538. package/pack/.claude/skills/rite-spec/SKILL.md +110 -60
  539. package/pack/.claude/skills/rite-spec/reference/ai-spec-template.md +33 -0
  540. package/pack/.claude/skills/rite-spec/reference/anti-patterns.md +4 -1
  541. package/pack/.claude/skills/rite-spec/reference/investigation.md +34 -14
  542. package/pack/.claude/skills/rite-spec/reference/question-protocol.md +7 -37
  543. package/pack/.claude/skills/rite-spec/reference/references-intake.md +23 -18
  544. package/pack/.claude/skills/rite-spec/reference/spec-template.md +94 -118
  545. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +128 -139
  546. package/pack/.claude/skills/rite-status/SKILL.md +26 -22
  547. package/pack/.claude/skills/rite-temper/SKILL.md +34 -27
  548. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +1 -1
  549. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +1 -1
  550. package/pack/.claude/skills/rite-temper/reference/significance.md +1 -1
  551. package/pack/.claude/skills/rite-vet/SKILL.md +64 -71
  552. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +1 -1
  553. package/pack/.claude/skills/rite-vet/reference/cross-model.md +7 -5
  554. package/pack/.claude/skills/rite-vet/reference/depth.md +1 -1
  555. package/pack/.claude/skills/rite-vet/reference/review-axes.md +3 -3
  556. package/pack/.claude/skills/rite-zoom-out/SKILL.md +16 -17
  557. package/pack/generated/README.md +10 -0
  558. package/pack/generated/claude/agents/devrites-code-reviewer.md +103 -0
  559. package/pack/generated/claude/agents/devrites-devex-reviewer.md +104 -0
  560. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +68 -0
  561. package/pack/generated/claude/agents/devrites-forge-judge.md +102 -0
  562. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +84 -0
  563. package/pack/generated/claude/agents/devrites-performance-reviewer.md +111 -0
  564. package/pack/generated/claude/agents/devrites-plan-reviewer.md +89 -0
  565. package/pack/generated/claude/agents/devrites-retrospector.md +96 -0
  566. package/pack/generated/claude/agents/devrites-security-auditor.md +85 -0
  567. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +90 -0
  568. package/pack/generated/claude/agents/devrites-slice-wright.md +210 -0
  569. package/pack/generated/claude/agents/devrites-spec-reviewer.md +87 -0
  570. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +72 -0
  571. package/pack/generated/claude/agents/devrites-test-analyst.md +64 -0
  572. package/pack/generated/claude/settings.json +103 -0
  573. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +61 -0
  574. package/pack/generated/claude/skills/devrites-audit/SKILL.md +73 -0
  575. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +76 -0
  576. package/pack/generated/claude/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  577. package/pack/generated/claude/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  578. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +65 -0
  579. package/pack/generated/claude/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  580. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +17 -0
  581. package/pack/generated/claude/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  582. package/pack/generated/claude/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  583. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  584. package/pack/generated/claude/skills/devrites-debug-recovery/reference/trace.md +25 -0
  585. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +82 -0
  586. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +99 -0
  587. package/pack/generated/claude/skills/devrites-frontend-craft/reference/craft.md +71 -0
  588. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  589. package/pack/generated/claude/skills/devrites-frontend-craft/reference/fullstack.md +45 -0
  590. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +234 -0
  591. package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +59 -0
  592. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +60 -0
  593. package/pack/generated/claude/skills/devrites-interview/SKILL.md +104 -0
  594. package/pack/generated/claude/skills/devrites-lib/SKILL.md +82 -0
  595. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +16 -0
  596. package/pack/generated/claude/skills/devrites-lib/reference/model-tiers.md +43 -0
  597. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +165 -0
  598. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +111 -0
  599. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +61 -0
  600. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +243 -0
  601. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +192 -0
  602. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +58 -0
  603. package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +9 -0
  604. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
  605. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +141 -0
  606. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +55 -0
  607. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +114 -0
  608. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +119 -0
  609. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +16 -0
  610. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +71 -0
  611. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
  612. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +51 -0
  613. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +35 -0
  614. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +19 -0
  615. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +80 -0
  616. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +33 -0
  617. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +65 -0
  618. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +38 -0
  619. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +73 -0
  620. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +48 -0
  621. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +36 -0
  622. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +158 -0
  623. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +117 -0
  624. package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +9 -0
  625. package/pack/generated/claude/skills/devrites-lib/reference/standards/review-checklist.md +10 -0
  626. package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +9 -0
  627. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +135 -0
  628. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +105 -0
  629. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +185 -0
  630. package/pack/generated/claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +9 -0
  631. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +162 -0
  632. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +99 -0
  633. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +110 -0
  634. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +69 -0
  635. package/pack/generated/claude/skills/devrites-prose-craft/reference/banned-phrases.md +95 -0
  636. package/pack/generated/claude/skills/devrites-prose-craft/reference/examples.md +102 -0
  637. package/pack/generated/claude/skills/devrites-prose-craft/reference/structures.md +134 -0
  638. package/pack/generated/claude/skills/devrites-refresh-indexes/SKILL.md +51 -0
  639. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +52 -0
  640. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +134 -0
  641. package/pack/generated/claude/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  642. package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  643. package/pack/generated/claude/skills/rite/SKILL.md +142 -0
  644. package/pack/generated/claude/skills/rite/reference/menu.md +42 -0
  645. package/pack/generated/claude/skills/rite-adopt/SKILL.md +104 -0
  646. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +55 -0
  647. package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +19 -0
  648. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +98 -0
  649. package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +35 -0
  650. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +54 -0
  651. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +59 -0
  652. package/pack/generated/claude/skills/rite-build/SKILL.md +84 -0
  653. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +145 -0
  654. package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +37 -0
  655. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +149 -0
  656. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +44 -0
  657. package/pack/generated/claude/skills/rite-build/reference/evidence-standard.md +35 -0
  658. package/pack/generated/claude/skills/rite-build/reference/forge.md +181 -0
  659. package/pack/generated/claude/skills/rite-build/reference/frontend-trigger.md +39 -0
  660. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +42 -0
  661. package/pack/generated/claude/skills/rite-build/reference/output.md +41 -0
  662. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +258 -0
  663. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +43 -0
  664. package/pack/generated/claude/skills/rite-build/reference/tdd.md +26 -0
  665. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +140 -0
  666. package/pack/generated/claude/skills/rite-converge/SKILL.md +131 -0
  667. package/pack/generated/claude/skills/rite-converge/reference/anti-patterns.md +35 -0
  668. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +61 -0
  669. package/pack/generated/claude/skills/rite-customize/SKILL.md +67 -0
  670. package/pack/generated/claude/skills/rite-define/SKILL.md +159 -0
  671. package/pack/generated/claude/skills/rite-define/reference/anti-patterns.md +26 -0
  672. package/pack/generated/claude/skills/rite-define/reference/gates.md +152 -0
  673. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +94 -0
  674. package/pack/generated/claude/skills/rite-doctor/SKILL.md +76 -0
  675. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +49 -0
  676. package/pack/generated/claude/skills/rite-explain/SKILL.md +148 -0
  677. package/pack/generated/claude/skills/rite-explain/reference/intake.md +79 -0
  678. package/pack/generated/claude/skills/rite-frame/SKILL.md +120 -0
  679. package/pack/generated/claude/skills/rite-frame/reference/failure-modes.md +68 -0
  680. package/pack/generated/claude/skills/rite-handoff/SKILL.md +97 -0
  681. package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +44 -0
  682. package/pack/generated/claude/skills/rite-learn/SKILL.md +117 -0
  683. package/pack/generated/claude/skills/rite-plan/SKILL.md +95 -0
  684. package/pack/generated/claude/skills/rite-plan/reference/anti-patterns.md +24 -0
  685. package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +33 -0
  686. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +42 -0
  687. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +65 -0
  688. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +33 -0
  689. package/pack/generated/claude/skills/rite-polish/SKILL.md +87 -0
  690. package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +206 -0
  691. package/pack/generated/claude/skills/rite-polish/reference/anti-patterns.md +30 -0
  692. package/pack/generated/claude/skills/rite-polish/reference/backend-polish.md +80 -0
  693. package/pack/generated/claude/skills/rite-polish/reference/browser-polish-evidence.md +31 -0
  694. package/pack/generated/claude/skills/rite-polish/reference/code.md +100 -0
  695. package/pack/generated/claude/skills/rite-polish/reference/design-system-discovery.md +8 -0
  696. package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +109 -0
  697. package/pack/generated/claude/skills/rite-polish/reference/ui.md +136 -0
  698. package/pack/generated/claude/skills/rite-pov/SKILL.md +46 -0
  699. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +49 -0
  700. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +74 -0
  701. package/pack/generated/claude/skills/rite-prototype/SKILL.md +110 -0
  702. package/pack/generated/claude/skills/rite-prove/SKILL.md +104 -0
  703. package/pack/generated/claude/skills/rite-prove/reference/acceptance-proof.md +48 -0
  704. package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +25 -0
  705. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +49 -0
  706. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +25 -0
  707. package/pack/generated/claude/skills/rite-prove/reference/proof-ladder.md +28 -0
  708. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +30 -0
  709. package/pack/generated/claude/skills/rite-quick/SKILL.md +93 -0
  710. package/pack/generated/claude/skills/rite-resolve/SKILL.md +109 -0
  711. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +115 -0
  712. package/pack/generated/claude/skills/rite-review/SKILL.md +171 -0
  713. package/pack/generated/claude/skills/rite-review/reference/anti-patterns.md +32 -0
  714. package/pack/generated/claude/skills/rite-review/reference/cognitive-load.md +92 -0
  715. package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +26 -0
  716. package/pack/generated/claude/skills/rite-review/reference/five-axis-review.md +60 -0
  717. package/pack/generated/claude/skills/rite-review/reference/nielsen-heuristics.md +130 -0
  718. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +80 -0
  719. package/pack/generated/claude/skills/rite-review/reference/performance-review.md +14 -0
  720. package/pack/generated/claude/skills/rite-review/reference/security-review.md +37 -0
  721. package/pack/generated/claude/skills/rite-seal/SKILL.md +101 -0
  722. package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +29 -0
  723. package/pack/generated/claude/skills/rite-seal/reference/conventions-ledger.md +60 -0
  724. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +64 -0
  725. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +53 -0
  726. package/pack/generated/claude/skills/rite-seal/reference/output.md +7 -0
  727. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +211 -0
  728. package/pack/generated/claude/skills/rite-seal/reference/risk-and-rollback.md +30 -0
  729. package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +36 -0
  730. package/pack/generated/claude/skills/rite-ship/SKILL.md +111 -0
  731. package/pack/generated/claude/skills/rite-ship/reference/adr-promotion.md +9 -0
  732. package/pack/generated/claude/skills/rite-ship/reference/anti-patterns.md +25 -0
  733. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +42 -0
  734. package/pack/generated/claude/skills/rite-ship/reference/design-memory.md +120 -0
  735. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +73 -0
  736. package/pack/generated/claude/skills/rite-ship/reference/ledger.md +56 -0
  737. package/pack/generated/claude/skills/rite-ship/reference/rollout.md +43 -0
  738. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +33 -0
  739. package/pack/generated/claude/skills/rite-spec/SKILL.md +219 -0
  740. package/pack/generated/claude/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  741. package/pack/generated/claude/skills/rite-spec/reference/ai-spec-template.md +33 -0
  742. package/pack/generated/claude/skills/rite-spec/reference/anti-patterns.md +28 -0
  743. package/pack/generated/claude/skills/rite-spec/reference/interview-patterns.md +56 -0
  744. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +84 -0
  745. package/pack/generated/claude/skills/rite-spec/reference/question-protocol.md +31 -0
  746. package/pack/generated/claude/skills/rite-spec/reference/references-intake.md +62 -0
  747. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +73 -0
  748. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +110 -0
  749. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +156 -0
  750. package/pack/generated/claude/skills/rite-status/SKILL.md +107 -0
  751. package/pack/generated/claude/skills/rite-temper/SKILL.md +126 -0
  752. package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +29 -0
  753. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +65 -0
  754. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +53 -0
  755. package/pack/generated/claude/skills/rite-temper/reference/significance.md +46 -0
  756. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +90 -0
  757. package/pack/generated/claude/skills/rite-vet/SKILL.md +180 -0
  758. package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +29 -0
  759. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +135 -0
  760. package/pack/generated/claude/skills/rite-vet/reference/cross-model.md +43 -0
  761. package/pack/generated/claude/skills/rite-vet/reference/depth.md +53 -0
  762. package/pack/generated/claude/skills/rite-vet/reference/eng-lenses.md +48 -0
  763. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +167 -0
  764. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +75 -0
  765. package/pack/generated/codex/AGENTS.md +23 -0
  766. package/pack/generated/codex/agents/devrites-code-reviewer.toml +101 -0
  767. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +102 -0
  768. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +66 -0
  769. package/pack/generated/codex/agents/devrites-forge-judge.toml +100 -0
  770. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +80 -0
  771. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +109 -0
  772. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +93 -0
  773. package/pack/generated/codex/agents/devrites-retrospector.toml +94 -0
  774. package/pack/generated/codex/agents/devrites-security-auditor.toml +83 -0
  775. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +88 -0
  776. package/pack/generated/codex/agents/devrites-slice-wright.toml +207 -0
  777. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +85 -0
  778. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +76 -0
  779. package/pack/generated/codex/agents/devrites-test-analyst.toml +62 -0
  780. package/pack/generated/codex/hooks.json +151 -0
  781. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +73 -0
  782. package/pack/generated/codex/skills/devrites-api-interface/agents/openai.yaml +2 -0
  783. package/pack/generated/codex/skills/devrites-audit/SKILL.md +85 -0
  784. package/pack/generated/codex/skills/devrites-audit/agents/openai.yaml +2 -0
  785. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +88 -0
  786. package/pack/generated/codex/skills/devrites-browser-proof/agents/openai.yaml +2 -0
  787. package/pack/generated/codex/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  788. package/pack/generated/codex/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  789. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +77 -0
  790. package/pack/generated/codex/skills/devrites-debug-recovery/agents/openai.yaml +2 -0
  791. package/pack/generated/codex/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  792. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +17 -0
  793. package/pack/generated/codex/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  794. package/pack/generated/codex/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  795. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  796. package/pack/generated/codex/skills/devrites-debug-recovery/reference/trace.md +25 -0
  797. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +94 -0
  798. package/pack/generated/codex/skills/devrites-doubt/agents/openai.yaml +2 -0
  799. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +111 -0
  800. package/pack/generated/codex/skills/devrites-frontend-craft/agents/openai.yaml +2 -0
  801. package/pack/generated/codex/skills/devrites-frontend-craft/reference/craft.md +71 -0
  802. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  803. package/pack/generated/codex/skills/devrites-frontend-craft/reference/fullstack.md +45 -0
  804. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +234 -0
  805. package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +59 -0
  806. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +60 -0
  807. package/pack/generated/codex/skills/devrites-interview/SKILL.md +116 -0
  808. package/pack/generated/codex/skills/devrites-interview/agents/openai.yaml +2 -0
  809. package/pack/generated/codex/skills/devrites-lib/SKILL.md +94 -0
  810. package/pack/generated/codex/skills/devrites-lib/agents/openai.yaml +2 -0
  811. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +16 -0
  812. package/pack/generated/codex/skills/devrites-lib/reference/model-tiers.md +43 -0
  813. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +165 -0
  814. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +111 -0
  815. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +61 -0
  816. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +243 -0
  817. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +192 -0
  818. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +58 -0
  819. package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +9 -0
  820. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +62 -0
  821. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +141 -0
  822. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +55 -0
  823. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +114 -0
  824. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +119 -0
  825. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +16 -0
  826. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +71 -0
  827. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
  828. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +51 -0
  829. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +35 -0
  830. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +19 -0
  831. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +80 -0
  832. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +33 -0
  833. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +65 -0
  834. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +38 -0
  835. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +73 -0
  836. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +48 -0
  837. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +36 -0
  838. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +158 -0
  839. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +117 -0
  840. package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +9 -0
  841. package/pack/generated/codex/skills/devrites-lib/reference/standards/review-checklist.md +10 -0
  842. package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +9 -0
  843. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +135 -0
  844. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +105 -0
  845. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +185 -0
  846. package/pack/generated/codex/skills/devrites-lib/reference/standards/test-proof-checklist.md +9 -0
  847. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +162 -0
  848. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +99 -0
  849. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +110 -0
  850. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +81 -0
  851. package/pack/generated/codex/skills/devrites-prose-craft/agents/openai.yaml +2 -0
  852. package/pack/generated/codex/skills/devrites-prose-craft/reference/banned-phrases.md +95 -0
  853. package/pack/generated/codex/skills/devrites-prose-craft/reference/examples.md +102 -0
  854. package/pack/generated/codex/skills/devrites-prose-craft/reference/structures.md +134 -0
  855. package/pack/generated/codex/skills/devrites-refresh-indexes/SKILL.md +63 -0
  856. package/pack/generated/codex/skills/devrites-refresh-indexes/agents/openai.yaml +2 -0
  857. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +64 -0
  858. package/pack/generated/codex/skills/devrites-source-driven/agents/openai.yaml +2 -0
  859. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +146 -0
  860. package/pack/generated/codex/skills/devrites-ux-shape/agents/openai.yaml +2 -0
  861. package/pack/generated/codex/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  862. package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  863. package/pack/generated/codex/skills/rite/SKILL.md +154 -0
  864. package/pack/generated/codex/skills/rite/agents/openai.yaml +2 -0
  865. package/pack/generated/codex/skills/rite/reference/menu.md +42 -0
  866. package/pack/generated/codex/skills/rite-adopt/SKILL.md +116 -0
  867. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +55 -0
  868. package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +19 -0
  869. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +110 -0
  870. package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +35 -0
  871. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +54 -0
  872. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +59 -0
  873. package/pack/generated/codex/skills/rite-build/SKILL.md +96 -0
  874. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +145 -0
  875. package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +37 -0
  876. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +149 -0
  877. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +44 -0
  878. package/pack/generated/codex/skills/rite-build/reference/evidence-standard.md +35 -0
  879. package/pack/generated/codex/skills/rite-build/reference/forge.md +181 -0
  880. package/pack/generated/codex/skills/rite-build/reference/frontend-trigger.md +39 -0
  881. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +42 -0
  882. package/pack/generated/codex/skills/rite-build/reference/output.md +41 -0
  883. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +258 -0
  884. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +43 -0
  885. package/pack/generated/codex/skills/rite-build/reference/tdd.md +26 -0
  886. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +140 -0
  887. package/pack/generated/codex/skills/rite-converge/SKILL.md +143 -0
  888. package/pack/generated/codex/skills/rite-converge/reference/anti-patterns.md +35 -0
  889. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +61 -0
  890. package/pack/generated/codex/skills/rite-customize/SKILL.md +79 -0
  891. package/pack/generated/codex/skills/rite-customize/agents/openai.yaml +2 -0
  892. package/pack/generated/codex/skills/rite-define/SKILL.md +171 -0
  893. package/pack/generated/codex/skills/rite-define/reference/anti-patterns.md +26 -0
  894. package/pack/generated/codex/skills/rite-define/reference/gates.md +152 -0
  895. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +94 -0
  896. package/pack/generated/codex/skills/rite-doctor/SKILL.md +88 -0
  897. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +61 -0
  898. package/pack/generated/codex/skills/rite-dogfood/agents/openai.yaml +2 -0
  899. package/pack/generated/codex/skills/rite-explain/SKILL.md +160 -0
  900. package/pack/generated/codex/skills/rite-explain/agents/openai.yaml +2 -0
  901. package/pack/generated/codex/skills/rite-explain/reference/intake.md +79 -0
  902. package/pack/generated/codex/skills/rite-frame/SKILL.md +132 -0
  903. package/pack/generated/codex/skills/rite-frame/reference/failure-modes.md +68 -0
  904. package/pack/generated/codex/skills/rite-handoff/SKILL.md +109 -0
  905. package/pack/generated/codex/skills/rite-handoff/agents/openai.yaml +2 -0
  906. package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +44 -0
  907. package/pack/generated/codex/skills/rite-learn/SKILL.md +129 -0
  908. package/pack/generated/codex/skills/rite-learn/agents/openai.yaml +2 -0
  909. package/pack/generated/codex/skills/rite-plan/SKILL.md +107 -0
  910. package/pack/generated/codex/skills/rite-plan/reference/anti-patterns.md +24 -0
  911. package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +33 -0
  912. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +42 -0
  913. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +65 -0
  914. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +33 -0
  915. package/pack/generated/codex/skills/rite-polish/SKILL.md +99 -0
  916. package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +206 -0
  917. package/pack/generated/codex/skills/rite-polish/reference/anti-patterns.md +30 -0
  918. package/pack/generated/codex/skills/rite-polish/reference/backend-polish.md +80 -0
  919. package/pack/generated/codex/skills/rite-polish/reference/browser-polish-evidence.md +31 -0
  920. package/pack/generated/codex/skills/rite-polish/reference/code.md +100 -0
  921. package/pack/generated/codex/skills/rite-polish/reference/design-system-discovery.md +8 -0
  922. package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +109 -0
  923. package/pack/generated/codex/skills/rite-polish/reference/ui.md +136 -0
  924. package/pack/generated/codex/skills/rite-pov/SKILL.md +58 -0
  925. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +61 -0
  926. package/pack/generated/codex/skills/rite-pr-feedback/agents/openai.yaml +2 -0
  927. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +86 -0
  928. package/pack/generated/codex/skills/rite-prototype/SKILL.md +122 -0
  929. package/pack/generated/codex/skills/rite-prototype/agents/openai.yaml +2 -0
  930. package/pack/generated/codex/skills/rite-prove/SKILL.md +116 -0
  931. package/pack/generated/codex/skills/rite-prove/reference/acceptance-proof.md +48 -0
  932. package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +25 -0
  933. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +49 -0
  934. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +25 -0
  935. package/pack/generated/codex/skills/rite-prove/reference/proof-ladder.md +28 -0
  936. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +30 -0
  937. package/pack/generated/codex/skills/rite-quick/SKILL.md +105 -0
  938. package/pack/generated/codex/skills/rite-resolve/SKILL.md +121 -0
  939. package/pack/generated/codex/skills/rite-resolve/agents/openai.yaml +2 -0
  940. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +115 -0
  941. package/pack/generated/codex/skills/rite-review/SKILL.md +183 -0
  942. package/pack/generated/codex/skills/rite-review/reference/anti-patterns.md +32 -0
  943. package/pack/generated/codex/skills/rite-review/reference/cognitive-load.md +92 -0
  944. package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +26 -0
  945. package/pack/generated/codex/skills/rite-review/reference/five-axis-review.md +60 -0
  946. package/pack/generated/codex/skills/rite-review/reference/nielsen-heuristics.md +130 -0
  947. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +80 -0
  948. package/pack/generated/codex/skills/rite-review/reference/performance-review.md +14 -0
  949. package/pack/generated/codex/skills/rite-review/reference/security-review.md +37 -0
  950. package/pack/generated/codex/skills/rite-seal/SKILL.md +113 -0
  951. package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +29 -0
  952. package/pack/generated/codex/skills/rite-seal/reference/conventions-ledger.md +60 -0
  953. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +64 -0
  954. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +53 -0
  955. package/pack/generated/codex/skills/rite-seal/reference/output.md +7 -0
  956. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +211 -0
  957. package/pack/generated/codex/skills/rite-seal/reference/risk-and-rollback.md +30 -0
  958. package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +36 -0
  959. package/pack/generated/codex/skills/rite-ship/SKILL.md +123 -0
  960. package/pack/generated/codex/skills/rite-ship/reference/adr-promotion.md +9 -0
  961. package/pack/generated/codex/skills/rite-ship/reference/anti-patterns.md +25 -0
  962. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +42 -0
  963. package/pack/generated/codex/skills/rite-ship/reference/design-memory.md +120 -0
  964. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +73 -0
  965. package/pack/generated/codex/skills/rite-ship/reference/ledger.md +56 -0
  966. package/pack/generated/codex/skills/rite-ship/reference/rollout.md +43 -0
  967. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +33 -0
  968. package/pack/generated/codex/skills/rite-spec/SKILL.md +231 -0
  969. package/pack/generated/codex/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  970. package/pack/generated/codex/skills/rite-spec/reference/ai-spec-template.md +33 -0
  971. package/pack/generated/codex/skills/rite-spec/reference/anti-patterns.md +28 -0
  972. package/pack/generated/codex/skills/rite-spec/reference/interview-patterns.md +56 -0
  973. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +84 -0
  974. package/pack/generated/codex/skills/rite-spec/reference/question-protocol.md +31 -0
  975. package/pack/generated/codex/skills/rite-spec/reference/references-intake.md +62 -0
  976. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +73 -0
  977. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +110 -0
  978. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +156 -0
  979. package/pack/generated/codex/skills/rite-status/SKILL.md +119 -0
  980. package/pack/generated/codex/skills/rite-status/agents/openai.yaml +2 -0
  981. package/pack/generated/codex/skills/rite-temper/SKILL.md +138 -0
  982. package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +29 -0
  983. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +65 -0
  984. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +53 -0
  985. package/pack/generated/codex/skills/rite-temper/reference/significance.md +46 -0
  986. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +90 -0
  987. package/pack/generated/codex/skills/rite-vet/SKILL.md +192 -0
  988. package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +29 -0
  989. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +135 -0
  990. package/pack/generated/codex/skills/rite-vet/reference/cross-model.md +43 -0
  991. package/pack/generated/codex/skills/rite-vet/reference/depth.md +53 -0
  992. package/pack/generated/codex/skills/rite-vet/reference/eng-lenses.md +48 -0
  993. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +167 -0
  994. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +87 -0
  995. package/pack/generated/codex/skills/rite-zoom-out/agents/openai.yaml +2 -0
  996. package/package.json +8 -4
  997. package/scripts/build-binaries.sh +75 -0
  998. package/scripts/build-host-artifacts.sh +100 -0
  999. package/scripts/build-release-tarball.sh +16 -2
  1000. package/scripts/check-cross-refs.py +17 -3
  1001. package/scripts/check-generated-skill-budget.mjs +41 -0
  1002. package/scripts/check-instruction-size-baseline.mjs +79 -0
  1003. package/scripts/check-invocation-integrity.py +113 -0
  1004. package/scripts/check-no-global-writes.sh +22 -0
  1005. package/scripts/check-no-personal-paths.py +50 -0
  1006. package/scripts/check-reference-governance.mjs +82 -0
  1007. package/scripts/check-reply-contract.sh +64 -0
  1008. package/scripts/check-rule-uniqueness.sh +4 -32
  1009. package/scripts/codex-generate.sh +300 -0
  1010. package/scripts/devrites-detect.sh +2 -1
  1011. package/scripts/eval-runner.py +4 -2
  1012. package/scripts/eval-scorer.mjs +46 -0
  1013. package/scripts/grade-feature.sh +24 -7
  1014. package/scripts/install-lib.sh +112 -19
  1015. package/scripts/pin.sh +4 -4
  1016. package/scripts/release-check.sh +71 -0
  1017. package/scripts/run-behavioral-evals.sh +34 -2
  1018. package/scripts/run-evals.sh +45 -30
  1019. package/scripts/run-live-behavioral-evals.py +180 -0
  1020. package/scripts/run-outcome-evals.sh +27 -0
  1021. package/scripts/run-routing-evals.py +342 -0
  1022. package/scripts/run-tests.mjs +203 -0
  1023. package/scripts/skill-pruning-audit.mjs +120 -0
  1024. package/scripts/skills-inventory.mjs +107 -0
  1025. package/scripts/validate-agent-composition.py +57 -0
  1026. package/scripts/validate-command-parity.py +70 -0
  1027. package/scripts/validate-frontmatter.py +43 -7
  1028. package/scripts/validate-skill-anatomy.py +139 -0
  1029. package/scripts/validate-workflow-security.py +22 -3
  1030. package/scripts/validate-workspace-schema.py +512 -0
  1031. package/scripts/validate.sh +174 -34
  1032. package/uninstall.sh +22 -183
  1033. package/update.sh +29 -185
  1034. package/docs/cli-mcp.md +0 -62
  1035. package/mcp/devrites-mcp.mjs +0 -105
  1036. package/pack/.claude/hooks/devrites-a1-guard.sh +0 -99
  1037. package/pack/.claude/hooks/devrites-allow.sh +0 -44
  1038. package/pack/.claude/hooks/devrites-cursor.sh +0 -28
  1039. package/pack/.claude/hooks/devrites-orient.sh +0 -53
  1040. package/pack/.claude/hooks/devrites-redwatch.sh +0 -39
  1041. package/pack/.claude/hooks/devrites-refresh-indexes.sh +0 -127
  1042. package/pack/.claude/hooks/devrites-reviewer-readonly.sh +0 -37
  1043. package/pack/.claude/hooks/devrites-statusline.sh +0 -18
  1044. package/pack/.claude/hooks/devrites-stop-gate.sh +0 -45
  1045. package/pack/.claude/hooks/devrites-wright-scope.sh +0 -64
  1046. package/pack/.claude/hooks/hooks.json +0 -52
  1047. package/pack/.claude/rules/code-review.md +0 -48
  1048. package/pack/.claude/rules/development-workflow.md +0 -40
  1049. package/pack/.claude/rules/git-workflow.md +0 -35
  1050. package/pack/.claude/rules/spec-grammar.md +0 -106
  1051. package/pack/.claude/rules/testing.md +0 -88
  1052. package/pack/.claude/skills/devrites-lib/scripts/analyze.sh +0 -78
  1053. package/pack/.claude/skills/devrites-lib/scripts/check-acceptance.sh +0 -75
  1054. package/pack/.claude/skills/devrites-lib/scripts/close-out.sh +0 -47
  1055. package/pack/.claude/skills/devrites-lib/scripts/conventions.py +0 -273
  1056. package/pack/.claude/skills/devrites-lib/scripts/coverage.sh +0 -51
  1057. package/pack/.claude/skills/devrites-lib/scripts/devrites.sh +0 -77
  1058. package/pack/.claude/skills/devrites-lib/scripts/doctor.sh +0 -156
  1059. package/pack/.claude/skills/devrites-lib/scripts/doubt-coverage.sh +0 -59
  1060. package/pack/.claude/skills/devrites-lib/scripts/evidence-fresh.sh +0 -63
  1061. package/pack/.claude/skills/devrites-lib/scripts/footprint.sh +0 -45
  1062. package/pack/.claude/skills/devrites-lib/scripts/learnings.sh +0 -74
  1063. package/pack/.claude/skills/devrites-lib/scripts/mutation-gate.sh +0 -52
  1064. package/pack/.claude/skills/devrites-lib/scripts/package-existence.sh +0 -68
  1065. package/pack/.claude/skills/devrites-lib/scripts/preamble.sh +0 -76
  1066. package/pack/.claude/skills/devrites-lib/scripts/progress.sh +0 -103
  1067. package/pack/.claude/skills/devrites-lib/scripts/readiness.sh +0 -62
  1068. package/pack/.claude/skills/devrites-lib/scripts/reconcile.sh +0 -123
  1069. package/pack/.claude/skills/devrites-lib/scripts/resolve.sh +0 -279
  1070. package/pack/.claude/skills/devrites-lib/scripts/rites.sh +0 -41
  1071. package/pack/.claude/skills/devrites-lib/scripts/spec-validate.sh +0 -130
  1072. package/pack/.claude/skills/devrites-lib/scripts/stuck.sh +0 -67
  1073. package/pack/.claude/skills/devrites-lib/scripts/test-integrity.sh +0 -87
  1074. package/pack/.claude/skills/devrites-lib/scripts/tick-afk.sh +0 -52
  1075. package/scripts/merge-codex-hooks.mjs +0 -78
  1076. /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/coding-style.md +0 -0
  1077. /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/error-handling.md +0 -0
  1078. /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/hooks.md +0 -0
  1079. /package/pack/.claude/{rules → skills/devrites-lib/reference/standards}/patterns.md +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rite-autocomplete
3
- description: Run the entire DevRites lifecycle end-to-end, unattended — no per-phase human iteration; `--ship` auto-confirms the final gate. Use when the user says "autocomplete", "one-shot this feature", or "ship it autonomously". Not for a single phase (use the specific `/rite-*` skill) or when the user wants to drive each step.
3
+ description: Run the DevRites lifecycle end-to-end unattended; --ship confirms the final gate. Use when the user says "autocomplete", "one-shot this feature", or "ship it autonomously". Not for a single phase.
4
4
  argument-hint: "[idea] [--ship|--yolo] [--max-slices N]"
5
5
  user-invocable: true
6
6
  ---
@@ -12,8 +12,8 @@ prompt may be vague — autocomplete asks its clarifying questions **up front**,
12
12
  runs to completion. It does **not** disable the safety gates: hard irreversible-risk,<!-- pack-scan-ignore: negated statement — gates are NOT disabled -->
13
13
  blocking / escalating gates, and any NO-GO still pause.
14
14
 
15
- ## Rules consulted (read on demand from `.claude/rules/`)
16
- **Step 0:** Read `.claude/rules/core.md` and `.claude/rules/afk-hitl.md` first.
15
+ ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
16
+ **Step 0:** Read `.claude/skills/devrites-lib/reference/standards/core.md` and `.claude/skills/devrites-lib/reference/standards/afk-hitl.md` first.
17
17
 
18
18
  ## Operating rules
19
19
  - **One human window.** Clarifying questions are batched up front via
@@ -47,15 +47,7 @@ blocking / escalating gates, and any NO-GO still pause.
47
47
  pause. Cross-model is off unless `--cross-model` was armed.
48
48
 
49
49
  ## Workflow
50
- 1. **Orient + parse args.** Run the shared orientation preamble it prints `state.md`, the artifacts present,
51
- the run mode (HITL/AFK), and the open-question tally by gate, so you orient deterministically
52
- instead of re-deriving state from raw Markdown:
53
- ```bash
54
- P=.claude/skills/devrites-lib/scripts/preamble.sh
55
- [ -f "$P" ] || P="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/preamble.sh"
56
- [ -f "$P" ] || P=pack/.claude/skills/devrites-lib/scripts/preamble.sh
57
- [ -f "$P" ] && bash "$P" || echo "(orientation preamble unavailable on this install — read state.md directly to orient)"
58
- ```
50
+ 1. **Orient + parse args.** Run `devrites-engine preamble` for deterministic workspace orientation.
59
51
  The idea + flags: `--ship` / `--yolo` (auto-confirm the final
60
52
  type-GO), `--max-slices N` (OPTIONAL *lower* safety cap for a partial run; default =
61
53
  the plan's slice count, i.e. run all planned slices).
@@ -64,10 +56,13 @@ P=.claude/skills/devrites-lib/scripts/preamble.sh
64
56
  3. **Arm AFK.** Write `.devrites/AFK` with `allow_gates: [advisory]`; set the slice budget
65
57
  from the plan's count after `/rite-vet` (the slice count is only final post-vet), or from
66
58
  an explicit `--max-slices` ([reference/loop.md](reference/loop.md)). validating / blocking / escalating +
67
- irreversible-risk still pause.
59
+ irreversible-risk still pause. Also `touch .devrites/CHECKPOINT` — an unattended run is the
60
+ case checkpoint mode earns its keep, so each proven slice is committed local-only as
61
+ crash-survivable `WIP` ([rite-build/reference/checkpoint.md](../rite-build/reference/checkpoint.md));
62
+ `/rite-ship` collapses them into the one feature commit.
68
63
  4. **Drive the phases** ([reference/loop.md](reference/loop.md)): `/rite-spec` →
69
64
  **`/rite-temper`** → `/rite-define` → **`/rite-vet`** → `/rite-build` (loop until all slices
70
- built; `tick-afk.sh` each) → `/rite-prove` → `/rite-polish` → `/rite-review` → `/rite-seal`.
65
+ built; `devrites-engine tick-afk` each) → `/rite-prove` → `/rite-polish` → `/rite-review` → `/rite-seal`.
71
66
  Run each by Reading its `SKILL.md` and executing its workflow; state is carried by the
72
67
  workspace files, not chat.
73
68
  5. **Apply stop conditions at every gate** ([reference/stop-conditions.md](reference/stop-conditions.md)):
@@ -81,18 +76,23 @@ P=.claude/skills/devrites-lib/scripts/preamble.sh
81
76
  > Autonomy is for the routine path; the gates exist for everything else.
82
77
 
83
78
  ## Output
84
- A phase-by-phase progress log, then the final status. **End with the progress footer** —
85
- run `progress.sh` (resolved like the step-0 preamble canonical snippet in
86
- `devrites-lib/SKILL.md`) as the last lines so the final slice meter + flow ribbon match the
87
- rest of the lifecycle (it reads the lifecycle position the run reached, e.g. `ship ✓` or the
88
- phase it stopped at):
79
+ A compact phase-by-phase log, then the final status. **Progress first for the final
80
+ status** — run `devrites-engine progress`, then use the shared typed states from
81
+ [`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md):
82
+ `Shipped`, `Stopped`, `Awaiting human`, `NO-GO`, or `GO`.
83
+
84
+ Keep the log terse:
89
85
  ```
90
86
  Autocomplete: <slug>
91
- spec ✓ temper (mode <m> | skipped) define ✓ vet (depth <light|full>, floor <band>) build (N slices) prove polish review seal: GO
92
- → SHIPPED <sha> on <branch> (--ship)
93
- — or —
94
- → STOPPED — awaiting human at <phase>: <reason>
95
- Resume: <single command>
87
+ spec <done|stopped> · temper <done|skipped|stopped> · define <done|stopped> · vet <done|stopped> · build <n/N|stopped> · prove <done|stopped> · polish <done|stopped> · review <done|stopped> · seal <GO|NO-GO|stopped>
96
88
  ```
97
89
 
98
- End with `↻ Hygiene` per `.claude/rules/context-hygiene.md` (`/clear` between long phases).
90
+ Final state examples: `Shipped: <feature>`, `Stopped: <reason>`, `Awaiting human:
91
+ <qid> · <gate> · <slice/phase>`, `NO-GO: <verdict>`, or `GO: feature cleared to ship`.
92
+ Do not write a narrative recap.
93
+
94
+ ## Clean baseline and checkpoint mode
95
+ - Before an autonomous run, require a clean or explicitly accepted baseline: refuse unrelated dirty work and record expected planning artifacts.
96
+ - Arm `.devrites/CHECKPOINT` for the run so each proven slice can be checkpointed local-only; `/rite-ship` owns collapsing those checkpoints.
97
+ - Stop on risky steps, red gates, NO-GO, stale evidence, or budget exhaustion.
98
+ - Autocomplete gets one approved pass through the lifecycle; `/rite-build` still builds exactly one slice per invocation.
@@ -38,7 +38,7 @@ the last left off — there is nothing to thread through chat.
38
38
  | 2 | `/rite-temper` | significance-gated strategic review; harden spec + write `strategy.md`. Skip low-stakes specs in one line. AFK: `hold-rigor` / `reduce-to-MVP` auto-apply; **any `expand` pauses (blocking)**; irreversible-risk pauses |
39
39
  | 3 | `/rite-define` | reads `strategy.md`; `plan.md` + `tasks.md`; record `Plan approved` |
40
40
  | 4 | `/rite-vet` | engineering plan review on **every** plan (light pass on simple plans, full on big/risky; never skipped); harden `plan.md` / `tasks.md` + write `eng-review.md` + `test-plan.md`. AFK: hardening / coverage findings auto-apply; **any scope-growing / acceptance-changing finding pauses (blocking)**; irreversible-risk pauses. Set the slice budget after this (vet may split a slice) |
41
- | 5 | `/rite-build` ×N | **loop** while any slice is `pending`; build one (the slice-wright reads `test-plan.md` for coverage), then run `bash .claude/skills/devrites-lib/scripts/tick-afk.sh state.md` — exit 3 (budget hit) ⇒ STOP |
41
+ | 5 | `/rite-build` ×N | **loop** while any slice is `pending`; build one (the slice-wright reads `test-plan.md` for coverage), then run `devrites-engine tick-afk state.md` — exit 3 (budget hit) ⇒ STOP |
42
42
  | 6 | `/rite-prove` | once all slices `built`; walks `test-plan.md`; on failure → `devrites-debug-recovery` within scope |
43
43
  | 7 | `/rite-polish` | re-verify after code edits (evidence must stay fresh) |
44
44
  | 8 | `/rite-review` | apply in-scope fixes; re-prove if code changed |
@@ -50,5 +50,5 @@ the last left off — there is nothing to thread through chat.
50
50
  - Re-read the active workspace before each phase (don't trust chat memory).
51
51
  - After a phase that edits code (build, polish, review), evidence may be stale — let
52
52
  the next gate re-prove rather than carrying a stale pass (see
53
- `.claude/rules/development-workflow.md`).
53
+ `.claude/skills/devrites-lib/reference/standards/development-workflow.md`).
54
54
  - Check [stop-conditions.md](stop-conditions.md) at every gate **before** advancing.
@@ -35,7 +35,7 @@ Regardless of `allow_gates` or `--ship`:
35
35
  direction. Do not round NO-GO up to GO.
36
36
  - **Spec Drift Guard fires** (`/rite-build` finds the plan is wrong and the change
37
37
  alters product behaviour) → stop; route through `/rite-plan repair`.
38
- - **Budget exhausted with slices still pending** — `tick-afk.sh` exit 3 while `tasks.md`
38
+ - **Budget exhausted with slices still pending** — `devrites-engine tick-afk` exit 3 while `tasks.md`
39
39
  still has unbuilt slices (only when an explicit `--max-slices` capped the run below the
40
40
  plan's count) → stop; report slices remaining. Exhausting the default budget = all
41
41
  planned slices built = normal completion → continue to `/rite-prove`, don't pause.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rite-build
3
- description: Implement exactly ONE vertical slice of the active feature, then stop with evidence. Use when the user says "build the next slice", "implement slice N", "continue the build", "code this slice". Not for bug fixes, prototypes, refactors outside scope, or two slices in a row.
3
+ description: Build one approved vertical slice, then stop with evidence. Use when the next planned slice should be implemented. Not for multiple slices.
4
4
  argument-hint: "[slice number or name]"
5
5
  user-invocable: true
6
6
  ---
@@ -16,8 +16,8 @@ pre-flight (readiness, slice select, HITL pause), dispatch the wright for the bu
16
16
  run the post-return gates (doubt, fail-on-red, record, stop). See
17
17
  [`reference/wright-dispatch.md`](reference/wright-dispatch.md).
18
18
 
19
- ## Rules consulted (read on demand from `.claude/rules/`)
20
- DevRites skills Read `.claude/rules/core.md` as their first step (workflow step 0). The
19
+ ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
20
+ Read `.claude/skills/devrites-lib/reference/standards/core.md` first (workflow step 0). The
21
21
  following load on demand — **the wright reads them** (they are named in its contract) while it
22
22
  writes; read them yourself for the doubt/record gates or in the inline fallback:
23
23
  - `coding-style.md` — naming, function shape, guard clauses, comments, reuse-first.
@@ -26,11 +26,20 @@ writes; read them yourself for the doubt/record gates or in the inline fallback:
26
26
  - `patterns.md` — composition over inheritance, avoid premature abstraction.
27
27
  - `principles.md` — the project invariants (`.devrites/principles.md`) the slice must honor; the wright reads them as **binding**, not priors.
28
28
  - `security.md` — when the slice touches user input, auth, data, or external integrations.
29
+ - `definition-of-done.md` — standing Done bar: acceptance mapped, fresh proof, no open hard gates, scoped edits, rollback/docs where needed.
30
+
29
31
 
30
32
  ## Operating rules
31
33
  - **One slice at a time. DO NOT** start the next slice without the user asking.
32
34
  - Evidence over confidence. Prefer existing conventions. Feature scope only — no
33
35
  drive-by refactors.
36
+ - **Noticed, not touched.** An adjacent smell the wright sees outside `touched-files.md` is
37
+ recorded as an FYI follow-up in `decisions.md`, never fixed inline — the slice's change summary
38
+ states what it *deliberately left alone* ([`git-workflow.md`](../devrites-lib/reference/standards/git-workflow.md) "Things
39
+ I didn't touch"), so the reviewer reads a feature-scoped diff, not a renovation. The `devrites-engine reconcile`
40
+ gate (step 6) enforces this by exit code.
41
+ - **Don't re-run an unchanged check.** Re-running the same build/test command on code that hasn't
42
+ changed since proves nothing new — it's motion, not evidence. Re-verify after an edit, not before.
34
43
  - Surface material assumptions; ask before adding dependencies or a second design
35
44
  system. The [Spec Drift Guard](reference/spec-drift-guard.md) is active throughout.
36
45
  - **Avoid AI slop while writing.** `devrites-slice-wright` enforces the anti-slop charter **at
@@ -39,7 +48,7 @@ writes; read them yourself for the doubt/record gates or in the inline fallback:
39
48
  idiom, reusing before building; **you verify the charter held on return** — you do not re-list
40
49
  it and you do not fix slop by editing source. Polish catches what slips; build prevents.
41
50
  The **prose you write yourself** — `evidence.md`, `decisions.md`, the slice report — follows
42
- the human-voice charter (`.claude/rules/prose-style.md`; depth in `devrites-prose-craft`): no
51
+ the human-voice charter (`.claude/skills/devrites-lib/reference/standards/prose-style.md`; depth in `devrites-prose-craft`): no
43
52
  filler openers, no marketing adjectives, exact commands and identifiers kept verbatim.
44
53
  - **Honor declared project principles.** The wright reads `.devrites/principles.md` and treats
45
54
  each invariant as **binding** (not a prior to weigh like a convention) — a slice it cannot build
@@ -50,7 +59,7 @@ writes; read them yourself for the doubt/record gates or in the inline fallback:
50
59
  - **You never edit source — the wright is the only writer of code + tests.** You write only
51
60
  `.devrites/` bookkeeping. On any red gate, doubt finding, or coverage gap your only remedies
52
61
  are **continue the same wright once** (it fixes in its own context) or **stop + escalate** —
53
- never patch the code yourself. The `reconcile.sh` gate (step 6) enforces this by exit code:
62
+ never patch the code yourself. The `devrites-engine reconcile` gate (step 6) enforces this by exit code:
54
63
  any source file changed outside the wright's claimed set is a hard STOP.
55
64
  - **A `Forge: yes` slice competes candidates — one author still lands.** When `/rite-vet`
56
65
  flagged the slice a genuine architecture fork, step 3 runs K=2–3 candidate wrights in
@@ -59,258 +68,17 @@ writes; read them yourself for the doubt/record gates or in the inline fallback:
59
68
  never edit source, and reconcile runs against the winner's claimed set. The default slice is
60
69
  single-path — forge is the rare exception ([`reference/forge.md`](reference/forge.md)).
61
70
 
62
- ## Workflow ([one-slice-cycle](reference/one-slice-cycle.md))
63
-
64
- > **Running the gate helpers.** Each gated `bash` block resolves the shared runner `rites.sh` into
65
- > `$R` (self-contained — blocks don't share shell state), then calls a named helper:
66
- > `bash "$R" <helper> [args]` runs
67
- > `devrites-lib/scripts/<helper>.sh`, **propagates its exit code** (so the `rc=$?` checks below
68
- > still hold) and degrades to a printed note if the lib is absent. One locator, many helpers —
69
- > see [`devrites-lib/scripts/rites.sh`](../devrites-lib/scripts/rites.sh).
70
-
71
- 0. **Rules + AFK + readiness check.** Read `.claude/rules/core.md` first. Then **run the
72
- shared orientation preamble** — it prints `state.md`, the artifacts present, the run
73
- mode (HITL/AFK), and the open-question tally by gate, deterministically:
74
- ```bash
75
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
76
- [ -f "$R" ] && bash "$R" preamble || echo "(orientation preamble unavailable on this install — read state.md directly to orient)"
77
- ```
78
- Then **run the readiness gate** — it enforces the step-0 stop conditions by exit code,
79
- not by memory:
80
- ```bash
81
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
82
- [ -f "$R" ] && { bash "$R" readiness; echo "readiness rc=$?"; } || echo "(readiness gate unavailable — apply the prose checks below)"
83
- ```
84
- A non-zero `rc` is a hard STOP: `2` → `/rite-define` (plan not approved), `3` →
85
- `/rite-resolve` (awaiting human), `4` → `/rite-plan` (blocked). The prose below is the
86
- same gate for installs without the script.
87
- Orient from its digest. If `Status == awaiting_human` → **STOP**, tell the user to run
88
- `/rite-resolve <qid> "<answer>"`. If `state.md` has no `Plan approved: <iso>` field
89
- → **STOP**, tell the user the plan isn't approved yet (`/rite-define` writes it when
90
- the human confirms). If `.devrites/AFK` is present, re-derive the remaining AFK budget
91
- from `state.md`'s `AFK slices remaining: <n>` field (initialized from `.devrites/AFK`
92
- `max_slices` on the first AFK build); if it is `0` → **STOP** (forced HITL stop; raise
93
- the count in `state.md` or remove the sentinel to continue). See
94
- [`reference/afk-discipline.md`](reference/afk-discipline.md).
95
- 1. Read `spec.md`, `plan.md`, `tasks.md`, `assumptions.md`, `drift.md`, and `test-plan.md`
96
- if present (the vetted coverage target from `/rite-vet` — the slice's tests come from
97
- here when it exists). `state.md` and the open-`questions.md` tally are already in the
98
- preamble digest from step 0 — re-read `questions.md` only for the full text of a flagged
99
- blocking question.
100
- If a **blocking `[NEEDS CLARIFICATION]`** remains or the spec/plan readiness gates
101
- don't pass, stop → `/rite-spec` (to resolve) or `/rite-plan` (to repair). Don't build
102
- on an unresolved spec.
103
- 2. Select the next pending slice (or the one in `$ARGUMENTS`). **Restate its goal,
104
- acceptance criteria, and scope boundary** in one short block. Confirm it's still the
105
- right next slice. Write the slice's `Mode` to `state.md` as `Slice mode: <HITL|AFK>` on
106
- **every** selection (not only on the HITL pause path); `/rite-resolve` clears or updates
107
- it on resume.
108
- 2a. **HITL gate (pre-action pause).** Read the slice's `Mode`. If `HITL`, surface the
109
- checkpoint as a ranked **option set** and resolve it **before** any code lands, per
110
- [`reference/checkpoint-protocol.md`](reference/checkpoint-protocol.md). Branch on whether
111
- a human is here:
112
- - **Human present (interactive — no `.devrites/AFK`) → ask inline via `AskUserQuestion`.**
113
- This is the default for an interactive build. Render 2–4 options, the recommended one
114
- **first and labelled `(Recommended)`**, each with its dimension-tagged rationale + the
115
- trade-off it accepts, plus the `Something else — I'll describe it` escape hatch. The
116
- human picks; record the pick to `questions.md` (`answered`) + `decisions.md` (through the
117
- `resolve.sh` writer), clear the gate, and **continue to step 3 in place** — do **not**
118
- STOP, do **not** route through `/rite-resolve`.
119
- - **Human absent / AFK (`.devrites/AFK` present) → auto-pick or persist + STOP.** For a gate
120
- in `allow_gates`, auto-pick the recommended option (option 1) and proceed; otherwise
121
- append the `questions.md` entry, write the `Awaiting human` block to `state.md`, set
122
- `Status: awaiting_human`, fire the `notify:` hook, then **STOP** — resume when the user
123
- runs `/rite-resolve <qid> "<answer>"`. `blocking` / `escalating` / irreversible-risk gates
124
- always take this stop path, never the AFK auto-pick.
125
- 3. **Snapshot the tree, then dispatch the build core to `devrites-slice-wright`** — one `Task`
126
- call, fresh context. **First**, capture the pre-dispatch tree so the reconcile gate (step 6)
127
- can prove you never touched source — run this immediately before the `Task` call:
128
- ```bash
129
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
130
- [ -f "$R" ] && bash "$R" reconcile snapshot || echo "(reconcile gate unavailable — verify by hand that only the wright wrote source)"
131
- ```
132
- Then log the dispatch so the stuck-loop detector can catch a slice that keeps being
133
- re-dispatched without progress (it pauses the build even under AFK):
134
- ```bash
135
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
136
- [ -f "$R" ] && bash "$R" stuck log "$(cat .devrites/ACTIVE 2>/dev/null)" dispatch "<slice id>" || true
137
- ```
138
- **Forge branch — only if the selected slice is `Forge: yes`.** Instead of the single dispatch
139
- below, run the competitive build per [`reference/forge.md`](reference/forge.md): K=2–3 candidate
140
- wrights, each in an **isolated git worktree** on the distinct strategy `/rite-vet` named, then a
141
- fresh-context [`devrites-forge-judge`](../../agents/devrites-forge-judge.md) scores them against
142
- acceptance + `test-plan.md` + `.devrites/principles.md` + the anti-slop charter, and you land
143
- exactly **one** winner's diff in the working tree, graft any cheap runner-up improvement by
144
- continuing the winning wright once, and write `forge-report.md`. Forge returns the **same shape**
145
- a single wright does (one structured artifact, for the winner), so steps 4–7 (doubt, fail-on-red,
146
- reconcile against the winner's claimed set, record, stop) run **unchanged**. If you cannot give
147
- the judge an objective scorecard (the slice lacks acceptance / `test-plan.md` coverage) or cannot
148
- name two genuinely different strategies, the flag is stale — clear it and build single-path. The
149
- single-writer invariant is intact: each candidate owns its own tree, exactly one author's diff
150
- lands. Then **stop** here for this slice; the steps below are the default single-path dispatch.
151
-
152
- Then assemble the slice contract and send it per
153
- [`reference/wright-dispatch.md`](reference/wright-dispatch.md): the slice goal, acceptance
154
- criteria, and **scope boundary**; the paths it may touch (`touched-files.md`); the context
155
- paths to read (`spec.md`, `plan.md`, `decisions.md`, `assumptions.md`, `.devrites/principles.md`
156
- when present — the binding invariants the slice must honor — plus `test-plan.md`
157
- when present — its per-gap test requirements + regression-criticals for this slice are the
158
- coverage the wright must write — and `design-brief.md`
159
- when the slice touches UI per [frontend-trigger](reference/frontend-trigger.md)); and the
160
- `.claude/rules/` files in scope. The wright **orients** on the project's idiom (using a
161
- code-intelligence index **if available** — `codebase-memory-mcp` first, cross-checked with
162
- `codegraph` (`.codegraph/` / `codegraph_*`) + `graphify` (`graphify-out/`), else standard
163
- methods (LSP / `Read`/`Grep`/`Glob`); see `.claude/rules/tooling.md` — for
164
- placement/callers/impact), writes the **failing test first** when
165
- behaviour changes ([tdd](reference/tdd.md)), implements the **smallest complete** version in
166
- the project's style (applying `devrites-frontend-craft` to `design-brief.md` for UI, and
167
- `devrites-source-driven` — with context7 if available — for uncertain framework facts), runs the slice's **targeted tests**
168
- (plus typecheck / lint / build where the project has them), and returns a structured artifact
169
- — **code + tests only; it does not write the workspace files.** If the slice is UI but no `design-brief.md` exists (e.g. a spec written before
170
- shaping), shape it via `devrites-ux-shape` before the wright codes. If the `Task` tool is
171
- unavailable, run the wright's discipline **inline** as a flagged fallback (see the reference)
172
- — same one-slice cycle, no isolation; in that case write
173
- `.devrites/work/<slug>/.reconcile-inline` so the reconcile gate skips (you are legitimately
174
- the writer in this fallback).
175
- 4. **Doubt the decisions it stood up.** For each entry in the wright's `Decisions stood`
176
- (branching, boundary crossing, data model, auth, public API, migration, user-flow change,
177
- "this is safe/scales") apply `devrites-doubt` **before accepting the slice** — the writer
178
- doesn't grade its own decisions. Each `devrites-doubt` invocation **dispatches the
179
- `devrites-doubt-reviewer` subagent** (doing the adversarial pass inline is the writer grading
180
- itself — the thing this step exists to forbid). **Completion criterion (checkable):** step 4
181
- is done only when **every** `Decisions stood` entry carries a recorded `devrites-doubt`
182
- verdict — `accept`, or `reject` + the required changes — in `decisions.md` (accepted
183
- trade-offs) / `questions.md` (open gates). A `Decisions stood` entry with **no verdict on
184
- record** means doubt did not run for it: **do not enter step 5 and do not mark the slice
185
- `built`.** Log each dispatch so the seal can prove doubt ran (the footprint already counts a
186
- `doubt` kind):
187
- ```bash
188
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
189
- [ -f "$R" ] && bash "$R" footprint log <slug> doubt "<decision id>" || true
190
- ``` The doubt loop honours `.devrites/AFK` (see its AFK
191
- exception): findings below the slice's gate ceiling become advisory entries in `questions.md`;
192
- destructive / auth / public-API concerns always pause regardless. A non-empty `Escalation` in
193
- the artifact is handled here too: irreversible-risk / blockers → blocking question + set
194
- `Status: awaiting_human`; a scope-changing answer → `/rite-plan repair` (Spec Drift Guard),
195
- never silently into the slice. **If an irreversible-risk item shows up under the wright's
196
- `Decisions stood` rather than `Escalation`**, treat that misclassification as itself a
197
- blocking protocol violation — pause and re-dispatch with the item flagged out-of-bounds, do
198
- **not** doubt-and-accept it. (The wright's return is the not-yet-load-bearing moment — the
199
- slice isn't `built` or merged yet — so this post-return doubt is still pre-commit.)
200
- **Principle check (same standing):** a wright return that breaks a declared principle
201
- (reported in its `Principles` field, or that you detect against `.devrites/principles.md`) is
202
- handled here like an irreversible-risk item — block, route to a human-approved scoped
203
- exception in the register or stop; never doubt-and-accept a principle violation into the slice.
204
- 5. **Fail-on-red.** If the wright's `Gates` were red (targeted tests / types / lint) or it
205
- couldn't verify: do **not** mark the slice `built`, and **do not fix the code yourself**.
206
- First remedy — **continue the same wright once** (`SendMessage` to it, carrying the failing
207
- gate + its real output) so it fixes in its own context. This retry is for **objective
208
- failures only** — red gate / type / lint / missing test coverage / UI browser-proof fail —
209
- never a contested decision (that routes to `/rite-plan repair`). **Still red after the one
210
- retry** → escalate: AFK → append a blocking question to `questions.md` (gate=blocking,
211
- slice's SLA) + set `Status: awaiting_human`; HITL → pause as a blocking gate. Either way,
212
- `Next step: /rite-plan unblock` until resolved.
213
- 6. **Record — you are the canonical writer.** **First, run the reconcile gate (A1):** write the
214
- wright's reported `Files changed` paths (one per line) to
215
- `.devrites/work/<slug>/.reconcile-claimed`, then:
216
- ```bash
217
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
218
- [ -f "$R" ] && { bash "$R" reconcile check; echo "reconcile rc=$?"; } || echo "(reconcile gate unavailable — confirm by hand only the wright wrote source)"
219
- ```
220
- **Exit 5 → hard STOP:** a source file changed outside the wright's claimed set — code was
221
- edited by something other than the wright (A1 breach). Revert it and re-dispatch the wright;
222
- do **not** mark the slice `built`.
223
-
224
- **Then run the test-integrity gate (anti-reward-hacking)** — prove the slice didn't reach
225
- green by weakening its tests:
226
- ```bash
227
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
228
- [ -f "$R" ] && { bash "$R" test-integrity; echo "test-integrity rc=$?"; } || echo "(test-integrity gate unavailable — confirm by hand no test was deleted/skipped/loosened)"
229
- ```
230
- **Exit 3 → hard STOP:** a test was deleted, skipped, or de-asserted since the slice base — the
231
- slice went green by weakening its tests, a Critical protocol violation. Revert the weakening and
232
- re-dispatch the wright; do **not** mark the slice `built`.
233
-
234
- Then, from the wright's artifact, update `state.md`,
235
- `evidence.md`, `touched-files.md` (and `browser-evidence.md` for UI). **Persist every
236
- `Decisions stood` entry from the wright's artifact to a `## Decisions stood` section in
237
- `decisions.md`, one line each ending `— doubt: <accept | reject-resolved | MISSING>`** — the
238
- verdict from step 4, or `MISSING` if step 4 was skipped for that entry. Write this ledger at
239
- record-time **independent of the doubt step**, so a stood decision lands on disk even when it
240
- was never doubted: `/rite-seal` cross-checks the ledger, and a `doubt: MISSING` entry is the
241
- skipped-doubt finding that would otherwise leave no trace (the per-slice skip the footprint
242
- count alone can't catch). If the wright stood no decisions, write `## Decisions stood` with
243
- `- none` so the absence is recorded, not assumed. If the wright reported
244
- an approach it tried and backed out of, record it under a `## Dead ends` section in
245
- `decisions.md` so a retry or the next agent doesn't repeat it.
246
- **If the wright's `Conventions` field reports a contradiction** (the live code now
247
- disagrees with a held convention), record the drift — you own this bookkeeping:
248
- ```bash
249
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
250
- [ -f "$R" ] && bash "$R" conventions contradict --key <key> --slug <slug> \
251
- --evidence "<what the live code does>" --drift-file .devrites/work/<slug>/drift.md || true
252
- ```
253
- It lowers the convention's band (or retires it) and appends a `convention-drift` entry to
254
- `drift.md`. The ledger is **promoted only at `/rite-seal` on GO** — build only records
255
- contradictions, never new conventions. **Evidence is the
256
- wright's real command output, not its say-so.** Capture per
257
- [evidence-standard](reference/evidence-standard.md). Append a footprint record for this
258
- slice's wright dispatch (deterministic run-weight bookkeeping the seal reports):
259
- ```bash
260
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
261
- [ -f "$R" ] && bash "$R" footprint log <slug> wright "<slice id>" || true
262
- ```
263
- If `.devrites/AFK` is present, decrement
264
- the budget by running `bash .claude/skills/devrites-lib/scripts/tick-afk.sh <state.md path>` —
265
- it decrements `state.md`'s `AFK slices remaining` field, prints the new value, and exits `3`
266
- when it hits 0. **Exit 3 → STOP** (forced HITL stop; the cap is exhausted). Never rewrite
267
- `.devrites/AFK` `max_slices` in place — it is read-only initial budget.
268
- 7. **STOP.** Render the progress footer, then report and recommend the next step. Run the
269
- shared footer (mirror of the step-0 preamble) so the slice meter + flow ribbon are
270
- deterministic, not model-typed:
271
- ```bash
272
- R=.claude/skills/devrites-lib/scripts/rites.sh; [ -f "$R" ] || R="${CLAUDE_SKILL_DIR:-}/../devrites-lib/scripts/rites.sh"; [ -f "$R" ] || R=pack/.claude/skills/devrites-lib/scripts/rites.sh
273
- [ -f "$R" ] && bash "$R" progress || echo "(progress footer unavailable on this install)"
274
- ```
275
- It reads `state.md` (already updated in step 6), so the meter reflects the slice you
276
- just built. **When every slice is built** (`✅ ALL BUILT`) say so explicitly — the build
277
- phase is complete, the next phase is `/rite-prove` — don't leave completion implicit.
71
+ ## Workflow
278
72
 
279
- > **Mid-flight discipline.** The wright (or you, in the inline fallback) must resist doing two slices, skipping TDD, adding a defensive check, or wandering outside `touched-files.md`; you must resist skipping the post-return `devrites-doubt` because the wright "seems confident" — see [`anti-patterns`](reference/anti-patterns.md). Load it the moment you reach for the excuse.
73
+ Run the full execution contract in
74
+ [`reference/phase-contract.md`](reference/phase-contract.md). It is not optional:
75
+ it contains the gated one-slice workflow, including readiness, HITL/AFK handling,
76
+ wright dispatch, forge, doubt, fail-on-red, record gates, and stop behavior.
280
77
 
281
78
  ## Output
282
79
 
283
- The `progress.sh` footer (step 7) prints the first three lines the header rule, the
284
- **slice meter** (how many of N are built), and the **flow ribbon**. Your fact lines sit
285
- under it. Two shapes:
286
-
287
- **Slices still pending:**
288
- ```
289
- ── rite-build ──────────────────────────────
290
- Slice 3/5 ██████░░░░ csv-streaming ✓
291
- Flow spec ✓ define ✓ build ◉ prove ○ polish ○ review ○ seal ○ ship ○
292
- Built slice 3 — csv-streaming (by devrites-slice-wright | inline fallback)
293
- Acceptance ✓ met · Tests <cmd → pass> · Browser <summary | n/a> · Drift <none | handled>
294
- Next ▸ /rite-build (slice 4 — pagination)
295
- ↻ Hygiene /clear between slices (state.md + touched-files.md + evidence.md carry forward); /rite-handoff if away > a few hours.
296
- ```
297
-
298
- **All slices built (build phase complete — say it):**
299
- ```
300
- ── rite-build ──────────────────────────────
301
- Slices 5/5 ██████████ ✅ ALL BUILT
302
- Flow spec ✓ define ✓ build ◉ prove ○ polish ○ review ○ seal ○ ship ○
303
- Built slice 5 — error-states (by devrites-slice-wright | inline fallback)
304
- Acceptance ✓ met · Tests <cmd → pass> · Browser <summary | n/a> · Drift <none | handled>
305
- ✅ Feature implemented — every slice built. Build phase done.
306
- Next ▸ /rite-prove (prove the completed feature)
307
- ↻ Hygiene /clear (state.md + evidence.md captured); /rite-handoff if away > a few hours.
308
- ```
309
-
310
- Keep fact lines terse — one `key value` per fact, `·` between, no prose. The meter, the
311
- `✅ ALL BUILT` marker, and the ribbon carry the progress; don't restate them in words.
312
-
313
- For a **forged slice**, the `Built` line names the competition and points at the record, e.g.
314
- `Built slice 3 — csv-streaming (forged: 3 candidates → winner B; forge-report.md)`.
315
-
316
- **DO NOT continue to the next slice automatically** — even at `✅ ALL BUILT`, `/rite-prove` is the user's call.
80
+ Use the full output contract in [`reference/output.md`](reference/output.md).
81
+ It preserves the progress-footer-first response shape, uses the shared completion
82
+ reply contract
83
+ ([`devrites-lib/reference/reply-contract.md`](../devrites-lib/reference/reply-contract.md)),
84
+ and keeps the explicit stop after one slice.
@@ -27,7 +27,7 @@ allow_gates: [advisory, validating] # gate severities AFK may auto-handle
27
27
 
28
28
  `.devrites/AFK` is **read-only config** — never rewritten in place. `max_slices` is the
29
29
  initial budget; the mutable remaining count lives in `state.md` as `AFK slices remaining:
30
- <n>`, seeded from `max_slices` on the first AFK build and decremented by `tick-afk.sh`
30
+ <n>`, seeded from `max_slices` on the first AFK build and decremented by `devrites-engine tick-afk`
31
31
  (see "Iteration cap").
32
32
 
33
33
  Defaults when keys are omitted:
@@ -42,9 +42,9 @@ into HITL.
42
42
 
43
43
  `/rite-build`'s **record step** (workflow step 6) decrements `state.md`'s `AFK slices
44
44
  remaining` by 1 each time a slice is marked `built`, by running
45
- `bash .claude/skills/devrites-lib/scripts/tick-afk.sh <state.md path>`. The script reads the
45
+ `devrites-engine tick-afk <state.md path>`. The script reads the
46
46
  field, decrements, writes it back, prints the new value, and **exits `3` when it hits 0**.
47
- The cap is enforced by `tick-afk.sh`, not by prose — when it exits 3:
47
+ The cap is enforced by `devrites-engine tick-afk`, not by prose — when it exits 3:
48
48
 
49
49
  - `/rite-build` treats exit 3 as a forced HITL stop:
50
50
  ```
@@ -6,7 +6,7 @@ calling `devrites-doubt`.
6
6
 
7
7
  Pack-wide rationalizations + red flags (incl. tests-later, defensive checks,
8
8
  generic AI naming, drive-by refactors): see
9
- [rules/anti-patterns.md](../../../rules/anti-patterns.md).
9
+ [standards/anti-patterns.md](../../devrites-lib/reference/standards/anti-patterns.md).
10
10
 
11
11
  ## Phase-specific rationalizations
12
12
 
@@ -100,7 +100,7 @@ In one atomic write (one `state.md` rewrite + one `questions.md` append):
100
100
 
101
101
  Format: `q-YYYY-MM-DD-NNN`, where `NNN` is the next sequential integer for that date in
102
102
  `questions.md`. For the write side, call
103
- `bash .claude/skills/devrites-lib/scripts/resolve.sh next-qid <questions.md path>` — it
103
+ `devrites-engine resolve next-qid <questions.md path>` — it
104
104
  counts existing `## q-YYYY-MM-DD-` headers for today, prints the next zero-padded id, and
105
105
  refuses to print an id whose header already exists. Use that id verbatim so each qid is
106
106
  unique within the date.
@@ -0,0 +1,44 @@
1
+ # Checkpoint — crash-survivable WIP commits (opt-in)
2
+
3
+ `.devrites/` markdown survives compaction, but a slice's *source* stays uncommitted until
4
+ `/rite-ship`. A crash or killed session mid-build — the AFK / `/rite-autocomplete` case —
5
+ loses that source **and** the reasoning behind it. Checkpoint mode commits each proven
6
+ slice as a local `WIP`, so the work and its context outlive the session.
7
+
8
+ ## When it's on
9
+ Opt-in via the `.devrites/CHECKPOINT` sentinel — the mirror of `.devrites/AFK`. Absent →
10
+ no checkpoints; `/rite-build` behaves exactly as before. A long unattended run
11
+ (`/rite-autocomplete`) is the case it earns its keep, so that path sets the sentinel for
12
+ the run. **Local-only by rule:** a checkpoint is never pushed — scratch work must not
13
+ trigger CI.
14
+
15
+ ## The checkpoint commit — orchestrator, at RECORD, after gates are green
16
+ A checkpoint records a **proven** slice; it fires only after PROVE is green, never on a red
17
+ gate. Stage only the slice's `touched-files.md`, then commit locally with a
18
+ `[devrites-context]` body a cold reader can restore from:
19
+
20
+ ```bash
21
+ [ -f .devrites/CHECKPOINT ] || exit 0 # sentinel absent → no-op, silent
22
+ git commit -m "WIP(<slug>): <slice>" -m "$(cat <<'BODY'
23
+ [devrites-context]
24
+ decisions: <one-line delta this slice added to decisions.md>
25
+ remaining: <pending slices — count or names>
26
+ dead-ends: <approaches ruled out this slice, if any>
27
+ BODY
28
+ )"
29
+ ```
30
+
31
+ ## Restore
32
+ The commit body is a durable record, not just a marker. After a crash, a fresh session —
33
+ or `/rite-status` — reads the last `WIP(<slug>)` body to reconstruct the decisions,
34
+ remaining slices, and dead-ends that in-session `.devrites/` state would have held. No
35
+ special tooling: it's a git log entry any agent can read.
36
+
37
+ ## Collapse at ship
38
+ WIP commits are scratch and never reach shared history. `/rite-ship` folds them into the
39
+ one atomic feature commit before the Conventional-Commit ladder — see the collapse step in
40
+ [git-ship.md](../../rite-ship/reference/git-ship.md). Result: one clean commit, bisect
41
+ stays green.
42
+
43
+ ## Autocomplete clean-baseline use
44
+ `/rite-autocomplete` may arm checkpoint mode after it verifies a clean or explicitly accepted baseline. Checkpoints are local-only crash recovery, not authorization to continue across red gates or to ship. `/rite-build` remains one-slice-at-a-time; autocomplete is the only opt-in loop that may invoke multiple builds.
@@ -15,14 +15,14 @@ Evidence beats confidence. A slice isn't built until there's a record that prove
15
15
  - "No type errors" as proof that a *feature* works (it proves types, not behavior).
16
16
  - A screenshot path you didn't open.
17
17
 
18
- ## Record format (`evidence.md`, append-only)
18
+ ## Record format (`evidence.md`)
19
19
  ```markdown
20
- ## Slice <N> — <name> (<date>)
21
- - cmd: <command>
22
- result: <pass/fail + key output line>
23
- - observation: <what you saw at runtime>
24
- - browser: see browser-evidence.md (if UI)
25
- - gaps: <what remains unproven, if anything>
20
+ # Evidence
21
+
22
+ ## Evidence log
23
+ | Evidence ID | Command / action | Result | Timestamp | Related IDs | Limitation |
24
+ | --- | --- | --- | --- | --- | --- |
25
+ | EVID-001 | <command/action> | <pass/fail + key output line> | <iso if available> | AC-001, SLICE-001 | <what remains unproven, or none> |
26
26
  ```
27
27
 
28
28
  ## Honesty rules
@@ -30,3 +30,6 @@ Evidence beats confidence. A slice isn't built until there's a record that prove
30
30
  - If a step was skipped (no browser available, command not found), say so and record
31
31
  the manual verification steps instead.
32
32
  - Unproven acceptance criteria stay unchecked. The seal will catch them.
33
+ - Every evidence row uses `EVID-###` and names the related `AC-###` and `SLICE-###`.
34
+ - UI/browser proof goes in `browser-evidence.md`; `evidence.md` links to its `EVID-###`
35
+ instead of copying screenshot notes.
@@ -55,7 +55,7 @@ Snapshot the working tree first (the winner's landing is reconciled against it l
55
55
  each candidate its own isolated tree. **Prefer parallel isolated worktrees** when the harness can
56
56
  dispatch a sub-agent with worktree isolation; the **always-available** path is one throwaway git
57
57
  branch per candidate, built sequentially (slower, universally works — the
58
- [`tooling.md`](../../../rules/tooling.md) "fallback is first-class" discipline):
58
+ [`tooling.md`](../../devrites-lib/reference/standards/tooling.md) "fallback is first-class" discipline):
59
59
 
60
60
  ```bash
61
61
  SLUG="$(cat .devrites/ACTIVE 2>/dev/null)"
@@ -107,13 +107,23 @@ The durable record of the competition (template below). One per forged slice; ar
107
107
  feature.
108
108
 
109
109
  ### F7 — Clean up, then return to the cycle
110
- Remove the losing worktrees / delete the candidate branches:
110
+ Remove only clean losing worktrees / delete their candidate branches. If a losing worktree is dirty,
111
+ preserve it and record the path in `forge-report.md`; never `--force` away unlanded work.
111
112
 
112
113
  ```bash
113
114
  SLUG="$(cat .devrites/ACTIVE 2>/dev/null)"
114
115
  for C in A B; do
115
- git worktree remove ".devrites/work/$SLUG/forge/cand-$C" --force 2>/dev/null || true
116
- git branch -D "forge/$SLUG/cand-$C" 2>/dev/null || true
116
+ WT=".devrites/work/$SLUG/forge/cand-$C"
117
+ if [ -d "$WT/.git" ] || git -C "$WT" rev-parse --is-inside-work-tree >/dev/null 2>&1; then
118
+ if git -C "$WT" diff --quiet && git -C "$WT" diff --cached --quiet; then
119
+ git worktree remove "$WT" 2>/dev/null || true
120
+ git branch -D "forge/$SLUG/cand-$C" 2>/dev/null || true
121
+ else
122
+ echo "preserved dirty forge worktree: $WT"
123
+ fi
124
+ else
125
+ git branch -D "forge/$SLUG/cand-$C" 2>/dev/null || true
126
+ fi
117
127
  done
118
128
  ```
119
129
 
@@ -148,14 +158,14 @@ approach forge already rejected.
148
158
  ## AFK & budget
149
159
 
150
160
  - **Cost.** Forge multiplies the build by K. Under `.devrites/AFK`, each candidate counts against
151
- the slice budget (`tick-afk.sh` once per candidate dispatched), so a forge slice can exhaust the
161
+ the slice budget (`devrites-engine tick-afk` once per candidate dispatched), so a forge slice can exhaust the
152
162
  cap faster — that is intended back-pressure, not a bug.
153
163
  - **Gates are unchanged.** Forge changes *how many candidates build*, never *what pauses*. An
154
164
  irreversible-risk item, a blocking/escalating gate, or a red-on-completion in **any** candidate
155
- pauses per [`afk-hitl.md`](../../../rules/afk-hitl.md) exactly as single-path. AFK widens what is
165
+ pauses per [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md) exactly as single-path. AFK widens what is
156
166
  automatic, never what is irreversible — forge included.
157
167
  - **Stuck loop still applies.** Re-dispatching the same candidate without progress trips
158
- `stuck.sh` the same as a single wright.
168
+ `devrites-engine stuck` the same as a single wright.
159
169
 
160
170
  ## When isolation is impossible
161
171