devrites 6.10.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +8 -4
  3. package/SECURITY.md +1 -1
  4. package/docs/adr/0038-engine-flags-unattributed-root-edits.md +67 -0
  5. package/docs/adr/README.md +2 -1
  6. package/docs/cli.md +19 -6
  7. package/docs/command-map.md +21 -19
  8. package/docs/engine/commands.md +22 -15
  9. package/docs/usage.md +3 -3
  10. package/engine/commands.go +8 -3
  11. package/engine/help.go +43 -16
  12. package/engine/internal/acceptance/approve.go +46 -7
  13. package/engine/internal/acceptance/cli.go +102 -0
  14. package/engine/internal/acceptance/exec.go +8 -6
  15. package/engine/internal/acceptance/ledger.go +16 -1
  16. package/engine/internal/acceptance/lint.go +9 -1
  17. package/engine/internal/acceptance/preconditions.go +201 -0
  18. package/engine/internal/anchor/anchor.go +76 -0
  19. package/engine/internal/gate/drivers.go +144 -0
  20. package/engine/internal/gate/gate.go +49 -13
  21. package/engine/internal/gate/preconditions.go +121 -0
  22. package/engine/internal/lib/anchors.go +270 -0
  23. package/engine/internal/lib/apply_bundle.go +2 -1
  24. package/engine/internal/lib/candidate.go +17 -8
  25. package/engine/internal/lib/claims.go +48 -33
  26. package/engine/internal/lib/context.go +337 -22
  27. package/engine/internal/lib/diffscope.go +201 -12
  28. package/engine/internal/lib/dispatch.go +393 -21
  29. package/engine/internal/lib/dispatch_contract.go +82 -2
  30. package/engine/internal/lib/dispatch_packet.go +224 -8
  31. package/engine/internal/lib/environment_report.go +2 -3
  32. package/engine/internal/lib/handoff.go +33 -3
  33. package/engine/internal/lib/metrics.go +119 -11
  34. package/engine/internal/lib/next.go +45 -5
  35. package/engine/internal/lib/observe_summary.go +2 -4
  36. package/engine/internal/lib/packet.go +319 -0
  37. package/engine/internal/lib/packet_freeze.go +227 -0
  38. package/engine/internal/lib/perturb.go +403 -0
  39. package/engine/internal/lib/questions_lint.go +99 -0
  40. package/engine/internal/lib/state_edit.go +396 -0
  41. package/engine/internal/lib/taskgraph.go +166 -0
  42. package/engine/internal/lib/treebaseline.go +331 -0
  43. package/engine/internal/lib/triggers.go +19 -0
  44. package/engine/internal/lib/windows.go +110 -5
  45. package/engine/internal/overhaul/admit/run.go +7 -30
  46. package/engine/internal/parallel/cli.go +27 -33
  47. package/engine/internal/parallel/git.go +10 -0
  48. package/engine/internal/parallel/select.go +36 -0
  49. package/engine/internal/state/budgets.go +60 -13
  50. package/engine/internal/state/observation.go +1 -1
  51. package/engine/main.go +61 -14
  52. package/pack/.claude/agents/devrites-code-reviewer.md +9 -5
  53. package/pack/.claude/agents/devrites-devex-reviewer.md +5 -4
  54. package/pack/.claude/agents/devrites-doubt-reviewer.md +4 -4
  55. package/pack/.claude/agents/devrites-evidence-scout.md +3 -2
  56. package/pack/.claude/agents/devrites-frontend-reviewer.md +5 -4
  57. package/pack/.claude/agents/devrites-performance-reviewer.md +5 -5
  58. package/pack/.claude/agents/devrites-plan-drafter.md +4 -2
  59. package/pack/.claude/agents/devrites-plan-reviewer.md +5 -5
  60. package/pack/.claude/agents/devrites-proof-runner.md +1 -1
  61. package/pack/.claude/agents/devrites-retrospector.md +1 -1
  62. package/pack/.claude/agents/devrites-security-auditor.md +4 -4
  63. package/pack/.claude/agents/devrites-simplifier-reviewer.md +5 -4
  64. package/pack/.claude/agents/devrites-slice-wright.md +18 -9
  65. package/pack/.claude/agents/devrites-spec-reviewer.md +4 -4
  66. package/pack/.claude/agents/devrites-strategy-reviewer.md +5 -6
  67. package/pack/.claude/agents/devrites-test-analyst.md +7 -4
  68. package/pack/.claude/agents/devrites-upgrade-planner.md +1 -1
  69. package/pack/.claude/agents/fast-builder.md +4 -2
  70. package/pack/.claude/agents/fast-checker.md +3 -2
  71. package/pack/.claude/agents/fast-critic.md +3 -2
  72. package/pack/.claude/agents/fast-planner.md +3 -3
  73. package/pack/.claude/agents/overhaul-recon.md +5 -4
  74. package/pack/.claude/settings.json +19 -7
  75. package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -1
  76. package/pack/.claude/skills/devrites-audit/SKILL.md +1 -1
  77. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +1 -1
  78. package/pack/.claude/skills/devrites-doubt/SKILL.md +5 -5
  79. package/pack/.claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  80. package/pack/.claude/skills/devrites-interview/SKILL.md +1 -1
  81. package/pack/.claude/skills/devrites-lib/SKILL.md +11 -6
  82. package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
  83. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
  84. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +2 -1
  85. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  86. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +43 -19
  87. package/pack/.claude/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
  88. package/pack/.claude/skills/devrites-lib/reference/standards/code-index.md +111 -0
  89. package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
  90. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
  91. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +14 -1
  92. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +1 -1
  93. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +10 -1
  94. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +4 -0
  95. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +3 -1
  96. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +9 -8
  97. package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +3 -2
  98. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  99. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
  100. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +1 -1
  101. package/pack/.claude/skills/overhaul/references/orchestration.md +3 -2
  102. package/pack/.claude/skills/rite/SKILL.md +1 -1
  103. package/pack/.claude/skills/rite-adopt/SKILL.md +1 -1
  104. package/pack/.claude/skills/rite-adopt/reference/adoption.md +1 -1
  105. package/pack/.claude/skills/rite-autocomplete/SKILL.md +5 -4
  106. package/pack/.claude/skills/rite-build/SKILL.md +4 -3
  107. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +2 -0
  108. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +4 -1
  109. package/pack/.claude/skills/rite-build/reference/checkpoint.md +2 -0
  110. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +1 -1
  111. package/pack/.claude/skills/rite-build/reference/output.md +2 -0
  112. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +22 -12
  113. package/pack/.claude/skills/rite-build/reference/phase-contract.md +13 -3
  114. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +42 -25
  115. package/pack/.claude/skills/rite-clarify/SKILL.md +1 -1
  116. package/pack/.claude/skills/rite-converge/SKILL.md +4 -4
  117. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +3 -3
  118. package/pack/.claude/skills/rite-define/SKILL.md +10 -5
  119. package/pack/.claude/skills/rite-doctor/SKILL.md +17 -2
  120. package/pack/.claude/skills/rite-dogfood/SKILL.md +1 -1
  121. package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
  122. package/pack/.claude/skills/rite-explain/reference/intake.md +1 -1
  123. package/pack/.claude/skills/rite-fast/SKILL.md +1 -1
  124. package/pack/.claude/skills/rite-handoff/SKILL.md +3 -3
  125. package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +1 -1
  126. package/pack/.claude/skills/rite-plan/SKILL.md +4 -4
  127. package/pack/.claude/skills/rite-plan/reference/slicing.md +3 -2
  128. package/pack/.claude/skills/rite-polish/SKILL.md +6 -3
  129. package/pack/.claude/skills/rite-prove/SKILL.md +1 -1
  130. package/pack/.claude/skills/rite-quick/SKILL.md +1 -1
  131. package/pack/.claude/skills/rite-resolve/SKILL.md +1 -1
  132. package/pack/.claude/skills/rite-review/SKILL.md +4 -4
  133. package/pack/.claude/skills/rite-seal/SKILL.md +2 -2
  134. package/pack/.claude/skills/rite-ship/SKILL.md +1 -1
  135. package/pack/.claude/skills/rite-spec/SKILL.md +1 -1
  136. package/pack/.claude/skills/rite-spec/reference/investigation.md +5 -5
  137. package/pack/.claude/skills/rite-spec/reference/spec-template.md +1 -1
  138. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +6 -4
  139. package/pack/.claude/skills/rite-status/SKILL.md +1 -1
  140. package/pack/.claude/skills/rite-temper/SKILL.md +1 -1
  141. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +2 -2
  142. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +2 -2
  143. package/pack/.claude/skills/rite-temper/reference/significance.md +2 -2
  144. package/pack/.claude/skills/rite-vet/SKILL.md +8 -4
  145. package/pack/.claude/skills/rite-vet/reference/artifacts.md +10 -3
  146. package/pack/.claude/skills/rite-vet/reference/depth.md +2 -2
  147. package/pack/.claude/skills/rite-vet/reference/review-axes.md +2 -2
  148. package/pack/.claude/skills/rite-zoom-out/SKILL.md +6 -6
  149. package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -5
  150. package/pack/generated/claude/agents/devrites-devex-reviewer.md +5 -4
  151. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +4 -4
  152. package/pack/generated/claude/agents/devrites-evidence-scout.md +3 -2
  153. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +5 -4
  154. package/pack/generated/claude/agents/devrites-performance-reviewer.md +5 -5
  155. package/pack/generated/claude/agents/devrites-plan-drafter.md +4 -2
  156. package/pack/generated/claude/agents/devrites-plan-reviewer.md +5 -5
  157. package/pack/generated/claude/agents/devrites-proof-runner.md +1 -1
  158. package/pack/generated/claude/agents/devrites-retrospector.md +1 -1
  159. package/pack/generated/claude/agents/devrites-security-auditor.md +4 -4
  160. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +5 -4
  161. package/pack/generated/claude/agents/devrites-slice-wright.md +18 -9
  162. package/pack/generated/claude/agents/devrites-spec-reviewer.md +4 -4
  163. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +5 -6
  164. package/pack/generated/claude/agents/devrites-test-analyst.md +7 -4
  165. package/pack/generated/claude/agents/devrites-upgrade-planner.md +1 -1
  166. package/pack/generated/claude/agents/fast-builder.md +4 -2
  167. package/pack/generated/claude/agents/fast-checker.md +3 -2
  168. package/pack/generated/claude/agents/fast-critic.md +3 -2
  169. package/pack/generated/claude/agents/fast-planner.md +3 -3
  170. package/pack/generated/claude/agents/overhaul-recon.md +5 -4
  171. package/pack/generated/claude/settings.json +19 -7
  172. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -1
  173. package/pack/generated/claude/skills/devrites-audit/SKILL.md +1 -1
  174. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +1 -1
  175. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +5 -5
  176. package/pack/generated/claude/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  177. package/pack/generated/claude/skills/devrites-interview/SKILL.md +1 -1
  178. package/pack/generated/claude/skills/devrites-lib/SKILL.md +11 -6
  179. package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
  180. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
  181. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +2 -1
  182. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  183. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +43 -19
  184. package/pack/generated/claude/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
  185. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-index.md +111 -0
  186. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
  187. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
  188. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +14 -1
  189. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +1 -1
  190. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +10 -1
  191. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +4 -0
  192. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +3 -1
  193. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +9 -8
  194. package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +3 -2
  195. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  196. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
  197. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +1 -1
  198. package/pack/generated/claude/skills/overhaul/references/orchestration.md +3 -2
  199. package/pack/generated/claude/skills/rite/SKILL.md +1 -1
  200. package/pack/generated/claude/skills/rite-adopt/SKILL.md +1 -1
  201. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +1 -1
  202. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +5 -4
  203. package/pack/generated/claude/skills/rite-build/SKILL.md +4 -3
  204. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +2 -0
  205. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +4 -1
  206. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +2 -0
  207. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +1 -1
  208. package/pack/generated/claude/skills/rite-build/reference/output.md +2 -0
  209. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +22 -12
  210. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +13 -3
  211. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +42 -25
  212. package/pack/generated/claude/skills/rite-clarify/SKILL.md +1 -1
  213. package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -4
  214. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +3 -3
  215. package/pack/generated/claude/skills/rite-define/SKILL.md +10 -5
  216. package/pack/generated/claude/skills/rite-doctor/SKILL.md +17 -2
  217. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +1 -1
  218. package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
  219. package/pack/generated/claude/skills/rite-explain/reference/intake.md +1 -1
  220. package/pack/generated/claude/skills/rite-fast/SKILL.md +1 -1
  221. package/pack/generated/claude/skills/rite-handoff/SKILL.md +3 -3
  222. package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +1 -1
  223. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -4
  224. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +3 -2
  225. package/pack/generated/claude/skills/rite-polish/SKILL.md +6 -3
  226. package/pack/generated/claude/skills/rite-prove/SKILL.md +1 -1
  227. package/pack/generated/claude/skills/rite-quick/SKILL.md +1 -1
  228. package/pack/generated/claude/skills/rite-resolve/SKILL.md +1 -1
  229. package/pack/generated/claude/skills/rite-review/SKILL.md +4 -4
  230. package/pack/generated/claude/skills/rite-seal/SKILL.md +2 -2
  231. package/pack/generated/claude/skills/rite-ship/SKILL.md +1 -1
  232. package/pack/generated/claude/skills/rite-spec/SKILL.md +1 -1
  233. package/pack/generated/claude/skills/rite-spec/reference/investigation.md +5 -5
  234. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +1 -1
  235. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +6 -4
  236. package/pack/generated/claude/skills/rite-status/SKILL.md +1 -1
  237. package/pack/generated/claude/skills/rite-temper/SKILL.md +1 -1
  238. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +2 -2
  239. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +2 -2
  240. package/pack/generated/claude/skills/rite-temper/reference/significance.md +2 -2
  241. package/pack/generated/claude/skills/rite-vet/SKILL.md +8 -4
  242. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +10 -3
  243. package/pack/generated/claude/skills/rite-vet/reference/depth.md +2 -2
  244. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +2 -2
  245. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +6 -6
  246. package/pack/generated/codex/agents/devrites-code-reviewer.toml +8 -4
  247. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +4 -3
  248. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +3 -3
  249. package/pack/generated/codex/agents/devrites-evidence-scout.toml +2 -1
  250. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +4 -3
  251. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +4 -4
  252. package/pack/generated/codex/agents/devrites-plan-drafter.toml +3 -1
  253. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +4 -4
  254. package/pack/generated/codex/agents/devrites-security-auditor.toml +3 -3
  255. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +4 -3
  256. package/pack/generated/codex/agents/devrites-slice-wright.toml +17 -8
  257. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +3 -3
  258. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +4 -5
  259. package/pack/generated/codex/agents/devrites-test-analyst.toml +6 -3
  260. package/pack/generated/codex/agents/fast-builder.toml +3 -1
  261. package/pack/generated/codex/agents/fast-checker.toml +2 -1
  262. package/pack/generated/codex/agents/fast-critic.toml +2 -1
  263. package/pack/generated/codex/agents/fast-planner.toml +2 -2
  264. package/pack/generated/codex/agents/overhaul-recon.toml +5 -4
  265. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -1
  266. package/pack/generated/codex/skills/devrites-audit/SKILL.md +1 -1
  267. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +1 -1
  268. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +5 -5
  269. package/pack/generated/codex/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  270. package/pack/generated/codex/skills/devrites-interview/SKILL.md +1 -1
  271. package/pack/generated/codex/skills/devrites-lib/SKILL.md +11 -6
  272. package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
  273. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
  274. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +2 -1
  275. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  276. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +43 -19
  277. package/pack/generated/codex/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
  278. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-index.md +111 -0
  279. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
  280. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
  281. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +14 -1
  282. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +1 -1
  283. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +10 -1
  284. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +4 -0
  285. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +3 -1
  286. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +9 -8
  287. package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +3 -2
  288. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  289. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
  290. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +1 -1
  291. package/pack/generated/codex/skills/overhaul/references/orchestration.md +3 -2
  292. package/pack/generated/codex/skills/rite/SKILL.md +1 -1
  293. package/pack/generated/codex/skills/rite-adopt/SKILL.md +1 -1
  294. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +1 -1
  295. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +5 -4
  296. package/pack/generated/codex/skills/rite-build/SKILL.md +4 -3
  297. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +2 -0
  298. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +4 -1
  299. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +2 -0
  300. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +1 -1
  301. package/pack/generated/codex/skills/rite-build/reference/output.md +2 -0
  302. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +22 -12
  303. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +13 -3
  304. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +42 -25
  305. package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
  306. package/pack/generated/codex/skills/rite-converge/SKILL.md +4 -4
  307. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +3 -3
  308. package/pack/generated/codex/skills/rite-define/SKILL.md +10 -5
  309. package/pack/generated/codex/skills/rite-doctor/SKILL.md +17 -2
  310. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +1 -1
  311. package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
  312. package/pack/generated/codex/skills/rite-explain/reference/intake.md +1 -1
  313. package/pack/generated/codex/skills/rite-fast/SKILL.md +1 -1
  314. package/pack/generated/codex/skills/rite-handoff/SKILL.md +3 -3
  315. package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +1 -1
  316. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -4
  317. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +3 -2
  318. package/pack/generated/codex/skills/rite-polish/SKILL.md +6 -3
  319. package/pack/generated/codex/skills/rite-prove/SKILL.md +1 -1
  320. package/pack/generated/codex/skills/rite-quick/SKILL.md +1 -1
  321. package/pack/generated/codex/skills/rite-resolve/SKILL.md +1 -1
  322. package/pack/generated/codex/skills/rite-review/SKILL.md +4 -4
  323. package/pack/generated/codex/skills/rite-seal/SKILL.md +2 -2
  324. package/pack/generated/codex/skills/rite-ship/SKILL.md +1 -1
  325. package/pack/generated/codex/skills/rite-spec/SKILL.md +1 -1
  326. package/pack/generated/codex/skills/rite-spec/reference/investigation.md +5 -5
  327. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +1 -1
  328. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +6 -4
  329. package/pack/generated/codex/skills/rite-status/SKILL.md +1 -1
  330. package/pack/generated/codex/skills/rite-temper/SKILL.md +1 -1
  331. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +2 -2
  332. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +2 -2
  333. package/pack/generated/codex/skills/rite-temper/reference/significance.md +2 -2
  334. package/pack/generated/codex/skills/rite-vet/SKILL.md +8 -4
  335. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +10 -3
  336. package/pack/generated/codex/skills/rite-vet/reference/depth.md +2 -2
  337. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +2 -2
  338. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +6 -6
  339. package/pack/generated/devin/agents/devrites-code-reviewer.md +8 -4
  340. package/pack/generated/devin/agents/devrites-devex-reviewer.md +4 -3
  341. package/pack/generated/devin/agents/devrites-doubt-reviewer.md +3 -3
  342. package/pack/generated/devin/agents/devrites-evidence-scout.md +2 -1
  343. package/pack/generated/devin/agents/devrites-frontend-reviewer.md +4 -3
  344. package/pack/generated/devin/agents/devrites-performance-reviewer.md +4 -4
  345. package/pack/generated/devin/agents/devrites-plan-drafter.md +3 -1
  346. package/pack/generated/devin/agents/devrites-plan-reviewer.md +4 -4
  347. package/pack/generated/devin/agents/devrites-security-auditor.md +3 -3
  348. package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +4 -3
  349. package/pack/generated/devin/agents/devrites-slice-wright.md +17 -8
  350. package/pack/generated/devin/agents/devrites-spec-reviewer.md +3 -3
  351. package/pack/generated/devin/agents/devrites-strategy-reviewer.md +4 -5
  352. package/pack/generated/devin/agents/devrites-test-analyst.md +6 -3
  353. package/pack/generated/devin/agents/fast-builder.md +3 -1
  354. package/pack/generated/devin/agents/fast-checker.md +2 -1
  355. package/pack/generated/devin/agents/fast-critic.md +2 -1
  356. package/pack/generated/devin/agents/fast-planner.md +2 -2
  357. package/pack/generated/devin/agents/overhaul-recon.md +5 -4
  358. package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +1 -1
  359. package/pack/generated/devin/skills/devrites-audit/SKILL.md +1 -1
  360. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +1 -1
  361. package/pack/generated/devin/skills/devrites-doubt/SKILL.md +5 -5
  362. package/pack/generated/devin/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  363. package/pack/generated/devin/skills/devrites-interview/SKILL.md +1 -1
  364. package/pack/generated/devin/skills/devrites-lib/SKILL.md +11 -6
  365. package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
  366. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
  367. package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +2 -1
  368. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  369. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +43 -19
  370. package/pack/generated/devin/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
  371. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-index.md +111 -0
  372. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
  373. package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
  374. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +14 -1
  375. package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +1 -1
  376. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +10 -1
  377. package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +4 -0
  378. package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +3 -1
  379. package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +9 -8
  380. package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +3 -2
  381. package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  382. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
  383. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +1 -1
  384. package/pack/generated/devin/skills/overhaul/references/orchestration.md +3 -2
  385. package/pack/generated/devin/skills/rite/SKILL.md +1 -1
  386. package/pack/generated/devin/skills/rite-adopt/SKILL.md +1 -1
  387. package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +1 -1
  388. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +5 -4
  389. package/pack/generated/devin/skills/rite-build/SKILL.md +4 -3
  390. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +2 -0
  391. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +4 -1
  392. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +2 -0
  393. package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +1 -1
  394. package/pack/generated/devin/skills/rite-build/reference/output.md +2 -0
  395. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +22 -12
  396. package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +13 -3
  397. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +42 -25
  398. package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
  399. package/pack/generated/devin/skills/rite-converge/SKILL.md +4 -4
  400. package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +3 -3
  401. package/pack/generated/devin/skills/rite-define/SKILL.md +10 -5
  402. package/pack/generated/devin/skills/rite-doctor/SKILL.md +17 -2
  403. package/pack/generated/devin/skills/rite-dogfood/SKILL.md +1 -1
  404. package/pack/generated/devin/skills/rite-explain/SKILL.md +1 -1
  405. package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
  406. package/pack/generated/devin/skills/rite-fast/SKILL.md +1 -1
  407. package/pack/generated/devin/skills/rite-handoff/SKILL.md +3 -3
  408. package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +1 -1
  409. package/pack/generated/devin/skills/rite-plan/SKILL.md +4 -4
  410. package/pack/generated/devin/skills/rite-plan/reference/slicing.md +3 -2
  411. package/pack/generated/devin/skills/rite-polish/SKILL.md +6 -3
  412. package/pack/generated/devin/skills/rite-prove/SKILL.md +1 -1
  413. package/pack/generated/devin/skills/rite-quick/SKILL.md +1 -1
  414. package/pack/generated/devin/skills/rite-resolve/SKILL.md +1 -1
  415. package/pack/generated/devin/skills/rite-review/SKILL.md +4 -4
  416. package/pack/generated/devin/skills/rite-seal/SKILL.md +2 -2
  417. package/pack/generated/devin/skills/rite-ship/SKILL.md +1 -1
  418. package/pack/generated/devin/skills/rite-spec/SKILL.md +1 -1
  419. package/pack/generated/devin/skills/rite-spec/reference/investigation.md +5 -5
  420. package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +1 -1
  421. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +6 -4
  422. package/pack/generated/devin/skills/rite-status/SKILL.md +1 -1
  423. package/pack/generated/devin/skills/rite-temper/SKILL.md +1 -1
  424. package/pack/generated/devin/skills/rite-temper/reference/review-dimensions.md +2 -2
  425. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +2 -2
  426. package/pack/generated/devin/skills/rite-temper/reference/significance.md +2 -2
  427. package/pack/generated/devin/skills/rite-vet/SKILL.md +8 -4
  428. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +10 -3
  429. package/pack/generated/devin/skills/rite-vet/reference/depth.md +2 -2
  430. package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +2 -2
  431. package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +6 -6
  432. package/pack/generated/omp/agents/devrites-code-reviewer.md +9 -5
  433. package/pack/generated/omp/agents/devrites-devex-reviewer.md +5 -4
  434. package/pack/generated/omp/agents/devrites-doubt-reviewer.md +4 -4
  435. package/pack/generated/omp/agents/devrites-evidence-scout.md +3 -2
  436. package/pack/generated/omp/agents/devrites-frontend-reviewer.md +5 -4
  437. package/pack/generated/omp/agents/devrites-performance-reviewer.md +5 -5
  438. package/pack/generated/omp/agents/devrites-plan-drafter.md +4 -2
  439. package/pack/generated/omp/agents/devrites-plan-reviewer.md +5 -5
  440. package/pack/generated/omp/agents/devrites-proof-runner.md +1 -1
  441. package/pack/generated/omp/agents/devrites-retrospector.md +1 -1
  442. package/pack/generated/omp/agents/devrites-security-auditor.md +4 -4
  443. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +5 -4
  444. package/pack/generated/omp/agents/devrites-slice-wright.md +18 -9
  445. package/pack/generated/omp/agents/devrites-spec-reviewer.md +4 -4
  446. package/pack/generated/omp/agents/devrites-strategy-reviewer.md +5 -6
  447. package/pack/generated/omp/agents/devrites-test-analyst.md +7 -4
  448. package/pack/generated/omp/agents/devrites-upgrade-planner.md +1 -1
  449. package/pack/generated/omp/agents/fast-builder.md +4 -2
  450. package/pack/generated/omp/agents/fast-checker.md +3 -2
  451. package/pack/generated/omp/agents/fast-critic.md +3 -2
  452. package/pack/generated/omp/agents/fast-planner.md +3 -3
  453. package/pack/generated/omp/agents/overhaul-backend-engineer.md +1 -1
  454. package/pack/generated/omp/agents/overhaul-boundary.md +1 -1
  455. package/pack/generated/omp/agents/overhaul-craft.md +1 -1
  456. package/pack/generated/omp/agents/overhaul-frontend-engineer.md +1 -1
  457. package/pack/generated/omp/agents/overhaul-implementer.md +1 -1
  458. package/pack/generated/omp/agents/overhaul-recon.md +6 -5
  459. package/pack/generated/omp/agents/overhaul-specialist.md +1 -1
  460. package/pack/generated/omp/agents/overhaul-verifier.md +1 -1
  461. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +1 -1
  462. package/pack/generated/omp/skills/devrites-audit/SKILL.md +1 -1
  463. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +1 -1
  464. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +5 -5
  465. package/pack/generated/omp/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  466. package/pack/generated/omp/skills/devrites-interview/SKILL.md +1 -1
  467. package/pack/generated/omp/skills/devrites-lib/SKILL.md +11 -6
  468. package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
  469. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
  470. package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +2 -1
  471. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  472. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +43 -19
  473. package/pack/generated/omp/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
  474. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-index.md +111 -0
  475. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
  476. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
  477. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +14 -1
  478. package/pack/generated/omp/skills/devrites-lib/reference/standards/deprecation.md +1 -1
  479. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +10 -1
  480. package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +4 -0
  481. package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +3 -1
  482. package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +9 -8
  483. package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +3 -2
  484. package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  485. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
  486. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +1 -1
  487. package/pack/generated/omp/skills/overhaul/references/orchestration.md +3 -2
  488. package/pack/generated/omp/skills/rite/SKILL.md +1 -1
  489. package/pack/generated/omp/skills/rite-adopt/SKILL.md +1 -1
  490. package/pack/generated/omp/skills/rite-adopt/reference/adoption.md +1 -1
  491. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +5 -4
  492. package/pack/generated/omp/skills/rite-build/SKILL.md +4 -3
  493. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +2 -0
  494. package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +4 -1
  495. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +2 -0
  496. package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +1 -1
  497. package/pack/generated/omp/skills/rite-build/reference/output.md +2 -0
  498. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +22 -12
  499. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +13 -3
  500. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +42 -25
  501. package/pack/generated/omp/skills/rite-clarify/SKILL.md +1 -1
  502. package/pack/generated/omp/skills/rite-converge/SKILL.md +4 -4
  503. package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +3 -3
  504. package/pack/generated/omp/skills/rite-define/SKILL.md +10 -5
  505. package/pack/generated/omp/skills/rite-doctor/SKILL.md +17 -2
  506. package/pack/generated/omp/skills/rite-dogfood/SKILL.md +1 -1
  507. package/pack/generated/omp/skills/rite-explain/SKILL.md +1 -1
  508. package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
  509. package/pack/generated/omp/skills/rite-fast/SKILL.md +1 -1
  510. package/pack/generated/omp/skills/rite-handoff/SKILL.md +3 -3
  511. package/pack/generated/omp/skills/rite-handoff/reference/handoff-template.md +1 -1
  512. package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -4
  513. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +3 -2
  514. package/pack/generated/omp/skills/rite-polish/SKILL.md +6 -3
  515. package/pack/generated/omp/skills/rite-prove/SKILL.md +1 -1
  516. package/pack/generated/omp/skills/rite-quick/SKILL.md +1 -1
  517. package/pack/generated/omp/skills/rite-resolve/SKILL.md +1 -1
  518. package/pack/generated/omp/skills/rite-review/SKILL.md +4 -4
  519. package/pack/generated/omp/skills/rite-seal/SKILL.md +2 -2
  520. package/pack/generated/omp/skills/rite-ship/SKILL.md +1 -1
  521. package/pack/generated/omp/skills/rite-spec/SKILL.md +1 -1
  522. package/pack/generated/omp/skills/rite-spec/reference/investigation.md +5 -5
  523. package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +1 -1
  524. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +6 -4
  525. package/pack/generated/omp/skills/rite-status/SKILL.md +1 -1
  526. package/pack/generated/omp/skills/rite-temper/SKILL.md +1 -1
  527. package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +2 -2
  528. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +2 -2
  529. package/pack/generated/omp/skills/rite-temper/reference/significance.md +2 -2
  530. package/pack/generated/omp/skills/rite-vet/SKILL.md +8 -4
  531. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +10 -3
  532. package/pack/generated/omp/skills/rite-vet/reference/depth.md +2 -2
  533. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +2 -2
  534. package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +6 -6
  535. package/pack/generated/pi/agents/devrites-code-reviewer.md +9 -5
  536. package/pack/generated/pi/agents/devrites-devex-reviewer.md +5 -4
  537. package/pack/generated/pi/agents/devrites-doubt-reviewer.md +4 -4
  538. package/pack/generated/pi/agents/devrites-evidence-scout.md +3 -2
  539. package/pack/generated/pi/agents/devrites-frontend-reviewer.md +5 -4
  540. package/pack/generated/pi/agents/devrites-performance-reviewer.md +5 -5
  541. package/pack/generated/pi/agents/devrites-plan-drafter.md +4 -2
  542. package/pack/generated/pi/agents/devrites-plan-reviewer.md +5 -5
  543. package/pack/generated/pi/agents/devrites-proof-runner.md +1 -1
  544. package/pack/generated/pi/agents/devrites-retrospector.md +1 -1
  545. package/pack/generated/pi/agents/devrites-security-auditor.md +4 -4
  546. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +5 -4
  547. package/pack/generated/pi/agents/devrites-slice-wright.md +18 -9
  548. package/pack/generated/pi/agents/devrites-spec-reviewer.md +4 -4
  549. package/pack/generated/pi/agents/devrites-strategy-reviewer.md +5 -6
  550. package/pack/generated/pi/agents/devrites-test-analyst.md +7 -4
  551. package/pack/generated/pi/agents/devrites-upgrade-planner.md +1 -1
  552. package/pack/generated/pi/agents/fast-builder.md +4 -2
  553. package/pack/generated/pi/agents/fast-checker.md +3 -2
  554. package/pack/generated/pi/agents/fast-critic.md +3 -2
  555. package/pack/generated/pi/agents/fast-planner.md +3 -3
  556. package/pack/generated/pi/agents/overhaul-backend-engineer.md +1 -1
  557. package/pack/generated/pi/agents/overhaul-boundary.md +1 -1
  558. package/pack/generated/pi/agents/overhaul-craft.md +1 -1
  559. package/pack/generated/pi/agents/overhaul-frontend-engineer.md +1 -1
  560. package/pack/generated/pi/agents/overhaul-implementer.md +1 -1
  561. package/pack/generated/pi/agents/overhaul-recon.md +6 -5
  562. package/pack/generated/pi/agents/overhaul-specialist.md +1 -1
  563. package/pack/generated/pi/agents/overhaul-verifier.md +1 -1
  564. package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +1 -1
  565. package/pack/generated/pi/skills/devrites-audit/SKILL.md +1 -1
  566. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +1 -1
  567. package/pack/generated/pi/skills/devrites-doubt/SKILL.md +5 -5
  568. package/pack/generated/pi/skills/devrites-frontend-craft/reference/reuse-first.md +3 -3
  569. package/pack/generated/pi/skills/devrites-interview/SKILL.md +1 -1
  570. package/pack/generated/pi/skills/devrites-lib/SKILL.md +11 -6
  571. package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +2 -0
  572. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +25 -14
  573. package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +2 -1
  574. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  575. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +43 -19
  576. package/pack/generated/pi/skills/devrites-lib/reference/standards/architecture-health.md +1 -1
  577. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-index.md +111 -0
  578. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +13 -63
  579. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +8 -9
  580. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +14 -1
  581. package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +1 -1
  582. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +10 -1
  583. package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +4 -0
  584. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +3 -1
  585. package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +9 -8
  586. package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +3 -2
  587. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  588. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +16 -16
  589. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +1 -1
  590. package/pack/generated/pi/skills/overhaul/references/orchestration.md +3 -2
  591. package/pack/generated/pi/skills/rite/SKILL.md +1 -1
  592. package/pack/generated/pi/skills/rite-adopt/SKILL.md +1 -1
  593. package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +1 -1
  594. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +5 -4
  595. package/pack/generated/pi/skills/rite-build/SKILL.md +4 -3
  596. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +2 -0
  597. package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +4 -1
  598. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +2 -0
  599. package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +1 -1
  600. package/pack/generated/pi/skills/rite-build/reference/output.md +2 -0
  601. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +22 -12
  602. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +13 -3
  603. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +42 -25
  604. package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
  605. package/pack/generated/pi/skills/rite-converge/SKILL.md +4 -4
  606. package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +3 -3
  607. package/pack/generated/pi/skills/rite-define/SKILL.md +10 -5
  608. package/pack/generated/pi/skills/rite-doctor/SKILL.md +17 -2
  609. package/pack/generated/pi/skills/rite-dogfood/SKILL.md +1 -1
  610. package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
  611. package/pack/generated/pi/skills/rite-explain/reference/intake.md +1 -1
  612. package/pack/generated/pi/skills/rite-fast/SKILL.md +1 -1
  613. package/pack/generated/pi/skills/rite-handoff/SKILL.md +3 -3
  614. package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +1 -1
  615. package/pack/generated/pi/skills/rite-plan/SKILL.md +4 -4
  616. package/pack/generated/pi/skills/rite-plan/reference/slicing.md +3 -2
  617. package/pack/generated/pi/skills/rite-polish/SKILL.md +6 -3
  618. package/pack/generated/pi/skills/rite-prove/SKILL.md +1 -1
  619. package/pack/generated/pi/skills/rite-quick/SKILL.md +1 -1
  620. package/pack/generated/pi/skills/rite-resolve/SKILL.md +1 -1
  621. package/pack/generated/pi/skills/rite-review/SKILL.md +4 -4
  622. package/pack/generated/pi/skills/rite-seal/SKILL.md +2 -2
  623. package/pack/generated/pi/skills/rite-ship/SKILL.md +1 -1
  624. package/pack/generated/pi/skills/rite-spec/SKILL.md +1 -1
  625. package/pack/generated/pi/skills/rite-spec/reference/investigation.md +5 -5
  626. package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +1 -1
  627. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +6 -4
  628. package/pack/generated/pi/skills/rite-status/SKILL.md +1 -1
  629. package/pack/generated/pi/skills/rite-temper/SKILL.md +1 -1
  630. package/pack/generated/pi/skills/rite-temper/reference/review-dimensions.md +2 -2
  631. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +2 -2
  632. package/pack/generated/pi/skills/rite-temper/reference/significance.md +2 -2
  633. package/pack/generated/pi/skills/rite-vet/SKILL.md +8 -4
  634. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +10 -3
  635. package/pack/generated/pi/skills/rite-vet/reference/depth.md +2 -2
  636. package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +2 -2
  637. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +6 -6
  638. package/package.json +1 -1
  639. package/scripts/build-host-artifacts.sh +5 -4
  640. package/scripts/omp-generate.sh +3 -12
  641. package/scripts/pi-generate.sh +5 -51
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
4
4
 
5
+ ## [7.0.0](https://github.com/ViktorsBaikers/DevRites/compare/v6.10.0...v7.0.0) (2026-10-20)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * **devrites:** a timed-out gate keeps the output it printed
10
+
11
+ ### Added
12
+
13
+ * **no-release:** make codebase-memory-mcp the one code index ([#142](https://github.com/ViktorsBaikers/DevRites/issues/142)) ([d269904](https://github.com/ViktorsBaikers/DevRites/commit/d269904f8107bb5e669264bf53865ce070e4fa0a))
14
+ * **no-release:** measure cost and reviewer yield before speed changes ([#145](https://github.com/ViktorsBaikers/DevRites/issues/145)) ([14742aa](https://github.com/ViktorsBaikers/DevRites/commit/14742aa68a0885a27902f06ea88c2316d7f55c65))
15
+ * **no-release:** move root bookkeeping into the engine, check at Vet ([#147](https://github.com/ViktorsBaikers/DevRites/issues/147)) ([99bdbc8](https://github.com/ViktorsBaikers/DevRites/commit/99bdbc8d820491cef2e580b184d26173c558753d))
16
+ * **no-release:** state writers, fewer AFK stops, lifecycle benchmark ([#143](https://github.com/ViktorsBaikers/DevRites/issues/143)) ([c6d4f29](https://github.com/ViktorsBaikers/DevRites/commit/c6d4f29aa340bce2b72577cc36f6f19296afe5df))
17
+ * **no-release:** trim leaf context bundles without dropping rules ([#146](https://github.com/ViktorsBaikers/DevRites/issues/146)) ([61fab54](https://github.com/ViktorsBaikers/DevRites/commit/61fab546701f9387dcab5a58171303c8e71aba90))
18
+
19
+ ### Fixed
20
+
21
+ * **devrites:** a timed-out gate keeps the output it printed ([903c276](https://github.com/ViktorsBaikers/DevRites/commit/903c2762e31d6d97c32564ff028016919935e022))
22
+ * **no-release:** a plan item is never a Proportionality anchor ([#144](https://github.com/ViktorsBaikers/DevRites/issues/144)) ([722ace6](https://github.com/ViktorsBaikers/DevRites/commit/722ace6ee42bc82c2d2d7bb76ca955445655a9be))
23
+
5
24
  ## [6.10.0](https://github.com/ViktorsBaikers/DevRites/compare/v6.9.6...v6.10.0) (2026-10-19)
6
25
 
7
26
  ### Added
package/README.md CHANGED
@@ -31,7 +31,7 @@ history can't lose it. After you clear the conversation, switch hosts, or hand
31
31
  the feature to another engineer, the next session reads the same plan,
32
32
  decisions, and evidence before it continues.
33
33
 
34
- **Status:** [`v6.10.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v6.10.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
34
+ **Status:** [`v7.0.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v7.0.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
35
35
 
36
36
  This is the latest published release; `main` may contain unreleased work.
37
37
 
@@ -442,7 +442,10 @@ prints the setting to add. Once you edit one the installer created, it is
442
442
  yours: update, uninstall, and `--force` leave it in place. On Devin CLI, dispatch goes through
443
443
  `run_subagent` with the exact `devrites-<role>` profile, and a missing profile
444
444
  stops for HITL instead of substituting `subagent_general`. Profiles load when a
445
- session starts, so reopen the project after installing.
445
+ session starts, so reopen the project after installing. pi-subagents refuses a
446
+ child whose `tools:` names a tool it cannot load, so pi agents list only Pi's
447
+ built-in tools; grant extension tools on one machine with
448
+ `subagents.agentOverrides.<agent>.tools` in Pi settings.
446
449
 
447
450
  DevRites is installed through npm or the Bash bootstrap. It is not distributed
448
451
  through Claude Code or Codex plugin stores.
@@ -484,8 +487,9 @@ and, when performance is measurable, targets LCP ≤ 2.5 s, INP ≤ 200 ms, and
484
487
  CLS ≤ 0.1. Full-stack work starts with the API and data contract, then builds
485
488
  a vertical slice through the UI.
486
489
 
487
- DevRites works without extra tools. When available, codegraph or graphify can
488
- answer structural questions,
490
+ DevRites works without extra tools. When available,
491
+ [codebase-memory-mcp](https://github.com/DeusData/codebase-memory-mcp) answers
492
+ structural questions (callers, blast radius, diff impact),
489
493
  [ego-lite](https://github.com/citrolabs/ego-lite), browser-harness, or
490
494
  [Playwright MCP](https://github.com/microsoft/playwright-mcp) can collect
491
495
  browser evidence (tried in that order), and Chrome DevTools MCP can add Lighthouse and performance
package/SECURITY.md CHANGED
@@ -214,7 +214,7 @@ Unrelated Git variables are preserved. Go and shell parity is covered by
214
214
  DevRites vendors no third-party code (see `NOTICE.md`). It runs through the
215
215
  external host selected by the user (Claude Code, Codex, omp, pi, or Devin CLI)
216
216
  and is independent of, and not affiliated with or endorsed by, any of these
217
- hosts or their makers. Codegraph, graphify, ego-lite, browser-harness, and
217
+ hosts or their makers. codebase-memory-mcp, ego-lite, browser-harness, and
218
218
  Playwright MCP are optional user-selected tools that DevRites calls through
219
219
  their documented interfaces rather than bundling them.
220
220
 
@@ -0,0 +1,67 @@
1
+ # ADR-0038: The engine flags unattributed root edits
2
+
3
+ - **Status:** Accepted
4
+ - **Date:** 2026-10-20
5
+ - **Narrows:** the ADR-0018 clause "There is no compatibility command or replacement enforcement layer", for root-edit attribution only
6
+
7
+ ## Context
8
+
9
+ ADR-0018 made the root's read-only rule and the wright's exact-path scope
10
+ instruction-backed and removed the engine's Git-backed reconcile window. ADR-0035
11
+ then took the Claude root out of plan mode, so no host now has a technical guard on
12
+ root edits. `check diff-scope` runs only when a wright returns and checks only that
13
+ wright's allowlist: it blames the wright for a root edit, and it never sees an edit
14
+ made after a slice's last wright.
15
+
16
+ In four `/rite-autocomplete` sessions on a downstream project, the root made 34
17
+ successful product edits outside `.devrites/`, and 33 of them had no open claim.
18
+ One deleted file was first taken for owner work. Fixing that cost an owner
19
+ decision, a restore wright, and a dropped workaround.
20
+
21
+ ## Decision
22
+
23
+ - The engine keeps `<feature>/tree-baseline.json`: dirty product paths (git
24
+ status, outside `.devrites/` and `.scratch/`; gitignored files never appear)
25
+ mapped to the `check diff-scope` fingerprint. The first `dispatch open` writes
26
+ it, and that dirt counts as accepted user work. The return that completes a
27
+ wright wave, in any phase, takes in the wave's slice write sets and claim paths. Paths
28
+ that are no longer dirty keep their recorded fingerprint, so collapsing a
29
+ checkpoint commit back into the work tree flags nothing.
30
+ - `dispatch open`, `next` and `check candidate` exit `3` when a dirty product
31
+ path has a fingerprint that differs from the baseline and no live claim or
32
+ in-flight wright wave covers it. The message names the paths and both
33
+ remedies. Each finding writes an `unattributed-edit` row to `metrics.jsonl`.
34
+ - Remedies need no human stop. The root routes the path through a bounded
35
+ wright: a wright wave (Build or Polish) whose `--claim` or slice write set
36
+ names the path may open. When the evidence shows owner work, gate output, a
37
+ returned wright outside a dispatch wave, or a protocol-sanctioned root write
38
+ (Polish ADR promotion, `DESIGN.md`), the root records
39
+ it with `dispatch <slug> attribute --reason <evidence> --path <path>`, which
40
+ logs the reason and takes the path into the baseline.
41
+ - The engine never reverts, restores, or deletes a file.
42
+ - A workspace without `tree-baseline.json`, a root that is not a project's
43
+ `.devrites/`, or a project outside git is never blocked.
44
+ - No hook and no private Git ref; the tripwire takes no Git snapshot (the
45
+ ref-free tree object that `check windows --since-dispatch` records per build
46
+ wright wave is a separate read aid). Exact-path wright scope stays
47
+ instruction-backed plus `check diff-scope`, as ADR-0018 decided.
48
+
49
+ ## Alternatives considered
50
+
51
+ | Option | Why not |
52
+ |---|---|
53
+ | PreToolUse hook on root edits | The measured failures ran on a host the hook would not cover. Hooks bring back the payload coupling that ADR-0015 and ADR-0018 removed, and ADR-0016 found child hooks bypassed. |
54
+ | Git-backed snapshot refs | ADR-0018 removed private Git snapshot state. Workspace JSON plus `git status` reads are enough. |
55
+ | Engine restores flagged paths | It cannot tell owner work from root edits, so a restore could destroy owner work. |
56
+ | Keep instructions only | The downstream evidence shows the instruction alone does not hold on an autocomplete root. |
57
+
58
+ ## Consequences
59
+
60
+ - A root edit is flagged at the root's next `dispatch open`, `next` or `check
61
+ candidate`, not first at seal or by a later session.
62
+ - Known limit: while a wright runs, the engine cannot tell a root edit from a
63
+ wright edit on a path that wright owns. It also cannot tell owner edits from
64
+ root edits. Hence the attribution remedy, never a revert.
65
+ - A root commit that bypasses the checkpoint protocol hides an edit from the
66
+ tripwire. Review and seal still read the full diff.
67
+ - `engine/internal/lib/treebaseline_test.go` guards the decision.
@@ -63,7 +63,7 @@ architecture; per-feature `decisions.md` files stay scoped to that feature.
63
63
  | [0015](0015-read-only-root-native-orchestration.md) | Read-only root with native host orchestration | Accepted; Codex root/writer clauses superseded by 0017; exact-path/hook/reconcile clauses superseded by 0018; Claude root plan mode superseded by 0035 | `engine/internal/install/install_test.go`, `tests/codex-agent-generation-test.sh` |
64
64
  | [0016](0016-codex-writer-fail-closed.md) | Codex source writing fails closed | Superseded by 0017 | historical |
65
65
  | [0017](0017-native-codex-writer-agent.md) | Native Codex writer-agent execution | Accepted; exact-path/reconcile clauses superseded by 0018; Claude root plan mode superseded by 0035 | `tests/codex-agent-generation-test.sh`, `tests/codex-generator-test.sh`, `tests/codex-runtime-smoke.sh` |
66
- | [0018](0018-native-sandbox-instruction-writer-boundary.md) | Native sandbox and instruction writer boundary | Accepted in part; native sandbox/writer boundary retained, superseded clauses resolved by 0022 | `engine/internal/install/install_test.go`, `tests/codex-agent-generation-test.sh` |
66
+ | [0018](0018-native-sandbox-instruction-writer-boundary.md) | Native sandbox and instruction writer boundary | Accepted in part; native sandbox/writer boundary retained, superseded clauses resolved by 0022; no-replacement-enforcement clause narrowed by 0038 for root-edit attribution; ref-free per-wave tree snapshot for `check windows --since-dispatch` | `engine/internal/install/install_test.go`, `tests/codex-agent-generation-test.sh` |
67
67
  | [0019](0019-native-boundary-with-deterministic-gates.md) | Native boundary with deterministic gates | Accepted in part; semantic gates superseded by 0022, native writer and fresh approval retained | `engine/internal/gate/gate_test.go` |
68
68
  | [0020](0020-thin-engine-native-orchestration-boundary.md) | Thin engine and native host orchestration | Accepted in part; engine-surface/migration scope superseded by 0022, native orchestration retained | `tests/native-orchestration-contract-test.sh`, `engine/root_routing_test.go` |
69
69
  | [0021](0021-observable-workspace-compatibility.md) | Observable and reversible workspace compatibility | Superseded by 0022 | historical |
@@ -83,3 +83,4 @@ architecture; per-feature `decisions.md` files stay scoped to that feature.
83
83
  | [0035](0035-claude-root-leaves-plan-mode.md) | The Claude root no longer runs in plan mode | Accepted; supersedes the Claude root plan-mode clauses of 0015/0017 | `tests/native-orchestration-contract-test.sh`, `engine/internal/install/install_test.go` |
84
84
  | [0036](0036-archive-recall-is-a-read-time-query.md) | Archive recall is a read-time query | Accepted; consistent with 0014/0022 (no engine index or store) | `engine/internal/lib/recall_test.go` |
85
85
  | [0037](0037-autocomplete-lands-local-checkpoints.md) | Autocomplete lands local checkpoints and self-resolves own scratch | Accepted; supersedes the ADR-0022 local-commit approval clause | `tests/authority-drift-test.sh` |
86
+ | [0038](0038-engine-flags-unattributed-root-edits.md) | The engine flags unattributed root edits | Accepted; narrows the ADR-0018 no-replacement-enforcement clause for root-edit attribution | `engine/internal/lib/treebaseline_test.go` |
package/docs/cli.md CHANGED
@@ -22,14 +22,17 @@ devrites-engine uninstall [flags]
22
22
  devrites-engine check candidate <slug>
23
23
  devrites-engine check readiness <slug>
24
24
  devrites-engine check readiness --emit-binding <slug>
25
+ devrites-engine check preconditions <slug> [--slice SLICE-###] [--timeout N]
25
26
  devrites-engine check seal <slug>
26
27
  devrites-engine check slice <slug> <SLICE-ID>
27
- devrites-engine check diff-scope <slug> --allow <csv>|--allow-file <path>
28
+ devrites-engine check diff-scope <slug> --allow <csv>|--allow-file <path> [--worktree|--staged|--base <ref>] [--snapshot|--baseline] [--verbose]
29
+ devrites-engine check perturb <slug> --patch <file> --expect <test-name> --gate <G-ID> [--timeout N]
28
30
  devrites-engine check task-graph <slug>
29
31
  devrites-engine check regression <slug> [--update]
30
32
  devrites-engine check drift <slug> [--record]
31
- devrites-engine check windows <slug> [--worktree|--staged|--base <ref>]
33
+ devrites-engine check windows <slug> [--worktree|--staged|--base <ref>|--since-dispatch <wave>]
32
34
  devrites-engine check dup [slug] [--all|--worktree|--staged|--base <ref>]
35
+ devrites-engine check anchors <slug> <return-file> [--skills-root <dir>]
33
36
  devrites-engine check skill-trust <path>
34
37
  devrites-engine check path-disjoint [<json-file>|-]
35
38
  devrites-engine check indexes [--root <dir>]
@@ -39,12 +42,14 @@ devrites-engine observe summary <slug>
39
42
  devrites-engine orient <slug>
40
43
  devrites-engine observe slice <slug> <SLICE-ID>
41
44
  devrites-engine next [slug]
42
- devrites-engine handoff [slug]
45
+ devrites-engine handoff [slug] [--resume]
43
46
  devrites-engine recall --paths <p1,p2,...> [--limit n]
44
- devrites-engine context [slug] (--phase <p>|--skill <name>) [--role <r>]
47
+ devrites-engine context [slug] (--phase <p>|--skill <name>) [--role <r>] [--whole]
45
48
  devrites-engine metrics record <slug> --phase <p> --event <e>
46
49
  devrites-engine metrics summary [slug]
47
- devrites-engine dispatch <slug> <open|start|seal|return|status|abandon>
50
+ devrites-engine dispatch <slug> <open|start|seal|return|status|abandon|attribute>
51
+ devrites-engine candidate freeze <slug> --wave <w> (--slice <SLICE-ID>|--paths <path>...) [--base <ref>]
52
+ devrites-engine packet <slug> --wave <w> --phase <p> --role <r> [--slice <SLICE-ID>] [--recheck] [--checks <G-ID,...>] [--focus <file>]
48
53
  devrites-engine parallel <subcommand>
49
54
  devrites-engine gates <subcommand> <slug>
50
55
  devrites-engine claim <add|release|list|check>
@@ -120,6 +125,9 @@ self-contained updater.
120
125
  once `eng-review.md` is required, its exact stable Build-input binding.
121
126
  - `check readiness --emit-binding <slug>` renders the exact stable Build-input
122
127
  binding for Vet to record after semantic review.
128
+ - `check preconditions <slug>` runs the preflight rows whose `Run at` is `vet`
129
+ (`--slice <SLICE>` runs that slice's `pre-dispatch` rows) and records a
130
+ candidate-bound transcript per row; exit 3 on failure.
123
131
  - `check seal <slug>` checks final required files, open human gates, and the
124
132
  `tasks.md` slice graph. Once those files are complete, it verifies the stable
125
133
  readiness binding; only after that aggregate check passes does it verify that
@@ -150,6 +158,9 @@ self-contained updater.
150
158
  Read-only: nothing is installed or executed. Skills use it to cite real
151
159
  commands in `gates.md` `CHECK` lines and proof steps instead of invented
152
160
  ones; unresolved slots print `unresolved` rather than guessing.
161
+ - `check anchors <slug> <return-file>` anchors each Critical/Important row's
162
+ quote at its cited `file:line` and its `breaks` quote; Unverified or Deferred
163
+ rows exit `3` and never drive a repair round.
153
164
  - `check dup [slug] [--all|--worktree|--staged|--base <ref>]` reports advisory
154
165
  near-duplicate code clusters that survive comment stripping, literal
155
166
  collapsing, and identifier renaming. Diff modes mark units overlapping
@@ -209,7 +220,9 @@ or CI.
209
220
  `gates` operates the `gates.md` ledger inside a feature workspace: one gate per
210
221
  required outcome, runnable (`CHECK`+`EXPECT`, optional `CWD`) or manual
211
222
  (`EVIDENCE` only). Subcommands: `scaffold`, `status`, `run`, `reverify`,
212
- `lint`, `attest <id> <note>`, `abandon <id> <why>`.
223
+ `lint`, `precheck --worktree <path>` (the wright's pre-return run of `RUN: writer`
224
+ gates and `check windows`; writes no ledger, EVIDENCE line or transcript, though `check windows` still logs its metric; never evidence), `attest <id> <note>`,
225
+ `abandon <id> <why>`.
213
226
 
214
227
  A runnable gate executes only when its `(CHECK, CWD)` pair exactly matches a
215
228
  `test-plan.md` `## Build-entry preflight` row. Passing writes
@@ -41,11 +41,11 @@ The Go surface is intentionally closed and deterministic:
41
41
 
42
42
  | Lane | Commands | Owner |
43
43
  |---|---|---|
44
- | Candidate and deterministic checks | `check candidate`, `check readiness [--emit-binding]`, `check seal`, `check slice <slug> <SLICE-ID>`, `check task-graph`, `check regression <slug> [--update]`, `check drift <slug> [--record]`, `check windows <slug>`, `check dup`, `check path-disjoint`, `parallel select`, `check skill-trust`, `check indexes`, `detect commands [--root <dir>] [--json]` | Candidate validates/hashes the strict project manifest; readiness checks phase files, the required `tasks.md` slice graph, or emits the vetted Build-input binding; seal checks final files/open gates, that graph and binding, then exact candidate bindings. `check slice` preflights one slice before wright dispatch — contract present, exact Writer allowlist paths, `Satisfies` AC ids resolvable, bounded scope — so a malformed slice fails before a writer context is spent. `check indexes` reports install manifest and optional code-index directory presence as JSON. `parallel select` returns the greedy path-disjoint subset ≤ cap from the supplied ready slices. `check regression` compares current workspace progress against the durable `regression-baseline.json` high-water mark and `--update` ratchets it at a checkpoint, so a lost slice, unchecked criterion, or reopened question fails closed instead of passing silently. `check windows` scans the feature diff for newly introduced deferral markers (TODO/FIXME/skipped test/stub idioms) and fails when any lacks a `windows.md` waiver row — silent deferrals block the seal. `check dup` reports advisory near-duplicate clusters that survive renaming (normalized token shingles, transitive clusters, distance-boosted rank, `*`-marked diff overlap, stable content hashes, `.devrites/dup-ignore` dismissal ledger) — leads for reviewer triage, never a gate. `check drift` attributes readiness-input drift to the exact artifact: `--record` snapshots per-input SHA-256 digests into `readiness-inputs.json` under the feature lock, and a later compare names each `changed`/`missing`/`added` input (falling back to the aggregate `eng-review.md` binding plus mtime candidates when no baseline exists) so a stale-binding repair starts at the right file — advisory, never a gate. `detect commands` resolves the repository's own test/lint/vet/build commands (Makefile targets, then `package.json` scripts, then language-manifest fallbacks, plus the lockfile-derived package manager) so `gates.md` `CHECK` lines and proof steps cite real wiring instead of invented commands — read-only, no installs, no execution. |
44
+ | Candidate and deterministic checks | `check candidate`, `check readiness [--emit-binding]`, `check preconditions <slug> [--slice <SLICE-ID>]`, `check seal`, `check slice <slug> <SLICE-ID>`, `check task-graph`, `check regression <slug> [--update]`, `check drift <slug> [--record]`, `check windows <slug>`, `check dup`, `check path-disjoint`, `parallel select`, `check skill-trust`, `check indexes`, `detect commands [--root <dir>] [--json]` | Candidate validates/hashes the strict project manifest; readiness checks phase files, the required `tasks.md` slice graph, or emits the vetted Build-input binding; `check preconditions` runs the `test-plan.md` preflight rows whose `Run at` is `vet` (or `pre-dispatch <SLICE>`) with candidate-bound transcripts; seal checks final files/open gates, that graph and binding, then exact candidate bindings. `check slice` preflights one slice before wright dispatch — contract present, exact Writer allowlist paths, `Satisfies` AC ids resolvable, bounded scope — so a malformed slice fails before a writer context is spent. `check indexes` reports install manifest and optional code-index directory presence as JSON. `parallel select` returns the greedy path-disjoint subset ≤ cap from the supplied ready slices, or with `--from-plan` from tasks.md slices whose dependencies state.md checks built. `check regression` compares current workspace progress against the durable `regression-baseline.json` high-water mark and `--update` ratchets it at a checkpoint, so a lost slice, unchecked criterion, or reopened question fails closed instead of passing silently. `check windows` scans the feature diff for newly introduced deferral markers (TODO/FIXME/skipped test/stub idioms) and fails when any lacks a `windows.md` waiver row — silent deferrals block the seal. `check dup` reports advisory near-duplicate clusters that survive renaming (normalized token shingles, transitive clusters, distance-boosted rank, `*`-marked diff overlap, stable content hashes, `.devrites/dup-ignore` dismissal ledger) — leads for reviewer triage, never a gate. `check drift` attributes readiness-input drift to the exact artifact: `--record` snapshots per-input SHA-256 digests into `readiness-inputs.json` under the feature lock, and a later compare names each `changed`/`missing`/`added` input (falling back to the aggregate `eng-review.md` binding plus mtime candidates when no baseline exists) so a stale-binding repair starts at the right file — advisory, never a gate. `detect commands` resolves the repository's own test/lint/vet/build commands (Makefile targets, then `package.json` scripts, then language-manifest fallbacks, plus the lockfile-derived package manager) so `gates.md` `CHECK` lines and proof steps cite real wiring instead of invented commands — read-only, no installs, no execution. |
45
45
  | Workspace observation | `observe summary`, `orient`, `observe slice <slug> <SLICE-ID>`, `next`, `handoff` | JSON workspace snapshot for agents (cursor, task graph, `artifact_budgets`, `bulk_files`); `orient` is an alias for `observe summary`. `observe slice` prints one `SLICE-###` section of `tasks.md` so Build reads a slice, not the file. `next` prints the minimal remaining lifecycle path plus advisory skips (e.g. clarify at zero open questions). `handoff` emits the deterministic resume record (cursor, `awaiting_human`, blocking question gates, ledger reduction with unmet/stale ids, dead ends, read-next order) — the `/rite-handoff` spine and compaction-fallback entry. |
46
- | Context packets, dispatch waves, metrics, claims, notes | `context [slug] (--phase <p> \| --skill <name>) [--role <r>] [--trigger a,b]`, `dispatch <slug> <open\|start\|seal\|return\|status\|abandon>`, `metrics record`, `metrics summary`, `claim <add\|release\|list\|check>`, `note <add\|list\|check\|rm>` | `context` emits one deduplicated read-set bundle per phase/role/skill from each skill's `loads:` manifest — a dispatch target reads it instead of selecting files; `--skill` works without a workspace when `--out` is given. `dispatch` owns the launch-wave barrier (seal needs a handle per role; return needs seal) and auto-records dispatch/return metrics. `metrics` owns the append-only `metrics.jsonl` ledger. `claim` owns the append-only `.devrites/claims.jsonl` ledger — advisory, session-scoped file claims with TTL so concurrent same-tree sessions see each other's write intent before edits collide (conflict exits 3; never a substitute for one-writer-per-worktree). `note` owns the anchored `notes.md` ledger — notes bound to verbatim code quotes, regraded `exact`/`moved`/`stale`/`ambiguous`/`lost` as the code drifts; `check seal` refuses non-`exact` anchors. `check diff-scope` is the mechanical changed-paths ⊆ allowlist gate run before reviewer dispatch. |
47
- | Atomic workspace state | `state resolve`, `state merge-manifest`, `state apply-bundle <slug> <bundle.json>... [--dry-run]`, `state close`, `migrate [--dry-run] [--answer id=choice]` | Go owns answer/drop/batch resolution, the recorded predecessor-chain manifest union for a release milestone, the all-or-nothing apply of plan-drafter hunk bundles (base-hash pins, unique non-overlapping anchors, no lost IDs, no new task-graph or budget defect, no appended dated delta section), transactional close, and fail-closed v5 schema normalization. |
48
- | Acceptance ledger | `gates scaffold`, `gates status`, `gates run [--timeout N]`, `gates reverify [--timeout N]`, `gates lint [--strict]`, `gates attest <id> <note>`, `gates abandon <id> <why>` | Go owns the `gates.md` ledger: per-outcome gates whose runnable `CHECK`/`CWD` must exactly match a `test-plan.md` Build-entry preflight row, evidence bound to the gate definition digest (stale = unmet), `ABANDON:` handoffs, and oracle lint. Readiness/seal require a parse-clean, all-met ledger whenever `gates.md` is a required artifact. |
46
+ | Context packets, dispatch waves, metrics, claims, notes | `context [slug] (--phase <p> \| --skill <name>) [--role <r>] [--trigger a,b]`, `dispatch <slug> <open\|start\|seal\|return\|status\|abandon>`, `candidate freeze`, `packet`, `metrics record`, `metrics summary`, `claim <add\|release\|list\|check>`, `note <add\|list\|check\|rm>` | `context` emits one deduplicated read-set bundle per phase/role/skill from each skill's `loads:` manifest — a dispatch target reads it instead of selecting files; `--skill` works without a workspace when `--out` is given. `dispatch` owns the launch-wave barrier (seal needs a handle per role; return needs seal; the last start seals; open --claim-session/--claim takes the wave's file claim, released by the completing return or abandon --release) and auto-records dispatch/return metrics. `candidate freeze` writes a wave's frozen `packets/<w>.diff` + `.sha256`; `packet` renders and lints one role's by-reference packet. `metrics` owns the append-only `metrics.jsonl` ledger. `claim` owns the append-only `.devrites/claims.jsonl` ledger — advisory, session-scoped file claims with TTL so concurrent same-tree sessions see each other's write intent before edits collide (conflict exits 3; never a substitute for one-writer-per-worktree). `note` owns the anchored `notes.md` ledger — notes bound to verbatim code quotes, regraded `exact`/`moved`/`stale`/`ambiguous`/`lost` as the code drifts; `check seal` refuses non-`exact` anchors. `check diff-scope` is the mechanical changed-paths ⊆ allowlist gate run before reviewer dispatch. |
47
+ | Atomic workspace state | `state resolve`, `state merge-manifest`, `state apply-bundle <slug> <bundle.json>... [--dry-run]`, `state set <slug> key=value... [--unset key]`, `state append <slug> <ledger.md> --heading <text> --body-file <path\|->`, `state close`, `migrate [--dry-run] [--answer id=choice]` | Go owns answer/drop/batch resolution, the recorded predecessor-chain manifest union for a release milestone, the all-or-nothing apply of plan-drafter hunk bundles (base-hash pins, unique non-overlapping anchors, no lost IDs, no new task-graph or budget defect, no appended dated delta section), cursor writes (known phase, engine-owned schema, no return-cursor overwrite; an AFK pause names auto-pickable questions), append-only ledger sections that refuse a duplicate heading, transactional close, and fail-closed v5 schema normalization. |
48
+ | Acceptance ledger | `gates scaffold`, `gates status`, `gates run [--timeout N]`, `gates reverify [--timeout N]`, `gates lint [--strict]`, `gates precheck <slug> --worktree <path>`, `gates attest <id> <note>`, `gates abandon <id> <why>` | Go owns the `gates.md` ledger: per-outcome gates whose runnable `CHECK`/`CWD` must exactly match a `test-plan.md` Build-entry preflight row, evidence bound to the gate definition digest (stale = unmet), `ABANDON:` handoffs, oracle lint, and the wright's never-evidence `precheck` of `RUN: writer` gates. Readiness/seal require a parse-clean, all-met ledger whenever `gates.md` is a required artifact. |
49
49
  | Security | `secret-scan` | `/rite-ship`, safe hooks, or an operator scans staged blobs, stdin, or touched files. |
50
50
  | Install/operator | `install`, `update`, `uninstall`, `version` | Direct update acquires latest; npm/bootstrap may supply local candidates; the engine performs manifest-owned local changes. |
51
51
  | Native policy | no engine command | Skills/root own spec grammar re-read, qid allocation, Clarify cursor edits, AFK/recovery accounting, and read-only `/rite-doctor`. |
@@ -111,7 +111,7 @@ See [`cli.md`](cli.md).
111
111
  | [`/rite-adopt`](../pack/.claude/skills/rite-adopt/SKILL.md) | onboard | `[path or area to adopt] [+ what you want to build next]` | Reverse-derive the existing baseline and next objective; propose any durable project guidance in the nearest native instruction file. | codebase + project instructions | workspace spec/state artifacts + optional guidance proposal |
112
112
  | [`/rite-status`](../pack/.claude/skills/rite-status/SKILL.md) | status | `[slug]` | Active feature: phase, run mode, status, persisted next action, evidence, questions, drift, risks, and handoff readiness. | direct workspace ledger/artifacts | none |
113
113
  | [`/rite-resolve`](../pack/.claude/skills/rite-resolve/SKILL.md) | resume | `<qid> "<answer>" \| --drop <qid> ["<reason>"] \| --batch <plain-text-file>` | Answer / drop / batch-resolve open `questions.md` entries; clears `state.md` `Awaiting human` and sets `Status: running`. Canonical writer for `status: open → answered`. | `questions.md` + `state.md` | `questions.md`, `state.md` |
114
- | [`/rite-zoom-out`](../pack/.claude/skills/rite-zoom-out/SKILL.md) | utility | `[symbol \| file \| area to map]` | One-pass structural map of an unfamiliar area (modules, in-callers, out-calls, decisions) in project vocabulary. Prefers codegraph/graphify. | codebase + ADRs/CONTEXT.md | none |
114
+ | [`/rite-zoom-out`](../pack/.claude/skills/rite-zoom-out/SKILL.md) | utility | `[symbol \| file \| area to map]` | One-pass structural map of an unfamiliar area (modules, in-callers, out-calls, decisions) in project vocabulary. Prefers codebase-memory-mcp. | codebase + ADRs/CONTEXT.md | none |
115
115
  | [`/rite-prototype`](../pack/.claude/skills/rite-prototype/SKILL.md) | utility | `[question]` | Throwaway code answering ONE design question. Logic harness OR 2 to 4 UI variations on one route. Captures verdict to `decisions.md`. | spec / surrounding code | prototype scratch + `decisions.md` |
116
116
  | [`/rite-handoff`](../pack/.claude/skills/rite-handoff/SKILL.md) | utility | `[next-session-focus]` | Compacts the chat into a handoff doc. Syncs chat-only context into workspace canonical files. References existing artifacts by path. | chat + workspace | `handoff.md` + sync into canonical files |
117
117
  | [`/rite-learn`](../pack/.claude/skills/rite-learn/SKILL.md) | utility | `["<lesson>"]` | Review native memory plus verified archive/ADR evidence; propose one durable instruction or ADR update for human approval. | native memory + reviewed Markdown | approved existing instruction/ADR only |
@@ -210,22 +210,24 @@ index is in
210
210
  | Performance requirement or suspected regression | `devrites-audit perf` (+ `devrites-performance-reviewer`) |
211
211
  | Failing tests / build / runtime / browser checks | `devrites-debug-recovery` |
212
212
  | Slice crosses a boundary or defines a public interface | `devrites-api-interface` |
213
- | Explicit `/rite-zoom-out` / `$rite-zoom-out` | read-only structural map (uses codegraph/graphify) |
213
+ | Explicit `/rite-zoom-out` / `$rite-zoom-out` | read-only structural map (uses codebase-memory-mcp) |
214
214
  | Every defined plan before build; "engineering review", "review the architecture", "lock in the plan", "test coverage check" | `/rite-vet` (+ `devrites-plan-reviewer`; depth scales to stakes, never skipped; always in `/rite-autocomplete`) |
215
215
 
216
- ## Code-graph integration
217
-
218
- These skills prefer a code-intelligence index (`codegraph_*` or
219
- `graphify-out/`) when available and fall back to file reads:
220
-
221
- - `/rite-spec`, `/rite-clarify`, `/rite-define`, `/rite-plan`: placement / impact / callers during investigation and decision coverage
222
- - `/rite-vet`: reuse-vs-rebuild, blast-radius, and placement-realism checks during the scope challenge + architecture axis
223
- - `/rite-build`: `touched-files.md` + impact when loading slice context
224
- - `/rite-review`: blast-radius checks on the diff
225
- - `/rite-seal`: final blast-radius check
226
- - `devrites-doubt`: "where does this claim reach" via `codegraph_impact` / `codegraph_callers`
227
- - `/rite-zoom-out`: `codegraph_context` + `codegraph_explore`
228
- - `devrites-frontend-craft`: component / token lookups
216
+ ## Code-index integration
217
+
218
+ The one supported code index is
219
+ [codebase-memory-mcp](https://github.com/DeusData/codebase-memory-mcp). The
220
+ routes, preflight, coverage rule, and host access live in
221
+ [`code-index.md`](../pack/.claude/skills/devrites-lib/reference/standards/code-index.md);
222
+ without the index, skills fall back to LSP and file reads:
223
+
224
+ - `/rite-spec`, `/rite-clarify`, `/rite-define`, `/rite-plan`: `get_architecture`, `search_graph` (reuse), `trace_path` (callers, impact)
225
+ - `/rite-vet`, `/rite-temper`: reuse-vs-rebuild, blast-radius, and placement-realism checks
226
+ - `/rite-build`: affected set via `trace_path` before edits; `detect_changes` against the slice path list after
227
+ - `/rite-review`, `/rite-seal`: `detect_changes` blast radius on the diff
228
+ - `devrites-doubt`: "where does this claim reach" via `trace_path`
229
+ - `/rite-zoom-out`: `get_architecture` + `trace_path`
230
+ - `devrites-frontend-craft`: component lookups via `search_graph`
229
231
 
230
232
  ## Interactions (typical flow)
231
233
 
@@ -11,37 +11,44 @@ workflow strategy.
11
11
  | `install [flags]` | Install manifest-owned host artifacts and the optional shared binary. |
12
12
  | `update [flags]` | Refresh an existing managed installation. |
13
13
  | `uninstall [flags]` | Remove managed artifacts while preserving runtime workspace state. |
14
- | `check candidate <slug>` | Validate the strict manifest and compute the content-bound project-candidate identity. Exits `3` when the manifest omits a path the feature's `WIP(<slug>):` checkpoint commits changed (net from the feature base to HEAD). |
15
- | `check readiness <slug>` | Check target-Phase files, open human gates from Clarify onward, the `tasks.md` slice graph when that artifact is required, canonical `AC-###` presence in `tasks.md`/`test-plan.md` when those artifacts are required, and the current stable Build-input binding when applicable. |
14
+ | `check candidate <slug>` | Validate the strict manifest and compute the content-bound project-candidate identity. Exits `3` when the manifest omits a path the feature's `WIP(<slug>):` checkpoint commits changed (net from the feature base to HEAD). Also exits `3` with `unattributed root edit: <paths>` while the feature's `tree-baseline.json` tripwire flags a product path (ADR-0038; see `dispatch`). |
15
+ | `check readiness <slug>` | Check target-Phase files, open human gates from Clarify onward, the `tasks.md` slice graph when that artifact is required, canonical `AC-###` presence in `tasks.md`/`test-plan.md` when those artifacts are required, and the current stable Build-input binding when applicable. Leaving Vet with a `Run at` column, a slice whose `Files likely touched`/`Writer allowlist` names a dependency manifest or lockfile needs a `dependency-dry-run SLICE-###` row at `vet` with a passing transcript. |
16
16
  | `check readiness --emit-binding <slug>` | Render the exact stable Build-input binding for Vet to record after review. |
17
- | `check seal <slug>` | Check files required by target Phase `seal`, open human gates, the `tasks.md` slice graph, canonical `AC-###` presence when `tasks.md`/`test-plan.md` are required, the stable Build-input binding, and exact candidate bindings. |
17
+ | `check preconditions <slug> [--slice SLICE-###] [--timeout N]` | Run the `test-plan.md` Build-entry preflight rows whose optional `Run at` cell is `vet` (with `--slice`, `pre-dispatch <SLICE>`); `action` rows and rows without the cell never run. Writes one candidate-bound transcript per row under `references/gates/preflight-*/`; a row passes on exit 0. Exit `3` on any failure or an invalid `Run at` value. |
18
+ | `check seal <slug>` | Check files required by target Phase `seal`, open human gates, the `tasks.md` slice graph, canonical `AC-###` presence when `tasks.md`/`test-plan.md` are required, the stable Build-input binding, and exact candidate bindings. `check readiness` and `check seal` also block a `scripts/` test driver that a tasks.md Writer allowlist plans or touched-files.md lists when no gates.md `CHECK` runs it and no `Driver waiver: <path> — DEC-### <reason>` line cites a recorded decision; waived drivers print as `note: unexecuted driver (waived by DEC-###): <path>` lines, on pass or block. |
18
19
  | `check path-disjoint [--root <dir>] [<json-file> | -]` | Verify slice path sets are pairwise disjoint. |
19
- | `parallel select --cap <1-10> [--root <dir>] [--slug <slug>] [<json-file> | -]` | Choose the greedy path-disjoint subset ≤ cap from supplied ready slices. With `--slug` and a running lease, the lease's not-yet-landed slices hold cap slots and paths, and only new picks print. |
20
+ | `parallel select --cap <1-10> [--root <dir>] [--slug <slug>] [--from-plan \| <json-file> \| -]` | Choose the greedy path-disjoint subset ≤ cap from supplied ready slices, or with `--from-plan` (needs `--slug`) from the plan: tasks.md slices whose dependencies state.md checks `built`, with Writer allowlist (else Files likely touched) paths plus the nearest manifest/lockfile when `External dependencies:` is not none. With `--slug` and a running lease, the lease's not-yet-landed slices hold cap slots and paths, slices it names are never picked, and only new picks print. |
20
21
  | `parallel <create\|add\|integrate\|cleanup\|status\|abort\|lease-read\|lease-write\|lease-clear\|record-green>` | Deterministic parallel worktree leases, integration, and cleanup for parallel writer batches. A lease is a pipeline: `integrate --slice <id> --apply-to-control` lands one green sibling onto control (refusing if anything but this lease moved control), and `add` starts new path-disjoint siblings from the current control tip while others still run. |
21
22
  | `check task-graph <slug>` | Validate `tasks.md` slice dependency graph for cycles, unknown deps, malformed tokens, duplicate IDs, missing `Dependencies`, and `depends_on` mismatch. Prints a non-blocking `ADVISORY size:` line (and records a `size-advisory` metric) for each slice with 12+ Writer allowlist files and no `Size rationale:`. A `Dependencies` ID may carry a `(via <interface>)` suffix (empty or unclosed is a malformed token); prints a non-blocking `ADVISORY edge:` line (and records an `edge-advisory` metric) for each edge with no via, or whose via text is not a case-insensitive substring of the dependency's `Consumes / Produces:`. Prints `schedule: <n> slices in <r> build rounds at cap 10` (the `/rite-build` batch selection replayed over each slice's Writer allowlist, else Files likely touched; omitted when a slice has no path) and a non-blocking `ADVISORY hub:` line (top five; records a `hub-advisory` metric) for each path, compared case-folded, that three or more slices without `Serial rationale:` write. Advisories print only when the graph is valid. |
22
23
  | `check regression <slug> [--update]` | Compare the workspace's structural progress facts (phase ordinal, checked ACs, met/abandoned gates, done slices, resolved questions, present artifacts) against the recorded `regression-baseline.json` high-water mark; `--update` ratchets the baseline forward under the feature lock and prints each blessed regression. |
23
24
  | `check drift <slug> [--record]` | Attribute readiness-input changes to the exact artifact. `--record` writes the per-input `readiness-inputs.json` digest baseline under the feature lock; without it the workspace diffs current inputs against that baseline (or falls back to the aggregate binding recorded in `eng-review.md`). Advisory: exit `0` on drift; a corrupt baseline exits `3`. A `test-plan.md` change limited to exact `Workflow Artifact reviewed identity: <64hex>` lines is reported as `reviewed-identity-only` (ADR-0034). `--record` also stores each slice's proof bytes (its `tasks.md` block plus the `test-plan.md` lines naming it); both modes print `ADVISORY proportion:` for a slice whose proof grew over 2x since that baseline or carries over 3x the median proof per AC. |
24
- | `check windows <slug> [--worktree\|--staged\|--base <ref>]` | Fail on deferral and bar-lowering markers the change introduces without a waiver row in the workspace's `windows.md`: added TODO/FIXME/XXX/HACK, skipped/focused-test and stub idioms, checker suppressions, one-line empty catch; removed `deleted-test` files and net `removed-assertion` lines in remaining test files. |
25
+ | `check windows <slug> [--worktree\|--staged\|--base <ref>\|--since-dispatch <wave>]` | Fail on deferral and bar-lowering markers the change introduces without a waiver row in the workspace's `windows.md`: added TODO/FIXME/XXX/HACK, skipped/focused-test and stub idioms, checker suppressions, one-line empty catch; removed `deleted-test` files and net `removed-assertion` lines in remaining test files. `--since-dispatch <wave>` reports only `deleted-test`/`removed-assertion` against the work-tree snapshot (`tree` in `dispatch.json`) recorded when that build wright wave opened, untracked files included; it takes no `--cwd` and records the `windows-since` metric. |
25
26
  | `check dup [slug] [--all\|--worktree\|--staged\|--base <ref>] [--min-lines n] [--threshold f] [--ignore-file <path>] [--limit n] [--exclude <csv>]` | Report near-duplicate code clusters that survive comment stripping, literal collapsing, and identifier renaming — token-shingle matches chained into segments, clustered transitively, ranked with bounded path/line-distance boosts. Diff modes mark units overlapping changed hunks with `*`; stable content-derived cluster hashes let `.devrites/dup-ignore` dismissals survive line moves but resurface on structural edits. Staged mode reads index blobs and excludes untracked files. Bounded heuristic: successful scans/leads exit `0`; usage, unavailable input, and partial scans exit `2`. |
27
+ | `check anchors <slug> <return-file> [--skills-root <dir>]` | Deterministic quote anchoring for one reviewer return (agents.md § Result admission). For each Critical/Important `Finding:` row (list markers and bold tolerated), it anchors the backticked observed quote at the cited `path:line[-line]`, looking in the workspace first, then the project, never outside either. Exact match → `anchored`. Exactly one other line → `relocated <cited> -> path:N`. Otherwise → `Unverified: <row> — anchor lost\|ambiguous`; this also covers a missing file:line or quote, or a quote under 8 characters. The `breaks "<quote>"` must appear in spec.md/decisions.md (spec ID) or in the named shipped standard under the skills root (`--skills-root` for host installs). No breaks quote → `Deferred: <row> — no spec anchor`. Prints the candidate digest and records an `anchors` metrics event. Exit `0` all anchored, `3` any Unverified/Deferred row (never drives a repair round), `2` usage or unreadable input. |
26
28
  | `check slice <slug> <SLICE-ID>` | Pre-dispatch lint of one slice's wright contract: contract present, exact Writer allowlist paths, resolvable `Satisfies` AC ids, bounded scope. Same non-blocking size advisory as `check task-graph`, plus the `check drift` proportion advisory for that slice. |
27
- | `check diff-scope <slug> --allow <csv>\|--allow-file <path> [--worktree\|--staged\|--base <ref>]` | Verify the changed-path set stays inside the declared allowlist; the mechanical gate run before reviewer dispatch. |
29
+ | `check diff-scope <slug> --allow <csv>\|--allow-file <path> [--worktree\|--staged\|--base <ref>] [--baseline] [--verbose]`, `check diff-scope <slug> --snapshot` | Verify the changed-path set stays inside the declared allowlist; the mechanical gate run before reviewer dispatch. `--snapshot` records the mode and SHA-256 of every currently changed path in `<feature>/diff-scope-baseline.json` (an engine machine file, never reported); run it before writer dispatch. `--baseline` drops a changed path whose fingerprint still matches, printing `preexisting (unchanged)`; a baselined path whose bytes or mode changed, or a new path, still blocks; a run with only preexisting changes is an empty diff; a missing baseline exits `2`. More than 20 violations print grouped by the first two path segments (count plus 3 examples, at most 20 groups); `--verbose` lists every path. Exit codes are unchanged. |
30
+ | `check perturb <slug> --patch <file> --expect <test-name> --gate <G-ID> [--timeout N]` | Safe-perturbation probe (testing.md § Safe perturbation). Copies the candidate (HEAD plus every touched-files.md manifest row, at the project's prefix below the git toplevel) into a detached temporary worktree, requires it to hash to the `check candidate` digest, applies the wright-supplied mutant patch (toplevel-relative paths), and runs the gate's CHECK only when it is an approved test-plan.md preflight row. RED counts only when a runner FAIL line (go test, pytest, cargo test, jest/vitest) names `--expect`; build/setup failure, timeout, exit 0 (survivor), or a RED naming only other tests is `cannot_verify`. Reverts the patch, requires the copy back at the candidate digest and the gate GREEN (exit 0 plus EXPECT), and requires the checkout candidate unchanged. Writes `<feature>/evidence/perturb/<gate>-<digest12>-aN.log`. Never mutates the checkout. Exit `0` verified, `3` cannot_verify or refused, `2` usage. |
28
31
  | `check skill-trust <path>` | Scan one skill/agent Markdown file for structural trust violations. |
29
- | `check indexes [--root <dir>]` | Report install manifest and code-index presence as JSON. |
30
- | `observe summary <slug>` | Emit sanitized JSON workspace summary from one retained observation. `task_graph.ok` is true iff `task_graph.problems` is empty; `problems` lists cycle, unknown-dep, malformed-token, duplicate-id, and missing-`Dependencies` blockers. `inflight_waves` lists dispatch waves still `open` or `sealed`, with their pending roles. |
32
+ | `check indexes [--root <dir>]` | Report install manifest and in-repo code-index artifact presence (`.codebase-memory/`) as JSON. codebase-memory-mcp normally indexes into its central store, so its `index_status` is authoritative. |
33
+ | `observe summary <slug>` | Emit a sanitized workspace summary, as one compact JSON line, from one retained observation. `task_graph.ok` is true iff `task_graph.problems` is empty; `problems` lists cycle, unknown-dep, malformed-token, duplicate-id, and missing-`Dependencies` blockers. `inflight_waves` lists dispatch waves still `open` or `sealed`, with their pending roles. |
31
34
  | `orient <slug>` | Alias for `observe summary`. |
32
35
  | `observe slice <slug> <SLICE-ID>` | Print one `SLICE-###` section of `tasks.md` so Build reads a slice, not the file. |
33
- | `next [slug]` | Print the minimal remaining lifecycle path plus advisory skips. |
34
- | `handoff [slug]` | Emit the deterministic resume record: cursor fields, `awaiting_human`, open `questions.md` gate kinds, the `gates.md` reduction with unmet/stale/abandoned ids, `decisions.md` dead ends, missing required files, and the canonical read-next order. Read-only; the `/rite-handoff` spine and the compaction-fallback entry point. |
36
+ | `next [slug]` | Print the minimal remaining lifecycle path plus advisory skips; in Build also `eligible_now:`, `batch:` and the `select-command:` (`parallel select --root <project> --slug <slug> --cap N --from-plan`, N = AFK max_parallel else 10) that reproduces the batch. Prints `blocked: unattributed root edit: ...` after `open-questions:` and exits `3` while the ADR-0038 tripwire flags a product path; the rest of the output still prints. |
37
+ | `handoff [slug] [--resume]` | Emit the deterministic resume record: cursor fields, `awaiting_human`, open `questions.md` gate kinds, the `gates.md` reduction with unmet/stale/abandoned ids, `decisions.md` dead ends, in-flight dispatch waves (`inflight_wave:` lines: phase, state, pending roles, slices), missing required files, and the canonical read-next order. Read-only unless `--resume`, which appends one `resume` event (role root) to `metrics.jsonl`; `metrics summary` then reports minutes from each resume to the next dispatch. The `/rite-handoff` spine and the compaction-fallback entry point. |
35
38
  | `recall --paths <p1,p2,...> [--limit n]` | Read-time query over `.devrites/archive/`: list archived features whose `touched-files.md` candidate manifest covers a queried project-relative path (exact or directory prefix, case-folded), ranked by overlap count, then newest archive-directory mtime, then slug (default 10 features). Each feature prints up to 8 `archive/<slug>/<file>:<line>` pointers, then `+N more`: `decisions.md` `DEC-###` entries and `## Carry-forward constraints` bullets whose `Files:` overlap (or a constraint naming no files), plus `review.md`/`seal.md`/`drift.md` lines that mention a queried path; fenced examples are ignored. Never writes, caches, or indexes (no metric either); symlinked archive entries are refused. An unreadable archive file prints `unreadable:` and the scan continues. Exit `0` (including `recall: no archive`), `1` invalid archive directory, `2` usage. |
36
- | `context [slug] (--phase <p>\|--skill <name>) [--role <r>] [--slice <SLICE-ID>] [--trigger a,b]` | Emit one deduplicated read-set bundle per phase/role/skill from each skill's `loads:` manifest; `--skill` works without a workspace when `--out` is given. A bundle without `--role` (the root's own read) gives over-budget artifacts as by-reference indexes; a `--role` bundle leads with the role's agent contract and names the manifest's `rootOnly` paths instead of inlining them. `--slice` inlines that slice's `tasks.md` block and turns each over-budget artifact, and each artifact over 16 KiB except `spec.md`, into a by-reference index (path, SHA-256, headings, line hits for every ID the block cites); repeat `--slice` for several slices; an unknown slice exits `3`. |
37
- | `dispatch <slug> <open\|start\|seal\|return\|status\|abandon>` | Launch-wave barrier for parallel dispatch: seal needs a handle per role, return needs seal; start/return auto-record metrics. A build wave with a wright role needs `--slice <SLICE-ID>` per slice, and a slice-bound vet wave takes it too; a reviewer, auditor, or test-analyst wave needs `--packet <file>` and `open` exits `3` on a packet that seeds a conclusion (gate `*-PASS` token, `no-findings`, an `Outcome:`/`Counts:` line, an "already passed" claim, or zero Critical/Important counts); a Review or Seal reviewer wave also exits `3` unless the packet names an existing non-empty `.diff`/`.patch` file and the manifest covers every checkpointed path; every 5 rounds of either kind on one slice, `open` exits `3` until `--reslice-review <DRIFT-ID>` names an unused `drift.md` `## <DRIFT-ID>` heading for that slice. `open` also warns when an earlier wave for the same slice never returned. |
39
+ | `context [slug] (--phase <p>\|--skill <name>) [--role <r>] [--slice <SLICE-ID>] [--recheck <inventory>] [--trigger a,b] [--inline-contract] [--whole]` | Emit one deduplicated read-set bundle per phase/role/skill from each skill's `loads:` manifest; `--skill` works without a workspace when `--out` is given. A root `--phase build\|autocomplete` bundle (no `--role`, no `--slice`) defaults to `--slice <active_slice>` while the state.md cursor phase is `build` and active_slice names a slice present in tasks.md (prints `scope: slice SLICE-### (auto from state.md) ...`); `--whole` opts out. Every bundle opens, after its header comments, with a table of contents: one `L<start>-<end> <section label>` line per `===== label =====` section, giving its exact line range in the bundle file. A bundle without `--role` (the root's own read) gives over-budget artifacts as by-reference indexes; a `--role` bundle leads with the role's agent contract and names the manifest's `rootOnly` paths instead of inlining them. When the contract resolves under `.claude/agents`, `.omp/agents`, or `.codex/agents` (the host loads it as the agent's system prompt), the bundle writes one header line naming its path, size, and SHA-256 instead of the body; other layouts (pi, devin, unknown) and `--inline-contract` (only with `--role`) inline the body, and a missing contract still exits `3`. Inside inlined files, a `--role` bundle replaces each `<!-- root-only -->`…`<!-- /root-only -->` block with a one-line stub naming the omitted heading, and does the same for each `<!-- model-surface -->` block unless the role is `security-auditor`, the feature has an `ai-spec.md`, or `spec.md`/`plan.md`/`tasks.md`/`design-brief.md` are absent or (outside the spec template's `AI-SPEC annex`) name a model, agent, RAG, or tool surface; an unbalanced or headingless marker exits `2`. `--slice` inlines that slice's `tasks.md` block and turns each over-budget artifact, and each artifact over 16 KiB except `spec.md`, into a by-reference index (path, SHA-256, headings, line hits for every ID the block cites); repeat `--slice` for several slices; an unknown slice exits `3`. In phase `build`, a `--role` bundle other than `slice-wright` without `--slice` exits `3` (`unscoped build reviewer bundle`). `--recheck <inventory>` (phase `build`, with `--role` and `--slice`; path relative to the workspace) writes `<phase>-<role>.<slice>.recheck.bundle.md`: the inventory file and `core.md` inline whole, every other non-`rootOnly` pack file becomes a by-reference index (path, SHA-256, headings with line numbers) followed by each section the inventory cites as `<file>.md § <heading>`; workspace handling matches `--slice`. A missing or empty inventory exits `2`. First reviews, full-inventory rechecks, Vet, `/rite-review`, and Seal do not use it. |
40
+ | `dispatch <slug> <open\|start\|seal\|return\|status\|abandon\|attribute>` | Launch-wave barrier for parallel dispatch: seal needs a handle per role, return needs seal; the start that gives the last role its handle seals the wave, and an explicit seal on a sealed wave is a no-op; `open --claim-session <id> --claim <path>... [--claim-ttl <minutes>]` records one file claim for the wave in claims.jsonl and exits `3`, creating no wave and no claim, while a live foreign session holds an overlapping path; the return that completes the wave releases that claim; `abandon --release` releases it on any other host-confirmed terminal path (a stop or a refused launch); re-opening an abandoned wave inherits its kept claim or, with new claim flags, replaces and releases it; claim flags apply to open only and `--release` to abandon only; start/return auto-record metrics, `return --outcome findings|no-findings|gap` records the role's Outcome line, and `abandon` records its reason, so `metrics summary` shows per-role yield and lost waves. Bare `status` prints every open, sealed, or abandoned wave and folds complete waves into one `N complete wave(s) (use --all)` line; `--all` lists every wave; it still exits nonzero while any wave is open or sealed. For a reviewer, auditor, or test-analyst role, `return --result <file>` stores the return verbatim as `packets/<wave>-<role>.return.md` (exit `3` if that file exists), derives the outcome from its `Outcome:`/`Counts:` head (a malformed or inconsistent head records `gap` with a warning, never `no-findings`), exits `3` when an explicit `--outcome` disagrees, and records each `Finding:` row's `role|slice|file|section|severity` key, so `metrics summary` adds per-role `resolution: resolved re-raised open late` counts. A `--result` file that already is that `packets/` path is kept as the stored return. A build wave with a wright role needs `--slice <SLICE-ID>` per slice, and a slice-bound vet wave takes it too; a reviewer-only wave (for example a Build slice review) may take it, uncapped, so its `Finding:` keys name that slice; a reviewer, auditor, or test-analyst wave needs `--packet <file>` and `open` exits `3` on a packet that seeds a conclusion (gate `*-PASS` token, `no-findings`, an `Outcome:`/`Counts:` line, an "already passed" claim, or zero Critical/Important counts) or tells the agent to read an installed `agents/devrites-*.md`/`.toml` role contract (on the line or under a "Read …" heading or label; canonical `pack/` paths excepted), and a wright wave's `--contract` gets the same role-contract check; a Review or Seal reviewer wave also exits `3` unless the packet names an existing non-empty `.diff`/`.patch` file and the manifest covers every checkpointed path; every 5 rounds of either kind on one slice, `open` exits `3` until `--reslice-review <DRIFT-ID>` names an unused `drift.md` `## <DRIFT-ID>` heading for that slice. `open` also warns when an earlier wave for the same slice never returned. Under `.devrites/AFK` max_parallel >= 2, a first-round build wright wave narrower than the `parallel select --from-plan` batch exits `3` (printing the batch, the command and the parallel-batch lifecycle) until evidence.md records `serial: <skipped ids> — <reason>`; repair rounds, lease siblings and HITL runs are never refused. A build wright `--contract` must name `gates precheck` under `Writer-safe checks:` when gates.md has a `RUN: writer` gate. `open` exits `3` when a `--role` names no pack agent in a project-level install (a `.<lane>` suffix is allowed), and lints a reviewer packet against the wave's roles, so a recheck may name its own role's fingerprint. Root-edit tripwire (ADR-0038): the first `open` records `<feature>/tree-baseline.json`, which maps dirty product paths outside `.devrites/` and `.scratch/` to their mode plus SHA-256, accepted as user work. The return that completes a wright wave (any phase) adds its slice write sets and claim paths. `open` exits `3` with `unattributed root edit: <paths>` while a dirty product path differs from that baseline and no live claim or in-flight wright wave covers it, unless the new wright wave covers the path through `--claim` or a slice write set. `attribute --reason <evidence> --path <path>...` records owner work, gate output, a standalone wright, or a sanctioned root write for flagged paths only. Each finding writes an `unattributed-edit` metrics row. The engine never reverts a file, and a workspace without the baseline is never blocked. |
41
+ | `candidate freeze <slug> --wave <w> (--slice <SLICE-ID> \| --paths <path>...) [--base <ref>]` | Writes packets/<w>.diff (tracked changes vs base, default HEAD, plus untracked files as /dev/null diffs) and packets/<w>.sha256 (base, diff digest, per-file sha256, aggregate check-candidate digest); never replaces a wave's frozen candidate with a different one. |
42
+ | `packet <slug> --wave <w> --phase <p> --role <r> [--slice <SLICE-ID>] [--recheck] [--checks <G-ID,...>] [--focus <file>]` | Renders one reviewer/auditor/test-analyst or same-worktree slice-wright by-reference packet (packets/<w>.<role>.md, or packets/<w>.contract.md for a wright) naming the context bundle (the .recheck bundle with `--recheck`) and frozen diff. It copies packets/<w>.sha256 (header rows only when large), resolves `--checks` through gates.md and approved preflight rows (adding `gates precheck` for `RUN: writer` gates), and accepts only anchored `--focus` rows (a doubt-reviewer's 1-3 row claim is required). It runs the dispatch open lints on a draft and never replaces a prior packet with a refused one (exit `3`). |
38
43
  | `metrics record <slug> --phase <p> --event <e> [--role r] [--bytes n] [--note s]` | Append an event to the workspace's `metrics.jsonl` ledger. |
39
- | `metrics summary [slug] [--by-slice]` | Reduce `metrics.jsonl` into a per-phase roll-up. `--by-slice` reads `dispatch.json` instead: per slice, build wright rounds, slice-bound Vet rechecks, and agent-minutes (role start to `returned_at`; abandoned waves excluded). |
40
- | `claim <add\|release\|list\|check>` | Advisory session-scoped file claims in `.devrites/claims.jsonl` (append-only). `add` records intent to write a path set with a TTL (1–240 min, default 30); a live claim by another session exits `3` and names the holder. `release` appends a release event owned by the claiming session. `list` shows live claims (`--all` includes expired/released); a claim whose holding session has provably exited on this host shows `dead` and no longer conflicts. `check` is the read-only preflight for a path set. Coordination aid only — never a substitute for one-writer-per-worktree. |
44
+ | `metrics summary [slug] [--by-slice]` | Reduce `metrics.jsonl` into a per-phase roll-up. `--by-slice` reads `dispatch.json` instead: per slice, build wright rounds, slice-bound Vet rechecks, and agent-minutes (role start to `returned_at`; abandoned waves excluded). When the ledger has `resume` events it adds `resumes count=N minutes_to_dispatch=...` (each resume timed to the next `dispatch` event; `none` when another resume came first, `open` when none followed). |
45
+ | `claim <add\|release\|list\|check>` | Advisory session-scoped file claims in `.devrites/claims.jsonl` (append-only). `add` records intent to write a path set with a TTL (1–240 min, default 30); a live claim by another session exits `3` and names the holder. `release` appends a release event owned by the claiming session. `list` shows every unreleased claim (live, expired, dead) plus one `N released (use --all)` count; `--all` includes released rows; a claim whose holding session has provably exited on this host shows `dead` and no longer conflicts. `check` is the read-only preflight for a path set. Coordination aid only — never a substitute for one-writer-per-worktree. |
41
46
  | `note <add\|list\|check\|rm> <slug> ...` | Anchored workspace notes in `notes.md`: `add <slug> <subject> <quote> <title> [body]` binds a note to a verbatim quote in one repository file and assigns `NOTE-###`; `list` and `check` regrade each anchor `exact`/`moved`/`stale`/`ambiguous`/`lost` by searching the repo for the quote (dependency and workspace trees excluded); `check --repair` rewrites a `moved` subject to its new file; `rm` deletes by ID. `check seal` refuses a malformed `notes.md` and any non-`exact` anchor. |
42
- | `gates <scaffold\|status\|run\|reverify\|lint\|attest\|abandon> <slug>` | Operate the `gates.md` acceptance ledger: seed per-AC gates, execute runnable gates bound to `test-plan.md` preflight rows, attest manual gates, and reduce to `all-met`/`not-met`/`handoff`/`malformed`. A gate with `INPUTS:` records its files' content digest and is reused by `run` and `reverify` while they are unchanged. `run`/`reverify --transcripts` writes a redacted, candidate-bound transcript per executed or reused gate under `references/gates/<gate-id>/`. |
47
+ | `gates <scaffold\|status\|run\|reverify\|lint\|precheck\|attest\|abandon> <slug>` | Operate the `gates.md` acceptance ledger: seed per-AC gates, execute runnable gates bound to `test-plan.md` preflight rows, attest manual gates, and reduce to `all-met`/`not-met`/`handoff`/`malformed`. A gate with `INPUTS:` records its files' content digest and is reused by `run` and `reverify` while they are unchanged. `run`/`reverify --transcripts` writes a redacted, candidate-bound transcript per executed or reused gate under `references/gates/<gate-id>/`. `precheck <slug> --worktree <path>` runs every `RUN: writer` gate and `check windows` against the wright's worktree, prints PASS/FAIL per gate id, exits `3` on any FAIL or on a malformed ledger, and writes no ledger, EVIDENCE line or transcript (`check windows` still appends its metric event); its output is never evidence. |
43
48
  | `state resolve <qid> "<answer>"` | Resolve an open question and update `questions.md` plus `state.md` atomically. |
44
49
  | `state merge-manifest <slug> [pred...]` | Fold the recorded predecessor chain's manifests into the release candidate manifest. |
50
+ | `state set <slug> <key>=<value>... [--unset <key>]...` | Write `state.md` cursor fields all-or-nothing under the feature lock. Refuses an unknown `phase`, the engine-owned `schema` row, a pipe or line break in a value, and an overwrite of a saved `return_phase`/`return_next_action`. Setting `status=awaiting_human` under `.devrites/AFK` prints each open question the sentinel's `allow_gates` auto-picks. |
51
+ | `state append <slug> <ledger.md> --heading "<text>" --body-file <path\|->` | Append one `## <heading>` section to `assumptions.md`, `decisions.md`, `drift.md`, `evidence.md`, or `questions.md` atomically. Refuses a heading that already exists outside fenced code and a body line that opens another `#`/`##` section; for a new `questions.md` `q-` entry, also refuses a non-open status, a missing or unknown gate, a raised_at that is not a full RFC 3339 timestamp, options outside 2-4 concrete choices plus the closing "Something else" escape hatch, `(Recommended)` on any option but 1, and `proposed:` without a `(Recommended)` option 1 (or option 1 without `proposed:`); question or entry length is advisory only; reports an advisory when the ledger passes its line budget, and blocks (exit 3, nothing written) when a ledger other than evidence.md would land at or above 1.5x its line or byte budget without a covering `Budget override: <=N lines; <reason>` (N at most 2x the line budget). |
45
52
  | `state close <slug>` | Archive a shipped workspace and clear matching `ACTIVE`. |
46
53
  | `migrate <slug> [--dry-run] [--answer id=choice]` | Normalize a pre-v5 workspace to the current schema; fail-closed, one-shot. |
47
54
  | `secret-scan [--staged] [--stdin] [slug]` | Scan exact staged blobs, stdin, or touched regular files for credential material. |
package/docs/usage.md CHANGED
@@ -82,7 +82,7 @@ The shape of this directory is also documented in
82
82
  You: I want some kind of reporting thing for admins.
83
83
 
84
84
  /rite-spec admin-usage-report
85
- → investigates deeply (codegraph/graphify): current behavior, placement,
85
+ → investigates deeply (codebase-memory-mcp when installed): current behavior, placement,
86
86
  what it resolves
87
87
  → asks you one question at a time, each with options + a best guess,
88
88
  until gaps are closed
@@ -274,8 +274,8 @@ Other modes: `quieter` · `distill` · `harden`.
274
274
  → returns a map: the area in 1 sentence (project's vocabulary), modules in
275
275
  scope, callers in / calls out, ADR / decisions.md entries touching the
276
276
  area, smallest sensible change-scope.
277
- → uses codegraph_context + codegraph_explore if available; falls back to
278
- Grep + Read otherwise.
277
+ → uses codebase-memory get_architecture + trace_path if available; falls
278
+ back to Grep + Read otherwise.
279
279
  ```
280
280
 
281
281
  ## 8) Mid-flight handoff
@@ -34,7 +34,7 @@ func rootModeFor(command string, args []string) rootMode {
34
34
  return rootLenient
35
35
  case "state":
36
36
  switch subcommand {
37
- case "resolve", "merge-manifest", "apply-bundle", "close":
37
+ case "resolve", "merge-manifest", "apply-bundle", "set", "append", "close":
38
38
  return rootStrict
39
39
  }
40
40
  return rootUnused
@@ -42,14 +42,19 @@ func rootModeFor(command string, args []string) rootMode {
42
42
  return rootStrictUsage
43
43
  case "check":
44
44
  switch subcommand {
45
- case "candidate", "readiness", "seal", "task-graph", "diff-scope", "slice", "regression", "windows", "drift":
45
+ case "candidate", "readiness", "preconditions", "seal", "task-graph", "diff-scope", "slice", "regression", "windows", "drift", "anchors", "perturb":
46
46
  return rootStrictUsage
47
47
  case "indexes", "dup":
48
48
  return rootLenient
49
49
  }
50
50
  return rootUnused
51
- case "orient", "next", "context", "metrics", "dispatch", "handoff", "note":
51
+ case "orient", "next", "context", "metrics", "dispatch", "handoff", "note", "packet":
52
52
  return rootStrictUsage
53
+ case "candidate":
54
+ if subcommand == "freeze" {
55
+ return rootStrictUsage
56
+ }
57
+ return rootUnused
53
58
  case "claim":
54
59
  switch subcommand {
55
60
  case "add", "release":