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/engine/help.go CHANGED
@@ -12,25 +12,29 @@ import (
12
12
  )
13
13
 
14
14
  const (
15
- checkUsage = `usage: devrites-engine check <candidate|readiness|seal|path-disjoint|task-graph|slice|diff-scope|skill-trust|indexes|regression|drift|windows|dup> ...
15
+ checkUsage = `usage: devrites-engine check <candidate|readiness|preconditions|seal|path-disjoint|task-graph|slice|diff-scope|skill-trust|indexes|regression|drift|windows|dup|anchors|perturb> ...
16
16
 
17
17
  check candidate <slug>
18
18
  check readiness <slug>
19
19
  check readiness --emit-binding <slug>
20
+ check preconditions <slug> [--slice SLICE-###] [--timeout N]
20
21
  check seal <slug>
21
22
  check path-disjoint [--root <dir>] [<json-file>|-]
22
23
  check task-graph <slug>
23
24
  check slice <slug> <SLICE-ID>
24
- check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--cwd <dir>]
25
+ check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--baseline] [--verbose] [--cwd <dir>]
26
+ check diff-scope <slug> --snapshot [--worktree|--staged|--base <ref>] [--cwd <dir>]
27
+ check perturb <slug> --patch <file> --expect <test-name> --gate <G-ID> [--timeout N]
25
28
  check skill-trust <path>
26
29
  check indexes [--root <dir>]
27
30
  check regression <slug> [--update]
28
31
  check drift <slug> [--record]
29
- check windows <slug> [--worktree|--staged|--base <ref>] [--cwd <dir>]
32
+ check windows <slug> [--worktree|--staged|--base <ref>|--since-dispatch <wave>] [--cwd <dir>]
30
33
  check dup [slug] [--all|--worktree|--staged|--base <ref>]
34
+ check anchors <slug> <return-file> [--skills-root <dir>]
31
35
  `
32
36
 
33
- stateUsage = `usage: devrites-engine state <resolve|merge-manifest|apply-bundle|close> ...
37
+ stateUsage = `usage: devrites-engine state <resolve|merge-manifest|apply-bundle|set|append|close> ...
34
38
 
35
39
  state resolve <qid> "<answer>"
36
40
  state resolve --drop <qid> ["<reason>"]
@@ -40,6 +44,8 @@ const (
40
44
  state resolve --human --batch <file>
41
45
  state merge-manifest <slug> [<predecessor>...]
42
46
  state apply-bundle <slug> <bundle.json>... [--dry-run]
47
+ state set <slug> <key>=<value>... [--unset <key>]...
48
+ state append <slug> <ledger.md> --heading "<text>" --body-file <path|->
43
49
  state close <slug>
44
50
  `
45
51
 
@@ -51,14 +57,14 @@ const (
51
57
 
52
58
  orientUsage = "usage: devrites-engine orient [slug]"
53
59
  nextUsage = "usage: devrites-engine next [slug]"
54
- handoffUsage = "usage: devrites-engine handoff [slug]"
55
- contextUsage = `usage: devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <SLICE-###>] [--trigger a,b] [--skills-root <dir>] [--out <path>]`
60
+ handoffUsage = "usage: devrites-engine handoff [slug] [--resume]"
61
+ contextUsage = `usage: devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <SLICE-###>] [--recheck <inventory>] [--trigger a,b] [--inline-contract] [--whole] [--skills-root <dir>] [--out <path>]`
56
62
  metricsUsage = `usage: devrites-engine metrics <record|summary> ...
57
63
 
58
64
  metrics record <slug> --phase <p> --event <e> [--role r] [--bytes n] [--note s]
59
65
  metrics summary [slug] [--by-slice]
60
66
  `
61
- dispatchUsage = `usage: devrites-engine dispatch <slug> <open|start|seal|return|status|abandon> [--phase p] [--wave w] [--role r] [--handle h] [--reason s] [--slice SLICE-###] [--reslice-review <DRIFT-ID>] [--contract <file>] [--packet <file>]`
67
+ dispatchUsage = `usage: devrites-engine dispatch <slug> <open|start|seal|return|status|abandon|attribute> [--phase p] [--wave w] [--role r] [--handle h] [--reason s] [--slice SLICE-###] [--reslice-review <DRIFT-ID>] [--contract <file>] [--packet <file>] [--outcome findings|no-findings|gap] [--result <file>] [--all] [--claim-session <id> --claim <path>... [--claim-ttl <minutes>]] [--release] [--path <path>...]`
62
68
  claimUsageText = `usage: devrites-engine claim <add|release|list|check> ...
63
69
 
64
70
  claim add --session <id> [--ttl <minutes>] [--reason <s>] <path>...
@@ -66,8 +72,9 @@ const (
66
72
  claim list [--session <id>] [--all]
67
73
  claim check [--session <id>] <path>...
68
74
  `
69
- diffScopeUsage = `usage: devrites-engine check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--cwd <dir>]`
70
- migrateUsage = "usage: devrites-engine migrate <slug> [--dry-run] [--answer id=choice]"
75
+ diffScopeUsage = `usage: devrites-engine check diff-scope <slug> --allow <csv> | --allow-file <path> [--worktree|--staged|--base <ref>] [--allow-empty] [--baseline] [--verbose] [--cwd <dir>]
76
+ devrites-engine check diff-scope <slug> --snapshot [--worktree|--staged|--base <ref>] [--cwd <dir>]`
77
+ migrateUsage = "usage: devrites-engine migrate <slug> [--dry-run] [--answer id=choice]"
71
78
  // scanCmdUsage is help text for `secret-scan`. The identifier must not
72
79
  // contain "secret": gosec G101 treats secret* string consts as credentials.
73
80
  scanCmdUsage = "usage: devrites-engine secret-scan [--staged] [--stdin] [slug]"
@@ -75,6 +82,7 @@ const (
75
82
  versionUsage = "usage: devrites-engine version"
76
83
  candidateUsage = "usage: devrites-engine check candidate <slug>"
77
84
  readinessUsage = "usage: devrites-engine check readiness <slug>\n devrites-engine check readiness --emit-binding <slug>"
85
+ preconditionsUsage = "usage: devrites-engine check preconditions <slug> [--slice SLICE-###] [--timeout N]"
78
86
  sealUsage = "usage: devrites-engine check seal <slug>"
79
87
  taskGraphUsage = "usage: devrites-engine check task-graph <slug>"
80
88
  sliceCheckUsage = "usage: devrites-engine check slice <slug> <SLICE-ID>"
@@ -83,15 +91,17 @@ const (
83
91
  regressionUsageLine = "usage: devrites-engine check regression <slug> [--update]"
84
92
  driftUsageLine = "usage: devrites-engine check drift <slug> [--record]"
85
93
  detectUsageLine = "usage: devrites-engine detect commands [--root <dir>] [--json]"
86
- windowsUsageLine = "usage: devrites-engine check windows <slug> [--worktree|--staged|--base <ref>] [--cwd <dir>]"
94
+ windowsUsageLine = "usage: devrites-engine check windows <slug> [--worktree|--staged|--base <ref>|--since-dispatch <wave>] [--cwd <dir>]"
87
95
  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>]"
88
96
  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>`
89
97
  mergeManifestUsage = "usage: devrites-engine state merge-manifest <slug> [<predecessor>...]"
90
98
  applyBundleUsage = "usage: devrites-engine state apply-bundle <slug> <bundle.json>... [--dry-run]"
91
99
  closeUsage = "usage: devrites-engine state close <slug>"
100
+ stateSetUsage = "usage: devrites-engine state set <slug> <key>=<value>... [--unset <key>]..."
101
+ stateAppendUsage = `usage: devrites-engine state append <slug> <ledger.md> --heading "<text>" --body-file <path|->`
92
102
  observeSliceUsage = "usage: devrites-engine observe slice <slug> <SLICE-ID>"
93
103
  observeSummaryUsage = "usage: devrites-engine observe summary [slug]"
94
- gatesFamilyUsage = `usage: devrites-engine gates <scaffold|status|run|reverify|lint|attest|abandon> <slug> ...
104
+ gatesFamilyUsage = `usage: devrites-engine gates <scaffold|status|run|reverify|lint|precheck|attest|abandon> <slug> ...
95
105
 
96
106
  gates scaffold <slug> Create gates.md from spec.md AC ids (only when absent)
97
107
  gates status <slug> Reduce the ledger without executing; exit 3 unless ALL MET
@@ -99,6 +109,7 @@ const (
99
109
  gates reverify <slug> [--timeout N] [--transcripts] Re-execute every runnable gate, demoting stale passes
100
110
  (--transcripts: one redacted, candidate-bound file per gate in references/gates/)
101
111
  gates lint <slug> [--strict] Audit oracle quality without executing
112
+ gates precheck <slug> --worktree <path> Run RUN: writer gates + check windows in <path>; no ledger, EVIDENCE or transcript write (check windows logs its metric); never evidence
102
113
  gates attest <slug> <id> <note> Record human evidence on a manual gate
103
114
  gates abandon <slug> <id> <why> Record a terminal ABANDON handoff on a gate
104
115
  `
@@ -122,7 +133,7 @@ func isHelpToken(arg string) bool {
122
133
  // still in flag position rather than in a value position.
123
134
  func takesSubcommand(command string) bool {
124
135
  switch command {
125
- case "check", "state", "observe", "parallel", "gates", "claim", "note", "metrics", "detect", "overhaul":
136
+ case "check", "state", "observe", "parallel", "gates", "claim", "note", "metrics", "detect", "overhaul", "candidate":
126
137
  return true
127
138
  default:
128
139
  return false
@@ -133,9 +144,11 @@ func takesSubcommand(command string) bool {
133
144
  // value. A command listed here has known flags, so its help flag is honoured
134
145
  // anywhere except as the value of one of these flags.
135
146
  var valueFlags = map[string]map[string]bool{
136
- "claim": {"--session": true, "--reason": true, "--ttl": true, "--id": true},
137
- "dispatch": {"--phase": true, "--wave": true, "--role": true, "--handle": true, "--reason": true},
138
- "recall": {"--paths": true, "--limit": true},
147
+ "claim": {"--session": true, "--reason": true, "--ttl": true, "--id": true},
148
+ "dispatch": {"--phase": true, "--wave": true, "--role": true, "--handle": true, "--reason": true, "--claim-session": true, "--claim": true, "--claim-ttl": true, "--path": true},
149
+ "packet": {"--wave": true, "--phase": true, "--role": true, "--slice": true, "--checks": true, "--focus": true},
150
+ "candidate": {"--wave": true, "--slice": true, "--base": true},
151
+ "recall": {"--paths": true, "--limit": true},
139
152
  }
140
153
 
141
154
  // hasHelpFlag reports whether args (the arguments after the command word) are a
@@ -173,7 +186,7 @@ func shouldPrintHelp(args []string) bool {
173
186
  return true
174
187
  }
175
188
  switch args[0] {
176
- case "check", "state", "observe", "parallel", "gates", "claim", "detect", "note", "metrics", "handoff", "context", "orient", "migrate", "overhaul", "next", "dispatch", "secret-scan", "open-visual", "recall":
189
+ case "check", "state", "observe", "parallel", "gates", "claim", "detect", "note", "metrics", "handoff", "context", "orient", "migrate", "overhaul", "next", "dispatch", "secret-scan", "open-visual", "recall", "packet", "candidate":
177
190
  return len(args) >= 2 && args[1] == "help"
178
191
  default:
179
192
  return false
@@ -225,6 +238,10 @@ func commandHelp(args []string) (string, bool) {
225
238
  return metricsUsage, true
226
239
  case "dispatch":
227
240
  return dispatchUsage, true
241
+ case "packet":
242
+ return lib.PacketUsage, true
243
+ case "candidate":
244
+ return lib.CandidateFreezeUsage, true
228
245
  case "claim":
229
246
  return claimUsageText, true
230
247
  case "parallel":
@@ -256,6 +273,8 @@ func helpCheck(rest []string) string {
256
273
  return candidateUsage
257
274
  case "readiness":
258
275
  return readinessUsage
276
+ case "preconditions":
277
+ return preconditionsUsage
259
278
  case "seal":
260
279
  return sealUsage
261
280
  case "path-disjoint":
@@ -278,6 +297,10 @@ func helpCheck(rest []string) string {
278
297
  return windowsUsageLine
279
298
  case "dup":
280
299
  return dupUsageLine
300
+ case "anchors":
301
+ return lib.AnchorsUsage
302
+ case "perturb":
303
+ return lib.PerturbUsage
281
304
  default:
282
305
  return checkUsage
283
306
  }
@@ -291,6 +314,10 @@ func helpState(rest []string) string {
291
314
  return mergeManifestUsage
292
315
  case "apply-bundle":
293
316
  return applyBundleUsage
317
+ case "set":
318
+ return stateSetUsage
319
+ case "append":
320
+ return stateAppendUsage
294
321
  case "close":
295
322
  return closeUsage
296
323
  default:
@@ -16,6 +16,17 @@ type ApprovedCommand struct {
16
16
  Cwd string // normalized; "" means the repository root
17
17
  }
18
18
 
19
+ // PreflightRow is one row of test-plan.md's Build-entry preflight table: the
20
+ // approved (command, cwd) pair plus the cells check preconditions reads.
21
+ type PreflightRow struct {
22
+ ApprovedCommand
23
+ Gate string
24
+ Expected string
25
+ // RunAt is the optional `Run at` cell (`vet`, `pre-dispatch SLICE-###`,
26
+ // `action`), whitespace-collapsed; "" when the row or table has none.
27
+ RunAt string
28
+ }
29
+
19
30
  // ApprovedCommands extracts the approved command surface of test-plan.md: the
20
31
  // Command and Cwd cells of every row under `## Build-entry preflight`. No
21
32
  // other section approves execution — fenced examples, prose mentions, and
@@ -28,17 +39,29 @@ type ApprovedCommand struct {
28
39
  // as "no approval is applicable".
29
40
  func ApprovedCommands(testPlan []byte) []ApprovedCommand {
30
41
  approved := []ApprovedCommand{}
42
+ rows, _ := PreflightRows(testPlan)
43
+ for _, row := range rows {
44
+ approved = append(approved, row.ApprovedCommand)
45
+ }
46
+ return approved
47
+ }
48
+
49
+ // PreflightRows parses every command row under `## Build-entry preflight`, the
50
+ // one parser behind the approved surface. hasRunAt reports whether a table in
51
+ // the section declares the optional `Run at` column; plans without it keep
52
+ // the pre-column behavior everywhere.
53
+ func PreflightRows(testPlan []byte) (rows []PreflightRow, hasRunAt bool) {
31
54
  structural, err := markdowntext.Structural(testPlan)
32
55
  if err != nil {
33
- return approved
56
+ return nil, false
34
57
  }
35
58
  inSection := false
36
- commandCol, cwdCol := -1, -1
59
+ commandCol, cwdCol, gateCol, expectedCol, runAtCol := -1, -1, -1, -1, -1
37
60
  for _, line := range strings.Split(string(structural), "\n") {
38
61
  trimmed := strings.TrimSpace(line)
39
62
  if strings.HasPrefix(trimmed, "##") {
40
63
  inSection = strings.EqualFold(trimmed, "## Build-entry preflight")
41
- commandCol, cwdCol = -1, -1
64
+ commandCol = -1
42
65
  continue
43
66
  }
44
67
  if !inSection {
@@ -51,6 +74,10 @@ func ApprovedCommands(testPlan []byte) []ApprovedCommand {
51
74
  if commandCol < 0 {
52
75
  commandCol = columnIndex(cells, "command")
53
76
  cwdCol = columnIndex(cells, "cwd")
77
+ gateCol = columnIndex(cells, "gate")
78
+ expectedCol = columnIndex(cells, "expected")
79
+ runAtCol = columnIndex(cells, "run at")
80
+ hasRunAt = hasRunAt || (commandCol >= 0 && runAtCol >= 0)
54
81
  continue
55
82
  }
56
83
  if isDividerRow(cells) || commandCol >= len(cells) {
@@ -60,13 +87,25 @@ func ApprovedCommands(testPlan []byte) []ApprovedCommand {
60
87
  if command == "" {
61
88
  continue
62
89
  }
63
- cwd := ""
90
+ row := PreflightRow{ApprovedCommand: ApprovedCommand{Command: command}}
64
91
  if cwdCol >= 0 && cwdCol < len(cells) {
65
- cwd = normalizeApprovedCwd(cells[cwdCol])
92
+ row.Cwd = normalizeApprovedCwd(cells[cwdCol])
66
93
  }
67
- approved = append(approved, ApprovedCommand{Command: command, Cwd: cwd})
94
+ row.Gate = cellText(cells, gateCol)
95
+ row.Expected = cellText(cells, expectedCol)
96
+ row.RunAt = strings.Join(strings.Fields(cellText(cells, runAtCol)), " ")
97
+ rows = append(rows, row)
68
98
  }
69
- return approved
99
+ return rows, hasRunAt
100
+ }
101
+
102
+ // cellText returns a cell's trimmed text without code backticks, "" when the
103
+ // column is absent or the row is short.
104
+ func cellText(cells []string, col int) string {
105
+ if col < 0 || col >= len(cells) {
106
+ return ""
107
+ }
108
+ return strings.TrimSpace(strings.Trim(strings.TrimSpace(cells[col]), "`"))
70
109
  }
71
110
 
72
111
  // Approved reports whether (check, cwd) is a vetted pair. Approval is
@@ -33,6 +33,10 @@ Subcommands:
33
33
  (--transcripts writes one redacted, candidate-bound
34
34
  file per gate under references/gates/<gate-id>/)
35
35
  lint <slug> [--strict] Audit oracle quality without executing
36
+ precheck <slug> --worktree <path>
37
+ Run every RUN: writer gate, then check windows, in
38
+ <path>; writes no ledger, EVIDENCE line or
39
+ transcript (check windows still logs its metric)
36
40
  attest <slug> <id> <note> Record human evidence on a manual gate
37
41
  abandon <slug> <id> <why> Record a terminal ABANDON handoff on a gate
38
42
 
@@ -60,6 +64,8 @@ func Run(root string, args []string, stdout, stderr io.Writer) int {
60
64
  return cmdRun(root, rest, true, stdout, stderr)
61
65
  case "lint":
62
66
  return cmdLint(root, rest, stdout, stderr)
67
+ case "precheck":
68
+ return cmdPrecheck(root, rest, stdout, stderr)
63
69
  case "attest":
64
70
  return cmdAttest(root, rest, stdout, stderr)
65
71
  case "abandon":
@@ -363,6 +369,102 @@ func cmdLint(root string, args []string, stdout, stderr io.Writer) int {
363
369
  return ExitOK
364
370
  }
365
371
 
372
+ // WindowsCheck runs `check windows` with the given arguments. main wires it to
373
+ // lib.RunCheckWindows because acceptance cannot import lib (lib imports it).
374
+ var WindowsCheck func(root string, args []string, stdout, stderr io.Writer) int
375
+
376
+ // cmdPrecheck is the wright's pre-return run of the `RUN: writer` gates and
377
+ // `check windows` against its worktree. It reads gates.md but writes no
378
+ // ledger, EVIDENCE line or transcript: nothing it prints is evidence, and the
379
+ // root still runs every gate canonically.
380
+ func cmdPrecheck(root string, args []string, stdout, stderr io.Writer) int {
381
+ const usage = "usage: devrites-engine gates precheck <slug> --worktree <path>"
382
+ var slug, worktree string
383
+ for i := 0; i < len(args); i++ {
384
+ switch {
385
+ case args[i] == "--worktree" && i+1 < len(args) && worktree == "":
386
+ worktree = args[i+1]
387
+ i++
388
+ case strings.HasPrefix(args[i], "-") || slug != "":
389
+ fmt.Fprintln(stderr, usage)
390
+ return ExitUsage
391
+ default:
392
+ slug = args[i]
393
+ }
394
+ }
395
+ if slug == "" || worktree == "" {
396
+ fmt.Fprintln(stderr, usage)
397
+ return ExitUsage
398
+ }
399
+ worktree, err := filepath.Abs(worktree)
400
+ if err == nil {
401
+ var info os.FileInfo
402
+ if info, err = os.Stat(worktree); err == nil && !info.IsDir() {
403
+ err = fmt.Errorf("%s is not a directory", worktree)
404
+ }
405
+ }
406
+ if err != nil {
407
+ fmt.Fprintf(stderr, "gates precheck: worktree: %v\n", err)
408
+ return ExitBlocked
409
+ }
410
+ _, ledgerPath, testPlanPath, _, err := featurePaths(root, slug)
411
+ if err != nil {
412
+ fmt.Fprintf(stderr, "gates precheck: %v\n", err)
413
+ return ExitBlocked
414
+ }
415
+ text, err := ReadLedgerFile(ledgerPath)
416
+ if err != nil {
417
+ fmt.Fprintf(stderr, "gates precheck: %v\n", err)
418
+ return ExitBlocked
419
+ }
420
+ doc := ParseLedger(text)
421
+ for _, parseErr := range doc.Errors {
422
+ fmt.Fprintf(stdout, "error: %s\n", parseErr)
423
+ }
424
+ // Like cmdRun: a malformed ledger (e.g. a CWD escaping the worktree) runs nothing.
425
+ if len(doc.Errors) > 0 {
426
+ fmt.Fprintln(stdout, "precheck: fail (not evidence; fix before returning)")
427
+ return ExitBlocked
428
+ }
429
+ failed := false
430
+ approved := loadTestPlan(testPlanPath)
431
+ for _, gate := range doc.WriterGates() {
432
+ expectation, expectErr := CompileExpect(gate.Expect)
433
+ switch {
434
+ case gate.Check == "":
435
+ fmt.Fprintf(stdout, "FAIL %s (RUN: writer row has no CHECK)\n", gate.ID)
436
+ case !Approved(gate.Check, gate.Cwd, approved):
437
+ fmt.Fprintf(stdout, "FAIL %s (CHECK/CWD is not an approved test-plan.md preflight row; not executed)\n", gate.ID)
438
+ case expectErr != nil:
439
+ fmt.Fprintf(stdout, "FAIL %s (%v)\n", gate.ID, expectErr)
440
+ default:
441
+ outcome := Execute(context.Background(), gate.Check, filepath.Join(worktree, filepath.FromSlash(gate.Cwd)), DefaultTimeout)
442
+ if outcome.Err == nil && outcome.ExitCode == 0 && expectation.Matches(outcome.Output) {
443
+ fmt.Fprintf(stdout, "PASS %s\n", gate.ID)
444
+ continue
445
+ }
446
+ fmt.Fprintf(stdout, "FAIL %s (%s)\n", gate.ID, failDetail(outcome, expectation))
447
+ }
448
+ failed = true
449
+ }
450
+ switch {
451
+ case WindowsCheck == nil:
452
+ fmt.Fprintln(stdout, "FAIL windows (check windows is not wired into this engine)")
453
+ failed = true
454
+ case WindowsCheck(root, []string{slug, "--worktree", "--cwd", worktree}, stdout, stderr) != ExitOK:
455
+ fmt.Fprintln(stdout, "FAIL windows")
456
+ failed = true
457
+ default:
458
+ fmt.Fprintln(stdout, "PASS windows")
459
+ }
460
+ if failed {
461
+ fmt.Fprintln(stdout, "precheck: fail (not evidence; fix before returning)")
462
+ return ExitBlocked
463
+ }
464
+ fmt.Fprintln(stdout, "precheck: pass (not evidence; the root still runs every gate)")
465
+ return ExitOK
466
+ }
467
+
366
468
  func cmdAttest(root string, args []string, stdout, stderr io.Writer) int {
367
469
  if len(args) < 3 {
368
470
  fmt.Fprintln(stderr, "usage: devrites-engine gates attest <slug> <gate-id> <evidence note>")
@@ -104,18 +104,20 @@ func Execute(ctx context.Context, check, cwd string, timeout time.Duration) RunO
104
104
  return RunOutcome{Err: fmt.Errorf("check could not start: %v", startErr)}
105
105
  }
106
106
  waitErr := cmd.Wait()
107
- if ctx.Err() == context.DeadlineExceeded {
108
- return RunOutcome{Err: fmt.Errorf("check timed out after %s", timeout), TimedOut: true}
109
- }
110
- if stdout.overflow || stderr.overflow {
111
- return RunOutcome{Err: fmt.Errorf("check output exceeded %d bytes", MaxOutputBytes)}
112
- }
113
107
  out, errText := stdout.buf.String(), stderr.buf.String()
114
108
  canonical := out
115
109
  if out != "" && errText != "" {
116
110
  canonical += "\n"
117
111
  }
118
112
  canonical += errText
113
+ if ctx.Err() == context.DeadlineExceeded {
114
+ // Keep what the check printed before the deadline so its transcript shows
115
+ // how far it got; Err still fails the gate.
116
+ return RunOutcome{Err: fmt.Errorf("check timed out after %s", timeout), TimedOut: true, Output: canonical, OutputBytes: len(canonical)}
117
+ }
118
+ if stdout.overflow || stderr.overflow {
119
+ return RunOutcome{Err: fmt.Errorf("check output exceeded %d bytes", MaxOutputBytes)}
120
+ }
119
121
  if len(canonical) > MaxOutputBytes {
120
122
  return RunOutcome{Err: fmt.Errorf("check output exceeded %d bytes after decoding", MaxOutputBytes)}
121
123
  }
@@ -31,6 +31,7 @@ type Gate struct {
31
31
  Expect string
32
32
  Cwd string
33
33
  Inputs string // optional whitespace-separated paths/globs the result depends on
34
+ Run string // optional "writer": the wright pre-runs it via `gates precheck`; default root
34
35
  Evidence string
35
36
  Line int // 1-based line of the "- [ ]" row in the original text
36
37
  }
@@ -47,7 +48,7 @@ type Document struct {
47
48
 
48
49
  var (
49
50
  gateLineRE = regexp.MustCompile(`^\s*- \[([ xX])\] ([^\s:]+): (.*)$`)
50
- attrLineRE = regexp.MustCompile(`^(\s+)(CHECK|EXPECT|CWD|INPUTS|EVIDENCE):(.*)$`)
51
+ attrLineRE = regexp.MustCompile(`^(\s+)(CHECK|EXPECT|CWD|INPUTS|EVIDENCE|RUN):(.*)$`)
51
52
  unindentedAttr = regexp.MustCompile(`^(CHECK|EXPECT|CWD|INPUTS|EVIDENCE):`)
52
53
  abandonLineRE = regexp.MustCompile(`^ABANDON: (\S+)\s*(.*)$`)
53
54
  indentedAbandon = regexp.MustCompile(`^\s+ABANDON:`)
@@ -117,6 +118,8 @@ func ParseLedger(text string) *Document {
117
118
  current.Cwd = value
118
119
  case "INPUTS":
119
120
  current.Inputs = value
121
+ case "RUN":
122
+ current.Run = value
120
123
  case "EVIDENCE":
121
124
  current.Evidence = value
122
125
  }
@@ -253,6 +256,18 @@ func (e Expectation) Matches(output string) bool {
253
256
  return strings.Contains(output, e.Literal)
254
257
  }
255
258
 
259
+ // WriterGates returns the live gates marked `RUN: writer`. The wright pre-runs
260
+ // them through `gates precheck`; the root still runs every gate canonically.
261
+ func (d *Document) WriterGates() []*Gate {
262
+ var gates []*Gate
263
+ for _, gate := range d.Gates {
264
+ if _, abandoned := d.Abandoned[gate.ID]; !abandoned && gate.Run == "writer" {
265
+ gates = append(gates, gate)
266
+ }
267
+ }
268
+ return gates
269
+ }
270
+
256
271
  // Newline returns the document's original line-ending style for writeback.
257
272
  func (d *Document) Newline() string {
258
273
  if d.newline == "" {
@@ -29,7 +29,8 @@ var (
29
29
 
30
30
  // LintLedger audits oracle quality without executing anything: fixed-output
31
31
  // commands, expectations that also appear in failure output, path-shaped
32
- // regexes, activity titles, unmeasured numbers, and mostly-manual ledgers.
32
+ // regexes, activity titles, unmeasured numbers, mostly-manual ledgers, and a
33
+ // `RUN:` value precheck cannot honor.
33
34
  // approved is the vetted (command, cwd) surface; a runnable CHECK outside it
34
35
  // is an authoring error because the runner can never execute it.
35
36
  func LintLedger(doc *Document, approved []ApprovedCommand) []Finding {
@@ -76,6 +77,13 @@ func LintLedger(doc *Document, approved []ApprovedCommand) []Finding {
76
77
  "EXPECT %q looks like a literal path but is read as a regular expression, so its dots are wildcards", gate.Expect)
77
78
  }
78
79
  }
80
+ switch {
81
+ case gate.Run != "" && gate.Run != "writer" && gate.Run != "root":
82
+ add("error", gate.ID, "run-value", "RUN %q must be writer or root", gate.Run)
83
+ case gate.Run == "writer" && gate.Check == "":
84
+ add("error", gate.ID, "writer-manual",
85
+ "RUN: writer needs a CHECK: `gates precheck` executes the row, and a manual gate has nothing to execute")
86
+ }
79
87
  if activityStartRE.MatchString(gate.Title) {
80
88
  add("warn", gate.ID, "activity-not-outcome",
81
89
  "names an activity, not an outcome a stranger could judge: %q", gate.Title)