devrites 7.2.8 → 7.3.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 (330) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +1 -1
  3. package/docs/candidate-integrity.md +10 -0
  4. package/docs/cli.md +7 -1
  5. package/docs/command-map.md +5 -2
  6. package/docs/engine/commands.md +28 -4
  7. package/docs/orchestration.md +26 -13
  8. package/docs/skills.md +5 -0
  9. package/engine/internal/acceptance/cli.go +27 -26
  10. package/engine/internal/acceptance/preconditions.go +1 -1
  11. package/engine/internal/acceptance/run.go +42 -16
  12. package/engine/internal/acceptance/transcript.go +236 -45
  13. package/engine/internal/devritespaths/paths.go +16 -3
  14. package/engine/internal/gate/gate.go +6 -0
  15. package/engine/internal/lib/candidate.go +20 -7
  16. package/engine/internal/lib/candidate_coverage.go +2 -19
  17. package/engine/internal/lib/closeout.go +16 -4
  18. package/engine/internal/lib/context.go +64 -45
  19. package/engine/internal/lib/context_io.go +171 -0
  20. package/engine/internal/lib/detect.go +8 -8
  21. package/engine/internal/lib/dispatch.go +2 -0
  22. package/engine/internal/lib/packet.go +37 -7
  23. package/engine/internal/lib/packet_freeze.go +60 -12
  24. package/engine/internal/lib/packet_integrity.go +179 -0
  25. package/engine/internal/lib/perturb.go +3 -3
  26. package/engine/internal/lib/slicecheck.go +7 -1
  27. package/engine/internal/lib/taskgraph.go +20 -36
  28. package/engine/internal/lib/triggers.go +28 -29
  29. package/engine/internal/lib/workspace_pool.go +330 -0
  30. package/engine/internal/parallel/cli.go +190 -49
  31. package/engine/internal/parallel/git.go +47 -14
  32. package/engine/internal/parallel/landing.go +232 -0
  33. package/engine/internal/parallel/lease.go +97 -18
  34. package/engine/internal/parallel/ops.go +312 -155
  35. package/engine/internal/parallel/pathdisjoint.go +48 -4
  36. package/engine/internal/parallel/prune.go +133 -0
  37. package/engine/internal/parallel/repository.go +239 -0
  38. package/engine/internal/parallel/select.go +64 -42
  39. package/engine/main.go +2 -1
  40. package/pack/.claude/agents/devrites-proof-runner.md +16 -9
  41. package/pack/.claude/skills/devrites-lib/SKILL.md +2 -0
  42. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  43. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  44. package/pack/.claude/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  45. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  46. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +1 -1
  47. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  48. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +18 -9
  49. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  50. package/pack/.claude/skills/rite-autocomplete/SKILL.md +13 -10
  51. package/pack/.claude/skills/rite-autocomplete/reference/lookahead.md +4 -4
  52. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +13 -9
  53. package/pack/.claude/skills/rite-build/SKILL.md +13 -10
  54. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
  55. package/pack/.claude/skills/rite-build/reference/checkpoint.md +1 -1
  56. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +57 -36
  57. package/pack/.claude/skills/rite-build/reference/phase-contract.md +8 -5
  58. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +7 -7
  59. package/pack/.claude/skills/rite-clarify/SKILL.md +2 -2
  60. package/pack/.claude/skills/rite-converge/SKILL.md +4 -4
  61. package/pack/.claude/skills/rite-define/SKILL.md +7 -3
  62. package/pack/.claude/skills/rite-define/reference/plan-template.md +4 -2
  63. package/pack/.claude/skills/rite-plan/SKILL.md +11 -8
  64. package/pack/.claude/skills/rite-plan/reference/dependency-graph.md +9 -2
  65. package/pack/.claude/skills/rite-plan/reference/slicing.md +2 -0
  66. package/pack/.claude/skills/rite-polish/SKILL.md +3 -3
  67. package/pack/.claude/skills/rite-prove/SKILL.md +9 -5
  68. package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
  69. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +2 -0
  70. package/pack/.claude/skills/rite-review/SKILL.md +4 -3
  71. package/pack/.claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  72. package/pack/.claude/skills/rite-seal/SKILL.md +1 -1
  73. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +1 -1
  74. package/pack/.claude/skills/rite-ship/SKILL.md +2 -2
  75. package/pack/.claude/skills/rite-ship/reference/git-ship.md +2 -2
  76. package/pack/.claude/skills/rite-spec/SKILL.md +8 -5
  77. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +5 -0
  78. package/pack/.claude/skills/rite-temper/SKILL.md +3 -3
  79. package/pack/.claude/skills/rite-vet/SKILL.md +9 -5
  80. package/pack/.claude/skills/rite-vet/reference/review-axes.md +12 -5
  81. package/pack/generated/claude/agents/devrites-proof-runner.md +16 -9
  82. package/pack/generated/claude/skills/devrites-lib/SKILL.md +2 -0
  83. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  84. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  85. package/pack/generated/claude/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  86. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  87. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +1 -1
  88. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  89. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +18 -9
  90. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  91. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +13 -10
  92. package/pack/generated/claude/skills/rite-autocomplete/reference/lookahead.md +4 -4
  93. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +13 -9
  94. package/pack/generated/claude/skills/rite-build/SKILL.md +13 -10
  95. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
  96. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +1 -1
  97. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +57 -36
  98. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +8 -5
  99. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +7 -7
  100. package/pack/generated/claude/skills/rite-clarify/SKILL.md +2 -2
  101. package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -4
  102. package/pack/generated/claude/skills/rite-define/SKILL.md +7 -3
  103. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +4 -2
  104. package/pack/generated/claude/skills/rite-plan/SKILL.md +11 -8
  105. package/pack/generated/claude/skills/rite-plan/reference/dependency-graph.md +9 -2
  106. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +2 -0
  107. package/pack/generated/claude/skills/rite-polish/SKILL.md +3 -3
  108. package/pack/generated/claude/skills/rite-prove/SKILL.md +9 -5
  109. package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
  110. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +2 -0
  111. package/pack/generated/claude/skills/rite-review/SKILL.md +4 -3
  112. package/pack/generated/claude/skills/rite-review/reference/feature-scoped-review.md +2 -2
  113. package/pack/generated/claude/skills/rite-seal/SKILL.md +1 -1
  114. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +1 -1
  115. package/pack/generated/claude/skills/rite-ship/SKILL.md +2 -2
  116. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +2 -2
  117. package/pack/generated/claude/skills/rite-spec/SKILL.md +8 -5
  118. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +5 -0
  119. package/pack/generated/claude/skills/rite-temper/SKILL.md +3 -3
  120. package/pack/generated/claude/skills/rite-vet/SKILL.md +9 -5
  121. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +12 -5
  122. package/pack/generated/codex/agents/devrites-proof-runner.toml +16 -9
  123. package/pack/generated/codex/skills/devrites-lib/SKILL.md +2 -0
  124. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  125. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  126. package/pack/generated/codex/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  127. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  128. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -1
  129. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  130. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +18 -9
  131. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  132. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +13 -10
  133. package/pack/generated/codex/skills/rite-autocomplete/reference/lookahead.md +4 -4
  134. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +13 -9
  135. package/pack/generated/codex/skills/rite-build/SKILL.md +13 -10
  136. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
  137. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +1 -1
  138. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +57 -36
  139. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +8 -5
  140. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +7 -7
  141. package/pack/generated/codex/skills/rite-clarify/SKILL.md +2 -2
  142. package/pack/generated/codex/skills/rite-converge/SKILL.md +4 -4
  143. package/pack/generated/codex/skills/rite-define/SKILL.md +7 -3
  144. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +4 -2
  145. package/pack/generated/codex/skills/rite-plan/SKILL.md +11 -8
  146. package/pack/generated/codex/skills/rite-plan/reference/dependency-graph.md +9 -2
  147. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +2 -0
  148. package/pack/generated/codex/skills/rite-polish/SKILL.md +3 -3
  149. package/pack/generated/codex/skills/rite-prove/SKILL.md +9 -5
  150. package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
  151. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +2 -0
  152. package/pack/generated/codex/skills/rite-review/SKILL.md +4 -3
  153. package/pack/generated/codex/skills/rite-review/reference/feature-scoped-review.md +2 -2
  154. package/pack/generated/codex/skills/rite-seal/SKILL.md +1 -1
  155. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +1 -1
  156. package/pack/generated/codex/skills/rite-ship/SKILL.md +2 -2
  157. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +2 -2
  158. package/pack/generated/codex/skills/rite-spec/SKILL.md +8 -5
  159. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +5 -0
  160. package/pack/generated/codex/skills/rite-temper/SKILL.md +3 -3
  161. package/pack/generated/codex/skills/rite-vet/SKILL.md +9 -5
  162. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +12 -5
  163. package/pack/generated/devin/agents/devrites-proof-runner.md +16 -9
  164. package/pack/generated/devin/skills/devrites-lib/SKILL.md +2 -0
  165. package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  166. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  167. package/pack/generated/devin/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  168. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  169. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +1 -1
  170. package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  171. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +18 -9
  172. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  173. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +13 -10
  174. package/pack/generated/devin/skills/rite-autocomplete/reference/lookahead.md +4 -4
  175. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +13 -9
  176. package/pack/generated/devin/skills/rite-build/SKILL.md +13 -10
  177. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +1 -1
  178. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +1 -1
  179. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +57 -36
  180. package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +8 -5
  181. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +7 -7
  182. package/pack/generated/devin/skills/rite-clarify/SKILL.md +2 -2
  183. package/pack/generated/devin/skills/rite-converge/SKILL.md +4 -4
  184. package/pack/generated/devin/skills/rite-define/SKILL.md +7 -3
  185. package/pack/generated/devin/skills/rite-define/reference/plan-template.md +4 -2
  186. package/pack/generated/devin/skills/rite-plan/SKILL.md +11 -8
  187. package/pack/generated/devin/skills/rite-plan/reference/dependency-graph.md +9 -2
  188. package/pack/generated/devin/skills/rite-plan/reference/slicing.md +2 -0
  189. package/pack/generated/devin/skills/rite-polish/SKILL.md +3 -3
  190. package/pack/generated/devin/skills/rite-prove/SKILL.md +9 -5
  191. package/pack/generated/devin/skills/rite-resolve/SKILL.md +3 -3
  192. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +2 -0
  193. package/pack/generated/devin/skills/rite-review/SKILL.md +4 -3
  194. package/pack/generated/devin/skills/rite-review/reference/feature-scoped-review.md +2 -2
  195. package/pack/generated/devin/skills/rite-seal/SKILL.md +1 -1
  196. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +1 -1
  197. package/pack/generated/devin/skills/rite-ship/SKILL.md +2 -2
  198. package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +2 -2
  199. package/pack/generated/devin/skills/rite-spec/SKILL.md +8 -5
  200. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +5 -0
  201. package/pack/generated/devin/skills/rite-temper/SKILL.md +3 -3
  202. package/pack/generated/devin/skills/rite-vet/SKILL.md +9 -5
  203. package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +12 -5
  204. package/pack/generated/dsh/agents/devrites-proof-runner.md +16 -9
  205. package/pack/generated/dsh/runtime/cordis.patch.yml +1 -1
  206. package/pack/generated/dsh/skills/devrites-lib/SKILL.md +2 -0
  207. package/pack/generated/dsh/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  208. package/pack/generated/dsh/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  209. package/pack/generated/dsh/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  210. package/pack/generated/dsh/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  211. package/pack/generated/dsh/skills/devrites-lib/reference/standards/agents.md +1 -1
  212. package/pack/generated/dsh/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  213. package/pack/generated/dsh/skills/devrites-lib/reference/standards/gates.md +18 -9
  214. package/pack/generated/dsh/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  215. package/pack/generated/dsh/skills/rite-autocomplete/SKILL.md +13 -10
  216. package/pack/generated/dsh/skills/rite-autocomplete/reference/lookahead.md +4 -4
  217. package/pack/generated/dsh/skills/rite-autocomplete/reference/loop.md +13 -9
  218. package/pack/generated/dsh/skills/rite-build/SKILL.md +13 -10
  219. package/pack/generated/dsh/skills/rite-build/reference/afk-discipline.md +1 -1
  220. package/pack/generated/dsh/skills/rite-build/reference/checkpoint.md +1 -1
  221. package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +57 -36
  222. package/pack/generated/dsh/skills/rite-build/reference/phase-contract.md +8 -5
  223. package/pack/generated/dsh/skills/rite-build/reference/wright-dispatch.md +7 -7
  224. package/pack/generated/dsh/skills/rite-clarify/SKILL.md +2 -2
  225. package/pack/generated/dsh/skills/rite-converge/SKILL.md +4 -4
  226. package/pack/generated/dsh/skills/rite-define/SKILL.md +7 -3
  227. package/pack/generated/dsh/skills/rite-define/reference/plan-template.md +4 -2
  228. package/pack/generated/dsh/skills/rite-plan/SKILL.md +11 -8
  229. package/pack/generated/dsh/skills/rite-plan/reference/dependency-graph.md +9 -2
  230. package/pack/generated/dsh/skills/rite-plan/reference/slicing.md +2 -0
  231. package/pack/generated/dsh/skills/rite-polish/SKILL.md +3 -3
  232. package/pack/generated/dsh/skills/rite-prove/SKILL.md +9 -5
  233. package/pack/generated/dsh/skills/rite-resolve/SKILL.md +3 -3
  234. package/pack/generated/dsh/skills/rite-resolve/reference/answer-protocol.md +2 -0
  235. package/pack/generated/dsh/skills/rite-review/SKILL.md +4 -3
  236. package/pack/generated/dsh/skills/rite-review/reference/feature-scoped-review.md +2 -2
  237. package/pack/generated/dsh/skills/rite-seal/SKILL.md +1 -1
  238. package/pack/generated/dsh/skills/rite-seal/reference/phase-contract.md +1 -1
  239. package/pack/generated/dsh/skills/rite-ship/SKILL.md +2 -2
  240. package/pack/generated/dsh/skills/rite-ship/reference/git-ship.md +2 -2
  241. package/pack/generated/dsh/skills/rite-spec/SKILL.md +8 -5
  242. package/pack/generated/dsh/skills/rite-spec/reference/state-workspace.md +5 -0
  243. package/pack/generated/dsh/skills/rite-temper/SKILL.md +3 -3
  244. package/pack/generated/dsh/skills/rite-vet/SKILL.md +9 -5
  245. package/pack/generated/dsh/skills/rite-vet/reference/review-axes.md +12 -5
  246. package/pack/generated/omp/agents/devrites-proof-runner.md +16 -9
  247. package/pack/generated/omp/commands/rite-build.md +1 -1
  248. package/pack/generated/omp/skills/devrites-lib/SKILL.md +2 -0
  249. package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  250. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  251. package/pack/generated/omp/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  252. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  253. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +1 -1
  254. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  255. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +18 -9
  256. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  257. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +13 -10
  258. package/pack/generated/omp/skills/rite-autocomplete/reference/lookahead.md +4 -4
  259. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +13 -9
  260. package/pack/generated/omp/skills/rite-build/SKILL.md +13 -10
  261. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
  262. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +1 -1
  263. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +57 -36
  264. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +8 -5
  265. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +7 -7
  266. package/pack/generated/omp/skills/rite-clarify/SKILL.md +2 -2
  267. package/pack/generated/omp/skills/rite-converge/SKILL.md +4 -4
  268. package/pack/generated/omp/skills/rite-define/SKILL.md +7 -3
  269. package/pack/generated/omp/skills/rite-define/reference/plan-template.md +4 -2
  270. package/pack/generated/omp/skills/rite-plan/SKILL.md +11 -8
  271. package/pack/generated/omp/skills/rite-plan/reference/dependency-graph.md +9 -2
  272. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +2 -0
  273. package/pack/generated/omp/skills/rite-polish/SKILL.md +3 -3
  274. package/pack/generated/omp/skills/rite-prove/SKILL.md +9 -5
  275. package/pack/generated/omp/skills/rite-resolve/SKILL.md +3 -3
  276. package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +2 -0
  277. package/pack/generated/omp/skills/rite-review/SKILL.md +4 -3
  278. package/pack/generated/omp/skills/rite-review/reference/feature-scoped-review.md +2 -2
  279. package/pack/generated/omp/skills/rite-seal/SKILL.md +1 -1
  280. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +1 -1
  281. package/pack/generated/omp/skills/rite-ship/SKILL.md +2 -2
  282. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +2 -2
  283. package/pack/generated/omp/skills/rite-spec/SKILL.md +8 -5
  284. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +5 -0
  285. package/pack/generated/omp/skills/rite-temper/SKILL.md +3 -3
  286. package/pack/generated/omp/skills/rite-vet/SKILL.md +9 -5
  287. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +12 -5
  288. package/pack/generated/pi/agents/devrites-proof-runner.md +16 -9
  289. package/pack/generated/pi/prompts/rite-build.md +1 -1
  290. package/pack/generated/pi/skills/devrites-lib/SKILL.md +2 -0
  291. package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +7 -3
  292. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +3 -0
  293. package/pack/generated/pi/skills/devrites-lib/reference/parallel-workspaces.md +202 -0
  294. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +9 -12
  295. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +1 -1
  296. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +1 -1
  297. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +18 -9
  298. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -0
  299. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +13 -10
  300. package/pack/generated/pi/skills/rite-autocomplete/reference/lookahead.md +4 -4
  301. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +13 -9
  302. package/pack/generated/pi/skills/rite-build/SKILL.md +13 -10
  303. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +1 -1
  304. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +1 -1
  305. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +57 -36
  306. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +8 -5
  307. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +7 -7
  308. package/pack/generated/pi/skills/rite-clarify/SKILL.md +2 -2
  309. package/pack/generated/pi/skills/rite-converge/SKILL.md +4 -4
  310. package/pack/generated/pi/skills/rite-define/SKILL.md +7 -3
  311. package/pack/generated/pi/skills/rite-define/reference/plan-template.md +4 -2
  312. package/pack/generated/pi/skills/rite-plan/SKILL.md +11 -8
  313. package/pack/generated/pi/skills/rite-plan/reference/dependency-graph.md +9 -2
  314. package/pack/generated/pi/skills/rite-plan/reference/slicing.md +2 -0
  315. package/pack/generated/pi/skills/rite-polish/SKILL.md +3 -3
  316. package/pack/generated/pi/skills/rite-prove/SKILL.md +9 -5
  317. package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
  318. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +2 -0
  319. package/pack/generated/pi/skills/rite-review/SKILL.md +4 -3
  320. package/pack/generated/pi/skills/rite-review/reference/feature-scoped-review.md +2 -2
  321. package/pack/generated/pi/skills/rite-seal/SKILL.md +1 -1
  322. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +1 -1
  323. package/pack/generated/pi/skills/rite-ship/SKILL.md +2 -2
  324. package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +2 -2
  325. package/pack/generated/pi/skills/rite-spec/SKILL.md +8 -5
  326. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +5 -0
  327. package/pack/generated/pi/skills/rite-temper/SKILL.md +3 -3
  328. package/pack/generated/pi/skills/rite-vet/SKILL.md +9 -5
  329. package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +12 -5
  330. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  # Feature-scoped review
2
2
 
3
- The review boundary is the **active feature**: the files in `touched-files.md` and the
4
- current diff. This is a hard rule, not a guideline.
3
+ The review boundary is the **selected source feature** per [phase target binding](../../devrites-lib/reference/parallel-workspaces.md#phase-target-binding):
4
+ its `touched-files.md` and current diff. This is a hard rule, not a guideline.
5
5
 
6
6
  ## In scope
7
7
  - Code added/changed by this feature.
@@ -5,7 +5,7 @@ argument-hint: "[feature-slug] [--full]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/verification-methods.md","rite-seal/reference/phase-contract.md","rite-seal/reference/final-evidence.md","rite-seal/reference/go-no-go.md","rite-seal/reference/risk-and-rollback.md","rite-seal/reference/seal-template.md","rite-seal/reference/output.md","rite-seal/reference/anti-patterns.md"],"triggers":{"agents":["devrites-lib/reference/standards/agents.md"],"browser":["devrites-lib/reference/standards/browser-proof-checklist.md"],"code-review":["devrites-lib/reference/standards/code-review.md"],"deprecation":["devrites-lib/reference/standards/deprecation.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"observability":["devrites-lib/reference/standards/observability.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"testing":["devrites-lib/reference/standards/testing.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md","evidence.md","touched-files.md","review.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","devex.md","review.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md","review.md"],"frontend-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"proof-runner":["spec.md","test-plan.md","tasks.md","gates.md","evidence.md","state.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","review.md"],"spec-reviewer":["brief.md","spec.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","state.md","review.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md","evidence.md","review.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md"]} -->
8
+ <!-- loads: {"always":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/verification-methods.md","rite-seal/reference/phase-contract.md","rite-seal/reference/final-evidence.md","rite-seal/reference/go-no-go.md","rite-seal/reference/risk-and-rollback.md","rite-seal/reference/seal-template.md","rite-seal/reference/output.md","rite-seal/reference/anti-patterns.md"],"triggers":{"agents":["devrites-lib/reference/standards/agents.md"],"browser":["devrites-lib/reference/standards/browser-proof-checklist.md"],"code-review":["devrites-lib/reference/standards/code-review.md"],"deprecation":["devrites-lib/reference/standards/deprecation.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"observability":["devrites-lib/reference/standards/observability.md"],"principles":["devrites-lib/reference/standards/principles.md"],"security":["devrites-lib/reference/standards/security.md"],"testing":["devrites-lib/reference/standards/testing.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"workspaceByRole":{"code-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","architecture.md","decisions.md","state.md","evidence.md","touched-files.md","review.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","devex.md","review.md"],"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md","review.md"],"frontend-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"proof-runner":["spec.md","test-plan.md","tasks.md","gates.md","evidence.md","state.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md","review.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","review.md"],"spec-reviewer":["brief.md","spec.md","decision-coverage.md","questions.md","decisions.md","assumptions.md","state.md","review.md"],"test-analyst":["spec.md","tasks.md","test-plan.md","state.md","evidence.md","review.md"]},"rootOnly":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md"]} -->
9
9
  > Read-set manifest: `devrites-engine context <slug> --phase seal` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
10
10
 
11
11
 
@@ -1,6 +1,6 @@
1
1
  # rite-seal phase contract
2
2
 
3
- 1. **Read.** Resolve the explicit slug or `.devrites/ACTIVE`, require its
3
+ 1. **Read.** Resolve source per [phase target binding](../../devrites-lib/reference/parallel-workspaces.md#phase-target-binding), require its
4
4
  `state.md`, then read required workspace artifacts, conditional
5
5
  browser/design/devex evidence, and final diff.
6
6
  2. **Recheck identity and real proof.** Run
@@ -5,13 +5,13 @@ argument-hint: "[feature-slug]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/standards/git-workflow.md","devrites-lib/reference/standards/definition-of-done.md","devrites-lib/reference/standards/release/ship-checklist.md","rite-ship/reference/git-ship.md","rite-ship/reference/rollout.md","rite-ship/reference/close-out.md","rite-ship/reference/ship-template.md","rite-ship/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"rootOnly":["devrites-lib/reference/standards/afk-hitl.md"]} -->
8
+ <!-- loads: {"always":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/core.md","devrites-lib/reference/candidate-integrity.md","devrites-lib/reference/standards/git-workflow.md","devrites-lib/reference/standards/definition-of-done.md","devrites-lib/reference/standards/release/ship-checklist.md","rite-ship/reference/git-ship.md","rite-ship/reference/rollout.md","rite-ship/reference/close-out.md","rite-ship/reference/ship-template.md","rite-ship/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md","evidence.md","touched-files.md","review.md","seal.md"],"rootOnly":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/afk-hitl.md"]} -->
9
9
  > Read-set manifest: `devrites-engine context <slug> --phase ship` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
10
10
 
11
11
 
12
12
  # /rite-ship: ship + close the task
13
13
 
14
- `/rite-seal` decides; `/rite-ship` mutates Git and closes. Read the active workspace;
14
+ `/rite-seal` decides; `/rite-ship` mutates Git and closes. Read the source workspace per [phase target binding](../devrites-lib/reference/parallel-workspaces.md#phase-target-binding);
15
15
  if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `seal.md`.
16
16
 
17
17
  ## Rules consulted (read on demand from `.claude/skills/devrites-lib/reference/standards/`)
@@ -12,7 +12,7 @@ Acceptance criteria proven: <n / total>
12
12
  Branch: <target branch>
13
13
  Candidate paths: <exact project-relative paths>
14
14
  Checkpoint collapse: <exact `git reset --soft '<merge-base>'` command | skip>
15
- Collapse slugs: <active slug plus every recorded sequence slug in the range | n/a>
15
+ Collapse slugs: <selected source slug plus every recorded sequence slug in the range | n/a>
16
16
  Stage plan: <exact argv-safe `git add -- '<path>'` command for every manifest row>
17
17
  Commit: <exact git commit command>
18
18
  Push: <exact git push command | skip>
@@ -47,7 +47,7 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
47
47
  1. **Analyze checkpoint history without mutating it.** Read the upstream, merge
48
48
  base, commit OIDs, and full subjects. If no checkpoint commit exists, disclose
49
49
  `skip`. A collapse is eligible only when every commit in its range has the exact
50
- `WIP(<slug>):` prefix for the validated active slug — or, for a release ship of a
50
+ `WIP(<slug>):` prefix for the validated source slug — or, for a release ship of a
51
51
  deferred-ship sequence, for a slug recorded in the parent's `decisions.md`
52
52
  sequence whose workspace is sealed in this run
53
53
  ([afk-hitl.md § Sequence continuation](../../devrites-lib/reference/standards/afk-hitl.md#sequence-continuation-continue_sequence-max_workspaces));
@@ -5,7 +5,7 @@ argument-hint: "<feature or idea>"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/elicitation.md","devrites-lib/reference/standards/agents.md","rite-spec/reference/investigation.md","rite-spec/reference/question-protocol.md","rite-spec/reference/spec-template.md","rite-spec/reference/spec-checklists.md","rite-spec/reference/state-workspace.md","rite-spec/reference/acceptance-criteria.md","rite-spec/reference/interview-patterns.md","rite-spec/reference/ai-spec-template.md","rite-spec/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"edge-cases":["devrites-lib/reference/standards/edge-case-trace.md"],"frontend":["rite-build/reference/frontend-trigger.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"principles":["devrites-lib/reference/standards/principles.md"],"references":["rite-spec/reference/references-intake.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md"],"workspaceByRole":{"evidence-scout":["brief.md","spec.md","state.md","questions.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/afk-hitl.md"]} -->
8
+ <!-- loads: {"always":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/elicitation.md","devrites-lib/reference/standards/agents.md","rite-spec/reference/investigation.md","rite-spec/reference/question-protocol.md","rite-spec/reference/spec-template.md","rite-spec/reference/spec-checklists.md","rite-spec/reference/state-workspace.md","rite-spec/reference/acceptance-criteria.md","rite-spec/reference/interview-patterns.md","rite-spec/reference/ai-spec-template.md","rite-spec/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"edge-cases":["devrites-lib/reference/standards/edge-case-trace.md"],"frontend":["rite-build/reference/frontend-trigger.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"principles":["devrites-lib/reference/standards/principles.md"],"references":["rite-spec/reference/references-intake.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md"],"workspaceByRole":{"evidence-scout":["brief.md","spec.md","state.md","questions.md"]},"rootOnly":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/afk-hitl.md"]} -->
9
9
  > Read-set manifest: `devrites-engine context <slug> --phase spec` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
10
10
 
11
11
 
@@ -38,7 +38,7 @@ load a routed standard to discover required behavior, not to prescribe implement
38
38
  [`elicitation.md`](../devrites-lib/reference/standards/elicitation.md) before continuing.
39
39
 
40
40
  ## Workflow
41
- 0. Read core; if `.devrites/ACTIVE` exists, require its `state.md`.
41
+ 0. Read core; apply shared [phase target binding](../devrites-lib/reference/parallel-workspaces.md#phase-target-binding). If `.devrites/ACTIVE` exists, require its owner's `state.md`; it is not the target when the controller explicitly prepares a recorded future continuation.
42
42
  0a. **Adoption check.** For a never-adopted existing codebase, route first to
43
43
  `/rite-adopt` with `$ARGUMENTS`; it derives baseline spec/principles. HITL
44
44
  offers ranked adopt-first and spec-only choices; permitted AFK adopts.
@@ -123,9 +123,12 @@ load a routed standard to discover required behavior, not to prescribe implement
123
123
  product/acceptance ambiguity, irreversible/external approval, or human-only access. Record
124
124
  owned prerequisites. Keep a build checkpoint only for unavailable pre-code evidence or a
125
125
  mandatory action-time approval. **Completion:** no foreseeable human choice is deferred.
126
- 5. **Create or update the workspace** + set `.devrites/ACTIVE` from
127
- [state-workspace](reference/state-workspace.md); a `--lookahead` run
128
- leaves `.devrites/ACTIVE` unchanged. If the slug already exists,
126
+ 5. **Create or update the workspace** per
127
+ [state-workspace](reference/state-workspace.md). Ordinary standalone Spec sets
128
+ `.devrites/ACTIVE`; explicit `--lookahead` and main-controller preparation of
129
+ an authorized recorded future continuation preserve the ordered owner's ACTIVE.
130
+ Pass the target slug explicitly to every phase; no new flag or global workspace
131
+ override. If the slug already exists,
129
132
  update the existing workspace rather than overwrite it; preserve history and
130
133
  unrelated settled content. Write every required artifact and conditional
131
134
  annex exactly from [spec-template](reference/spec-template.md)
@@ -66,6 +66,11 @@ Before any HTML:
66
66
  - Create or reuse the slug exactly under the canonical schema's
67
67
  [Slug identity](../../devrites-lib/reference/workspace-artifact-schema.md#slug-identity)
68
68
  contract.
69
+ - Standalone Spec sets ACTIVE to its target. Explicit lookahead and the existing
70
+ Autocomplete controller's recorded-future preparation leave ACTIVE on the
71
+ ordered owner; pass source slug explicitly, preserve claims and opening budget,
72
+ and use the shared [controller workflow](../../devrites-lib/reference/parallel-workspaces.md).
73
+ A new directory alone never authorizes future enrollment.
69
74
  - `/rite-spec` creates the workspace map, `brief.md`, `spec.md`, `decisions.md`,
70
75
  `assumptions.md`, `questions.md`, `state.md`, optional `references.md` /
71
76
  `references/`, optional `flows.md` when a diagram already clarifies investigation,
@@ -5,7 +5,7 @@ argument-hint: "[feature-slug] [--mode expand|selective|hold-rigor|reduce-to-MVP
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/agents.md","rite-temper/reference/significance.md","rite-temper/reference/scope-modes.md","rite-temper/reference/review-dimensions.md","rite-temper/reference/strategy-template.md","rite-temper/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","design-brief.md"],"workspaceByRole":{"strategy-reviewer":["brief.md","spec.md","decision-coverage.md","decisions.md","strategy.md","state.md"]},"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/afk-hitl.md"]} -->
8
+ <!-- loads: {"always":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/agents.md","rite-temper/reference/significance.md","rite-temper/reference/scope-modes.md","rite-temper/reference/review-dimensions.md","rite-temper/reference/strategy-template.md","rite-temper/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"documentation":["devrites-lib/reference/standards/documentation.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","design-brief.md"],"workspaceByRole":{"strategy-reviewer":["brief.md","spec.md","decision-coverage.md","decisions.md","strategy.md","state.md"]},"rootOnly":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/standards/afk-hitl.md"]} -->
9
9
  > Read-set manifest: `devrites-engine context <slug> --phase temper` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
10
10
 
11
11
 
@@ -14,7 +14,7 @@ user-invocable: true
14
14
  Review readied spec ambition, scope, pre-mortem risk, and excess surface. Fold
15
15
  accepted decisions into the canonical contract before `/rite-define`. Optional for
16
16
  small work; skips low-stakes specs; `/rite-autocomplete` always invokes it.
17
- **Read active workspace first**; no readied `spec.md` → `/rite-spec`. Depth follows
17
+ **Read the selected source workspace first**; no readied `spec.md` → `/rite-spec`. Depth follows
18
18
  [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md);
19
19
  the required exact strategy reviewer never changes with profile.
20
20
 
@@ -49,7 +49,7 @@ the spec applicability map triggers that risk family.
49
49
 
50
50
  ## Workflow
51
51
  0. **Read `.claude/skills/devrites-lib/reference/standards/core.md`**, then
52
- resolve the active slug, require its `state.md`, and read the cursor directly.
52
+ resolve source per [phase target binding](../devrites-lib/reference/parallel-workspaces.md#phase-target-binding), require its `state.md`, and read the cursor directly.
53
53
  Then read the workspace: `spec.md`, `decision-coverage.md` (+ `decisions.md`,
54
54
  `assumptions.md`, `design-brief.md` if UI), `state.md`. Require `state.md` `spec_gate: passed` (legacy `Spec gate:` accepted): else
55
55
  STOP → `/rite-spec`. Require `Decision coverage: CLEAR`: else STOP →
@@ -5,7 +5,7 @@ argument-hint: "[slug] [--cross-model] [--full]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"rootOnly":["devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/elicitation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/workflow-artifacts.md"],"workspaceByRole":{"doubt-reviewer":["spec.md","architecture.md","plan.md","tasks.md","test-plan.md","decisions.md","state.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
8
+ <!-- loads: {"always":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/code-navigation.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/gates.md","rite-vet/reference/review-axes.md","rite-vet/reference/artifacts.md","rite-vet/reference/depth.md","rite-vet/reference/eng-lenses.md","rite-vet/reference/anti-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"applicability":["devrites-lib/reference/standards/repository-topology.md","devrites-lib/reference/standards/data-integrity.md","devrites-lib/reference/standards/integration-reliability.md"],"assumption-delta":["devrites-lib/reference/standards/assumption-checkpoints.md"],"cross-model":["rite-vet/reference/cross-model.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"],"dod":["devrites-lib/reference/standards/definition-of-done.md"],"elicitation":["devrites-lib/reference/standards/elicitation.md"],"errors":["devrites-lib/reference/standards/error-handling.md"],"grammar":["devrites-lib/reference/standards/spec-grammar.md"],"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"performance":["devrites-lib/reference/standards/performance.md"],"principles":["devrites-lib/reference/standards/principles.md"],"reslice":["devrites-lib/reference/standards/acceptance-preserving-reslice.md"],"testing":["devrites-lib/reference/standards/testing.md"],"workflow":["devrites-lib/reference/standards/development-workflow.md"],"workflow-artifacts":["devrites-lib/reference/standards/workflow-artifacts.md"],"yagni":["devrites-lib/reference/standards/patterns.md","devrites-lib/reference/standards/coding-style.md"]},"workspace":["brief.md","spec.md","state.md","decisions.md","assumptions.md","questions.md","decision-coverage.md","strategy.md","architecture.md","plan.md","tasks.md","traceability.md","eng-review.md","test-plan.md","gates.md"],"rootOnly":["devrites-lib/reference/parallel-workspaces.md","devrites-lib/reference/standards/code-index.md","devrites-lib/reference/standards/afk-hitl.md","devrites-lib/reference/standards/elicitation.md","devrites-lib/reference/orchestration-profiles.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/workflow-artifacts.md"],"workspaceByRole":{"doubt-reviewer":["spec.md","architecture.md","plan.md","tasks.md","test-plan.md","decisions.md","state.md"],"devex-reviewer":["spec.md","plan.md","tasks.md","decisions.md","state.md"],"plan-reviewer":["spec.md","plan.md","tasks.md","test-plan.md","decision-coverage.md","architecture.md","decisions.md","state.md"],"strategy-reviewer":["brief.md","spec.md","plan.md","decisions.md","decision-coverage.md","strategy.md","state.md"]}} -->
9
9
  > Read-set manifest: `devrites-engine context <slug> --phase vet` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
10
10
 
11
11
 
@@ -71,7 +71,7 @@ plan declares a root-authored executable workflow file, read
71
71
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"plan declares root-authored executable workflow file","action":"emit exact admission; stale/missing authority uses PLAN_VET_REPAIR","return":"Vet READY cursor or exact technical replan"} -->
72
72
  ## Workflow
73
73
 
74
- 0. **Orient.** Read core. Resolve active slug, require state, and read plan,
74
+ 0. **Orient.** Read core. Resolve source per [phase target binding](../devrites-lib/reference/parallel-workspaces.md#phase-target-binding), require state, and read plan,
75
75
  tasks, spec, decision coverage, optional strategy/design brief, decisions,
76
76
  assumptions, and state. Require approved Plan and `Decision coverage: CLEAR`;
77
77
  otherwise stop for Define or Clarify. Check placement (`get_architecture`),
@@ -219,9 +219,13 @@ plan declares a root-authored executable workflow file, read
219
219
  READY needs each to pass (fix failures in `/rite-plan`). READY also needs every
220
220
  unbuilt slice's write set closed against the live tree (plan-reviewer
221
221
  dimension 6), so frontier gaps fold in one Plan repair, not one per slice; an
222
- affected recheck also closes every unbuilt slice and never defers a closure row. A `sequence_lookahead: yes` workspace also records one
223
- `Predecessor readiness: <predecessor> <digest>` line from the predecessor's
224
- `--emit-binding` hex; readiness re-checks it. Record the per-input drift baseline alongside it:
222
+ affected recheck also closes every unbuilt slice and never defers a closure row.
223
+ A future sequence workspace prepared by lookahead or the main controller records
224
+ `Predecessor readiness: <predecessor> <digest>` from the predecessor's
225
+ `--emit-binding` hex; readiness re-checks it. Apply the native dependency-safety
226
+ axis to its explicit workspace declarations before early admission; stale
227
+ assumptions need affected re-Vet, never automatic rebinding.
228
+ Record the per-input drift baseline alongside it:
225
229
  `devrites-engine check drift <slug> --record` — a later stale binding then
226
230
  names the exact artifact that moved instead of "something changed". An `ADVISORY
227
231
  proportion:` line names a slice whose proof outgrew its ACs: move its rows without a
@@ -29,6 +29,8 @@ Before implementation review, check for work beyond the settled spec.
29
29
  `Budget override`: route to `/rite-plan course-correct` (`MVP cut`) with the
30
30
  continuation sequence named; do not vet the whole epic. An `ADVISORY size:`
31
31
  or `hub:` line without its rationale is a non-blocking Suggestion to split or seam it.
32
+ Before READY, apply the shared [serialization audit](../../devrites-lib/reference/parallel-workspaces.md#recover-avoidable-serialization):
33
+ verify independent cuts and retained producer/proof/authority gates, or the concrete serial rationale.
32
34
  4. **Built-in check.** For each new pattern/infra/concurrency approach, invoke
33
35
  `devrites-source-driven` inline to verify current framework/runtime support and cite it. Custom
34
36
  work where a built-in suffices is a scope-reduction finding.
@@ -195,11 +197,16 @@ Use standard `AskUserQuestion`:
195
197
  3. **Failure-mode table:** per new codepath: realistic failure, partial/unknown effect,
196
198
  recovery owner, test, handling, and user-visible/silent result. No test + no handling +
197
199
  silent = **Critical** (`artifacts.md`).
198
- 4. **Dependency safety:** verify graph/order and shared file/state/contract/lock/port/queue/env
199
- conflicts. Each `Dependencies` edge must genuinely gate its slice (consumes an
200
- output, interface, or state the predecessor produces); remove an ordering-only
201
- edge, since it silently shrinks the parallel set. Correct the plan; native host
202
- scheduling needs no lane artifact.
200
+ 4. **Dependency safety:** verify local and qualified workspace graph/order,
201
+ assumptions, consumed interfaces, shared file/state/contract/lock/port/queue/env
202
+ conflicts and independent proof. Verify Plan's explicit `Workspace dependencies`
203
+ for each future-admission slice under the
204
+ [canonical grammar](../../devrites-lib/reference/workspace-artifact-schema.md#canonical-slice-grammar);
205
+ `none` needs native judgment, not disjoint-path inference. Real producer edges
206
+ remain until durably BUILT/integrated; green unlanded work is not a producer
207
+ checkpoint. Remove ordering-only edges, never genuine interface/runtime/proof
208
+ dependencies. Missing legacy future declarations route narrow Plan repair/Vet;
209
+ current local execution stays compatible. Native scheduling needs no lane artifact.
203
210
  5. **Build-entry preflight:** commands/cwds, tools, package state, parser/browser smoke,
204
211
  prerequisites, and provenance ([`artifacts.md`](artifacts.md)).
205
212
  6. **Implementation readiness:** goal-backward coverage, wiring, dependency simulation,
@@ -32,8 +32,8 @@ and only the orchestrator-supplied changed paths.
32
32
  contradictory, whose output and exit come from different executions, whose
33
33
  command masks status, or whose exit and output disagree. A pass after a failed
34
34
  attempt on an unchanged digest is `flaky`: `fail` for its AC.
35
- 2. Confirm every log, screenshot, trace, and result belongs to the supplied
36
- candidate.
35
+ 2. Confirm proof belongs to the supplied candidate, except explicitly scoped
36
+ reuse backed by unchanged declared inputs and a valid executed origin.
37
37
  3. Map real REQ/AC/scenario/link IDs **and meaning** to observed proof. Invented/
38
38
  label-only maps or internal proof of an external outcome fail. Behavior MUST
39
39
  be positive, discriminating; reject skipped/focused/filtered/pending, zero-test,
@@ -55,13 +55,20 @@ and only the orchestrator-supplied changed paths.
55
55
  named blocker, never a pass. Otherwise use `cannot_verify`.
56
56
  8. A manual gate whose `gates.md` note lacks the human's own words or source, is a
57
57
  placeholder, or was runnable at Vet is `cannot_verify` ([`gates.md`](../skills/devrites-lib/reference/standards/gates.md)).
58
- 9. An engine transcript (`DEVRITES-GATE-TRANSCRIPT v1` under `references/gates/`)
59
- is immutable proof of its COMMAND, CWD, ATTEMPT, EXIT and output for the
60
- candidate in CANDIDATE_BEFORE/AFTER. A `-reused.log` proves a gate for the
61
- current candidate only when its INPUTS_SHA256 equals that of the gate's latest
62
- executed, passing transcript.
63
- 10. Recheck supplied before/after candidate identities. A mismatch or unexpected
64
- repository mutation fails the side-effect boundary.
58
+ 9. An engine transcript (`DEVRITES-GATE-TRANSCRIPT v2` under `references/gates/`)
59
+ records one execution, not an assertion that proof is sufficient. Verify its
60
+ `TRANSCRIPT_SHA256` over all bytes before that footer; match the definition,
61
+ original output identity/byte count, declared inputs, EXIT and EXPECT verdict
62
+ against current ledger evidence and approved commands. Metadata and output may
63
+ be redacted; never hash the redacted body as the original output.
64
+ Reuse cites the unchanged executed origin path and its historical candidate
65
+ labels, with matching current `INPUTS_SHA256` and bounded dependency closure.
66
+ A legacy v1 or `-reused.log` alone cannot authorize reuse; request engine
67
+ `gates run`/`reverify --transcripts` to recover approved missing origins.
68
+ 10. Before/after identities must match within the recorded execution.
69
+ Historical/current candidate differences need the scoped reuse justification
70
+ above; never relabel an old observation. Unexpected repository mutation fails
71
+ the side-effect boundary.
65
72
 
66
73
  ## Rules
67
74
 
@@ -37,6 +37,8 @@ lifecycle state from chat or optional `README.md`.
37
37
  ([`workspace-artifact-schema.md`](reference/workspace-artifact-schema.md)).
38
38
  - [`reference/reply-contract.md`](reference/reply-contract.md): compact user-facing
39
39
  completion states. The host renders the response normally.
40
+ - [`reference/parallel-workspaces.md`](reference/parallel-workspaces.md): explicit
41
+ phase targets, one isolated global controller, and source-owned proof.
40
42
  - [`reference/visual-playbooks/index.md`](reference/visual-playbooks/index.md): progressive
41
43
  visual HTML playbook router (load matching ids only; dual-read outline).
42
44
 
@@ -29,9 +29,13 @@ Same-candidate accounts may be cited when permitted. Corrections require
29
29
  new candidate checks, affected real proof and fresh affected exact reviewers for
30
30
  all open findings and dependency/regression closure, including newly triggered roles.
31
31
  After an all-met acceptance ledger has been executed, any candidate digest change
32
- requires `devrites-engine gates reverify <slug>` against the corrected frozen
33
- candidate before refreshed evidence or review bindings are written; ordinary
34
- `gates run` skips already-met rows and cannot refresh them.
32
+ requires `devrites-engine gates reverify <slug> --transcripts` against the corrected
33
+ frozen candidate before refreshed evidence or review bindings are written.
34
+ Unchanged declared `INPUTS` may reuse complete passing originating transcripts;
35
+ missing origins rerun only affected approved checks. Reuse is not execution.
36
+ If non-file prerequisites changed or prior proof is doubtful, invalidate affected
37
+ automatic evidence through the workspace's single-writer protocol before rerun.
38
+ Ordinary `gates run` skips already-met rows and cannot refresh them.
35
39
  Changed contracts or uncertain closure require a full applicable pass.
36
40
  Unchanged sub-scope needs explicit unchanged-input/dependency justification and a
37
41
  link to original evidence. Never relabel an old candidate-bound account.
@@ -45,6 +45,9 @@ If the candidate diff has no matching surfaces, record
45
45
  `proof-runner`, keep their own) with `devrites-engine packet <slug> --wave <w> --phase <p>
46
46
  --role <role> [--slice <SLICE-ID>] [--focus <file>]`: it names the bundle and frozen
47
47
  diff by reference, copies the digests, and runs the `open` lints. Build roles add `--slice <SLICE-ID>` (slice-scoped, slice-named bundle).
48
+ Packet rendering and dispatch verify each named diff's recorded SHA-256.
49
+ Manually authored `.diff`/`.patch` packets need explicit
50
+ `diff <64hex> <path>` binding rows too; an unbound diff is refused.
48
51
  Evaluate the skill's trigger conditions and pass each that fires — a role's
49
52
  Trigger column maps to the phase manifest's names: `security-auditor` →
50
53
  `security`; at Review, `frontend-reviewer` → `ui` and `performance-reviewer` →
@@ -0,0 +1,202 @@
1
+ # One controller, multiple workspace sources
2
+
3
+ > Root-only: not inlined in --role bundles. Every phase uses target binding below;
4
+ > Autocomplete owns the global workflow. Standalone Build stays source-local.
5
+
6
+ ## Phase target binding
7
+
8
+ For every lifecycle phase and cold handoff, resolve the existing explicit target
9
+ or caller-supplied SOURCE slug first; use `.devrites/ACTIVE` only when neither is
10
+ supplied. All workspace context, cursor, questions, artifact reads/writes, approval,
11
+ candidate bindings and proof belong to that source. A missing source artifact
12
+ routes its prerequisite; it never falls back to another workspace's artifacts.
13
+ An explicit valid workspace does not require ACTIVE to name it or to exist.
14
+
15
+ Carry that source through Spec → Clarify → Temper → Define/Plan → Vet and later
16
+ Build/Converge/Prove/Polish/Review/Seal/Ship entrypoints. Use existing slug arguments
17
+ where supported, including `context <source>` and `handoff <source> --resume`.
18
+ For qid-only `state resolve` (including `--drop`/`--batch`), keep its existing argv
19
+ and bind the call with `DEVRITES_ROOT=<absolute-control>/.devrites` and
20
+ `DEVRITES_WORKSPACE=<absolute-control>/.devrites/work/<source>`. The override is a
21
+ workspace path, not a slug. Apply this environment only to that invocation;
22
+ neither a fabricated resolver slug argument nor process-global environment
23
+ mutation is routing. Use the same source binding for nested recommended answers.
24
+
25
+ Preparing or running an admitted future source preserves the ordered owner's
26
+ ACTIVE and retained writer/controller. Ordinary standalone Spec still sets ACTIVE;
27
+ explicit `--lookahead` still stops at planning/Vet and never becomes a Build root.
28
+ Target binding changes neither phase approval nor Ship authority.
29
+
30
+ ## Authority and admission
31
+
32
+ Resolve one controlling root and ordered lifecycle owner. `.devrites/ACTIVE` stays
33
+ on that owner until normal sequence handoff; scheduling a future slice does not
34
+ advance ACTIVE or create a second Build root. One repository-global lease owns
35
+ control-tip mutations. Resume its controller, source identities and retained
36
+ handles before admitting more work; status queried via ACTIVE/source reports the
37
+ actual retained controller even after ordered handoff. Another retained
38
+ controller is not bypassable; no extra cursor pointer is needed.
39
+
40
+ The existing `--parallel N` is one global active-writer cap across all sources:
41
+ explicit invocation value, else AFK `max_parallel`, else retained lease capacity
42
+ on resume, else 10. Explicit 1 means one writer, not one writer per workspace.
43
+ Review queues obey host capacity and existing reviewer caps separately; they never
44
+ erase required specialist accounts.
45
+
46
+ Discover only recorded forward sequence continuations through `sequence_parent`
47
+ and the parent's recorded objectives. Honor `continue_sequence: false`, opening
48
+ budget and human bounded requests. Charge each opening once; reuse prepared
49
+ children and their cursor rather than re-specifying or charging them again.
50
+ An unrelated directory or user-mentioned slug is not automatic enrollment.
51
+ Respect workspace claims: a live lookahead owner retains its artifacts until
52
+ release/terminal reconciliation. Root alone writes workspace artifacts; leaves
53
+ never write `.devrites/**`.
54
+
55
+ For each future slice, native Plan/Vet must have CURRENT approved readiness,
56
+ a complete bound contract and explicit `Workspace dependencies` under
57
+ [canonical slice grammar](workspace-artifact-schema.md#canonical-slice-grammar).
58
+ Plan/Vet checks assumptions, consumed interfaces, shared runtime resources and
59
+ independent slice proof. `none` is a native declaration, never an inference from
60
+ path disjointness, local `Dependencies: none`, planning digests or a green branch.
61
+ Only durably BUILT/integrated producer checkpoints satisfy qualified dependencies;
62
+ validate each producer reference and graph, including safely archived predecessors.
63
+ Cycles, unknown/malformed references and shared unisolated runtime withhold unsafe
64
+ candidates. A waiting producer withholds only its consumers, not unrelated work.
65
+
66
+ Missing declarations in legacy future plans need narrow Plan repair + affected
67
+ Vet before early admission; existing local/standalone plans remain valid. Absent,
68
+ incomplete, stale or human-blocked future work is a planning/repair/blocked
69
+ opportunity, not a fatal pool failure. Retain every readiness reason: fixing stale
70
+ bindings does not waive a coexisting human/access/safety gate. Re-Vet affected
71
+ predecessor assumptions, then record current bindings; never auto-refresh a digest.
72
+
73
+ ## Recover avoidable serialization
74
+
75
+ At native Plan/Vet, and when a full global scan leaves writer capacity unused,
76
+ audit the remaining frontier before treating serialization as irreducible:
77
+
78
+ 1. Name what each edge consumes: product/interface, integration evidence, shared
79
+ writable path, runtime resource or explicit authority. Sequence/release order
80
+ alone is not a product dependency; current recorded prohibitions still bind.
81
+ 2. Recut unstarted work only where an accepted vertical capability is functional,
82
+ independently provable and rollbackable against an already real contract.
83
+ Keep producer edges on actual consumers and dependent integration/proof.
84
+ Consolidate hub edits in their real producer; worktrees alone do not isolate
85
+ shared files, databases, ports, credentials or measurement windows.
86
+ 3. Root routes a concrete opportunity through native Plan and the canonical
87
+ [Reslice classifier](standards/acceptance-preserving-reslice.md), preserving
88
+ every acceptance meaning, prohibition, semantic link and proof obligation.
89
+ Carry the blocked edge/resource and proposed independent cut into the drafter
90
+ packet. Invalidate readiness, obtain affected Vet, then reselect; a proposed
91
+ split or green branch is not admission authority.
92
+ 4. Freeze admissions to affected sources during repair. Preserve built and leased
93
+ slice identities/contracts; drain/reconcile affected workers before publishing
94
+ a repair that changes their inputs. Unrelated source planning/writers continue.
95
+ 5. Preserve human/safety/access/resource gates and explicit planning-only bounds.
96
+ Classify any authority change through its owning decision; never replace an
97
+ explicit prohibition with inferred permission or create placeholder slices.
98
+
99
+ Completion: either admit a currently approved independent cut, or retain
100
+ `Serial rationale: <consumed contract/resource/authority; next unblock event>`
101
+ in affected `tasks.md` slice blocks only when normal Plan write authority permits; otherwise
102
+ report the existing blocker without planning writes. Revisit after relevant
103
+ inputs change, not merely because capacity remains unused. Target width never
104
+ justifies extra architecture, acceptance loss, premature proof or repeatedly
105
+ reslicing unchanged work.
106
+
107
+ ## Continuous global frontier
108
+
109
+ At entry, each landing, planning/review return and before any wait or final reply:
110
+
111
+ 1. Re-read controller lease, per-source state/questions/readiness and authorized
112
+ sequence. Scan all stages, not only the owner's next local slice. While writers
113
+ run, root advances authorized Spec → Clarify → Temper → Define/Plan → Vet,
114
+ including narrow repair/re-Vet of prepared targets, under unchanged approval
115
+ and safety rules. Missing human authority blocks that target, not safe siblings.
116
+ If an explicit/AFK capacity change differs from retained capacity, reconcile it
117
+ before selection using `parallel add --root <repo> --slug <controller> --cap N --json -`
118
+ with stdin `[]`. This changes capacity only, not workers or a complete lease's
119
+ status. A decrease below active count refuses: pause admissions and drain to
120
+ the requested count, then retry; never cancel workers to meet a lower cap.
121
+ A pending landing is recovery, not free capacity: retry the exact recorded
122
+ integrate before admission; unrelated HEAD/ref movement remains blocked.
123
+ 2. Query the mixed pool in stable sequence order, controller first (the ordered
124
+ ACTIVE owner may now differ):
125
+ `devrites-engine parallel select --root <repo> --slug <controller> --from-plan --workspaces <controller,authorized-source,...> --cap N`.
126
+ `--workspaces` is an internal data-source parameter, not a user feature flag.
127
+ Read all notices and route repair/waits to their source. Existing running slots
128
+ and paths seed selection globally. Zero new picks with live writers means keep
129
+ planning/reviewing or wait, not Prove for those unfinished sources.
130
+ 3. Preflight selected slices against their SOURCE workspace with Build's normal
131
+ slice/readiness/precondition, exact-path and runtime-isolation gates. Early
132
+ foreign Build always uses isolated workers. For cap>1 on a capable host,
133
+ isolate even the first lone local writer, so later sources can refill. Persist
134
+ `--cap N` on create/add. With a retained lease, add even one pick; a complete
135
+ retained lease can reopen only at unchanged control tip. After cleanup,
136
+ create a new batch from current control. Never start another controller.
137
+ Unsupported isolation uses truthful serial owner dispatch and ordinary ordered
138
+ handoff, never early same-tree foreign Build or concurrent same-worktree writers.
139
+ 4. Launch every selected native writer before waiting on any; keep scheduling
140
+ planning and independent review while they run. Land each individually green
141
+ sibling through Build review/proof and `parallel integrate --slice <key>`;
142
+ refill immediately from the whole authorized pool. A red sibling repairs in
143
+ place and holds its slot/paths; it does not delay independent green landings.
144
+ Never satisfy a producer edge on writer return or green-but-unlanded work.
145
+ After worker-bound review/proof and source bookkeeping finish, prune only
146
+ verified clean integrated checkouts with `parallel prune --root <repo>
147
+ --slug <controller>`. Retain transfer refs/lease identities; dirty or ignored
148
+ data stays with its reported recovery path and does not justify forced deletion.
149
+
150
+ ## Identity, dispatch and proof
151
+
152
+ Mixed JSON uses `{"slices":[{"id":"SLICE-001","paths":["src/child.go"],"workspace":"child"}]}`.
153
+ Omitted workspace means controller; explicit controller normalizes to that lane.
154
+ Lease targeting uses bare `SLICE-001` only for controller, `child/SLICE-001` for
155
+ foreign sources. Duplicate local IDs across sources remain distinct typed keys.
156
+ Use the lease's worktree/branch paths, not hand-built namespaces.
157
+
158
+ Controller slug owns `parallel create/add/status/record-green/integrate/prune/cleanup`.
159
+ SOURCE slug owns `context`, `packet`, `dispatch open/start/return`, slice checks,
160
+ candidate freeze, proof, repair, evidence and bookkeeping. Open source-local waves
161
+ with local roles `slice-wright.<SLICE-ID>` and local `--slice <SLICE-ID>`; no slash
162
+ in a dispatch role. Start every source wave before first wait. Root explicitly
163
+ supplies source slug, absolute worktree cwd, base and exact native profile to every
164
+ writer/reviewer. Writer profile is `devrites-slice-wright`, never a suffixed or
165
+ generic profile; reviewers use exact workflow-named `devrites-*` profiles in fresh
166
+ read-only context. Labels/handles are not proof of native profile selection.
167
+ Linked worktrees use `DEVRITES_ROOT=<control>/.devrites` for metadata, not source cwd.
168
+
169
+ Run controller/global commands in a per-invocation environment without inherited
170
+ worker `DEVRITES_WORKSPACE`; source calls use explicit source slug and control
171
+ `DEVRITES_ROOT` in a source-bound environment, never another source's override.
172
+ Never mutate process-global environment or ACTIVE to route a call.
173
+
174
+ Freeze/review/prove each source slice in its own worktree/candidate window under
175
+ Build's full required inventory, affected rechecks and repair rules. After landing,
176
+ write `WIP(<source>):` with human summary, union only that source's paths into its
177
+ manifest, persist checked BUILT/evidence and charge once there. Run source-local
178
+ regression checks on resume and ratchet only after durable green advance. Neither
179
+ controller bookkeeping nor sibling proof closes a child's acceptance.
180
+
181
+ ## Lifecycle closeout and Ship
182
+
183
+ Prove/Polish/Review/Seal remain per workspace with fresh candidate bindings. Shared
184
+ durable Polish outputs serialize; source changes invalidate affected evidence.
185
+ Before any non-lease product correction, shared durable Polish write or control
186
+ checkpoint, freeze new writer admissions, drain/reconcile retained writers, land
187
+ safe green work and cleanup the lease. Preserve blocked work; never force-clean
188
+ it merely to advance a phase. Perform phase-owned correction/proof/checkpoint,
189
+ then resume the pool from new HEAD. Never accept unrelated commits as expected
190
+ ControlTip or invent phase slices. Read-only frozen proof/review and planning-only
191
+ `.devrites` repair may overlap writers; none may mutate the leased product/control tip.
192
+ Normal ordered handoff reuses the same controller and prepared child cursor.
193
+ Never archive controller/source while retained lease owns it; clean up owned
194
+ workers first, preserving salvage and unknown outcomes.
195
+
196
+ Early child WIPs can interleave with parent WIPs. Parent-only Ship must not absorb
197
+ those commits as if parent alone were sealed. Deferred release waits for every
198
+ participating sequence member's final proof/Review/Seal, uses engine-generated
199
+ release union manifest and re-proves affected cross-workspace acceptance. Disclose
200
+ all participating checkpoints in the exact Git plan, verify unchanged candidate
201
+ and staged bytes, then require fresh literal `GO` plus native approval. Parallelism
202
+ grants no push/tag/deploy authority and never broadens an earlier Ship approval.
@@ -118,18 +118,15 @@ candidate manifest to cover the whole recorded chain — run
118
118
  `/rite-autocomplete` recovers agent-owned Seal `NO-GO` per
119
119
  [stop-conditions.md](../../../rite-autocomplete/reference/stop-conditions.md), not a handoff.
120
120
 
121
- `max_parallel` is the unattended default batch cap only when this invocation does
122
- not contain `--parallel N`; `1` forces the serial cycle only in that default
123
- case. An exact `--parallel N` on `/rite-autocomplete` or `/rite-build` is the
124
- batch cap for this run: do not consult leftover sentinel `max_parallel`, and do
125
- not treat `max_parallel: 1` as serial. `/rite-autocomplete --parallel N` writes
126
- or replaces only that field so later ticks keep the cap; `/rite-build --parallel N`
127
- wins for that invocation without rewriting the sentinel. Never write `max_slices`
128
- from `--max-slices`. **Failing case:** `/rite-autocomplete --parallel 5` honors a
129
- leftover `max_parallel: 1` and stays serial.
130
- Unattended runs take the largest eligible set ≤ that cap and recompute after
131
- every completed round (serial slice or parallel integrate)
132
- ([parallel-batch.md § Dynamic selection and re-batching](../../../rite-build/reference/parallel-batch.md#dynamic-selection-and-re-batching)).
121
+ `max_parallel` is the unattended default writer cap when this invocation omits
122
+ `--parallel N`; explicit N wins and Autocomplete writes/replaces only that field.
123
+ Build's explicit flag wins without rewriting the sentinel. Never write
124
+ `max_slices` from `--max-slices`. Autocomplete uses one cap across all authorized
125
+ sources, including explicit 1, under the shared root-only
126
+ [`workspace controller`](../parallel-workspaces.md); standalone Build stays local.
127
+ Unattended runs recompute after each landing and planning/review return, not only
128
+ after a batch completes. **Failing case:** `/rite-autocomplete --parallel 5`
129
+ honors leftover `max_parallel: 1`, or grants five writers per workspace.
133
130
 
134
131
  ## Unattended resource envelope
135
132
 
@@ -72,7 +72,7 @@ Only that bounded writer may edit its exact project-relative source/test paths;
72
72
  workspace writes, scope widening, or second writer. Root remains source/test nonwriter.
73
73
  This exception grants no additional tools, permissions, phase, agent-launch, or Git authority.
74
74
 
75
- Isolated-worktree pilot only under [`wright-dispatch.md`](../../../rite-build/reference/wright-dispatch.md#isolated-writer-worktree-pilot): one writer, committed/clean baseline, non-submodule parent, exact transfer commit, candidate reconciliation — never parallel writers nor weaker exact-path admission. Root may materialize only exact Vet-ready workflow-artifact paths per [`workflow-artifacts.md`](workflow-artifacts.md) — not a writer dispatch or candidate mutation.
75
+ Isolated-worktree pilot follows [`wright-dispatch.md`](../../../rite-build/reference/wright-dispatch.md#isolated-writer-worktree-pilot); sanctioned parallel work follows [`parallel-batch.md`](../../../rite-build/reference/parallel-batch.md) and Autocomplete's shared [`workspace controller`](../parallel-workspaces.md), never same-tree co-writers or weaker exact-path admission. Root may materialize only exact Vet-ready workflow-artifact paths per [`workflow-artifacts.md`](workflow-artifacts.md) — not a writer dispatch or candidate mutation.
76
76
 
77
77
  Each job gets objective/exclusions, exact paths/immutable candidate, rubric/result shape, a **stop condition** (when to return), and the exact result shape; a dispatch missing them is malformed and re-issued. Briefs MUST NOT seed verdict/severity cap/conclusion/suppression. Results state status/scope, outcome, commands/escalation; wright adds paths, changed files, gates, stood decisions; results never widen scope.
78
78