devrites 5.14.3 → 6.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 (716) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/NOTICE.md +6 -4
  3. package/README.md +77 -16
  4. package/SECURITY.md +25 -11
  5. package/bin/devrites.mjs +49 -15
  6. package/docs/adr/0001-go-engine-as-control-plane.md +6 -3
  7. package/docs/adr/0029-v5-workspace-schema-and-native-migration.md +9 -0
  8. package/docs/adr/README.md +3 -2
  9. package/docs/agents/issue-tracker.md +1 -1
  10. package/docs/architecture.md +6 -3
  11. package/docs/cli.md +32 -9
  12. package/docs/command-map.md +5 -3
  13. package/docs/engine/state-schema.md +1 -1
  14. package/docs/flow.md +1 -1
  15. package/docs/harness-compliance.md +2 -2
  16. package/docs/release.md +15 -11
  17. package/docs/usage.md +1 -1
  18. package/engine/commands.go +1 -1
  19. package/engine/go.mod +1 -1
  20. package/engine/help.go +41 -15
  21. package/engine/help_test.go +134 -0
  22. package/engine/internal/acceptance/acceptance_test.go +298 -7
  23. package/engine/internal/acceptance/approve.go +7 -2
  24. package/engine/internal/acceptance/cli.go +3 -0
  25. package/engine/internal/acceptance/evidence.go +69 -5
  26. package/engine/internal/acceptance/lint.go +1 -1
  27. package/engine/internal/acceptance/run.go +5 -3
  28. package/engine/internal/acceptance/scaffold.go +5 -16
  29. package/engine/internal/devritespaths/paths.go +7 -6
  30. package/engine/internal/devritespaths/paths_test.go +18 -0
  31. package/engine/internal/fsutil/copy.go +83 -49
  32. package/engine/internal/fsutil/copy_test.go +70 -109
  33. package/engine/internal/gate/gate.go +89 -16
  34. package/engine/internal/gate/gate_test.go +101 -0
  35. package/engine/internal/hostpack/hostpack.go +52 -2
  36. package/engine/internal/hostpack/hostpack_test.go +83 -2
  37. package/engine/internal/install/apply.go +59 -16
  38. package/engine/internal/install/binary.go +10 -1
  39. package/engine/internal/install/install_test.go +428 -0
  40. package/engine/internal/install/merge.go +69 -38
  41. package/engine/internal/install/preflight.go +7 -0
  42. package/engine/internal/install/uninstall.go +43 -4
  43. package/engine/internal/lib/claims.go +25 -4
  44. package/engine/internal/lib/claims_test.go +57 -0
  45. package/engine/internal/lib/closeout.go +41 -3
  46. package/engine/internal/lib/closeout_test.go +144 -0
  47. package/engine/internal/lib/context.go +8 -4
  48. package/engine/internal/lib/context_next_test.go +100 -0
  49. package/engine/internal/lib/detect.go +1 -1
  50. package/engine/internal/lib/detect_test.go +13 -0
  51. package/engine/internal/lib/diffscope.go +19 -9
  52. package/engine/internal/lib/dispatch.go +7 -0
  53. package/engine/internal/lib/dup.go +40 -37
  54. package/engine/internal/lib/dup_test.go +178 -0
  55. package/engine/internal/lib/manifest_union.go +4 -1
  56. package/engine/internal/lib/manifest_union_test.go +37 -0
  57. package/engine/internal/lib/metrics.go +4 -0
  58. package/engine/internal/lib/metrics_test.go +28 -0
  59. package/engine/internal/lib/migrate_test.go +59 -0
  60. package/engine/internal/lib/observe_budgets.go +25 -9
  61. package/engine/internal/lib/observe_budgets_test.go +254 -0
  62. package/engine/internal/lib/observe_summary.go +23 -2
  63. package/engine/internal/lib/open_visual.go +4 -2
  64. package/engine/internal/lib/open_visual_test.go +11 -0
  65. package/engine/internal/lib/regression.go +62 -23
  66. package/engine/internal/lib/regression_test.go +103 -0
  67. package/engine/internal/lib/resolve.go +36 -17
  68. package/engine/internal/lib/resolve_remediation_test.go +132 -0
  69. package/engine/internal/lib/skilltrust.go +0 -11
  70. package/engine/internal/lib/slicecheck.go +7 -5
  71. package/engine/internal/lib/slicecheck_test.go +18 -0
  72. package/engine/internal/lib/triggers.go +9 -3
  73. package/engine/internal/lib/triggers_test.go +23 -0
  74. package/engine/internal/lib/util.go +17 -3
  75. package/engine/internal/lib/util_test.go +104 -0
  76. package/engine/internal/lib/visual_outline.go +7 -3
  77. package/engine/internal/lib/visual_outline_test.go +28 -0
  78. package/engine/internal/lib/windows.go +13 -9
  79. package/engine/internal/lib/windows_test.go +98 -0
  80. package/engine/internal/lib/workspace_read.go +2 -11
  81. package/engine/internal/lib/workspace_read_test.go +102 -0
  82. package/engine/internal/markdowntext/markdowntext.go +194 -11
  83. package/engine/internal/markdowntext/testdata/structural.json +250 -0
  84. package/engine/internal/notes/cli.go +30 -12
  85. package/engine/internal/notes/notes.go +242 -39
  86. package/engine/internal/notes/notes_test.go +372 -0
  87. package/engine/internal/overhaul/admit/packet.go +89 -0
  88. package/engine/internal/overhaul/admit/packet_test.go +223 -0
  89. package/engine/internal/overhaul/admit/run.go +4 -0
  90. package/engine/internal/overhaul/bench/run.go +6 -0
  91. package/engine/internal/overhaul/bench/run_test.go +46 -0
  92. package/engine/internal/overhaul/overhaul.go +6 -1
  93. package/engine/internal/overhaul/ovio/ovio.go +10 -3
  94. package/engine/internal/overhaul/ovio/ovio_test.go +75 -0
  95. package/engine/internal/overhaul/packet/packet.go +208 -0
  96. package/engine/internal/overhaul/packet/packet_test.go +263 -0
  97. package/engine/internal/overhaul/records/check.go +6 -0
  98. package/engine/internal/overhaul/records/init.go +16 -5
  99. package/engine/internal/overhaul/records/records_test.go +4 -0
  100. package/engine/internal/overhaul/records/run.go +66 -0
  101. package/engine/internal/overhaul/records/run_test.go +77 -0
  102. package/engine/internal/overhaul/render/run.go +15 -11
  103. package/engine/internal/overhaul/render/run_test.go +463 -1
  104. package/engine/internal/overhaul/render/visual.go +95 -33
  105. package/engine/internal/overhaul/score/run.go +20 -0
  106. package/engine/internal/overhaul/score/run_test.go +156 -1
  107. package/engine/internal/overhaul/snapshot/run.go +78 -21
  108. package/engine/internal/overhaul/snapshot/run_test.go +344 -8
  109. package/engine/internal/parallel/cli.go +33 -20
  110. package/engine/internal/parallel/cli_test.go +59 -0
  111. package/engine/internal/parallel/git.go +39 -1
  112. package/engine/internal/parallel/ops.go +101 -11
  113. package/engine/internal/parallel/ops_test.go +552 -69
  114. package/engine/internal/parallel/parallel_test.go +31 -1
  115. package/engine/internal/parallel/pathdisjoint.go +19 -1
  116. package/engine/internal/parallel/pathdisjoint_test.go +72 -0
  117. package/engine/internal/parallel/select.go +6 -2
  118. package/engine/internal/release/release.go +13 -3
  119. package/engine/internal/release/release_test.go +208 -3
  120. package/engine/internal/rootfacts/facts.go +9 -0
  121. package/engine/internal/rootfacts/facts_test.go +38 -0
  122. package/engine/internal/state/acceptance.go +7 -1
  123. package/engine/internal/state/budgets.go +11 -10
  124. package/engine/internal/state/budgets_test.go +93 -0
  125. package/engine/internal/state/cursor.go +19 -8
  126. package/engine/internal/state/cursor_test.go +120 -0
  127. package/engine/internal/state/lock_unix.go +7 -1
  128. package/engine/internal/state/lock_windows.go +7 -1
  129. package/engine/internal/state/state_test.go +49 -18
  130. package/engine/internal/state/taskgraph.go +18 -4
  131. package/engine/internal/state/taskgraph_test.go +43 -0
  132. package/engine/internal/state/workspaceschema.go +16 -2
  133. package/engine/internal/state/workspaceschema_test.go +34 -0
  134. package/engine/internal/state/write.go +67 -6
  135. package/engine/internal/state/write_test.go +136 -0
  136. package/engine/internal/version/version_test.go +2 -0
  137. package/engine/main.go +8 -1
  138. package/engine/observation_contract_test.go +1 -1
  139. package/engine/root_routing_test.go +23 -1
  140. package/install.sh +132 -12
  141. package/pack/.claude/agents/_shared/result-admission.md +3 -1
  142. package/pack/.claude/agents/devrites-code-reviewer.md +3 -2
  143. package/pack/.claude/agents/devrites-doubt-reviewer.md +4 -2
  144. package/pack/.claude/agents/devrites-spec-reviewer.md +5 -4
  145. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +2 -2
  146. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  147. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  148. package/pack/.claude/skills/devrites-interview/SKILL.md +4 -4
  149. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  150. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  151. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +3 -2
  152. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +6 -5
  153. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  154. package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  155. package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +3 -3
  156. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  157. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  158. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  159. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +11 -12
  160. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  161. package/pack/.claude/skills/overhaul/SKILL.md +1 -1
  162. package/pack/.claude/skills/overhaul/references/orchestration.md +5 -3
  163. package/pack/.claude/skills/overhaul/references/records.md +39 -0
  164. package/pack/.claude/skills/overhaul/references/scoring.md +14 -4
  165. package/pack/.claude/skills/rite/reference/menu.md +1 -1
  166. package/pack/.claude/skills/rite-adopt/SKILL.md +8 -2
  167. package/pack/.claude/skills/rite-autocomplete/SKILL.md +12 -7
  168. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  169. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +3 -3
  170. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  171. package/pack/.claude/skills/rite-build/SKILL.md +2 -1
  172. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
  173. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  174. package/pack/.claude/skills/rite-build/reference/checkpoint.md +5 -0
  175. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +2 -2
  176. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +3 -2
  177. package/pack/.claude/skills/rite-clarify/SKILL.md +5 -4
  178. package/pack/.claude/skills/rite-clarify/reference/anti-patterns.md +2 -2
  179. package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +3 -2
  180. package/pack/.claude/skills/rite-converge/SKILL.md +2 -0
  181. package/pack/.claude/skills/rite-customize/SKILL.md +6 -4
  182. package/pack/.claude/skills/rite-define/SKILL.md +2 -0
  183. package/pack/.claude/skills/rite-define/reference/gates.md +8 -7
  184. package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
  185. package/pack/.claude/skills/rite-explain/reference/intake.md +1 -1
  186. package/pack/.claude/skills/rite-fast/SKILL.md +1 -1
  187. package/pack/.claude/skills/rite-plan/SKILL.md +4 -3
  188. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +4 -4
  189. package/pack/.claude/skills/rite-plan/reference/slicing.md +3 -3
  190. package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  191. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +5 -5
  192. package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
  193. package/pack/.claude/skills/rite-seal/SKILL.md +4 -3
  194. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +3 -2
  195. package/pack/.claude/skills/rite-seal/reference/seal-template.md +2 -0
  196. package/pack/.claude/skills/rite-ship/SKILL.md +4 -2
  197. package/pack/.claude/skills/rite-ship/reference/git-ship.md +8 -2
  198. package/pack/.claude/skills/rite-ship/reference/ship-template.md +2 -1
  199. package/pack/.claude/skills/rite-spec/SKILL.md +2 -2
  200. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +1 -1
  201. package/pack/.claude/skills/rite-spec/reference/spec-template.md +7 -3
  202. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +2 -0
  203. package/pack/.claude/skills/rite-temper/SKILL.md +14 -11
  204. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +1 -1
  205. package/pack/.claude/skills/rite-temper/reference/significance.md +10 -3
  206. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +13 -2
  207. package/pack/.claude/skills/rite-vet/SKILL.md +4 -3
  208. package/pack/.claude/skills/rite-vet/reference/artifacts.md +1 -1
  209. package/pack/.claude/workflows/devrites-readonly-review.js +5 -4
  210. package/pack/generated/claude/agents/devrites-code-reviewer.md +6 -3
  211. package/pack/generated/claude/agents/devrites-devex-reviewer.md +3 -1
  212. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +7 -3
  213. package/pack/generated/claude/agents/devrites-evidence-scout.md +3 -1
  214. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +3 -1
  215. package/pack/generated/claude/agents/devrites-performance-reviewer.md +3 -1
  216. package/pack/generated/claude/agents/devrites-plan-reviewer.md +3 -1
  217. package/pack/generated/claude/agents/devrites-proof-runner.md +3 -1
  218. package/pack/generated/claude/agents/devrites-retrospector.md +3 -1
  219. package/pack/generated/claude/agents/devrites-security-auditor.md +3 -1
  220. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +3 -1
  221. package/pack/generated/claude/agents/devrites-spec-reviewer.md +8 -5
  222. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +3 -1
  223. package/pack/generated/claude/agents/devrites-test-analyst.md +3 -1
  224. package/pack/generated/claude/agents/devrites-upgrade-planner.md +3 -1
  225. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +2 -2
  226. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  227. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  228. package/pack/generated/claude/skills/devrites-interview/SKILL.md +4 -4
  229. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  230. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  231. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +3 -2
  232. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +6 -5
  233. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  234. package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  235. package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +3 -3
  236. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  237. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  238. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  239. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +11 -12
  240. package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  241. package/pack/generated/claude/skills/overhaul/SKILL.md +1 -1
  242. package/pack/generated/claude/skills/overhaul/references/orchestration.md +5 -3
  243. package/pack/generated/claude/skills/overhaul/references/records.md +39 -0
  244. package/pack/generated/claude/skills/overhaul/references/scoring.md +14 -4
  245. package/pack/generated/claude/skills/rite/reference/menu.md +1 -1
  246. package/pack/generated/claude/skills/rite-adopt/SKILL.md +8 -2
  247. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +12 -7
  248. package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  249. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +3 -3
  250. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  251. package/pack/generated/claude/skills/rite-build/SKILL.md +2 -1
  252. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
  253. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  254. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +5 -0
  255. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +2 -2
  256. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +3 -2
  257. package/pack/generated/claude/skills/rite-clarify/SKILL.md +5 -4
  258. package/pack/generated/claude/skills/rite-clarify/reference/anti-patterns.md +2 -2
  259. package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +3 -2
  260. package/pack/generated/claude/skills/rite-converge/SKILL.md +2 -0
  261. package/pack/generated/claude/skills/rite-customize/SKILL.md +6 -4
  262. package/pack/generated/claude/skills/rite-define/SKILL.md +2 -0
  263. package/pack/generated/claude/skills/rite-define/reference/gates.md +8 -7
  264. package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
  265. package/pack/generated/claude/skills/rite-explain/reference/intake.md +1 -1
  266. package/pack/generated/claude/skills/rite-fast/SKILL.md +1 -1
  267. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -3
  268. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +4 -4
  269. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +3 -3
  270. package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  271. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +5 -5
  272. package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
  273. package/pack/generated/claude/skills/rite-seal/SKILL.md +4 -3
  274. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +3 -2
  275. package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +2 -0
  276. package/pack/generated/claude/skills/rite-ship/SKILL.md +4 -2
  277. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +8 -2
  278. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +2 -1
  279. package/pack/generated/claude/skills/rite-spec/SKILL.md +2 -2
  280. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +1 -1
  281. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +7 -3
  282. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +2 -0
  283. package/pack/generated/claude/skills/rite-temper/SKILL.md +14 -11
  284. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +1 -1
  285. package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -3
  286. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +13 -2
  287. package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -3
  288. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +1 -1
  289. package/pack/generated/claude/workflows/devrites-readonly-review.js +5 -4
  290. package/pack/generated/codex/AGENTS.md +1 -1
  291. package/pack/generated/codex/agents/devrites-code-reviewer.toml +6 -3
  292. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +3 -1
  293. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +7 -3
  294. package/pack/generated/codex/agents/devrites-evidence-scout.toml +3 -1
  295. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +3 -1
  296. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +3 -1
  297. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +3 -1
  298. package/pack/generated/codex/agents/devrites-proof-runner.toml +3 -1
  299. package/pack/generated/codex/agents/devrites-retrospector.toml +3 -1
  300. package/pack/generated/codex/agents/devrites-security-auditor.toml +3 -1
  301. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +3 -1
  302. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +8 -5
  303. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +3 -1
  304. package/pack/generated/codex/agents/devrites-test-analyst.toml +3 -1
  305. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +3 -1
  306. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +2 -2
  307. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  308. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  309. package/pack/generated/codex/skills/devrites-interview/SKILL.md +4 -4
  310. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  311. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  312. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +3 -2
  313. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +6 -5
  314. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  315. package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  316. package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +3 -3
  317. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  318. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  319. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  320. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +11 -12
  321. package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  322. package/pack/generated/codex/skills/overhaul/SKILL.md +1 -1
  323. package/pack/generated/codex/skills/overhaul/references/orchestration.md +5 -3
  324. package/pack/generated/codex/skills/overhaul/references/records.md +39 -0
  325. package/pack/generated/codex/skills/overhaul/references/scoring.md +14 -4
  326. package/pack/generated/codex/skills/rite/reference/menu.md +1 -1
  327. package/pack/generated/codex/skills/rite-adopt/SKILL.md +8 -2
  328. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +12 -7
  329. package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  330. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +3 -3
  331. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  332. package/pack/generated/codex/skills/rite-build/SKILL.md +2 -1
  333. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
  334. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  335. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +5 -0
  336. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +2 -2
  337. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +3 -2
  338. package/pack/generated/codex/skills/rite-clarify/SKILL.md +5 -4
  339. package/pack/generated/codex/skills/rite-clarify/reference/anti-patterns.md +2 -2
  340. package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +3 -2
  341. package/pack/generated/codex/skills/rite-converge/SKILL.md +2 -0
  342. package/pack/generated/codex/skills/rite-customize/SKILL.md +6 -4
  343. package/pack/generated/codex/skills/rite-define/SKILL.md +2 -0
  344. package/pack/generated/codex/skills/rite-define/reference/gates.md +8 -7
  345. package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
  346. package/pack/generated/codex/skills/rite-explain/reference/intake.md +1 -1
  347. package/pack/generated/codex/skills/rite-fast/SKILL.md +1 -1
  348. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -3
  349. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +4 -4
  350. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +3 -3
  351. package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  352. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +5 -5
  353. package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
  354. package/pack/generated/codex/skills/rite-seal/SKILL.md +4 -3
  355. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +3 -2
  356. package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +2 -0
  357. package/pack/generated/codex/skills/rite-ship/SKILL.md +4 -2
  358. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +8 -2
  359. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +2 -1
  360. package/pack/generated/codex/skills/rite-spec/SKILL.md +2 -2
  361. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +1 -1
  362. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +7 -3
  363. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +2 -0
  364. package/pack/generated/codex/skills/rite-temper/SKILL.md +14 -11
  365. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +1 -1
  366. package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -3
  367. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +13 -2
  368. package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -3
  369. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +1 -1
  370. package/pack/generated/devin/AGENTS.md +1 -1
  371. package/pack/generated/devin/agents/devrites-code-reviewer.md +6 -3
  372. package/pack/generated/devin/agents/devrites-devex-reviewer.md +3 -1
  373. package/pack/generated/devin/agents/devrites-doubt-reviewer.md +7 -3
  374. package/pack/generated/devin/agents/devrites-evidence-scout.md +3 -1
  375. package/pack/generated/devin/agents/devrites-frontend-reviewer.md +3 -1
  376. package/pack/generated/devin/agents/devrites-performance-reviewer.md +3 -1
  377. package/pack/generated/devin/agents/devrites-plan-reviewer.md +3 -1
  378. package/pack/generated/devin/agents/devrites-proof-runner.md +3 -1
  379. package/pack/generated/devin/agents/devrites-retrospector.md +3 -1
  380. package/pack/generated/devin/agents/devrites-security-auditor.md +3 -1
  381. package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +3 -1
  382. package/pack/generated/devin/agents/devrites-spec-reviewer.md +8 -5
  383. package/pack/generated/devin/agents/devrites-strategy-reviewer.md +3 -1
  384. package/pack/generated/devin/agents/devrites-test-analyst.md +3 -1
  385. package/pack/generated/devin/agents/devrites-upgrade-planner.md +3 -1
  386. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +2 -2
  387. package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  388. package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  389. package/pack/generated/devin/skills/devrites-interview/SKILL.md +4 -4
  390. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  391. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  392. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +3 -2
  393. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +6 -5
  394. package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  395. package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  396. package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +3 -3
  397. package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  398. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  399. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  400. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +11 -12
  401. package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  402. package/pack/generated/devin/skills/overhaul/SKILL.md +1 -1
  403. package/pack/generated/devin/skills/overhaul/references/orchestration.md +5 -3
  404. package/pack/generated/devin/skills/overhaul/references/records.md +39 -0
  405. package/pack/generated/devin/skills/overhaul/references/scoring.md +14 -4
  406. package/pack/generated/devin/skills/rite/reference/menu.md +1 -1
  407. package/pack/generated/devin/skills/rite-adopt/SKILL.md +8 -2
  408. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +12 -7
  409. package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  410. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +3 -3
  411. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  412. package/pack/generated/devin/skills/rite-build/SKILL.md +2 -1
  413. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +1 -1
  414. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  415. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +5 -0
  416. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +2 -2
  417. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +3 -2
  418. package/pack/generated/devin/skills/rite-clarify/SKILL.md +5 -4
  419. package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +2 -2
  420. package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +3 -2
  421. package/pack/generated/devin/skills/rite-converge/SKILL.md +2 -0
  422. package/pack/generated/devin/skills/rite-customize/SKILL.md +6 -4
  423. package/pack/generated/devin/skills/rite-define/SKILL.md +2 -0
  424. package/pack/generated/devin/skills/rite-define/reference/gates.md +8 -7
  425. package/pack/generated/devin/skills/rite-explain/SKILL.md +1 -1
  426. package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
  427. package/pack/generated/devin/skills/rite-fast/SKILL.md +1 -1
  428. package/pack/generated/devin/skills/rite-plan/SKILL.md +4 -3
  429. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +4 -4
  430. package/pack/generated/devin/skills/rite-plan/reference/slicing.md +3 -3
  431. package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  432. package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +5 -5
  433. package/pack/generated/devin/skills/rite-resolve/SKILL.md +3 -3
  434. package/pack/generated/devin/skills/rite-seal/SKILL.md +4 -3
  435. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +3 -2
  436. package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +2 -0
  437. package/pack/generated/devin/skills/rite-ship/SKILL.md +4 -2
  438. package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +8 -2
  439. package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +2 -1
  440. package/pack/generated/devin/skills/rite-spec/SKILL.md +2 -2
  441. package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +1 -1
  442. package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +7 -3
  443. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +2 -0
  444. package/pack/generated/devin/skills/rite-temper/SKILL.md +14 -11
  445. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +1 -1
  446. package/pack/generated/devin/skills/rite-temper/reference/significance.md +10 -3
  447. package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +13 -2
  448. package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -3
  449. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +1 -1
  450. package/pack/generated/omp/agents/devrites-code-reviewer.md +6 -3
  451. package/pack/generated/omp/agents/devrites-devex-reviewer.md +3 -1
  452. package/pack/generated/omp/agents/devrites-doubt-reviewer.md +7 -3
  453. package/pack/generated/omp/agents/devrites-evidence-scout.md +3 -1
  454. package/pack/generated/omp/agents/devrites-frontend-reviewer.md +3 -1
  455. package/pack/generated/omp/agents/devrites-performance-reviewer.md +3 -1
  456. package/pack/generated/omp/agents/devrites-plan-reviewer.md +3 -1
  457. package/pack/generated/omp/agents/devrites-proof-runner.md +3 -1
  458. package/pack/generated/omp/agents/devrites-retrospector.md +3 -1
  459. package/pack/generated/omp/agents/devrites-security-auditor.md +3 -1
  460. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +3 -1
  461. package/pack/generated/omp/agents/devrites-spec-reviewer.md +8 -5
  462. package/pack/generated/omp/agents/devrites-strategy-reviewer.md +3 -1
  463. package/pack/generated/omp/agents/devrites-test-analyst.md +3 -1
  464. package/pack/generated/omp/agents/devrites-upgrade-planner.md +3 -1
  465. package/pack/generated/omp/commands/rite-define.md +1 -1
  466. package/pack/generated/omp/commands/rite-handoff.md +1 -1
  467. package/pack/generated/omp/commands/rite-plan.md +1 -1
  468. package/pack/generated/omp/commands/rite-pressure-test.md +1 -1
  469. package/pack/generated/omp/commands/rite-quick.md +1 -1
  470. package/pack/generated/omp/commands/rite-status.md +1 -1
  471. package/pack/generated/omp/commands/rite-temper.md +1 -1
  472. package/pack/generated/omp/commands/rite-zoom-out.md +1 -1
  473. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +2 -2
  474. package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  475. package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  476. package/pack/generated/omp/skills/devrites-interview/SKILL.md +4 -4
  477. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  478. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  479. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +3 -2
  480. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +6 -5
  481. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  482. package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  483. package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +3 -3
  484. package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  485. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  486. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  487. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +11 -12
  488. package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  489. package/pack/generated/omp/skills/overhaul/SKILL.md +1 -1
  490. package/pack/generated/omp/skills/overhaul/references/orchestration.md +5 -3
  491. package/pack/generated/omp/skills/overhaul/references/records.md +39 -0
  492. package/pack/generated/omp/skills/overhaul/references/scoring.md +14 -4
  493. package/pack/generated/omp/skills/rite/reference/menu.md +1 -1
  494. package/pack/generated/omp/skills/rite-adopt/SKILL.md +8 -2
  495. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +12 -7
  496. package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  497. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +3 -3
  498. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  499. package/pack/generated/omp/skills/rite-build/SKILL.md +2 -1
  500. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
  501. package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  502. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +5 -0
  503. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +2 -2
  504. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +3 -2
  505. package/pack/generated/omp/skills/rite-clarify/SKILL.md +5 -4
  506. package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +2 -2
  507. package/pack/generated/omp/skills/rite-clarify/reference/decision-coverage.md +3 -2
  508. package/pack/generated/omp/skills/rite-converge/SKILL.md +2 -0
  509. package/pack/generated/omp/skills/rite-customize/SKILL.md +6 -4
  510. package/pack/generated/omp/skills/rite-define/SKILL.md +2 -0
  511. package/pack/generated/omp/skills/rite-define/reference/gates.md +8 -7
  512. package/pack/generated/omp/skills/rite-explain/SKILL.md +1 -1
  513. package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
  514. package/pack/generated/omp/skills/rite-fast/SKILL.md +1 -1
  515. package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -3
  516. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +4 -4
  517. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +3 -3
  518. package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  519. package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +5 -5
  520. package/pack/generated/omp/skills/rite-resolve/SKILL.md +3 -3
  521. package/pack/generated/omp/skills/rite-seal/SKILL.md +4 -3
  522. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +3 -2
  523. package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +2 -0
  524. package/pack/generated/omp/skills/rite-ship/SKILL.md +4 -2
  525. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +8 -2
  526. package/pack/generated/omp/skills/rite-ship/reference/ship-template.md +2 -1
  527. package/pack/generated/omp/skills/rite-spec/SKILL.md +2 -2
  528. package/pack/generated/omp/skills/rite-spec/reference/spec-checklists.md +1 -1
  529. package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +7 -3
  530. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +2 -0
  531. package/pack/generated/omp/skills/rite-temper/SKILL.md +14 -11
  532. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +1 -1
  533. package/pack/generated/omp/skills/rite-temper/reference/significance.md +10 -3
  534. package/pack/generated/omp/skills/rite-temper/reference/strategy-template.md +13 -2
  535. package/pack/generated/omp/skills/rite-vet/SKILL.md +4 -3
  536. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +1 -1
  537. package/pack/generated/pi/AGENTS.md +1 -1
  538. package/pack/generated/pi/agents/devrites-code-reviewer.md +6 -3
  539. package/pack/generated/pi/agents/devrites-devex-reviewer.md +3 -1
  540. package/pack/generated/pi/agents/devrites-doubt-reviewer.md +7 -3
  541. package/pack/generated/pi/agents/devrites-evidence-scout.md +3 -1
  542. package/pack/generated/pi/agents/devrites-frontend-reviewer.md +3 -1
  543. package/pack/generated/pi/agents/devrites-performance-reviewer.md +3 -1
  544. package/pack/generated/pi/agents/devrites-plan-reviewer.md +3 -1
  545. package/pack/generated/pi/agents/devrites-proof-runner.md +3 -1
  546. package/pack/generated/pi/agents/devrites-retrospector.md +3 -1
  547. package/pack/generated/pi/agents/devrites-security-auditor.md +3 -1
  548. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +3 -1
  549. package/pack/generated/pi/agents/devrites-spec-reviewer.md +8 -5
  550. package/pack/generated/pi/agents/devrites-strategy-reviewer.md +3 -1
  551. package/pack/generated/pi/agents/devrites-test-analyst.md +3 -1
  552. package/pack/generated/pi/agents/devrites-upgrade-planner.md +3 -1
  553. package/pack/generated/pi/prompts/rite-define.md +1 -1
  554. package/pack/generated/pi/prompts/rite-handoff.md +1 -1
  555. package/pack/generated/pi/prompts/rite-plan.md +1 -1
  556. package/pack/generated/pi/prompts/rite-pressure-test.md +1 -1
  557. package/pack/generated/pi/prompts/rite-quick.md +1 -1
  558. package/pack/generated/pi/prompts/rite-status.md +1 -1
  559. package/pack/generated/pi/prompts/rite-temper.md +1 -1
  560. package/pack/generated/pi/prompts/rite-zoom-out.md +1 -1
  561. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +2 -2
  562. package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  563. package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  564. package/pack/generated/pi/skills/devrites-interview/SKILL.md +4 -4
  565. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  566. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +11 -3
  567. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +3 -2
  568. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +6 -5
  569. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  570. package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  571. package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +3 -3
  572. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  573. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  574. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  575. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +11 -12
  576. package/pack/generated/pi/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  577. package/pack/generated/pi/skills/overhaul/SKILL.md +1 -1
  578. package/pack/generated/pi/skills/overhaul/references/orchestration.md +5 -3
  579. package/pack/generated/pi/skills/overhaul/references/records.md +39 -0
  580. package/pack/generated/pi/skills/overhaul/references/scoring.md +14 -4
  581. package/pack/generated/pi/skills/rite/reference/menu.md +1 -1
  582. package/pack/generated/pi/skills/rite-adopt/SKILL.md +8 -2
  583. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +12 -7
  584. package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  585. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +3 -3
  586. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  587. package/pack/generated/pi/skills/rite-build/SKILL.md +2 -1
  588. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +1 -1
  589. package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  590. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +5 -0
  591. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +2 -2
  592. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +3 -2
  593. package/pack/generated/pi/skills/rite-clarify/SKILL.md +5 -4
  594. package/pack/generated/pi/skills/rite-clarify/reference/anti-patterns.md +2 -2
  595. package/pack/generated/pi/skills/rite-clarify/reference/decision-coverage.md +3 -2
  596. package/pack/generated/pi/skills/rite-converge/SKILL.md +2 -0
  597. package/pack/generated/pi/skills/rite-customize/SKILL.md +6 -4
  598. package/pack/generated/pi/skills/rite-define/SKILL.md +2 -0
  599. package/pack/generated/pi/skills/rite-define/reference/gates.md +8 -7
  600. package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
  601. package/pack/generated/pi/skills/rite-explain/reference/intake.md +1 -1
  602. package/pack/generated/pi/skills/rite-fast/SKILL.md +1 -1
  603. package/pack/generated/pi/skills/rite-plan/SKILL.md +4 -3
  604. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +4 -4
  605. package/pack/generated/pi/skills/rite-plan/reference/slicing.md +3 -3
  606. package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  607. package/pack/generated/pi/skills/rite-prove/reference/browser-proof.md +5 -5
  608. package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
  609. package/pack/generated/pi/skills/rite-seal/SKILL.md +4 -3
  610. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +3 -2
  611. package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +2 -0
  612. package/pack/generated/pi/skills/rite-ship/SKILL.md +4 -2
  613. package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +8 -2
  614. package/pack/generated/pi/skills/rite-ship/reference/ship-template.md +2 -1
  615. package/pack/generated/pi/skills/rite-spec/SKILL.md +2 -2
  616. package/pack/generated/pi/skills/rite-spec/reference/spec-checklists.md +1 -1
  617. package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +7 -3
  618. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +2 -0
  619. package/pack/generated/pi/skills/rite-temper/SKILL.md +14 -11
  620. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +1 -1
  621. package/pack/generated/pi/skills/rite-temper/reference/significance.md +10 -3
  622. package/pack/generated/pi/skills/rite-temper/reference/strategy-template.md +13 -2
  623. package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -3
  624. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +1 -1
  625. package/package.json +5 -4
  626. package/scripts/build-host-artifacts.sh +15 -0
  627. package/scripts/codex-generate.sh +1 -1
  628. package/scripts/devin-generate.sh +1 -1
  629. package/scripts/expand-includes.py +46 -0
  630. package/scripts/install-lib.sh +42 -7
  631. package/scripts/omp-generate.sh +11 -0
  632. package/scripts/pi-generate.sh +12 -1
  633. package/update.sh +1 -2
  634. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/README.md +0 -7
  635. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/architecture.md +0 -3
  636. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/assumptions.md +0 -3
  637. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/brief.md +0 -3
  638. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decision-coverage.md +0 -3
  639. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decisions.md +0 -4
  640. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/eng-review.md +0 -3
  641. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/gates.md +0 -4
  642. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/plan.md +0 -5
  643. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/questions.md +0 -3
  644. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/spec.md +0 -6
  645. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/state.md +0 -8
  646. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/tasks.md +0 -1
  647. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/test-plan.md +0 -3
  648. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/traceability.md +0 -3
  649. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/README.md +0 -7
  650. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/assumptions.md +0 -3
  651. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/brief.md +0 -3
  652. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/decisions.md +0 -3
  653. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/questions.md +0 -3
  654. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/spec.md +0 -6
  655. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +0 -3
  656. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +0 -2
  657. package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +0 -2
  658. package/engine/testdata/golden/TestParityCloseOut/archive_clobber.golden +0 -1
  659. package/engine/testdata/golden/TestParityCloseOut/missing_slug.golden +0 -1
  660. package/engine/testdata/golden/TestParityCloseOut/missing_workspace.golden +0 -1
  661. package/engine/testdata/golden/TestParityLearnings/add.golden +0 -2
  662. package/engine/testdata/golden/TestParityLearnings/list.golden +0 -5
  663. package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +0 -2
  664. package/engine/testdata/golden/TestParityLearnings/mine.golden +0 -5
  665. package/engine/testdata/golden/TestParityLearnings/nudge.golden +0 -2
  666. package/engine/testdata/golden/TestParityLearnings/unknown.golden +0 -1
  667. package/engine/testdata/golden/TestParityPackageExistence/ghost-workspace.golden +0 -1
  668. package/engine/testdata/golden/TestParityPackageExistence/no-manifest.golden +0 -1
  669. package/engine/testdata/golden/TestParityPackageExistence/not-git.golden +0 -1
  670. package/engine/testdata/golden/TestParityPackageExistence/undeclared.golden +0 -1
  671. package/engine/testdata/golden/TestParityPreamble/afk/a.golden +0 -14
  672. package/engine/testdata/golden/TestParityPreamble/hitl/active.golden +0 -18
  673. package/engine/testdata/golden/TestParityPreamble/hitl/bare.golden +0 -10
  674. package/engine/testdata/golden/TestParityPreamble/hitl/full.golden +0 -18
  675. package/engine/testdata/golden/TestParityPreamble/hitl/ghost.golden +0 -2
  676. package/engine/testdata/golden/TestParityPreamble/hitl/nonl.golden +0 -11
  677. package/engine/testdata/golden/TestParityPreamble/hitl/openend.golden +0 -13
  678. package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +0 -4
  679. package/engine/testdata/golden/TestParityProgress/arg=done.golden +0 -3
  680. package/engine/testdata/golden/TestParityProgress/arg=ghost.golden +0 -1
  681. package/engine/testdata/golden/TestParityProgress/arg=mid.golden +0 -4
  682. package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +0 -3
  683. package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +0 -3
  684. package/engine/testdata/golden/TestParityProgress/arg=plan.golden +0 -4
  685. package/engine/testdata/golden/TestParityProgress/arg=seal.golden +0 -3
  686. package/engine/testdata/golden/TestParityResolve/answer/questions.md.golden +0 -9
  687. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +0 -7
  688. package/engine/testdata/golden/TestParityResolve/answer.golden +0 -4
  689. package/engine/testdata/golden/TestParityResolve/batch/questions.md.golden +0 -9
  690. package/engine/testdata/golden/TestParityResolve/batch-unterminated/questions.md.golden +0 -9
  691. package/engine/testdata/golden/TestParityResolve/batch-unterminated.golden +0 -2
  692. package/engine/testdata/golden/TestParityResolve/batch.golden +0 -3
  693. package/engine/testdata/golden/TestParityResolve/drop/questions.md.golden +0 -9
  694. package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +0 -9
  695. package/engine/testdata/golden/TestParityResolve/drop.golden +0 -4
  696. package/engine/testdata/golden/TestParityResolve/missing-answer.golden +0 -1
  697. package/engine/testdata/golden/TestParityResolve/no-workspace.golden +0 -1
  698. package/engine/testdata/golden/TestParityResolve/not-found.golden +0 -1
  699. package/engine/testdata/golden/TestParityResolve/not-open.golden +0 -1
  700. package/engine/testdata/golden/TestStatusLiveWorkspace.golden +0 -10
  701. package/engine/testdata/golden/status/auth-tokens.txt +0 -9
  702. package/engine/testdata/golden/status/search-ranking.txt +0 -9
  703. package/engine/testdata/visual/open-visual-smoke.html +0 -675
  704. package/engine/testdata/visual/open-visual-smoke.outline.md +0 -54
  705. package/engine/tests/adr_0003_gate_exit_code_test.go +0 -32
  706. package/engine/tests/adr_0004_required_by_phase_test.go +0 -54
  707. package/engine/tests/adr_0011_define_plan_test.go +0 -32
  708. package/engine/tests/adr_0027_readiness_binding_test.go +0 -107
  709. package/engine/tests/cli_test.go +0 -126
  710. package/engine/tests/gate_test.go +0 -669
  711. package/engine/tests/meta_test.go +0 -37
  712. package/engine/tests/parity_closeout_test.go +0 -105
  713. package/engine/tests/parity_githelpers_test.go +0 -41
  714. package/engine/tests/parity_resolve_test.go +0 -136
  715. package/engine/tests/parity_test.go +0 -86
  716. package/engine/tests/workspace_observation_migration_test.go +0 -1069
@@ -74,7 +74,8 @@ Scans cap captured input at 64 MiB and entries/findings at 4,096; findings expos
74
74
  metadata only and source or limit errors fail closed.
75
75
 
76
76
  Direct `devrites-engine update` acquires the latest exact-release pack and
77
- platform binary, then hands local paths to the downloaded engine. Shell/npm may
77
+ platform binary, each verified by SHA-256 sidecar and `gh attestation verify`
78
+ (`gh` installed and authenticated), then hands local paths to the downloaded engine. Shell/npm may
78
79
  perform the same acquisition before invoking the local path. `--check` compares
79
80
  the installed version with latest release metadata without downloading assets;
80
81
  engine release selectors are unsupported.
@@ -180,8 +181,9 @@ exact named project role; if that role is unavailable, the workflow stops for
180
181
  HITL. The root never executes a specialist role. Reviewer profiles are
181
182
  natively read-only. Claude keeps its root in plan mode; Codex uses a
182
183
  workspace-capable root so its child can write, while workflow policy forbids
183
- that root from editing source/tests. Both hosts expose only
184
- `devrites-slice-wright` as a writable specialist. See
184
+ that root from editing source/tests. Among the lifecycle `devrites-*` specialists, both hosts expose only
185
+ `devrites-slice-wright` as a writable one. The shipped profiles are the full
186
+ role-to-permission map; `/rite-doctor` step 3 checks them. See
185
187
  [`standards/agents.md`](../pack/.claude/skills/devrites-lib/reference/standards/agents.md#source-writing-boundary).
186
188
 
187
189
  ## Engineering rules (`pack/.claude/skills/devrites-lib/reference/standards/`)
@@ -1,4 +1,4 @@
1
- # `.devrites/` state schema (v3)
1
+ # `.devrites/` state schema (v4)
2
2
 
3
3
  The engine reads workflow state from plain files under `.devrites/`. Those
4
4
  human-editable files remain authoritative; the engine has no database or
package/docs/flow.md CHANGED
@@ -346,7 +346,7 @@ erDiagram
346
346
  }
347
347
  WORKSPACE {
348
348
  string slug PK ".devrites/work/<slug>/"
349
- int schemaVersion "3; mutations require current schema; older cursors remain readable"
349
+ int schemaVersion "4; mutations require current schema; older cursors remain readable"
350
350
  }
351
351
  state {
352
352
  string phase "frame | spec | clarify | temper | define | plan | vet | build | converge | prove | polish | review | seal | ship | done"
@@ -18,7 +18,7 @@ generation/install/permission/routing tests that exercise them.
18
18
  | Session context and compaction | Native | Native | all phases | explicit skill state read | no | high | Both hosts own transcript, session, resume, and compaction context; DevRites does not inject a duplicate lifecycle hook. |
19
19
  | Root orchestrator permissions | Native | Instruction-backed | all source mutations | stop if the root edits source | yes | medium | Claude uses project plan mode; Codex needs a workspace-capable parent for native writer-child execution, so its root no-source-writing boundary is instruction-enforced. |
20
20
  | Slice-wright exact paths | Instruction-backed | Instruction-backed | build safety | reject an out-of-scope returned diff | yes | medium | Both hosts run the exact write-capable slice-wright under native sandboxing. The task states exact paths; the root compares the returned file list and `git diff --name-only` with that contract. |
21
- | Native reviewer permissions | Native | Native | review/seal safety | HITL stop; no root inline review | yes | high | Claude reviewer profiles use permissionMode plan; Codex reviewer profiles use `default_permissions = ":read-only"`. No engine reviewer classifier is involved. |
21
+ | Native reviewer permissions | Native | Native | review/seal safety | HITL stop; no root inline review | yes | high | Claude lifecycle `devrites-*` reviewer profiles use permissionMode plan; Codex lifecycle `devrites-*` reviewer profiles use `default_permissions = ":read-only"`. No engine reviewer classifier is involved. |
22
22
  | Skill invocation | Native | Native | all public rites | explicit file read | yes | high | Claude invokes /rite natively. Codex invokes $rite natively from the generated/mirrored .agents/skills tree; the mirror delivers artifacts rather than adapting execution. |
23
23
  | Candidate identity | Adapter-backed | Adapter-backed | Build through Ship | stop; never substitute a host hash | partial | high | Both hosts expose read-only `devrites-engine check candidate <slug>` with exact two-field output and preserve one binding across evidence, optional browser evidence, review, and seal. Build writes scope, Polish closes it, and Ship is candidate-read-only. |
24
24
  | Reviewer subagent dispatch | Native | Native | review/seal confidence | HITL stop; no root inline review | yes | high | Both hosts dispatch the exact named project role. Codex loads developer instructions and the `:read-only` permission profile from the generated custom-agent TOML. |
@@ -34,7 +34,7 @@ native skill procedure, not an engine diagnostic command.
34
34
 
35
35
  Generation and install tests verify the native profiles and configuration.
36
36
  Permission and routing tests prove that both hosts dispatch the exact
37
- slice-wright while every other specialist remains read-only. Claude grants that
37
+ slice-wright while every other lifecycle `devrites-*` specialist remains read-only. Claude grants that
38
38
  writer `acceptEdits`; Codex grants it `:workspace`. Exact-path scope is
39
39
  instruction-backed on both hosts and the root rejects a returned diff outside
40
40
  the task contract. Candidate compatibility additionally requires the shared
package/docs/release.md CHANGED
@@ -4,7 +4,7 @@
4
4
  each push to `main`, the `release` job in
5
5
  [`.github/workflows/ci.yml`](../.github/workflows/ci.yml) checks the merged
6
6
  commit messages. A `feat:`, `fix:`, `perf:`, `refactor:`, `build:`,
7
- `remove:`, `docs(README):`, or `BREAKING CHANGE:` tells it to choose the next SemVer
7
+ `remove:`, `docs(readme):`, or `BREAKING CHANGE:` tells it to choose the next SemVer
8
8
  version and run these steps:
9
9
 
10
10
  1. Waits for the workflow's validation, full shell suite, strict Go-engine checks, Linux cross-compile smoke, Windows and macOS Go tests.
@@ -17,12 +17,12 @@ version and run these steps:
17
17
  future npm Trusted Publisher can take over, and today authenticates with
18
18
  `secrets.NPM_TOKEN` because npm's OIDC exchange still returns
19
19
  "package not found" until that Trusted Publisher is configured for
20
- `devrites`. This is what `npx devrites@latest` resolves. `npm pack`
21
- regenerates the same `pack/generated/` artifacts during `prepack`; there
22
- is no `postpack` cleanup step.
20
+ `devrites`. This is what `npx devrites@latest` resolves. `npm publish`
21
+ ships the committed, validate-checked `pack/generated/` (the repo `.npmrc`
22
+ sets `ignore-scripts=true`, so no lifecycle script runs).
23
23
  7. Commits the version bump + changelog as `chore(release): <version> [skip ci]`, creates tag `v<version>`, and publishes a GitHub Release with the tarball, verified installer, binaries, and every checksum sidecar attached. The release job then attests the artifacts with build provenance (`actions/attest-build-provenance`), independent of npm provenance.
24
24
 
25
- Package prepack normally owns host artifact generation; the release archive
25
+ The release archive
26
26
  consumes the validated generated files from the same Git index as the rest of
27
27
  its payload. Package and release installs validate and copy
28
28
  `pack/generated/{claude,codex}`. When a shell install or update shim runs from a
@@ -31,13 +31,15 @@ the missing host payload before handing that local candidate to the engine. The
31
31
  engine itself only validates and copies host payloads; it never generates them.
32
32
  The npm entrypoint, verified release installer, and direct engine updater acquire
33
33
  only an exact-SemVer release bundle or platform binary with its mandatory
34
- exact-filename SHA-256 sidecar.
34
+ exact-filename SHA-256 sidecar, and each such asset must also pass
35
+ `gh attestation verify` (pinned to `ViktorsBaikers/DevRites` and signer workflow `ViktorsBaikers/DevRites/.github/workflows/ci.yml@refs/heads/main`;
36
+ `gh` must be installed and authenticated, with no bypass).
35
37
 
36
38
  Verify a downloaded engine binary from a GitHub Release:
37
39
 
38
40
  ```bash
39
- curl -LO "https://github.com/ViktorsBaikers/DevRites/releases/download/v<version>/devrites-<os>-<arch>[.exe]"
40
- curl -LO "https://github.com/ViktorsBaikers/DevRites/releases/download/v<version>/devrites-<os>-<arch>[.exe].sha256"
41
+ curl -q -LO "https://github.com/ViktorsBaikers/DevRites/releases/download/v<version>/devrites-<os>-<arch>[.exe]"
42
+ curl -q -LO "https://github.com/ViktorsBaikers/DevRites/releases/download/v<version>/devrites-<os>-<arch>[.exe].sha256"
41
43
  ( cd "$(dirname "$0")" && shasum -a 256 -c devrites-<os>-<arch>[.exe].sha256 )
42
44
  ```
43
45
 
@@ -78,7 +80,8 @@ or path breach before extraction (at most 10,000 members, 4,096-byte paths, and
78
80
  256 MiB expanded files). Metadata is capped at 1 MiB, sidecars at 4 KiB,
79
81
  archives/binaries at 64 MiB, and the Node adapter follows at most five redirects.
80
82
  There is no raw, source-archive, tag, or default-branch acquisition fallback;
81
- exact-release guarantees begin at the checksummed release `install.sh` asset.
83
+ exact-release guarantees begin at the checksummed release `install.sh` asset that
84
+ also passes `gh attestation verify` (pinned to `ViktorsBaikers/DevRites` and signer workflow `ViktorsBaikers/DevRites/.github/workflows/ci.yml@refs/heads/main`).
82
85
  The Go release boundary may acquire the latest stable candidate; the downloaded
83
86
  engine then supplies local paths to the manifest-owned update core. Engine
84
87
  `update --check` resolves release metadata but downloads no assets. `--to` and
@@ -120,9 +123,10 @@ remove the exception.
120
123
  | --- | --- |
121
124
  | `feat:` | **minor** (`0.1.0` → `0.2.0`) |
122
125
  | `remove:` | **minor**; grouped under Removed in release notes |
123
- | `fix:` / `perf:` / `refactor:` / `build:` / `docs(README):` | **patch** (`0.1.0` → `0.1.1`) |
126
+ | `fix:` / `perf:` / `refactor:` / `build:` / `docs(readme):` | **patch** (`0.1.0` → `0.1.1`) |
124
127
  | Any type with `BREAKING CHANGE:` footer or `!` after type (e.g. `feat!:`) | **major** (`0.1.0` → `1.0.0`) |
125
- | `chore:` / `ci:` / `test:` / `docs:` (non-README) | no release |
128
+ | `revert:` | **patch** |
129
+ | `build(deps-dev):` / `chore:` / `ci:` / `test:` / `style:` / `docs:` (non-README) | no release |
126
130
  | Any scope `(no-release)` (e.g. `feat(no-release): …`) | no release |
127
131
 
128
132
  Husky + commitlint reject non-conventional messages at commit time, so you can't accidentally bypass the rules.
package/docs/usage.md CHANGED
@@ -334,7 +334,7 @@ by its cap and pause rules.
334
334
  # Drop the sentinel before bed. Keys are optional: empty file works.
335
335
  cat > .devrites/AFK <<'EOF'
336
336
  max_slices: 10
337
- notify: "curl -d \"$DEVRITES_QID: $DEVRITES_QUESTION\" ntfy.sh/my-topic"
337
+ notify: "curl -fsS -m 10 -d \"$DEVRITES_QID: $DEVRITES_QUESTION\" ntfy.sh/my-topic"
338
338
  allow_gates: [advisory, validating]
339
339
  EOF
340
340
 
@@ -25,7 +25,7 @@ const (
25
25
  // workspace or Git state, which must never fall back after an unsafe root
26
26
  // selection.
27
27
  func rootModeFor(command string, args []string) rootMode {
28
- if hasHelpFlag(args) || (len(args) > 0 && isHelpToken(args[0])) {
28
+ if hasHelpFlag(command, args) || (len(args) > 0 && isHelpToken(args[0])) {
29
29
  return rootUnused
30
30
  }
31
31
  subcommand := firstRootOperand(args)
package/engine/go.mod CHANGED
@@ -2,4 +2,4 @@ module github.com/devrites/devrites
2
2
 
3
3
  go 1.26
4
4
 
5
- toolchain go1.27.1
5
+ toolchain go1.27.2
package/engine/help.go CHANGED
@@ -5,6 +5,7 @@ import (
5
5
  "io"
6
6
  "strings"
7
7
 
8
+ "github.com/devrites/devrites/internal/notes"
8
9
  "github.com/devrites/devrites/internal/overhaul"
9
10
  "github.com/devrites/devrites/internal/parallel"
10
11
  )
@@ -33,6 +34,9 @@ const (
33
34
  state resolve <qid> "<answer>"
34
35
  state resolve --drop <qid> ["<reason>"]
35
36
  state resolve --batch <file>
37
+ state resolve --human <qid> "<answer>"
38
+ state resolve --human --drop <qid> ["<reason>"]
39
+ state resolve --human --batch <file>
36
40
  state merge-manifest <slug> [<predecessor>...]
37
41
  state close <slug>
38
42
  `
@@ -79,7 +83,7 @@ const (
79
83
  detectUsageLine = "usage: devrites-engine detect commands [--root <dir>] [--json]"
80
84
  windowsUsageLine = "usage: devrites-engine check windows <slug> [--worktree|--staged|--base <ref>] [--cwd <dir>]"
81
85
  dupUsageLine = "usage: devrites-engine check dup [slug] [--all|--worktree|--staged|--base <ref>] [--min-lines n] [--threshold f] [--ignore-file <path>] [--limit n] [--exclude <csv>] [--phase p] [--cwd <dir>]"
82
- resolveUsage = `usage: devrites-engine state resolve <qid> "<answer>" | state resolve --drop <qid> ["<reason>"] | state resolve --batch <file>`
86
+ resolveUsage = `usage: devrites-engine state resolve <qid> "<answer>" | state resolve --drop <qid> ["<reason>"] | state resolve --batch <file> | state resolve --human <qid> "<answer>" | state resolve --human --drop <qid> ["<reason>"] | state resolve --human --batch <file>`
83
87
  mergeManifestUsage = "usage: devrites-engine state merge-manifest <slug> [<predecessor>...]"
84
88
  closeUsage = "usage: devrites-engine state close <slug>"
85
89
  observeSliceUsage = "usage: devrites-engine observe slice <slug> <SLICE-ID>"
@@ -93,14 +97,6 @@ const (
93
97
  gates lint <slug> [--strict] Audit oracle quality without executing
94
98
  gates attest <slug> <id> <note> Record human evidence on a manual gate
95
99
  gates abandon <slug> <id> <why> Record a terminal ABANDON handoff on a gate
96
- `
97
- noteFamilyUsage = `usage: devrites-engine note <add|list|check|rm> <slug> ...
98
-
99
- note add <slug> <subject> <quote> <title> [body]
100
- Anchor a workspace note to verbatim code text
101
- note list <slug> List notes.md entries with their current grade
102
- note check <slug> [--repair] Regrade every anchor; --repair rewrites moved subjects
103
- note rm <slug> <NOTE-id> Remove a note
104
100
  `
105
101
  )
106
102
 
@@ -117,11 +113,41 @@ func isHelpToken(arg string) bool {
117
113
  return isHelpFlag(arg) || arg == "help"
118
114
  }
119
115
 
120
- func hasHelpFlag(args []string) bool {
121
- for _, arg := range args {
122
- if isHelpFlag(arg) {
116
+ // takesSubcommand reports whether command's first argument names a subcommand.
117
+ // A subcommand is consumed by dispatch, so a help flag directly after it is
118
+ // still in flag position rather than in a value position.
119
+ func takesSubcommand(command string) bool {
120
+ switch command {
121
+ case "check", "state", "observe", "parallel", "gates", "claim", "note", "metrics", "detect", "overhaul":
122
+ return true
123
+ default:
124
+ return false
125
+ }
126
+ }
127
+
128
+ // claimValueFlags are the claim flags that consume the next argument as a value.
129
+ var claimValueFlags = map[string]bool{"--session": true, "--reason": true, "--ttl": true, "--id": true}
130
+
131
+ // hasHelpFlag reports whether args (the arguments after the command word) are a
132
+ // help request. The command path is consumed by dispatch, so a help flag is
133
+ // honoured among the leading flags that follow it. The scan stops at the first
134
+ // argument that does not start with a dash, because from there the engine
135
+ // cannot tell a flag from a value or operand. Only claim, whose value flags are
136
+ // known, honours a help flag later, and never one that is the value of such a
137
+ // flag.
138
+ func hasHelpFlag(command string, args []string) bool {
139
+ if len(args) > 0 && !strings.HasPrefix(args[0], "-") && takesSubcommand(command) {
140
+ args = args[1:]
141
+ }
142
+ for i := 0; i < len(args); i++ {
143
+ if isHelpFlag(args[i]) {
123
144
  return true
124
145
  }
146
+ if command == "claim" && claimValueFlags[args[i]] {
147
+ i++
148
+ } else if command != "claim" && !strings.HasPrefix(args[i], "-") {
149
+ return false
150
+ }
125
151
  }
126
152
  return false
127
153
  }
@@ -133,11 +159,11 @@ func shouldPrintHelp(args []string) bool {
133
159
  if isHelpToken(args[0]) {
134
160
  return true
135
161
  }
136
- if hasHelpFlag(args) {
162
+ if hasHelpFlag(args[0], args[1:]) {
137
163
  return true
138
164
  }
139
165
  switch args[0] {
140
- case "check", "state", "observe", "parallel", "gates", "claim", "detect", "note", "metrics", "handoff", "context", "orient", "migrate", "overhaul":
166
+ case "check", "state", "observe", "parallel", "gates", "claim", "detect", "note", "metrics", "handoff", "context", "orient", "migrate", "overhaul", "next", "dispatch", "secret-scan", "open-visual":
141
167
  return len(args) >= 2 && args[1] == "help"
142
168
  default:
143
169
  return false
@@ -194,7 +220,7 @@ func commandHelp(args []string) (string, bool) {
194
220
  case "gates":
195
221
  return gatesFamilyUsage, true
196
222
  case "note":
197
- return noteFamilyUsage, true
223
+ return notes.Usage, true
198
224
  case "overhaul":
199
225
  return overhaul.Usage, true
200
226
  case "migrate":
@@ -2,8 +2,12 @@ package main
2
2
 
3
3
  import (
4
4
  "bytes"
5
+ "os"
6
+ "path/filepath"
5
7
  "strings"
6
8
  "testing"
9
+
10
+ "github.com/devrites/devrites/internal/notes"
7
11
  )
8
12
 
9
13
  func TestCommandHelp(t *testing.T) {
@@ -42,6 +46,10 @@ func TestCommandHelp(t *testing.T) {
42
46
  {args: []string{"observe", "slice", "--help"}, want: "observe slice <slug> <SLICE-ID>"},
43
47
  {args: []string{"orient", "--help"}, want: "orient [slug]"},
44
48
  {args: []string{"handoff", "--help"}, want: "handoff [slug]"},
49
+ {args: []string{"next", "help"}, want: "devrites-engine next [slug]"},
50
+ {args: []string{"dispatch", "help"}, want: "devrites-engine dispatch <slug>"},
51
+ {args: []string{"secret-scan", "help"}, want: "secret-scan [--staged] [--stdin]"},
52
+ {args: []string{"open-visual", "help"}, want: "open-visual <path-or-name>"},
45
53
  {args: []string{"claim", "--help"}, want: "claim <add|release|list|check>"},
46
54
  {args: []string{"claim", "help"}, want: "claim <add|release|list|check>"},
47
55
  {args: []string{"migrate", "--help"}, want: "migrate <slug>"},
@@ -104,3 +112,129 @@ func TestUnknownCommandHelpStillUnknown(t *testing.T) {
104
112
  t.Fatalf("stderr = %q, want unknown-command diagnostic", stderr.String())
105
113
  }
106
114
  }
115
+
116
+ func TestHelpTokenInValuePositionDoesNotShortCircuit(t *testing.T) {
117
+ for _, quote := range []string{"maxConns = 4", "--help", "-h", "-help"} {
118
+ t.Run(quote, func(t *testing.T) {
119
+ project, _ := noteWorkspace(t)
120
+ writeBasenameFile(t, project, "pool.go", "package src\n\n// flags: --help -h -help\nconst maxConns = 4\n")
121
+ var stdout, stderr bytes.Buffer
122
+ args := []string{"note", "add", "feature", "pool.go", quote, "some title"}
123
+ code := run(args, strings.NewReader(""), &stdout, &stderr)
124
+ notes := filepath.Join(project, ".devrites", "work", "feature", "notes.md")
125
+ if _, err := os.Stat(notes); err != nil {
126
+ t.Fatalf("notes.md absent (code=%d stdout=%.80q stderr=%q)", code, stdout.String(), stderr.String())
127
+ }
128
+ if code != exitOK || !strings.Contains(stdout.String(), "added: NOTE-001") {
129
+ t.Fatalf("code=%d stdout=%q", code, stdout.String())
130
+ }
131
+ })
132
+ }
133
+ for _, args := range [][]string{{"note", "add", "--help"}, {"note", "--help"}, {"check", "seal", "--help"}} {
134
+ var stdout, stderr bytes.Buffer
135
+ if code := run(args, strings.NewReader(""), &stdout, &stderr); code != exitOK || !strings.Contains(stdout.String(), "usage") && !strings.Contains(stdout.String(), "Usage") {
136
+ t.Fatalf("%v code=%d stdout=%.80q", args, code, stdout.String())
137
+ }
138
+ }
139
+ }
140
+
141
+ func TestHelpTokenAsFlagValueOrOperandIsNotHelp(t *testing.T) {
142
+ for _, tok := range []string{"--help", "-h", "-help"} {
143
+ _, root := noteWorkspace(t)
144
+ var stdout, stderr bytes.Buffer
145
+ code := run([]string{"claim", "add", "--reason", tok, "--session", "s1", "src/a.go"}, strings.NewReader(""), &stdout, &stderr)
146
+ if _, err := os.Stat(filepath.Join(root, "claims.jsonl")); err != nil || code != exitOK {
147
+ t.Fatalf("reason=%s: code=%d claims absent (%v) stdout=%.60q", tok, code, err, stdout.String())
148
+ }
149
+ _, root = noteWorkspace(t)
150
+ stdout.Reset()
151
+ code = run([]string{"claim", "add", "--session", "s1", "src/a.go", tok}, strings.NewReader(""), &stdout, &stderr)
152
+ if _, err := os.Stat(filepath.Join(root, "claims.jsonl")); err == nil {
153
+ t.Fatalf("trailing %s wrote a claim", tok)
154
+ }
155
+ if code != exitOK || !strings.Contains(stdout.String(), "claim") {
156
+ t.Fatalf("trailing %s code=%d stdout=%.60q", tok, code, stdout.String())
157
+ }
158
+ }
159
+ _, root := noteWorkspace(t)
160
+ var stdout, stderr bytes.Buffer
161
+ if code := run([]string{"claim", "add", "--reason", "ordinary", "--session", "s1", "src/a.go"}, strings.NewReader(""), &stdout, &stderr); code != exitOK {
162
+ t.Fatalf("control code=%d", code)
163
+ }
164
+ if _, err := os.Stat(filepath.Join(root, "claims.jsonl")); err != nil {
165
+ t.Fatal(err)
166
+ }
167
+ }
168
+
169
+ func TestHelpFlagAfterOtherFlagsPrintsHelp(t *testing.T) {
170
+ t.Setenv("DEVRITES_ROOT", "")
171
+ for _, test := range []struct {
172
+ args []string
173
+ want string
174
+ }{
175
+ {[]string{"secret-scan", "--staged", "--help"}, "secret-scan [--staged] [--stdin]"},
176
+ {[]string{"secret-scan", "--staged", "--stdin", "-h"}, "secret-scan [--staged] [--stdin]"},
177
+ {[]string{"check", "indexes", "--json", "-help"}, "check indexes [--root <dir>]"},
178
+ {[]string{"parallel", "create", "--json", "--help"}, "parallel create"},
179
+ } {
180
+ var stdout, stderr bytes.Buffer
181
+ code := run(test.args, strings.NewReader(""), &stdout, &stderr)
182
+ if code != exitOK || stderr.Len() != 0 || !strings.Contains(stdout.String(), test.want) {
183
+ t.Fatalf("run(%q) code=%d stdout=%.80q stderr=%q", test.args, code, stdout.String(), stderr.String())
184
+ }
185
+ }
186
+ }
187
+
188
+ func TestUsageListsRuntimeFailureExit(t *testing.T) {
189
+ if !strings.Contains(usage, "\n 1 runtime/I/O failure\n") {
190
+ t.Fatalf("usage Exit codes block omits exit 1:\n%s", usage)
191
+ }
192
+ }
193
+
194
+ func TestCLIDocsStateCloseExitCodes(t *testing.T) {
195
+ data, err := os.ReadFile(filepath.Join("..", "docs", "cli.md"))
196
+ if err != nil {
197
+ t.Fatal(err)
198
+ }
199
+ doc := string(data)
200
+ for _, want := range []string{
201
+ "`state close` exits `4` for usage or a missing workspace",
202
+ "`3` for a schema refusal",
203
+ "`5` when an archive already exists",
204
+ "`1` for an invalid workspace, archive directory, or ACTIVE cursor",
205
+ } {
206
+ if !strings.Contains(doc, want) {
207
+ t.Errorf("docs/cli.md omits %q", want)
208
+ }
209
+ }
210
+ }
211
+
212
+ func TestNoteHelpAndErrorPathShareLegendAndExitCodes(t *testing.T) {
213
+ const grades = "Grades: exact | moved | stale | ambiguous | lost"
214
+ const exits = "Exit codes: 0 ok, 2 usage, 3 blocked"
215
+ for _, args := range [][]string{
216
+ {"note", "--help"},
217
+ {"note", "help"},
218
+ {"note", "add", "--help"},
219
+ } {
220
+ var stdout, stderr bytes.Buffer
221
+ code := run(args, strings.NewReader(""), &stdout, &stderr)
222
+ if code != exitOK || stderr.Len() != 0 {
223
+ t.Fatalf("run(%q) code=%d stderr=%q", args, code, stderr.String())
224
+ }
225
+ for _, want := range []string{grades, exits} {
226
+ if !strings.Contains(stdout.String(), want) {
227
+ t.Errorf("run(%q) help omits %q:\n%s", args, want, stdout.String())
228
+ }
229
+ }
230
+ }
231
+ var stdout, stderr bytes.Buffer
232
+ if code := notes.Run(t.TempDir(), nil, &stdout, &stderr); code != notes.ExitUsage {
233
+ t.Fatalf("notes.Run with no args = %d, want usage", code)
234
+ }
235
+ for _, want := range []string{grades, exits} {
236
+ if !strings.Contains(stderr.String(), want) {
237
+ t.Errorf("note usage error omits %q:\n%s", want, stderr.String())
238
+ }
239
+ }
240
+ }