devrites 6.0.3 → 6.1.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 (785) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +24 -9
  3. package/SECURITY.md +9 -6
  4. package/bin/devrites.mjs +28 -12
  5. package/docs/adr/0035-claude-root-leaves-plan-mode.md +33 -0
  6. package/docs/adr/0036-archive-recall-is-a-read-time-query.md +32 -0
  7. package/docs/adr/README.md +4 -2
  8. package/docs/cli.md +25 -2
  9. package/docs/command-map.md +10 -8
  10. package/docs/engine/commands.md +10 -7
  11. package/docs/harness-compliance.md +2 -2
  12. package/docs/orchestration.md +5 -4
  13. package/docs/release.md +4 -4
  14. package/docs/skills.md +2 -2
  15. package/engine/commands.go +1 -1
  16. package/engine/help.go +10 -6
  17. package/engine/internal/acceptance/cli.go +4 -1
  18. package/engine/internal/acceptance/exec.go +11 -11
  19. package/engine/internal/devritespaths/paths.go +5 -0
  20. package/engine/internal/hostpack/hostpack.go +48 -3
  21. package/engine/internal/install/apply.go +68 -1
  22. package/engine/internal/install/binary.go +4 -0
  23. package/engine/internal/install/install.go +25 -15
  24. package/engine/internal/install/merge.go +287 -123
  25. package/engine/internal/install/preflight.go +71 -1
  26. package/engine/internal/install/uninstall.go +7 -1
  27. package/engine/internal/install/update.go +7 -3
  28. package/engine/internal/lib/claims.go +30 -14
  29. package/engine/internal/lib/cli_observe.go +6 -0
  30. package/engine/internal/lib/context.go +35 -12
  31. package/engine/internal/lib/diffscope.go +79 -3
  32. package/engine/internal/lib/dispatch.go +78 -12
  33. package/engine/internal/lib/drift.go +9 -2
  34. package/engine/internal/lib/handoff.go +14 -5
  35. package/engine/internal/lib/metrics.go +103 -10
  36. package/engine/internal/lib/migrate.go +30 -12
  37. package/engine/internal/lib/next.go +22 -2
  38. package/engine/internal/lib/observe_summary.go +8 -0
  39. package/engine/internal/lib/open_visual.go +3 -1
  40. package/engine/internal/lib/recall.go +355 -0
  41. package/engine/internal/lib/regression.go +20 -0
  42. package/engine/internal/lib/resolve.go +96 -53
  43. package/engine/internal/lib/secretscan.go +24 -1
  44. package/engine/internal/lib/taskgraph.go +31 -1
  45. package/engine/internal/lib/util.go +18 -7
  46. package/engine/internal/lib/windows.go +68 -15
  47. package/engine/internal/markdowntext/markdowntext.go +45 -6
  48. package/engine/internal/notes/cli.go +5 -3
  49. package/engine/internal/notes/notes.go +8 -3
  50. package/engine/internal/overhaul/admit/run.go +16 -12
  51. package/engine/internal/overhaul/overhaul.go +1 -0
  52. package/engine/internal/overhaul/records/check.go +52 -9
  53. package/engine/internal/overhaul/render/run.go +3 -2
  54. package/engine/internal/overhaul/snapshot/run.go +2 -2
  55. package/engine/internal/parallel/git.go +5 -6
  56. package/engine/internal/parallel/ops.go +3 -0
  57. package/engine/internal/parallel/pathdisjoint.go +9 -4
  58. package/engine/internal/release/release.go +11 -9
  59. package/engine/internal/safepath/safepath.go +17 -1
  60. package/engine/internal/state/budgets.go +8 -4
  61. package/engine/internal/state/feature.go +3 -1
  62. package/engine/internal/state/observation.go +12 -7
  63. package/engine/internal/state/taskgraph.go +67 -12
  64. package/engine/internal/state/write.go +7 -1
  65. package/engine/main.go +6 -2
  66. package/pack/.claude/agents/_shared/composition-overhaul.md +2 -0
  67. package/pack/.claude/agents/devrites-devex-reviewer.md +5 -0
  68. package/pack/.claude/agents/devrites-evidence-scout.md +4 -0
  69. package/pack/.claude/agents/devrites-plan-reviewer.md +4 -1
  70. package/pack/.claude/agents/devrites-slice-wright.md +4 -1
  71. package/pack/.claude/agents/overhaul-implementer.md +1 -0
  72. package/pack/.claude/settings.json +4 -4
  73. package/pack/.claude/skills/devrites-api-interface/SKILL.md +1 -1
  74. package/pack/.claude/skills/devrites-audit/SKILL.md +1 -1
  75. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +1 -1
  76. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +3 -2
  77. package/pack/.claude/skills/devrites-doubt/SKILL.md +1 -1
  78. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +1 -1
  79. package/pack/.claude/skills/devrites-interview/SKILL.md +1 -1
  80. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +3 -3
  81. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +4 -3
  82. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
  83. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
  84. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
  85. package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
  86. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
  87. package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
  88. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +2 -0
  89. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
  90. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +13 -0
  91. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -6
  92. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +1 -1
  93. package/pack/.claude/skills/devrites-source-driven/SKILL.md +1 -1
  94. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +1 -1
  95. package/pack/.claude/skills/overhaul/references/orchestration.md +6 -2
  96. package/pack/.claude/skills/overhaul/references/records.md +8 -3
  97. package/pack/.claude/skills/rite/SKILL.md +4 -3
  98. package/pack/.claude/skills/rite/reference/menu.md +6 -5
  99. package/pack/.claude/skills/rite-adopt/SKILL.md +4 -3
  100. package/pack/.claude/skills/rite-autocomplete/SKILL.md +6 -5
  101. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +2 -1
  102. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
  103. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +3 -1
  104. package/pack/.claude/skills/rite-build/reference/output.md +1 -1
  105. package/pack/.claude/skills/rite-build/reference/phase-contract.md +2 -0
  106. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +19 -0
  107. package/pack/.claude/skills/rite-converge/SKILL.md +4 -3
  108. package/pack/.claude/skills/rite-customize/SKILL.md +1 -1
  109. package/pack/.claude/skills/rite-define/SKILL.md +3 -2
  110. package/pack/.claude/skills/rite-doctor/SKILL.md +12 -6
  111. package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -2
  112. package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
  113. package/pack/.claude/skills/rite-fast/SKILL.md +3 -1
  114. package/pack/.claude/skills/rite-handoff/SKILL.md +4 -3
  115. package/pack/.claude/skills/rite-learn/SKILL.md +2 -2
  116. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +2 -0
  117. package/pack/.claude/skills/rite-plan/reference/slicing.md +3 -1
  118. package/pack/.claude/skills/rite-pov/SKILL.md +1 -1
  119. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +5 -4
  120. package/pack/.claude/skills/rite-pressure-test/SKILL.md +7 -5
  121. package/pack/.claude/skills/rite-prototype/SKILL.md +1 -1
  122. package/pack/.claude/skills/rite-quick/SKILL.md +10 -5
  123. package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
  124. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +4 -5
  125. package/pack/.claude/skills/rite-review/SKILL.md +2 -1
  126. package/pack/.claude/skills/rite-seal/SKILL.md +3 -3
  127. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +2 -0
  128. package/pack/.claude/skills/rite-seal/reference/seal-template.md +5 -2
  129. package/pack/.claude/skills/rite-ship/reference/close-out.md +3 -2
  130. package/pack/.claude/skills/rite-spec/SKILL.md +4 -1
  131. package/pack/.claude/skills/rite-status/SKILL.md +1 -1
  132. package/pack/.claude/skills/rite-temper/reference/significance.md +2 -0
  133. package/pack/.claude/skills/rite-upgrade/SKILL.md +4 -2
  134. package/pack/.claude/skills/rite-vet/SKILL.md +3 -2
  135. package/pack/.claude/skills/rite-vet/reference/artifacts.md +1 -1
  136. package/pack/.claude/skills/rite-watch-pr/SKILL.md +1 -1
  137. package/pack/.claude/skills/rite-zoom-out/SKILL.md +1 -1
  138. package/pack/generated/claude/agents/devrites-devex-reviewer.md +5 -0
  139. package/pack/generated/claude/agents/devrites-evidence-scout.md +4 -0
  140. package/pack/generated/claude/agents/devrites-plan-reviewer.md +4 -1
  141. package/pack/generated/claude/agents/devrites-slice-wright.md +4 -1
  142. package/pack/generated/claude/agents/overhaul-backend-engineer.md +2 -0
  143. package/pack/generated/claude/agents/overhaul-boundary.md +2 -0
  144. package/pack/generated/claude/agents/overhaul-craft.md +2 -0
  145. package/pack/generated/claude/agents/overhaul-frontend-engineer.md +2 -0
  146. package/pack/generated/claude/agents/overhaul-implementer.md +3 -0
  147. package/pack/generated/claude/agents/overhaul-recon.md +2 -0
  148. package/pack/generated/claude/agents/overhaul-specialist.md +2 -0
  149. package/pack/generated/claude/agents/overhaul-verifier.md +2 -0
  150. package/pack/generated/claude/settings.json +4 -4
  151. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +1 -1
  152. package/pack/generated/claude/skills/devrites-audit/SKILL.md +1 -1
  153. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +1 -1
  154. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +3 -2
  155. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +1 -1
  156. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +1 -1
  157. package/pack/generated/claude/skills/devrites-interview/SKILL.md +1 -1
  158. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +3 -3
  159. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +4 -3
  160. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
  161. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
  162. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +1 -1
  163. package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
  164. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
  165. package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
  166. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +2 -0
  167. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
  168. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +13 -0
  169. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +10 -6
  170. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +1 -1
  171. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +1 -1
  172. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +1 -1
  173. package/pack/generated/claude/skills/overhaul/references/orchestration.md +6 -2
  174. package/pack/generated/claude/skills/overhaul/references/records.md +8 -3
  175. package/pack/generated/claude/skills/rite/SKILL.md +4 -3
  176. package/pack/generated/claude/skills/rite/reference/menu.md +6 -5
  177. package/pack/generated/claude/skills/rite-adopt/SKILL.md +4 -3
  178. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +6 -5
  179. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +2 -1
  180. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
  181. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +3 -1
  182. package/pack/generated/claude/skills/rite-build/reference/output.md +1 -1
  183. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +2 -0
  184. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +19 -0
  185. package/pack/generated/claude/skills/rite-converge/SKILL.md +4 -3
  186. package/pack/generated/claude/skills/rite-customize/SKILL.md +1 -1
  187. package/pack/generated/claude/skills/rite-define/SKILL.md +3 -2
  188. package/pack/generated/claude/skills/rite-doctor/SKILL.md +12 -6
  189. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -2
  190. package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
  191. package/pack/generated/claude/skills/rite-fast/SKILL.md +3 -1
  192. package/pack/generated/claude/skills/rite-handoff/SKILL.md +4 -3
  193. package/pack/generated/claude/skills/rite-learn/SKILL.md +2 -2
  194. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +2 -0
  195. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +3 -1
  196. package/pack/generated/claude/skills/rite-pov/SKILL.md +1 -1
  197. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +5 -4
  198. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +7 -5
  199. package/pack/generated/claude/skills/rite-prototype/SKILL.md +1 -1
  200. package/pack/generated/claude/skills/rite-quick/SKILL.md +10 -5
  201. package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
  202. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +4 -5
  203. package/pack/generated/claude/skills/rite-review/SKILL.md +2 -1
  204. package/pack/generated/claude/skills/rite-seal/SKILL.md +3 -3
  205. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +2 -0
  206. package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +5 -2
  207. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +3 -2
  208. package/pack/generated/claude/skills/rite-spec/SKILL.md +4 -1
  209. package/pack/generated/claude/skills/rite-status/SKILL.md +1 -1
  210. package/pack/generated/claude/skills/rite-temper/reference/significance.md +2 -0
  211. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +4 -2
  212. package/pack/generated/claude/skills/rite-vet/SKILL.md +3 -2
  213. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +1 -1
  214. package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +1 -1
  215. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +1 -1
  216. package/pack/generated/codex/agents/devrites-code-reviewer.toml +7 -7
  217. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +6 -1
  218. package/pack/generated/codex/agents/devrites-evidence-scout.toml +4 -0
  219. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +1 -1
  220. package/pack/generated/codex/agents/devrites-plan-drafter.toml +3 -3
  221. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +5 -2
  222. package/pack/generated/codex/agents/devrites-proof-runner.toml +2 -2
  223. package/pack/generated/codex/agents/devrites-security-auditor.toml +1 -1
  224. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +1 -1
  225. package/pack/generated/codex/agents/devrites-slice-wright.toml +8 -5
  226. package/pack/generated/codex/agents/devrites-test-analyst.toml +5 -5
  227. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +1 -1
  228. package/pack/generated/codex/agents/fast-builder.toml +3 -3
  229. package/pack/generated/codex/agents/fast-critic.toml +3 -3
  230. package/pack/generated/codex/agents/overhaul-backend-engineer.toml +2 -0
  231. package/pack/generated/codex/agents/overhaul-boundary.toml +2 -0
  232. package/pack/generated/codex/agents/overhaul-craft.toml +2 -0
  233. package/pack/generated/codex/agents/overhaul-frontend-engineer.toml +2 -0
  234. package/pack/generated/codex/agents/overhaul-implementer.toml +2 -0
  235. package/pack/generated/codex/agents/overhaul-recon.toml +2 -0
  236. package/pack/generated/codex/agents/overhaul-specialist.toml +2 -0
  237. package/pack/generated/codex/agents/overhaul-verifier.toml +2 -0
  238. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +1 -1
  239. package/pack/generated/codex/skills/devrites-audit/SKILL.md +1 -1
  240. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +1 -1
  241. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +3 -2
  242. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +1 -1
  243. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +1 -1
  244. package/pack/generated/codex/skills/devrites-interview/SKILL.md +1 -1
  245. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +3 -3
  246. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
  247. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
  248. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -1
  249. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
  250. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +1 -1
  251. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
  252. package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
  253. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
  254. package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
  255. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +2 -0
  256. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
  257. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +13 -0
  258. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
  259. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +1 -1
  260. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +1 -1
  261. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +1 -1
  262. package/pack/generated/codex/skills/overhaul/SKILL.md +15 -15
  263. package/pack/generated/codex/skills/overhaul/references/audit-domains.md +2 -2
  264. package/pack/generated/codex/skills/overhaul/references/orchestration.md +11 -7
  265. package/pack/generated/codex/skills/overhaul/references/records.md +8 -3
  266. package/pack/generated/codex/skills/rite/SKILL.md +4 -3
  267. package/pack/generated/codex/skills/rite/reference/menu.md +6 -5
  268. package/pack/generated/codex/skills/rite-adopt/SKILL.md +4 -3
  269. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +7 -6
  270. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +2 -1
  271. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
  272. package/pack/generated/codex/skills/rite-build/SKILL.md +2 -2
  273. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +3 -1
  274. package/pack/generated/codex/skills/rite-build/reference/output.md +1 -1
  275. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +1 -1
  276. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +2 -0
  277. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +20 -1
  278. package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
  279. package/pack/generated/codex/skills/rite-converge/SKILL.md +5 -4
  280. package/pack/generated/codex/skills/rite-customize/SKILL.md +1 -1
  281. package/pack/generated/codex/skills/rite-define/SKILL.md +4 -3
  282. package/pack/generated/codex/skills/rite-doctor/SKILL.md +12 -6
  283. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +2 -2
  284. package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
  285. package/pack/generated/codex/skills/rite-fast/SKILL.md +8 -6
  286. package/pack/generated/codex/skills/rite-frame/SKILL.md +1 -1
  287. package/pack/generated/codex/skills/rite-handoff/SKILL.md +4 -3
  288. package/pack/generated/codex/skills/rite-learn/SKILL.md +2 -2
  289. package/pack/generated/codex/skills/rite-plan/SKILL.md +1 -1
  290. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +2 -0
  291. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +3 -1
  292. package/pack/generated/codex/skills/rite-polish/SKILL.md +2 -2
  293. package/pack/generated/codex/skills/rite-pov/SKILL.md +1 -1
  294. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -4
  295. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +7 -5
  296. package/pack/generated/codex/skills/rite-prototype/SKILL.md +1 -1
  297. package/pack/generated/codex/skills/rite-prove/SKILL.md +1 -1
  298. package/pack/generated/codex/skills/rite-quick/SKILL.md +11 -6
  299. package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
  300. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +4 -5
  301. package/pack/generated/codex/skills/rite-review/SKILL.md +3 -2
  302. package/pack/generated/codex/skills/rite-seal/SKILL.md +4 -4
  303. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +2 -0
  304. package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +5 -2
  305. package/pack/generated/codex/skills/rite-ship/SKILL.md +1 -1
  306. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +3 -2
  307. package/pack/generated/codex/skills/rite-spec/SKILL.md +5 -2
  308. package/pack/generated/codex/skills/rite-status/SKILL.md +1 -1
  309. package/pack/generated/codex/skills/rite-temper/SKILL.md +2 -2
  310. package/pack/generated/codex/skills/rite-temper/reference/significance.md +2 -0
  311. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +4 -2
  312. package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -3
  313. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +1 -1
  314. package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +1 -1
  315. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +1 -1
  316. package/pack/generated/devin/AGENTS.md +1 -1
  317. package/pack/generated/devin/agents/devrites-devex-reviewer.md +5 -0
  318. package/pack/generated/devin/agents/devrites-evidence-scout.md +4 -0
  319. package/pack/generated/devin/agents/devrites-plan-reviewer.md +4 -1
  320. package/pack/generated/devin/agents/devrites-slice-wright.md +4 -1
  321. package/pack/generated/devin/agents/overhaul-backend-engineer.md +2 -0
  322. package/pack/generated/devin/agents/overhaul-boundary.md +2 -0
  323. package/pack/generated/devin/agents/overhaul-craft.md +2 -0
  324. package/pack/generated/devin/agents/overhaul-frontend-engineer.md +2 -0
  325. package/pack/generated/devin/agents/overhaul-implementer.md +2 -0
  326. package/pack/generated/devin/agents/overhaul-recon.md +2 -0
  327. package/pack/generated/devin/agents/overhaul-specialist.md +2 -0
  328. package/pack/generated/devin/agents/overhaul-verifier.md +2 -0
  329. package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +1 -1
  330. package/pack/generated/devin/skills/devrites-audit/SKILL.md +1 -1
  331. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +1 -1
  332. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +3 -2
  333. package/pack/generated/devin/skills/devrites-doubt/SKILL.md +1 -1
  334. package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +1 -1
  335. package/pack/generated/devin/skills/devrites-interview/SKILL.md +2 -2
  336. package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +3 -3
  337. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
  338. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +8 -7
  339. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +1 -1
  340. package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
  341. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +1 -1
  342. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +1 -1
  343. package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
  344. package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
  345. package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
  346. package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +2 -0
  347. package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
  348. package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +13 -0
  349. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
  350. package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +1 -1
  351. package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +1 -1
  352. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +1 -1
  353. package/pack/generated/devin/skills/overhaul/SKILL.md +15 -15
  354. package/pack/generated/devin/skills/overhaul/references/audit-domains.md +2 -2
  355. package/pack/generated/devin/skills/overhaul/references/orchestration.md +11 -7
  356. package/pack/generated/devin/skills/overhaul/references/records.md +8 -3
  357. package/pack/generated/devin/skills/rite/SKILL.md +4 -3
  358. package/pack/generated/devin/skills/rite/reference/menu.md +6 -5
  359. package/pack/generated/devin/skills/rite-adopt/SKILL.md +4 -3
  360. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +8 -7
  361. package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +1 -1
  362. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +2 -1
  363. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +3 -2
  364. package/pack/generated/devin/skills/rite-build/SKILL.md +2 -2
  365. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +3 -1
  366. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +2 -2
  367. package/pack/generated/devin/skills/rite-build/reference/output.md +1 -1
  368. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +1 -1
  369. package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +2 -0
  370. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +20 -1
  371. package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
  372. package/pack/generated/devin/skills/rite-converge/SKILL.md +5 -4
  373. package/pack/generated/devin/skills/rite-customize/SKILL.md +1 -1
  374. package/pack/generated/devin/skills/rite-define/SKILL.md +4 -3
  375. package/pack/generated/devin/skills/rite-doctor/SKILL.md +12 -6
  376. package/pack/generated/devin/skills/rite-dogfood/SKILL.md +2 -2
  377. package/pack/generated/devin/skills/rite-explain/SKILL.md +3 -3
  378. package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
  379. package/pack/generated/devin/skills/rite-fast/SKILL.md +8 -6
  380. package/pack/generated/devin/skills/rite-frame/SKILL.md +1 -1
  381. package/pack/generated/devin/skills/rite-handoff/SKILL.md +4 -3
  382. package/pack/generated/devin/skills/rite-learn/SKILL.md +2 -2
  383. package/pack/generated/devin/skills/rite-plan/SKILL.md +1 -1
  384. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +2 -0
  385. package/pack/generated/devin/skills/rite-plan/reference/slicing.md +3 -1
  386. package/pack/generated/devin/skills/rite-polish/SKILL.md +2 -2
  387. package/pack/generated/devin/skills/rite-pov/SKILL.md +1 -1
  388. package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +5 -4
  389. package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +7 -5
  390. package/pack/generated/devin/skills/rite-prototype/SKILL.md +1 -1
  391. package/pack/generated/devin/skills/rite-prove/SKILL.md +1 -1
  392. package/pack/generated/devin/skills/rite-quick/SKILL.md +11 -6
  393. package/pack/generated/devin/skills/rite-resolve/SKILL.md +4 -4
  394. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +4 -5
  395. package/pack/generated/devin/skills/rite-review/SKILL.md +3 -2
  396. package/pack/generated/devin/skills/rite-seal/SKILL.md +4 -4
  397. package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +2 -0
  398. package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +5 -2
  399. package/pack/generated/devin/skills/rite-ship/SKILL.md +1 -1
  400. package/pack/generated/devin/skills/rite-ship/reference/close-out.md +3 -2
  401. package/pack/generated/devin/skills/rite-spec/SKILL.md +5 -2
  402. package/pack/generated/devin/skills/rite-spec/reference/investigation.md +1 -1
  403. package/pack/generated/devin/skills/rite-status/SKILL.md +1 -1
  404. package/pack/generated/devin/skills/rite-temper/SKILL.md +3 -3
  405. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +1 -1
  406. package/pack/generated/devin/skills/rite-temper/reference/significance.md +3 -1
  407. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +4 -2
  408. package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -3
  409. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +1 -1
  410. package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +2 -2
  411. package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +1 -1
  412. package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +1 -1
  413. package/pack/generated/omp/agents/devrites-code-reviewer.md +7 -7
  414. package/pack/generated/omp/agents/devrites-devex-reviewer.md +6 -1
  415. package/pack/generated/omp/agents/devrites-evidence-scout.md +4 -0
  416. package/pack/generated/omp/agents/devrites-frontend-reviewer.md +1 -1
  417. package/pack/generated/omp/agents/devrites-plan-drafter.md +3 -3
  418. package/pack/generated/omp/agents/devrites-plan-reviewer.md +5 -2
  419. package/pack/generated/omp/agents/devrites-proof-runner.md +2 -2
  420. package/pack/generated/omp/agents/devrites-security-auditor.md +1 -1
  421. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +1 -1
  422. package/pack/generated/omp/agents/devrites-slice-wright.md +8 -5
  423. package/pack/generated/omp/agents/devrites-test-analyst.md +5 -5
  424. package/pack/generated/omp/agents/devrites-upgrade-planner.md +1 -1
  425. package/pack/generated/omp/agents/fast-builder.md +3 -3
  426. package/pack/generated/omp/agents/fast-critic.md +3 -3
  427. package/pack/generated/omp/agents/overhaul-backend-engineer.md +2 -0
  428. package/pack/generated/omp/agents/overhaul-boundary.md +2 -0
  429. package/pack/generated/omp/agents/overhaul-craft.md +2 -0
  430. package/pack/generated/omp/agents/overhaul-frontend-engineer.md +2 -0
  431. package/pack/generated/omp/agents/overhaul-implementer.md +2 -0
  432. package/pack/generated/omp/agents/overhaul-recon.md +2 -0
  433. package/pack/generated/omp/agents/overhaul-specialist.md +2 -0
  434. package/pack/generated/omp/agents/overhaul-verifier.md +2 -0
  435. package/pack/generated/omp/commands/rite-resolve.md +1 -1
  436. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +4 -4
  437. package/pack/generated/omp/skills/devrites-audit/SKILL.md +5 -5
  438. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +5 -5
  439. package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +1 -1
  440. package/pack/generated/omp/skills/devrites-browser-proof/reference/visual-verdict.md +1 -1
  441. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +7 -6
  442. package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +1 -1
  443. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +6 -6
  444. package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +3 -3
  445. package/pack/generated/omp/skills/devrites-frontend-craft/reference/craft.md +1 -1
  446. package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +4 -4
  447. package/pack/generated/omp/skills/devrites-frontend-craft/reference/fullstack.md +1 -1
  448. package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +8 -8
  449. package/pack/generated/omp/skills/devrites-frontend-craft/reference/reuse-first.md +2 -2
  450. package/pack/generated/omp/skills/devrites-frontend-craft/reference/shape.md +2 -2
  451. package/pack/generated/omp/skills/devrites-interview/SKILL.md +3 -3
  452. package/pack/generated/omp/skills/devrites-lib/reference/intent-map.md +4 -4
  453. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +8 -7
  454. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +13 -12
  455. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +6 -6
  456. package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -2
  457. package/pack/generated/omp/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
  458. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +3 -3
  459. package/pack/generated/omp/skills/devrites-lib/reference/standards/coding-style.md +1 -1
  460. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +2 -2
  461. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +3 -3
  462. package/pack/generated/omp/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
  463. package/pack/generated/omp/skills/devrites-lib/reference/standards/debug-recovery.md +1 -1
  464. package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  465. package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +8 -3
  466. package/pack/generated/omp/skills/devrites-lib/reference/standards/glossary.md +3 -3
  467. package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
  468. package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +3 -1
  469. package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +4 -4
  470. package/pack/generated/omp/skills/devrites-lib/reference/standards/release/ship-checklist.md +1 -1
  471. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +1 -1
  472. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ci-workflows.md +1 -1
  473. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/react.md +1 -1
  474. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/stack-profile.md +5 -5
  475. package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +15 -3
  476. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +3 -3
  477. package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +14 -1
  478. package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +1 -1
  479. package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +1 -1
  480. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/index.md +2 -2
  481. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +12 -8
  482. package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +4 -4
  483. package/pack/generated/omp/skills/devrites-prose-craft/reference/examples.md +1 -1
  484. package/pack/generated/omp/skills/devrites-source-driven/SKILL.md +3 -3
  485. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +10 -10
  486. package/pack/generated/omp/skills/devrites-ux-shape/reference/brief-template.md +3 -3
  487. package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +1 -1
  488. package/pack/generated/omp/skills/overhaul/references/orchestration.md +6 -2
  489. package/pack/generated/omp/skills/overhaul/references/records.md +8 -3
  490. package/pack/generated/omp/skills/rite/SKILL.md +8 -7
  491. package/pack/generated/omp/skills/rite/reference/menu.md +6 -5
  492. package/pack/generated/omp/skills/rite-adopt/SKILL.md +6 -5
  493. package/pack/generated/omp/skills/rite-adopt/reference/anti-patterns.md +1 -1
  494. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +11 -10
  495. package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +1 -1
  496. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +4 -3
  497. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
  498. package/pack/generated/omp/skills/rite-build/SKILL.md +7 -7
  499. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +4 -2
  500. package/pack/generated/omp/skills/rite-build/reference/anti-patterns.md +1 -1
  501. package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +2 -2
  502. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +2 -2
  503. package/pack/generated/omp/skills/rite-build/reference/frontend-trigger.md +1 -1
  504. package/pack/generated/omp/skills/rite-build/reference/output.md +1 -1
  505. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +4 -4
  506. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +8 -6
  507. package/pack/generated/omp/skills/rite-build/reference/tdd.md +1 -1
  508. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +27 -8
  509. package/pack/generated/omp/skills/rite-clarify/SKILL.md +4 -4
  510. package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +1 -1
  511. package/pack/generated/omp/skills/rite-converge/SKILL.md +16 -15
  512. package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +4 -4
  513. package/pack/generated/omp/skills/rite-customize/SKILL.md +2 -2
  514. package/pack/generated/omp/skills/rite-define/SKILL.md +25 -24
  515. package/pack/generated/omp/skills/rite-define/reference/anti-patterns.md +2 -2
  516. package/pack/generated/omp/skills/rite-define/reference/gates.md +2 -2
  517. package/pack/generated/omp/skills/rite-doctor/SKILL.md +12 -6
  518. package/pack/generated/omp/skills/rite-dogfood/SKILL.md +5 -5
  519. package/pack/generated/omp/skills/rite-explain/SKILL.md +7 -7
  520. package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
  521. package/pack/generated/omp/skills/rite-fast/SKILL.md +12 -10
  522. package/pack/generated/omp/skills/rite-fast/reference/artifacts.md +1 -1
  523. package/pack/generated/omp/skills/rite-frame/SKILL.md +6 -6
  524. package/pack/generated/omp/skills/rite-frame/reference/failure-modes.md +4 -4
  525. package/pack/generated/omp/skills/rite-handoff/SKILL.md +7 -6
  526. package/pack/generated/omp/skills/rite-learn/SKILL.md +6 -6
  527. package/pack/generated/omp/skills/rite-plan/SKILL.md +8 -8
  528. package/pack/generated/omp/skills/rite-plan/reference/anti-patterns.md +1 -1
  529. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +3 -1
  530. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +6 -4
  531. package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +1 -1
  532. package/pack/generated/omp/skills/rite-polish/SKILL.md +6 -6
  533. package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +9 -9
  534. package/pack/generated/omp/skills/rite-polish/reference/anti-patterns.md +1 -1
  535. package/pack/generated/omp/skills/rite-polish/reference/backend-polish.md +2 -2
  536. package/pack/generated/omp/skills/rite-polish/reference/browser-polish-evidence.md +1 -1
  537. package/pack/generated/omp/skills/rite-polish/reference/code.md +8 -8
  538. package/pack/generated/omp/skills/rite-polish/reference/design-memory.md +3 -3
  539. package/pack/generated/omp/skills/rite-polish/reference/design-system-discovery.md +1 -1
  540. package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +1 -1
  541. package/pack/generated/omp/skills/rite-polish/reference/ledger.md +3 -3
  542. package/pack/generated/omp/skills/rite-polish/reference/ui.md +1 -1
  543. package/pack/generated/omp/skills/rite-pov/SKILL.md +2 -2
  544. package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +6 -5
  545. package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +9 -7
  546. package/pack/generated/omp/skills/rite-prototype/SKILL.md +1 -1
  547. package/pack/generated/omp/skills/rite-prove/SKILL.md +13 -13
  548. package/pack/generated/omp/skills/rite-prove/reference/acceptance-proof.md +7 -7
  549. package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +1 -1
  550. package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +3 -3
  551. package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +2 -2
  552. package/pack/generated/omp/skills/rite-quick/SKILL.md +19 -14
  553. package/pack/generated/omp/skills/rite-resolve/SKILL.md +6 -6
  554. package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +4 -5
  555. package/pack/generated/omp/skills/rite-review/SKILL.md +23 -22
  556. package/pack/generated/omp/skills/rite-review/reference/anti-patterns.md +1 -1
  557. package/pack/generated/omp/skills/rite-review/reference/cognitive-load.md +2 -2
  558. package/pack/generated/omp/skills/rite-review/reference/nielsen-heuristics.md +1 -1
  559. package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +1 -1
  560. package/pack/generated/omp/skills/rite-review/reference/performance-review.md +1 -1
  561. package/pack/generated/omp/skills/rite-review/reference/security-review.md +2 -2
  562. package/pack/generated/omp/skills/rite-seal/SKILL.md +11 -11
  563. package/pack/generated/omp/skills/rite-seal/reference/anti-patterns.md +1 -1
  564. package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +3 -3
  565. package/pack/generated/omp/skills/rite-seal/reference/go-no-go.md +3 -1
  566. package/pack/generated/omp/skills/rite-seal/reference/output.md +1 -1
  567. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +4 -4
  568. package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +5 -2
  569. package/pack/generated/omp/skills/rite-ship/SKILL.md +7 -7
  570. package/pack/generated/omp/skills/rite-ship/reference/anti-patterns.md +1 -1
  571. package/pack/generated/omp/skills/rite-ship/reference/close-out.md +5 -4
  572. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +2 -2
  573. package/pack/generated/omp/skills/rite-ship/reference/rollout.md +3 -3
  574. package/pack/generated/omp/skills/rite-spec/SKILL.md +17 -14
  575. package/pack/generated/omp/skills/rite-spec/reference/anti-patterns.md +1 -1
  576. package/pack/generated/omp/skills/rite-spec/reference/investigation.md +3 -3
  577. package/pack/generated/omp/skills/rite-spec/reference/question-protocol.md +1 -1
  578. package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +2 -2
  579. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +8 -8
  580. package/pack/generated/omp/skills/rite-status/SKILL.md +2 -2
  581. package/pack/generated/omp/skills/rite-temper/SKILL.md +13 -13
  582. package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +2 -2
  583. package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +3 -3
  584. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +3 -3
  585. package/pack/generated/omp/skills/rite-temper/reference/significance.md +4 -2
  586. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -5
  587. package/pack/generated/omp/skills/rite-vet/SKILL.md +14 -13
  588. package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +2 -2
  589. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +3 -3
  590. package/pack/generated/omp/skills/rite-vet/reference/depth.md +3 -3
  591. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +5 -5
  592. package/pack/generated/omp/skills/rite-watch-pr/SKILL.md +2 -2
  593. package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +1 -1
  594. package/pack/generated/pi/agents/devrites-devex-reviewer.md +5 -0
  595. package/pack/generated/pi/agents/devrites-evidence-scout.md +4 -0
  596. package/pack/generated/pi/agents/devrites-plan-reviewer.md +4 -1
  597. package/pack/generated/pi/agents/devrites-slice-wright.md +4 -1
  598. package/pack/generated/pi/agents/overhaul-backend-engineer.md +2 -0
  599. package/pack/generated/pi/agents/overhaul-boundary.md +2 -0
  600. package/pack/generated/pi/agents/overhaul-craft.md +2 -0
  601. package/pack/generated/pi/agents/overhaul-frontend-engineer.md +2 -0
  602. package/pack/generated/pi/agents/overhaul-implementer.md +2 -0
  603. package/pack/generated/pi/agents/overhaul-recon.md +2 -0
  604. package/pack/generated/pi/agents/overhaul-specialist.md +2 -0
  605. package/pack/generated/pi/agents/overhaul-verifier.md +2 -0
  606. package/pack/generated/pi/prompts/rite-resolve.md +1 -1
  607. package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +1 -1
  608. package/pack/generated/pi/skills/devrites-audit/SKILL.md +1 -1
  609. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +1 -1
  610. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +3 -2
  611. package/pack/generated/pi/skills/devrites-doubt/SKILL.md +1 -1
  612. package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +1 -1
  613. package/pack/generated/pi/skills/devrites-interview/SKILL.md +1 -1
  614. package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +3 -3
  615. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +6 -5
  616. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +5 -4
  617. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +1 -1
  618. package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +2 -1
  619. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +1 -1
  620. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +1 -1
  621. package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +4 -0
  622. package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +5 -0
  623. package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +3 -0
  624. package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +2 -0
  625. package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +13 -1
  626. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +13 -0
  627. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +11 -7
  628. package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +1 -1
  629. package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +1 -1
  630. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +1 -1
  631. package/pack/generated/pi/skills/overhaul/SKILL.md +15 -15
  632. package/pack/generated/pi/skills/overhaul/references/audit-domains.md +2 -2
  633. package/pack/generated/pi/skills/overhaul/references/orchestration.md +11 -7
  634. package/pack/generated/pi/skills/overhaul/references/records.md +8 -3
  635. package/pack/generated/pi/skills/rite/SKILL.md +4 -3
  636. package/pack/generated/pi/skills/rite/reference/menu.md +6 -5
  637. package/pack/generated/pi/skills/rite-adopt/SKILL.md +4 -3
  638. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +7 -6
  639. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +2 -1
  640. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +2 -1
  641. package/pack/generated/pi/skills/rite-build/SKILL.md +2 -2
  642. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +3 -1
  643. package/pack/generated/pi/skills/rite-build/reference/output.md +1 -1
  644. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +1 -1
  645. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +2 -0
  646. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +20 -1
  647. package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
  648. package/pack/generated/pi/skills/rite-converge/SKILL.md +5 -4
  649. package/pack/generated/pi/skills/rite-customize/SKILL.md +1 -1
  650. package/pack/generated/pi/skills/rite-define/SKILL.md +4 -3
  651. package/pack/generated/pi/skills/rite-doctor/SKILL.md +12 -6
  652. package/pack/generated/pi/skills/rite-dogfood/SKILL.md +2 -2
  653. package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
  654. package/pack/generated/pi/skills/rite-fast/SKILL.md +8 -6
  655. package/pack/generated/pi/skills/rite-frame/SKILL.md +1 -1
  656. package/pack/generated/pi/skills/rite-handoff/SKILL.md +4 -3
  657. package/pack/generated/pi/skills/rite-learn/SKILL.md +2 -2
  658. package/pack/generated/pi/skills/rite-plan/SKILL.md +1 -1
  659. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +2 -0
  660. package/pack/generated/pi/skills/rite-plan/reference/slicing.md +3 -1
  661. package/pack/generated/pi/skills/rite-polish/SKILL.md +2 -2
  662. package/pack/generated/pi/skills/rite-pov/SKILL.md +1 -1
  663. package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +5 -4
  664. package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +7 -5
  665. package/pack/generated/pi/skills/rite-prototype/SKILL.md +1 -1
  666. package/pack/generated/pi/skills/rite-prove/SKILL.md +1 -1
  667. package/pack/generated/pi/skills/rite-quick/SKILL.md +11 -6
  668. package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
  669. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +4 -5
  670. package/pack/generated/pi/skills/rite-review/SKILL.md +3 -2
  671. package/pack/generated/pi/skills/rite-seal/SKILL.md +4 -4
  672. package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +2 -0
  673. package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +5 -2
  674. package/pack/generated/pi/skills/rite-ship/SKILL.md +1 -1
  675. package/pack/generated/pi/skills/rite-ship/reference/close-out.md +3 -2
  676. package/pack/generated/pi/skills/rite-spec/SKILL.md +5 -2
  677. package/pack/generated/pi/skills/rite-status/SKILL.md +1 -1
  678. package/pack/generated/pi/skills/rite-temper/SKILL.md +2 -2
  679. package/pack/generated/pi/skills/rite-temper/reference/significance.md +2 -0
  680. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +4 -2
  681. package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -3
  682. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +1 -1
  683. package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +1 -1
  684. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +1 -1
  685. package/package.json +3 -2
  686. package/scripts/build-host-artifacts.sh +13 -0
  687. package/scripts/codex-generate.sh +5 -1
  688. package/scripts/devin-generate.sh +4 -3
  689. package/scripts/install-lib.sh +5 -0
  690. package/scripts/omp-generate.sh +23 -1
  691. package/scripts/pi-generate.sh +2 -2
  692. package/engine/cmd/releasepack/main_test.go +0 -239
  693. package/engine/harnessmatrix_test.go +0 -46
  694. package/engine/help_test.go +0 -241
  695. package/engine/internal/acceptance/acceptance_test.go +0 -946
  696. package/engine/internal/devritespaths/paths_test.go +0 -128
  697. package/engine/internal/fsutil/copy_test.go +0 -154
  698. package/engine/internal/gate/gate_test.go +0 -865
  699. package/engine/internal/gate/readiness_binding_test.go +0 -443
  700. package/engine/internal/gitenv/env_test.go +0 -48
  701. package/engine/internal/hostpack/hostpack_test.go +0 -269
  702. package/engine/internal/install/install_test.go +0 -1741
  703. package/engine/internal/install/workspace_advisory_test.go +0 -54
  704. package/engine/internal/lib/candidate_test.go +0 -506
  705. package/engine/internal/lib/claims_test.go +0 -267
  706. package/engine/internal/lib/closeout_test.go +0 -266
  707. package/engine/internal/lib/context_next_test.go +0 -860
  708. package/engine/internal/lib/cursor_compat_test.go +0 -65
  709. package/engine/internal/lib/detect_test.go +0 -118
  710. package/engine/internal/lib/drift_test.go +0 -135
  711. package/engine/internal/lib/dup_test.go +0 -666
  712. package/engine/internal/lib/environment_report_test.go +0 -54
  713. package/engine/internal/lib/evidencefresh_test.go +0 -120
  714. package/engine/internal/lib/handoff_test.go +0 -83
  715. package/engine/internal/lib/manifest_union_test.go +0 -251
  716. package/engine/internal/lib/metrics_test.go +0 -28
  717. package/engine/internal/lib/migrate_test.go +0 -213
  718. package/engine/internal/lib/observe_budgets_test.go +0 -396
  719. package/engine/internal/lib/open_visual_test.go +0 -291
  720. package/engine/internal/lib/regression_test.go +0 -282
  721. package/engine/internal/lib/resolve_remediation_test.go +0 -192
  722. package/engine/internal/lib/secretscan_test.go +0 -556
  723. package/engine/internal/lib/slicecheck_test.go +0 -170
  724. package/engine/internal/lib/taskgraph_test.go +0 -353
  725. package/engine/internal/lib/triggers_test.go +0 -23
  726. package/engine/internal/lib/util_test.go +0 -148
  727. package/engine/internal/lib/visual_outline_test.go +0 -189
  728. package/engine/internal/lib/windows_test.go +0 -420
  729. package/engine/internal/lib/workspace_read_test.go +0 -102
  730. package/engine/internal/markdowntext/markdowntext_fuzz_test.go +0 -36
  731. package/engine/internal/markdowntext/markdowntext_test.go +0 -58
  732. package/engine/internal/markdowntext/testdata/structural.json +0 -277
  733. package/engine/internal/notes/notes_test.go +0 -545
  734. package/engine/internal/overhaul/admit/admit_test.go +0 -204
  735. package/engine/internal/overhaul/admit/packet_test.go +0 -223
  736. package/engine/internal/overhaul/bench/run_test.go +0 -316
  737. package/engine/internal/overhaul/ovio/ovio_test.go +0 -75
  738. package/engine/internal/overhaul/packet/packet_test.go +0 -263
  739. package/engine/internal/overhaul/records/init_test.go +0 -96
  740. package/engine/internal/overhaul/records/records_test.go +0 -696
  741. package/engine/internal/overhaul/records/run_test.go +0 -77
  742. package/engine/internal/overhaul/render/run_test.go +0 -928
  743. package/engine/internal/overhaul/score/run_test.go +0 -636
  744. package/engine/internal/overhaul/snapshot/run_test.go +0 -718
  745. package/engine/internal/parallel/cli_test.go +0 -91
  746. package/engine/internal/parallel/ops_test.go +0 -939
  747. package/engine/internal/parallel/parallel_test.go +0 -645
  748. package/engine/internal/parallel/pathdisjoint_fuzz_test.go +0 -43
  749. package/engine/internal/parallel/pathdisjoint_test.go +0 -193
  750. package/engine/internal/parallel/select_test.go +0 -95
  751. package/engine/internal/parallel/testdata/fuzz/FuzzPathDisjoint/a449b81b4711b7b4 +0 -3
  752. package/engine/internal/reason/reason_test.go +0 -37
  753. package/engine/internal/release/release_test.go +0 -181
  754. package/engine/internal/rootfacts/facts_test.go +0 -364
  755. package/engine/internal/safepath/safepath_fuzz_test.go +0 -21
  756. package/engine/internal/safepath/safepath_test.go +0 -69
  757. package/engine/internal/safepath/safepath_windows_test.go +0 -26
  758. package/engine/internal/state/acceptance_test.go +0 -57
  759. package/engine/internal/state/budgets_test.go +0 -135
  760. package/engine/internal/state/cmd/workflowmanifest/main_test.go +0 -96
  761. package/engine/internal/state/concurrency_test.go +0 -184
  762. package/engine/internal/state/cursor_fuzz_test.go +0 -80
  763. package/engine/internal/state/cursor_test.go +0 -276
  764. package/engine/internal/state/observation_test.go +0 -961
  765. package/engine/internal/state/observation_unix_test.go +0 -68
  766. package/engine/internal/state/state_test.go +0 -986
  767. package/engine/internal/state/taskgraph_fuzz_test.go +0 -38
  768. package/engine/internal/state/taskgraph_test.go +0 -43
  769. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/114b28f68c1fa4db +0 -4
  770. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/378a0f2218e812ea +0 -4
  771. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/39eaa26fcb481e3c +0 -4
  772. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/776ca1dc0143acf0 +0 -4
  773. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/9295930c1ebb81df +0 -4
  774. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/a60de309dc33be0d +0 -4
  775. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f04dc7b06ef7c99f +0 -4
  776. package/engine/internal/state/testdata/fuzz/FuzzCursorRoundTrip/f3000ac510878bd6 +0 -4
  777. package/engine/internal/state/testdata/fuzz/FuzzWorkspaceSchemaRow/a75aabb9f2a847d5 +0 -2
  778. package/engine/internal/state/workspaceschema_fuzz_test.go +0 -27
  779. package/engine/internal/state/workspaceschema_test.go +0 -101
  780. package/engine/internal/state/write_test.go +0 -136
  781. package/engine/internal/version/version_test.go +0 -29
  782. package/engine/internal/workflow/commands_test.go +0 -18
  783. package/engine/note_routing_test.go +0 -95
  784. package/engine/observation_contract_test.go +0 -175
  785. package/engine/root_routing_test.go +0 -340
@@ -67,21 +67,25 @@ func validateSlicePaths(paths []string, label, root string) ([]string, error) {
67
67
  if err != nil {
68
68
  return nil, fmt.Errorf("%s: %w", label, err)
69
69
  }
70
+ // Comparisons fold case always: on a case-insensitive filesystem
71
+ // (macOS, Windows) .DEVRITES is the control tree and A.go is a.go; on a
72
+ // case-sensitive one a false overlap only serializes the slices.
73
+ folded := strings.ToLower(path)
70
74
  // Parallel eligibility must reject workspace control metadata so slices
71
75
  // cannot claim control-tree / SSOT files (docs: ".devrites/**").
72
- if path == ".devrites" || strings.HasPrefix(path, ".devrites/") {
76
+ if folded == ".devrites" || strings.HasPrefix(folded, ".devrites/") {
73
77
  return nil, fmt.Errorf("%s: path must not include .devrites: %q", label, path)
74
78
  }
75
79
  // Same for git internals: a transfer commit can never carry .git/**
76
80
  // anyway, and inside a worktree .git is a file, so claiming it is
77
81
  // pure footgun.
78
- if path == ".git" || strings.HasPrefix(path, ".git/") {
82
+ if folded == ".git" || strings.HasPrefix(folded, ".git/") {
79
83
  return nil, fmt.Errorf("%s: path must not include .git: %q", label, path)
80
84
  }
81
- if _, ok := seen[path]; ok {
85
+ if _, ok := seen[folded]; ok {
82
86
  return nil, fmt.Errorf("%s: duplicate path %q", label, path)
83
87
  }
84
- seen[path] = struct{}{}
88
+ seen[folded] = struct{}{}
85
89
  normalized = append(normalized, path)
86
90
  if root != "" {
87
91
  // Check every component, not just the leaf: a symlinked directory
@@ -122,6 +126,7 @@ func CheckPathDisjoint(slices []SlicePaths, root string) ([]string, error) {
122
126
  return nil, err
123
127
  }
124
128
  for _, path := range paths {
129
+ path = strings.ToLower(path) // see validateSlicePaths: overlap folds case
125
130
  owners[path] = append(owners[path], label)
126
131
  }
127
132
  }
@@ -145,15 +145,17 @@ func validTag(tag string) bool {
145
145
  }
146
146
 
147
147
  func platformBinaryName() (string, error) {
148
- supported := (runtime.GOOS == "darwin" || runtime.GOOS == "linux") && (runtime.GOARCH == "amd64" || runtime.GOARCH == "arm64")
149
- if runtime.GOOS == "windows" && runtime.GOARCH == "amd64" {
150
- supported = true
151
- }
152
- if !supported {
153
- return "", fmt.Errorf("no DevRites engine release for %s/%s", runtime.GOOS, runtime.GOARCH)
154
- }
155
- name := "devrites-" + runtime.GOOS + "-" + runtime.GOARCH
156
- if runtime.GOOS == "windows" {
148
+ return binaryNameFor(runtime.GOOS, runtime.GOARCH)
149
+ }
150
+
151
+ // binaryNameFor names the release asset; CI publishes darwin, linux and
152
+ // windows for both amd64 and arm64.
153
+ func binaryNameFor(goos, goarch string) (string, error) {
154
+ if (goos != "darwin" && goos != "linux" && goos != "windows") || (goarch != "amd64" && goarch != "arm64") {
155
+ return "", fmt.Errorf("no DevRites engine release for %s/%s", goos, goarch)
156
+ }
157
+ name := "devrites-" + goos + "-" + goarch
158
+ if goos == "windows" {
157
159
  name += ".exe"
158
160
  }
159
161
  return name, nil
@@ -1,6 +1,7 @@
1
1
  package safepath
2
2
 
3
3
  import (
4
+ "errors"
4
5
  "os"
5
6
  "path/filepath"
6
7
  )
@@ -28,9 +29,10 @@ func WithinResolved(candidate, parent string) bool {
28
29
 
29
30
  // ResolveExisting resolves symlinks in the longest existing path prefix, then
30
31
  // appends any missing tail without allowing it to change the resolved parent.
32
+ // A dangling symlink is followed to its target: creating through it writes there.
31
33
  func ResolveExisting(filename string) (string, error) {
32
34
  var tail []string
33
- for {
35
+ for hops := 0; ; {
34
36
  resolved, err := filepath.EvalSymlinks(filename)
35
37
  if err == nil {
36
38
  for i := len(tail) - 1; i >= 0; i-- {
@@ -41,6 +43,20 @@ func ResolveExisting(filename string) (string, error) {
41
43
  if !os.IsNotExist(err) {
42
44
  return "", err
43
45
  }
46
+ if info, lerr := os.Lstat(filename); lerr == nil && info.Mode()&os.ModeSymlink != 0 {
47
+ target, rerr := os.Readlink(filename)
48
+ if rerr != nil {
49
+ return "", rerr
50
+ }
51
+ if hops++; hops > 255 {
52
+ return "", &os.PathError{Op: "resolve", Path: filename, Err: errors.New("too many symlinks")}
53
+ }
54
+ if !filepath.IsAbs(target) {
55
+ target = filepath.Join(filepath.Dir(filename), target)
56
+ }
57
+ filename = target
58
+ continue
59
+ }
44
60
  parent := filepath.Dir(filename)
45
61
  if parent == filename {
46
62
  return "", err
@@ -78,17 +78,21 @@ func ArtifactLineBudget(name string) (int, bool) {
78
78
 
79
79
  // sanctionedRootFiles are workspace-root files the schema places there without a
80
80
  // line budget: conditional artifacts (`references.md`, `investigation-map.md`,
81
- // `dogfood.md`) and engine-owned machine files (the parallel lease, the metrics
82
- // ledger, the regression baseline). Anything else in the root is unsanctioned
83
- // placement — `packets/` and `history/` own by-reference packets and relocated
84
- // narrative (workspace-artifact-schema.md "Required by phase").
81
+ // `dogfood.md`, `devex.md`) and engine-owned machine files (the parallel lease,
82
+ // the metrics ledger, the regression baseline, the dispatch ledger, the drift
83
+ // baseline). Anything else in the root is unsanctioned placement — `packets/`
84
+ // and `history/` own by-reference packets and relocated narrative
85
+ // (workspace-artifact-schema.md "Required by phase").
85
86
  var sanctionedRootFiles = map[string]bool{
86
87
  "references.md": true,
87
88
  "investigation-map.md": true,
88
89
  "dogfood.md": true,
90
+ "devex.md": true,
89
91
  "parallel-lease.md": true,
90
92
  "metrics.jsonl": true,
91
93
  "regression-baseline.json": true,
94
+ "dispatch.json": true,
95
+ "readiness-inputs.json": true,
92
96
  }
93
97
 
94
98
  // SanctionedRootFile reports whether name is a legitimate workspace-root file:
@@ -15,12 +15,14 @@ import (
15
15
  // ResolveRoot returns the .devrites directory to operate on. A non-empty
16
16
  // override (e.g. from DEVRITES_ROOT) may name either the project root or its
17
17
  // .devrites directory; otherwise the nearest ancestor .devrites is used.
18
+ // Callers take Dir(root) as the project, so a symlinked .devrites (which
19
+ // rootfacts proves resolves inside the project) keeps its project-side name.
18
20
  func ResolveRoot(override string) (string, error) {
19
21
  facts, err := rootfacts.Resolve(override)
20
22
  if err != nil {
21
23
  return "", err
22
24
  }
23
- return facts.PhysicalRoot, nil
25
+ return filepath.Join(facts.PhysicalProject, devritespaths.DevritesRootName), nil
24
26
  }
25
27
 
26
28
  // featureDir is the canonical per-feature state directory under root.
@@ -8,6 +8,7 @@ import (
8
8
  "os"
9
9
  "path"
10
10
  "path/filepath"
11
+ "slices"
11
12
  "sort"
12
13
  "strings"
13
14
 
@@ -350,10 +351,12 @@ func observationWorkspaceOverrideValid(root, slug string) bool {
350
351
  if raw == "" {
351
352
  return true
352
353
  }
353
- if strings.TrimSpace(raw) != raw || filepath.Clean(raw) != raw {
354
+ if strings.TrimSpace(raw) != raw {
354
355
  return false
355
356
  }
356
- if !filepath.IsAbs(raw) && !filepath.IsLocal(raw) {
357
+ // A ".." hop could route through a symlinked alias, so it is never
358
+ // cleaned away; "./" and trailing separators are harmless spellings.
359
+ if slices.Contains(strings.FieldsFunc(raw, func(r rune) bool { return r == '/' || r == filepath.Separator }), "..") {
357
360
  return false
358
361
  }
359
362
  physicalRoot, err := filepath.EvalSymlinks(root)
@@ -364,16 +367,18 @@ func observationWorkspaceOverrideValid(root, slug string) bool {
364
367
  if err != nil {
365
368
  return false
366
369
  }
367
- override := raw
370
+ override := filepath.Clean(raw)
368
371
  if !filepath.IsAbs(override) {
369
372
  override = filepath.Join(filepath.Dir(physicalRoot), override)
370
373
  }
371
- override, err = filepath.Abs(override)
372
- if err != nil {
374
+ // Only the selected root may be spelled through a symlink (/tmp versus
375
+ // /private/tmp); work/<slug> must match literally so an alias of the
376
+ // workspace itself never does.
377
+ if filepath.Base(override) != slug || filepath.Base(filepath.Dir(override)) != "work" {
373
378
  return false
374
379
  }
375
- want := filepath.Join(physicalRoot, "work", slug)
376
- return filepath.Clean(override) == filepath.Clean(want)
380
+ overrideRoot, err := filepath.EvalSymlinks(filepath.Dir(filepath.Dir(override)))
381
+ return err == nil && overrideRoot == physicalRoot
377
382
  }
378
383
 
379
384
  func observationInventory() []ArtifactPath {
@@ -3,16 +3,20 @@ package state
3
3
  import (
4
4
  "fmt"
5
5
  "regexp"
6
+ "slices"
6
7
  "strings"
7
8
  "unicode"
8
9
 
9
10
  "github.com/devrites/devrites/internal/markdowntext"
10
11
  )
11
12
 
12
- // TaskSlice is one SLICE-### block parsed from tasks.md.
13
+ // TaskSlice is one SLICE-### block parsed from tasks.md. Via maps a dependency
14
+ // ID to the interface its `(via <text>)` suffix names; bare edges are absent.
13
15
  type TaskSlice struct {
14
- ID string
15
- Dependencies []string
16
+ ID string
17
+ Dependencies []string
18
+ Via map[string]string
19
+ ConsumesProduces string
16
20
  }
17
21
 
18
22
  // TaskGraphResult is the deterministic outcome of parsing a tasks.md slice graph.
@@ -26,8 +30,12 @@ type TaskGraphResult struct {
26
30
  var (
27
31
  sliceHeaderRE = regexp.MustCompile(`(?m)^##\s+(SLICE-\d+)\b`)
28
32
  anyH2HeaderRE = regexp.MustCompile(`(?m)^##\s`)
29
- dependenciesRE = regexp.MustCompile(`(?m)^Dependencies:\s*(.+)\s*$`)
30
- dependsOnRE = regexp.MustCompile(`(?m)^depends_on:\s*(.+)\s*$`)
33
+ dependenciesRE = regexp.MustCompile(`(?m)^Dependencies:[ \t]*(.+)[ \t]*$`)
34
+ dependsOnRE = regexp.MustCompile(`(?m)^depends_on:[ \t]*(.+)[ \t]*$`)
35
+ consumesRE = regexp.MustCompile(`(?m)^Consumes / Produces:[ \t]*(.+)[ \t]*$`)
36
+ // viaSuffixRE matches a Dependencies `(via <text>)` suffix; group 2 is
37
+ // empty when the parenthetical is unclosed. Nested parentheses are unsupported.
38
+ viaSuffixRE = regexp.MustCompile(`\([ \t]*via\b([^()]*)(\))?`)
31
39
  sliceIDValidRE = regexp.MustCompile(`^SLICE-\d+$`)
32
40
  )
33
41
 
@@ -92,10 +100,10 @@ func ParseTaskGraph(tasksMarkdown []byte) TaskGraphResult {
92
100
  end = headers[i+1][0]
93
101
  }
94
102
  block := text[start:end]
95
- deps, problems := parseSliceGraph(id, block)
103
+ slice, problems := parseSliceGraph(id, block)
96
104
  result.Problems = append(result.Problems, problems...)
97
- result.Slices = append(result.Slices, TaskSlice{ID: id, Dependencies: deps})
98
- for _, dep := range deps {
105
+ result.Slices = append(result.Slices, slice)
106
+ for _, dep := range slice.Dependencies {
99
107
  if !known[dep] {
100
108
  result.Unknown = append(result.Unknown, dep)
101
109
  result.Problems = append(result.Problems, fmt.Sprintf("%s depends on unknown slice %s", id, dep))
@@ -121,14 +129,20 @@ func structuralTaskText(tasksMarkdown []byte) string {
121
129
  return string(masked)
122
130
  }
123
131
 
124
- func parseSliceGraph(id, block string) ([]string, []string) {
132
+ func parseSliceGraph(id, block string) (TaskSlice, []string) {
125
133
  var problems []string
126
134
  depsLine := firstLineValue(dependenciesRE, block)
127
135
  mirrorLine := firstLineValue(dependsOnRE, block)
128
- deps, malformed := parseIDList(depsLine)
129
- for _, token := range malformed {
136
+ bare, via, malformed := splitDependencyVia(depsLine)
137
+ deps, malformedIDs := parseIDList(bare)
138
+ for _, token := range append(malformed, malformedIDs...) {
130
139
  problems = append(problems, fmt.Sprintf("%s has malformed dependency %q", id, token))
131
140
  }
141
+ for dep := range via {
142
+ if !slices.Contains(deps, dep) {
143
+ delete(via, dep) // its ID token is already reported malformed
144
+ }
145
+ }
132
146
  mirror, mirrorMalformed := parseIDList(mirrorLine)
133
147
  for _, token := range mirrorMalformed {
134
148
  problems = append(problems, fmt.Sprintf("%s has malformed depends_on %q", id, token))
@@ -142,7 +156,48 @@ func parseSliceGraph(id, block string) ([]string, []string) {
142
156
  if depsLine == "" {
143
157
  deps = mirror
144
158
  }
145
- return deps, problems
159
+ return TaskSlice{ID: id, Dependencies: deps, Via: via, ConsumesProduces: firstLineValue(consumesRE, block)}, problems
160
+ }
161
+
162
+ // splitDependencyVia strips each `(via <text>)` suffix from a Dependencies
163
+ // value, returning the bare ID list, the via text keyed by the ID it follows,
164
+ // and any suffix that is empty, unclosed, or not directly after an ID.
165
+ func splitDependencyVia(raw string) (string, map[string]string, []string) {
166
+ var bare strings.Builder
167
+ var via map[string]string
168
+ var malformed []string
169
+ last := 0
170
+ for _, m := range viaSuffixRE.FindAllStringSubmatchIndex(raw, -1) {
171
+ before := raw[last:m[0]]
172
+ bare.WriteString(before)
173
+ last = m[1]
174
+ text := strings.TrimSpace(raw[m[2]:m[3]])
175
+ dep := precedingSliceID(before)
176
+ if m[4] < 0 || text == "" || dep == "" {
177
+ malformed = append(malformed, strings.TrimSpace(raw[m[0]:m[1]]))
178
+ continue
179
+ }
180
+ if via == nil {
181
+ via = make(map[string]string)
182
+ }
183
+ if _, seen := via[dep]; !seen {
184
+ via[dep] = text
185
+ }
186
+ }
187
+ bare.WriteString(raw[last:])
188
+ return bare.String(), via, malformed
189
+ }
190
+
191
+ // precedingSliceID returns the SLICE-### token that ends s, separated from what
192
+ // follows only by blanks, or "" when s ends in a separator or a non-ID token.
193
+ func precedingSliceID(s string) string {
194
+ s = strings.TrimRight(s, " \t")
195
+ start := strings.LastIndexAny(s, ",; \t") + 1
196
+ id := strings.Trim(s[start:], "`'\"(){}[]")
197
+ if !sliceIDValidRE.MatchString(id) {
198
+ return ""
199
+ }
200
+ return id
146
201
  }
147
202
 
148
203
  func firstLineValue(re *regexp.Regexp, block string) string {
@@ -103,12 +103,18 @@ func WithFeatureLockRelease(root, slug string, fn func(release func()) error) er
103
103
  }
104
104
 
105
105
  // featureLockPath validates slug and creates the feature directory, returning
106
- // the lock file path inside it.
106
+ // the lock file path inside it. A closed workspace (work/<slug> gone, archive/<slug>
107
+ // present) is refused rather than resurrected by a late lock.
107
108
  func featureLockPath(root, slug string) (string, error) {
108
109
  if !devritespaths.ValidSlug(slug) {
109
110
  return "", fmt.Errorf("lock feature %q: not a feature slug", slug)
110
111
  }
111
112
  dir := featureDir(root, slug)
113
+ if _, err := os.Lstat(dir); errors.Is(err, fs.ErrNotExist) {
114
+ if _, archErr := os.Lstat(filepath.Join(root, "archive", slug)); archErr == nil {
115
+ return "", fmt.Errorf("lock feature %q: workspace is closed (archived)", slug)
116
+ }
117
+ }
112
118
  if err := os.MkdirAll(dir, 0o755); err != nil {
113
119
  return "", fmt.Errorf("lock feature %q: %w", slug, err)
114
120
  }
package/engine/main.go CHANGED
@@ -48,10 +48,12 @@ Usage:
48
48
  devrites-engine orient <slug> Alias for observe summary
49
49
  devrites-engine next [slug] Print the minimal remaining lifecycle path with advisory skips
50
50
  devrites-engine handoff [slug] Emit the deterministic resume record (cursor, blocking gates, ledger, dead ends)
51
+ devrites-engine recall --paths <csv> [--limit n]
52
+ Point at archived features that touched these paths: decisions, constraints, findings (read-only)
51
53
  devrites-engine context [slug] (--phase <p> | --skill <name>) [--role <r>] [--slice <id>] [--trigger a,b]
52
54
  Emit one deduplicated read-set bundle for a phase, skill, or dispatch role
53
55
  devrites-engine metrics record <slug> --phase <p> --event <e> [--role r] [--bytes n] [--note s]
54
- devrites-engine metrics summary [slug] Summarize the per-feature metrics.jsonl event ledger
56
+ devrites-engine metrics summary [slug] [--by-slice] Summarize the metrics ledger, or per-slice rounds and agent-minutes
55
57
  devrites-engine dispatch <slug> <sub> Launch-wave barrier for parallel dispatch: open/start/seal/return/status/abandon (build wright waves: --slice, round cap)
56
58
  devrites-engine claim <add|release|list|check> Advisory session-scoped file claims for same-tree concurrent sessions (.devrites/claims.jsonl)
57
59
  devrites-engine note <subcommand> <slug> Anchored workspace notes bound to verbatim code quotes; drift regrades them (notes.md)
@@ -64,7 +66,7 @@ Usage:
64
66
  devrites-engine state resolve <qid> "<ans>" Resolve an open question and update state atomically
65
67
  devrites-engine state merge-manifest <slug> [pred...] Fold the recorded predecessor chain's manifests into the release candidate manifest
66
68
  devrites-engine state close <slug> Archive a shipped feature and clear ACTIVE
67
- devrites-engine migrate <slug> [--dry-run] Normalize a pre-v5 workspace to the current schema
69
+ devrites-engine migrate <slug> [--dry-run] [--answer id=choice] Normalize an older-schema workspace to the current schema
68
70
  devrites-engine secret-scan [--staged] [--stdin] [slug] Scan exact staged blobs, stdin, or touched files; HIGH blocks
69
71
  devrites-engine open-visual <path-or-name> [--slug <slug>] [--no-open]
70
72
  Resolve a visual HTML file, optionally open it locally, print agent paths
@@ -134,6 +136,8 @@ func run(args []string, stdin io.Reader, stdout, stderr io.Writer) int {
134
136
  return lib.RunNext(root, args[1:], stdout, stderr)
135
137
  case "handoff":
136
138
  return lib.RunHandoff(root, args[1:], stdout, stderr)
139
+ case "recall":
140
+ return lib.RunRecall(root, args[1:], stdout, stderr)
137
141
  case "context":
138
142
  return lib.RunContext(root, args[1:], stdout, stderr)
139
143
  case "metrics":
@@ -1 +1,3 @@
1
1
  Do not invoke another agent. You are called by `/overhaul` and return your result to that orchestrator.
2
+
3
+ Write your receipt (`schema` `overhaul.receipt/1`) to the packet's `receipt_path`, copying `run_id`, `task_id`, `attempt_id`, `lane` and `snapshot` verbatim from the packet and setting `role` to the unprefixed role name (`verifier`, not `overhaul-verifier`); follow `.claude/skills/overhaul/references/orchestration.md` § Receipts, since admission rejects any mismatch.
@@ -76,6 +76,10 @@ consistently:
76
76
  - **Docs accuracy:** examples must be correct and ready to copy. The documented
77
77
  signature must match the code, and changed behavior must update its docs in the
78
78
  same change.
79
+ - **Agent use:** can a coding agent complete the flow with no human step?
80
+ Check non-interactive flags or env for every prompt, machine-readable output and
81
+ distinct exit codes where scripts consume results, headless setup and auth, and
82
+ commands instead of "click here" UI steps. Name each human-only step.
79
83
 
80
84
  ## Rules
81
85
 
@@ -112,6 +116,7 @@ Scorecard:
112
116
  error-messages <actionable? | the unactionable ones, quoted>
113
117
  ergonomics <consistent with project conventions? | the breaks>
114
118
  docs <copy-pasteable + accurate? | the wrong examples>
119
+ agent-use <completes headless? | the human-only steps | n/a>
115
120
  Boomerang (measure mode): predicted <…> vs measured <…> — gap: <none | the delta + why it matters>
116
121
  Overall: blockers? <yes/no — list>
117
122
  ```
@@ -30,6 +30,10 @@ Read only the paths and bounded question supplied by the orchestrator.
30
30
  For structural questions, use the repository's code-intelligence index. Use exact
31
31
  sources, not recollection, and do not broaden the question.
32
32
 
33
+ Report how things are today, not how the intended change should go. When the brief
34
+ names a planned solution, still answer only with current-state facts; a recommendation
35
+ bends the evidence toward the plan.
36
+
33
37
  ## Rules
34
38
 
35
39
  - Read-only. Do not edit source, tests, `.devrites/**`, Git state, or dependencies.
@@ -114,7 +114,9 @@ criterion, slice, or proof.
114
114
  planned tests) or `kind: mechanism` (a named test can discriminate the wrong
115
115
  implementation; propose that case as the fix, not new plan prose).
116
116
  - In a recheck, your verdict covers the listed fingerprints, the correction diff, and
117
- the dependents of each changed clause. Anything else you notice on unchanged text
117
+ the dependents of each changed clause. Return an explicit correction-created
118
+ regression verdict over the touched invariants and those dependents as
119
+ `Regression: <none | invariant → finding>`. Anything else you notice on unchanged text
118
120
  goes under `Late:` with severity and site; it is recorded, not verdict-bearing.
119
121
  - When a dimension has no issue, say "strong: <why>" instead of inventing a
120
122
  finding.
@@ -134,6 +136,7 @@ Dimension bands (evidence → band):
134
136
  - … (all 7)
135
137
  Suppressed (confidence ≤4, unverified): <count + one-line each, appendix>
136
138
  Critical failure-mode gaps: <list | none>
139
+ Regression (recheck only): <none | invariant → finding>
137
140
  Floor verdict: <weakest band> on <dimension> → PASS | BLOCKED
138
141
  ```
139
142
 
@@ -120,7 +120,10 @@ unclear boundary is underspecified: return `Escalation` without proceeding.
120
120
  new fingerprint. At the limit return the gate and repro. `Escalation` is only for product/irreversible choices
121
121
  or human-only access; technical failure is a blocker.
122
122
  Before handoff, inspect your cumulative slice diff against the contract and
123
- scenario matrix, including correction-affected adjacent variants. Fix supported
123
+ scenario matrix, including correction-affected adjacent variants, then against
124
+ the reviewers' own checks: [code review § What to check](../skills/devrites-lib/reference/standards/code-review.md#what-to-check-tests-first)
125
+ and test analysis (each acceptance criterion has a test that fails without the
126
+ change; no assertion-free, tautological, or mock-asserting test). Fix supported
124
127
  in-scope gaps together, rerun affected proof, and report remaining gaps. Self-check
125
128
  never replaces independent review; green tests do not prove all possible cases.
126
129
  5. **TRANSFER when isolated.** After green writer-safe proof, verify the diff again,
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: overhaul-implementer
3
3
  description: Implements one approved /overhaul repair task test-first inside its exact allowed paths. Dispatched only by the /overhaul skill after the user approves the plan; returns a patch receipt.
4
+ permissionMode: acceptEdits
4
5
  ---
5
6
 
6
7
  <!-- include:_shared/untrusted-input.md -->
@@ -1,7 +1,6 @@
1
1
  {
2
- "$comment": "DevRites keeps the root orchestration context source-read-only. Native subagents own specialist execution; only devrites-slice-wright may edit source in the lifecycle (fast-builder writes for /rite-fast; overhaul-* agents keep every tool). Its task lists exact project-relative paths, and the root rejects any returned diff outside that contract.",
2
+ "$comment": "DevRites keeps the root orchestration context source-read-only by instruction; no permission mode enforces it. These allow rules cover the engine, read-only git, code-graph tools and .devrites/ workspace edits. Native subagents own specialist execution; only devrites-slice-wright may edit source in the lifecycle (fast-builder writes for /rite-fast; overhaul-* agents keep every tool). Its task lists exact project-relative paths, and the root rejects any returned diff outside that contract.",
3
3
  "permissions": {
4
- "defaultMode": "plan",
5
4
  "allow": [
6
5
  "Bash(devrites-engine check candidate *)",
7
6
  "Bash(devrites-engine check readiness *)",
@@ -19,6 +18,7 @@
19
18
  "Bash(devrites-engine orient *)",
20
19
  "Bash(devrites-engine next *)",
21
20
  "Bash(devrites-engine handoff *)",
21
+ "Bash(devrites-engine recall *)",
22
22
  "Bash(devrites-engine context *)",
23
23
  "Bash(devrites-engine metrics *)",
24
24
  "Bash(devrites-engine dispatch *)",
@@ -47,6 +47,7 @@
47
47
  "Bash(devrites-engine gates lint *)",
48
48
  "Bash(devrites-engine gates attest *)",
49
49
  "Bash(devrites-engine gates abandon *)",
50
+ "Bash(devrites-engine overhaul *)",
50
51
  "mcp__codegraph__*",
51
52
  "mcp__codebase-memory-mcp__*",
52
53
  "mcp__codebase-memory__*",
@@ -60,8 +61,7 @@
60
61
  "Bash(git show *)",
61
62
  "Bash(git rev-parse *)",
62
63
  "Bash(git merge-base *)",
63
- "Edit(.devrites/**)",
64
- "Write(.devrites/**)",
64
+ "Edit(/.devrites/**)",
65
65
  "Bash(devrites-engine secret-scan)",
66
66
  "Bash(devrites-engine secret-scan *)",
67
67
  "Bash(devrites-engine open-visual *)",
@@ -4,7 +4,7 @@ description: Shape stable API, type, module, or frontend/backend contracts befor
4
4
  user-invocable: false
5
5
  ---
6
6
  <!-- loads: {"always":["devrites-lib/reference/standards/core.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"deprecation":["devrites-lib/reference/standards/deprecation.md"],"security":["devrites-lib/reference/standards/security.md","rite-review/reference/security-review.md"]},"workspace":["spec.md","plan.md","tasks.md","state.md","decisions.md"]} -->
7
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-api-interface` bundles every file named below into one deduplicated read.
7
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-api-interface` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
8
8
 
9
9
  # devrites-api-interface: contract before implementation
10
10
 
@@ -5,7 +5,7 @@ argument-hint: "<security | perf | simplify>"
5
5
  user-invocable: false
6
6
  ---
7
7
  <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/parallel-dispatch.md","devrites-lib/reference/standards/agents.md"],"triggers":{"audit-coverage":["devrites-lib/reference/standards/audit-coverage.md"],"architecture-health":["devrites-lib/reference/standards/architecture-health.md"]},"workspace":["spec.md","plan.md","tasks.md","touched-files.md","evidence.md","state.md","decisions.md"],"workspaceByRole":{"performance-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"security-auditor":["spec.md","plan.md","tasks.md","state.md","touched-files.md","evidence.md"],"simplifier-reviewer":["spec.md","plan.md","tasks.md","state.md","touched-files.md"]}} -->
8
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-audit` bundles every file named below into one deduplicated read.
8
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-audit` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
9
9
 
10
10
  # devrites-audit: read-only audit dispatch
11
11
 
@@ -4,7 +4,7 @@ description: Observe and prove working UI behavior in a real browser with screen
4
4
  user-invocable: false
5
5
  ---
6
6
  <!-- loads: {"always":["devrites-browser-proof/reference/browser-performance.md","devrites-browser-proof/reference/visual-verdict.md","devrites-frontend-craft/reference/quality-standards.md"],"triggers":{"security":["devrites-lib/reference/standards/security.md"],"devex":["devrites-lib/reference/standards/developer-experience.md"]}} -->
7
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-browser-proof` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
7
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-browser-proof` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
8
8
 
9
9
  # devrites-browser-proof: runtime evidence for UI
10
10
 
@@ -5,7 +5,7 @@ argument-hint: "[<slug>]"
5
5
  user-invocable: false
6
6
  ---
7
7
  <!-- loads: {"always":["devrites-lib/reference/standards/code-navigation.md","devrites-debug-recovery/reference/build-the-loop.md","devrites-debug-recovery/reference/cleanup-and-classify.md","devrites-debug-recovery/reference/hypotheses.md","devrites-debug-recovery/reference/instrumentation.md","devrites-debug-recovery/reference/regression-test.md","devrites-debug-recovery/reference/trace.md","devrites-lib/reference/standards/debug-recovery.md"],"triggers":{"one-shot":["devrites-lib/reference/standards/one-shot-actions.md"],"security":["devrites-lib/reference/standards/security.md"],"workspace":["devrites-lib/reference/standards/workflow-artifacts.md"]}} -->
8
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-debug-recovery` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
8
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-debug-recovery` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
9
9
 
10
10
  # devrites-debug-recovery: fix the root cause, not the symptom
11
11
 
@@ -32,7 +32,8 @@ has no clear next move. Optional slug selects the active workspace; defaults to
32
32
  Do not proceed without a reproduction input: the captured error text for
33
33
  repeatable actions, or the retained bounded artifact for consumptive ones.
34
34
  3. **Ranked hypotheses (3-5, falsifiable):** generate the list before testing
35
- any of them. Each must state a prediction.
35
+ any of them. Each must state a prediction. With a `.devrites/archive/`, first run
36
+ `devrites-engine recall --paths <failing files>` for prior dead ends and causes.
36
37
  **Completion:** 3-5 distinct hypotheses each state an observable prediction.
37
38
  See [hypotheses.md](reference/hypotheses.md).
38
39
  4. **Trace when ambiguous:** if the cause is unclear, flaky, causal, or one fix
@@ -4,7 +4,7 @@ description: Stress-test one consequential decision independently. Use for uncer
4
4
  user-invocable: false
5
5
  ---
6
6
  <!-- loads: {"always":["devrites-lib/reference/standards/core.md","devrites-lib/reference/standards/agents.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"],"security":["devrites-lib/reference/standards/security.md"],"tooling":["devrites-lib/reference/standards/tooling.md"]},"workspace":["spec.md","plan.md","tasks.md","state.md","decisions.md"],"workspaceByRole":{"doubt-reviewer":["spec.md","plan.md","tasks.md","state.md","decisions.md"]}} -->
7
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-doubt` bundles every file named below into one deduplicated read.
7
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-doubt` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
8
8
 
9
9
  # devrites-doubt: CLAIM → EXTRACT → DOUBT → RECONCILE → STOP
10
10
 
@@ -4,7 +4,7 @@ description: Build accessible production UI and all states during /rite-build. U
4
4
  user-invocable: false
5
5
  ---
6
6
  <!-- loads: {"always":["devrites-frontend-craft/reference/craft.md","devrites-frontend-craft/reference/design-references.md","devrites-frontend-craft/reference/quality-standards.md","devrites-frontend-craft/reference/reuse-first.md","devrites-frontend-craft/reference/shape.md","rite-polish/reference/anti-ai-slop.md"],"triggers":{"fullstack":["devrites-frontend-craft/reference/fullstack.md"],"testing":["devrites-lib/reference/standards/testing.md"]}} -->
7
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-frontend-craft` bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
7
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-frontend-craft` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read. Trigger names map to the conditional rules in the sections that follow.
8
8
 
9
9
  # devrites-frontend-craft: UI like a senior designer-engineer
10
10
 
@@ -4,7 +4,7 @@ description: Interview the user one question at a time to extract intent. Use wh
4
4
  user-invocable: false
5
5
  ---
6
6
  <!-- loads: {"always":["devrites-lib/reference/standards/core.md","rite-spec/reference/interview-patterns.md"],"triggers":{"afk":["devrites-lib/reference/standards/afk-hitl.md"]},"workspace":["spec.md","questions.md","decisions.md","assumptions.md","decision-coverage.md","state.md"]} -->
7
- > Read-set manifest: `devrites-engine context [slug] --skill devrites-interview` bundles every file named below into one deduplicated read.
7
+ > Read-set manifest: `devrites-engine context <slug> --skill devrites-interview` (no workspace: `--out <path>`) bundles every file named below into one deduplicated read.
8
8
 
9
9
  # devrites-interview: extract intent
10
10
 
@@ -69,15 +69,15 @@ Wrong-skill fire: stop, admit it, switch rites.
69
69
  | Spec has unknowns/coverage gaps | `/rite-clarify` | Required topology scan; zero-question pass when clear. |
70
70
  | Derive intent from existing code without an active feature contract | `/rite-adopt` | Establish the brownfield contract. |
71
71
  | Reconcile implementation with an active feature contract | `/rite-converge` | Identify gaps and add missing slices. |
72
- | Older workspace cannot resume | `/rite-upgrade` | Audit cited current-contract defects; age alone is no defect. Route semantic repairs to normal owners; preserve history without synthetic proof. |
72
+ | Older workspace cannot resume (explicit only) | `/rite-upgrade` | Audit cited current-contract defects; age alone is no defect. Route semantic repairs to normal owners; preserve history without synthetic proof. |
73
73
  | Turn an approved spec into its first plan | `/rite-define` | No `tasks.md` slices yet; writes architecture, slices, traceability. |
74
74
  | Reslice, reorder, or repair an existing plan | `/rite-plan` | Slices exist and evidence invalidates them. |
75
75
  | Review plan before code | `/rite-vet` | Every plan; depth scales to risk. |
76
76
  | Small safe fix | `/rite-quick` | Escalates auth, migration, public API, destructive, ambiguous, or multi-slice work. |
77
77
  | Mid-size work, fast lane (explicit only) | `/rite-fast` | Spec + plan + questions once, ≤10 slices, one completeness check, review, polish, proof; risk deepens questions. |
78
78
  | Prove UI/runtime | `/rite-prove` + `devrites-browser-proof` | Capture real evidence. |
79
- | Stuck/unfamiliar | `/rite-zoom-out` | Map before editing. |
80
- | Teach me | `/rite-explain` | Human learning loop. |
79
+ | Stuck/unfamiliar (explicit only) | `/rite-zoom-out` | Map before editing. |
80
+ | Teach me (explicit only) | `/rite-explain` | Human learning loop. |
81
81
  | Decide ship readiness | `/rite-seal` | Decides; never mutates Git. |
82
82
  | Execute ship after GO | `/rite-ship` | Requires GO/type-GO. |
83
83
  | Unattended lifecycle | `/rite-autocomplete` | Clean baseline/checkpoints; hard gates stop. |
@@ -4,7 +4,7 @@ Host dispatch; DevRites governs.
4
4
 
5
5
  ## Roster
6
6
 
7
- Review: Spec/Code; Seal: all applicable roles.
7
+ Review: Spec/Code plus triggered frontend/security/performance; Seal: all applicable roles.
8
8
 
9
9
  | Reviewer | Fires | Trigger |
10
10
  |---|---|---|
@@ -38,8 +38,9 @@ If the candidate diff has no matching surfaces, record
38
38
  hand the bundle path as the packet's source list instead of a file roster.
39
39
  Build roles add `--slice <SLICE-ID>` (slice-scoped, slice-named bundle).
40
40
  Evaluate the skill's trigger conditions and pass each that fires — a role's
41
- Trigger column maps to manifest names: `security-auditor` → `security`,
42
- `frontend-reviewer` → `ui`/`frontend`, `performance-reviewer` → `performance`.
41
+ Trigger column maps to the phase manifest's names: `security-auditor` →
42
+ `security`; at Review, `frontend-reviewer` → `ui` and `performance-reviewer` →
43
+ `performance`. Seal declares neither; those roles load their own standards.
43
44
  The `agents` dispatch contract needs no flag: `--role` auto-fires it
44
45
  (`auto=[agents]` in the output). The command prints `unselected=[...]`; an
45
46
  omitted applicable trigger is a gap, not a shortcut.