devrites 5.14.4 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/NOTICE.md +6 -4
  3. package/README.md +77 -16
  4. package/SECURITY.md +25 -11
  5. package/bin/devrites.mjs +49 -15
  6. package/docs/adr/0001-go-engine-as-control-plane.md +6 -3
  7. package/docs/adr/0029-v5-workspace-schema-and-native-migration.md +9 -0
  8. package/docs/adr/README.md +3 -2
  9. package/docs/agents/issue-tracker.md +1 -1
  10. package/docs/architecture.md +6 -3
  11. package/docs/cli.md +32 -9
  12. package/docs/command-map.md +5 -3
  13. package/docs/engine/state-schema.md +1 -1
  14. package/docs/flow.md +1 -1
  15. package/docs/harness-compliance.md +2 -2
  16. package/docs/release.md +15 -11
  17. package/docs/usage.md +1 -1
  18. package/engine/commands.go +1 -1
  19. package/engine/go.mod +1 -1
  20. package/engine/help.go +41 -15
  21. package/engine/help_test.go +134 -0
  22. package/engine/internal/acceptance/acceptance_test.go +298 -7
  23. package/engine/internal/acceptance/approve.go +7 -2
  24. package/engine/internal/acceptance/cli.go +3 -0
  25. package/engine/internal/acceptance/evidence.go +69 -5
  26. package/engine/internal/acceptance/lint.go +1 -1
  27. package/engine/internal/acceptance/run.go +5 -3
  28. package/engine/internal/acceptance/scaffold.go +5 -16
  29. package/engine/internal/devritespaths/paths.go +7 -6
  30. package/engine/internal/devritespaths/paths_test.go +18 -0
  31. package/engine/internal/fsutil/copy.go +83 -49
  32. package/engine/internal/fsutil/copy_test.go +70 -109
  33. package/engine/internal/gate/gate.go +89 -16
  34. package/engine/internal/gate/gate_test.go +101 -0
  35. package/engine/internal/hostpack/hostpack.go +52 -2
  36. package/engine/internal/hostpack/hostpack_test.go +83 -2
  37. package/engine/internal/install/apply.go +59 -16
  38. package/engine/internal/install/binary.go +10 -1
  39. package/engine/internal/install/install_test.go +428 -0
  40. package/engine/internal/install/merge.go +69 -38
  41. package/engine/internal/install/preflight.go +7 -0
  42. package/engine/internal/install/uninstall.go +43 -4
  43. package/engine/internal/lib/claims.go +25 -4
  44. package/engine/internal/lib/claims_test.go +57 -0
  45. package/engine/internal/lib/closeout.go +41 -3
  46. package/engine/internal/lib/closeout_test.go +144 -0
  47. package/engine/internal/lib/context.go +8 -4
  48. package/engine/internal/lib/context_next_test.go +100 -0
  49. package/engine/internal/lib/detect.go +1 -1
  50. package/engine/internal/lib/detect_test.go +13 -0
  51. package/engine/internal/lib/diffscope.go +19 -9
  52. package/engine/internal/lib/dispatch.go +7 -0
  53. package/engine/internal/lib/dup.go +40 -37
  54. package/engine/internal/lib/dup_test.go +178 -0
  55. package/engine/internal/lib/manifest_union.go +4 -1
  56. package/engine/internal/lib/manifest_union_test.go +37 -0
  57. package/engine/internal/lib/metrics.go +4 -0
  58. package/engine/internal/lib/metrics_test.go +28 -0
  59. package/engine/internal/lib/migrate_test.go +59 -0
  60. package/engine/internal/lib/observe_budgets.go +25 -9
  61. package/engine/internal/lib/observe_budgets_test.go +254 -0
  62. package/engine/internal/lib/observe_summary.go +23 -2
  63. package/engine/internal/lib/open_visual.go +4 -2
  64. package/engine/internal/lib/open_visual_test.go +11 -0
  65. package/engine/internal/lib/regression.go +62 -23
  66. package/engine/internal/lib/regression_test.go +103 -0
  67. package/engine/internal/lib/resolve.go +36 -17
  68. package/engine/internal/lib/resolve_remediation_test.go +132 -0
  69. package/engine/internal/lib/skilltrust.go +0 -11
  70. package/engine/internal/lib/slicecheck.go +7 -5
  71. package/engine/internal/lib/slicecheck_test.go +18 -0
  72. package/engine/internal/lib/triggers.go +9 -3
  73. package/engine/internal/lib/triggers_test.go +23 -0
  74. package/engine/internal/lib/util.go +17 -3
  75. package/engine/internal/lib/util_test.go +104 -0
  76. package/engine/internal/lib/visual_outline.go +7 -3
  77. package/engine/internal/lib/visual_outline_test.go +28 -0
  78. package/engine/internal/lib/windows.go +13 -9
  79. package/engine/internal/lib/windows_test.go +98 -0
  80. package/engine/internal/lib/workspace_read.go +2 -11
  81. package/engine/internal/lib/workspace_read_test.go +102 -0
  82. package/engine/internal/markdowntext/markdowntext.go +194 -11
  83. package/engine/internal/markdowntext/testdata/structural.json +250 -0
  84. package/engine/internal/notes/cli.go +30 -12
  85. package/engine/internal/notes/notes.go +242 -39
  86. package/engine/internal/notes/notes_test.go +372 -0
  87. package/engine/internal/overhaul/admit/packet.go +89 -0
  88. package/engine/internal/overhaul/admit/packet_test.go +223 -0
  89. package/engine/internal/overhaul/admit/run.go +4 -0
  90. package/engine/internal/overhaul/bench/run.go +6 -0
  91. package/engine/internal/overhaul/bench/run_test.go +46 -0
  92. package/engine/internal/overhaul/overhaul.go +6 -1
  93. package/engine/internal/overhaul/ovio/ovio.go +10 -3
  94. package/engine/internal/overhaul/ovio/ovio_test.go +75 -0
  95. package/engine/internal/overhaul/packet/packet.go +208 -0
  96. package/engine/internal/overhaul/packet/packet_test.go +263 -0
  97. package/engine/internal/overhaul/records/check.go +6 -0
  98. package/engine/internal/overhaul/records/init.go +16 -5
  99. package/engine/internal/overhaul/records/records_test.go +4 -0
  100. package/engine/internal/overhaul/records/run.go +66 -0
  101. package/engine/internal/overhaul/records/run_test.go +77 -0
  102. package/engine/internal/overhaul/render/run.go +15 -11
  103. package/engine/internal/overhaul/render/run_test.go +463 -1
  104. package/engine/internal/overhaul/render/visual.go +95 -33
  105. package/engine/internal/overhaul/score/run.go +20 -0
  106. package/engine/internal/overhaul/score/run_test.go +156 -1
  107. package/engine/internal/overhaul/snapshot/run.go +78 -21
  108. package/engine/internal/overhaul/snapshot/run_test.go +344 -8
  109. package/engine/internal/parallel/cli.go +33 -20
  110. package/engine/internal/parallel/cli_test.go +59 -0
  111. package/engine/internal/parallel/git.go +39 -1
  112. package/engine/internal/parallel/ops.go +101 -11
  113. package/engine/internal/parallel/ops_test.go +552 -69
  114. package/engine/internal/parallel/parallel_test.go +31 -1
  115. package/engine/internal/parallel/pathdisjoint.go +19 -1
  116. package/engine/internal/parallel/pathdisjoint_test.go +72 -0
  117. package/engine/internal/parallel/select.go +6 -2
  118. package/engine/internal/release/release.go +13 -3
  119. package/engine/internal/release/release_test.go +208 -3
  120. package/engine/internal/rootfacts/facts.go +9 -0
  121. package/engine/internal/rootfacts/facts_test.go +38 -0
  122. package/engine/internal/state/acceptance.go +7 -1
  123. package/engine/internal/state/budgets.go +11 -10
  124. package/engine/internal/state/budgets_test.go +93 -0
  125. package/engine/internal/state/cursor.go +19 -8
  126. package/engine/internal/state/cursor_test.go +120 -0
  127. package/engine/internal/state/lock_unix.go +7 -1
  128. package/engine/internal/state/lock_windows.go +7 -1
  129. package/engine/internal/state/state_test.go +49 -18
  130. package/engine/internal/state/taskgraph.go +18 -4
  131. package/engine/internal/state/taskgraph_test.go +43 -0
  132. package/engine/internal/state/workspaceschema.go +16 -2
  133. package/engine/internal/state/workspaceschema_test.go +34 -0
  134. package/engine/internal/state/write.go +67 -6
  135. package/engine/internal/state/write_test.go +136 -0
  136. package/engine/internal/version/version_test.go +2 -0
  137. package/engine/main.go +8 -1
  138. package/engine/observation_contract_test.go +1 -1
  139. package/engine/root_routing_test.go +23 -1
  140. package/install.sh +132 -12
  141. package/pack/.claude/agents/devrites-spec-reviewer.md +2 -2
  142. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +2 -2
  143. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  144. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  145. package/pack/.claude/skills/devrites-interview/SKILL.md +4 -4
  146. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  147. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
  148. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +3 -2
  149. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +6 -5
  150. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  151. package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  152. package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +3 -3
  153. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  154. package/pack/.claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  155. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  156. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +11 -12
  157. package/pack/.claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  158. package/pack/.claude/skills/overhaul/SKILL.md +1 -1
  159. package/pack/.claude/skills/overhaul/references/orchestration.md +5 -3
  160. package/pack/.claude/skills/overhaul/references/records.md +39 -0
  161. package/pack/.claude/skills/overhaul/references/scoring.md +14 -4
  162. package/pack/.claude/skills/rite/reference/menu.md +1 -1
  163. package/pack/.claude/skills/rite-adopt/SKILL.md +8 -2
  164. package/pack/.claude/skills/rite-autocomplete/SKILL.md +11 -6
  165. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  166. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +1 -1
  167. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  168. package/pack/.claude/skills/rite-build/SKILL.md +2 -1
  169. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
  170. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  171. package/pack/.claude/skills/rite-build/reference/checkpoint.md +5 -0
  172. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +2 -2
  173. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +3 -2
  174. package/pack/.claude/skills/rite-clarify/SKILL.md +5 -4
  175. package/pack/.claude/skills/rite-clarify/reference/anti-patterns.md +2 -2
  176. package/pack/.claude/skills/rite-clarify/reference/decision-coverage.md +3 -2
  177. package/pack/.claude/skills/rite-converge/SKILL.md +2 -0
  178. package/pack/.claude/skills/rite-customize/SKILL.md +6 -4
  179. package/pack/.claude/skills/rite-define/SKILL.md +2 -0
  180. package/pack/.claude/skills/rite-define/reference/gates.md +8 -7
  181. package/pack/.claude/skills/rite-explain/SKILL.md +1 -1
  182. package/pack/.claude/skills/rite-explain/reference/intake.md +1 -1
  183. package/pack/.claude/skills/rite-fast/SKILL.md +1 -1
  184. package/pack/.claude/skills/rite-plan/SKILL.md +4 -3
  185. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +4 -4
  186. package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  187. package/pack/.claude/skills/rite-prove/reference/browser-proof.md +5 -5
  188. package/pack/.claude/skills/rite-resolve/SKILL.md +3 -3
  189. package/pack/.claude/skills/rite-seal/SKILL.md +4 -3
  190. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +3 -2
  191. package/pack/.claude/skills/rite-seal/reference/seal-template.md +2 -0
  192. package/pack/.claude/skills/rite-ship/SKILL.md +4 -2
  193. package/pack/.claude/skills/rite-ship/reference/git-ship.md +8 -2
  194. package/pack/.claude/skills/rite-ship/reference/ship-template.md +2 -1
  195. package/pack/.claude/skills/rite-spec/SKILL.md +2 -2
  196. package/pack/.claude/skills/rite-spec/reference/spec-checklists.md +1 -1
  197. package/pack/.claude/skills/rite-spec/reference/spec-template.md +7 -3
  198. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +2 -0
  199. package/pack/.claude/skills/rite-temper/SKILL.md +12 -9
  200. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +1 -1
  201. package/pack/.claude/skills/rite-temper/reference/significance.md +10 -3
  202. package/pack/.claude/skills/rite-temper/reference/strategy-template.md +13 -2
  203. package/pack/.claude/skills/rite-vet/SKILL.md +4 -3
  204. package/pack/.claude/skills/rite-vet/reference/artifacts.md +1 -1
  205. package/pack/.claude/workflows/devrites-readonly-review.js +5 -4
  206. package/pack/generated/claude/agents/devrites-spec-reviewer.md +2 -2
  207. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +2 -2
  208. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  209. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  210. package/pack/generated/claude/skills/devrites-interview/SKILL.md +4 -4
  211. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  212. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
  213. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +3 -2
  214. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +6 -5
  215. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  216. package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  217. package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +3 -3
  218. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  219. package/pack/generated/claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  220. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  221. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +11 -12
  222. package/pack/generated/claude/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  223. package/pack/generated/claude/skills/overhaul/SKILL.md +1 -1
  224. package/pack/generated/claude/skills/overhaul/references/orchestration.md +5 -3
  225. package/pack/generated/claude/skills/overhaul/references/records.md +39 -0
  226. package/pack/generated/claude/skills/overhaul/references/scoring.md +14 -4
  227. package/pack/generated/claude/skills/rite/reference/menu.md +1 -1
  228. package/pack/generated/claude/skills/rite-adopt/SKILL.md +8 -2
  229. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +11 -6
  230. package/pack/generated/claude/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  231. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +1 -1
  232. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  233. package/pack/generated/claude/skills/rite-build/SKILL.md +2 -1
  234. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
  235. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  236. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +5 -0
  237. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +2 -2
  238. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +3 -2
  239. package/pack/generated/claude/skills/rite-clarify/SKILL.md +5 -4
  240. package/pack/generated/claude/skills/rite-clarify/reference/anti-patterns.md +2 -2
  241. package/pack/generated/claude/skills/rite-clarify/reference/decision-coverage.md +3 -2
  242. package/pack/generated/claude/skills/rite-converge/SKILL.md +2 -0
  243. package/pack/generated/claude/skills/rite-customize/SKILL.md +6 -4
  244. package/pack/generated/claude/skills/rite-define/SKILL.md +2 -0
  245. package/pack/generated/claude/skills/rite-define/reference/gates.md +8 -7
  246. package/pack/generated/claude/skills/rite-explain/SKILL.md +1 -1
  247. package/pack/generated/claude/skills/rite-explain/reference/intake.md +1 -1
  248. package/pack/generated/claude/skills/rite-fast/SKILL.md +1 -1
  249. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -3
  250. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +4 -4
  251. package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  252. package/pack/generated/claude/skills/rite-prove/reference/browser-proof.md +5 -5
  253. package/pack/generated/claude/skills/rite-resolve/SKILL.md +3 -3
  254. package/pack/generated/claude/skills/rite-seal/SKILL.md +4 -3
  255. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +3 -2
  256. package/pack/generated/claude/skills/rite-seal/reference/seal-template.md +2 -0
  257. package/pack/generated/claude/skills/rite-ship/SKILL.md +4 -2
  258. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +8 -2
  259. package/pack/generated/claude/skills/rite-ship/reference/ship-template.md +2 -1
  260. package/pack/generated/claude/skills/rite-spec/SKILL.md +2 -2
  261. package/pack/generated/claude/skills/rite-spec/reference/spec-checklists.md +1 -1
  262. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +7 -3
  263. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +2 -0
  264. package/pack/generated/claude/skills/rite-temper/SKILL.md +12 -9
  265. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +1 -1
  266. package/pack/generated/claude/skills/rite-temper/reference/significance.md +10 -3
  267. package/pack/generated/claude/skills/rite-temper/reference/strategy-template.md +13 -2
  268. package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -3
  269. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +1 -1
  270. package/pack/generated/claude/workflows/devrites-readonly-review.js +5 -4
  271. package/pack/generated/codex/AGENTS.md +1 -1
  272. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +2 -2
  273. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +2 -2
  274. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  275. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  276. package/pack/generated/codex/skills/devrites-interview/SKILL.md +4 -4
  277. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  278. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
  279. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +3 -2
  280. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +6 -5
  281. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  282. package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  283. package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +3 -3
  284. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  285. package/pack/generated/codex/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  286. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  287. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +11 -12
  288. package/pack/generated/codex/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  289. package/pack/generated/codex/skills/overhaul/SKILL.md +1 -1
  290. package/pack/generated/codex/skills/overhaul/references/orchestration.md +5 -3
  291. package/pack/generated/codex/skills/overhaul/references/records.md +39 -0
  292. package/pack/generated/codex/skills/overhaul/references/scoring.md +14 -4
  293. package/pack/generated/codex/skills/rite/reference/menu.md +1 -1
  294. package/pack/generated/codex/skills/rite-adopt/SKILL.md +8 -2
  295. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +11 -6
  296. package/pack/generated/codex/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  297. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +1 -1
  298. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  299. package/pack/generated/codex/skills/rite-build/SKILL.md +2 -1
  300. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
  301. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  302. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +5 -0
  303. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +2 -2
  304. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +3 -2
  305. package/pack/generated/codex/skills/rite-clarify/SKILL.md +5 -4
  306. package/pack/generated/codex/skills/rite-clarify/reference/anti-patterns.md +2 -2
  307. package/pack/generated/codex/skills/rite-clarify/reference/decision-coverage.md +3 -2
  308. package/pack/generated/codex/skills/rite-converge/SKILL.md +2 -0
  309. package/pack/generated/codex/skills/rite-customize/SKILL.md +6 -4
  310. package/pack/generated/codex/skills/rite-define/SKILL.md +2 -0
  311. package/pack/generated/codex/skills/rite-define/reference/gates.md +8 -7
  312. package/pack/generated/codex/skills/rite-explain/SKILL.md +1 -1
  313. package/pack/generated/codex/skills/rite-explain/reference/intake.md +1 -1
  314. package/pack/generated/codex/skills/rite-fast/SKILL.md +1 -1
  315. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -3
  316. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +4 -4
  317. package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  318. package/pack/generated/codex/skills/rite-prove/reference/browser-proof.md +5 -5
  319. package/pack/generated/codex/skills/rite-resolve/SKILL.md +3 -3
  320. package/pack/generated/codex/skills/rite-seal/SKILL.md +4 -3
  321. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +3 -2
  322. package/pack/generated/codex/skills/rite-seal/reference/seal-template.md +2 -0
  323. package/pack/generated/codex/skills/rite-ship/SKILL.md +4 -2
  324. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +8 -2
  325. package/pack/generated/codex/skills/rite-ship/reference/ship-template.md +2 -1
  326. package/pack/generated/codex/skills/rite-spec/SKILL.md +2 -2
  327. package/pack/generated/codex/skills/rite-spec/reference/spec-checklists.md +1 -1
  328. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +7 -3
  329. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +2 -0
  330. package/pack/generated/codex/skills/rite-temper/SKILL.md +12 -9
  331. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +1 -1
  332. package/pack/generated/codex/skills/rite-temper/reference/significance.md +10 -3
  333. package/pack/generated/codex/skills/rite-temper/reference/strategy-template.md +13 -2
  334. package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -3
  335. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +1 -1
  336. package/pack/generated/devin/AGENTS.md +1 -1
  337. package/pack/generated/devin/agents/devrites-spec-reviewer.md +2 -2
  338. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +2 -2
  339. package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  340. package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  341. package/pack/generated/devin/skills/devrites-interview/SKILL.md +4 -4
  342. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  343. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
  344. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +3 -2
  345. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +6 -5
  346. package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  347. package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  348. package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +3 -3
  349. package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  350. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  351. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  352. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +11 -12
  353. package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  354. package/pack/generated/devin/skills/overhaul/SKILL.md +1 -1
  355. package/pack/generated/devin/skills/overhaul/references/orchestration.md +5 -3
  356. package/pack/generated/devin/skills/overhaul/references/records.md +39 -0
  357. package/pack/generated/devin/skills/overhaul/references/scoring.md +14 -4
  358. package/pack/generated/devin/skills/rite/reference/menu.md +1 -1
  359. package/pack/generated/devin/skills/rite-adopt/SKILL.md +8 -2
  360. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +11 -6
  361. package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  362. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +1 -1
  363. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  364. package/pack/generated/devin/skills/rite-build/SKILL.md +2 -1
  365. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +1 -1
  366. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  367. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +5 -0
  368. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +2 -2
  369. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +3 -2
  370. package/pack/generated/devin/skills/rite-clarify/SKILL.md +5 -4
  371. package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +2 -2
  372. package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +3 -2
  373. package/pack/generated/devin/skills/rite-converge/SKILL.md +2 -0
  374. package/pack/generated/devin/skills/rite-customize/SKILL.md +6 -4
  375. package/pack/generated/devin/skills/rite-define/SKILL.md +2 -0
  376. package/pack/generated/devin/skills/rite-define/reference/gates.md +8 -7
  377. package/pack/generated/devin/skills/rite-explain/SKILL.md +1 -1
  378. package/pack/generated/devin/skills/rite-explain/reference/intake.md +1 -1
  379. package/pack/generated/devin/skills/rite-fast/SKILL.md +1 -1
  380. package/pack/generated/devin/skills/rite-plan/SKILL.md +4 -3
  381. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +4 -4
  382. package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  383. package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +5 -5
  384. package/pack/generated/devin/skills/rite-resolve/SKILL.md +3 -3
  385. package/pack/generated/devin/skills/rite-seal/SKILL.md +4 -3
  386. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +3 -2
  387. package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +2 -0
  388. package/pack/generated/devin/skills/rite-ship/SKILL.md +4 -2
  389. package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +8 -2
  390. package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +2 -1
  391. package/pack/generated/devin/skills/rite-spec/SKILL.md +2 -2
  392. package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +1 -1
  393. package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +7 -3
  394. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +2 -0
  395. package/pack/generated/devin/skills/rite-temper/SKILL.md +12 -9
  396. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +1 -1
  397. package/pack/generated/devin/skills/rite-temper/reference/significance.md +10 -3
  398. package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +13 -2
  399. package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -3
  400. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +1 -1
  401. package/pack/generated/omp/agents/devrites-spec-reviewer.md +2 -2
  402. package/pack/generated/omp/commands/rite-define.md +1 -1
  403. package/pack/generated/omp/commands/rite-handoff.md +1 -1
  404. package/pack/generated/omp/commands/rite-plan.md +1 -1
  405. package/pack/generated/omp/commands/rite-pressure-test.md +1 -1
  406. package/pack/generated/omp/commands/rite-quick.md +1 -1
  407. package/pack/generated/omp/commands/rite-status.md +1 -1
  408. package/pack/generated/omp/commands/rite-temper.md +1 -1
  409. package/pack/generated/omp/commands/rite-zoom-out.md +1 -1
  410. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +2 -2
  411. package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  412. package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  413. package/pack/generated/omp/skills/devrites-interview/SKILL.md +4 -4
  414. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  415. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
  416. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +3 -2
  417. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +6 -5
  418. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  419. package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  420. package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +3 -3
  421. package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  422. package/pack/generated/omp/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  423. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  424. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +11 -12
  425. package/pack/generated/omp/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  426. package/pack/generated/omp/skills/overhaul/SKILL.md +1 -1
  427. package/pack/generated/omp/skills/overhaul/references/orchestration.md +5 -3
  428. package/pack/generated/omp/skills/overhaul/references/records.md +39 -0
  429. package/pack/generated/omp/skills/overhaul/references/scoring.md +14 -4
  430. package/pack/generated/omp/skills/rite/reference/menu.md +1 -1
  431. package/pack/generated/omp/skills/rite-adopt/SKILL.md +8 -2
  432. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +11 -6
  433. package/pack/generated/omp/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  434. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +1 -1
  435. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  436. package/pack/generated/omp/skills/rite-build/SKILL.md +2 -1
  437. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
  438. package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  439. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +5 -0
  440. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +2 -2
  441. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +3 -2
  442. package/pack/generated/omp/skills/rite-clarify/SKILL.md +5 -4
  443. package/pack/generated/omp/skills/rite-clarify/reference/anti-patterns.md +2 -2
  444. package/pack/generated/omp/skills/rite-clarify/reference/decision-coverage.md +3 -2
  445. package/pack/generated/omp/skills/rite-converge/SKILL.md +2 -0
  446. package/pack/generated/omp/skills/rite-customize/SKILL.md +6 -4
  447. package/pack/generated/omp/skills/rite-define/SKILL.md +2 -0
  448. package/pack/generated/omp/skills/rite-define/reference/gates.md +8 -7
  449. package/pack/generated/omp/skills/rite-explain/SKILL.md +1 -1
  450. package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
  451. package/pack/generated/omp/skills/rite-fast/SKILL.md +1 -1
  452. package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -3
  453. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +4 -4
  454. package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  455. package/pack/generated/omp/skills/rite-prove/reference/browser-proof.md +5 -5
  456. package/pack/generated/omp/skills/rite-resolve/SKILL.md +3 -3
  457. package/pack/generated/omp/skills/rite-seal/SKILL.md +4 -3
  458. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +3 -2
  459. package/pack/generated/omp/skills/rite-seal/reference/seal-template.md +2 -0
  460. package/pack/generated/omp/skills/rite-ship/SKILL.md +4 -2
  461. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +8 -2
  462. package/pack/generated/omp/skills/rite-ship/reference/ship-template.md +2 -1
  463. package/pack/generated/omp/skills/rite-spec/SKILL.md +2 -2
  464. package/pack/generated/omp/skills/rite-spec/reference/spec-checklists.md +1 -1
  465. package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +7 -3
  466. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +2 -0
  467. package/pack/generated/omp/skills/rite-temper/SKILL.md +12 -9
  468. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +1 -1
  469. package/pack/generated/omp/skills/rite-temper/reference/significance.md +10 -3
  470. package/pack/generated/omp/skills/rite-temper/reference/strategy-template.md +13 -2
  471. package/pack/generated/omp/skills/rite-vet/SKILL.md +4 -3
  472. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +1 -1
  473. package/pack/generated/pi/AGENTS.md +1 -1
  474. package/pack/generated/pi/agents/devrites-spec-reviewer.md +2 -2
  475. package/pack/generated/pi/prompts/rite-define.md +1 -1
  476. package/pack/generated/pi/prompts/rite-handoff.md +1 -1
  477. package/pack/generated/pi/prompts/rite-plan.md +1 -1
  478. package/pack/generated/pi/prompts/rite-pressure-test.md +1 -1
  479. package/pack/generated/pi/prompts/rite-quick.md +1 -1
  480. package/pack/generated/pi/prompts/rite-status.md +1 -1
  481. package/pack/generated/pi/prompts/rite-temper.md +1 -1
  482. package/pack/generated/pi/prompts/rite-zoom-out.md +1 -1
  483. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +2 -2
  484. package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +18 -18
  485. package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +6 -4
  486. package/pack/generated/pi/skills/devrites-interview/SKILL.md +4 -4
  487. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +1 -1
  488. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +9 -1
  489. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +3 -2
  490. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +6 -5
  491. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +1 -1
  492. package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +3 -3
  493. package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +3 -3
  494. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -2
  495. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/outline-template.md +1 -1
  496. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +4 -4
  497. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +11 -12
  498. package/pack/generated/pi/skills/devrites-ux-shape/reference/visual-direction-probe.md +3 -1
  499. package/pack/generated/pi/skills/overhaul/SKILL.md +1 -1
  500. package/pack/generated/pi/skills/overhaul/references/orchestration.md +5 -3
  501. package/pack/generated/pi/skills/overhaul/references/records.md +39 -0
  502. package/pack/generated/pi/skills/overhaul/references/scoring.md +14 -4
  503. package/pack/generated/pi/skills/rite/reference/menu.md +1 -1
  504. package/pack/generated/pi/skills/rite-adopt/SKILL.md +8 -2
  505. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +11 -6
  506. package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +3 -2
  507. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +1 -1
  508. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +6 -3
  509. package/pack/generated/pi/skills/rite-build/SKILL.md +2 -1
  510. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +1 -1
  511. package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +1 -1
  512. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +5 -0
  513. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +2 -2
  514. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +3 -2
  515. package/pack/generated/pi/skills/rite-clarify/SKILL.md +5 -4
  516. package/pack/generated/pi/skills/rite-clarify/reference/anti-patterns.md +2 -2
  517. package/pack/generated/pi/skills/rite-clarify/reference/decision-coverage.md +3 -2
  518. package/pack/generated/pi/skills/rite-converge/SKILL.md +2 -0
  519. package/pack/generated/pi/skills/rite-customize/SKILL.md +6 -4
  520. package/pack/generated/pi/skills/rite-define/SKILL.md +2 -0
  521. package/pack/generated/pi/skills/rite-define/reference/gates.md +8 -7
  522. package/pack/generated/pi/skills/rite-explain/SKILL.md +1 -1
  523. package/pack/generated/pi/skills/rite-explain/reference/intake.md +1 -1
  524. package/pack/generated/pi/skills/rite-fast/SKILL.md +1 -1
  525. package/pack/generated/pi/skills/rite-plan/SKILL.md +4 -3
  526. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +4 -4
  527. package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +1 -1
  528. package/pack/generated/pi/skills/rite-prove/reference/browser-proof.md +5 -5
  529. package/pack/generated/pi/skills/rite-resolve/SKILL.md +3 -3
  530. package/pack/generated/pi/skills/rite-seal/SKILL.md +4 -3
  531. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +3 -2
  532. package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +2 -0
  533. package/pack/generated/pi/skills/rite-ship/SKILL.md +4 -2
  534. package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +8 -2
  535. package/pack/generated/pi/skills/rite-ship/reference/ship-template.md +2 -1
  536. package/pack/generated/pi/skills/rite-spec/SKILL.md +2 -2
  537. package/pack/generated/pi/skills/rite-spec/reference/spec-checklists.md +1 -1
  538. package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +7 -3
  539. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +2 -0
  540. package/pack/generated/pi/skills/rite-temper/SKILL.md +12 -9
  541. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +1 -1
  542. package/pack/generated/pi/skills/rite-temper/reference/significance.md +10 -3
  543. package/pack/generated/pi/skills/rite-temper/reference/strategy-template.md +13 -2
  544. package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -3
  545. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +1 -1
  546. package/package.json +5 -4
  547. package/scripts/build-host-artifacts.sh +15 -0
  548. package/scripts/codex-generate.sh +1 -1
  549. package/scripts/devin-generate.sh +1 -1
  550. package/scripts/expand-includes.py +46 -0
  551. package/scripts/install-lib.sh +42 -7
  552. package/scripts/omp-generate.sh +11 -0
  553. package/scripts/pi-generate.sh +12 -1
  554. package/update.sh +1 -2
  555. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/README.md +0 -7
  556. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/architecture.md +0 -3
  557. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/assumptions.md +0 -3
  558. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/brief.md +0 -3
  559. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decision-coverage.md +0 -3
  560. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/decisions.md +0 -4
  561. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/eng-review.md +0 -3
  562. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/gates.md +0 -4
  563. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/plan.md +0 -5
  564. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/questions.md +0 -3
  565. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/spec.md +0 -6
  566. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/state.md +0 -8
  567. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/tasks.md +0 -1
  568. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/test-plan.md +0 -3
  569. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/traceability.md +0 -3
  570. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/README.md +0 -7
  571. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/assumptions.md +0 -3
  572. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/brief.md +0 -3
  573. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/decisions.md +0 -3
  574. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/questions.md +0 -3
  575. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/spec.md +0 -6
  576. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +0 -3
  577. package/engine/testdata/golden/TestParityCloseOut/active_pointed_elsewhere.golden +0 -2
  578. package/engine/testdata/golden/TestParityCloseOut/active_slug_cleared.golden +0 -2
  579. package/engine/testdata/golden/TestParityCloseOut/archive_clobber.golden +0 -1
  580. package/engine/testdata/golden/TestParityCloseOut/missing_slug.golden +0 -1
  581. package/engine/testdata/golden/TestParityCloseOut/missing_workspace.golden +0 -1
  582. package/engine/testdata/golden/TestParityLearnings/add.golden +0 -2
  583. package/engine/testdata/golden/TestParityLearnings/list.golden +0 -5
  584. package/engine/testdata/golden/TestParityLearnings/mine-no-archive.golden +0 -2
  585. package/engine/testdata/golden/TestParityLearnings/mine.golden +0 -5
  586. package/engine/testdata/golden/TestParityLearnings/nudge.golden +0 -2
  587. package/engine/testdata/golden/TestParityLearnings/unknown.golden +0 -1
  588. package/engine/testdata/golden/TestParityPackageExistence/ghost-workspace.golden +0 -1
  589. package/engine/testdata/golden/TestParityPackageExistence/no-manifest.golden +0 -1
  590. package/engine/testdata/golden/TestParityPackageExistence/not-git.golden +0 -1
  591. package/engine/testdata/golden/TestParityPackageExistence/undeclared.golden +0 -1
  592. package/engine/testdata/golden/TestParityPreamble/afk/a.golden +0 -14
  593. package/engine/testdata/golden/TestParityPreamble/hitl/active.golden +0 -18
  594. package/engine/testdata/golden/TestParityPreamble/hitl/bare.golden +0 -10
  595. package/engine/testdata/golden/TestParityPreamble/hitl/full.golden +0 -18
  596. package/engine/testdata/golden/TestParityPreamble/hitl/ghost.golden +0 -2
  597. package/engine/testdata/golden/TestParityPreamble/hitl/nonl.golden +0 -11
  598. package/engine/testdata/golden/TestParityPreamble/hitl/openend.golden +0 -13
  599. package/engine/testdata/golden/TestParityProgress/arg=allbuilt.golden +0 -4
  600. package/engine/testdata/golden/TestParityProgress/arg=done.golden +0 -3
  601. package/engine/testdata/golden/TestParityProgress/arg=ghost.golden +0 -1
  602. package/engine/testdata/golden/TestParityProgress/arg=mid.golden +0 -4
  603. package/engine/testdata/golden/TestParityProgress/arg=nophase.golden +0 -3
  604. package/engine/testdata/golden/TestParityProgress/arg=noslice.golden +0 -3
  605. package/engine/testdata/golden/TestParityProgress/arg=plan.golden +0 -4
  606. package/engine/testdata/golden/TestParityProgress/arg=seal.golden +0 -3
  607. package/engine/testdata/golden/TestParityResolve/answer/questions.md.golden +0 -9
  608. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +0 -7
  609. package/engine/testdata/golden/TestParityResolve/answer.golden +0 -4
  610. package/engine/testdata/golden/TestParityResolve/batch/questions.md.golden +0 -9
  611. package/engine/testdata/golden/TestParityResolve/batch-unterminated/questions.md.golden +0 -9
  612. package/engine/testdata/golden/TestParityResolve/batch-unterminated.golden +0 -2
  613. package/engine/testdata/golden/TestParityResolve/batch.golden +0 -3
  614. package/engine/testdata/golden/TestParityResolve/drop/questions.md.golden +0 -9
  615. package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +0 -9
  616. package/engine/testdata/golden/TestParityResolve/drop.golden +0 -4
  617. package/engine/testdata/golden/TestParityResolve/missing-answer.golden +0 -1
  618. package/engine/testdata/golden/TestParityResolve/no-workspace.golden +0 -1
  619. package/engine/testdata/golden/TestParityResolve/not-found.golden +0 -1
  620. package/engine/testdata/golden/TestParityResolve/not-open.golden +0 -1
  621. package/engine/testdata/golden/TestStatusLiveWorkspace.golden +0 -10
  622. package/engine/testdata/golden/status/auth-tokens.txt +0 -9
  623. package/engine/testdata/golden/status/search-ranking.txt +0 -9
  624. package/engine/testdata/visual/open-visual-smoke.html +0 -675
  625. package/engine/testdata/visual/open-visual-smoke.outline.md +0 -54
  626. package/engine/tests/adr_0003_gate_exit_code_test.go +0 -32
  627. package/engine/tests/adr_0004_required_by_phase_test.go +0 -54
  628. package/engine/tests/adr_0011_define_plan_test.go +0 -32
  629. package/engine/tests/adr_0027_readiness_binding_test.go +0 -107
  630. package/engine/tests/cli_test.go +0 -126
  631. package/engine/tests/gate_test.go +0 -669
  632. package/engine/tests/meta_test.go +0 -37
  633. package/engine/tests/parity_closeout_test.go +0 -105
  634. package/engine/tests/parity_githelpers_test.go +0 -41
  635. package/engine/tests/parity_resolve_test.go +0 -136
  636. package/engine/tests/parity_test.go +0 -86
  637. package/engine/tests/workspace_observation_migration_test.go +0 -1069
@@ -1,9 +0,0 @@
1
- feature: search-ranking
2
- phase: spec
3
- spec present required
4
- plan empty
5
- decisions empty
6
- tasks empty
7
- proof empty
8
- status empty
9
- result: complete
@@ -1,675 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>open-visual — dual-read smoke</title>
7
- <style>
8
- :root {
9
- color-scheme: light dark;
10
- /* Restrained tool surface: near-neutral off-white tinted toward teal (not cream/sand). */
11
- --bg: oklch(0.985 0.006 195);
12
- --surface: oklch(0.995 0.003 195);
13
- --surface-2: oklch(0.965 0.01 195);
14
- --ink: oklch(0.28 0.02 250);
15
- --muted: oklch(0.45 0.02 250);
16
- --accent: oklch(0.48 0.1 195);
17
- --accent-soft: oklch(0.94 0.03 195);
18
- --line: oklch(0.86 0.015 195);
19
- --ok: oklch(0.52 0.12 155);
20
- --warn: oklch(0.55 0.12 75);
21
- --shadow: 0 1px 0 oklch(0.3 0.02 250 / 0.04), 0 8px 24px oklch(0.3 0.02 250 / 0.06);
22
- --radius: 12px;
23
- --space-1: 0.5rem;
24
- --space-2: 0.75rem;
25
- --space-3: 1rem;
26
- --space-4: 1.5rem;
27
- --space-5: 2rem;
28
- --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
29
- --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
30
- --z-sticky: 10;
31
- }
32
-
33
- @media (prefers-color-scheme: dark) {
34
- :root {
35
- --bg: oklch(0.22 0.015 250);
36
- --surface: oklch(0.27 0.015 250);
37
- --surface-2: oklch(0.32 0.018 250);
38
- --ink: oklch(0.93 0.01 195);
39
- --muted: oklch(0.72 0.02 250);
40
- --accent: oklch(0.78 0.1 185);
41
- --accent-soft: oklch(0.35 0.04 195);
42
- --line: oklch(0.42 0.02 250);
43
- --ok: oklch(0.78 0.12 155);
44
- --warn: oklch(0.82 0.12 85);
45
- --shadow: 0 1px 0 oklch(0 0 0 / 0.35), 0 10px 28px oklch(0 0 0 / 0.35);
46
- }
47
- }
48
-
49
- * { box-sizing: border-box; }
50
-
51
- body {
52
- margin: 0;
53
- min-height: 100vh;
54
- font-family: var(--font);
55
- font-size: 1rem;
56
- line-height: 1.5;
57
- background:
58
- radial-gradient(1200px 480px at 10% -10%, oklch(from var(--accent) l c h / 0.08), transparent 60%),
59
- var(--bg);
60
- color: var(--ink);
61
- }
62
-
63
- a { color: var(--accent); }
64
-
65
- code, kbd {
66
- font-family: var(--mono);
67
- font-size: 0.875em;
68
- background: var(--surface-2);
69
- border: 1px solid var(--line);
70
- border-radius: 6px;
71
- padding: 0.1em 0.35em;
72
- }
73
-
74
- kbd { font-size: 0.8em; }
75
-
76
- .wrap {
77
- width: min(52rem, calc(100% - 2rem));
78
- margin-inline: auto;
79
- padding-block: var(--space-4) var(--space-5);
80
- }
81
-
82
- header#viz-title {
83
- display: grid;
84
- gap: var(--space-2);
85
- padding: var(--space-4);
86
- margin-bottom: var(--space-4);
87
- background: var(--surface);
88
- border: 1px solid var(--line);
89
- border-radius: calc(var(--radius) + 2px);
90
- box-shadow: var(--shadow);
91
- }
92
-
93
- .badge-row {
94
- display: flex;
95
- flex-wrap: wrap;
96
- gap: var(--space-1);
97
- }
98
-
99
- .badge {
100
- display: inline-flex;
101
- align-items: center;
102
- gap: 0.35rem;
103
- padding: 0.2rem 0.55rem;
104
- border-radius: 999px;
105
- border: 1px solid var(--line);
106
- background: var(--surface-2);
107
- color: var(--muted);
108
- font-size: 0.75rem;
109
- font-weight: 600;
110
- letter-spacing: 0.01em;
111
- }
112
-
113
- .badge[data-tone="accent"] {
114
- background: var(--accent-soft);
115
- border-color: color-mix(in oklch, var(--accent) 35%, var(--line));
116
- color: var(--accent);
117
- }
118
-
119
- .badge[data-tone="ok"] {
120
- color: var(--ok);
121
- border-color: color-mix(in oklch, var(--ok) 35%, var(--line));
122
- }
123
-
124
- .badge[data-tone="warn"] {
125
- color: var(--warn);
126
- border-color: color-mix(in oklch, var(--warn) 35%, var(--line));
127
- }
128
-
129
- .badge[data-tone="low"] {
130
- color: var(--muted);
131
- border-color: var(--line);
132
- }
133
-
134
- h1 {
135
- margin: 0;
136
- font-size: 1.5rem;
137
- font-weight: 700;
138
- letter-spacing: -0.02em;
139
- text-wrap: balance;
140
- line-height: 1.25;
141
- }
142
-
143
- .lede {
144
- margin: 0;
145
- max-width: 65ch;
146
- color: var(--muted);
147
- text-wrap: pretty;
148
- }
149
-
150
- .cmd {
151
- display: flex;
152
- flex-wrap: wrap;
153
- align-items: center;
154
- gap: var(--space-2);
155
- margin: 0;
156
- padding: var(--space-2) var(--space-3);
157
- background: var(--surface-2);
158
- border: 1px dashed color-mix(in oklch, var(--accent) 40%, var(--line));
159
- border-radius: var(--radius);
160
- font-family: var(--mono);
161
- font-size: 0.85rem;
162
- overflow-x: auto;
163
- }
164
-
165
- .cmd span.label {
166
- flex: 0 0 auto;
167
- font-family: var(--font);
168
- font-size: 0.7rem;
169
- font-weight: 700;
170
- text-transform: uppercase;
171
- letter-spacing: 0.04em;
172
- color: var(--accent);
173
- }
174
-
175
- main {
176
- display: grid;
177
- gap: var(--space-4);
178
- }
179
-
180
- section {
181
- background: var(--surface);
182
- border: 1px solid var(--line);
183
- border-radius: var(--radius);
184
- padding: var(--space-3) var(--space-4);
185
- box-shadow: var(--shadow);
186
- }
187
-
188
- .section-head {
189
- display: flex;
190
- flex-wrap: wrap;
191
- align-items: baseline;
192
- justify-content: space-between;
193
- gap: var(--space-2);
194
- margin-bottom: var(--space-3);
195
- }
196
-
197
- .section-head h2 {
198
- margin: 0;
199
- font-size: 0.95rem;
200
- font-weight: 700;
201
- letter-spacing: -0.01em;
202
- }
203
-
204
- .section-head p {
205
- margin: 0;
206
- color: var(--muted);
207
- font-size: 0.875rem;
208
- max-width: 42ch;
209
- }
210
-
211
- #diagram-overview {
212
- padding-bottom: var(--space-2);
213
- }
214
-
215
- .figure-frame {
216
- border: 1px solid var(--line);
217
- border-radius: var(--radius);
218
- background:
219
- linear-gradient(180deg, var(--accent-soft), transparent 42%),
220
- var(--surface-2);
221
- padding: var(--space-3);
222
- }
223
-
224
- svg {
225
- display: block;
226
- width: 100%;
227
- height: auto;
228
- color: var(--ink);
229
- }
230
-
231
- .node rect {
232
- fill: var(--surface);
233
- stroke: var(--accent);
234
- stroke-width: 2;
235
- filter: drop-shadow(0 2px 6px oklch(0.3 0.02 250 / 0.08));
236
- }
237
-
238
- .node text.primary {
239
- fill: var(--ink);
240
- font-size: 15px;
241
- font-weight: 700;
242
- font-family: var(--font);
243
- }
244
-
245
- .node text.secondary {
246
- fill: var(--muted);
247
- font-size: 11px;
248
- font-family: var(--mono);
249
- }
250
-
251
- .edge {
252
- stroke: color-mix(in oklch, var(--accent) 55%, var(--line));
253
- stroke-width: 2.25;
254
- fill: none;
255
- marker-end: url(#arrow);
256
- }
257
-
258
- .edge-label {
259
- fill: var(--muted);
260
- font-size: 11px;
261
- font-weight: 600;
262
- font-family: var(--font);
263
- letter-spacing: 0.02em;
264
- }
265
-
266
- .step-dot {
267
- fill: var(--accent);
268
- }
269
-
270
- .step-dot-text {
271
- fill: oklch(0.99 0 0);
272
- font-size: 11px;
273
- font-weight: 700;
274
- font-family: var(--font);
275
- }
276
-
277
- @media (prefers-color-scheme: dark) {
278
- .step-dot-text { fill: oklch(0.2 0.02 250); }
279
- .node rect {
280
- filter: drop-shadow(0 2px 8px oklch(0 0 0 / 0.35));
281
- }
282
- }
283
-
284
- #diagram-detail .steps {
285
- display: grid;
286
- gap: var(--space-3);
287
- grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
288
- margin: 0;
289
- padding: 0;
290
- list-style: none;
291
- }
292
-
293
- #diagram-detail .steps li {
294
- display: grid;
295
- gap: 0.35rem;
296
- padding: var(--space-3);
297
- border-radius: calc(var(--radius) - 2px);
298
- background: var(--surface-2);
299
- border: 1px solid var(--line);
300
- }
301
-
302
- #diagram-detail .steps .n {
303
- width: 1.5rem;
304
- height: 1.5rem;
305
- display: grid;
306
- place-items: center;
307
- border-radius: 999px;
308
- background: var(--accent);
309
- color: oklch(0.99 0 0);
310
- font-size: 0.75rem;
311
- font-weight: 700;
312
- }
313
-
314
- @media (prefers-color-scheme: dark) {
315
- #diagram-detail .steps .n { color: oklch(0.2 0.02 250); }
316
- }
317
-
318
- #diagram-detail .steps h3 {
319
- margin: 0;
320
- font-size: 0.95rem;
321
- font-weight: 700;
322
- text-wrap: balance;
323
- }
324
-
325
- #diagram-detail .steps p {
326
- margin: 0;
327
- color: var(--muted);
328
- font-size: 0.875rem;
329
- text-wrap: pretty;
330
- }
331
-
332
- #diagram-legend dl {
333
- display: grid;
334
- gap: var(--space-2);
335
- margin: 0;
336
- }
337
-
338
- #diagram-legend .row {
339
- display: grid;
340
- grid-template-columns: minmax(7rem, 10rem) 1fr;
341
- gap: var(--space-2);
342
- align-items: start;
343
- padding-block: 0.35rem;
344
- border-bottom: 1px solid var(--line);
345
- }
346
-
347
- #diagram-legend .row:last-child { border-bottom: 0; }
348
-
349
- #diagram-legend dt {
350
- margin: 0;
351
- font-weight: 700;
352
- font-size: 0.85rem;
353
- }
354
-
355
- #diagram-legend dd {
356
- margin: 0;
357
- color: var(--muted);
358
- font-size: 0.875rem;
359
- text-wrap: pretty;
360
- }
361
-
362
- #diagram-citations table,
363
- #viz-open-questions table {
364
- width: 100%;
365
- border-collapse: collapse;
366
- font-size: 0.875rem;
367
- }
368
-
369
- #diagram-citations th,
370
- #diagram-citations td,
371
- #viz-open-questions th,
372
- #viz-open-questions td {
373
- text-align: left;
374
- vertical-align: top;
375
- padding: 0.55rem 0.35rem;
376
- border-bottom: 1px solid var(--line);
377
- }
378
-
379
- #diagram-citations th,
380
- #viz-open-questions th {
381
- color: var(--muted);
382
- font-size: 0.72rem;
383
- font-weight: 700;
384
- text-transform: uppercase;
385
- letter-spacing: 0.04em;
386
- }
387
-
388
- #diagram-citations td:first-child {
389
- width: 38%;
390
- font-weight: 600;
391
- }
392
-
393
- #viz-open-questions td:first-child {
394
- width: 7.5rem;
395
- font-family: var(--mono);
396
- font-size: 0.8rem;
397
- font-weight: 600;
398
- }
399
-
400
- #viz-open-questions .q-meta {
401
- display: flex;
402
- flex-wrap: wrap;
403
- gap: var(--space-1);
404
- margin-top: 0.35rem;
405
- }
406
-
407
- footer.note {
408
- margin-top: var(--space-2);
409
- color: var(--muted);
410
- font-size: 0.8rem;
411
- }
412
-
413
- @media (max-width: 560px) {
414
- .wrap { width: min(52rem, calc(100% - 1.25rem)); }
415
- header#viz-title, section { padding: var(--space-3); }
416
- #diagram-legend .row { grid-template-columns: 1fr; gap: 0.15rem; }
417
- h1 { font-size: 1.25rem; }
418
- }
419
-
420
- @media (prefers-reduced-motion: reduce) {
421
- * {
422
- transition: none !important;
423
- animation: none !important;
424
- }
425
- }
426
- </style>
427
- </head>
428
- <body>
429
- <div class="wrap">
430
- <header id="viz-title">
431
- <div class="badge-row">
432
- <span class="badge" data-tone="accent">diagram playbook</span>
433
- <span class="badge" data-tone="ok">local only · no network</span>
434
- <span class="badge">smoke fixture</span>
435
- </div>
436
- <h1>How does <code>open-visual</code> resolve a dual-read visual?</h1>
437
- <p class="lede">
438
- Agents write a portable HTML figure plus a sibling Markdown outline.
439
- Humans review the HTML; agents trust the outline as SSOT. The engine
440
- opener resolves that pair locally and can print tips without launching a browser.
441
- </p>
442
- <p class="cmd" aria-label="Smoke command">
443
- <span class="label">try</span>
444
- <span>devrites-engine open-visual engine/testdata/visual/open-visual-smoke.html --no-open</span>
445
- </p>
446
- </header>
447
-
448
- <main>
449
- <section id="diagram-overview" aria-label="Overview diagram">
450
- <div class="section-head">
451
- <h2>Overview</h2>
452
- <p>One concept: HTML + outline → opener tips.</p>
453
- </div>
454
- <div class="figure-frame">
455
- <svg viewBox="0 0 420 420" role="img" aria-labelledby="diagram-title">
456
- <title id="diagram-title">HTML fixture pairs with outline SSOT; open-visual prints tips locally</title>
457
- <defs>
458
- <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
459
- <path d="M 0 0 L 10 5 L 0 10 z" fill="currentColor"></path>
460
- </marker>
461
- </defs>
462
-
463
- <g class="node" id="node-html">
464
- <circle class="step-dot" cx="48" cy="54" r="12"></circle>
465
- <text class="step-dot-text" x="48" y="58" text-anchor="middle">1</text>
466
- <rect x="78" y="24" width="300" height="64" rx="12"></rect>
467
- <text class="primary" x="228" y="50" text-anchor="middle">HTML visual</text>
468
- <text class="secondary" x="228" y="70" text-anchor="middle">*.html · human review surface</text>
469
- </g>
470
-
471
- <path class="edge" id="edge-html-outline" d="M 228 88 V 118"></path>
472
- <text class="edge-label" x="246" y="110">dual-read pair</text>
473
-
474
- <g class="node" id="node-outline">
475
- <circle class="step-dot" cx="48" cy="166" r="12"></circle>
476
- <text class="step-dot-text" x="48" y="170" text-anchor="middle">2</text>
477
- <rect x="78" y="136" width="300" height="64" rx="12"></rect>
478
- <text class="primary" x="228" y="162" text-anchor="middle">Outline SSOT</text>
479
- <text class="secondary" x="228" y="182" text-anchor="middle">*.outline.md · agent truth</text>
480
- </g>
481
-
482
- <path class="edge" id="edge-outline-opener" d="M 228 200 V 230"></path>
483
- <text class="edge-label" x="246" y="222">tips + resolved path</text>
484
-
485
- <g class="node" id="node-opener">
486
- <circle class="step-dot" cx="48" cy="278" r="12"></circle>
487
- <text class="step-dot-text" x="48" y="282" text-anchor="middle">3</text>
488
- <rect x="78" y="248" width="300" height="64" rx="12"></rect>
489
- <text class="primary" x="228" y="274" text-anchor="middle">open-visual</text>
490
- <text class="secondary" x="228" y="294" text-anchor="middle">engine command · local only</text>
491
- </g>
492
-
493
- <text class="edge-label" x="210" y="350" text-anchor="middle">On conflict, outline wins until both regenerate</text>
494
- <text class="edge-label" x="210" y="372" text-anchor="middle">--no-open prints tips · never launches the browser</text>
495
- </svg>
496
- </div>
497
- </section>
498
-
499
- <section id="diagram-detail" aria-label="How the opener behaves">
500
- <div class="section-head">
501
- <h2>What each step does</h2>
502
- <p>Same story as the figure, in readable prose.</p>
503
- </div>
504
- <ol class="steps">
505
- <li>
506
- <span class="n" aria-hidden="true">1</span>
507
- <h3>Ship a dual-read pair</h3>
508
- <p>
509
- Write <code>visual/&lt;name&gt;.html</code> for humans and
510
- <code>visual/&lt;name&gt;.outline.md</code> for agents — same claim, two surfaces.
511
- </p>
512
- </li>
513
- <li>
514
- <span class="n" aria-hidden="true">2</span>
515
- <h3>Treat outline as SSOT</h3>
516
- <p>
517
- Inventory, relationships, and citations live in the outline.
518
- If HTML and outline disagree, the outline wins.
519
- </p>
520
- </li>
521
- <li>
522
- <span class="n" aria-hidden="true">3</span>
523
- <h3>Resolve with <code>open-visual</code></h3>
524
- <p>
525
- The engine finds the HTML (path or workspace name), warns if the
526
- sibling outline is missing, prints agent tips, and optionally opens the OS browser.
527
- </p>
528
- </li>
529
- </ol>
530
- </section>
531
-
532
- <section id="diagram-legend" aria-label="Legend">
533
- <div class="section-head">
534
- <h2>Legend</h2>
535
- <p>Symbols and guarantees for this fixture.</p>
536
- </div>
537
- <dl>
538
- <div class="row">
539
- <dt>Arrow</dt>
540
- <dd>Local resolve / tip print only — no fetch, CDN, or remote I/O.</dd>
541
- </div>
542
- <div class="row">
543
- <dt>Outline SSOT</dt>
544
- <dd>Agent-facing source of truth for ids, relationships, and citations.</dd>
545
- </div>
546
- <div class="row">
547
- <dt><kbd>--no-open</kbd></dt>
548
- <dd>Smoke path: resolve + tips print; browser launch is skipped.</dd>
549
- </div>
550
- <div class="row">
551
- <dt>Playbook</dt>
552
- <dd>This page follows the <code>diagram</code> visual playbook landmarks.</dd>
553
- </div>
554
- </dl>
555
- </section>
556
-
557
-
558
- <section id="viz-open-questions" aria-label="Open questions">
559
- <div class="section-head">
560
- <h2>Open questions</h2>
561
- <p>Uncertainty left for humans; mirrored in the outline + JSON embed.</p>
562
- </div>
563
- <table>
564
- <thead>
565
- <tr>
566
- <th scope="col">Id</th>
567
- <th scope="col">Question</th>
568
- </tr>
569
- </thead>
570
- <tbody>
571
- <tr>
572
- <td><code>q-json-ssot</code></td>
573
- <td>
574
- Should agents ever prefer <code>#devrites-outline</code> JSON over
575
- <code>.outline.md</code> when both exist?
576
- <div class="q-meta">
577
- <span class="badge" data-tone="ok">confidence: high</span>
578
- <span class="badge">status: open</span>
579
- <span class="badge" data-tone="accent">outline.md wins</span>
580
- </div>
581
- </td>
582
- </tr>
583
- <tr>
584
- <td><code>q-browser-ci</code></td>
585
- <td>
586
- Do all interactive review hosts have a usable OS opener, or is
587
- <kbd>--no-open</kbd> the default smoke path?
588
- <div class="q-meta">
589
- <span class="badge" data-tone="warn">confidence: medium</span>
590
- <span class="badge">status: open</span>
591
- </div>
592
- </td>
593
- </tr>
594
- </tbody>
595
- </table>
596
- </section>
597
-
598
- <section id="diagram-citations" aria-label="Citations">
599
- <div class="section-head">
600
- <h2>Citations</h2>
601
- <p>Claims on this page map to repo paths.</p>
602
- </div>
603
- <table>
604
- <thead>
605
- <tr>
606
- <th scope="col">Claim</th>
607
- <th scope="col">Path</th>
608
- </tr>
609
- </thead>
610
- <tbody>
611
- <tr>
612
- <td>Opener implementation</td>
613
- <td><code>engine/internal/lib/open_visual.go</code></td>
614
- </tr>
615
- <tr>
616
- <td>Playbook router</td>
617
- <td><code>pack/.claude/skills/devrites-lib/reference/visual-playbooks/index.md</code></td>
618
- </tr>
619
- <tr>
620
- <td>Outline template</td>
621
- <td><code>pack/.claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md</code></td>
622
- </tr>
623
- <tr>
624
- <td>Explain tip hook</td>
625
- <td><code>pack/.claude/skills/rite-explain/SKILL.md</code></td>
626
- </tr>
627
- </tbody>
628
- </table>
629
- <p class="note">Fixture path: <code>engine/testdata/visual/open-visual-smoke.html</code></p>
630
- </section>
631
- </main>
632
- </div>
633
-
634
- <script type="application/json" id="devrites-outline">
635
- {
636
- "version": 1,
637
- "title": "open-visual smoke fixture",
638
- "purpose": "Prove that devrites-engine open-visual resolves a portable HTML+outline pair under engine/testdata/visual/, prints agent tips, runs a non-fatal inventory↔HTML id consistency check, and honors --no-open without launching a browser.",
639
- "playbooks": ["diagram"],
640
- "ids": [
641
- {"id": "viz-title", "meaning": "Page header / question the fixture answers"},
642
- {"id": "diagram-overview", "meaning": "Core relationship figure"},
643
- {"id": "diagram-title", "meaning": "Accessible SVG title"},
644
- {"id": "node-html", "meaning": "HTML fixture node"},
645
- {"id": "node-outline", "meaning": "Outline companion node"},
646
- {"id": "node-opener", "meaning": "open-visual command node"},
647
- {"id": "edge-html-outline", "meaning": "Dual-read pairing"},
648
- {"id": "edge-outline-opener", "meaning": "Opener tip path"},
649
- {"id": "diagram-detail", "meaning": "Prose steps mirroring the overview"},
650
- {"id": "diagram-legend", "meaning": "Symbol / behavior key"},
651
- {"id": "viz-open-questions", "meaning": "Open questions with confidence"},
652
- {"id": "diagram-citations", "meaning": "Repo path citations"}
653
- ],
654
- "relationships": [
655
- {"from": "node-html", "to": "node-outline", "note": "Dual-read pair; outline is SSOT on conflict"},
656
- {"from": "node-outline", "to": "node-opener", "note": "Opener prints outline path + playbook tip"},
657
- {"from": "open-visual --no-open", "to": "browser", "note": "Must not launch; tips still print"},
658
- {"from": "diagram-overview", "to": "diagram-detail", "note": "Same three-step story: pair → SSOT → opener"},
659
- {"from": "#devrites-outline", "to": ".outline.md", "note": "JSON is a mirror; outline.md wins on conflict"}
660
- ],
661
- "citations": [
662
- {"claim": "Opener implementation", "path": "engine/internal/lib/open_visual.go"},
663
- {"claim": "Playbook router", "path": "pack/.claude/skills/devrites-lib/reference/visual-playbooks/index.md"},
664
- {"claim": "Outline template", "path": "pack/.claude/skills/devrites-lib/reference/visual-playbooks/outline-template.md"},
665
- {"claim": "rite-explain tip hook", "path": "pack/.claude/skills/rite-explain/SKILL.md"}
666
- ],
667
- "open_questions": [
668
- {"id": "q-json-ssot", "text": "Should agents ever prefer #devrites-outline JSON over .outline.md when both exist?", "confidence": "high"},
669
- {"id": "q-browser-ci", "text": "Do all interactive review hosts have a usable OS opener, or is --no-open the default smoke path?", "confidence": "medium"}
670
- ],
671
- "confidence": "high"
672
- }
673
- </script>
674
- </body>
675
- </html>