devrites 5.10.2 → 5.12.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 (1033) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +24 -10
  3. package/bin/devrites.mjs +2 -0
  4. package/docs/agents/issue-driven-rites.md +1 -1
  5. package/docs/agents/issue-tracker.md +3 -0
  6. package/docs/cli.md +90 -0
  7. package/docs/command-map.md +9 -6
  8. package/docs/engine/commands.md +21 -0
  9. package/docs/engine/state-schema.md +1 -1
  10. package/docs/engine/workspace-schema.md +10 -2
  11. package/docs/skills.md +10 -4
  12. package/docs/usage.md +2 -0
  13. package/engine/commands.go +11 -5
  14. package/engine/help.go +80 -3
  15. package/engine/help_test.go +7 -1
  16. package/engine/internal/acceptance/acceptance_test.go +655 -0
  17. package/engine/internal/acceptance/approve.go +142 -0
  18. package/engine/internal/acceptance/cli.go +426 -0
  19. package/engine/internal/acceptance/evidence.go +139 -0
  20. package/engine/internal/acceptance/exec.go +131 -0
  21. package/engine/internal/acceptance/exec_unix.go +22 -0
  22. package/engine/internal/acceptance/exec_windows.go +16 -0
  23. package/engine/internal/acceptance/ledger.go +259 -0
  24. package/engine/internal/acceptance/lint.go +115 -0
  25. package/engine/internal/acceptance/run.go +207 -0
  26. package/engine/internal/acceptance/scaffold.go +55 -0
  27. package/engine/internal/devritespaths/paths.go +2 -0
  28. package/engine/internal/gate/gate.go +12 -2
  29. package/engine/internal/gate/gate_test.go +17 -9
  30. package/engine/internal/gate/gates_ledger.go +76 -0
  31. package/engine/internal/gate/readiness_binding.go +39 -0
  32. package/engine/internal/gate/readiness_binding_test.go +4 -3
  33. package/engine/internal/hostpack/hostpack.go +39 -5
  34. package/engine/internal/hostpack/hostpack_test.go +27 -13
  35. package/engine/internal/install/apply.go +17 -4
  36. package/engine/internal/install/install.go +16 -3
  37. package/engine/internal/install/install_test.go +32 -6
  38. package/engine/internal/install/merge.go +82 -22
  39. package/engine/internal/install/preflight.go +8 -2
  40. package/engine/internal/install/update.go +8 -2
  41. package/engine/internal/install/workspace_advisory.go +46 -0
  42. package/engine/internal/install/workspace_advisory_test.go +54 -0
  43. package/engine/internal/lib/candidate_test.go +1 -1
  44. package/engine/internal/lib/claims.go +411 -0
  45. package/engine/internal/lib/claims_test.go +182 -0
  46. package/engine/internal/lib/closeout_test.go +3 -3
  47. package/engine/internal/lib/context.go +445 -0
  48. package/engine/internal/lib/context_next_test.go +521 -0
  49. package/engine/internal/lib/detect.go +346 -0
  50. package/engine/internal/lib/detect_test.go +105 -0
  51. package/engine/internal/lib/diffscope.go +189 -0
  52. package/engine/internal/lib/dispatch.go +302 -0
  53. package/engine/internal/lib/drift.go +219 -0
  54. package/engine/internal/lib/drift_test.go +106 -0
  55. package/engine/internal/lib/dup.go +1243 -0
  56. package/engine/internal/lib/dup_test.go +488 -0
  57. package/engine/internal/lib/environment_report.go +1 -0
  58. package/engine/internal/lib/environment_report_test.go +2 -2
  59. package/engine/internal/lib/handoff.go +194 -0
  60. package/engine/internal/lib/handoff_test.go +83 -0
  61. package/engine/internal/lib/manifest_union_test.go +1 -1
  62. package/engine/internal/lib/metrics.go +256 -0
  63. package/engine/internal/lib/migrate_test.go +6 -6
  64. package/engine/internal/lib/next.go +155 -0
  65. package/engine/internal/lib/observe_budgets_test.go +3 -3
  66. package/engine/internal/lib/regression.go +378 -0
  67. package/engine/internal/lib/regression_test.go +179 -0
  68. package/engine/internal/lib/resolve_remediation_test.go +1 -1
  69. package/engine/internal/lib/secretscan_test.go +1 -1
  70. package/engine/internal/lib/slicecheck.go +179 -0
  71. package/engine/internal/lib/slicecheck_test.go +111 -0
  72. package/engine/internal/lib/taskgraph_test.go +2 -2
  73. package/engine/internal/lib/triggers.go +133 -0
  74. package/engine/internal/lib/windows.go +353 -0
  75. package/engine/internal/lib/windows_test.go +237 -0
  76. package/engine/internal/notes/cli.go +349 -0
  77. package/engine/internal/notes/notes.go +384 -0
  78. package/engine/internal/notes/notes_test.go +173 -0
  79. package/engine/internal/parallel/lease.go +3 -8
  80. package/engine/internal/parallel/parallel_test.go +34 -0
  81. package/engine/internal/state/budgets.go +13 -8
  82. package/engine/internal/state/observation_test.go +1 -0
  83. package/engine/internal/state/schema.go +4 -3
  84. package/engine/internal/state/state_test.go +3 -3
  85. package/engine/internal/state/workflow_manifest.json +13 -4
  86. package/engine/internal/state/workspaceschema_test.go +2 -2
  87. package/engine/internal/testutil/testutil.go +4 -0
  88. package/engine/main.go +59 -0
  89. package/engine/note_routing_test.go +95 -0
  90. package/engine/observation_contract_test.go +1 -0
  91. package/engine/root_routing_test.go +13 -3
  92. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/gates.md +4 -0
  93. package/engine/testdata/fixtures/basic/devrites-root/work/auth-tokens/state.md +1 -1
  94. package/engine/testdata/fixtures/basic/devrites-root/work/search-ranking/state.md +1 -1
  95. package/engine/testdata/golden/TestParityResolve/answer/state.md.golden +1 -1
  96. package/engine/testdata/golden/TestParityResolve/drop/state.md.golden +1 -1
  97. package/engine/tests/adr_0027_readiness_binding_test.go +1 -0
  98. package/engine/tests/gate_test.go +3 -0
  99. package/engine/tests/parity_closeout_test.go +3 -3
  100. package/engine/tests/parity_resolve_test.go +1 -1
  101. package/engine/tests/workspace_observation_migration_test.go +8 -4
  102. package/install.sh +4 -1
  103. package/pack/.claude/agents/_shared/composition-findings.md +1 -0
  104. package/pack/.claude/agents/_shared/composition-result.md +1 -0
  105. package/pack/.claude/agents/_shared/result-admission.md +3 -0
  106. package/pack/.claude/agents/_shared/untrusted-input-devex.md +1 -0
  107. package/pack/.claude/agents/_shared/untrusted-input-retrospector.md +1 -0
  108. package/pack/.claude/agents/_shared/untrusted-input.md +1 -0
  109. package/pack/.claude/agents/devrites-code-reviewer.md +19 -3
  110. package/pack/.claude/agents/devrites-devex-reviewer.md +3 -3
  111. package/pack/.claude/agents/devrites-doubt-reviewer.md +3 -3
  112. package/pack/.claude/agents/devrites-evidence-scout.md +3 -3
  113. package/pack/.claude/agents/devrites-frontend-reviewer.md +3 -3
  114. package/pack/.claude/agents/devrites-performance-reviewer.md +3 -3
  115. package/pack/.claude/agents/devrites-plan-drafter.md +3 -3
  116. package/pack/.claude/agents/devrites-plan-reviewer.md +3 -3
  117. package/pack/.claude/agents/devrites-proof-runner.md +3 -3
  118. package/pack/.claude/agents/devrites-retrospector.md +3 -3
  119. package/pack/.claude/agents/devrites-security-auditor.md +25 -3
  120. package/pack/.claude/agents/devrites-simplifier-reviewer.md +15 -5
  121. package/pack/.claude/agents/devrites-slice-wright.md +3 -3
  122. package/pack/.claude/agents/devrites-spec-reviewer.md +3 -3
  123. package/pack/.claude/agents/devrites-strategy-reviewer.md +3 -3
  124. package/pack/.claude/agents/devrites-test-analyst.md +3 -3
  125. package/pack/.claude/agents/devrites-upgrade-planner.md +3 -3
  126. package/pack/.claude/settings.json +39 -2
  127. package/pack/.claude/skills/devrites-api-interface/SKILL.md +2 -0
  128. package/pack/.claude/skills/devrites-audit/SKILL.md +9 -0
  129. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +2 -0
  130. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +2 -0
  131. package/pack/.claude/skills/devrites-doubt/SKILL.md +2 -0
  132. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +2 -0
  133. package/pack/.claude/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  134. package/pack/.claude/skills/devrites-frontend-craft/reference/shape.md +5 -0
  135. package/pack/.claude/skills/devrites-interview/SKILL.md +5 -0
  136. package/pack/.claude/skills/devrites-lib/SKILL.md +40 -5
  137. package/pack/.claude/skills/devrites-lib/reference/_shared/reslice-autocomplete.md +3 -0
  138. package/pack/.claude/skills/devrites-lib/reference/_shared/reslice-plan.md +3 -0
  139. package/pack/.claude/skills/devrites-lib/reference/_shared/reslice-vet.md +3 -0
  140. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  141. package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  142. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  143. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +24 -1
  144. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +10 -0
  145. package/pack/.claude/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  146. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  147. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +21 -1
  148. package/pack/.claude/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  149. package/pack/.claude/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  150. package/pack/.claude/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  151. package/pack/.claude/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  152. package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  153. package/pack/.claude/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  154. package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  155. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +67 -7
  156. package/pack/.claude/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  157. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  158. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +10 -1
  159. package/pack/.claude/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  160. package/pack/.claude/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  161. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  162. package/pack/.claude/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  163. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  164. package/pack/.claude/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  165. package/pack/.claude/skills/devrites-lib/reference/standards/documentation.md +12 -0
  166. package/pack/.claude/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  167. package/pack/.claude/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  168. package/pack/.claude/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  169. package/pack/.claude/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  170. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +117 -0
  171. package/pack/.claude/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  172. package/pack/.claude/skills/devrites-lib/reference/standards/glossary.md +40 -0
  173. package/pack/.claude/skills/devrites-lib/reference/standards/hooks.md +16 -0
  174. package/pack/.claude/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  175. package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  176. package/pack/.claude/skills/devrites-lib/reference/standards/observability.md +2 -0
  177. package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  178. package/pack/.claude/skills/devrites-lib/reference/standards/patterns.md +2 -0
  179. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +8 -1
  180. package/pack/.claude/skills/devrites-lib/reference/standards/principles.md +14 -0
  181. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  182. package/pack/.claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  183. package/pack/.claude/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  184. package/pack/.claude/skills/devrites-lib/reference/standards/review/README.md +23 -0
  185. package/pack/.claude/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  186. package/pack/.claude/skills/devrites-lib/reference/standards/review/default.md +42 -0
  187. package/pack/.claude/skills/devrites-lib/reference/standards/review/go.md +47 -0
  188. package/pack/.claude/skills/devrites-lib/reference/standards/review/python.md +46 -0
  189. package/pack/.claude/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  190. package/pack/.claude/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  191. package/pack/.claude/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  192. package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  193. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +58 -6
  194. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  195. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  196. package/pack/.claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  197. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +19 -2
  198. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +12 -0
  199. package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  200. package/pack/.claude/skills/devrites-lib/reference/standards/windows.md +51 -0
  201. package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  202. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  203. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +3 -1
  204. package/pack/.claude/skills/devrites-source-driven/SKILL.md +2 -0
  205. package/pack/.claude/skills/devrites-ux-shape/SKILL.md +2 -0
  206. package/pack/.claude/skills/rite/SKILL.md +2 -0
  207. package/pack/.claude/skills/rite-adopt/SKILL.md +2 -0
  208. package/pack/.claude/skills/rite-autocomplete/SKILL.md +7 -4
  209. package/pack/.claude/skills/rite-autocomplete/reference/decision-policy.md +1 -3
  210. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +8 -4
  211. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +1 -3
  212. package/pack/.claude/skills/rite-build/SKILL.md +28 -14
  213. package/pack/.claude/skills/rite-build/reference/checkpoint.md +6 -0
  214. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +11 -2
  215. package/pack/.claude/skills/rite-build/reference/phase-contract.md +8 -4
  216. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +34 -8
  217. package/pack/.claude/skills/rite-clarify/SKILL.md +4 -0
  218. package/pack/.claude/skills/rite-converge/SKILL.md +14 -2
  219. package/pack/.claude/skills/rite-customize/SKILL.md +2 -0
  220. package/pack/.claude/skills/rite-define/SKILL.md +8 -2
  221. package/pack/.claude/skills/rite-doctor/SKILL.md +6 -1
  222. package/pack/.claude/skills/rite-dogfood/SKILL.md +2 -0
  223. package/pack/.claude/skills/rite-explain/SKILL.md +2 -0
  224. package/pack/.claude/skills/rite-frame/SKILL.md +4 -0
  225. package/pack/.claude/skills/rite-handoff/SKILL.md +8 -1
  226. package/pack/.claude/skills/rite-learn/SKILL.md +2 -0
  227. package/pack/.claude/skills/rite-plan/SKILL.md +7 -3
  228. package/pack/.claude/skills/rite-plan/reference/anti-patterns.md +1 -3
  229. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +1 -3
  230. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +3 -1
  231. package/pack/.claude/skills/rite-polish/SKILL.md +13 -2
  232. package/pack/.claude/skills/rite-polish/reference/code.md +6 -1
  233. package/pack/.claude/skills/rite-polish/reference/ledger.md +3 -1
  234. package/pack/.claude/skills/rite-pov/SKILL.md +2 -0
  235. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +2 -0
  236. package/pack/.claude/skills/rite-pressure-test/SKILL.md +2 -0
  237. package/pack/.claude/skills/rite-prototype/SKILL.md +2 -0
  238. package/pack/.claude/skills/rite-prove/SKILL.md +17 -3
  239. package/pack/.claude/skills/rite-prove/reference/test-command-discovery.md +6 -0
  240. package/pack/.claude/skills/rite-quick/SKILL.md +7 -1
  241. package/pack/.claude/skills/rite-resolve/SKILL.md +2 -0
  242. package/pack/.claude/skills/rite-review/SKILL.md +5 -1
  243. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +14 -3
  244. package/pack/.claude/skills/rite-seal/SKILL.md +27 -3
  245. package/pack/.claude/skills/rite-seal/reference/go-no-go.md +1 -0
  246. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +3 -1
  247. package/pack/.claude/skills/rite-ship/SKILL.md +5 -1
  248. package/pack/.claude/skills/rite-spec/SKILL.md +10 -3
  249. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +5 -0
  250. package/pack/.claude/skills/rite-status/SKILL.md +9 -0
  251. package/pack/.claude/skills/rite-temper/SKILL.md +5 -1
  252. package/pack/.claude/skills/rite-upgrade/SKILL.md +9 -1
  253. package/pack/.claude/skills/rite-vet/SKILL.md +29 -9
  254. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +1 -3
  255. package/pack/.claude/skills/rite-vet/reference/artifacts.md +20 -3
  256. package/pack/.claude/skills/rite-vet/reference/depth.md +1 -3
  257. package/pack/.claude/skills/rite-vet/reference/review-axes.md +6 -3
  258. package/pack/.claude/skills/rite-watch-pr/SKILL.md +2 -0
  259. package/pack/.claude/skills/rite-zoom-out/SKILL.md +2 -0
  260. package/pack/generated/README.md +4 -2
  261. package/pack/generated/claude/agents/devrites-code-reviewer.md +17 -1
  262. package/pack/generated/claude/agents/devrites-devex-reviewer.md +1 -1
  263. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +1 -1
  264. package/pack/generated/claude/agents/devrites-evidence-scout.md +1 -1
  265. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +1 -1
  266. package/pack/generated/claude/agents/devrites-performance-reviewer.md +1 -1
  267. package/pack/generated/claude/agents/devrites-plan-drafter.md +1 -1
  268. package/pack/generated/claude/agents/devrites-plan-reviewer.md +1 -1
  269. package/pack/generated/claude/agents/devrites-proof-runner.md +1 -1
  270. package/pack/generated/claude/agents/devrites-retrospector.md +1 -1
  271. package/pack/generated/claude/agents/devrites-security-auditor.md +23 -1
  272. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +13 -3
  273. package/pack/generated/claude/agents/devrites-slice-wright.md +1 -1
  274. package/pack/generated/claude/agents/devrites-spec-reviewer.md +1 -1
  275. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +1 -1
  276. package/pack/generated/claude/agents/devrites-test-analyst.md +1 -1
  277. package/pack/generated/claude/agents/devrites-upgrade-planner.md +1 -1
  278. package/pack/generated/claude/settings.json +39 -2
  279. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +2 -0
  280. package/pack/generated/claude/skills/devrites-audit/SKILL.md +9 -0
  281. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +2 -0
  282. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +2 -0
  283. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +2 -0
  284. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +2 -0
  285. package/pack/generated/claude/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  286. package/pack/generated/claude/skills/devrites-frontend-craft/reference/shape.md +5 -0
  287. package/pack/generated/claude/skills/devrites-interview/SKILL.md +5 -0
  288. package/pack/generated/claude/skills/devrites-lib/SKILL.md +40 -5
  289. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  290. package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  291. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  292. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +24 -1
  293. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +10 -0
  294. package/pack/generated/claude/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  295. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  296. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +21 -1
  297. package/pack/generated/claude/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  298. package/pack/generated/claude/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  299. package/pack/generated/claude/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  300. package/pack/generated/claude/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  301. package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  302. package/pack/generated/claude/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  303. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  304. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +67 -7
  305. package/pack/generated/claude/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  306. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  307. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +10 -1
  308. package/pack/generated/claude/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  309. package/pack/generated/claude/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  310. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  311. package/pack/generated/claude/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  312. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  313. package/pack/generated/claude/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  314. package/pack/generated/claude/skills/devrites-lib/reference/standards/documentation.md +12 -0
  315. package/pack/generated/claude/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  316. package/pack/generated/claude/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  317. package/pack/generated/claude/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  318. package/pack/generated/claude/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  319. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +117 -0
  320. package/pack/generated/claude/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  321. package/pack/generated/claude/skills/devrites-lib/reference/standards/glossary.md +40 -0
  322. package/pack/generated/claude/skills/devrites-lib/reference/standards/hooks.md +16 -0
  323. package/pack/generated/claude/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  324. package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  325. package/pack/generated/claude/skills/devrites-lib/reference/standards/observability.md +2 -0
  326. package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  327. package/pack/generated/claude/skills/devrites-lib/reference/standards/patterns.md +2 -0
  328. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +8 -1
  329. package/pack/generated/claude/skills/devrites-lib/reference/standards/principles.md +14 -0
  330. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  331. package/pack/generated/claude/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  332. package/pack/generated/claude/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  333. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/README.md +23 -0
  334. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  335. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/default.md +42 -0
  336. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/go.md +47 -0
  337. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/python.md +46 -0
  338. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  339. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  340. package/pack/generated/claude/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  341. package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  342. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +58 -6
  343. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  344. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  345. package/pack/generated/claude/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  346. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +19 -2
  347. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +12 -0
  348. package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  349. package/pack/generated/claude/skills/devrites-lib/reference/standards/windows.md +51 -0
  350. package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  351. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  352. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +3 -1
  353. package/pack/generated/claude/skills/devrites-source-driven/SKILL.md +2 -0
  354. package/pack/generated/claude/skills/devrites-ux-shape/SKILL.md +2 -0
  355. package/pack/generated/claude/skills/rite/SKILL.md +2 -0
  356. package/pack/generated/claude/skills/rite-adopt/SKILL.md +2 -0
  357. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +6 -1
  358. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -1
  359. package/pack/generated/claude/skills/rite-build/SKILL.md +28 -14
  360. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +6 -0
  361. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +11 -2
  362. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +8 -4
  363. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +34 -8
  364. package/pack/generated/claude/skills/rite-clarify/SKILL.md +4 -0
  365. package/pack/generated/claude/skills/rite-converge/SKILL.md +14 -2
  366. package/pack/generated/claude/skills/rite-customize/SKILL.md +2 -0
  367. package/pack/generated/claude/skills/rite-define/SKILL.md +8 -2
  368. package/pack/generated/claude/skills/rite-doctor/SKILL.md +6 -1
  369. package/pack/generated/claude/skills/rite-dogfood/SKILL.md +2 -0
  370. package/pack/generated/claude/skills/rite-explain/SKILL.md +2 -0
  371. package/pack/generated/claude/skills/rite-frame/SKILL.md +4 -0
  372. package/pack/generated/claude/skills/rite-handoff/SKILL.md +8 -1
  373. package/pack/generated/claude/skills/rite-learn/SKILL.md +2 -0
  374. package/pack/generated/claude/skills/rite-plan/SKILL.md +6 -0
  375. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +3 -1
  376. package/pack/generated/claude/skills/rite-polish/SKILL.md +13 -2
  377. package/pack/generated/claude/skills/rite-polish/reference/code.md +6 -1
  378. package/pack/generated/claude/skills/rite-polish/reference/ledger.md +3 -1
  379. package/pack/generated/claude/skills/rite-pov/SKILL.md +2 -0
  380. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +2 -0
  381. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +2 -0
  382. package/pack/generated/claude/skills/rite-prototype/SKILL.md +2 -0
  383. package/pack/generated/claude/skills/rite-prove/SKILL.md +17 -3
  384. package/pack/generated/claude/skills/rite-prove/reference/test-command-discovery.md +6 -0
  385. package/pack/generated/claude/skills/rite-quick/SKILL.md +7 -1
  386. package/pack/generated/claude/skills/rite-resolve/SKILL.md +2 -0
  387. package/pack/generated/claude/skills/rite-review/SKILL.md +5 -1
  388. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +14 -3
  389. package/pack/generated/claude/skills/rite-seal/SKILL.md +27 -3
  390. package/pack/generated/claude/skills/rite-seal/reference/go-no-go.md +1 -0
  391. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +3 -1
  392. package/pack/generated/claude/skills/rite-ship/SKILL.md +5 -1
  393. package/pack/generated/claude/skills/rite-spec/SKILL.md +10 -3
  394. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +5 -0
  395. package/pack/generated/claude/skills/rite-status/SKILL.md +9 -0
  396. package/pack/generated/claude/skills/rite-temper/SKILL.md +5 -1
  397. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +9 -1
  398. package/pack/generated/claude/skills/rite-vet/SKILL.md +28 -6
  399. package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +19 -0
  400. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +5 -0
  401. package/pack/generated/claude/skills/rite-watch-pr/SKILL.md +2 -0
  402. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +2 -0
  403. package/pack/generated/codex/agents/devrites-code-reviewer.toml +16 -0
  404. package/pack/generated/codex/agents/devrites-security-auditor.toml +22 -0
  405. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +12 -2
  406. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +2 -0
  407. package/pack/generated/codex/skills/devrites-audit/SKILL.md +9 -0
  408. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +2 -0
  409. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +2 -0
  410. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +2 -0
  411. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +2 -0
  412. package/pack/generated/codex/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  413. package/pack/generated/codex/skills/devrites-frontend-craft/reference/shape.md +5 -0
  414. package/pack/generated/codex/skills/devrites-interview/SKILL.md +5 -0
  415. package/pack/generated/codex/skills/devrites-lib/SKILL.md +40 -5
  416. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  417. package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  418. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  419. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +24 -1
  420. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +10 -0
  421. package/pack/generated/codex/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  422. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  423. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +21 -1
  424. package/pack/generated/codex/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  425. package/pack/generated/codex/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  426. package/pack/generated/codex/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  427. package/pack/generated/codex/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  428. package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  429. package/pack/generated/codex/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  430. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  431. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +67 -7
  432. package/pack/generated/codex/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  433. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  434. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +10 -1
  435. package/pack/generated/codex/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  436. package/pack/generated/codex/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  437. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  438. package/pack/generated/codex/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  439. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  440. package/pack/generated/codex/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  441. package/pack/generated/codex/skills/devrites-lib/reference/standards/documentation.md +12 -0
  442. package/pack/generated/codex/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  443. package/pack/generated/codex/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  444. package/pack/generated/codex/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  445. package/pack/generated/codex/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  446. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +117 -0
  447. package/pack/generated/codex/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  448. package/pack/generated/codex/skills/devrites-lib/reference/standards/glossary.md +40 -0
  449. package/pack/generated/codex/skills/devrites-lib/reference/standards/hooks.md +16 -0
  450. package/pack/generated/codex/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  451. package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  452. package/pack/generated/codex/skills/devrites-lib/reference/standards/observability.md +2 -0
  453. package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  454. package/pack/generated/codex/skills/devrites-lib/reference/standards/patterns.md +2 -0
  455. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +8 -1
  456. package/pack/generated/codex/skills/devrites-lib/reference/standards/principles.md +14 -0
  457. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  458. package/pack/generated/codex/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  459. package/pack/generated/codex/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  460. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/README.md +23 -0
  461. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  462. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/default.md +42 -0
  463. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/go.md +47 -0
  464. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/python.md +46 -0
  465. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  466. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  467. package/pack/generated/codex/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  468. package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  469. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +58 -6
  470. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  471. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  472. package/pack/generated/codex/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  473. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +19 -2
  474. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +12 -0
  475. package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  476. package/pack/generated/codex/skills/devrites-lib/reference/standards/windows.md +51 -0
  477. package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  478. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  479. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +3 -1
  480. package/pack/generated/codex/skills/devrites-source-driven/SKILL.md +2 -0
  481. package/pack/generated/codex/skills/devrites-ux-shape/SKILL.md +2 -0
  482. package/pack/generated/codex/skills/rite/SKILL.md +2 -0
  483. package/pack/generated/codex/skills/rite-adopt/SKILL.md +2 -0
  484. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +6 -1
  485. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -1
  486. package/pack/generated/codex/skills/rite-build/SKILL.md +28 -14
  487. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +6 -0
  488. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +11 -2
  489. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +8 -4
  490. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +34 -8
  491. package/pack/generated/codex/skills/rite-clarify/SKILL.md +4 -0
  492. package/pack/generated/codex/skills/rite-converge/SKILL.md +14 -2
  493. package/pack/generated/codex/skills/rite-customize/SKILL.md +2 -0
  494. package/pack/generated/codex/skills/rite-define/SKILL.md +8 -2
  495. package/pack/generated/codex/skills/rite-doctor/SKILL.md +6 -1
  496. package/pack/generated/codex/skills/rite-dogfood/SKILL.md +2 -0
  497. package/pack/generated/codex/skills/rite-explain/SKILL.md +2 -0
  498. package/pack/generated/codex/skills/rite-frame/SKILL.md +4 -0
  499. package/pack/generated/codex/skills/rite-handoff/SKILL.md +8 -1
  500. package/pack/generated/codex/skills/rite-learn/SKILL.md +2 -0
  501. package/pack/generated/codex/skills/rite-plan/SKILL.md +6 -0
  502. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +3 -1
  503. package/pack/generated/codex/skills/rite-polish/SKILL.md +13 -2
  504. package/pack/generated/codex/skills/rite-polish/reference/code.md +6 -1
  505. package/pack/generated/codex/skills/rite-polish/reference/ledger.md +3 -1
  506. package/pack/generated/codex/skills/rite-pov/SKILL.md +2 -0
  507. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +2 -0
  508. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +2 -0
  509. package/pack/generated/codex/skills/rite-prototype/SKILL.md +2 -0
  510. package/pack/generated/codex/skills/rite-prove/SKILL.md +17 -3
  511. package/pack/generated/codex/skills/rite-prove/reference/test-command-discovery.md +6 -0
  512. package/pack/generated/codex/skills/rite-quick/SKILL.md +7 -1
  513. package/pack/generated/codex/skills/rite-resolve/SKILL.md +2 -0
  514. package/pack/generated/codex/skills/rite-review/SKILL.md +5 -1
  515. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +14 -3
  516. package/pack/generated/codex/skills/rite-seal/SKILL.md +27 -3
  517. package/pack/generated/codex/skills/rite-seal/reference/go-no-go.md +1 -0
  518. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +3 -1
  519. package/pack/generated/codex/skills/rite-ship/SKILL.md +5 -1
  520. package/pack/generated/codex/skills/rite-spec/SKILL.md +10 -3
  521. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +5 -0
  522. package/pack/generated/codex/skills/rite-status/SKILL.md +9 -0
  523. package/pack/generated/codex/skills/rite-temper/SKILL.md +5 -1
  524. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +9 -1
  525. package/pack/generated/codex/skills/rite-vet/SKILL.md +28 -6
  526. package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +19 -0
  527. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +5 -0
  528. package/pack/generated/codex/skills/rite-watch-pr/SKILL.md +2 -0
  529. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +2 -0
  530. package/pack/generated/devin/AGENTS.md +23 -0
  531. package/pack/generated/devin/agents/devrites-code-reviewer.md +161 -0
  532. package/pack/generated/devin/agents/devrites-devex-reviewer.md +126 -0
  533. package/pack/generated/devin/agents/devrites-doubt-reviewer.md +91 -0
  534. package/pack/generated/devin/agents/devrites-evidence-scout.md +77 -0
  535. package/pack/generated/devin/agents/devrites-frontend-reviewer.md +119 -0
  536. package/pack/generated/devin/agents/devrites-performance-reviewer.md +117 -0
  537. package/pack/generated/devin/agents/devrites-plan-drafter.md +102 -0
  538. package/pack/generated/devin/agents/devrites-plan-reviewer.md +144 -0
  539. package/pack/generated/devin/agents/devrites-proof-runner.md +76 -0
  540. package/pack/generated/devin/agents/devrites-retrospector.md +64 -0
  541. package/pack/generated/devin/agents/devrites-security-auditor.md +134 -0
  542. package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +107 -0
  543. package/pack/generated/devin/agents/devrites-slice-wright.md +219 -0
  544. package/pack/generated/devin/agents/devrites-spec-reviewer.md +99 -0
  545. package/pack/generated/devin/agents/devrites-strategy-reviewer.md +102 -0
  546. package/pack/generated/devin/agents/devrites-test-analyst.md +97 -0
  547. package/pack/generated/devin/agents/devrites-upgrade-planner.md +91 -0
  548. package/pack/generated/devin/skills/devrites-api-interface/SKILL.md +66 -0
  549. package/pack/generated/devin/skills/devrites-audit/SKILL.md +60 -0
  550. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +79 -0
  551. package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  552. package/pack/generated/devin/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  553. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +99 -0
  554. package/pack/generated/devin/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  555. package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
  556. package/pack/generated/devin/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  557. package/pack/generated/devin/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  558. package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  559. package/pack/generated/devin/skills/devrites-debug-recovery/reference/trace.md +25 -0
  560. package/pack/generated/devin/skills/devrites-doubt/SKILL.md +82 -0
  561. package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +89 -0
  562. package/pack/generated/devin/skills/devrites-frontend-craft/reference/craft.md +63 -0
  563. package/pack/generated/devin/skills/devrites-frontend-craft/reference/design-references.md +120 -0
  564. package/pack/generated/devin/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
  565. package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
  566. package/pack/generated/devin/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
  567. package/pack/generated/devin/skills/devrites-frontend-craft/reference/shape.md +61 -0
  568. package/pack/generated/devin/skills/devrites-interview/SKILL.md +108 -0
  569. package/pack/generated/devin/skills/devrites-lib/SKILL.md +92 -0
  570. package/pack/generated/devin/skills/devrites-lib/reference/candidate-integrity.md +59 -0
  571. package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +64 -0
  572. package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +47 -0
  573. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +105 -0
  574. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +111 -0
  575. package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +70 -0
  576. package/pack/generated/devin/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +32 -0
  577. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +417 -0
  578. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +119 -0
  579. package/pack/generated/devin/skills/devrites-lib/reference/standards/anti-patterns.md +50 -0
  580. package/pack/generated/devin/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  581. package/pack/generated/devin/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  582. package/pack/generated/devin/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  583. package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +26 -0
  584. package/pack/generated/devin/skills/devrites-lib/reference/standards/ci-cd.md +61 -0
  585. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +110 -0
  586. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +168 -0
  587. package/pack/generated/devin/skills/devrites-lib/reference/standards/coding-style.md +53 -0
  588. package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +126 -0
  589. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +176 -0
  590. package/pack/generated/devin/skills/devrites-lib/reference/standards/data-integrity.md +140 -0
  591. package/pack/generated/devin/skills/devrites-lib/reference/standards/debug-recovery.md +42 -0
  592. package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +25 -0
  593. package/pack/generated/devin/skills/devrites-lib/reference/standards/deprecation.md +49 -0
  594. package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +121 -0
  595. package/pack/generated/devin/skills/devrites-lib/reference/standards/development-workflow.md +31 -0
  596. package/pack/generated/devin/skills/devrites-lib/reference/standards/documentation.md +55 -0
  597. package/pack/generated/devin/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  598. package/pack/generated/devin/skills/devrites-lib/reference/standards/edge-case-trace.md +94 -0
  599. package/pack/generated/devin/skills/devrites-lib/reference/standards/elicitation.md +114 -0
  600. package/pack/generated/devin/skills/devrites-lib/reference/standards/error-handling.md +49 -0
  601. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +117 -0
  602. package/pack/generated/devin/skills/devrites-lib/reference/standards/git-workflow.md +51 -0
  603. package/pack/generated/devin/skills/devrites-lib/reference/standards/glossary.md +40 -0
  604. package/pack/generated/devin/skills/devrites-lib/reference/standards/hooks.md +41 -0
  605. package/pack/generated/devin/skills/devrites-lib/reference/standards/integration-reliability.md +121 -0
  606. package/pack/generated/devin/skills/devrites-lib/reference/standards/loop-operations.md +116 -0
  607. package/pack/generated/devin/skills/devrites-lib/reference/standards/observability.md +90 -0
  608. package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +99 -0
  609. package/pack/generated/devin/skills/devrites-lib/reference/standards/patterns.md +70 -0
  610. package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +58 -0
  611. package/pack/generated/devin/skills/devrites-lib/reference/standards/principles.md +56 -0
  612. package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +126 -0
  613. package/pack/generated/devin/skills/devrites-lib/reference/standards/release/ship-checklist.md +12 -0
  614. package/pack/generated/devin/skills/devrites-lib/reference/standards/repository-topology.md +82 -0
  615. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/README.md +23 -0
  616. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  617. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/default.md +42 -0
  618. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/go.md +47 -0
  619. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/python.md +46 -0
  620. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  621. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  622. package/pack/generated/devin/skills/devrites-lib/reference/standards/review-checklist.md +14 -0
  623. package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +27 -0
  624. package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +254 -0
  625. package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +257 -0
  626. package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +211 -0
  627. package/pack/generated/devin/skills/devrites-lib/reference/standards/test-proof-checklist.md +18 -0
  628. package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +229 -0
  629. package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +104 -0
  630. package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  631. package/pack/generated/devin/skills/devrites-lib/reference/standards/windows.md +51 -0
  632. package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +429 -0
  633. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
  634. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
  635. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
  636. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
  637. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
  638. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
  639. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
  640. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
  641. package/pack/generated/devin/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
  642. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +292 -0
  643. package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +76 -0
  644. package/pack/generated/devin/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
  645. package/pack/generated/devin/skills/devrites-prose-craft/reference/examples.md +131 -0
  646. package/pack/generated/devin/skills/devrites-prose-craft/reference/structures.md +196 -0
  647. package/pack/generated/devin/skills/devrites-source-driven/SKILL.md +55 -0
  648. package/pack/generated/devin/skills/devrites-ux-shape/SKILL.md +137 -0
  649. package/pack/generated/devin/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  650. package/pack/generated/devin/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  651. package/pack/generated/devin/skills/rite/SKILL.md +150 -0
  652. package/pack/generated/devin/skills/rite/reference/menu.md +48 -0
  653. package/pack/generated/devin/skills/rite-adopt/SKILL.md +53 -0
  654. package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +19 -0
  655. package/pack/generated/devin/skills/rite-adopt/reference/anti-patterns.md +19 -0
  656. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +147 -0
  657. package/pack/generated/devin/skills/rite-autocomplete/reference/decision-policy.md +43 -0
  658. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +157 -0
  659. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +97 -0
  660. package/pack/generated/devin/skills/rite-build/SKILL.md +116 -0
  661. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +148 -0
  662. package/pack/generated/devin/skills/rite-build/reference/anti-patterns.md +27 -0
  663. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +120 -0
  664. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +62 -0
  665. package/pack/generated/devin/skills/rite-build/reference/frontend-trigger.md +39 -0
  666. package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +51 -0
  667. package/pack/generated/devin/skills/rite-build/reference/output.md +33 -0
  668. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +223 -0
  669. package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +93 -0
  670. package/pack/generated/devin/skills/rite-build/reference/spec-drift-guard.md +84 -0
  671. package/pack/generated/devin/skills/rite-build/reference/tdd.md +27 -0
  672. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +122 -0
  673. package/pack/generated/devin/skills/rite-clarify/SKILL.md +102 -0
  674. package/pack/generated/devin/skills/rite-clarify/reference/anti-patterns.md +24 -0
  675. package/pack/generated/devin/skills/rite-clarify/reference/decision-coverage.md +55 -0
  676. package/pack/generated/devin/skills/rite-converge/SKILL.md +156 -0
  677. package/pack/generated/devin/skills/rite-converge/reference/anti-patterns.md +35 -0
  678. package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +65 -0
  679. package/pack/generated/devin/skills/rite-customize/SKILL.md +62 -0
  680. package/pack/generated/devin/skills/rite-define/SKILL.md +174 -0
  681. package/pack/generated/devin/skills/rite-define/reference/anti-patterns.md +26 -0
  682. package/pack/generated/devin/skills/rite-define/reference/gates.md +159 -0
  683. package/pack/generated/devin/skills/rite-define/reference/plan-template.md +149 -0
  684. package/pack/generated/devin/skills/rite-doctor/SKILL.md +73 -0
  685. package/pack/generated/devin/skills/rite-dogfood/SKILL.md +57 -0
  686. package/pack/generated/devin/skills/rite-explain/SKILL.md +154 -0
  687. package/pack/generated/devin/skills/rite-explain/reference/intake.md +89 -0
  688. package/pack/generated/devin/skills/rite-frame/SKILL.md +118 -0
  689. package/pack/generated/devin/skills/rite-frame/reference/failure-modes.md +66 -0
  690. package/pack/generated/devin/skills/rite-handoff/SKILL.md +104 -0
  691. package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +44 -0
  692. package/pack/generated/devin/skills/rite-learn/SKILL.md +74 -0
  693. package/pack/generated/devin/skills/rite-plan/SKILL.md +191 -0
  694. package/pack/generated/devin/skills/rite-plan/reference/anti-patterns.md +34 -0
  695. package/pack/generated/devin/skills/rite-plan/reference/dependency-graph.md +48 -0
  696. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +105 -0
  697. package/pack/generated/devin/skills/rite-plan/reference/slicing.md +168 -0
  698. package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +44 -0
  699. package/pack/generated/devin/skills/rite-polish/SKILL.md +116 -0
  700. package/pack/generated/devin/skills/rite-polish/reference/adr-promotion.md +11 -0
  701. package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +187 -0
  702. package/pack/generated/devin/skills/rite-polish/reference/anti-patterns.md +30 -0
  703. package/pack/generated/devin/skills/rite-polish/reference/backend-polish.md +80 -0
  704. package/pack/generated/devin/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
  705. package/pack/generated/devin/skills/rite-polish/reference/code.md +87 -0
  706. package/pack/generated/devin/skills/rite-polish/reference/design-memory.md +117 -0
  707. package/pack/generated/devin/skills/rite-polish/reference/design-system-discovery.md +8 -0
  708. package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +109 -0
  709. package/pack/generated/devin/skills/rite-polish/reference/ledger.md +67 -0
  710. package/pack/generated/devin/skills/rite-polish/reference/ui.md +137 -0
  711. package/pack/generated/devin/skills/rite-pov/SKILL.md +59 -0
  712. package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +56 -0
  713. package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +68 -0
  714. package/pack/generated/devin/skills/rite-prototype/SKILL.md +106 -0
  715. package/pack/generated/devin/skills/rite-prove/SKILL.md +136 -0
  716. package/pack/generated/devin/skills/rite-prove/reference/acceptance-proof.md +88 -0
  717. package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +25 -0
  718. package/pack/generated/devin/skills/rite-prove/reference/browser-proof.md +51 -0
  719. package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +43 -0
  720. package/pack/generated/devin/skills/rite-prove/reference/proof-ladder.md +28 -0
  721. package/pack/generated/devin/skills/rite-prove/reference/test-command-discovery.md +36 -0
  722. package/pack/generated/devin/skills/rite-quick/SKILL.md +87 -0
  723. package/pack/generated/devin/skills/rite-resolve/SKILL.md +100 -0
  724. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +118 -0
  725. package/pack/generated/devin/skills/rite-review/SKILL.md +175 -0
  726. package/pack/generated/devin/skills/rite-review/reference/anti-patterns.md +32 -0
  727. package/pack/generated/devin/skills/rite-review/reference/cognitive-load.md +90 -0
  728. package/pack/generated/devin/skills/rite-review/reference/feature-scoped-review.md +26 -0
  729. package/pack/generated/devin/skills/rite-review/reference/five-axis-review.md +66 -0
  730. package/pack/generated/devin/skills/rite-review/reference/nielsen-heuristics.md +126 -0
  731. package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +91 -0
  732. package/pack/generated/devin/skills/rite-review/reference/performance-review.md +14 -0
  733. package/pack/generated/devin/skills/rite-review/reference/security-review.md +42 -0
  734. package/pack/generated/devin/skills/rite-seal/SKILL.md +98 -0
  735. package/pack/generated/devin/skills/rite-seal/reference/anti-patterns.md +29 -0
  736. package/pack/generated/devin/skills/rite-seal/reference/final-evidence.md +41 -0
  737. package/pack/generated/devin/skills/rite-seal/reference/go-no-go.md +30 -0
  738. package/pack/generated/devin/skills/rite-seal/reference/output.md +5 -0
  739. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +49 -0
  740. package/pack/generated/devin/skills/rite-seal/reference/risk-and-rollback.md +56 -0
  741. package/pack/generated/devin/skills/rite-seal/reference/seal-template.md +27 -0
  742. package/pack/generated/devin/skills/rite-ship/SKILL.md +91 -0
  743. package/pack/generated/devin/skills/rite-ship/reference/anti-patterns.md +28 -0
  744. package/pack/generated/devin/skills/rite-ship/reference/close-out.md +68 -0
  745. package/pack/generated/devin/skills/rite-ship/reference/git-ship.md +120 -0
  746. package/pack/generated/devin/skills/rite-ship/reference/rollout.md +62 -0
  747. package/pack/generated/devin/skills/rite-ship/reference/ship-template.md +39 -0
  748. package/pack/generated/devin/skills/rite-spec/SKILL.md +156 -0
  749. package/pack/generated/devin/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  750. package/pack/generated/devin/skills/rite-spec/reference/ai-spec-template.md +40 -0
  751. package/pack/generated/devin/skills/rite-spec/reference/anti-patterns.md +27 -0
  752. package/pack/generated/devin/skills/rite-spec/reference/interview-patterns.md +56 -0
  753. package/pack/generated/devin/skills/rite-spec/reference/investigation.md +83 -0
  754. package/pack/generated/devin/skills/rite-spec/reference/question-protocol.md +36 -0
  755. package/pack/generated/devin/skills/rite-spec/reference/references-intake.md +62 -0
  756. package/pack/generated/devin/skills/rite-spec/reference/spec-checklists.md +89 -0
  757. package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +154 -0
  758. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +232 -0
  759. package/pack/generated/devin/skills/rite-status/SKILL.md +66 -0
  760. package/pack/generated/devin/skills/rite-temper/SKILL.md +133 -0
  761. package/pack/generated/devin/skills/rite-temper/reference/anti-patterns.md +30 -0
  762. package/pack/generated/devin/skills/rite-temper/reference/review-dimensions.md +66 -0
  763. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +53 -0
  764. package/pack/generated/devin/skills/rite-temper/reference/significance.md +46 -0
  765. package/pack/generated/devin/skills/rite-temper/reference/strategy-template.md +90 -0
  766. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +129 -0
  767. package/pack/generated/devin/skills/rite-vet/SKILL.md +214 -0
  768. package/pack/generated/devin/skills/rite-vet/reference/anti-patterns.md +43 -0
  769. package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +221 -0
  770. package/pack/generated/devin/skills/rite-vet/reference/cross-model.md +19 -0
  771. package/pack/generated/devin/skills/rite-vet/reference/depth.md +59 -0
  772. package/pack/generated/devin/skills/rite-vet/reference/eng-lenses.md +48 -0
  773. package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +206 -0
  774. package/pack/generated/devin/skills/rite-watch-pr/SKILL.md +86 -0
  775. package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +71 -0
  776. package/pack/generated/omp/agents/devrites-code-reviewer.md +16 -0
  777. package/pack/generated/omp/agents/devrites-security-auditor.md +22 -0
  778. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +12 -2
  779. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +2 -0
  780. package/pack/generated/omp/skills/devrites-audit/SKILL.md +9 -0
  781. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +2 -0
  782. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +2 -0
  783. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +2 -0
  784. package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +2 -0
  785. package/pack/generated/omp/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  786. package/pack/generated/omp/skills/devrites-frontend-craft/reference/shape.md +5 -0
  787. package/pack/generated/omp/skills/devrites-interview/SKILL.md +5 -0
  788. package/pack/generated/omp/skills/devrites-lib/SKILL.md +40 -5
  789. package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  790. package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  791. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  792. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +24 -1
  793. package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +10 -0
  794. package/pack/generated/omp/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  795. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  796. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +21 -1
  797. package/pack/generated/omp/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  798. package/pack/generated/omp/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  799. package/pack/generated/omp/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  800. package/pack/generated/omp/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  801. package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  802. package/pack/generated/omp/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  803. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  804. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +67 -7
  805. package/pack/generated/omp/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  806. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  807. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +10 -1
  808. package/pack/generated/omp/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  809. package/pack/generated/omp/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  810. package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  811. package/pack/generated/omp/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  812. package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  813. package/pack/generated/omp/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  814. package/pack/generated/omp/skills/devrites-lib/reference/standards/documentation.md +12 -0
  815. package/pack/generated/omp/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  816. package/pack/generated/omp/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  817. package/pack/generated/omp/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  818. package/pack/generated/omp/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  819. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +117 -0
  820. package/pack/generated/omp/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  821. package/pack/generated/omp/skills/devrites-lib/reference/standards/glossary.md +40 -0
  822. package/pack/generated/omp/skills/devrites-lib/reference/standards/hooks.md +16 -0
  823. package/pack/generated/omp/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  824. package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  825. package/pack/generated/omp/skills/devrites-lib/reference/standards/observability.md +2 -0
  826. package/pack/generated/omp/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  827. package/pack/generated/omp/skills/devrites-lib/reference/standards/patterns.md +2 -0
  828. package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +8 -1
  829. package/pack/generated/omp/skills/devrites-lib/reference/standards/principles.md +14 -0
  830. package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  831. package/pack/generated/omp/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  832. package/pack/generated/omp/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  833. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +23 -0
  834. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  835. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/default.md +42 -0
  836. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/go.md +47 -0
  837. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/python.md +46 -0
  838. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  839. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  840. package/pack/generated/omp/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  841. package/pack/generated/omp/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  842. package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +58 -6
  843. package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  844. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  845. package/pack/generated/omp/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  846. package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +19 -2
  847. package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +12 -0
  848. package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  849. package/pack/generated/omp/skills/devrites-lib/reference/standards/windows.md +51 -0
  850. package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  851. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  852. package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +3 -1
  853. package/pack/generated/omp/skills/devrites-source-driven/SKILL.md +2 -0
  854. package/pack/generated/omp/skills/devrites-ux-shape/SKILL.md +2 -0
  855. package/pack/generated/omp/skills/rite/SKILL.md +2 -0
  856. package/pack/generated/omp/skills/rite-adopt/SKILL.md +2 -0
  857. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +6 -1
  858. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +7 -1
  859. package/pack/generated/omp/skills/rite-build/SKILL.md +28 -14
  860. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +6 -0
  861. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +11 -2
  862. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +8 -4
  863. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +34 -8
  864. package/pack/generated/omp/skills/rite-clarify/SKILL.md +4 -0
  865. package/pack/generated/omp/skills/rite-converge/SKILL.md +14 -2
  866. package/pack/generated/omp/skills/rite-customize/SKILL.md +2 -0
  867. package/pack/generated/omp/skills/rite-define/SKILL.md +8 -2
  868. package/pack/generated/omp/skills/rite-doctor/SKILL.md +6 -1
  869. package/pack/generated/omp/skills/rite-dogfood/SKILL.md +2 -0
  870. package/pack/generated/omp/skills/rite-explain/SKILL.md +2 -0
  871. package/pack/generated/omp/skills/rite-frame/SKILL.md +4 -0
  872. package/pack/generated/omp/skills/rite-handoff/SKILL.md +8 -1
  873. package/pack/generated/omp/skills/rite-learn/SKILL.md +2 -0
  874. package/pack/generated/omp/skills/rite-plan/SKILL.md +6 -0
  875. package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +3 -1
  876. package/pack/generated/omp/skills/rite-polish/SKILL.md +13 -2
  877. package/pack/generated/omp/skills/rite-polish/reference/code.md +6 -1
  878. package/pack/generated/omp/skills/rite-polish/reference/ledger.md +3 -1
  879. package/pack/generated/omp/skills/rite-pov/SKILL.md +2 -0
  880. package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +2 -0
  881. package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +2 -0
  882. package/pack/generated/omp/skills/rite-prototype/SKILL.md +2 -0
  883. package/pack/generated/omp/skills/rite-prove/SKILL.md +17 -3
  884. package/pack/generated/omp/skills/rite-prove/reference/test-command-discovery.md +6 -0
  885. package/pack/generated/omp/skills/rite-quick/SKILL.md +7 -1
  886. package/pack/generated/omp/skills/rite-resolve/SKILL.md +2 -0
  887. package/pack/generated/omp/skills/rite-review/SKILL.md +5 -1
  888. package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +14 -3
  889. package/pack/generated/omp/skills/rite-seal/SKILL.md +27 -3
  890. package/pack/generated/omp/skills/rite-seal/reference/go-no-go.md +1 -0
  891. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +3 -1
  892. package/pack/generated/omp/skills/rite-ship/SKILL.md +5 -1
  893. package/pack/generated/omp/skills/rite-spec/SKILL.md +10 -3
  894. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +5 -0
  895. package/pack/generated/omp/skills/rite-status/SKILL.md +9 -0
  896. package/pack/generated/omp/skills/rite-temper/SKILL.md +5 -1
  897. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +9 -1
  898. package/pack/generated/omp/skills/rite-vet/SKILL.md +28 -6
  899. package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +19 -0
  900. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +5 -0
  901. package/pack/generated/omp/skills/rite-watch-pr/SKILL.md +2 -0
  902. package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +2 -0
  903. package/pack/generated/pi/agents/devrites-code-reviewer.md +16 -0
  904. package/pack/generated/pi/agents/devrites-security-auditor.md +22 -0
  905. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +12 -2
  906. package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +2 -0
  907. package/pack/generated/pi/skills/devrites-audit/SKILL.md +9 -0
  908. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +2 -0
  909. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +2 -0
  910. package/pack/generated/pi/skills/devrites-doubt/SKILL.md +2 -0
  911. package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +2 -0
  912. package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +4 -0
  913. package/pack/generated/pi/skills/devrites-frontend-craft/reference/shape.md +5 -0
  914. package/pack/generated/pi/skills/devrites-interview/SKILL.md +5 -0
  915. package/pack/generated/pi/skills/devrites-lib/SKILL.md +40 -5
  916. package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +17 -0
  917. package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +20 -0
  918. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +36 -4
  919. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +24 -1
  920. package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +10 -0
  921. package/pack/generated/pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +2 -0
  922. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +2 -0
  923. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +21 -1
  924. package/pack/generated/pi/skills/devrites-lib/reference/standards/anti-patterns.md +2 -0
  925. package/pack/generated/pi/skills/devrites-lib/reference/standards/architecture-health.md +64 -0
  926. package/pack/generated/pi/skills/devrites-lib/reference/standards/assumption-checkpoints.md +42 -0
  927. package/pack/generated/pi/skills/devrites-lib/reference/standards/audit-coverage.md +103 -0
  928. package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +2 -0
  929. package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +11 -0
  930. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +71 -4
  931. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +67 -7
  932. package/pack/generated/pi/skills/devrites-lib/reference/standards/coding-style.md +9 -4
  933. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +20 -3
  934. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +10 -1
  935. package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +24 -2
  936. package/pack/generated/pi/skills/devrites-lib/reference/standards/debug-recovery.md +14 -0
  937. package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +6 -0
  938. package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +18 -0
  939. package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +2 -0
  940. package/pack/generated/pi/skills/devrites-lib/reference/standards/development-workflow.md +2 -0
  941. package/pack/generated/pi/skills/devrites-lib/reference/standards/documentation.md +12 -0
  942. package/pack/generated/pi/skills/devrites-lib/reference/standards/duplicate-code.md +118 -0
  943. package/pack/generated/pi/skills/devrites-lib/reference/standards/edge-case-trace.md +2 -0
  944. package/pack/generated/pi/skills/devrites-lib/reference/standards/elicitation.md +29 -0
  945. package/pack/generated/pi/skills/devrites-lib/reference/standards/error-handling.md +2 -0
  946. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +117 -0
  947. package/pack/generated/pi/skills/devrites-lib/reference/standards/git-workflow.md +2 -0
  948. package/pack/generated/pi/skills/devrites-lib/reference/standards/glossary.md +40 -0
  949. package/pack/generated/pi/skills/devrites-lib/reference/standards/hooks.md +16 -0
  950. package/pack/generated/pi/skills/devrites-lib/reference/standards/integration-reliability.md +19 -0
  951. package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +32 -1
  952. package/pack/generated/pi/skills/devrites-lib/reference/standards/observability.md +2 -0
  953. package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +2 -0
  954. package/pack/generated/pi/skills/devrites-lib/reference/standards/patterns.md +2 -0
  955. package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +8 -1
  956. package/pack/generated/pi/skills/devrites-lib/reference/standards/principles.md +14 -0
  957. package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +3 -0
  958. package/pack/generated/pi/skills/devrites-lib/reference/standards/release/ship-checklist.md +4 -0
  959. package/pack/generated/pi/skills/devrites-lib/reference/standards/repository-topology.md +2 -0
  960. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/README.md +23 -0
  961. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/ci-workflows.md +50 -0
  962. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/default.md +42 -0
  963. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/go.md +47 -0
  964. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/python.md +46 -0
  965. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/shell.md +40 -0
  966. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/ts-js.md +54 -0
  967. package/pack/generated/pi/skills/devrites-lib/reference/standards/review-checklist.md +2 -0
  968. package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +2 -0
  969. package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +58 -6
  970. package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +48 -0
  971. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +18 -4
  972. package/pack/generated/pi/skills/devrites-lib/reference/standards/test-proof-checklist.md +5 -0
  973. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +19 -2
  974. package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +12 -0
  975. package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +110 -0
  976. package/pack/generated/pi/skills/devrites-lib/reference/standards/windows.md +51 -0
  977. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +2 -0
  978. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +28 -3
  979. package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +3 -1
  980. package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +2 -0
  981. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +2 -0
  982. package/pack/generated/pi/skills/rite/SKILL.md +2 -0
  983. package/pack/generated/pi/skills/rite-adopt/SKILL.md +2 -0
  984. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +6 -1
  985. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +7 -1
  986. package/pack/generated/pi/skills/rite-build/SKILL.md +28 -14
  987. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +6 -0
  988. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +11 -2
  989. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +8 -4
  990. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +34 -8
  991. package/pack/generated/pi/skills/rite-clarify/SKILL.md +4 -0
  992. package/pack/generated/pi/skills/rite-converge/SKILL.md +14 -2
  993. package/pack/generated/pi/skills/rite-customize/SKILL.md +2 -0
  994. package/pack/generated/pi/skills/rite-define/SKILL.md +8 -2
  995. package/pack/generated/pi/skills/rite-doctor/SKILL.md +6 -1
  996. package/pack/generated/pi/skills/rite-dogfood/SKILL.md +2 -0
  997. package/pack/generated/pi/skills/rite-explain/SKILL.md +2 -0
  998. package/pack/generated/pi/skills/rite-frame/SKILL.md +4 -0
  999. package/pack/generated/pi/skills/rite-handoff/SKILL.md +8 -1
  1000. package/pack/generated/pi/skills/rite-learn/SKILL.md +2 -0
  1001. package/pack/generated/pi/skills/rite-plan/SKILL.md +6 -0
  1002. package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +3 -1
  1003. package/pack/generated/pi/skills/rite-polish/SKILL.md +13 -2
  1004. package/pack/generated/pi/skills/rite-polish/reference/code.md +6 -1
  1005. package/pack/generated/pi/skills/rite-polish/reference/ledger.md +3 -1
  1006. package/pack/generated/pi/skills/rite-pov/SKILL.md +2 -0
  1007. package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +2 -0
  1008. package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +2 -0
  1009. package/pack/generated/pi/skills/rite-prototype/SKILL.md +2 -0
  1010. package/pack/generated/pi/skills/rite-prove/SKILL.md +17 -3
  1011. package/pack/generated/pi/skills/rite-prove/reference/test-command-discovery.md +6 -0
  1012. package/pack/generated/pi/skills/rite-quick/SKILL.md +7 -1
  1013. package/pack/generated/pi/skills/rite-resolve/SKILL.md +2 -0
  1014. package/pack/generated/pi/skills/rite-review/SKILL.md +5 -1
  1015. package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +14 -3
  1016. package/pack/generated/pi/skills/rite-seal/SKILL.md +27 -3
  1017. package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +1 -0
  1018. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +3 -1
  1019. package/pack/generated/pi/skills/rite-ship/SKILL.md +5 -1
  1020. package/pack/generated/pi/skills/rite-spec/SKILL.md +10 -3
  1021. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +5 -0
  1022. package/pack/generated/pi/skills/rite-status/SKILL.md +9 -0
  1023. package/pack/generated/pi/skills/rite-temper/SKILL.md +5 -1
  1024. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +9 -1
  1025. package/pack/generated/pi/skills/rite-vet/SKILL.md +28 -6
  1026. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +19 -0
  1027. package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +5 -0
  1028. package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +2 -0
  1029. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +2 -0
  1030. package/package.json +4 -2
  1031. package/scripts/build-host-artifacts.sh +96 -7
  1032. package/scripts/devin-generate.sh +222 -0
  1033. package/update.sh +2 -1
@@ -0,0 +1,488 @@
1
+ package lib
2
+
3
+ import (
4
+ "bytes"
5
+ "os"
6
+ "os/exec"
7
+ "path/filepath"
8
+ "strings"
9
+ "testing"
10
+
11
+ "github.com/devrites/devrites/internal/testutil"
12
+ )
13
+
14
+ func runDupGit(t *testing.T, project string, args ...string) {
15
+ t.Helper()
16
+ cmd := exec.Command("git", append([]string{"-C", project}, args...)...)
17
+ if out, err := cmd.CombinedOutput(); err != nil {
18
+ t.Fatalf("git %v: %v\n%s", args, err, out)
19
+ }
20
+ }
21
+
22
+ func initDupRepo(t *testing.T, project string) {
23
+ t.Helper()
24
+ runDupGit(t, project, "init", "-q")
25
+ runDupGit(t, project, "config", "user.email", "tests@example.invalid")
26
+ runDupGit(t, project, "config", "user.name", "DevRites Tests")
27
+ }
28
+
29
+ // dupBlockA/B are the same logic under different names: the renaming case a
30
+ // verbatim-line diff cannot catch but token normalization can.
31
+ const dupBlockA = `func fetchDiscount(customer *Customer) (float64, error) {
32
+ if customer == nil {
33
+ return 0, errors.New("nil customer")
34
+ }
35
+ total, err := lookupOrders(customer.ID)
36
+ if err != nil {
37
+ return 0, fmt.Errorf("orders: %w", err)
38
+ }
39
+ if total > 1000 {
40
+ return 0.15, nil
41
+ }
42
+ if total > 500 {
43
+ return 0.10, nil
44
+ }
45
+ return 0, nil
46
+ }
47
+ `
48
+
49
+ const dupBlockB = `func resolveRate(account *Account) (float64, error) {
50
+ if account == nil {
51
+ return 0, errors.New("nil account")
52
+ }
53
+ sum, err := queryInvoices(account.Ref)
54
+ if err != nil {
55
+ return 0, fmt.Errorf("invoices: %w", err)
56
+ }
57
+ if sum > 2000 {
58
+ return 0.20, nil
59
+ }
60
+ if sum > 800 {
61
+ return 0.05, nil
62
+ }
63
+ return 0, nil
64
+ }
65
+ `
66
+
67
+ func TestNormalizeDupSourceStripsCommentsAndStrings(t *testing.T) {
68
+ src := "package x // trail\n\n// full-line comment\n/* block\n still */\nfunc f() string { return \"http://a//b\" } // done\n"
69
+ lines := normalizeDupSource(src, dupCStyle)
70
+ if len(lines) != 7 {
71
+ t.Fatalf("lines=%d", len(lines))
72
+ }
73
+ if lines[2].tokens != "_" || lines[3].tokens != "_" || lines[4].tokens != "_" {
74
+ t.Fatalf("comment lines got tokens: %q %q %q", lines[2].tokens, lines[3].tokens, lines[4].tokens)
75
+ }
76
+ if !strings.Contains(lines[5].tokens, "s") || strings.Contains(lines[5].tokens, "http") {
77
+ t.Fatalf("string literal not collapsed: %q", lines[5].tokens)
78
+ }
79
+ if strings.Contains(lines[5].tokens, "done") {
80
+ t.Fatalf("trailing comment survived: %q", lines[5].tokens)
81
+ }
82
+ }
83
+
84
+ func TestCanonicalizeDupLineCollapsesIdentifiers(t *testing.T) {
85
+ a := canonicalizeDupLine("if total > 1000 {")
86
+ b := canonicalizeDupLine("if sum > 2000 {")
87
+ if a.tokens != b.tokens {
88
+ t.Fatalf("renamed identifiers diverged: %q vs %q", a.tokens, b.tokens)
89
+ }
90
+ if !strings.HasPrefix(a.tokens, "if") {
91
+ t.Fatalf("keyword erased: %q", a.tokens)
92
+ }
93
+ c := canonicalizeDupLine("while total > 1000 {")
94
+ if a.tokens == c.tokens {
95
+ t.Fatal("if and while collapsed to the same skeleton")
96
+ }
97
+ trivial := canonicalizeDupLine("}")
98
+ if !trivial.trivial || trivial.tokens != "_" {
99
+ t.Fatalf("trivial line: %+v", trivial)
100
+ }
101
+ }
102
+
103
+ func TestDupDetectFindsRenamedCopy(t *testing.T) {
104
+ files := []dupFile{
105
+ {path: "a/one.go", lines: normalizeDupSource("package a\n\n"+dupBlockA, dupCStyle)},
106
+ {path: "b/two.go", lines: normalizeDupSource("package b\n\n"+dupBlockB, dupCStyle)},
107
+ }
108
+ clusters, units := dupDetect(files, dupOptions{minLines: 5, threshold: 0.6})
109
+ if len(clusters) != 1 {
110
+ t.Fatalf("clusters=%d want 1", len(clusters))
111
+ }
112
+ if len(clusters[0].units) != 2 {
113
+ t.Fatalf("cluster units=%v", clusters[0].units)
114
+ }
115
+ if len(units) != 2 || clusters[0].hash == "" {
116
+ t.Fatalf("units=%d hash=%q", len(units), clusters[0].hash)
117
+ }
118
+ }
119
+
120
+ func TestDupDetectIgnoresShortOverlap(t *testing.T) {
121
+ shared := "x := 1\ny := 2\nz := 3\nw := 4\n"
122
+ tailA := "if x > 1 {\n\treturn x + y\n}\nfor i := 0; i < 3; i++ {\n\tfmt.Println(i)\n}\nswitch z {\ncase 1:\n\tw++\n}\n"
123
+ tailB := "m := map[string]int{}\nfor k := range m {\n\tdelete(m, k)\n}\nif len(m) == 0 && z < 0 {\n\tpanic(\"empty\")\n}\nreturn\n"
124
+ files := []dupFile{
125
+ {path: "a.go", lines: normalizeDupSource("package a\n"+shared+tailA, dupCStyle)},
126
+ {path: "b.go", lines: normalizeDupSource("package b\n"+shared+tailB, dupCStyle)},
127
+ }
128
+ clusters, _ := dupDetect(files, dupOptions{minLines: 8, threshold: 0.6})
129
+ if len(clusters) != 0 {
130
+ t.Fatalf("short overlap reported: %+v", clusters)
131
+ }
132
+ }
133
+
134
+ func TestDupDistanceBoostPrefersDistantTwins(t *testing.T) {
135
+ seg := dupSegment{aStart: 0, aEnd: 10, bStart: 0, bEnd: 10}
136
+ near := dupDistanceBoost("a/x.go", "a/y.go", seg)
137
+ far := dupDistanceBoost("a/b/c/x.go", "d/e/f/y.go", seg)
138
+ if far <= near {
139
+ t.Fatalf("far=%f near=%f", far, near)
140
+ }
141
+ same := dupDistanceBoost("a/x.go", "a/x.go", dupSegment{aStart: 0, aEnd: 10, bStart: 600, bEnd: 610})
142
+ if same <= 0 {
143
+ t.Fatalf("same-file distant copy got no boost: %f", same)
144
+ }
145
+ }
146
+
147
+ func TestDupClusterHashStableAcrossMoves(t *testing.T) {
148
+ // The same pair of twins with one block shifted down in its file must
149
+ // hash identically: a cluster hash keys on content, not position.
150
+ run := func(aSrc string) string {
151
+ files := []dupFile{
152
+ {path: "a/one.go", lines: normalizeDupSource(aSrc, dupCStyle)},
153
+ {path: "b/two.go", lines: normalizeDupSource("package b\n\n"+dupBlockB, dupCStyle)},
154
+ }
155
+ clusters, _ := dupDetect(files, dupOptions{minLines: 5, threshold: 0.6})
156
+ if len(clusters) != 1 {
157
+ t.Fatalf("clusters=%d", len(clusters))
158
+ }
159
+ return clusters[0].hash
160
+ }
161
+ base := run("package a\n\n" + dupBlockA)
162
+ moved := run("package a\n\n\n// spacer\n\n" + dupBlockA)
163
+ if base != moved {
164
+ t.Fatal("cluster hash shifted when the block moved lines")
165
+ }
166
+ edited := run("package a\n\n" + strings.Replace(dupBlockA, "total > 1000", "total >= 1000", 1))
167
+ if edited == base {
168
+ t.Fatal("cluster hash unchanged after a body edit")
169
+ }
170
+ }
171
+
172
+ func TestDupChangedRangesParsesHunks(t *testing.T) {
173
+ diff := "diff --git a/f.go b/f.go\nindex 1..2 100644\n--- a/f.go\n+++ b/f.go\n" +
174
+ "@@ -10,0 +11,3 @@\n+a\n+b\n+c\n@@ -30 +31 @@\n+x\n" +
175
+ "diff --git a/gone.go b/gone.go\n--- a/gone.go\n+++ /dev/null\n@@ -1 +0,0 @@\n-y\n"
176
+ ranges := dupChangedRanges(diff)
177
+ got := ranges["f.go"]
178
+ if len(got) != 2 || got[0] != [2]int{11, 13} || got[1] != [2]int{31, 31} {
179
+ t.Fatalf("ranges=%v", got)
180
+ }
181
+ if _, ok := ranges["gone.go"]; ok {
182
+ t.Fatal("deleted file recorded a range")
183
+ }
184
+ }
185
+
186
+ func TestDupLoadIgnoreStripsComments(t *testing.T) {
187
+ f := filepath.Join(t.TempDir(), "dup-ignore")
188
+ testutil.WriteFile(t, f, "abcdef123456 # coincidental helpers\n\n \n# full comment\nbeef00\n")
189
+ got := dupLoadIgnore(f)
190
+ if !got["abcdef123456"] || !got["beef00"] || len(got) != 2 {
191
+ t.Fatalf("ignored=%v", got)
192
+ }
193
+ }
194
+
195
+ func TestRunCheckDupWorktreeMarksChanged(t *testing.T) {
196
+ project := t.TempDir()
197
+ initDupRepo(t, project)
198
+ testutil.WriteFile(t, filepath.Join(project, "a/one.go"), "package a\n\n"+dupBlockA)
199
+ runDupGit(t, project, "add", ".")
200
+ runDupGit(t, project, "commit", "-qm", "base")
201
+ // New file duplicating committed code: untracked → whole file changed.
202
+ testutil.WriteFile(t, filepath.Join(project, "b/two.go"), "package b\n\n"+dupBlockB)
203
+
204
+ var stdout, stderr bytes.Buffer
205
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--min-lines", "5"}, &stdout, &stderr)
206
+ if code != 0 {
207
+ t.Fatalf("code=%d stderr=%s", code, stderr.String())
208
+ }
209
+ out := stdout.String()
210
+ if !strings.Contains(out, "cluster 1 (") || !strings.Contains(out, "* b/two.go:") {
211
+ t.Fatalf("missing changed-marked cluster:\n%s", out)
212
+ }
213
+ if strings.Contains(out, "* a/one.go:") {
214
+ t.Fatalf("unchanged file marked:\n%s", out)
215
+ }
216
+ }
217
+
218
+ func TestRunCheckDupAllFindsPreexistingDup(t *testing.T) {
219
+ project := t.TempDir()
220
+ initDupRepo(t, project)
221
+ testutil.WriteFile(t, filepath.Join(project, "a/one.go"), "package a\n\n"+dupBlockA)
222
+ testutil.WriteFile(t, filepath.Join(project, "b/two.go"), "package b\n\n"+dupBlockB)
223
+ runDupGit(t, project, "add", ".")
224
+ runDupGit(t, project, "commit", "-qm", "base")
225
+ root := filepath.Join(project, ".devrites")
226
+
227
+ var stdout, stderr bytes.Buffer
228
+ code := RunCheckDup(root, []string{"--all", "--min-lines", "5"}, &stdout, &stderr)
229
+ if code != 0 || !strings.Contains(stdout.String(), "cluster 1 (") {
230
+ t.Fatalf("code=%d out=%s err=%s", code, stdout.String(), stderr.String())
231
+ }
232
+ // Worktree mode with a clean tree reports nothing attributable, but the
233
+ // message must say the diff is clean, not imply the repo has no duplicates.
234
+ stdout.Reset()
235
+ code = RunCheckDup(root, nil, &stdout, &stderr)
236
+ if code != 0 || strings.Contains(stdout.String(), "cluster 1 (") ||
237
+ !strings.Contains(stdout.String(), "no clusters touch the diff") {
238
+ t.Fatalf("clean worktree misreported: code=%d out=%s", code, stdout.String())
239
+ }
240
+ }
241
+
242
+ func TestRunCheckDupIgnoreFileSuppressesCluster(t *testing.T) {
243
+ project := t.TempDir()
244
+ initDupRepo(t, project)
245
+ testutil.WriteFile(t, filepath.Join(project, "a/one.go"), "package a\n\n"+dupBlockA)
246
+ runDupGit(t, project, "add", ".")
247
+ runDupGit(t, project, "commit", "-qm", "base")
248
+ testutil.WriteFile(t, filepath.Join(project, "b/two.go"), "package b\n\n"+dupBlockB)
249
+ root := filepath.Join(project, ".devrites")
250
+
251
+ var stdout, stderr bytes.Buffer
252
+ code := RunCheckDup(root, []string{"--all", "--min-lines", "5"}, &stdout, &stderr)
253
+ if code != 0 {
254
+ t.Fatalf("code=%d stderr=%s", code, stderr.String())
255
+ }
256
+ out := stdout.String()
257
+ start := strings.Index(out, "cluster 1 (")
258
+ if start < 0 {
259
+ t.Fatalf("no cluster:\n%s", out)
260
+ }
261
+ hash := out[start+len("cluster 1 (") : start+len("cluster 1 (")+12]
262
+ if err := os.MkdirAll(root, 0o755); err != nil {
263
+ t.Fatal(err)
264
+ }
265
+ testutil.WriteFile(t, filepath.Join(root, "dup-ignore"), hash+" # coincidence\n")
266
+
267
+ stdout.Reset()
268
+ code = RunCheckDup(root, []string{"--all", "--min-lines", "5"}, &stdout, &stderr)
269
+ if code != 0 {
270
+ t.Fatalf("code=%d stderr=%s", code, stderr.String())
271
+ }
272
+ if !strings.Contains(stdout.String(), "ignored") {
273
+ t.Fatalf("ignore file not honored:\n%s", stdout.String())
274
+ }
275
+ }
276
+
277
+ func TestDupScannableSkipsNestedVendoredTrees(t *testing.T) {
278
+ for _, p := range []string{
279
+ "vendor/x/lib.go",
280
+ "services/api/vendor/x/lib.go",
281
+ "a/node_modules/pkg/index.js",
282
+ "pkg/testdata/fixture.go",
283
+ "sub/.devrites/work/f.go",
284
+ "gen/output.pb.go",
285
+ "dist/bundle.min.js",
286
+ } {
287
+ if dupScannable(p, nil) {
288
+ t.Fatalf("%s should be skipped", p)
289
+ }
290
+ }
291
+ for _, p := range []string{
292
+ "vendorless/lib.go", // name contains but is not the dir
293
+ "pkg/vendorx/v.go",
294
+ "engine/main.go",
295
+ } {
296
+ if !dupScannable(p, nil) {
297
+ t.Fatalf("%s should be scannable", p)
298
+ }
299
+ }
300
+ if dupScannable("sub/lib/util.go", []string{"lib/"}) {
301
+ t.Fatal("--exclude lib/ should match at any depth")
302
+ }
303
+ }
304
+
305
+ func TestDupRejectsInvalidArgs(t *testing.T) {
306
+ for _, args := range [][]string{{"--threshold", "NaN"}, {"--base", "--output=escaped"}, {"--all", "--staged"}, {"--limit", "1", "--limit", "2"}, {"--phase"}, {"--cwd", "--all"}, {"--ignore-file"}, {"--exclude", ""}} {
307
+ var out, errOut bytes.Buffer
308
+ root := filepath.Join(t.TempDir(), ".devrites")
309
+ if code := RunCheckDup(root, args, &out, &errOut); code != 2 || !strings.Contains(errOut.String(), "dup:") || strings.Contains(errOut.String(), "git ") || out.Len() != 0 {
310
+ t.Errorf("args=%v code=%d out=%s err=%s", args, code, &out, &errOut)
311
+ }
312
+ if _, err := os.Stat(filepath.Join(root, "metrics")); !os.IsNotExist(err) {
313
+ t.Fatal("invalid args wrote metrics")
314
+ }
315
+ }
316
+ }
317
+
318
+ func TestDupStagedSnapshot(t *testing.T) {
319
+ project := t.TempDir()
320
+ initDupRepo(t, project)
321
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
322
+ runDupGit(t, project, "add", ".")
323
+ runDupGit(t, project, "commit", "-qm", "base")
324
+ testutil.WriteFile(t, filepath.Join(project, "b.go"), dupBlockB)
325
+ runDupGit(t, project, "add", "b.go")
326
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), "package different")
327
+ if err := os.Remove(filepath.Join(project, "b.go")); err != nil {
328
+ t.Fatal(err)
329
+ }
330
+ testutil.WriteFile(t, filepath.Join(project, "untracked.go"), dupBlockA)
331
+ var out, errOut bytes.Buffer
332
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--staged", "--min-lines", "5"}, &out, &errOut)
333
+ if code != 0 || !strings.Contains(out.String(), "* b.go:") || !strings.Contains(out.String(), " a.go:") || strings.Contains(out.String(), "untracked.go") {
334
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
335
+ }
336
+ }
337
+
338
+ func TestDupUnavailableAndExcluded(t *testing.T) {
339
+ for _, kind := range []string{"missing", "oversized", "generated", "empty", "partial"} {
340
+ t.Run(kind, func(t *testing.T) {
341
+ project := t.TempDir()
342
+ initDupRepo(t, project)
343
+ if kind != "empty" {
344
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
345
+ runDupGit(t, project, "add", ".")
346
+ }
347
+ switch kind {
348
+ case "missing", "partial":
349
+ if err := os.Remove(filepath.Join(project, "a.go")); err != nil {
350
+ t.Fatal(err)
351
+ }
352
+ case "oversized":
353
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), strings.Repeat("x", dupMaxFileBytes+1))
354
+ case "generated":
355
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), "// Code generated; DO NOT EDIT.")
356
+ }
357
+ if kind == "partial" {
358
+ testutil.WriteFile(t, filepath.Join(project, "b.go"), dupBlockB)
359
+ }
360
+ var out, errOut bytes.Buffer
361
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--all"}, &out, &errOut)
362
+ if kind == "missing" || kind == "oversized" || kind == "partial" {
363
+ if code != 2 || strings.Contains(out.String(), "dup: ok") || !strings.Contains(errOut.String(), "incomplete") {
364
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
365
+ }
366
+ } else if code != 0 || !strings.Contains(out.String(), map[string]string{"empty": "no eligible", "generated": "generated"}[kind]) {
367
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
368
+ }
369
+ })
370
+ }
371
+ }
372
+
373
+ func TestDupBaseFlagCannotWriteFile(t *testing.T) {
374
+ project := t.TempDir()
375
+ initDupRepo(t, project)
376
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
377
+ runDupGit(t, project, "add", ".")
378
+ runDupGit(t, project, "commit", "-qm", "base")
379
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockB)
380
+ target := filepath.Join(project, "escaped")
381
+ var out, errOut bytes.Buffer
382
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--base", "--output=" + target}, &out, &errOut)
383
+ if code != 2 {
384
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
385
+ }
386
+ if _, err := os.Stat(target); !os.IsNotExist(err) {
387
+ t.Fatalf("git output target exists: %v", err)
388
+ }
389
+ }
390
+
391
+ func TestDupStagedRejectsUnsafeIndexEntries(t *testing.T) {
392
+ for _, kind := range []string{"symlink", "unmerged", "oversized"} {
393
+ t.Run(kind, func(t *testing.T) {
394
+ project := t.TempDir()
395
+ initDupRepo(t, project)
396
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
397
+ runDupGit(t, project, "add", ".")
398
+ runDupGit(t, project, "commit", "-qm", "base")
399
+ switch kind {
400
+ case "symlink":
401
+ if err := os.Symlink("a.go", filepath.Join(project, "b.go")); err != nil {
402
+ t.Fatal(err)
403
+ }
404
+ runDupGit(t, project, "add", "b.go")
405
+ case "oversized":
406
+ testutil.WriteFile(t, filepath.Join(project, "b.go"), strings.Repeat("x", dupMaxFileBytes+1))
407
+ runDupGit(t, project, "add", "b.go")
408
+ case "unmerged":
409
+ oid, err := exec.Command("git", "-C", project, "rev-parse", "HEAD:a.go").Output()
410
+ if err != nil {
411
+ t.Fatal(err)
412
+ }
413
+ cmd := exec.Command("git", "-C", project, "update-index", "--index-info")
414
+ cmd.Stdin = strings.NewReader("0 0000000000000000000000000000000000000000\ta.go\n100644 " + strings.TrimSpace(string(oid)) + " 1\ta.go\n")
415
+ if out, err := cmd.CombinedOutput(); err != nil {
416
+ t.Fatalf("index: %s %v", out, err)
417
+ }
418
+ }
419
+ var out, errOut bytes.Buffer
420
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--staged"}, &out, &errOut)
421
+ if code != 2 || strings.Contains(out.String(), "dup: ok") || !strings.Contains(errOut.String(), "incomplete") {
422
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
423
+ }
424
+ })
425
+ }
426
+ }
427
+
428
+ func TestDupStagedDeletionAndUntrackedAreNotComparators(t *testing.T) {
429
+ project := t.TempDir()
430
+ initDupRepo(t, project)
431
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
432
+ runDupGit(t, project, "add", ".")
433
+ runDupGit(t, project, "commit", "-qm", "base")
434
+ runDupGit(t, project, "rm", "a.go")
435
+ testutil.WriteFile(t, filepath.Join(project, "b.go"), dupBlockB)
436
+ runDupGit(t, project, "add", "b.go")
437
+ testutil.WriteFile(t, filepath.Join(project, "untracked.go"), dupBlockA)
438
+ var out, errOut bytes.Buffer
439
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--staged", "--min-lines", "5"}, &out, &errOut)
440
+ if code != 0 || !strings.Contains(out.String(), "scanned 1 files") || strings.Contains(out.String(), "cluster 1 (") {
441
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
442
+ }
443
+ }
444
+
445
+ func TestDupDoesNotExecuteDiffHelpers(t *testing.T) {
446
+ project := t.TempDir()
447
+ initDupRepo(t, project)
448
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
449
+ testutil.WriteFile(t, filepath.Join(project, ".gitattributes"), "*.go diff=hostile\n")
450
+ runDupGit(t, project, "add", ".")
451
+ runDupGit(t, project, "commit", "-qm", "base")
452
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockB)
453
+ runDupGit(t, project, "add", ".")
454
+ runDupGit(t, project, "config", "diff.external", "missing-external-diff-command")
455
+ runDupGit(t, project, "config", "diff.hostile.textconv", "missing-textconv-command")
456
+ for _, mode := range [][]string{{"--staged"}, {"--worktree"}, {"--base", "HEAD"}} {
457
+ var out, errOut bytes.Buffer
458
+ if code := RunCheckDup(filepath.Join(project, ".devrites"), mode, &out, &errOut); code != 0 {
459
+ t.Fatalf("mode=%v code=%d out=%s err=%s", mode, code, &out, &errOut)
460
+ }
461
+ }
462
+ }
463
+
464
+ func TestDupGitOutputRejectsTruncation(t *testing.T) {
465
+ project := t.TempDir()
466
+ initDupRepo(t, project)
467
+ if _, err := dupGitOutput(project, nil, 1, "rev-parse", "--show-toplevel"); err == nil {
468
+ t.Fatal("truncated Git output accepted")
469
+ }
470
+ }
471
+
472
+ func TestDupStagedQuotedPathAndDiffConfig(t *testing.T) {
473
+ project := t.TempDir()
474
+ initDupRepo(t, project)
475
+ testutil.WriteFile(t, filepath.Join(project, "a.go"), dupBlockA)
476
+ runDupGit(t, project, "add", ".")
477
+ runDupGit(t, project, "commit", "-qm", "base")
478
+ name := "space name.go"
479
+ testutil.WriteFile(t, filepath.Join(project, name), dupBlockB)
480
+ runDupGit(t, project, "add", ".")
481
+ runDupGit(t, project, "config", "diff.noprefix", "true")
482
+ runDupGit(t, project, "config", "color.ui", "always")
483
+ var out, errOut bytes.Buffer
484
+ code := RunCheckDup(filepath.Join(project, ".devrites"), []string{"--staged", "--min-lines", "5"}, &out, &errOut)
485
+ if code != 0 || !strings.Contains(out.String(), "* "+name+":") {
486
+ t.Fatalf("code=%d out=%s err=%s", code, &out, &errOut)
487
+ }
488
+ }
@@ -63,6 +63,7 @@ func EnvironmentReportFor(devritesRoot, projectRoot string) (EnvironmentReport,
63
63
  probePath(abs, ".codegraph"),
64
64
  probePath(abs, ".code-review-graph"),
65
65
  probePath(abs, ".codebase-memory"),
66
+ probePath(abs, "graph.json"),
66
67
  },
67
68
  }
68
69
  if devritesRoot != "" {
@@ -34,8 +34,8 @@ func TestEnvironmentReportForDetectsManifestAndIndexes(t *testing.T) {
34
34
  if !report.Manifest.Present {
35
35
  t.Fatal("expected manifest present")
36
36
  }
37
- if len(report.Indexes) != 3 {
38
- t.Fatalf("indexes = %d, want 3", len(report.Indexes))
37
+ if len(report.Indexes) != 4 {
38
+ t.Fatalf("indexes = %d, want 4", len(report.Indexes))
39
39
  }
40
40
  if !report.Indexes[0].Present {
41
41
  t.Fatalf("expected .codegraph present, got %+v", report.Indexes)