@humanbased/crosscheck 1.2.0 → 1.3.0-beta.100

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 (438) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +183 -375
  3. package/README.zh.md +1 -1
  4. package/assets/icon-256.png +0 -0
  5. package/assets/linear-comment.svg +18 -0
  6. package/assets/linear-onboard.svg +30 -0
  7. package/assets/linear-status.svg +23 -0
  8. package/assets/linear-test.svg +34 -0
  9. package/assets/skills/code-review/.crosscheck-skill.json +9 -0
  10. package/assets/skills/code-review/LICENSE +21 -0
  11. package/assets/skills/code-review/SKILL.md +89 -0
  12. package/assets/skills/code-review/agents/openai.yaml +3 -0
  13. package/assets/skills/code-review-skill/.crosscheck-skill.json +9 -0
  14. package/assets/skills/code-review-skill/LICENSE +21 -0
  15. package/assets/skills/code-review-skill/SKILL.md +231 -0
  16. package/assets/skills/code-review-skill/assets/pr-review-template.md +137 -0
  17. package/assets/skills/code-review-skill/assets/review-checklist.md +123 -0
  18. package/assets/skills/code-review-skill/reference/angular.md +768 -0
  19. package/assets/skills/code-review-skill/reference/architecture-review-guide.md +472 -0
  20. package/assets/skills/code-review-skill/reference/c.md +890 -0
  21. package/assets/skills/code-review-skill/reference/code-quality-universal.md +488 -0
  22. package/assets/skills/code-review-skill/reference/code-review-best-practices.md +136 -0
  23. package/assets/skills/code-review-skill/reference/common-bugs-checklist.md +286 -0
  24. package/assets/skills/code-review-skill/reference/cpp.md +893 -0
  25. package/assets/skills/code-review-skill/reference/cross-cutting/async-concurrency-patterns.md +515 -0
  26. package/assets/skills/code-review-skill/reference/cross-cutting/error-handling-principles.md +492 -0
  27. package/assets/skills/code-review-skill/reference/cross-cutting/n-plus-one-queries.md +309 -0
  28. package/assets/skills/code-review-skill/reference/cross-cutting/sql-injection-prevention.md +308 -0
  29. package/assets/skills/code-review-skill/reference/cross-cutting/xss-prevention.md +264 -0
  30. package/assets/skills/code-review-skill/reference/csharp.md +525 -0
  31. package/assets/skills/code-review-skill/reference/css-less-sass.md +661 -0
  32. package/assets/skills/code-review-skill/reference/django.md +985 -0
  33. package/assets/skills/code-review-skill/reference/fastapi.md +580 -0
  34. package/assets/skills/code-review-skill/reference/go.md +993 -0
  35. package/assets/skills/code-review-skill/reference/java.md +409 -0
  36. package/assets/skills/code-review-skill/reference/java8.md +586 -0
  37. package/assets/skills/code-review-skill/reference/kotlin.md +1018 -0
  38. package/assets/skills/code-review-skill/reference/nestjs.md +593 -0
  39. package/assets/skills/code-review-skill/reference/performance-review-guide.md +816 -0
  40. package/assets/skills/code-review-skill/reference/php.md +684 -0
  41. package/assets/skills/code-review-skill/reference/python.md +1073 -0
  42. package/assets/skills/code-review-skill/reference/qt.md +757 -0
  43. package/assets/skills/code-review-skill/reference/react.md +871 -0
  44. package/assets/skills/code-review-skill/reference/ruby.md +964 -0
  45. package/assets/skills/code-review-skill/reference/rust.md +846 -0
  46. package/assets/skills/code-review-skill/reference/security-review-guide.md +494 -0
  47. package/assets/skills/code-review-skill/reference/svelte.md +1064 -0
  48. package/assets/skills/code-review-skill/reference/swift.md +936 -0
  49. package/assets/skills/code-review-skill/reference/typescript.md +1016 -0
  50. package/assets/skills/code-review-skill/reference/vue.md +924 -0
  51. package/assets/skills/code-review-skill/reference/zig.md +440 -0
  52. package/assets/skills/code-review-skill/scripts/pr-analyzer.py +435 -0
  53. package/assets/skills/code-review-skill/scripts/test_pr_analyzer.py +380 -0
  54. package/assets/skills/codebase-design/.crosscheck-skill.json +9 -0
  55. package/assets/skills/codebase-design/DEEPENING.md +37 -0
  56. package/assets/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  57. package/assets/skills/codebase-design/LICENSE +21 -0
  58. package/assets/skills/codebase-design/SKILL.md +114 -0
  59. package/assets/skills/codebase-design/agents/openai.yaml +3 -0
  60. package/assets/skills/diagnosing-bugs/.crosscheck-skill.json +9 -0
  61. package/assets/skills/diagnosing-bugs/LICENSE +21 -0
  62. package/assets/skills/diagnosing-bugs/SKILL.md +134 -0
  63. package/assets/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  64. package/assets/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  65. package/crosscheck.config.example.yml +124 -11
  66. package/dist/__tests__/adoption.test.d.ts +2 -0
  67. package/dist/__tests__/adoption.test.d.ts.map +1 -0
  68. package/dist/__tests__/adoption.test.js +175 -0
  69. package/dist/__tests__/adoption.test.js.map +1 -0
  70. package/dist/__tests__/auto-fix-branch.test.d.ts +2 -0
  71. package/dist/__tests__/auto-fix-branch.test.d.ts.map +1 -0
  72. package/dist/__tests__/auto-fix-branch.test.js +143 -0
  73. package/dist/__tests__/auto-fix-branch.test.js.map +1 -0
  74. package/dist/__tests__/board.test.js +13 -0
  75. package/dist/__tests__/board.test.js.map +1 -1
  76. package/dist/__tests__/can-write-verdict.test.d.ts +2 -0
  77. package/dist/__tests__/can-write-verdict.test.d.ts.map +1 -0
  78. package/dist/__tests__/can-write-verdict.test.js +31 -0
  79. package/dist/__tests__/can-write-verdict.test.js.map +1 -0
  80. package/dist/__tests__/codex-env.test.d.ts +2 -0
  81. package/dist/__tests__/codex-env.test.d.ts.map +1 -0
  82. package/dist/__tests__/codex-env.test.js +70 -0
  83. package/dist/__tests__/codex-env.test.js.map +1 -0
  84. package/dist/__tests__/codex.test.js +100 -25
  85. package/dist/__tests__/codex.test.js.map +1 -1
  86. package/dist/__tests__/comment-bodies.test.js +49 -1
  87. package/dist/__tests__/comment-bodies.test.js.map +1 -1
  88. package/dist/__tests__/commit-subject.test.d.ts +2 -0
  89. package/dist/__tests__/commit-subject.test.d.ts.map +1 -0
  90. package/dist/__tests__/commit-subject.test.js +72 -0
  91. package/dist/__tests__/commit-subject.test.js.map +1 -0
  92. package/dist/__tests__/conflict-resolve.test.js +44 -1
  93. package/dist/__tests__/conflict-resolve.test.js.map +1 -1
  94. package/dist/__tests__/credential-free-origin.test.d.ts +2 -0
  95. package/dist/__tests__/credential-free-origin.test.d.ts.map +1 -0
  96. package/dist/__tests__/credential-free-origin.test.js +59 -0
  97. package/dist/__tests__/credential-free-origin.test.js.map +1 -0
  98. package/dist/__tests__/detector.test.js +87 -1
  99. package/dist/__tests__/detector.test.js.map +1 -1
  100. package/dist/__tests__/error-classification.test.js +34 -0
  101. package/dist/__tests__/error-classification.test.js.map +1 -1
  102. package/dist/__tests__/fix.test.js +69 -0
  103. package/dist/__tests__/fix.test.js.map +1 -1
  104. package/dist/__tests__/harness-section.test.d.ts +2 -0
  105. package/dist/__tests__/harness-section.test.d.ts.map +1 -0
  106. package/dist/__tests__/harness-section.test.js +46 -0
  107. package/dist/__tests__/harness-section.test.js.map +1 -0
  108. package/dist/__tests__/kickass.test.js +31 -0
  109. package/dist/__tests__/kickass.test.js.map +1 -1
  110. package/dist/__tests__/linear-branding.test.d.ts +2 -0
  111. package/dist/__tests__/linear-branding.test.d.ts.map +1 -0
  112. package/dist/__tests__/linear-branding.test.js +156 -0
  113. package/dist/__tests__/linear-branding.test.js.map +1 -0
  114. package/dist/__tests__/linear-client.test.d.ts +2 -0
  115. package/dist/__tests__/linear-client.test.d.ts.map +1 -0
  116. package/dist/__tests__/linear-client.test.js +120 -0
  117. package/dist/__tests__/linear-client.test.js.map +1 -0
  118. package/dist/__tests__/linear-comment.test.d.ts +2 -0
  119. package/dist/__tests__/linear-comment.test.d.ts.map +1 -0
  120. package/dist/__tests__/linear-comment.test.js +151 -0
  121. package/dist/__tests__/linear-comment.test.js.map +1 -0
  122. package/dist/__tests__/linear-identity.test.d.ts +2 -0
  123. package/dist/__tests__/linear-identity.test.d.ts.map +1 -0
  124. package/dist/__tests__/linear-identity.test.js +253 -0
  125. package/dist/__tests__/linear-identity.test.js.map +1 -0
  126. package/dist/__tests__/linear-notify.test.d.ts +2 -0
  127. package/dist/__tests__/linear-notify.test.d.ts.map +1 -0
  128. package/dist/__tests__/linear-notify.test.js +144 -0
  129. package/dist/__tests__/linear-notify.test.js.map +1 -0
  130. package/dist/__tests__/linear-ref.test.d.ts +2 -0
  131. package/dist/__tests__/linear-ref.test.d.ts.map +1 -0
  132. package/dist/__tests__/linear-ref.test.js +261 -0
  133. package/dist/__tests__/linear-ref.test.js.map +1 -0
  134. package/dist/__tests__/linear-test-ref.test.d.ts +2 -0
  135. package/dist/__tests__/linear-test-ref.test.d.ts.map +1 -0
  136. package/dist/__tests__/linear-test-ref.test.js +81 -0
  137. package/dist/__tests__/linear-test-ref.test.js.map +1 -0
  138. package/dist/__tests__/linear-verify.test.d.ts +2 -0
  139. package/dist/__tests__/linear-verify.test.d.ts.map +1 -0
  140. package/dist/__tests__/linear-verify.test.js +132 -0
  141. package/dist/__tests__/linear-verify.test.js.map +1 -0
  142. package/dist/__tests__/linear-worker.test.d.ts +2 -0
  143. package/dist/__tests__/linear-worker.test.d.ts.map +1 -0
  144. package/dist/__tests__/linear-worker.test.js +83 -0
  145. package/dist/__tests__/linear-worker.test.js.map +1 -0
  146. package/dist/__tests__/linear-write-possible.test.d.ts +2 -0
  147. package/dist/__tests__/linear-write-possible.test.d.ts.map +1 -0
  148. package/dist/__tests__/linear-write-possible.test.js +30 -0
  149. package/dist/__tests__/linear-write-possible.test.js.map +1 -0
  150. package/dist/__tests__/loader.test.js +2 -2
  151. package/dist/__tests__/loader.test.js.map +1 -1
  152. package/dist/__tests__/onboard-preservation.test.js +59 -4
  153. package/dist/__tests__/onboard-preservation.test.js.map +1 -1
  154. package/dist/__tests__/optimize.test.js +2 -0
  155. package/dist/__tests__/optimize.test.js.map +1 -1
  156. package/dist/__tests__/pr-status.test.js +213 -3
  157. package/dist/__tests__/pr-status.test.js.map +1 -1
  158. package/dist/__tests__/pr-workflow-state.test.js +247 -7
  159. package/dist/__tests__/pr-workflow-state.test.js.map +1 -1
  160. package/dist/__tests__/repo-picker.test.js +7 -1
  161. package/dist/__tests__/repo-picker.test.js.map +1 -1
  162. package/dist/__tests__/repository-guidance.test.d.ts +2 -0
  163. package/dist/__tests__/repository-guidance.test.d.ts.map +1 -0
  164. package/dist/__tests__/repository-guidance.test.js +107 -0
  165. package/dist/__tests__/repository-guidance.test.js.map +1 -0
  166. package/dist/__tests__/review-comment-body.test.js +35 -0
  167. package/dist/__tests__/review-comment-body.test.js.map +1 -1
  168. package/dist/__tests__/review-models.test.js +19 -3
  169. package/dist/__tests__/review-models.test.js.map +1 -1
  170. package/dist/__tests__/review-strategy.test.d.ts +2 -0
  171. package/dist/__tests__/review-strategy.test.d.ts.map +1 -0
  172. package/dist/__tests__/review-strategy.test.js +397 -0
  173. package/dist/__tests__/review-strategy.test.js.map +1 -0
  174. package/dist/__tests__/reviewed-sha.test.d.ts +2 -0
  175. package/dist/__tests__/reviewed-sha.test.d.ts.map +1 -0
  176. package/dist/__tests__/reviewed-sha.test.js +116 -0
  177. package/dist/__tests__/reviewed-sha.test.js.map +1 -0
  178. package/dist/__tests__/runner.test.js +206 -2
  179. package/dist/__tests__/runner.test.js.map +1 -1
  180. package/dist/__tests__/skill-attribution.test.d.ts +2 -0
  181. package/dist/__tests__/skill-attribution.test.d.ts.map +1 -0
  182. package/dist/__tests__/skill-attribution.test.js +53 -0
  183. package/dist/__tests__/skill-attribution.test.js.map +1 -0
  184. package/dist/__tests__/skill-broker.test.d.ts +2 -0
  185. package/dist/__tests__/skill-broker.test.d.ts.map +1 -0
  186. package/dist/__tests__/skill-broker.test.js +186 -0
  187. package/dist/__tests__/skill-broker.test.js.map +1 -0
  188. package/dist/__tests__/skill-catalog.test.d.ts +2 -0
  189. package/dist/__tests__/skill-catalog.test.d.ts.map +1 -0
  190. package/dist/__tests__/skill-catalog.test.js +40 -0
  191. package/dist/__tests__/skill-catalog.test.js.map +1 -0
  192. package/dist/__tests__/skill-installer.test.d.ts +2 -0
  193. package/dist/__tests__/skill-installer.test.d.ts.map +1 -0
  194. package/dist/__tests__/skill-installer.test.js +96 -0
  195. package/dist/__tests__/skill-installer.test.js.map +1 -0
  196. package/dist/__tests__/skills-config.test.d.ts +2 -0
  197. package/dist/__tests__/skills-config.test.d.ts.map +1 -0
  198. package/dist/__tests__/skills-config.test.js +12 -0
  199. package/dist/__tests__/skills-config.test.js.map +1 -0
  200. package/dist/__tests__/superseded-fix-pr.test.d.ts +2 -0
  201. package/dist/__tests__/superseded-fix-pr.test.d.ts.map +1 -0
  202. package/dist/__tests__/superseded-fix-pr.test.js +225 -0
  203. package/dist/__tests__/superseded-fix-pr.test.js.map +1 -0
  204. package/dist/__tests__/webhook.test.js +60 -0
  205. package/dist/__tests__/webhook.test.js.map +1 -1
  206. package/dist/cli.js +37 -0
  207. package/dist/cli.js.map +1 -1
  208. package/dist/commands/adoption.d.ts +6 -0
  209. package/dist/commands/adoption.d.ts.map +1 -0
  210. package/dist/commands/adoption.js +132 -0
  211. package/dist/commands/adoption.js.map +1 -0
  212. package/dist/commands/detect-step.d.ts.map +1 -1
  213. package/dist/commands/detect-step.js +5 -1
  214. package/dist/commands/detect-step.js.map +1 -1
  215. package/dist/commands/diagnose.d.ts.map +1 -1
  216. package/dist/commands/diagnose.js +2 -2
  217. package/dist/commands/diagnose.js.map +1 -1
  218. package/dist/commands/init.d.ts.map +1 -1
  219. package/dist/commands/init.js +1 -2
  220. package/dist/commands/init.js.map +1 -1
  221. package/dist/commands/issue.js +1 -1
  222. package/dist/commands/issue.js.map +1 -1
  223. package/dist/commands/kickass.d.ts +1 -1
  224. package/dist/commands/kickass.d.ts.map +1 -1
  225. package/dist/commands/kickass.js +36 -22
  226. package/dist/commands/kickass.js.map +1 -1
  227. package/dist/commands/linear-test.d.ts +18 -0
  228. package/dist/commands/linear-test.d.ts.map +1 -0
  229. package/dist/commands/linear-test.js +130 -0
  230. package/dist/commands/linear-test.js.map +1 -0
  231. package/dist/commands/onboard.d.ts +36 -3
  232. package/dist/commands/onboard.d.ts.map +1 -1
  233. package/dist/commands/onboard.js +263 -45
  234. package/dist/commands/onboard.js.map +1 -1
  235. package/dist/commands/optimize.d.ts.map +1 -1
  236. package/dist/commands/optimize.js +1 -0
  237. package/dist/commands/optimize.js.map +1 -1
  238. package/dist/commands/review.d.ts.map +1 -1
  239. package/dist/commands/review.js +65 -6
  240. package/dist/commands/review.js.map +1 -1
  241. package/dist/commands/run.d.ts.map +1 -1
  242. package/dist/commands/run.js +85 -11
  243. package/dist/commands/run.js.map +1 -1
  244. package/dist/commands/scan.d.ts.map +1 -1
  245. package/dist/commands/scan.js +6 -0
  246. package/dist/commands/scan.js.map +1 -1
  247. package/dist/commands/skill.d.ts +2 -0
  248. package/dist/commands/skill.d.ts.map +1 -0
  249. package/dist/commands/skill.js +16 -0
  250. package/dist/commands/skill.js.map +1 -0
  251. package/dist/commands/status.d.ts.map +1 -1
  252. package/dist/commands/status.js +53 -1
  253. package/dist/commands/status.js.map +1 -1
  254. package/dist/commands/watch.d.ts.map +1 -1
  255. package/dist/commands/watch.js +215 -66
  256. package/dist/commands/watch.js.map +1 -1
  257. package/dist/config/loader.d.ts +3 -1
  258. package/dist/config/loader.d.ts.map +1 -1
  259. package/dist/config/loader.js +19 -6
  260. package/dist/config/loader.js.map +1 -1
  261. package/dist/config/review-model-tiers.json +3 -3
  262. package/dist/config/review-strategy.json +204 -0
  263. package/dist/config/schema.d.ts +269 -15
  264. package/dist/config/schema.d.ts.map +1 -1
  265. package/dist/config/schema.js +109 -10
  266. package/dist/config/schema.js.map +1 -1
  267. package/dist/github/client.d.ts +21 -1
  268. package/dist/github/client.d.ts.map +1 -1
  269. package/dist/github/client.js +46 -7
  270. package/dist/github/client.js.map +1 -1
  271. package/dist/github/detector.d.ts.map +1 -1
  272. package/dist/github/detector.js +28 -1
  273. package/dist/github/detector.js.map +1 -1
  274. package/dist/github/merge.d.ts +0 -5
  275. package/dist/github/merge.d.ts.map +1 -1
  276. package/dist/github/merge.js +0 -9
  277. package/dist/github/merge.js.map +1 -1
  278. package/dist/github/reviewed-sha.d.ts +13 -0
  279. package/dist/github/reviewed-sha.d.ts.map +1 -0
  280. package/dist/github/reviewed-sha.js +62 -0
  281. package/dist/github/reviewed-sha.js.map +1 -0
  282. package/dist/github/superseded-fix-pr.d.ts +19 -0
  283. package/dist/github/superseded-fix-pr.d.ts.map +1 -0
  284. package/dist/github/superseded-fix-pr.js +97 -0
  285. package/dist/github/superseded-fix-pr.js.map +1 -0
  286. package/dist/github/webhook.d.ts +8 -1
  287. package/dist/github/webhook.d.ts.map +1 -1
  288. package/dist/github/webhook.js +8 -1
  289. package/dist/github/webhook.js.map +1 -1
  290. package/dist/issues/ticket-ref.d.ts.map +1 -1
  291. package/dist/issues/ticket-ref.js +6 -5
  292. package/dist/issues/ticket-ref.js.map +1 -1
  293. package/dist/lib/adoption.d.ts +64 -0
  294. package/dist/lib/adoption.d.ts.map +1 -0
  295. package/dist/lib/adoption.js +165 -0
  296. package/dist/lib/adoption.js.map +1 -0
  297. package/dist/lib/annotation.d.ts +7 -0
  298. package/dist/lib/annotation.d.ts.map +1 -1
  299. package/dist/lib/annotation.js +11 -8
  300. package/dist/lib/annotation.js.map +1 -1
  301. package/dist/lib/auto-fix-branch.d.ts +35 -0
  302. package/dist/lib/auto-fix-branch.d.ts.map +1 -0
  303. package/dist/lib/auto-fix-branch.js +88 -0
  304. package/dist/lib/auto-fix-branch.js.map +1 -0
  305. package/dist/lib/board.d.ts +3 -0
  306. package/dist/lib/board.d.ts.map +1 -1
  307. package/dist/lib/board.js +4 -2
  308. package/dist/lib/board.js.map +1 -1
  309. package/dist/lib/clone.d.ts +2 -0
  310. package/dist/lib/clone.d.ts.map +1 -1
  311. package/dist/lib/clone.js +69 -10
  312. package/dist/lib/clone.js.map +1 -1
  313. package/dist/lib/comment-bodies.d.ts +37 -0
  314. package/dist/lib/comment-bodies.d.ts.map +1 -1
  315. package/dist/lib/comment-bodies.js +50 -9
  316. package/dist/lib/comment-bodies.js.map +1 -1
  317. package/dist/lib/logger.d.ts.map +1 -1
  318. package/dist/lib/logger.js +17 -1
  319. package/dist/lib/logger.js.map +1 -1
  320. package/dist/lib/pr-picker.d.ts +1 -1
  321. package/dist/lib/pr-picker.d.ts.map +1 -1
  322. package/dist/lib/pr-picker.js +10 -5
  323. package/dist/lib/pr-picker.js.map +1 -1
  324. package/dist/lib/pr-status.d.ts +2 -1
  325. package/dist/lib/pr-status.d.ts.map +1 -1
  326. package/dist/lib/pr-status.js +70 -6
  327. package/dist/lib/pr-status.js.map +1 -1
  328. package/dist/lib/pr-workflow-state.d.ts +17 -1
  329. package/dist/lib/pr-workflow-state.d.ts.map +1 -1
  330. package/dist/lib/pr-workflow-state.js +110 -5
  331. package/dist/lib/pr-workflow-state.js.map +1 -1
  332. package/dist/lib/repo-picker.d.ts +3 -0
  333. package/dist/lib/repo-picker.d.ts.map +1 -1
  334. package/dist/lib/repo-picker.js +45 -10
  335. package/dist/lib/repo-picker.js.map +1 -1
  336. package/dist/lib/repository-guidance.d.ts +2 -0
  337. package/dist/lib/repository-guidance.d.ts.map +1 -0
  338. package/dist/lib/repository-guidance.js +55 -0
  339. package/dist/lib/repository-guidance.js.map +1 -0
  340. package/dist/lib/review-models.d.ts +15 -2
  341. package/dist/lib/review-models.d.ts.map +1 -1
  342. package/dist/lib/review-models.js +26 -6
  343. package/dist/lib/review-models.js.map +1 -1
  344. package/dist/lib/review-strategy.d.ts +92 -0
  345. package/dist/lib/review-strategy.d.ts.map +1 -0
  346. package/dist/lib/review-strategy.js +282 -0
  347. package/dist/lib/review-strategy.js.map +1 -0
  348. package/dist/lib/runner.d.ts +123 -1
  349. package/dist/lib/runner.d.ts.map +1 -1
  350. package/dist/lib/runner.js +919 -101
  351. package/dist/lib/runner.js.map +1 -1
  352. package/dist/lib/vendor.d.ts +1 -0
  353. package/dist/lib/vendor.d.ts.map +1 -1
  354. package/dist/lib/vendor.js +6 -0
  355. package/dist/lib/vendor.js.map +1 -1
  356. package/dist/lib/workflow.d.ts +13 -0
  357. package/dist/lib/workflow.d.ts.map +1 -1
  358. package/dist/lib/workflow.js +24 -1
  359. package/dist/lib/workflow.js.map +1 -1
  360. package/dist/linear/client.d.ts +18 -0
  361. package/dist/linear/client.d.ts.map +1 -0
  362. package/dist/linear/client.js +67 -0
  363. package/dist/linear/client.js.map +1 -0
  364. package/dist/linear/comment.d.ts +20 -0
  365. package/dist/linear/comment.d.ts.map +1 -0
  366. package/dist/linear/comment.js +57 -0
  367. package/dist/linear/comment.js.map +1 -0
  368. package/dist/linear/identity.d.ts +59 -0
  369. package/dist/linear/identity.d.ts.map +1 -0
  370. package/dist/linear/identity.js +187 -0
  371. package/dist/linear/identity.js.map +1 -0
  372. package/dist/linear/notify.d.ts +35 -0
  373. package/dist/linear/notify.d.ts.map +1 -0
  374. package/dist/linear/notify.js +76 -0
  375. package/dist/linear/notify.js.map +1 -0
  376. package/dist/linear/ref.d.ts +13 -0
  377. package/dist/linear/ref.d.ts.map +1 -0
  378. package/dist/linear/ref.js +90 -0
  379. package/dist/linear/ref.js.map +1 -0
  380. package/dist/linear/verify.d.ts +26 -0
  381. package/dist/linear/verify.d.ts.map +1 -0
  382. package/dist/linear/verify.js +67 -0
  383. package/dist/linear/verify.js.map +1 -0
  384. package/dist/reviewers/address.d.ts +1 -1
  385. package/dist/reviewers/address.d.ts.map +1 -1
  386. package/dist/reviewers/address.js +1 -1
  387. package/dist/reviewers/address.js.map +1 -1
  388. package/dist/reviewers/claude.d.ts +4 -1
  389. package/dist/reviewers/claude.d.ts.map +1 -1
  390. package/dist/reviewers/claude.js +39 -7
  391. package/dist/reviewers/claude.js.map +1 -1
  392. package/dist/reviewers/codex-env.d.ts +12 -0
  393. package/dist/reviewers/codex-env.d.ts.map +1 -0
  394. package/dist/reviewers/codex-env.js +54 -0
  395. package/dist/reviewers/codex-env.js.map +1 -0
  396. package/dist/reviewers/codex.d.ts +18 -1
  397. package/dist/reviewers/codex.d.ts.map +1 -1
  398. package/dist/reviewers/codex.js +164 -81
  399. package/dist/reviewers/codex.js.map +1 -1
  400. package/dist/reviewers/conflict-resolve.d.ts +3 -1
  401. package/dist/reviewers/conflict-resolve.d.ts.map +1 -1
  402. package/dist/reviewers/conflict-resolve.js +21 -6
  403. package/dist/reviewers/conflict-resolve.js.map +1 -1
  404. package/dist/reviewers/fix.d.ts +5 -2
  405. package/dist/reviewers/fix.d.ts.map +1 -1
  406. package/dist/reviewers/fix.js +38 -12
  407. package/dist/reviewers/fix.js.map +1 -1
  408. package/dist/skills/attribution.d.ts +4 -0
  409. package/dist/skills/attribution.d.ts.map +1 -0
  410. package/dist/skills/attribution.js +14 -0
  411. package/dist/skills/attribution.js.map +1 -0
  412. package/dist/skills/broker-server.d.ts +2 -0
  413. package/dist/skills/broker-server.d.ts.map +1 -0
  414. package/dist/skills/broker-server.js +17 -0
  415. package/dist/skills/broker-server.js.map +1 -0
  416. package/dist/skills/broker.d.ts +43 -0
  417. package/dist/skills/broker.d.ts.map +1 -0
  418. package/dist/skills/broker.js +311 -0
  419. package/dist/skills/broker.js.map +1 -0
  420. package/dist/skills/catalog.d.ts +28 -0
  421. package/dist/skills/catalog.d.ts.map +1 -0
  422. package/dist/skills/catalog.js +104 -0
  423. package/dist/skills/catalog.js.map +1 -0
  424. package/dist/skills/installer.d.ts +10 -0
  425. package/dist/skills/installer.d.ts.map +1 -0
  426. package/dist/skills/installer.js +138 -0
  427. package/dist/skills/installer.js.map +1 -0
  428. package/dist/skills/integrity.d.ts +4 -0
  429. package/dist/skills/integrity.d.ts.map +1 -0
  430. package/dist/skills/integrity.js +36 -0
  431. package/dist/skills/integrity.js.map +1 -0
  432. package/docs/dynamic-thoroughness.md +738 -0
  433. package/docs/linear-identity-contract.md +139 -0
  434. package/docs/linear-identity.md +293 -0
  435. package/docs/metrics.md +115 -0
  436. package/docs/trust.md +159 -0
  437. package/get-started.md +322 -16
  438. package/package.json +6 -3
@@ -10,6 +10,7 @@ const ERASE_DOWN = '\x1b[0J';
10
10
  const BOLD = '\x1b[1m';
11
11
  const DIM = '\x1b[2m';
12
12
  const CYAN = '\x1b[36m';
13
+ const YELLOW = '\x1b[33m';
13
14
  const RESET = '\x1b[0m';
14
15
  const DEFAULT_PAGE_SIZE = 12;
15
16
  // Chrome rows beyond the item viewport: title (≤1) + filter (1) + status (1) + footer (1) + safety (1).
@@ -61,6 +62,9 @@ export function truncate(s, maxWidth) {
61
62
  return '…';
62
63
  return s.slice(0, maxWidth - 1) + '…';
63
64
  }
65
+ export function formatPickerHint(kind, hint, maxWidth) {
66
+ return truncate(` ${kind === 'warning' ? 'Warning' : 'Tip'}: ${hint}`, maxWidth);
67
+ }
64
68
  // New windowStart after a PageDown / PageUp jump. The viewport advances by
65
69
  // exactly one page so the visible window changes, not just the cursor — without
66
70
  // this, PgDn would set cursorPos one viewport ahead but `adjustWindowStart`
@@ -107,7 +111,8 @@ export async function promptSinglePicker(items, opts = {}) {
107
111
  const labelStr = isFocused ? `${BOLD}${item.label}${RESET}` : `${DIM}${item.label}${RESET}`;
108
112
  process.stdout.write(`${ERASE_LINE} ${arrow} ${labelStr}${descStr}\n`);
109
113
  }
110
- process.stdout.write(`${ERASE_LINE}${hint ? `${DIM} 💡 ${hint}${RESET}` : ''}\n`);
114
+ const hintLine = hint ? formatPickerHint('tip', hint, process.stdout.columns || 80) : '';
115
+ process.stdout.write(`${ERASE_LINE}${hintLine ? `${DIM}${hintLine}${RESET}` : ''}\n`);
111
116
  if (showStatus) {
112
117
  process.stdout.write(`${ERASE_LINE}${DIM} ${cursor + 1}/${items.length}${RESET}\n`);
113
118
  }
@@ -198,17 +203,28 @@ export async function promptRepoPicker(items, opts = {}) {
198
203
  let cursorPos = opts.selectAllLabel && items.length > 0 ? 1 : 0; // index into `filtered`
199
204
  let windowStart = 0; // index into `filtered`
200
205
  let lastLineCount = 0;
206
+ let selectionWarning = '';
201
207
  const viewport = () => resolveViewport(opts.pageSize, process.stdout.rows);
202
208
  const displayIndices = () => (opts.selectAllLabel && filtered.length > 0 ? [allRow, ...filtered] : filtered);
203
- const allVisibleSelected = () => filtered.length > 0 && filtered.every(i => selected.has(i));
209
+ const selectedItems = () => Array.from(selected).sort((a, b) => a - b).map(i => items[i]);
210
+ const selectableVisible = () => filtered.filter(i => !opts.getSelectionWarning?.(items[i], selectedItems()));
211
+ const allVisibleSelected = () => {
212
+ const selectable = selectableVisible();
213
+ return selectable.length > 0 && selectable.every(i => selected.has(i));
214
+ };
204
215
  const toggleAllVisible = () => {
205
216
  const allOn = allVisibleSelected();
206
217
  if (allOn)
207
- for (const i of filtered)
218
+ for (const i of selectableVisible())
208
219
  selected.delete(i);
209
220
  else
210
- for (const i of filtered)
211
- selected.add(i);
221
+ for (const i of filtered) {
222
+ const warning = opts.getSelectionWarning?.(items[i], selectedItems());
223
+ if (warning)
224
+ selectionWarning ||= warning;
225
+ else
226
+ selected.add(i);
227
+ }
212
228
  };
213
229
  function recomputeFiltered() {
214
230
  filtered = filterIndices(items, filterText);
@@ -232,7 +248,8 @@ export async function promptRepoPicker(items, opts = {}) {
232
248
  const visibleRows = Math.min(vp, displayed.length);
233
249
  const emptyHint = displayed.length === 0;
234
250
  const itemRows = emptyHint ? 1 : visibleRows;
235
- lastLineCount = (opts.title ? 1 : 0) + 1 + itemRows + 1 + 1;
251
+ const showHint = Boolean(opts.getHint || opts.getSelectionWarning);
252
+ lastLineCount = (opts.title ? 1 : 0) + 1 + itemRows + (showHint ? 1 : 0) + 1 + 1;
236
253
  if (opts.title) {
237
254
  process.stdout.write(`${ERASE_LINE}${BOLD}${opts.title}${RESET}\n`);
238
255
  }
@@ -276,7 +293,14 @@ export async function promptRepoPicker(items, opts = {}) {
276
293
  process.stdout.write(`${ERASE_LINE} ${checkStr} ${labelStr}${descStr}\n`);
277
294
  }
278
295
  }
279
- const total = filtered.length;
296
+ if (showHint) {
297
+ const focusedIndex = displayed[cursorPos];
298
+ const focusedItem = focusedIndex === undefined || focusedIndex === allRow ? '' : items[focusedIndex];
299
+ const hint = selectionWarning || (focusedItem ? opts.getHint?.(focusedItem, selectedItems()) ?? '' : '');
300
+ const color = selectionWarning ? YELLOW : DIM;
301
+ const hintLine = hint ? formatPickerHint(selectionWarning ? 'warning' : 'tip', hint, cols) : '';
302
+ process.stdout.write(`${ERASE_LINE}${hintLine ? `${color}${hintLine}${RESET}` : ''}\n`);
303
+ }
280
304
  const displayedTotal = displayed.length;
281
305
  const pos = displayedTotal === 0 ? 0 : cursorPos + 1;
282
306
  const selCount = selected.size;
@@ -317,6 +341,8 @@ export async function promptRepoPicker(items, opts = {}) {
317
341
  cleanup([]);
318
342
  process.exit(130);
319
343
  }
344
+ if (key !== ' ')
345
+ selectionWarning = '';
320
346
  // Navigation keys work in both modes — let the user scroll while filtering.
321
347
  if (key === '\x1b[A') {
322
348
  const displayed = displayIndices();
@@ -402,10 +428,19 @@ export async function promptRepoPicker(items, opts = {}) {
402
428
  const origIdx = displayed[cursorPos];
403
429
  if (origIdx === allRow)
404
430
  toggleAllVisible();
405
- else if (selected.has(origIdx))
431
+ else if (selected.has(origIdx)) {
406
432
  selected.delete(origIdx);
407
- else
408
- selected.add(origIdx);
433
+ selectionWarning = '';
434
+ }
435
+ else {
436
+ const warning = opts.getSelectionWarning?.(items[origIdx], selectedItems());
437
+ if (warning)
438
+ selectionWarning = warning;
439
+ else {
440
+ selected.add(origIdx);
441
+ selectionWarning = '';
442
+ }
443
+ }
409
444
  render();
410
445
  }
411
446
  else if (key === 'a') {
@@ -1 +1 @@
1
- {"version":3,"file":"repo-picker.js","sourceRoot":"","sources":["../../src/lib/repo-picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-picker.js","sourceRoot":"","sources":["../../src/lib/repo-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function loadRepositoryReviewGuidance(repoDir: string, baseBranch: string): string;
2
+ //# sourceMappingURL=repository-guidance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-guidance.d.ts","sourceRoot":"","sources":["../../src/lib/repository-guidance.ts"],"names":[],"mappings":"AAcA,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA0CxF"}
@@ -0,0 +1,55 @@
1
+ import { execFileSync } from 'child_process';
2
+ import { dirname } from 'path';
3
+ const GUIDANCE_FILES = new Set(['AGENTS.md', 'CLAUDE.md']);
4
+ function git(repoDir, args) {
5
+ return execFileSync('git', args, {
6
+ cwd: repoDir,
7
+ encoding: 'utf8',
8
+ stdio: ['ignore', 'pipe', 'pipe'],
9
+ maxBuffer: 2 * 1024 * 1024,
10
+ }).trim();
11
+ }
12
+ export function loadRepositoryReviewGuidance(repoDir, baseBranch) {
13
+ const baseRef = `origin/${baseBranch}`;
14
+ try {
15
+ const changedPaths = git(repoDir, ['diff', '--name-only', '--diff-filter=ACDMRT', `${baseRef}...HEAD`, '--'])
16
+ .split('\n').filter(Boolean);
17
+ if (changedPaths.length === 0)
18
+ return '';
19
+ const scopes = new Set(['.']);
20
+ for (const changedPath of changedPaths) {
21
+ let scope = dirname(changedPath);
22
+ while (scope !== '.') {
23
+ scopes.add(scope);
24
+ scope = dirname(scope);
25
+ }
26
+ }
27
+ const candidates = [...scopes].flatMap(scope => [...GUIDANCE_FILES].map(file => scope === '.' ? file : `${scope}/${file}`));
28
+ const checks = execFileSync('git', ['cat-file', '--batch-check'], {
29
+ cwd: repoDir,
30
+ encoding: 'utf8',
31
+ input: candidates.map(path => `${baseRef}:${path}\n`).join(''),
32
+ stdio: ['pipe', 'pipe', 'pipe'],
33
+ maxBuffer: 2 * 1024 * 1024,
34
+ }).trim().split('\n');
35
+ const guidancePaths = candidates
36
+ .filter((_, index) => checks[index]?.includes(' blob '))
37
+ .sort((a, b) => a.split('/').length - b.split('/').length || a.localeCompare(b));
38
+ if (guidancePaths.length === 0)
39
+ return '';
40
+ const sections = guidancePaths.map(path => {
41
+ const scope = dirname(path);
42
+ const content = git(repoDir, ['show', `${baseRef}:${path}`]);
43
+ return `### ${path} (scope: ${scope === '.' ? 'repository root' : `${scope}/`})\n${content}`;
44
+ });
45
+ return [
46
+ '## Repository-defined review practices (trusted base branch)',
47
+ 'These repository practices override conflicting advice from Crosscheck-provided skills. Apply each file only within its stated scope. More specific directory guidance overrides broader guidance. At the same scope, reconcile AGENTS.md and CLAUDE.md; if they conflict, report the ambiguity instead of inventing a rule.',
48
+ ...sections,
49
+ ].join('\n\n');
50
+ }
51
+ catch {
52
+ return '';
53
+ }
54
+ }
55
+ //# sourceMappingURL=repository-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-guidance.js","sourceRoot":"","sources":["../../src/lib/repository-guidance.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,21 @@
1
1
  import type { CodexVendorConfig, QualityConfig, VendorConfig } from '../config/schema.js';
2
2
  export declare const CLAUDE_TIER_MODELS: Record<QualityConfig['tier'], string>;
3
3
  export declare const CODEX_TIER_MODELS_API: Record<QualityConfig['tier'], string>;
4
- export declare function resolveClaudeModel(quality: QualityConfig, vendor?: VendorConfig): string;
5
- export declare function resolveCodexModel(quality: QualityConfig, vendor: CodexVendorConfig): string;
4
+ /**
5
+ * The tier in force for one call. Under `quality.mode: 'smart'` the per-PR
6
+ * strategy wins; otherwise the single configured tier applies. Falls back to the
7
+ * configured tier whenever no strategy resolved — one-shot commands, or a PR
8
+ * whose file list could not be read.
9
+ */
10
+ export declare function effectiveTier(quality: QualityConfig, strategy?: {
11
+ tier: QualityConfig['tier'] | null;
12
+ } | null): QualityConfig['tier'];
13
+ export declare function resolveClaudeModel(quality: QualityConfig, vendor?: VendorConfig, strategy?: {
14
+ tier: QualityConfig['tier'] | null;
15
+ } | null): string;
16
+ export declare function resolveCodexModel(quality: QualityConfig, vendor: CodexVendorConfig, strategy?: {
17
+ tier: QualityConfig['tier'] | null;
18
+ } | null): string;
6
19
  export declare function modelDisplayName(model: string): string | null;
7
20
  export declare function primaryModelFromUsage(modelUsage: unknown): string | null;
8
21
  //# sourceMappingURL=review-models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-models.d.ts","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAkBzF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAgC,CAAA;AACrG,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAmC,CAAA;AAE3G,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAMxF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAG3F;AAcD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D;AAQD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgBxE"}
1
+ {"version":3,"file":"review-models.d.ts","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAkBzF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAgC,CAAA;AACrG,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAmC,CAAA;AAE3G;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,aAAa,CAAC,MAAM,CAAC,CAGvB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,YAAY,EACrB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,MAAM,CAMR;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,iBAAiB,EACzB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GACvD,MAAM,CAWR;AAcD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D;AAQD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAgBxE"}
@@ -14,18 +14,38 @@ const rawReviewModelTierConfig = require('../config/review-model-tiers.json');
14
14
  const reviewModelTierConfig = ReviewModelTierConfigSchema.parse(rawReviewModelTierConfig);
15
15
  export const CLAUDE_TIER_MODELS = reviewModelTierConfig.claude;
16
16
  export const CODEX_TIER_MODELS_API = reviewModelTierConfig.codex_api;
17
- export function resolveClaudeModel(quality, vendor) {
17
+ /**
18
+ * The tier in force for one call. Under `quality.mode: 'smart'` the per-PR
19
+ * strategy wins; otherwise the single configured tier applies. Falls back to the
20
+ * configured tier whenever no strategy resolved — one-shot commands, or a PR
21
+ * whose file list could not be read.
22
+ */
23
+ export function effectiveTier(quality, strategy) {
24
+ if (quality.mode === 'smart' && strategy?.tier)
25
+ return strategy.tier;
26
+ return quality.tier;
27
+ }
28
+ export function resolveClaudeModel(quality, vendor, strategy) {
18
29
  // An explicit vendors.claude.model wins over the tier mapping. The claude CLI
19
- // accepts --model under both subscription and api-key auth (unlike Codex), so
20
- // we honor it regardless of auth instead of silently dropping it.
30
+ // accepts --model under both subscription and api-key auth, so we honor it
31
+ // regardless of auth instead of silently dropping it.
21
32
  if (vendor?.model)
22
33
  return vendor.model;
23
- return CLAUDE_TIER_MODELS[quality.tier] ?? CLAUDE_TIER_MODELS.balanced;
34
+ return CLAUDE_TIER_MODELS[effectiveTier(quality, strategy)] ?? CLAUDE_TIER_MODELS.balanced;
24
35
  }
25
- export function resolveCodexModel(quality, vendor) {
36
+ export function resolveCodexModel(quality, vendor, strategy) {
37
+ const tier = effectiveTier(quality, strategy);
38
+ // An explicitly configured model wins under either auth — the codex CLI
39
+ // accepts -c model= with subscription (ChatGPT) auth too. Only the built-in
40
+ // tier mapping stays api-key-only: with nothing configured, subscription
41
+ // users keep the CLI's own default model, because the gpt-5.6-* IDs need
42
+ // codex >= 0.147.0 and would 400 on an older CLI.
43
+ const explicit = vendor.model || vendor.model_tiers?.[tier];
44
+ if (explicit)
45
+ return explicit;
26
46
  if (vendor.auth !== 'api-key')
27
47
  return 'default';
28
- return vendor.model || vendor.model_tiers?.[quality.tier] || CODEX_TIER_MODELS_API[quality.tier] || CODEX_TIER_MODELS_API.balanced;
48
+ return CODEX_TIER_MODELS_API[tier] || CODEX_TIER_MODELS_API.balanced;
29
49
  }
30
50
  // Derives a display name from the regular claude model ID shape:
31
51
  // claude-{family}-{major}[-{minor}][-YYYYMMDD]. New models then render
@@ -1 +1 @@
1
- {"version":3,"file":"review-models.js","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-models.js","sourceRoot":"","sources":["../../src/lib/review-models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import type { QualityConfig } from '../config/schema.js';
2
+ export type Tier = QualityConfig['tier'];
3
+ export type Domain = 'frontend' | 'backend';
4
+ export interface PRContext {
5
+ files: string[];
6
+ additions: number;
7
+ deletions: number;
8
+ labels?: string[];
9
+ title?: string;
10
+ baseRef?: string;
11
+ defaultBranch?: string;
12
+ }
13
+ export interface ResolvedStrategy {
14
+ /** Strategy file version, stamped into every comment so a past review stays explicable. */
15
+ version: string;
16
+ classId: string;
17
+ classLabel: string;
18
+ /** Human-readable rationale, quoted verbatim in the PR comment. */
19
+ reason: string;
20
+ /** null = skip this PR entirely. */
21
+ tier: Tier | null;
22
+ effort: string | null;
23
+ steps: string[];
24
+ focus?: string;
25
+ domain: Domain;
26
+ }
27
+ /**
28
+ * Frontend vs backend, by file-extension majority. `mixed` and `unknown` both
29
+ * fall back to backend — the conservative default, because the backend
30
+ * preference list is `measured` while the frontend list is still a hypothesis.
31
+ */
32
+ export declare function detectDomain(files: string[]): Domain;
33
+ /** Classifies a PR against the strategy's ordered class list. First match wins. */
34
+ export declare function resolveReviewStrategy(pr: PRContext): ResolvedStrategy;
35
+ /** Effort levels a model accepts. Empty array = the model has no effort control. */
36
+ export declare function effortLevelsFor(model: string): string[];
37
+ export declare function isModelBanned(model: string): boolean;
38
+ export declare function strategyModelFor(vendor: string, tier: Tier): string | null;
39
+ export declare function strategyVersion(): string;
40
+ export declare function ladderLimits(): {
41
+ maxRounds: number;
42
+ maxBlocking: number;
43
+ maxWallClockMin: number;
44
+ };
45
+ /** One vendor that may review this round. */
46
+ export interface EscalationLane {
47
+ /** The model that would run for this vendor at the class tier. */
48
+ model: string;
49
+ /** The vendor CLI's effort flags. Omitted = judge on model capability alone. */
50
+ accepted?: readonly string[];
51
+ }
52
+ /**
53
+ * Escalation for round N. Raises effort where the vendor that will actually run
54
+ * can deliver a higher one; where it cannot, degrades to a tier promotion
55
+ * instead — `ladder.effort_fallback`.
56
+ *
57
+ * `lanes` are the vendors in play, not claude alone. Collapsing them produced
58
+ * two separate no-ops:
59
+ * - judging by the claude tier model on a codex-only install promoted a tier
60
+ * every round (haiku exposes no effort ladder) while codex — which accepts
61
+ * none…max — sat at the effort it started on;
62
+ * - judging by MODEL capability alone made round 3 identical to round 2 on
63
+ * claude: claude-opus-5 reasons at `xhigh`, the claude CLI has no flag for
64
+ * it, so the wire effort clamped straight back down to round 2's `high`.
65
+ *
66
+ * So each lane is judged post-clamp, at the wire, and effort rises only when
67
+ * EVERY lane rises there. Otherwise the tier is promoted, which every lane can
68
+ * express.
69
+ *
70
+ * The model never weakens across rounds. Scope narrows instead: a recheck
71
+ * examines the delta plus the open findings, not the whole PR again.
72
+ */
73
+ export declare function escalate(base: {
74
+ tier: Tier;
75
+ effort: string | null;
76
+ }, round: number, lanes: string | readonly EscalationLane[]): {
77
+ tier: Tier;
78
+ effort: string | null;
79
+ };
80
+ /** Clamps a requested effort to what the model actually accepts. */
81
+ export declare function clampEffort(model: string, effort: string | null): string | null;
82
+ /**
83
+ * Clamps a requested effort to an accepted vocabulary.
84
+ *
85
+ * Applied twice on the way to a CLI, against two different sets: what the MODEL
86
+ * can reason at (`models[].effort_levels` here) and what the VENDOR CLI has a
87
+ * flag for (CLAUDE_EFFORT_LEVELS / CODEX_EFFORT_LEVELS in the config schema).
88
+ * They are not the same — claude-opus-5 reasons at `xhigh` and the claude CLI
89
+ * cannot ask for it — and only the second reaches the wire.
90
+ */
91
+ export declare function clampToLevels(effort: string | null, levels: readonly string[]): string | null;
92
+ //# sourceMappingURL=review-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-strategy.d.ts","sourceRoot":"","sources":["../../src/lib/review-strategy.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIxD,MAAM,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AACxC,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;AA2E3C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAUD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAIpD;AAsDD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,SAAS,GAAG,gBAAgB,CAerE;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAE1E;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,IAAI;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAMlG;AAYD,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC3C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,GACxC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAkCvC;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAW7F"}