devrites 5.13.1 → 5.14.1

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 (912) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +333 -335
  3. package/bin/devrites.mjs +1 -1
  4. package/docs/adr/0031-overhaul-agents-keep-every-tool.md +52 -0
  5. package/docs/adr/0032-single-lint-gate-and-cached-pr-tests.md +60 -0
  6. package/docs/adr/0033-rite-fast-own-agents.md +45 -0
  7. package/docs/adr/README.md +5 -2
  8. package/docs/architecture.md +7 -4
  9. package/docs/command-map.md +3 -2
  10. package/docs/engine/commands.md +11 -1
  11. package/docs/flow.md +3 -2
  12. package/docs/orchestration.md +6 -1
  13. package/docs/quick-reference.md +2 -1
  14. package/docs/skills.md +16 -8
  15. package/docs/usage.md +2 -2
  16. package/engine/.golangci.yml +56 -4
  17. package/engine/AGENTS.md +3 -3
  18. package/engine/Makefile +7 -23
  19. package/engine/go.mod +1 -1
  20. package/engine/internal/devritespaths/paths.go +2 -0
  21. package/engine/internal/hostpack/hostpack.go +6 -1
  22. package/engine/internal/hostpack/hostpack_test.go +2 -0
  23. package/engine/internal/install/apply.go +5 -3
  24. package/engine/internal/install/binary.go +3 -1
  25. package/engine/internal/install/install.go +0 -25
  26. package/engine/internal/install/install_test.go +1 -0
  27. package/engine/internal/lib/claims.go +15 -0
  28. package/engine/internal/lib/claims_test.go +28 -0
  29. package/engine/internal/lib/context_next_test.go +53 -0
  30. package/engine/internal/lib/dispatch.go +28 -7
  31. package/engine/internal/lib/manifest_union.go +14 -0
  32. package/engine/internal/overhaul/admit/admit_test.go +34 -0
  33. package/engine/internal/overhaul/admit/run.go +22 -1
  34. package/engine/internal/overhaul/bench/run.go +327 -38
  35. package/engine/internal/overhaul/bench/run_test.go +131 -0
  36. package/engine/internal/overhaul/bench/stats.go +154 -0
  37. package/engine/internal/overhaul/overhaul.go +1 -0
  38. package/engine/internal/overhaul/ovio/ovio.go +4 -0
  39. package/engine/internal/overhaul/records/check.go +27 -0
  40. package/engine/internal/overhaul/records/consistency.go +217 -0
  41. package/engine/internal/overhaul/records/init.go +132 -0
  42. package/engine/internal/overhaul/records/init_test.go +96 -0
  43. package/engine/internal/overhaul/records/records_test.go +116 -1
  44. package/engine/internal/overhaul/records/run.go +9 -1
  45. package/engine/internal/overhaul/render/run.go +520 -60
  46. package/engine/internal/overhaul/render/run_test.go +181 -8
  47. package/engine/internal/overhaul/render/visual.go +617 -0
  48. package/engine/internal/overhaul/score/run.go +58 -9
  49. package/engine/internal/overhaul/score/run_test.go +84 -8
  50. package/engine/internal/overhaul/snapshot/run.go +52 -5
  51. package/engine/internal/overhaul/snapshot/run_test.go +24 -2
  52. package/engine/internal/parallel/ops.go +5 -0
  53. package/engine/internal/state/write.go +8 -2
  54. package/engine/internal/version/version_test.go +27 -0
  55. package/engine/main.go +2 -2
  56. package/pack/.claude/agents/_shared/composition-overhaul.md +1 -0
  57. package/pack/.claude/agents/_shared/result-admission.md +3 -1
  58. package/pack/.claude/agents/devrites-code-reviewer.md +17 -7
  59. package/pack/.claude/agents/devrites-devex-reviewer.md +5 -5
  60. package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -3
  61. package/pack/.claude/agents/devrites-evidence-scout.md +10 -0
  62. package/pack/.claude/agents/devrites-frontend-reviewer.md +34 -20
  63. package/pack/.claude/agents/devrites-performance-reviewer.md +29 -11
  64. package/pack/.claude/agents/devrites-plan-reviewer.md +8 -5
  65. package/pack/.claude/agents/devrites-proof-runner.md +20 -4
  66. package/pack/.claude/agents/devrites-retrospector.md +18 -3
  67. package/pack/.claude/agents/devrites-security-auditor.md +32 -26
  68. package/pack/.claude/agents/devrites-simplifier-reviewer.md +4 -4
  69. package/pack/.claude/agents/devrites-spec-reviewer.md +4 -2
  70. package/pack/.claude/agents/devrites-strategy-reviewer.md +11 -8
  71. package/pack/.claude/agents/devrites-test-analyst.md +8 -5
  72. package/pack/.claude/agents/devrites-upgrade-planner.md +3 -0
  73. package/pack/.claude/agents/fast-builder.md +90 -0
  74. package/pack/.claude/agents/fast-checker.md +60 -0
  75. package/pack/.claude/agents/fast-critic.md +70 -0
  76. package/pack/.claude/agents/fast-planner.md +95 -0
  77. package/pack/{generated/codex/skills/overhaul/roles/backend-engineer.md → .claude/agents/overhaul-backend-engineer.md} +18 -11
  78. package/pack/{generated/codex/skills/overhaul/roles/boundary.md → .claude/agents/overhaul-boundary.md} +13 -7
  79. package/pack/{generated/codex/skills/overhaul/roles/craft.md → .claude/agents/overhaul-craft.md} +13 -7
  80. package/pack/.claude/{skills/overhaul/roles/frontend-engineer.md → agents/overhaul-frontend-engineer.md} +18 -10
  81. package/pack/{generated/codex/skills/overhaul/roles/implementer.md → .claude/agents/overhaul-implementer.md} +20 -10
  82. package/pack/{generated/codex/skills/overhaul/roles/recon.md → .claude/agents/overhaul-recon.md} +26 -12
  83. package/pack/{generated/codex/skills/overhaul/roles/specialist.md → .claude/agents/overhaul-specialist.md} +20 -11
  84. package/pack/{generated/claude/skills/overhaul/roles/verifier.md → .claude/agents/overhaul-verifier.md} +18 -7
  85. package/pack/.claude/settings.json +1 -1
  86. package/pack/.claude/skills/devrites-audit/SKILL.md +2 -1
  87. package/pack/.claude/skills/devrites-browser-proof/SKILL.md +13 -2
  88. package/pack/.claude/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
  89. package/pack/.claude/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
  90. package/pack/.claude/skills/devrites-frontend-craft/SKILL.md +4 -3
  91. package/pack/.claude/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
  92. package/pack/.claude/skills/devrites-lib/reference/intent-map.md +27 -5
  93. package/pack/.claude/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
  94. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
  95. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +21 -6
  96. package/pack/.claude/skills/devrites-lib/reference/standards/README.md +0 -1
  97. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
  98. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +34 -2
  99. package/pack/.claude/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
  100. package/pack/.claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
  101. package/pack/.claude/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
  102. package/pack/.claude/skills/devrites-lib/reference/standards/code-review.md +11 -4
  103. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
  104. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +16 -7
  105. package/pack/.claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  106. package/pack/.claude/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
  107. package/pack/.claude/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
  108. package/pack/.claude/skills/devrites-lib/reference/standards/gates.md +16 -1
  109. package/pack/.claude/skills/devrites-lib/reference/standards/performance.md +11 -0
  110. package/pack/.claude/skills/devrites-lib/reference/standards/prose-style.md +4 -3
  111. package/pack/.claude/skills/devrites-lib/reference/standards/review/README.md +6 -1
  112. package/pack/.claude/skills/devrites-lib/reference/standards/review/react.md +55 -0
  113. package/pack/.claude/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  114. package/pack/.claude/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
  115. package/pack/.claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
  116. package/pack/.claude/skills/devrites-lib/reference/standards/security.md +35 -17
  117. package/pack/.claude/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
  118. package/pack/.claude/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
  119. package/pack/.claude/skills/devrites-lib/reference/standards/testing.md +36 -0
  120. package/pack/.claude/skills/devrites-lib/reference/standards/tooling.md +22 -2
  121. package/pack/.claude/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
  122. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
  123. package/pack/.claude/skills/devrites-prose-craft/SKILL.md +9 -3
  124. package/pack/.claude/skills/devrites-prose-craft/reference/examples.md +11 -6
  125. package/pack/.claude/skills/overhaul/SKILL.md +55 -35
  126. package/pack/.claude/skills/overhaul/references/audit-domains.md +141 -14
  127. package/pack/.claude/skills/overhaul/references/lifecycle.md +8 -2
  128. package/pack/.claude/skills/overhaul/references/orchestration.md +49 -29
  129. package/pack/.claude/skills/overhaul/references/records.md +28 -6
  130. package/pack/.claude/skills/overhaul/references/repair-and-measurement.md +108 -5
  131. package/pack/.claude/skills/overhaul/references/review-and-report.md +3 -1
  132. package/pack/.claude/skills/overhaul/references/scope-and-safety.md +62 -20
  133. package/pack/.claude/skills/overhaul/references/scoring.md +36 -7
  134. package/pack/.claude/skills/overhaul/references/stack-profiles.md +52 -0
  135. package/pack/.claude/skills/rite/SKILL.md +4 -1
  136. package/pack/.claude/skills/rite-adopt/SKILL.md +5 -2
  137. package/pack/.claude/skills/rite-adopt/reference/adoption.md +6 -0
  138. package/pack/.claude/skills/rite-adopt/reference/anti-patterns.md +1 -1
  139. package/pack/.claude/skills/rite-autocomplete/SKILL.md +2 -1
  140. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +3 -1
  141. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
  142. package/pack/.claude/skills/rite-build/reference/checkpoint-protocol.md +8 -16
  143. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +9 -0
  144. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +5 -1
  145. package/pack/.claude/skills/rite-clarify/SKILL.md +1 -1
  146. package/pack/.claude/skills/rite-converge/SKILL.md +9 -2
  147. package/pack/.claude/skills/rite-converge/reference/convergence-assessment.md +5 -0
  148. package/pack/.claude/skills/rite-define/SKILL.md +6 -1
  149. package/pack/.claude/skills/rite-define/reference/plan-template.md +4 -0
  150. package/pack/.claude/skills/rite-doctor/SKILL.md +8 -2
  151. package/pack/.claude/skills/rite-fast/SKILL.md +183 -0
  152. package/pack/.claude/skills/rite-fast/reference/artifacts.md +107 -0
  153. package/pack/.claude/skills/rite-fast/reference/check-and-triage.md +51 -0
  154. package/pack/.claude/skills/rite-handoff/SKILL.md +14 -2
  155. package/pack/.claude/skills/rite-handoff/reference/handoff-template.md +16 -4
  156. package/pack/.claude/skills/rite-learn/SKILL.md +34 -4
  157. package/pack/.claude/skills/rite-plan/SKILL.md +2 -1
  158. package/pack/.claude/skills/rite-plan/reference/task-breakdown.md +6 -0
  159. package/pack/.claude/skills/rite-polish/SKILL.md +10 -4
  160. package/pack/.claude/skills/rite-polish/reference/anti-ai-slop.md +59 -36
  161. package/pack/.claude/skills/rite-polish/reference/harden-checklist.md +2 -1
  162. package/pack/.claude/skills/rite-polish/reference/ui.md +12 -3
  163. package/pack/.claude/skills/rite-pov/SKILL.md +14 -3
  164. package/pack/.claude/skills/rite-pr-feedback/SKILL.md +5 -1
  165. package/pack/.claude/skills/rite-pressure-test/SKILL.md +5 -3
  166. package/pack/.claude/skills/rite-prove/SKILL.md +12 -4
  167. package/pack/.claude/skills/rite-prove/reference/anti-patterns.md +1 -1
  168. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +12 -3
  169. package/pack/.claude/skills/rite-quick/SKILL.md +4 -0
  170. package/pack/.claude/skills/rite-resolve/SKILL.md +7 -1
  171. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +1 -1
  172. package/pack/.claude/skills/rite-review/SKILL.md +4 -1
  173. package/pack/.claude/skills/rite-review/reference/performance-checklist.md +9 -1
  174. package/pack/.claude/skills/rite-seal/SKILL.md +5 -3
  175. package/pack/.claude/skills/rite-seal/reference/anti-patterns.md +1 -1
  176. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +1 -1
  177. package/pack/.claude/skills/rite-spec/SKILL.md +12 -4
  178. package/pack/.claude/skills/rite-spec/reference/spec-template.md +4 -2
  179. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +3 -0
  180. package/pack/.claude/skills/rite-status/SKILL.md +11 -3
  181. package/pack/.claude/skills/rite-upgrade/SKILL.md +7 -1
  182. package/pack/.claude/skills/rite-vet/SKILL.md +4 -2
  183. package/pack/.claude/skills/rite-zoom-out/SKILL.md +5 -0
  184. package/pack/generated/README.md +2 -2
  185. package/pack/generated/claude/agents/devrites-code-reviewer.md +19 -5
  186. package/pack/generated/claude/agents/devrites-devex-reviewer.md +7 -3
  187. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +8 -1
  188. package/pack/generated/claude/agents/devrites-evidence-scout.md +14 -0
  189. package/pack/generated/claude/agents/devrites-frontend-reviewer.md +36 -18
  190. package/pack/generated/claude/agents/devrites-performance-reviewer.md +31 -9
  191. package/pack/generated/claude/agents/devrites-plan-reviewer.md +10 -3
  192. package/pack/generated/claude/agents/devrites-proof-runner.md +24 -4
  193. package/pack/generated/claude/agents/devrites-retrospector.md +22 -3
  194. package/pack/generated/claude/agents/devrites-security-auditor.md +34 -24
  195. package/pack/generated/claude/agents/devrites-simplifier-reviewer.md +6 -2
  196. package/pack/generated/claude/agents/devrites-spec-reviewer.md +8 -2
  197. package/pack/generated/claude/agents/devrites-strategy-reviewer.md +13 -6
  198. package/pack/generated/claude/agents/devrites-test-analyst.md +10 -3
  199. package/pack/generated/claude/agents/devrites-upgrade-planner.md +7 -0
  200. package/pack/generated/claude/agents/fast-builder.md +90 -0
  201. package/pack/generated/claude/agents/fast-checker.md +60 -0
  202. package/pack/generated/claude/agents/fast-critic.md +70 -0
  203. package/pack/generated/claude/agents/fast-planner.md +95 -0
  204. package/pack/{.claude/skills/overhaul/roles/backend-engineer.md → generated/claude/agents/overhaul-backend-engineer.md} +18 -11
  205. package/pack/generated/claude/{skills/overhaul/roles/boundary.md → agents/overhaul-boundary.md} +13 -7
  206. package/pack/generated/claude/{skills/overhaul/roles/craft.md → agents/overhaul-craft.md} +13 -7
  207. package/pack/generated/{codex/skills/overhaul/roles/frontend-engineer.md → claude/agents/overhaul-frontend-engineer.md} +18 -10
  208. package/pack/generated/claude/{skills/overhaul/roles/implementer.md → agents/overhaul-implementer.md} +20 -10
  209. package/pack/generated/claude/{skills/overhaul/roles/recon.md → agents/overhaul-recon.md} +26 -12
  210. package/pack/generated/claude/{skills/overhaul/roles/specialist.md → agents/overhaul-specialist.md} +20 -11
  211. package/pack/generated/{codex/skills/overhaul/roles/verifier.md → claude/agents/overhaul-verifier.md} +18 -7
  212. package/pack/generated/claude/settings.json +1 -1
  213. package/pack/generated/claude/skills/devrites-audit/SKILL.md +2 -1
  214. package/pack/generated/claude/skills/devrites-browser-proof/SKILL.md +13 -2
  215. package/pack/generated/claude/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
  216. package/pack/generated/claude/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
  217. package/pack/generated/claude/skills/devrites-frontend-craft/SKILL.md +4 -3
  218. package/pack/generated/claude/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
  219. package/pack/generated/claude/skills/devrites-lib/reference/intent-map.md +27 -5
  220. package/pack/generated/claude/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
  221. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
  222. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +21 -6
  223. package/pack/generated/claude/skills/devrites-lib/reference/standards/README.md +0 -1
  224. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
  225. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +34 -2
  226. package/pack/generated/claude/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
  227. package/pack/generated/claude/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
  228. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
  229. package/pack/generated/claude/skills/devrites-lib/reference/standards/code-review.md +11 -4
  230. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
  231. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +16 -7
  232. package/pack/generated/claude/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  233. package/pack/generated/claude/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
  234. package/pack/generated/claude/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
  235. package/pack/generated/claude/skills/devrites-lib/reference/standards/gates.md +16 -1
  236. package/pack/generated/claude/skills/devrites-lib/reference/standards/performance.md +11 -0
  237. package/pack/generated/claude/skills/devrites-lib/reference/standards/prose-style.md +4 -3
  238. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/README.md +6 -1
  239. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/react.md +55 -0
  240. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  241. package/pack/generated/claude/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
  242. package/pack/generated/claude/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
  243. package/pack/generated/claude/skills/devrites-lib/reference/standards/security.md +35 -17
  244. package/pack/generated/claude/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
  245. package/pack/generated/claude/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
  246. package/pack/generated/claude/skills/devrites-lib/reference/standards/testing.md +36 -0
  247. package/pack/generated/claude/skills/devrites-lib/reference/standards/tooling.md +22 -2
  248. package/pack/generated/claude/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
  249. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
  250. package/pack/generated/claude/skills/devrites-prose-craft/SKILL.md +9 -3
  251. package/pack/generated/claude/skills/devrites-prose-craft/reference/examples.md +11 -6
  252. package/pack/generated/claude/skills/overhaul/SKILL.md +55 -35
  253. package/pack/generated/claude/skills/overhaul/references/audit-domains.md +141 -14
  254. package/pack/generated/claude/skills/overhaul/references/lifecycle.md +8 -2
  255. package/pack/generated/claude/skills/overhaul/references/orchestration.md +49 -29
  256. package/pack/generated/claude/skills/overhaul/references/records.md +28 -6
  257. package/pack/generated/claude/skills/overhaul/references/repair-and-measurement.md +108 -5
  258. package/pack/generated/claude/skills/overhaul/references/review-and-report.md +3 -1
  259. package/pack/generated/claude/skills/overhaul/references/scope-and-safety.md +62 -20
  260. package/pack/generated/claude/skills/overhaul/references/scoring.md +36 -7
  261. package/pack/generated/claude/skills/overhaul/references/stack-profiles.md +52 -0
  262. package/pack/generated/claude/skills/rite/SKILL.md +4 -1
  263. package/pack/generated/claude/skills/rite-adopt/SKILL.md +5 -2
  264. package/pack/generated/claude/skills/rite-adopt/reference/adoption.md +6 -0
  265. package/pack/generated/claude/skills/rite-adopt/reference/anti-patterns.md +1 -1
  266. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +2 -1
  267. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +3 -1
  268. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
  269. package/pack/generated/claude/skills/rite-build/reference/checkpoint-protocol.md +8 -16
  270. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +9 -0
  271. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +5 -1
  272. package/pack/generated/claude/skills/rite-clarify/SKILL.md +1 -1
  273. package/pack/generated/claude/skills/rite-converge/SKILL.md +9 -2
  274. package/pack/generated/claude/skills/rite-converge/reference/convergence-assessment.md +5 -0
  275. package/pack/generated/claude/skills/rite-define/SKILL.md +6 -1
  276. package/pack/generated/claude/skills/rite-define/reference/plan-template.md +4 -0
  277. package/pack/generated/claude/skills/rite-doctor/SKILL.md +8 -2
  278. package/pack/generated/claude/skills/rite-fast/SKILL.md +183 -0
  279. package/pack/generated/claude/skills/rite-fast/reference/artifacts.md +107 -0
  280. package/pack/generated/claude/skills/rite-fast/reference/check-and-triage.md +51 -0
  281. package/pack/generated/claude/skills/rite-handoff/SKILL.md +14 -2
  282. package/pack/generated/claude/skills/rite-handoff/reference/handoff-template.md +16 -4
  283. package/pack/generated/claude/skills/rite-learn/SKILL.md +34 -4
  284. package/pack/generated/claude/skills/rite-plan/SKILL.md +2 -1
  285. package/pack/generated/claude/skills/rite-plan/reference/task-breakdown.md +6 -0
  286. package/pack/generated/claude/skills/rite-polish/SKILL.md +10 -4
  287. package/pack/generated/claude/skills/rite-polish/reference/anti-ai-slop.md +59 -36
  288. package/pack/generated/claude/skills/rite-polish/reference/harden-checklist.md +2 -1
  289. package/pack/generated/claude/skills/rite-polish/reference/ui.md +12 -3
  290. package/pack/generated/claude/skills/rite-pov/SKILL.md +14 -3
  291. package/pack/generated/claude/skills/rite-pr-feedback/SKILL.md +5 -1
  292. package/pack/generated/claude/skills/rite-pressure-test/SKILL.md +5 -3
  293. package/pack/generated/claude/skills/rite-prove/SKILL.md +12 -4
  294. package/pack/generated/claude/skills/rite-prove/reference/anti-patterns.md +1 -1
  295. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +12 -3
  296. package/pack/generated/claude/skills/rite-quick/SKILL.md +4 -0
  297. package/pack/generated/claude/skills/rite-resolve/SKILL.md +7 -1
  298. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +1 -1
  299. package/pack/generated/claude/skills/rite-review/SKILL.md +4 -1
  300. package/pack/generated/claude/skills/rite-review/reference/performance-checklist.md +9 -1
  301. package/pack/generated/claude/skills/rite-seal/SKILL.md +5 -3
  302. package/pack/generated/claude/skills/rite-seal/reference/anti-patterns.md +1 -1
  303. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +1 -1
  304. package/pack/generated/claude/skills/rite-spec/SKILL.md +12 -4
  305. package/pack/generated/claude/skills/rite-spec/reference/spec-template.md +4 -2
  306. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +3 -0
  307. package/pack/generated/claude/skills/rite-status/SKILL.md +11 -3
  308. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +7 -1
  309. package/pack/generated/claude/skills/rite-vet/SKILL.md +4 -2
  310. package/pack/generated/claude/skills/rite-zoom-out/SKILL.md +5 -0
  311. package/pack/generated/codex/AGENTS.md +2 -0
  312. package/pack/generated/codex/agents/devrites-code-reviewer.toml +19 -5
  313. package/pack/generated/codex/agents/devrites-devex-reviewer.toml +7 -3
  314. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +8 -1
  315. package/pack/generated/codex/agents/devrites-evidence-scout.toml +14 -0
  316. package/pack/generated/codex/agents/devrites-frontend-reviewer.toml +36 -18
  317. package/pack/generated/codex/agents/devrites-performance-reviewer.toml +31 -9
  318. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +10 -3
  319. package/pack/generated/codex/agents/devrites-proof-runner.toml +24 -4
  320. package/pack/generated/codex/agents/devrites-retrospector.toml +22 -3
  321. package/pack/generated/codex/agents/devrites-security-auditor.toml +34 -24
  322. package/pack/generated/codex/agents/devrites-simplifier-reviewer.toml +6 -2
  323. package/pack/generated/codex/agents/devrites-spec-reviewer.toml +8 -2
  324. package/pack/generated/codex/agents/devrites-strategy-reviewer.toml +13 -6
  325. package/pack/generated/codex/agents/devrites-test-analyst.toml +10 -3
  326. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +7 -0
  327. package/pack/generated/codex/agents/fast-builder.toml +90 -0
  328. package/pack/generated/codex/agents/fast-checker.toml +60 -0
  329. package/pack/generated/codex/agents/fast-critic.toml +70 -0
  330. package/pack/generated/codex/agents/fast-planner.toml +95 -0
  331. package/pack/generated/{devin/skills/overhaul/roles/backend-engineer.md → codex/agents/overhaul-backend-engineer.toml} +20 -11
  332. package/pack/{.claude/skills/overhaul/roles/boundary.md → generated/codex/agents/overhaul-boundary.toml} +15 -7
  333. package/pack/generated/{devin/skills/overhaul/roles/craft.md → codex/agents/overhaul-craft.toml} +15 -7
  334. package/pack/generated/{claude/skills/overhaul/roles/frontend-engineer.md → codex/agents/overhaul-frontend-engineer.toml} +20 -10
  335. package/pack/generated/{devin/skills/overhaul/roles/implementer.md → codex/agents/overhaul-implementer.toml} +22 -10
  336. package/pack/generated/{devin/skills/overhaul/roles/recon.md → codex/agents/overhaul-recon.toml} +28 -12
  337. package/pack/generated/{devin/skills/overhaul/roles/specialist.md → codex/agents/overhaul-specialist.toml} +22 -11
  338. package/pack/{.claude/skills/overhaul/roles/verifier.md → generated/codex/agents/overhaul-verifier.toml} +20 -7
  339. package/pack/generated/codex/skills/devrites-audit/SKILL.md +2 -1
  340. package/pack/generated/codex/skills/devrites-browser-proof/SKILL.md +13 -2
  341. package/pack/generated/codex/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
  342. package/pack/generated/codex/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
  343. package/pack/generated/codex/skills/devrites-frontend-craft/SKILL.md +4 -3
  344. package/pack/generated/codex/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
  345. package/pack/generated/codex/skills/devrites-lib/reference/intent-map.md +27 -5
  346. package/pack/generated/codex/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
  347. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
  348. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +21 -6
  349. package/pack/generated/codex/skills/devrites-lib/reference/standards/README.md +0 -1
  350. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
  351. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +34 -2
  352. package/pack/generated/codex/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
  353. package/pack/generated/codex/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
  354. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
  355. package/pack/generated/codex/skills/devrites-lib/reference/standards/code-review.md +11 -4
  356. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
  357. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +16 -7
  358. package/pack/generated/codex/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  359. package/pack/generated/codex/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
  360. package/pack/generated/codex/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
  361. package/pack/generated/codex/skills/devrites-lib/reference/standards/gates.md +16 -1
  362. package/pack/generated/codex/skills/devrites-lib/reference/standards/performance.md +11 -0
  363. package/pack/generated/codex/skills/devrites-lib/reference/standards/prose-style.md +4 -3
  364. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/README.md +6 -1
  365. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/react.md +55 -0
  366. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  367. package/pack/generated/codex/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
  368. package/pack/generated/codex/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
  369. package/pack/generated/codex/skills/devrites-lib/reference/standards/security.md +35 -17
  370. package/pack/generated/codex/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
  371. package/pack/generated/codex/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
  372. package/pack/generated/codex/skills/devrites-lib/reference/standards/testing.md +36 -0
  373. package/pack/generated/codex/skills/devrites-lib/reference/standards/tooling.md +22 -2
  374. package/pack/generated/codex/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
  375. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
  376. package/pack/generated/codex/skills/devrites-prose-craft/SKILL.md +9 -3
  377. package/pack/generated/codex/skills/devrites-prose-craft/reference/examples.md +11 -6
  378. package/pack/generated/codex/skills/overhaul/SKILL.md +55 -35
  379. package/pack/generated/codex/skills/overhaul/references/audit-domains.md +141 -14
  380. package/pack/generated/codex/skills/overhaul/references/lifecycle.md +8 -2
  381. package/pack/generated/codex/skills/overhaul/references/orchestration.md +49 -29
  382. package/pack/generated/codex/skills/overhaul/references/records.md +28 -6
  383. package/pack/generated/codex/skills/overhaul/references/repair-and-measurement.md +108 -5
  384. package/pack/generated/codex/skills/overhaul/references/review-and-report.md +3 -1
  385. package/pack/generated/codex/skills/overhaul/references/scope-and-safety.md +62 -20
  386. package/pack/generated/codex/skills/overhaul/references/scoring.md +36 -7
  387. package/pack/generated/codex/skills/overhaul/references/stack-profiles.md +52 -0
  388. package/pack/generated/codex/skills/rite/SKILL.md +4 -1
  389. package/pack/generated/codex/skills/rite-adopt/SKILL.md +5 -2
  390. package/pack/generated/codex/skills/rite-adopt/reference/adoption.md +6 -0
  391. package/pack/generated/codex/skills/rite-adopt/reference/anti-patterns.md +1 -1
  392. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +2 -1
  393. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +3 -1
  394. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
  395. package/pack/generated/codex/skills/rite-build/reference/checkpoint-protocol.md +8 -16
  396. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +9 -0
  397. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +5 -1
  398. package/pack/generated/codex/skills/rite-clarify/SKILL.md +1 -1
  399. package/pack/generated/codex/skills/rite-converge/SKILL.md +9 -2
  400. package/pack/generated/codex/skills/rite-converge/reference/convergence-assessment.md +5 -0
  401. package/pack/generated/codex/skills/rite-define/SKILL.md +6 -1
  402. package/pack/generated/codex/skills/rite-define/reference/plan-template.md +4 -0
  403. package/pack/generated/codex/skills/rite-doctor/SKILL.md +8 -2
  404. package/pack/generated/codex/skills/rite-fast/SKILL.md +183 -0
  405. package/pack/generated/codex/skills/rite-fast/agents/openai.yaml +2 -0
  406. package/pack/generated/codex/skills/rite-fast/reference/artifacts.md +107 -0
  407. package/pack/generated/codex/skills/rite-fast/reference/check-and-triage.md +51 -0
  408. package/pack/generated/codex/skills/rite-handoff/SKILL.md +14 -2
  409. package/pack/generated/codex/skills/rite-handoff/reference/handoff-template.md +16 -4
  410. package/pack/generated/codex/skills/rite-learn/SKILL.md +34 -4
  411. package/pack/generated/codex/skills/rite-plan/SKILL.md +2 -1
  412. package/pack/generated/codex/skills/rite-plan/reference/task-breakdown.md +6 -0
  413. package/pack/generated/codex/skills/rite-polish/SKILL.md +10 -4
  414. package/pack/generated/codex/skills/rite-polish/reference/anti-ai-slop.md +59 -36
  415. package/pack/generated/codex/skills/rite-polish/reference/harden-checklist.md +2 -1
  416. package/pack/generated/codex/skills/rite-polish/reference/ui.md +12 -3
  417. package/pack/generated/codex/skills/rite-pov/SKILL.md +14 -3
  418. package/pack/generated/codex/skills/rite-pr-feedback/SKILL.md +5 -1
  419. package/pack/generated/codex/skills/rite-pressure-test/SKILL.md +5 -3
  420. package/pack/generated/codex/skills/rite-prove/SKILL.md +12 -4
  421. package/pack/generated/codex/skills/rite-prove/reference/anti-patterns.md +1 -1
  422. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +12 -3
  423. package/pack/generated/codex/skills/rite-quick/SKILL.md +4 -0
  424. package/pack/generated/codex/skills/rite-resolve/SKILL.md +7 -1
  425. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +1 -1
  426. package/pack/generated/codex/skills/rite-review/SKILL.md +4 -1
  427. package/pack/generated/codex/skills/rite-review/reference/performance-checklist.md +9 -1
  428. package/pack/generated/codex/skills/rite-seal/SKILL.md +5 -3
  429. package/pack/generated/codex/skills/rite-seal/reference/anti-patterns.md +1 -1
  430. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +1 -1
  431. package/pack/generated/codex/skills/rite-spec/SKILL.md +12 -4
  432. package/pack/generated/codex/skills/rite-spec/reference/spec-template.md +4 -2
  433. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +3 -0
  434. package/pack/generated/codex/skills/rite-status/SKILL.md +11 -3
  435. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +7 -1
  436. package/pack/generated/codex/skills/rite-vet/SKILL.md +4 -2
  437. package/pack/generated/codex/skills/rite-zoom-out/SKILL.md +5 -0
  438. package/pack/generated/devin/AGENTS.md +2 -0
  439. package/pack/generated/devin/agents/devrites-code-reviewer.md +19 -4
  440. package/pack/generated/devin/agents/devrites-devex-reviewer.md +7 -2
  441. package/pack/generated/devin/agents/devrites-doubt-reviewer.md +8 -0
  442. package/pack/generated/devin/agents/devrites-evidence-scout.md +14 -0
  443. package/pack/generated/devin/agents/devrites-frontend-reviewer.md +36 -17
  444. package/pack/generated/devin/agents/devrites-performance-reviewer.md +31 -8
  445. package/pack/generated/devin/agents/devrites-plan-reviewer.md +10 -2
  446. package/pack/generated/devin/agents/devrites-proof-runner.md +24 -4
  447. package/pack/generated/devin/agents/devrites-retrospector.md +22 -3
  448. package/pack/generated/devin/agents/devrites-security-auditor.md +34 -23
  449. package/pack/generated/devin/agents/devrites-simplifier-reviewer.md +6 -1
  450. package/pack/generated/devin/agents/devrites-spec-reviewer.md +8 -2
  451. package/pack/generated/devin/agents/devrites-strategy-reviewer.md +13 -5
  452. package/pack/generated/devin/agents/devrites-test-analyst.md +10 -2
  453. package/pack/generated/devin/agents/devrites-upgrade-planner.md +7 -0
  454. package/pack/generated/devin/agents/fast-builder.md +96 -0
  455. package/pack/generated/devin/agents/fast-checker.md +63 -0
  456. package/pack/generated/devin/agents/fast-critic.md +73 -0
  457. package/pack/generated/devin/agents/fast-planner.md +98 -0
  458. package/pack/generated/{claude/skills/overhaul/roles/backend-engineer.md → devin/agents/overhaul-backend-engineer.md} +26 -11
  459. package/pack/generated/devin/{skills/overhaul/roles/boundary.md → agents/overhaul-boundary.md} +21 -7
  460. package/pack/{.claude/skills/overhaul/roles/craft.md → generated/devin/agents/overhaul-craft.md} +21 -7
  461. package/pack/generated/devin/{skills/overhaul/roles/frontend-engineer.md → agents/overhaul-frontend-engineer.md} +26 -10
  462. package/pack/{.claude/skills/overhaul/roles/implementer.md → generated/devin/agents/overhaul-implementer.md} +28 -10
  463. package/pack/{.claude/skills/overhaul/roles/recon.md → generated/devin/agents/overhaul-recon.md} +34 -12
  464. package/pack/{.claude/skills/overhaul/roles/specialist.md → generated/devin/agents/overhaul-specialist.md} +28 -11
  465. package/pack/generated/devin/{skills/overhaul/roles/verifier.md → agents/overhaul-verifier.md} +26 -7
  466. package/pack/generated/devin/skills/devrites-audit/SKILL.md +2 -1
  467. package/pack/generated/devin/skills/devrites-browser-proof/SKILL.md +13 -2
  468. package/pack/generated/devin/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
  469. package/pack/generated/devin/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
  470. package/pack/generated/devin/skills/devrites-frontend-craft/SKILL.md +4 -3
  471. package/pack/generated/devin/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
  472. package/pack/generated/devin/skills/devrites-lib/reference/intent-map.md +27 -5
  473. package/pack/generated/devin/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
  474. package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
  475. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +21 -6
  476. package/pack/generated/devin/skills/devrites-lib/reference/standards/README.md +0 -1
  477. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
  478. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +34 -2
  479. package/pack/generated/devin/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
  480. package/pack/generated/devin/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
  481. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
  482. package/pack/generated/devin/skills/devrites-lib/reference/standards/code-review.md +11 -4
  483. package/pack/generated/devin/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
  484. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +16 -7
  485. package/pack/generated/devin/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  486. package/pack/generated/devin/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
  487. package/pack/generated/devin/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
  488. package/pack/generated/devin/skills/devrites-lib/reference/standards/gates.md +16 -1
  489. package/pack/generated/devin/skills/devrites-lib/reference/standards/performance.md +11 -0
  490. package/pack/generated/devin/skills/devrites-lib/reference/standards/prose-style.md +4 -3
  491. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/README.md +6 -1
  492. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/react.md +55 -0
  493. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  494. package/pack/generated/devin/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
  495. package/pack/generated/devin/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
  496. package/pack/generated/devin/skills/devrites-lib/reference/standards/security.md +35 -17
  497. package/pack/generated/devin/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
  498. package/pack/generated/devin/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
  499. package/pack/generated/devin/skills/devrites-lib/reference/standards/testing.md +36 -0
  500. package/pack/generated/devin/skills/devrites-lib/reference/standards/tooling.md +22 -2
  501. package/pack/generated/devin/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
  502. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
  503. package/pack/generated/devin/skills/devrites-prose-craft/SKILL.md +9 -3
  504. package/pack/generated/devin/skills/devrites-prose-craft/reference/examples.md +11 -6
  505. package/pack/generated/devin/skills/overhaul/SKILL.md +55 -35
  506. package/pack/generated/devin/skills/overhaul/references/audit-domains.md +141 -14
  507. package/pack/generated/devin/skills/overhaul/references/lifecycle.md +8 -2
  508. package/pack/generated/devin/skills/overhaul/references/orchestration.md +49 -29
  509. package/pack/generated/devin/skills/overhaul/references/records.md +28 -6
  510. package/pack/generated/devin/skills/overhaul/references/repair-and-measurement.md +108 -5
  511. package/pack/generated/devin/skills/overhaul/references/review-and-report.md +3 -1
  512. package/pack/generated/devin/skills/overhaul/references/scope-and-safety.md +62 -20
  513. package/pack/generated/devin/skills/overhaul/references/scoring.md +36 -7
  514. package/pack/generated/devin/skills/overhaul/references/stack-profiles.md +52 -0
  515. package/pack/generated/devin/skills/rite/SKILL.md +4 -1
  516. package/pack/generated/devin/skills/rite-adopt/SKILL.md +5 -2
  517. package/pack/generated/devin/skills/rite-adopt/reference/adoption.md +6 -0
  518. package/pack/generated/devin/skills/rite-adopt/reference/anti-patterns.md +1 -1
  519. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +2 -1
  520. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +3 -1
  521. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
  522. package/pack/generated/devin/skills/rite-build/reference/checkpoint-protocol.md +8 -16
  523. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +9 -0
  524. package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +5 -1
  525. package/pack/generated/devin/skills/rite-clarify/SKILL.md +1 -1
  526. package/pack/generated/devin/skills/rite-converge/SKILL.md +9 -2
  527. package/pack/generated/devin/skills/rite-converge/reference/convergence-assessment.md +5 -0
  528. package/pack/generated/devin/skills/rite-define/SKILL.md +6 -1
  529. package/pack/generated/devin/skills/rite-define/reference/plan-template.md +4 -0
  530. package/pack/generated/devin/skills/rite-doctor/SKILL.md +8 -2
  531. package/pack/generated/devin/skills/rite-fast/SKILL.md +183 -0
  532. package/pack/generated/devin/skills/rite-fast/reference/artifacts.md +107 -0
  533. package/pack/generated/devin/skills/rite-fast/reference/check-and-triage.md +51 -0
  534. package/pack/generated/devin/skills/rite-handoff/SKILL.md +14 -2
  535. package/pack/generated/devin/skills/rite-handoff/reference/handoff-template.md +16 -4
  536. package/pack/generated/devin/skills/rite-learn/SKILL.md +34 -4
  537. package/pack/generated/devin/skills/rite-plan/SKILL.md +2 -1
  538. package/pack/generated/devin/skills/rite-plan/reference/task-breakdown.md +6 -0
  539. package/pack/generated/devin/skills/rite-polish/SKILL.md +10 -4
  540. package/pack/generated/devin/skills/rite-polish/reference/anti-ai-slop.md +59 -36
  541. package/pack/generated/devin/skills/rite-polish/reference/harden-checklist.md +2 -1
  542. package/pack/generated/devin/skills/rite-polish/reference/ui.md +12 -3
  543. package/pack/generated/devin/skills/rite-pov/SKILL.md +14 -3
  544. package/pack/generated/devin/skills/rite-pr-feedback/SKILL.md +5 -1
  545. package/pack/generated/devin/skills/rite-pressure-test/SKILL.md +5 -3
  546. package/pack/generated/devin/skills/rite-prove/SKILL.md +12 -4
  547. package/pack/generated/devin/skills/rite-prove/reference/anti-patterns.md +1 -1
  548. package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +12 -3
  549. package/pack/generated/devin/skills/rite-quick/SKILL.md +4 -0
  550. package/pack/generated/devin/skills/rite-resolve/SKILL.md +7 -1
  551. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +1 -1
  552. package/pack/generated/devin/skills/rite-review/SKILL.md +4 -1
  553. package/pack/generated/devin/skills/rite-review/reference/performance-checklist.md +9 -1
  554. package/pack/generated/devin/skills/rite-seal/SKILL.md +5 -3
  555. package/pack/generated/devin/skills/rite-seal/reference/anti-patterns.md +1 -1
  556. package/pack/generated/devin/skills/rite-seal/reference/phase-contract.md +1 -1
  557. package/pack/generated/devin/skills/rite-spec/SKILL.md +12 -4
  558. package/pack/generated/devin/skills/rite-spec/reference/spec-template.md +4 -2
  559. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +3 -0
  560. package/pack/generated/devin/skills/rite-status/SKILL.md +11 -3
  561. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +7 -1
  562. package/pack/generated/devin/skills/rite-vet/SKILL.md +4 -2
  563. package/pack/generated/devin/skills/rite-zoom-out/SKILL.md +5 -0
  564. package/pack/generated/omp/agents/devrites-code-reviewer.md +19 -4
  565. package/pack/generated/omp/agents/devrites-devex-reviewer.md +7 -2
  566. package/pack/generated/omp/agents/devrites-doubt-reviewer.md +8 -0
  567. package/pack/generated/omp/agents/devrites-evidence-scout.md +15 -1
  568. package/pack/generated/omp/agents/devrites-frontend-reviewer.md +37 -17
  569. package/pack/generated/omp/agents/devrites-performance-reviewer.md +31 -8
  570. package/pack/generated/omp/agents/devrites-plan-reviewer.md +10 -2
  571. package/pack/generated/omp/agents/devrites-proof-runner.md +24 -4
  572. package/pack/generated/omp/agents/devrites-retrospector.md +22 -3
  573. package/pack/generated/omp/agents/devrites-security-auditor.md +34 -23
  574. package/pack/generated/omp/agents/devrites-simplifier-reviewer.md +6 -1
  575. package/pack/generated/omp/agents/devrites-slice-wright.md +6 -6
  576. package/pack/generated/omp/agents/devrites-spec-reviewer.md +8 -2
  577. package/pack/generated/omp/agents/devrites-strategy-reviewer.md +13 -5
  578. package/pack/generated/omp/agents/devrites-test-analyst.md +10 -2
  579. package/pack/generated/omp/agents/devrites-upgrade-planner.md +7 -0
  580. package/pack/generated/omp/agents/fast-builder.md +89 -0
  581. package/pack/generated/omp/agents/fast-checker.md +59 -0
  582. package/pack/generated/omp/agents/fast-critic.md +69 -0
  583. package/pack/generated/omp/agents/fast-planner.md +94 -0
  584. package/pack/generated/omp/agents/overhaul-backend-engineer.md +69 -0
  585. package/pack/generated/omp/agents/overhaul-boundary.md +63 -0
  586. package/pack/generated/omp/agents/overhaul-craft.md +84 -0
  587. package/pack/generated/omp/agents/overhaul-frontend-engineer.md +72 -0
  588. package/pack/generated/omp/agents/overhaul-implementer.md +70 -0
  589. package/pack/generated/omp/agents/overhaul-recon.md +75 -0
  590. package/pack/generated/omp/agents/overhaul-specialist.md +66 -0
  591. package/pack/generated/omp/agents/overhaul-verifier.md +72 -0
  592. package/pack/generated/omp/commands/rite-adopt.md +5 -0
  593. package/pack/generated/omp/commands/rite-autocomplete.md +5 -0
  594. package/pack/generated/omp/commands/rite-build.md +5 -0
  595. package/pack/generated/omp/commands/rite-clarify.md +5 -0
  596. package/pack/generated/omp/commands/rite-converge.md +5 -0
  597. package/pack/generated/omp/commands/rite-customize.md +5 -0
  598. package/pack/generated/omp/commands/rite-define.md +5 -0
  599. package/pack/generated/omp/commands/rite-doctor.md +5 -0
  600. package/pack/generated/omp/commands/rite-dogfood.md +5 -0
  601. package/pack/generated/omp/commands/rite-explain.md +5 -0
  602. package/pack/generated/omp/commands/rite-fast.md +5 -0
  603. package/pack/generated/omp/commands/rite-frame.md +5 -0
  604. package/pack/generated/omp/commands/rite-handoff.md +5 -0
  605. package/pack/generated/omp/commands/rite-learn.md +5 -0
  606. package/pack/generated/omp/commands/rite-plan.md +5 -0
  607. package/pack/generated/omp/commands/rite-polish.md +5 -0
  608. package/pack/generated/omp/commands/rite-pov.md +5 -0
  609. package/pack/generated/omp/commands/rite-pr-feedback.md +5 -0
  610. package/pack/generated/omp/commands/rite-pressure-test.md +5 -0
  611. package/pack/generated/omp/commands/rite-prototype.md +5 -0
  612. package/pack/generated/omp/commands/rite-prove.md +5 -0
  613. package/pack/generated/omp/commands/rite-quick.md +5 -0
  614. package/pack/generated/omp/commands/rite-resolve.md +5 -0
  615. package/pack/generated/omp/commands/rite-review.md +5 -0
  616. package/pack/generated/omp/commands/rite-seal.md +5 -0
  617. package/pack/generated/omp/commands/rite-ship.md +5 -0
  618. package/pack/generated/omp/commands/rite-spec.md +5 -0
  619. package/pack/generated/omp/commands/rite-status.md +5 -0
  620. package/pack/generated/omp/commands/rite-temper.md +5 -0
  621. package/pack/generated/omp/commands/rite-upgrade.md +5 -0
  622. package/pack/generated/omp/commands/rite-vet.md +5 -0
  623. package/pack/generated/omp/commands/rite-watch-pr.md +5 -0
  624. package/pack/generated/omp/commands/rite-zoom-out.md +5 -0
  625. package/pack/generated/omp/commands/rite.md +5 -0
  626. package/pack/generated/omp/skills/devrites-audit/SKILL.md +2 -1
  627. package/pack/generated/omp/skills/devrites-browser-proof/SKILL.md +13 -2
  628. package/pack/generated/omp/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
  629. package/pack/generated/omp/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
  630. package/pack/generated/omp/skills/devrites-frontend-craft/SKILL.md +4 -3
  631. package/pack/generated/omp/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
  632. package/pack/generated/omp/skills/devrites-interview/SKILL.md +1 -1
  633. package/pack/generated/omp/skills/devrites-lib/reference/intent-map.md +27 -5
  634. package/pack/generated/omp/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
  635. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
  636. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +21 -6
  637. package/pack/generated/omp/skills/devrites-lib/reference/standards/README.md +0 -1
  638. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +11 -18
  639. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +35 -3
  640. package/pack/generated/omp/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
  641. package/pack/generated/omp/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
  642. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
  643. package/pack/generated/omp/skills/devrites-lib/reference/standards/code-review.md +11 -4
  644. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
  645. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +16 -7
  646. package/pack/generated/omp/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  647. package/pack/generated/omp/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
  648. package/pack/generated/omp/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
  649. package/pack/generated/omp/skills/devrites-lib/reference/standards/gates.md +16 -1
  650. package/pack/generated/omp/skills/devrites-lib/reference/standards/performance.md +11 -0
  651. package/pack/generated/omp/skills/devrites-lib/reference/standards/prose-style.md +4 -3
  652. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/README.md +6 -1
  653. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/react.md +55 -0
  654. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  655. package/pack/generated/omp/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
  656. package/pack/generated/omp/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
  657. package/pack/generated/omp/skills/devrites-lib/reference/standards/security.md +35 -17
  658. package/pack/generated/omp/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
  659. package/pack/generated/omp/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
  660. package/pack/generated/omp/skills/devrites-lib/reference/standards/testing.md +36 -0
  661. package/pack/generated/omp/skills/devrites-lib/reference/standards/tooling.md +22 -2
  662. package/pack/generated/omp/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
  663. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
  664. package/pack/generated/omp/skills/devrites-prose-craft/SKILL.md +9 -3
  665. package/pack/generated/omp/skills/devrites-prose-craft/reference/examples.md +11 -6
  666. package/pack/generated/omp/skills/overhaul/SKILL.md +55 -35
  667. package/pack/generated/omp/skills/overhaul/references/audit-domains.md +141 -14
  668. package/pack/generated/omp/skills/overhaul/references/lifecycle.md +8 -2
  669. package/pack/generated/omp/skills/overhaul/references/orchestration.md +49 -29
  670. package/pack/generated/omp/skills/overhaul/references/records.md +28 -6
  671. package/pack/generated/omp/skills/overhaul/references/repair-and-measurement.md +108 -5
  672. package/pack/generated/omp/skills/overhaul/references/review-and-report.md +3 -1
  673. package/pack/generated/omp/skills/overhaul/references/scope-and-safety.md +62 -20
  674. package/pack/generated/omp/skills/overhaul/references/scoring.md +36 -7
  675. package/pack/generated/omp/skills/overhaul/references/stack-profiles.md +52 -0
  676. package/pack/generated/omp/skills/rite/SKILL.md +4 -1
  677. package/pack/generated/omp/skills/rite-adopt/SKILL.md +5 -2
  678. package/pack/generated/omp/skills/rite-adopt/reference/adoption.md +6 -0
  679. package/pack/generated/omp/skills/rite-adopt/reference/anti-patterns.md +1 -1
  680. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +2 -1
  681. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +3 -1
  682. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
  683. package/pack/generated/omp/skills/rite-build/reference/checkpoint-protocol.md +10 -18
  684. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +10 -1
  685. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +6 -2
  686. package/pack/generated/omp/skills/rite-clarify/SKILL.md +1 -1
  687. package/pack/generated/omp/skills/rite-converge/SKILL.md +9 -2
  688. package/pack/generated/omp/skills/rite-converge/reference/convergence-assessment.md +5 -0
  689. package/pack/generated/omp/skills/rite-define/SKILL.md +6 -1
  690. package/pack/generated/omp/skills/rite-define/reference/plan-template.md +4 -0
  691. package/pack/generated/omp/skills/rite-doctor/SKILL.md +8 -2
  692. package/pack/generated/omp/skills/rite-explain/SKILL.md +2 -2
  693. package/pack/generated/omp/skills/rite-explain/reference/intake.md +1 -1
  694. package/pack/generated/omp/skills/rite-fast/SKILL.md +183 -0
  695. package/pack/generated/omp/skills/rite-fast/reference/artifacts.md +107 -0
  696. package/pack/generated/omp/skills/rite-fast/reference/check-and-triage.md +51 -0
  697. package/pack/generated/omp/skills/rite-handoff/SKILL.md +14 -2
  698. package/pack/generated/omp/skills/rite-handoff/reference/handoff-template.md +16 -4
  699. package/pack/generated/omp/skills/rite-learn/SKILL.md +34 -4
  700. package/pack/generated/omp/skills/rite-plan/SKILL.md +2 -1
  701. package/pack/generated/omp/skills/rite-plan/reference/task-breakdown.md +6 -0
  702. package/pack/generated/omp/skills/rite-polish/SKILL.md +10 -4
  703. package/pack/generated/omp/skills/rite-polish/reference/anti-ai-slop.md +59 -36
  704. package/pack/generated/omp/skills/rite-polish/reference/harden-checklist.md +2 -1
  705. package/pack/generated/omp/skills/rite-polish/reference/ui.md +12 -3
  706. package/pack/generated/omp/skills/rite-pov/SKILL.md +14 -3
  707. package/pack/generated/omp/skills/rite-pr-feedback/SKILL.md +5 -1
  708. package/pack/generated/omp/skills/rite-pressure-test/SKILL.md +5 -3
  709. package/pack/generated/omp/skills/rite-prove/SKILL.md +12 -4
  710. package/pack/generated/omp/skills/rite-prove/reference/anti-patterns.md +1 -1
  711. package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +12 -3
  712. package/pack/generated/omp/skills/rite-quick/SKILL.md +4 -0
  713. package/pack/generated/omp/skills/rite-resolve/SKILL.md +8 -2
  714. package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +1 -1
  715. package/pack/generated/omp/skills/rite-review/SKILL.md +4 -1
  716. package/pack/generated/omp/skills/rite-review/reference/performance-checklist.md +9 -1
  717. package/pack/generated/omp/skills/rite-seal/SKILL.md +5 -3
  718. package/pack/generated/omp/skills/rite-seal/reference/anti-patterns.md +1 -1
  719. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +1 -1
  720. package/pack/generated/omp/skills/rite-spec/SKILL.md +12 -4
  721. package/pack/generated/omp/skills/rite-spec/reference/investigation.md +1 -1
  722. package/pack/generated/omp/skills/rite-spec/reference/spec-template.md +4 -2
  723. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +3 -0
  724. package/pack/generated/omp/skills/rite-status/SKILL.md +11 -3
  725. package/pack/generated/omp/skills/rite-temper/SKILL.md +1 -1
  726. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -1
  727. package/pack/generated/omp/skills/rite-vet/SKILL.md +4 -2
  728. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +2 -2
  729. package/pack/generated/omp/skills/rite-zoom-out/SKILL.md +5 -0
  730. package/pack/generated/pi/AGENTS.md +2 -0
  731. package/pack/generated/pi/agents/devrites-code-reviewer.md +19 -4
  732. package/pack/generated/pi/agents/devrites-devex-reviewer.md +7 -2
  733. package/pack/generated/pi/agents/devrites-doubt-reviewer.md +8 -0
  734. package/pack/generated/pi/agents/devrites-evidence-scout.md +14 -0
  735. package/pack/generated/pi/agents/devrites-frontend-reviewer.md +36 -17
  736. package/pack/generated/pi/agents/devrites-performance-reviewer.md +31 -8
  737. package/pack/generated/pi/agents/devrites-plan-reviewer.md +10 -2
  738. package/pack/generated/pi/agents/devrites-proof-runner.md +24 -4
  739. package/pack/generated/pi/agents/devrites-retrospector.md +22 -3
  740. package/pack/generated/pi/agents/devrites-security-auditor.md +34 -23
  741. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +6 -1
  742. package/pack/generated/pi/agents/devrites-spec-reviewer.md +8 -2
  743. package/pack/generated/pi/agents/devrites-strategy-reviewer.md +13 -5
  744. package/pack/generated/pi/agents/devrites-test-analyst.md +10 -2
  745. package/pack/generated/pi/agents/devrites-upgrade-planner.md +7 -0
  746. package/pack/generated/pi/agents/fast-builder.md +90 -0
  747. package/pack/generated/pi/agents/fast-checker.md +60 -0
  748. package/pack/generated/pi/agents/fast-critic.md +70 -0
  749. package/pack/generated/pi/agents/fast-planner.md +95 -0
  750. package/pack/generated/pi/agents/overhaul-backend-engineer.md +70 -0
  751. package/pack/generated/pi/agents/overhaul-boundary.md +64 -0
  752. package/pack/generated/pi/agents/overhaul-craft.md +85 -0
  753. package/pack/generated/pi/agents/overhaul-frontend-engineer.md +73 -0
  754. package/pack/generated/pi/agents/overhaul-implementer.md +71 -0
  755. package/pack/generated/pi/agents/overhaul-recon.md +76 -0
  756. package/pack/generated/pi/agents/overhaul-specialist.md +67 -0
  757. package/pack/generated/pi/agents/overhaul-verifier.md +73 -0
  758. package/pack/generated/pi/prompts/rite-adopt.md +1 -1
  759. package/pack/generated/pi/prompts/rite-autocomplete.md +1 -1
  760. package/pack/generated/pi/prompts/rite-build.md +1 -1
  761. package/pack/generated/pi/prompts/rite-clarify.md +1 -1
  762. package/pack/generated/pi/prompts/rite-converge.md +2 -2
  763. package/pack/generated/pi/prompts/rite-customize.md +1 -1
  764. package/pack/generated/pi/prompts/rite-define.md +1 -1
  765. package/pack/generated/pi/prompts/rite-doctor.md +1 -1
  766. package/pack/generated/pi/prompts/rite-dogfood.md +1 -1
  767. package/pack/generated/pi/prompts/rite-explain.md +1 -1
  768. package/pack/generated/pi/prompts/rite-fast.md +5 -0
  769. package/pack/generated/pi/prompts/rite-frame.md +1 -1
  770. package/pack/generated/pi/prompts/rite-handoff.md +1 -1
  771. package/pack/generated/pi/prompts/rite-learn.md +1 -1
  772. package/pack/generated/pi/prompts/rite-plan.md +1 -1
  773. package/pack/generated/pi/prompts/rite-polish.md +1 -1
  774. package/pack/generated/pi/prompts/rite-pov.md +1 -1
  775. package/pack/generated/pi/prompts/rite-pr-feedback.md +1 -1
  776. package/pack/generated/pi/prompts/rite-pressure-test.md +1 -1
  777. package/pack/generated/pi/prompts/rite-prototype.md +1 -1
  778. package/pack/generated/pi/prompts/rite-prove.md +1 -1
  779. package/pack/generated/pi/prompts/rite-quick.md +1 -1
  780. package/pack/generated/pi/prompts/rite-resolve.md +1 -1
  781. package/pack/generated/pi/prompts/rite-review.md +1 -1
  782. package/pack/generated/pi/prompts/rite-seal.md +1 -1
  783. package/pack/generated/pi/prompts/rite-ship.md +1 -1
  784. package/pack/generated/pi/prompts/rite-spec.md +1 -1
  785. package/pack/generated/pi/prompts/rite-status.md +1 -1
  786. package/pack/generated/pi/prompts/rite-temper.md +1 -1
  787. package/pack/generated/pi/prompts/rite-upgrade.md +1 -1
  788. package/pack/generated/pi/prompts/rite-vet.md +1 -1
  789. package/pack/generated/pi/prompts/rite-watch-pr.md +1 -1
  790. package/pack/generated/pi/prompts/rite-zoom-out.md +1 -1
  791. package/pack/generated/pi/prompts/rite.md +1 -1
  792. package/pack/generated/pi/skills/devrites-audit/SKILL.md +2 -1
  793. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +13 -2
  794. package/pack/generated/pi/skills/devrites-browser-proof/reference/browser-performance.md +7 -4
  795. package/pack/generated/pi/skills/devrites-browser-proof/reference/visual-verdict.md +14 -10
  796. package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +4 -3
  797. package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +22 -32
  798. package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +27 -5
  799. package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +1 -2
  800. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +60 -8
  801. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +21 -6
  802. package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +0 -1
  803. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +9 -16
  804. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +34 -2
  805. package/pack/generated/pi/skills/devrites-lib/reference/standards/audit-coverage.md +5 -1
  806. package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +14 -3
  807. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +8 -2
  808. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +11 -4
  809. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +17 -6
  810. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +16 -7
  811. package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +1 -1
  812. package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +3 -1
  813. package/pack/generated/pi/skills/devrites-lib/reference/standards/duplicate-code.md +11 -0
  814. package/pack/generated/pi/skills/devrites-lib/reference/standards/gates.md +16 -1
  815. package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +11 -0
  816. package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +4 -3
  817. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/README.md +6 -1
  818. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/react.md +55 -0
  819. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/stack-profile.md +155 -0
  820. package/pack/generated/pi/skills/devrites-lib/reference/standards/review/ts-js.md +22 -2
  821. package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +6 -3
  822. package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +35 -17
  823. package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +8 -12
  824. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +4 -1
  825. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +36 -0
  826. package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +22 -2
  827. package/pack/generated/pi/skills/devrites-lib/reference/standards/verification-methods.md +33 -0
  828. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
  829. package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +9 -3
  830. package/pack/generated/pi/skills/devrites-prose-craft/reference/examples.md +11 -6
  831. package/pack/generated/pi/skills/overhaul/SKILL.md +55 -35
  832. package/pack/generated/pi/skills/overhaul/references/audit-domains.md +141 -14
  833. package/pack/generated/pi/skills/overhaul/references/lifecycle.md +8 -2
  834. package/pack/generated/pi/skills/overhaul/references/orchestration.md +49 -29
  835. package/pack/generated/pi/skills/overhaul/references/records.md +28 -6
  836. package/pack/generated/pi/skills/overhaul/references/repair-and-measurement.md +108 -5
  837. package/pack/generated/pi/skills/overhaul/references/review-and-report.md +3 -1
  838. package/pack/generated/pi/skills/overhaul/references/scope-and-safety.md +62 -20
  839. package/pack/generated/pi/skills/overhaul/references/scoring.md +36 -7
  840. package/pack/generated/pi/skills/overhaul/references/stack-profiles.md +52 -0
  841. package/pack/generated/pi/skills/rite/SKILL.md +4 -1
  842. package/pack/generated/pi/skills/rite-adopt/SKILL.md +5 -2
  843. package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +6 -0
  844. package/pack/generated/pi/skills/rite-adopt/reference/anti-patterns.md +1 -1
  845. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +2 -1
  846. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +3 -1
  847. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +6 -0
  848. package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +8 -16
  849. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +9 -0
  850. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +5 -1
  851. package/pack/generated/pi/skills/rite-clarify/SKILL.md +1 -1
  852. package/pack/generated/pi/skills/rite-converge/SKILL.md +9 -2
  853. package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +5 -0
  854. package/pack/generated/pi/skills/rite-define/SKILL.md +6 -1
  855. package/pack/generated/pi/skills/rite-define/reference/plan-template.md +4 -0
  856. package/pack/generated/pi/skills/rite-doctor/SKILL.md +8 -2
  857. package/pack/generated/pi/skills/rite-fast/SKILL.md +183 -0
  858. package/pack/generated/pi/skills/rite-fast/reference/artifacts.md +107 -0
  859. package/pack/generated/pi/skills/rite-fast/reference/check-and-triage.md +51 -0
  860. package/pack/generated/pi/skills/rite-handoff/SKILL.md +14 -2
  861. package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +16 -4
  862. package/pack/generated/pi/skills/rite-learn/SKILL.md +34 -4
  863. package/pack/generated/pi/skills/rite-plan/SKILL.md +2 -1
  864. package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +6 -0
  865. package/pack/generated/pi/skills/rite-polish/SKILL.md +10 -4
  866. package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +59 -36
  867. package/pack/generated/pi/skills/rite-polish/reference/harden-checklist.md +2 -1
  868. package/pack/generated/pi/skills/rite-polish/reference/ui.md +12 -3
  869. package/pack/generated/pi/skills/rite-pov/SKILL.md +14 -3
  870. package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +5 -1
  871. package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +5 -3
  872. package/pack/generated/pi/skills/rite-prove/SKILL.md +12 -4
  873. package/pack/generated/pi/skills/rite-prove/reference/anti-patterns.md +1 -1
  874. package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +12 -3
  875. package/pack/generated/pi/skills/rite-quick/SKILL.md +4 -0
  876. package/pack/generated/pi/skills/rite-resolve/SKILL.md +7 -1
  877. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +1 -1
  878. package/pack/generated/pi/skills/rite-review/SKILL.md +4 -1
  879. package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +9 -1
  880. package/pack/generated/pi/skills/rite-seal/SKILL.md +5 -3
  881. package/pack/generated/pi/skills/rite-seal/reference/anti-patterns.md +1 -1
  882. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +1 -1
  883. package/pack/generated/pi/skills/rite-spec/SKILL.md +12 -4
  884. package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +4 -2
  885. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +3 -0
  886. package/pack/generated/pi/skills/rite-status/SKILL.md +11 -3
  887. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +7 -1
  888. package/pack/generated/pi/skills/rite-vet/SKILL.md +4 -2
  889. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +5 -0
  890. package/package.json +13 -10
  891. package/scripts/build-host-artifacts.sh +8 -3
  892. package/scripts/codex-generate.sh +3 -1
  893. package/scripts/devin-generate.sh +5 -3
  894. package/scripts/omp-generate.sh +39 -6
  895. package/scripts/pi-generate.sh +10 -4
  896. package/engine/.gosec.json +0 -5
  897. package/pack/generated/omp/skills/overhaul/roles/backend-engineer.md +0 -61
  898. package/pack/generated/omp/skills/overhaul/roles/boundary.md +0 -56
  899. package/pack/generated/omp/skills/overhaul/roles/craft.md +0 -77
  900. package/pack/generated/omp/skills/overhaul/roles/frontend-engineer.md +0 -63
  901. package/pack/generated/omp/skills/overhaul/roles/implementer.md +0 -59
  902. package/pack/generated/omp/skills/overhaul/roles/recon.md +0 -60
  903. package/pack/generated/omp/skills/overhaul/roles/specialist.md +0 -56
  904. package/pack/generated/omp/skills/overhaul/roles/verifier.md +0 -60
  905. package/pack/generated/pi/skills/overhaul/roles/backend-engineer.md +0 -61
  906. package/pack/generated/pi/skills/overhaul/roles/boundary.md +0 -56
  907. package/pack/generated/pi/skills/overhaul/roles/craft.md +0 -77
  908. package/pack/generated/pi/skills/overhaul/roles/frontend-engineer.md +0 -63
  909. package/pack/generated/pi/skills/overhaul/roles/implementer.md +0 -59
  910. package/pack/generated/pi/skills/overhaul/roles/recon.md +0 -60
  911. package/pack/generated/pi/skills/overhaul/roles/specialist.md +0 -56
  912. package/pack/generated/pi/skills/overhaul/roles/verifier.md +0 -60
@@ -1,11 +1,14 @@
1
1
  // Package bench implements the /overhaul bench tool: ratio of medians with a
2
- // seeded percentile-bootstrap 95% confidence interval.
2
+ // seeded percentile-bootstrap 95% confidence interval, checked against the
3
+ // distribution-free Hodges-Lehmann ratio bounds.
3
4
  //
4
5
  // Input: {"direction": "lower_is_better"|"higher_is_better", "baseline": [...],
5
6
  // "candidate": [...], "order": ["A","B",...], "target": 2.0, "materiality": 1.05,
6
- // "resamples": 10000, "seed": 1, "resolution": 0}. The unit of resampling is one
7
- // independent invocation per sample; never pass inner iterations. A k-fold claim
8
- // is supported only when the CI lower bound >= k.
7
+ // "resamples": 10000, "seed": 1, "resolution": 0}, plus optional "quantile"
8
+ // with "requests_per_invocation" (tail metrics), "tolerance" (non-inferiority
9
+ // guardrail), "budget" (absolute target), "error_rates" and "load". The unit of
10
+ // resampling is one independent invocation per sample; never pass inner
11
+ // iterations. A k-fold claim is supported only when both lower bounds are >= k.
9
12
  package bench
10
13
 
11
14
  import (
@@ -16,6 +19,7 @@ import (
16
19
  "math"
17
20
  "math/rand/v2"
18
21
  "reflect"
22
+ "slices"
19
23
  "sort"
20
24
  "strconv"
21
25
  "strings"
@@ -52,6 +56,8 @@ type result struct {
52
56
  Verdict string `json:"verdict"`
53
57
  Ratio float64 `json:"ratio"`
54
58
  CI95 [2]float64 `json:"ci95"`
59
+ HodgesLehmann *interval `json:"hodges_lehmann,omitempty"`
60
+ Quantile float64 `json:"quantile,omitempty"`
55
61
  BaselineMedian float64 `json:"baseline_median"`
56
62
  CandidateMedian float64 `json:"candidate_median"`
57
63
  AbsoluteDelta float64 `json:"absolute_delta"`
@@ -59,20 +65,53 @@ type result struct {
59
65
  N [2]int `json:"n"`
60
66
  Target float64 `json:"target"`
61
67
  Materiality float64 `json:"materiality"`
68
+ Guardrail *guardrail `json:"guardrail,omitempty"`
69
+ Budget *budget `json:"budget,omitempty"`
70
+ ErrorRate *errorRate `json:"error_rate,omitempty"`
62
71
  Notes []string `json:"notes"`
63
72
  }
64
73
 
74
+ type interval struct {
75
+ Ratio float64 `json:"ratio"`
76
+ CI95 [2]float64 `json:"ci95"`
77
+ }
78
+
79
+ type guardrail struct {
80
+ Verdict string `json:"verdict"`
81
+ Tolerance float64 `json:"tolerance"`
82
+ Floor float64 `json:"floor"`
83
+ }
84
+
85
+ type budget struct {
86
+ Verdict string `json:"verdict"`
87
+ Value float64 `json:"value"`
88
+ Quantile float64 `json:"quantile"`
89
+ Bounds [2]any `json:"bounds95"`
90
+ }
91
+
92
+ type errorRate struct {
93
+ Verdict string `json:"verdict"`
94
+ Tolerance float64 `json:"tolerance"`
95
+ Delta float64 `json:"delta"`
96
+ CI95 [2]float64 `json:"ci95"`
97
+ }
98
+
65
99
  type noRatio struct {
66
- Verdict string `json:"verdict"`
67
- Reason string `json:"reason"`
68
- BaselineMedian float64 `json:"baseline_median"`
69
- CandidateMedian float64 `json:"candidate_median"`
70
- Notes []string `json:"notes"`
100
+ Verdict string `json:"verdict"`
101
+ Reason string `json:"reason"`
102
+ BaselineMedian float64 `json:"baseline_median"`
103
+ CandidateMedian float64 `json:"candidate_median"`
104
+ Budget *budget `json:"budget,omitempty"`
105
+ ErrorRate *errorRate `json:"error_rate,omitempty"`
106
+ Notes []string `json:"notes"`
71
107
  }
72
108
 
73
109
  const (
74
- noteFew = "fewer than 10 invocations per arm: exploratory only"
75
- noteBlocked = "arms not recorded as interleaved: contamination risk, verdict capped at inconclusive"
110
+ noteFew = "fewer than 10 invocations per arm: exploratory only"
111
+ noteBlocked = "arms not recorded as interleaved: contamination risk, verdict capped at inconclusive"
112
+ noteThinTail = "tail quantile rests on too few requests per invocation: verdict capped at inconclusive"
113
+ noteSaturated = "completed load below 98% of offered load: saturated run, verdict capped at inconclusive"
114
+ noteNoHL = "no Hodges-Lehmann bounds (non-positive samples or arms too small): verdict capped at inconclusive"
76
115
  )
77
116
 
78
117
  func compare(d map[string]any) (any, error) {
@@ -81,18 +120,28 @@ func compare(d map[string]any) (any, error) {
81
120
  return nil, fmt.Errorf("direction must be lower_is_better or higher_is_better, got %#v", dir)
82
121
  }
83
122
  lower := dir == "lower_is_better"
84
- a, err := samples(d, "baseline")
123
+ q, err := number(d, "quantile", 0)
124
+ if err != nil {
125
+ return nil, err
126
+ }
127
+ if q < 0 || q >= 1 {
128
+ return nil, fmt.Errorf("quantile must be in (0, 1), got %v", q)
129
+ }
130
+ notes := []string{}
131
+ a, thinA, err := samples(d, "baseline", q)
85
132
  if err != nil {
86
133
  return nil, err
87
134
  }
88
- b, err := samples(d, "candidate")
135
+ b, thinB, err := samples(d, "candidate", q)
89
136
  if err != nil {
90
137
  return nil, err
91
138
  }
139
+ if thinA || thinB {
140
+ notes = append(notes, noteThinTail)
141
+ }
92
142
  if len(a) == 0 || len(b) == 0 {
93
143
  return nil, errors.New("no median for empty data")
94
144
  }
95
- notes := []string{}
96
145
  n := min(len(a), len(b))
97
146
  if n < 10 {
98
147
  notes = append(notes, noteFew)
@@ -107,22 +156,25 @@ func compare(d map[string]any) (any, error) {
107
156
  if len(order) != len(a)+len(b) || switches < n/2 {
108
157
  notes = append(notes, noteBlocked)
109
158
  }
159
+ saturated, err := saturation(d)
160
+ if err != nil {
161
+ return nil, err
162
+ }
163
+ if saturated {
164
+ notes = append(notes, noteSaturated)
165
+ }
166
+ bud, err := checkBudget(d, b, lower, saturated || thinB)
167
+ if err != nil {
168
+ return nil, err
169
+ }
110
170
  ma, mb := median(a), median(b)
111
171
  floor, err := number(d, "resolution", 0)
112
172
  if err != nil {
113
173
  return nil, err
114
174
  }
115
- if min(ma, mb) <= floor {
116
- return noRatio{"NO_RATIO", "median at or below measurement resolution", ma, mb, notes}, nil
117
- }
118
- seed := int64(1)
119
- if v, ok := d["seed"]; ok {
120
- num, isNum := v.(json.Number)
121
- s, err := num.Int64()
122
- if !isNum || err != nil {
123
- return nil, fmt.Errorf("seed must be an integer, got %v", v)
124
- }
125
- seed = s
175
+ rng, err := seeded(d)
176
+ if err != nil {
177
+ return nil, err
126
178
  }
127
179
  resamples, err := number(d, "resamples", 10000)
128
180
  if err != nil {
@@ -131,7 +183,13 @@ func compare(d map[string]any) (any, error) {
131
183
  if int(resamples) < 1 {
132
184
  return nil, fmt.Errorf("resamples must be at least 1, got %v", resamples)
133
185
  }
134
- rng := rand.New(rand.NewPCG(uint64(seed), 0)) // #nosec G404 -- bootstrap resampling needs a seeded, reproducible PRNG, not secrecy
186
+ er, err := checkErrors(d, rng, int(resamples), saturated)
187
+ if err != nil {
188
+ return nil, err
189
+ }
190
+ if min(ma, mb) <= floor {
191
+ return noRatio{"NO_RATIO", "median at or below measurement resolution", ma, mb, bud, er, notes}, nil
192
+ }
135
193
  boots := make([]float64, int(resamples))
136
194
  ra, rb := make([]float64, len(a)), make([]float64, len(b))
137
195
  for i := range boots {
@@ -148,7 +206,8 @@ func compare(d map[string]any) (any, error) {
148
206
  if hiIdx < 0 { // Python's boots[-1]
149
207
  hiIdx += len(boots)
150
208
  }
151
- lo, hi := boots[int(0.025*float64(len(boots)))], boots[hiIdx]
209
+ bootLo, bootHi := boots[int(0.025*float64(len(boots)))], boots[hiIdx]
210
+ lo, hi := bootLo, bootHi
152
211
  target, err := number(d, "target", 1)
153
212
  if err != nil {
154
213
  return nil, err
@@ -157,6 +216,19 @@ func compare(d map[string]any) (any, error) {
157
216
  if err != nil {
158
217
  return nil, err
159
218
  }
219
+ // Claims need both methods: the lower bound is the smaller of the two, and
220
+ // either method's upper bound below 1 is a regression.
221
+ num, den := a, b // the ratio is baseline/candidate when lower is better
222
+ if !lower {
223
+ num, den = b, a
224
+ }
225
+ var hl *interval
226
+ if est, hlLo, hlHi, ok := hlRatio(num, den, 0.05); ok {
227
+ hl = &interval{round(est, 4), [2]float64{round(hlLo, 4), round(hlHi, 4)}}
228
+ lo, hi = min(lo, hlLo), min(hi, hlHi)
229
+ } else {
230
+ notes = append(notes, noteNoHL)
231
+ }
160
232
  var verdict string
161
233
  switch {
162
234
  case hi < 1:
@@ -173,15 +245,198 @@ func compare(d map[string]any) (any, error) {
173
245
  if len(notes) > 0 && verdict != "REGRESSION" {
174
246
  verdict = "INCONCLUSIVE"
175
247
  }
248
+ var guard *guardrail
249
+ if _, ok := d["tolerance"]; ok {
250
+ tol, err := number(d, "tolerance", 0)
251
+ if err != nil || tol < 0 {
252
+ return nil, fmt.Errorf("tolerance must be a number >= 0, got %v", d["tolerance"])
253
+ }
254
+ fl := 1 / (1 + tol)
255
+ guard = &guardrail{"INCONCLUSIVE", tol, round(fl, 4)}
256
+ switch {
257
+ case hi < fl:
258
+ guard.Verdict = "REGRESSION"
259
+ case lo >= fl && len(notes) == 0:
260
+ guard.Verdict = "NON_INFERIOR"
261
+ }
262
+ }
176
263
  delta := mb - ma
177
264
  return result{
178
- Verdict: verdict, Ratio: round(ratio(ma, mb, lower), 4), CI95: [2]float64{round(lo, 4), round(hi, 4)},
265
+ Verdict: verdict, Ratio: round(ratio(ma, mb, lower), 4), CI95: [2]float64{round(bootLo, 4), round(bootHi, 4)},
266
+ HodgesLehmann: hl, Quantile: q,
179
267
  BaselineMedian: ma, CandidateMedian: mb, AbsoluteDelta: delta,
180
268
  PercentChange: round(100*delta/ma, 2), N: [2]int{len(a), len(b)},
181
- Target: target, Materiality: mat, Notes: notes,
269
+ Target: target, Materiality: mat, Guardrail: guard, Budget: bud, ErrorRate: er, Notes: notes,
182
270
  }, nil
183
271
  }
184
272
 
273
+ func seeded(d map[string]any) (*rand.Rand, error) {
274
+ seed := int64(1)
275
+ if v, ok := d["seed"]; ok {
276
+ num, isNum := v.(json.Number)
277
+ s, err := num.Int64()
278
+ if !isNum || err != nil {
279
+ return nil, fmt.Errorf("seed must be an integer, got %v", v)
280
+ }
281
+ seed = s
282
+ }
283
+ return rand.New(rand.NewPCG(uint64(seed), 0)), nil // #nosec G404 -- bootstrap resampling needs a seeded, reproducible PRNG, not secrecy
284
+ }
285
+
286
+ // saturation reports whether any arm completed less than 98% of its offered
287
+ // load; latency from a saturated run supports no claim.
288
+ func saturation(d map[string]any) (bool, error) {
289
+ l := ovio.Obj(d["load"])
290
+ if l == nil {
291
+ return false, nil
292
+ }
293
+ for _, arm := range []string{"baseline", "candidate"} {
294
+ off, err := toFloat(ovio.Obj(l["offered"])[arm], "load.offered."+arm)
295
+ if err != nil {
296
+ return false, err
297
+ }
298
+ done, err := toFloat(ovio.Obj(l["completed"])[arm], "load.completed."+arm)
299
+ if err != nil {
300
+ return false, err
301
+ }
302
+ if done < 0.98*off {
303
+ return true, nil
304
+ }
305
+ }
306
+ return false, nil
307
+ }
308
+
309
+ // checkBudget tests the candidate against an absolute target with one-sided
310
+ // 95% distribution-free bounds on the chosen quantile of its invocations; a
311
+ // deterministic metric (bytes, counts) must repeat exactly and needs no bound.
312
+ func checkBudget(d map[string]any, b []float64, lower, capped bool) (*budget, error) {
313
+ m := ovio.Obj(d["budget"])
314
+ if m == nil {
315
+ return nil, nil
316
+ }
317
+ v, err := toFloat(m["value"], "budget.value")
318
+ if err != nil {
319
+ return nil, err
320
+ }
321
+ p := 0.5
322
+ if _, ok := m["quantile"]; ok {
323
+ if p, err = toFloat(m["quantile"], "budget.quantile"); err != nil || p <= 0 || p >= 1 {
324
+ return nil, fmt.Errorf("budget.quantile must be in (0, 1), got %v", m["quantile"])
325
+ }
326
+ }
327
+ out := &budget{Value: v, Quantile: p}
328
+ lcb, ucb := quantileBounds(b, p, 0.05)
329
+ if ovio.Truthy(m["deterministic"]) {
330
+ lcb, ucb = b[0], b[0]
331
+ for _, x := range b {
332
+ if x != b[0] {
333
+ out.Verdict = "NONDETERMINISTIC"
334
+ return out, nil
335
+ }
336
+ }
337
+ }
338
+ out.Bounds = [2]any{bound(lcb), bound(ucb)}
339
+ good, bad := ucb <= v, lcb > v // lower is better
340
+ if !lower {
341
+ good, bad = lcb >= v, ucb < v
342
+ }
343
+ switch {
344
+ case bad:
345
+ out.Verdict = "FAIL"
346
+ case capped:
347
+ out.Verdict = "INCONCLUSIVE"
348
+ case good:
349
+ out.Verdict = "PASS"
350
+ case math.IsInf(lcb, 0) || math.IsInf(ucb, 0):
351
+ out.Verdict = "INSUFFICIENT_DATA"
352
+ default:
353
+ out.Verdict = "INCONCLUSIVE"
354
+ }
355
+ return out, nil
356
+ }
357
+
358
+ // bound renders an infinite bound as null.
359
+ func bound(x float64) any {
360
+ if math.IsInf(x, 0) {
361
+ return nil
362
+ }
363
+ return x
364
+ }
365
+
366
+ // checkErrors compares per-invocation error rates (candidate minus baseline)
367
+ // against an absolute tolerance. The interval is the wider of a bootstrap over
368
+ // invocations and, with request totals, the Newcombe hybrid score interval.
369
+ func checkErrors(d map[string]any, rng *rand.Rand, resamples int, saturated bool) (*errorRate, error) {
370
+ m := ovio.Obj(d["error_rates"])
371
+ if m == nil {
372
+ return nil, nil
373
+ }
374
+ ea, _, err := samples(m, "baseline", 0)
375
+ if err != nil {
376
+ return nil, err
377
+ }
378
+ eb, _, err := samples(m, "candidate", 0)
379
+ if err != nil {
380
+ return nil, err
381
+ }
382
+ if len(ea) == 0 || len(eb) == 0 {
383
+ return nil, errors.New("error_rates needs baseline and candidate rates")
384
+ }
385
+ for _, x := range append(slices.Clone(ea), eb...) {
386
+ if x < 0 || x > 1 {
387
+ return nil, fmt.Errorf("error_rates must be proportions in [0, 1], got %v", x)
388
+ }
389
+ }
390
+ tol, err := toFloat(m["tolerance"], "error_rates.tolerance")
391
+ if err != nil {
392
+ return nil, err
393
+ }
394
+ mean := func(xs []float64) float64 {
395
+ s := 0.0
396
+ for _, x := range xs {
397
+ s += x
398
+ }
399
+ return s / float64(len(xs))
400
+ }
401
+ boots := make([]float64, resamples)
402
+ ra, rb := make([]float64, len(ea)), make([]float64, len(eb))
403
+ for i := range boots {
404
+ for j := range ra {
405
+ ra[j] = ea[rng.IntN(len(ea))]
406
+ }
407
+ for j := range rb {
408
+ rb[j] = eb[rng.IntN(len(eb))]
409
+ }
410
+ boots[i] = mean(rb) - mean(ra)
411
+ }
412
+ sort.Float64s(boots)
413
+ lo, hi := boots[int(0.025*float64(len(boots)))], boots[max(0, int(0.975*float64(len(boots)))-1)]
414
+ pa, pb := mean(ea), mean(eb)
415
+ if req := ovio.Obj(m["requests"]); req != nil {
416
+ na, err := toFloat(req["baseline"], "error_rates.requests.baseline")
417
+ if err != nil {
418
+ return nil, err
419
+ }
420
+ nb, err := toFloat(req["candidate"], "error_rates.requests.candidate")
421
+ if err != nil {
422
+ return nil, err
423
+ }
424
+ if na <= 0 || nb <= 0 {
425
+ return nil, fmt.Errorf("error_rates.requests must be positive, got %v and %v", na, nb)
426
+ }
427
+ nl, nu := newcombe(pb, nb, pa, na, 1.96)
428
+ lo, hi = min(lo, nl), max(hi, nu)
429
+ }
430
+ out := &errorRate{"INCONCLUSIVE", tol, round(pb-pa, 6), [2]float64{round(lo, 6), round(hi, 6)}}
431
+ switch {
432
+ case lo > tol:
433
+ out.Verdict = "FAIL"
434
+ case hi <= tol && !saturated:
435
+ out.Verdict = "PASS"
436
+ }
437
+ return out, nil
438
+ }
439
+
185
440
  func ratio(base, cand float64, lowerBetter bool) float64 {
186
441
  if lowerBetter {
187
442
  return base / cand
@@ -204,24 +459,58 @@ func round(x float64, places int) float64 {
204
459
  return math.Round(x*p) / p
205
460
  }
206
461
 
207
- func samples(d map[string]any, key string) ([]float64, error) {
462
+ // samples reads one value per invocation. With a quantile q, an invocation may
463
+ // be given as its raw request latencies (reduced to their q-quantile) or as its
464
+ // q-quantile with requests_per_invocation; thin reports an invocation with
465
+ // fewer than 10/(1-q) requests, too few for a stable tail.
466
+ func samples(d map[string]any, key string, q float64) (out []float64, thin bool, err error) {
208
467
  v, ok := d[key]
209
468
  if !ok {
210
- return nil, fmt.Errorf("missing %q", key)
469
+ return nil, false, fmt.Errorf("missing %q", key)
211
470
  }
212
471
  list, ok := v.([]any)
213
472
  if !ok {
214
- return nil, fmt.Errorf("%s must be an array", key)
473
+ return nil, false, fmt.Errorf("%s must be an array", key)
474
+ }
475
+ need := 0.0
476
+ nested := slices.ContainsFunc(list, func(x any) bool { _, ok := x.([]any); return ok })
477
+ if nested && slices.ContainsFunc(list, func(x any) bool { _, ok := x.([]any); return !ok }) {
478
+ return nil, false, fmt.Errorf("%s mixes raw request arrays with per-invocation values", key)
479
+ }
480
+ if q > 0 {
481
+ need = math.Ceil(10/(1-q) - 1e-9)
482
+ if !nested {
483
+ n, err := toFloat(d["requests_per_invocation"], "requests_per_invocation")
484
+ if err != nil {
485
+ return nil, false, fmt.Errorf("a quantile over per-invocation values needs requests_per_invocation: %w", err)
486
+ }
487
+ thin = n < need
488
+ }
215
489
  }
216
- out := make([]float64, len(list))
490
+ out = make([]float64, len(list))
217
491
  for i, x := range list {
218
- f, err := toFloat(x, key)
219
- if err != nil {
220
- return nil, err
492
+ if inner, isList := x.([]any); isList {
493
+ if q == 0 {
494
+ return nil, false, fmt.Errorf("%s: raw request arrays need a quantile", key)
495
+ }
496
+ reqs := make([]float64, len(inner))
497
+ for j, r := range inner {
498
+ if reqs[j], err = toFloat(r, key); err != nil {
499
+ return nil, false, err
500
+ }
501
+ }
502
+ if len(reqs) == 0 {
503
+ return nil, false, fmt.Errorf("%s: invocation %d has no requests", key, i)
504
+ }
505
+ thin = thin || float64(len(reqs)) < need
506
+ out[i] = quantile7(reqs, q)
507
+ continue
508
+ }
509
+ if out[i], err = toFloat(x, key); err != nil {
510
+ return nil, false, err
221
511
  }
222
- out[i] = f
223
512
  }
224
- return out, nil
513
+ return out, thin, nil
225
514
  }
226
515
 
227
516
  func number(d map[string]any, key string, def float64) (float64, error) {
@@ -3,11 +3,15 @@ package bench
3
3
  import (
4
4
  "bytes"
5
5
  "encoding/json"
6
+ "fmt"
7
+ "math"
6
8
  "math/rand/v2"
7
9
  "os"
8
10
  "path/filepath"
9
11
  "strings"
10
12
  "testing"
13
+
14
+ "github.com/devrites/devrites/internal/overhaul/ovio"
11
15
  )
12
16
 
13
17
  func gauss(rng *rand.Rand, mean, sd float64, n int) []float64 {
@@ -137,3 +141,130 @@ func TestBench(t *testing.T) {
137
141
  }
138
142
  })
139
143
  }
144
+
145
+ func TestStats(t *testing.T) {
146
+ if k := tailCount(10, 10, 0.05); k != 24 {
147
+ t.Fatalf("n=m=10 alpha .05: k=%d, want 24 (Hollander-Wolfe D_(24), D_(77))", k)
148
+ }
149
+ if k := tailCount(30, 30, 1e-3); 2*k != 464 {
150
+ t.Fatalf("n=m=30 misrate 1e-3: margin %d, want 464 (Pragmastat PairwiseMargin)", 2*k)
151
+ }
152
+ if k := tailCount(3, 3, 0.05); k != 0 {
153
+ t.Fatalf("n=m=3 has no finite 95%% interval, got k=%d", k)
154
+ }
155
+ xs := []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
156
+ if lcb, ucb := quantileBounds(xs, 0.5, 0.05); lcb != 2 || ucb != 9 {
157
+ t.Fatalf("median bounds n=10: [%v, %v], want [2, 9]", lcb, ucb)
158
+ }
159
+ if _, ucb := quantileBounds(xs, 0.99, 0.05); !math.IsInf(ucb, 1) {
160
+ t.Fatalf("p99 with n=10 has no upper bound, got %v", ucb)
161
+ }
162
+ }
163
+
164
+ func TestBenchExtensions(t *testing.T) {
165
+ fast, rng := fixture()
166
+ if _, res := verdict(t, fast); res["hodges_lehmann"] == nil {
167
+ t.Fatalf("no Hodges-Lehmann bounds: %v", res)
168
+ }
169
+ raw := func(mean float64, invocations, requests int) []any {
170
+ var arm []any
171
+ for range invocations {
172
+ arm = append(arm, gauss(rng, mean, mean/10, requests))
173
+ }
174
+ return arm
175
+ }
176
+ tail := map[string]any{"direction": "lower_is_better", "quantile": 0.99, "order": interleaved(12), "target": 2.0,
177
+ "baseline": raw(100, 12, 1000), "candidate": raw(30, 12, 1000)}
178
+
179
+ t.Run("tail quantile from raw requests", func(t *testing.T) {
180
+ if v, res := verdict(t, tail); v != "SUPPORTS_TARGET" || res["quantile"] != 0.99 {
181
+ t.Fatalf("got %v", res)
182
+ }
183
+ })
184
+ t.Run("thin tail is inconclusive", func(t *testing.T) {
185
+ thin := with(tail, "baseline", raw(100, 12, 50), "candidate", raw(30, 12, 50))
186
+ if v, res := verdict(t, thin); v != "INCONCLUSIVE" || !strings.Contains(fmt.Sprint(res["notes"]), "too few requests") {
187
+ t.Fatalf("got %v", res)
188
+ }
189
+ })
190
+ t.Run("per-invocation quantiles need request counts", func(t *testing.T) {
191
+ code, _, stderr := run(t, with(fast, "quantile", 0.95))
192
+ if code != 2 || !strings.Contains(stderr, "requests_per_invocation") {
193
+ t.Fatalf("exit %d %q", code, stderr)
194
+ }
195
+ })
196
+ t.Run("guardrail", func(t *testing.T) {
197
+ same := with(fast, "candidate", gauss(rng, 30, 1, 20), "tolerance", 0.1)
198
+ if _, res := verdict(t, same); ovio.Get(res, "guardrail.verdict") != "NON_INFERIOR" {
199
+ t.Fatalf("equal arms: %v", res["guardrail"])
200
+ }
201
+ slow := with(fast, "candidate", gauss(rng, 45, 1, 20), "tolerance", 0.1)
202
+ if _, res := verdict(t, slow); ovio.Get(res, "guardrail.verdict") != "REGRESSION" {
203
+ t.Fatalf("1.5x slower: %v", res["guardrail"])
204
+ }
205
+ })
206
+ t.Run("budget", func(t *testing.T) {
207
+ bytes := func(xs ...float64) []float64 { return xs }
208
+ for name, tc := range map[string]struct {
209
+ cand []float64
210
+ budget map[string]any
211
+ want string
212
+ }{
213
+ "deterministic pass": {bytes(100, 100), map[string]any{"value": 120, "deterministic": true}, "PASS"},
214
+ "deterministic fail": {bytes(130, 130), map[string]any{"value": 120, "deterministic": true}, "FAIL"},
215
+ "nondeterministic": {bytes(100, 101), map[string]any{"value": 120, "deterministic": true}, "NONDETERMINISTIC"},
216
+ "p75 under budget": {gauss(rng, 10, 0.4, 20), map[string]any{"value": 12, "quantile": 0.75}, "PASS"},
217
+ "p75 over budget": {gauss(rng, 10, 0.4, 20), map[string]any{"value": 8, "quantile": 0.75}, "FAIL"},
218
+ "p99 needs more runs": {gauss(rng, 10, 0.4, 20), map[string]any{"value": 12, "quantile": 0.99}, "INSUFFICIENT_DATA"},
219
+ "budget straddles p75": {bytes(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20), map[string]any{"value": 15, "quantile": 0.75}, "INCONCLUSIVE"},
220
+ } {
221
+ if _, res := verdict(t, with(fast, "candidate", tc.cand, "budget", tc.budget)); ovio.Get(res, "budget.verdict") != tc.want {
222
+ t.Fatalf("%s: %v", name, res["budget"])
223
+ }
224
+ }
225
+ })
226
+ t.Run("error-rate guardrail", func(t *testing.T) {
227
+ zeros := make([]float64, 20)
228
+ clean := map[string]any{"baseline": zeros, "candidate": zeros, "tolerance": 0.001,
229
+ "requests": map[string]any{"baseline": 20000, "candidate": 20000}}
230
+ if _, res := verdict(t, with(fast, "error_rates", clean)); ovio.Get(res, "error_rate.verdict") != "PASS" {
231
+ t.Fatalf("clean: %v", res["error_rate"])
232
+ }
233
+ few := with(clean, "requests", map[string]any{"baseline": 200, "candidate": 200})
234
+ if _, res := verdict(t, with(fast, "error_rates", few)); ovio.Get(res, "error_rate.verdict") != "INCONCLUSIVE" {
235
+ t.Fatalf("zero errors in 200 requests proves nothing at 0.1%%: %v", res["error_rate"])
236
+ }
237
+ worse := with(clean, "candidate", gauss(rng, 0.05, 0.005, 20))
238
+ if _, res := verdict(t, with(fast, "error_rates", worse)); ovio.Get(res, "error_rate.verdict") != "FAIL" {
239
+ t.Fatalf("5%% errors: %v", res["error_rate"])
240
+ }
241
+ })
242
+ t.Run("saturated load caps every verdict", func(t *testing.T) {
243
+ load := map[string]any{"offered": map[string]any{"baseline": 1000, "candidate": 1000},
244
+ "completed": map[string]any{"baseline": 1000, "candidate": 900}}
245
+ clean := map[string]any{"baseline": make([]float64, 20), "candidate": make([]float64, 20), "tolerance": 0.01}
246
+ v, res := verdict(t, with(fast, "load", load, "error_rates", clean))
247
+ if v != "INCONCLUSIVE" || !strings.Contains(fmt.Sprint(res["notes"]), "saturated") || ovio.Get(res, "error_rate.verdict") != "INCONCLUSIVE" {
248
+ t.Fatalf("got %v", res)
249
+ }
250
+ })
251
+ t.Run("thin tail caps the budget", func(t *testing.T) {
252
+ thin := with(tail, "baseline", raw(100, 12, 50), "candidate", raw(30, 12, 50), "budget", map[string]any{"value": 1000})
253
+ if _, res := verdict(t, thin); ovio.Get(res, "budget.verdict") != "INCONCLUSIVE" {
254
+ t.Fatalf("got %v", res["budget"])
255
+ }
256
+ })
257
+ t.Run("invalid inputs are errors", func(t *testing.T) {
258
+ rates := func(x float64) []float64 { return []float64{x, x, x} }
259
+ for want, d := range map[string]map[string]any{
260
+ "proportions in [0, 1]": with(fast, "error_rates", map[string]any{"baseline": rates(1), "candidate": rates(1.5), "tolerance": 1}),
261
+ "must be positive": with(fast, "error_rates", map[string]any{"baseline": rates(0), "candidate": rates(0), "tolerance": 0.01,
262
+ "requests": map[string]any{"baseline": 0, "candidate": 1000}}),
263
+ "mixes raw request arrays": with(tail, "candidate", append(raw(30, 11, 1000), 30.0)),
264
+ } {
265
+ if code, _, stderr := run(t, d); code != 2 || !strings.Contains(stderr, want) {
266
+ t.Fatalf("%s: exit %d %q", want, code, stderr)
267
+ }
268
+ }
269
+ })
270
+ }