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
@@ -1,189 +0,0 @@
1
- package lib
2
-
3
- import (
4
- "bytes"
5
- "path/filepath"
6
- "strings"
7
- "testing"
8
- )
9
-
10
- func TestParseOutlineInventoryIDs(t *testing.T) {
11
- outline := `# Title
12
-
13
- ## Purpose
14
- demo
15
-
16
- ## ID inventory
17
-
18
- | HTML ` + "`id`" + ` | Meaning |
19
- | --- | --- |
20
- | ` + "`viz-title`" + ` | Header |
21
- | ` + "`diagram-overview`" + ` | Overview |
22
- | viz-title | duplicate ignored |
23
-
24
- ## Relationships
25
- | From | To | Note |
26
- | --- | --- | --- |
27
- | a | b | c |
28
- `
29
- got := ParseOutlineInventoryIDs(outline)
30
- want := []string{"viz-title", "diagram-overview"}
31
- if len(got) != len(want) {
32
- t.Fatalf("ids = %#v, want %#v", got, want)
33
- }
34
- for i := range want {
35
- if got[i] != want[i] {
36
- t.Fatalf("ids = %#v, want %#v", got, want)
37
- }
38
- }
39
- }
40
-
41
- func TestScanHTMLIDs(t *testing.T) {
42
- html := `<!doctype html><div id="viz-title"></div><svg><marker id='arrow'></marker><g id="viz-title"></g></svg>`
43
- got := ScanHTMLIDs(html)
44
- want := []string{"viz-title", "arrow"}
45
- if len(got) != len(want) {
46
- t.Fatalf("ids = %#v, want %#v", got, want)
47
- }
48
- for i := range want {
49
- if got[i] != want[i] {
50
- t.Fatalf("ids = %#v, want %#v", got, want)
51
- }
52
- }
53
- }
54
-
55
- func TestCheckVisualIDConsistencyMatch(t *testing.T) {
56
- html := `<section id="viz-title"></section><section id="diagram-overview"></section><marker id="arrow"></marker>`
57
- outline := `## ID inventory
58
- | HTML id | Meaning |
59
- | --- | --- |
60
- | viz-title | Header |
61
- | diagram-overview | Overview |
62
- `
63
- report := CheckVisualIDConsistency(html, outline)
64
- if len(report.MissingInHTML) != 0 {
65
- t.Fatalf("MissingInHTML = %#v, want empty", report.MissingInHTML)
66
- }
67
- if len(report.Inventory) != 2 {
68
- t.Fatalf("Inventory = %#v, want 2 ids", report.Inventory)
69
- }
70
- // HTML-only decorative ids are not reported.
71
- if len(report.HTML) != 3 {
72
- t.Fatalf("HTML = %#v, want viz-title, diagram-overview, arrow", report.HTML)
73
- }
74
- }
75
-
76
- func TestCheckVisualIDConsistencyMissingInHTML(t *testing.T) {
77
- html := `<section id="viz-title"></section>`
78
- outline := `## ID inventory
79
- | HTML id | Meaning |
80
- | --- | --- |
81
- | viz-title | Header |
82
- | viz-open-questions | Open questions |
83
- `
84
- report := CheckVisualIDConsistency(html, outline)
85
- if len(report.MissingInHTML) != 1 || report.MissingInHTML[0] != "viz-open-questions" {
86
- t.Fatalf("MissingInHTML = %#v, want [viz-open-questions]", report.MissingInHTML)
87
- }
88
- }
89
-
90
- func TestCheckVisualIDConsistencyMissingOutlineSection(t *testing.T) {
91
- report := CheckVisualIDConsistency(`<div id="x"></div>`, "# Title\n\ndemo\n")
92
- if len(report.Inventory) != 0 || len(report.MissingInHTML) != 0 {
93
- t.Fatalf("report = %#v, want empty inventory/missing", report)
94
- }
95
- }
96
-
97
- func TestOpenVisualWarnsIDMismatch(t *testing.T) {
98
- root, html := writeOpenVisualFixture(t, true)
99
- t.Setenv("DEVRITES_WORKSPACE", filepath.Join(root, "work", "feature"))
100
-
101
- outline := strings.TrimSuffix(html, ".html") + ".outline.md"
102
- writeBasenameFile(t, filepath.Dir(outline), filepath.Base(outline), `# demo
103
-
104
- ## ID inventory
105
- | HTML id | Meaning |
106
- | --- | --- |
107
- | viz-title | Header |
108
- | missing-node | Absent from HTML |
109
- `)
110
- writeBasenameFile(t, filepath.Dir(html), filepath.Base(html), `<!doctype html><title>demo</title><section id="viz-title"></section>
111
- `)
112
-
113
- restore := swapOpenVisualOpener(func(string) error { return nil })
114
- defer restore()
115
-
116
- var stdout, stderr bytes.Buffer
117
- code := OpenVisual(root, []string{"demo", "--no-open"}, &stdout, &stderr)
118
- if code != 0 {
119
- t.Fatalf("OpenVisual() = %d stderr=%q", code, stderr.String())
120
- }
121
- if !strings.Contains(stderr.String(), "outline inventory id(s) missing from HTML") {
122
- t.Fatalf("stderr = %q, want missing-id warning", stderr.String())
123
- }
124
- if !strings.Contains(stderr.String(), "missing-node") {
125
- t.Fatalf("stderr = %q, want missing-node listed", stderr.String())
126
- }
127
- if !strings.Contains(stdout.String(), "open-visual: ids=mismatch") {
128
- t.Fatalf("stdout = %q, want ids=mismatch tip", stdout.String())
129
- }
130
- }
131
-
132
- func TestOpenVisualIDsOkTip(t *testing.T) {
133
- root, html := writeOpenVisualFixture(t, true)
134
- t.Setenv("DEVRITES_WORKSPACE", filepath.Join(root, "work", "feature"))
135
-
136
- outline := strings.TrimSuffix(html, ".html") + ".outline.md"
137
- writeBasenameFile(t, filepath.Dir(outline), filepath.Base(outline), `# demo
138
-
139
- ## ID inventory
140
- | HTML id | Meaning |
141
- | --- | --- |
142
- | viz-title | Header |
143
- `)
144
- writeBasenameFile(t, filepath.Dir(html), filepath.Base(html), `<!doctype html><title>demo</title><section id="viz-title"></section><marker id="arrow"></marker>
145
- `)
146
-
147
- restore := swapOpenVisualOpener(func(string) error { return nil })
148
- defer restore()
149
-
150
- var stdout, stderr bytes.Buffer
151
- code := OpenVisual(root, []string{"demo", "--no-open"}, &stdout, &stderr)
152
- if code != 0 {
153
- t.Fatalf("OpenVisual() = %d stderr=%q", code, stderr.String())
154
- }
155
- if stderr.Len() != 0 {
156
- t.Fatalf("stderr = %q, want empty when consistent", stderr.String())
157
- }
158
- if !strings.Contains(stdout.String(), "open-visual: ids=ok (1 inventory)") {
159
- t.Fatalf("stdout = %q, want ids=ok tip", stdout.String())
160
- }
161
- }
162
-
163
- func TestCheckVisualIDConsistencyAttributeForms(t *testing.T) {
164
- outline := `## ID inventory
165
- | HTML id | Meaning |
166
- | --- | --- |
167
- | viz-title | Header |
168
- `
169
- cases := []struct {
170
- name string
171
- html string
172
- wantMissing []string
173
- }{
174
- {"unquoted", `<section id=viz-title></section>`, nil},
175
- {"unquoted before close", `<section id=viz-title>x</section>`, nil},
176
- {"single quoted", `<section id='viz-title'></section>`, nil},
177
- {"data-id is not id", `<section data-id="viz-title"></section>`, []string{"viz-title"}},
178
- {"hyphenated name ending in id", `<section grid-id=viz-title></section>`, []string{"viz-title"}},
179
- {"newline before attribute", "<section\nid=viz-title></section>", nil},
180
- }
181
- for _, tc := range cases {
182
- t.Run(tc.name, func(t *testing.T) {
183
- got := CheckVisualIDConsistency(tc.html, outline).MissingInHTML
184
- if len(got) != len(tc.wantMissing) || (len(got) == 1 && got[0] != tc.wantMissing[0]) {
185
- t.Fatalf("MissingInHTML = %#v, want %#v", got, tc.wantMissing)
186
- }
187
- })
188
- }
189
- }
@@ -1,420 +0,0 @@
1
- package lib
2
-
3
- import (
4
- "bytes"
5
- "os"
6
- "path/filepath"
7
- "regexp"
8
- "strings"
9
- "testing"
10
-
11
- "github.com/devrites/devrites/internal/testutil"
12
- )
13
-
14
- // windowsStandardPath is the canonical pack standard for this check, relative
15
- // to engine/internal/lib.
16
- const windowsStandardPath = "../../../pack/.claude/skills/devrites-lib/reference/standards/windows.md"
17
-
18
- var (
19
- // The untracked-file guarantee must name the mode that implements it: no git
20
- // diff shows an untracked path, so only the whole-file scan in windowsHits
21
- // covers one.
22
- windowsWorktreeScopeRe = regexp.MustCompile(`(?i)untracked files (?:as|a) wholly new (?:in|under|by) (?:` + "`" + `--)?worktree(?: mode)?`)
23
- // The other two modes must state the narrower scope they actually have.
24
- windowsOtherModeLimitRe = regexp.MustCompile(`(?i)--staged[^\n]{0,60}--base[^\n]{0,40}(?:diff only|tracked diff)`)
25
- // The defective wording: the guarantee stated with no mode qualifier, in the
26
- // same sentence that offers worktree, staged and base as one set.
27
- windowsUnscopedClaim = "treats untracked files as wholly new,"
28
- )
29
-
30
- func windowsWorkspace(t *testing.T, project, slug string) string {
31
- t.Helper()
32
- t.Setenv("DEVRITES_WORKSPACE", "")
33
- root := filepath.Join(project, ".devrites")
34
- ws := filepath.Join(root, "work", slug)
35
- if err := os.MkdirAll(ws, 0o755); err != nil {
36
- t.Fatal(err)
37
- }
38
- return root
39
- }
40
-
41
- func initWindowsRepo(t *testing.T, project string) {
42
- t.Helper()
43
- runSecretScanGit(t, project, "init", "-q")
44
- runSecretScanGit(t, project, "config", "user.email", "tests@example.invalid")
45
- runSecretScanGit(t, project, "config", "user.name", "DevRites Tests")
46
- }
47
-
48
- func TestWindowsMarkersTokensAndIdioms(t *testing.T) {
49
- cases := []struct {
50
- line string
51
- want []string
52
- }{
53
- {"// TODO: backfill index", []string{"TODO"}},
54
- {"x := 1 //FIXME", []string{"FIXME"}},
55
- {"ATODOX is not a marker", nil},
56
- {"t.Skip(\"flaky\")", []string{"t.Skip("}},
57
- {"describe.skip(\"x\", fn)", []string{"describe.skip("}},
58
- {"raise NotImplementedError", []string{"NotImplementedError"}},
59
- {"panic(\"TODO wire cache\")", []string{"panic(\"TODO"}},
60
- {"// @ts-ignore", []string{"@ts-ignore"}},
61
- {"x = f() # noqa: E501", []string{"noqa"}},
62
- {"it.only(\"focus\", fn)", []string{"it.only("}},
63
- {"try { f() } catch (e) {}", []string{"empty-catch"}},
64
- {"except ValueError: pass", []string{"empty-catch"}},
65
- {"} catch (e) { log(e) }", nil},
66
- {"plain line", nil},
67
- }
68
- for _, tc := range cases {
69
- got := windowsMarkers(tc.line)
70
- if len(got) != len(tc.want) {
71
- t.Fatalf("%q: markers=%v want %v", tc.line, got, tc.want)
72
- }
73
- for i := range got {
74
- if got[i] != tc.want[i] {
75
- t.Fatalf("%q: marker[%d]=%q want %q", tc.line, i, got[i], tc.want[i])
76
- }
77
- }
78
- }
79
- }
80
-
81
- func TestAddedLinesFromDiffTracksPathsWithoutHits(t *testing.T) {
82
- diff := "diff --git a/a.go b/a.go\nindex 1..2 100644\n--- a/a.go\n+++ b/a.go\n@@ -1 +1,2 @@\n+fmt.Println(\"hi\")\ndiff --git a/b.go b/b.go\nindex 3..4 100644\n--- a/b.go\n+++ b/b.go\n@@ -5 +6 @@\n+\t// TODO later\n"
83
- hits, paths := addedLinesFromDiff(diff)
84
- if len(hits) != 1 || hits[0].Path != "b.go" || hits[0].Line != 6 || hits[0].Marker != "TODO" {
85
- t.Fatalf("hits=%v", hits)
86
- }
87
- if !paths["a.go"] || !paths["b.go"] {
88
- t.Fatalf("diffPaths=%v", paths)
89
- }
90
- }
91
-
92
- func TestAddedLinesFromDiffSkipsDeletedAndBinary(t *testing.T) {
93
- diff := "diff --git a/gone.go b/gone.go\nindex 1..2 100644\n--- a/gone.go\n+++ /dev/null\n@@ -1 +0,0 @@\n-// TODO removed\ndiff --git a/bin b/bin\nindex 1..2 100644\nBinary files a/bin and b/bin differ\n"
94
- hits, paths := addedLinesFromDiff(diff)
95
- if len(hits) != 0 {
96
- t.Fatalf("hits=%v", hits)
97
- }
98
- if paths["gone.go"] {
99
- t.Fatal("deleted path recorded as new-side path")
100
- }
101
- }
102
-
103
- func TestCheckWindowsBlocksUnwaivedWorktreeMarker(t *testing.T) {
104
- project := t.TempDir()
105
- initWindowsRepo(t, project)
106
- root := windowsWorkspace(t, project, "feat")
107
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n\nfunc A() {}\n")
108
- runSecretScanGit(t, project, "add", "--", "a.go")
109
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
110
- testutil.AppendFile(t, filepath.Join(project, "a.go"), "\n// TODO: wire retry\n")
111
-
112
- var out, errBuf bytes.Buffer
113
- code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf)
114
- if code != 3 {
115
- t.Fatalf("code=%d out=%q err=%q", code, out.String(), errBuf.String())
116
- }
117
- if !strings.Contains(out.String(), "unwaived: a.go:5 TODO") {
118
- t.Fatalf("out=%q", out.String())
119
- }
120
- }
121
-
122
- func TestCheckWindowsWaivedRowPasses(t *testing.T) {
123
- project := t.TempDir()
124
- initWindowsRepo(t, project)
125
- root := windowsWorkspace(t, project, "feat")
126
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n")
127
- runSecretScanGit(t, project, "add", "--", "a.go")
128
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
129
- testutil.AppendFile(t, filepath.Join(project, "a.go"), "// HACK: hotfix until v2\n")
130
- testutil.WriteFile(t, filepath.Join(root, "work", "feat", "windows.md"),
131
- "# Deferred\n\n- a.go | HACK | follow-up tracked in next slice\n")
132
-
133
- var out, errBuf bytes.Buffer
134
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 0 {
135
- t.Fatalf("code=%d out=%q err=%q", code, out.String(), errBuf.String())
136
- }
137
- if !strings.Contains(out.String(), "all waived") {
138
- t.Fatalf("out=%q", out.String())
139
- }
140
- }
141
-
142
- func TestCheckWindowsIgnoresPreexistingMarkers(t *testing.T) {
143
- project := t.TempDir()
144
- initWindowsRepo(t, project)
145
- root := windowsWorkspace(t, project, "feat")
146
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n\n// TODO: pre-existing debt\n")
147
- runSecretScanGit(t, project, "add", "--", "a.go")
148
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
149
- testutil.AppendFile(t, filepath.Join(project, "a.go"), "\nfunc Clean() {}\n")
150
-
151
- var out, errBuf bytes.Buffer
152
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 0 {
153
- t.Fatalf("pre-existing marker flagged: code=%d out=%q", code, out.String())
154
- }
155
- }
156
-
157
- func TestCheckWindowsScansUntrackedAndSkipsDevrites(t *testing.T) {
158
- project := t.TempDir()
159
- initWindowsRepo(t, project)
160
- root := windowsWorkspace(t, project, "feat")
161
- testutil.WriteFile(t, filepath.Join(project, "b.go"), "package b\n\n// FIXME: fresh file\n")
162
- testutil.WriteFile(t, filepath.Join(project, ".devrites", "scratch.md"), "TODO: not product code\n")
163
-
164
- var out, errBuf bytes.Buffer
165
- code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf)
166
- if code != 3 {
167
- t.Fatalf("code=%d out=%q", code, out.String())
168
- }
169
- if !strings.Contains(out.String(), "unwaived: b.go:3 FIXME") {
170
- t.Fatalf("out=%q", out.String())
171
- }
172
- if strings.Contains(out.String(), "scratch.md") {
173
- t.Fatalf(".devrites path flagged: %q", out.String())
174
- }
175
- }
176
-
177
- func TestCheckWindowsStagedMode(t *testing.T) {
178
- project := t.TempDir()
179
- initWindowsRepo(t, project)
180
- root := windowsWorkspace(t, project, "feat")
181
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n")
182
- runSecretScanGit(t, project, "add", "--", "a.go")
183
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
184
- testutil.AppendFile(t, filepath.Join(project, "a.go"), "// XXX: staged stub\n")
185
- runSecretScanGit(t, project, "add", "--", "a.go")
186
-
187
- var out, errBuf bytes.Buffer
188
- if code := RunCheckWindows(root, []string{"feat", "--staged"}, &out, &errBuf); code != 3 {
189
- t.Fatalf("code=%d out=%q", code, out.String())
190
- }
191
- }
192
-
193
- func TestCheckWindowsUnbornHEADScansAll(t *testing.T) {
194
- project := t.TempDir()
195
- initWindowsRepo(t, project)
196
- root := windowsWorkspace(t, project, "feat")
197
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n\n// TODO: first commit pending\n")
198
-
199
- var out, errBuf bytes.Buffer
200
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 3 {
201
- t.Fatalf("unborn HEAD: code=%d out=%q err=%q", code, out.String(), errBuf.String())
202
- }
203
- }
204
-
205
- func TestCheckWindowsMalformedWaiverWarnsAndBlocks(t *testing.T) {
206
- project := t.TempDir()
207
- initWindowsRepo(t, project)
208
- root := windowsWorkspace(t, project, "feat")
209
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n")
210
- runSecretScanGit(t, project, "add", "--", "a.go")
211
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
212
- testutil.AppendFile(t, filepath.Join(project, "a.go"), "// TODO: needs waiver\n")
213
- testutil.WriteFile(t, filepath.Join(root, "work", "feat", "windows.md"), "- a.go | TODO |\n")
214
-
215
- var out, errBuf bytes.Buffer
216
- code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf)
217
- if code != 3 {
218
- t.Fatalf("code=%d out=%q", code, out.String())
219
- }
220
- if !strings.Contains(out.String(), "no reason") {
221
- t.Fatalf("missing empty-reason warning: %q", out.String())
222
- }
223
- }
224
-
225
- func TestCheckWindowsBaseModeScopesToFeatureDiff(t *testing.T) {
226
- project := t.TempDir()
227
- initWindowsRepo(t, project)
228
- root := windowsWorkspace(t, project, "feat")
229
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n")
230
- runSecretScanGit(t, project, "add", "--", "a.go")
231
- runSecretScanGit(t, project, "commit", "-qm", "base")
232
- runSecretScanGit(t, project, "rev-parse", "HEAD")
233
- testutil.WriteFile(t, filepath.Join(project, "feat.go"), "package feat\n\n// TODO: slice 2\n")
234
- runSecretScanGit(t, project, "add", "--", "feat.go")
235
- runSecretScanGit(t, project, "commit", "-qm", "feature commit")
236
- // `git diff <base>` is base→worktree: an uncommitted marker still flags.
237
- testutil.AppendFile(t, filepath.Join(project, "a.go"), "// FIXME: uncommitted follow-up\n")
238
-
239
- var out, errBuf bytes.Buffer
240
- code := RunCheckWindows(root, []string{"feat", "--base", "HEAD~1"}, &out, &errBuf)
241
- if code != 3 {
242
- t.Fatalf("code=%d out=%q err=%q", code, out.String(), errBuf.String())
243
- }
244
- if !strings.Contains(out.String(), "unwaived: feat.go:3 TODO") ||
245
- !strings.Contains(out.String(), "unwaived: a.go:2 FIXME") {
246
- t.Fatalf("out=%q", out.String())
247
- }
248
- }
249
-
250
- func TestCheckWindowsUsageErrors(t *testing.T) {
251
- project := t.TempDir()
252
- root := windowsWorkspace(t, project, "feat")
253
- var out, errBuf bytes.Buffer
254
- if code := RunCheckWindows(root, nil, &out, &errBuf); code != 2 {
255
- t.Fatalf("no slug: code=%d", code)
256
- }
257
- errBuf.Reset()
258
- if code := RunCheckWindows(root, []string{"feat", "--base"}, &out, &errBuf); code != 2 {
259
- t.Fatalf("missing base ref: code=%d", code)
260
- }
261
- }
262
-
263
- // TestCheckWindowsUntrackedScopePerMode pins which modes scan an untracked file.
264
- // The whole-file scan is inside the worktree branch because neither `git diff
265
- // HEAD` nor `git diff --cached` nor `git diff <ref>` reports an untracked path;
266
- // staged and base modes read the index and the tracked diff only. This is the
267
- // behaviour half of the drift guard in
268
- // TestWindowsStandardScopesUntrackedFiles.
269
- func TestCheckWindowsUntrackedScopePerMode(t *testing.T) {
270
- project := t.TempDir()
271
- initWindowsRepo(t, project)
272
- root := windowsWorkspace(t, project, "feat")
273
- testutil.WriteFile(t, filepath.Join(project, "base.go"), "package base\n")
274
- runSecretScanGit(t, project, "add", "--", "base.go")
275
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
276
- // Never staged: only the whole-file scan can see this marker.
277
- testutil.WriteFile(t, filepath.Join(project, "new.go"), "package n\n\n// TODO: untracked\n")
278
-
279
- var out, errBuf bytes.Buffer
280
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 3 {
281
- t.Fatalf("--worktree must scan untracked files: code=%d out=%q err=%q", code, out.String(), errBuf.String())
282
- }
283
- if !strings.Contains(out.String(), "unwaived: new.go:3 TODO") {
284
- t.Fatalf("--worktree must report the untracked marker: out=%q", out.String())
285
- }
286
- for _, args := range [][]string{{"feat", "--staged"}, {"feat", "--base", "HEAD"}} {
287
- out.Reset()
288
- errBuf.Reset()
289
- if code := RunCheckWindows(root, args, &out, &errBuf); code != 0 {
290
- t.Fatalf("%v covers the tracked diff only, so an untracked file is out of scope: code=%d out=%q", args, code, out.String())
291
- }
292
- }
293
- }
294
-
295
- // TestWindowsStandardScopesUntrackedFiles keeps windows.md honest about the
296
- // scope each diff mode has. The standard states the untracked-file guarantee
297
- // next to the list of modes, so an unqualified claim reads as covering all
298
- // three; --staged and --base then pass on a workspace holding a not-yet-staged
299
- // marker. The assertions pair with TestCheckWindowsUntrackedScopePerMode:
300
- // changing either the engine's per-mode scope or the wording requires changing
301
- // both.
302
- func TestWindowsStandardScopesUntrackedFiles(t *testing.T) {
303
- raw, err := os.ReadFile(windowsStandardPath)
304
- if err != nil {
305
- t.Fatalf("read canonical standard: %v", err)
306
- }
307
- prose := strings.Join(strings.Fields(string(raw)), " ")
308
- if !windowsWorktreeScopeRe.MatchString(prose) {
309
- t.Errorf("%s must scope the untracked-file guarantee to --worktree mode: no unqualified or wrong-mode claim found", windowsStandardPath)
310
- }
311
- if !windowsOtherModeLimitRe.MatchString(prose) {
312
- t.Errorf("%s must state that --staged and --base cover the tracked diff only", windowsStandardPath)
313
- }
314
- if strings.Contains(prose, windowsUnscopedClaim) {
315
- t.Errorf("%s still states the untracked-file guarantee with no mode qualifier (%q); --staged and --base do not scan untracked files", windowsStandardPath, windowsUnscopedClaim)
316
- }
317
- }
318
-
319
- // TestCheckWindowsFailsWhenStatusScanFails pins that a failed untracked-file
320
- // listing is an error, never a clean result: the whole-file scan is the only
321
- // reader of untracked files, so skipping it silently leaves them unexamined.
322
- func TestCheckWindowsFailsWhenStatusScanFails(t *testing.T) {
323
- project := t.TempDir()
324
- initWindowsRepo(t, project)
325
- root := windowsWorkspace(t, project, "feat")
326
- testutil.WriteFile(t, filepath.Join(project, "a.go"), "package a\n")
327
- runSecretScanGit(t, project, "add", "--", "a.go")
328
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
329
- testutil.WriteFile(t, filepath.Join(project, "new.go"), "package n\n\n// TODO: untracked\n")
330
- // git status rejects this value; git diff never reads it.
331
- runSecretScanGit(t, project, "config", "status.renames", "bogus")
332
-
333
- var out, errBuf bytes.Buffer
334
- code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf)
335
- if code == 0 || strings.Contains(out.String(), "windows: ok") {
336
- t.Fatalf("status failure must not report clean: code=%d out=%q err=%q", code, out.String(), errBuf.String())
337
- }
338
- if !strings.Contains(errBuf.String(), "windows:") {
339
- t.Fatalf("status failure must be reported on stderr: err=%q", errBuf.String())
340
- }
341
- }
342
-
343
- func TestRemovedTestHits(t *testing.T) {
344
- diff := "diff --git a/old_test.go b/old_test.go\ndeleted file mode 100644\n--- a/old_test.go\n+++ /dev/null\n@@ -1,2 +0,0 @@\n-package a\n-\tassert(true)\n" +
345
- "diff --git a/a_test.go b/a_test.go\n--- a/a_test.go\n+++ b/a_test.go\n@@ -3,2 +3,0 @@\n-\tif got != 1 { t.Fatalf(\"got %d\", got) }\n-\trequire.NoError(t, err)\n" +
346
- "diff --git a/moved.test.ts b/moved.test.ts\n--- a/moved.test.ts\n+++ b/moved.test.ts\n@@ -2 +2,0 @@\n- expect(x).toBe(1)\n@@ -9,0 +9 @@\n+ expect(x).toBe(1)\n" +
347
- "diff --git a/lib.go b/lib.go\n--- a/lib.go\n+++ b/lib.go\n@@ -1 +0,0 @@\n-\tassert(ok)\n" +
348
- "diff --git a/gone.go b/gone.go\ndeleted file mode 100644\n--- a/gone.go\n+++ /dev/null\n@@ -1 +0,0 @@\n-package a\n"
349
- hits := removedTestHits(diff)
350
- if len(hits) != 2 {
351
- t.Fatalf("hits=%+v", hits)
352
- }
353
- if hits[0].Path != "old_test.go" || hits[0].Marker != "deleted-test" {
354
- t.Fatalf("deleted test hit=%+v", hits[0])
355
- }
356
- if hits[1].Path != "a_test.go" || hits[1].Marker != "removed-assertion" || !strings.Contains(hits[1].Text, "net -2") {
357
- t.Fatalf("removed assertion hit=%+v", hits[1])
358
- }
359
- }
360
-
361
- func TestIsTestPath(t *testing.T) {
362
- for p, want := range map[string]bool{
363
- "pkg/a_test.go": true, "src/a.test.ts": true, "src/a.spec.js": true,
364
- "tests/test_api.py": true, "spec/user_spec.rb": true, "src/__tests__/a.js": true,
365
- "FooTest.java": true, "tests/integration.rs": true,
366
- "pkg/a.go": false, "src/latest.ts": false, "tests/fixture.json": false, "contest.py": false,
367
- } {
368
- if got := isTestPath(p); got != want {
369
- t.Fatalf("isTestPath(%q)=%v want %v", p, got, want)
370
- }
371
- }
372
- }
373
-
374
- func TestCheckWindowsBlocksLoweredBarUntilWaived(t *testing.T) {
375
- project := t.TempDir()
376
- initWindowsRepo(t, project)
377
- root := windowsWorkspace(t, project, "feat")
378
- testutil.WriteFile(t, filepath.Join(project, "a_test.go"), "package a\n\nfunc TestA(t *testing.T) {\n\tif A() != 1 {\n\t\tt.Fatal(\"bad\")\n\t}\n}\n")
379
- testutil.WriteFile(t, filepath.Join(project, "b_test.go"), "package a\n")
380
- runSecretScanGit(t, project, "add", "--", "a_test.go", "b_test.go")
381
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
382
- testutil.WriteFile(t, filepath.Join(project, "a_test.go"), "package a\n\nfunc TestA(t *testing.T) {\n\t_ = A()\n}\n")
383
- if err := os.Remove(filepath.Join(project, "b_test.go")); err != nil {
384
- t.Fatal(err)
385
- }
386
-
387
- var out, errBuf bytes.Buffer
388
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 3 {
389
- t.Fatalf("code=%d out=%q err=%q", code, out.String(), errBuf.String())
390
- }
391
- for _, want := range []string{"unwaived: a_test.go removed-assertion", "unwaived: b_test.go deleted-test"} {
392
- if !strings.Contains(out.String(), want) {
393
- t.Fatalf("missing %q in out=%q", want, out.String())
394
- }
395
- }
396
-
397
- testutil.WriteFile(t, filepath.Join(root, "work", "feat", "windows.md"),
398
- "- a_test.go | removed-assertion | assertion moved to TestB in SLICE-002\n- b_test.go | deleted-test | feature removed per spec AC-3\n")
399
- out.Reset()
400
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 0 {
401
- t.Fatalf("waived: code=%d out=%q", code, out.String())
402
- }
403
- }
404
-
405
- func TestCheckWindowsRenamedTestIsNotDeleted(t *testing.T) {
406
- project := t.TempDir()
407
- initWindowsRepo(t, project)
408
- root := windowsWorkspace(t, project, "feat")
409
- runSecretScanGit(t, project, "config", "diff.renames", "false")
410
- body := "package a\n\nfunc TestA(t *testing.T) {\n\tif A() != 1 {\n\t\tt.Fatal(\"bad\")\n\t}\n}\n"
411
- testutil.WriteFile(t, filepath.Join(project, "a_test.go"), body)
412
- runSecretScanGit(t, project, "add", "--", "a_test.go")
413
- runSecretScanGit(t, project, "commit", "-qm", "baseline")
414
- runSecretScanGit(t, project, "mv", "a_test.go", "b_test.go")
415
-
416
- var out, errBuf bytes.Buffer
417
- if code := RunCheckWindows(root, []string{"feat"}, &out, &errBuf); code != 0 {
418
- t.Fatalf("rename flagged: code=%d out=%q err=%q", code, out.String(), errBuf.String())
419
- }
420
- }