reviewdeck 0.2.2

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 (315) hide show
  1. package/README.md +75 -0
  2. package/dist/reviewdeck.mjs +1084 -0
  3. package/dist/web/assets/abap-CkQ0tsz-.js +1 -0
  4. package/dist/web/assets/actionscript-3-DHm0ZfF4.js +1 -0
  5. package/dist/web/assets/ada-DK_ua92Z.js +1 -0
  6. package/dist/web/assets/andromeeda-D2ccw8v4.js +1 -0
  7. package/dist/web/assets/angular-html-BW6jlb6j.js +1 -0
  8. package/dist/web/assets/angular-ts-DWBNOji_.js +1 -0
  9. package/dist/web/assets/apache-DXtpFu7o.js +1 -0
  10. package/dist/web/assets/apex-DlnRRWpl.js +1 -0
  11. package/dist/web/assets/apl-uRKDN2p3.js +1 -0
  12. package/dist/web/assets/applescript-CShk62ad.js +1 -0
  13. package/dist/web/assets/ara-CWN-FDkm.js +1 -0
  14. package/dist/web/assets/asciidoc-Bg-PM9Vn.js +1 -0
  15. package/dist/web/assets/asm-DKOhR24S.js +1 -0
  16. package/dist/web/assets/astro-BiNvR4wU.js +1 -0
  17. package/dist/web/assets/aurora-x-DpaEirL8.js +1 -0
  18. package/dist/web/assets/awk-3ibKHffv.js +1 -0
  19. package/dist/web/assets/ayu-dark-ursiSH5k.js +1 -0
  20. package/dist/web/assets/ayu-light-DMjlrKmx.js +1 -0
  21. package/dist/web/assets/ayu-mirage-DZEMb75h.js +1 -0
  22. package/dist/web/assets/ballerina-xx7VNGxs.js +1 -0
  23. package/dist/web/assets/bat-DGYsZ5wR.js +1 -0
  24. package/dist/web/assets/beancount-D_ATR1UV.js +1 -0
  25. package/dist/web/assets/berry-BqYMORfH.js +1 -0
  26. package/dist/web/assets/bibtex-CQTBDajW.js +1 -0
  27. package/dist/web/assets/bicep-CfNtxPrK.js +1 -0
  28. package/dist/web/assets/bird2-C0dUPe3I.js +1 -0
  29. package/dist/web/assets/blade-CogPuRcD.js +1 -0
  30. package/dist/web/assets/bsl-Dx5tFn3i.js +1 -0
  31. package/dist/web/assets/c-c6mXMDpL.js +1 -0
  32. package/dist/web/assets/c3-BUwZ5e3k.js +1 -0
  33. package/dist/web/assets/cadence-C3OKDYrr.js +1 -0
  34. package/dist/web/assets/cairo-wCCQTdA9.js +1 -0
  35. package/dist/web/assets/catppuccin-frappe-CMnRXVZP.js +1 -0
  36. package/dist/web/assets/catppuccin-latte-CqhXSjCC.js +1 -0
  37. package/dist/web/assets/catppuccin-macchiato-B6kneE0C.js +1 -0
  38. package/dist/web/assets/catppuccin-mocha-CP8YZpvj.js +1 -0
  39. package/dist/web/assets/clarity-Crxe8gSr.js +1 -0
  40. package/dist/web/assets/clojure-BuzOUPMr.js +1 -0
  41. package/dist/web/assets/cmake-CCpZLdLI.js +1 -0
  42. package/dist/web/assets/cobol-BBFZi1TD.js +1 -0
  43. package/dist/web/assets/codeowners-Bo1VYpHz.js +1 -0
  44. package/dist/web/assets/codeql-Db01hzHE.js +1 -0
  45. package/dist/web/assets/coffee-CoyNl-Vr.js +1 -0
  46. package/dist/web/assets/common-lisp-CMlJIc6Y.js +1 -0
  47. package/dist/web/assets/coq-BlzBYp3f.js +1 -0
  48. package/dist/web/assets/cpp-BhZISK2o.js +1 -0
  49. package/dist/web/assets/crystal-DARwJIth.js +1 -0
  50. package/dist/web/assets/csharp-kfNshAa7.js +1 -0
  51. package/dist/web/assets/css-BFlkO4hH.js +1 -0
  52. package/dist/web/assets/csv-Dr8ri5Nd.js +1 -0
  53. package/dist/web/assets/cue-jXfhyOwY.js +1 -0
  54. package/dist/web/assets/cypher-CayLeiaR.js +1 -0
  55. package/dist/web/assets/d-BMZQ0mAy.js +1 -0
  56. package/dist/web/assets/dark-plus-B__q47Nr.js +1 -0
  57. package/dist/web/assets/dart-gMOEMyuz.js +1 -0
  58. package/dist/web/assets/dax-C3t5LadU.js +1 -0
  59. package/dist/web/assets/desktop-DmhXLwLR.js +1 -0
  60. package/dist/web/assets/diff-togOXQX6.js +1 -0
  61. package/dist/web/assets/docker--6N01olR.js +1 -0
  62. package/dist/web/assets/dotenv-Bq930Yx8.js +1 -0
  63. package/dist/web/assets/dracula-CBkSghcw.js +1 -0
  64. package/dist/web/assets/dracula-soft-CCSYeoxL.js +1 -0
  65. package/dist/web/assets/dream-maker-BiMf3DHl.js +1 -0
  66. package/dist/web/assets/edge-1uDQap2l.js +1 -0
  67. package/dist/web/assets/elixir-B630FsAX.js +1 -0
  68. package/dist/web/assets/elm-B0CYJExx.js +1 -0
  69. package/dist/web/assets/emacs-lisp-Dhht7he2.js +1 -0
  70. package/dist/web/assets/erb-BCuuvlI8.js +1 -0
  71. package/dist/web/assets/erlang-CtK0kQ6z.js +1 -0
  72. package/dist/web/assets/everforest-dark-NqSz4oHS.js +1 -0
  73. package/dist/web/assets/everforest-light-a3Yzs_lT.js +1 -0
  74. package/dist/web/assets/fennel-BExc9TZf.js +1 -0
  75. package/dist/web/assets/fish-C2p-AJmZ.js +1 -0
  76. package/dist/web/assets/fluent-CeYzs8Qy.js +1 -0
  77. package/dist/web/assets/fortran-fixed-form-DBM4e0_k.js +1 -0
  78. package/dist/web/assets/fortran-free-form-BIQEK2Jw.js +1 -0
  79. package/dist/web/assets/fsharp-CmzzGQLe.js +1 -0
  80. package/dist/web/assets/gdresource-B_wbPqHd.js +1 -0
  81. package/dist/web/assets/gdscript-B5JQPh_-.js +1 -0
  82. package/dist/web/assets/gdshader-vVjJ_Qr8.js +1 -0
  83. package/dist/web/assets/genie-DGl5rqC8.js +1 -0
  84. package/dist/web/assets/gherkin-CY_VLUnD.js +1 -0
  85. package/dist/web/assets/git-commit-1z4D6NzL.js +1 -0
  86. package/dist/web/assets/git-rebase-CMGqxEzO.js +1 -0
  87. package/dist/web/assets/github-dark-ClO4AStc.js +1 -0
  88. package/dist/web/assets/github-dark-default-CM0dPco8.js +1 -0
  89. package/dist/web/assets/github-dark-dimmed-Cb6xxpXY.js +1 -0
  90. package/dist/web/assets/github-dark-high-contrast-BpYtx2-M.js +1 -0
  91. package/dist/web/assets/github-light-CeOVFgf_.js +1 -0
  92. package/dist/web/assets/github-light-default-BmnCWL6x.js +1 -0
  93. package/dist/web/assets/github-light-high-contrast-rpagNF5O.js +1 -0
  94. package/dist/web/assets/gleam-BarIG9kQ.js +1 -0
  95. package/dist/web/assets/glimmer-js-CwCQsT5O.js +1 -0
  96. package/dist/web/assets/glimmer-ts-CDiy87zB.js +1 -0
  97. package/dist/web/assets/glsl-KkJIjOyq.js +1 -0
  98. package/dist/web/assets/gn-DhYsTPYc.js +1 -0
  99. package/dist/web/assets/gnuplot-CucLlTBc.js +1 -0
  100. package/dist/web/assets/go-toi-uWvg.js +1 -0
  101. package/dist/web/assets/graphql-MKTYUDMa.js +1 -0
  102. package/dist/web/assets/groovy-Ds4dis_k.js +1 -0
  103. package/dist/web/assets/gruvbox-dark-hard-aPiW8pQh.js +1 -0
  104. package/dist/web/assets/gruvbox-dark-medium-2HJCvzsS.js +1 -0
  105. package/dist/web/assets/gruvbox-dark-soft-Da97ODX9.js +1 -0
  106. package/dist/web/assets/gruvbox-light-hard-BXlEipFe.js +1 -0
  107. package/dist/web/assets/gruvbox-light-medium-Cun-GjGk.js +1 -0
  108. package/dist/web/assets/gruvbox-light-soft-Bd3qiiSw.js +1 -0
  109. package/dist/web/assets/hack-Bwo3McIF.js +1 -0
  110. package/dist/web/assets/haml-D88Ucy2e.js +1 -0
  111. package/dist/web/assets/handlebars-BU0LZwZ1.js +1 -0
  112. package/dist/web/assets/haskell-B_jvz5Po.js +1 -0
  113. package/dist/web/assets/haxe-BRbuo5UO.js +1 -0
  114. package/dist/web/assets/hcl-BzNUCtsK.js +1 -0
  115. package/dist/web/assets/hjson-BxVo3sS2.js +1 -0
  116. package/dist/web/assets/hlsl-C8Wes1nf.js +1 -0
  117. package/dist/web/assets/horizon-D54PjLAY.js +1 -0
  118. package/dist/web/assets/horizon-bright-D9RccdIr.js +1 -0
  119. package/dist/web/assets/houston-CMu1N_4K.js +1 -0
  120. package/dist/web/assets/html-DrMQJsXw.js +1 -0
  121. package/dist/web/assets/html-derivative-0WBbZowl.js +1 -0
  122. package/dist/web/assets/http-DbEAkxXN.js +1 -0
  123. package/dist/web/assets/hurl-CqJXynMd.js +1 -0
  124. package/dist/web/assets/hxml-DC4KwKt2.js +1 -0
  125. package/dist/web/assets/hy-dMrJKKU_.js +1 -0
  126. package/dist/web/assets/imba-DG_oO8tg.js +1 -0
  127. package/dist/web/assets/index-BPtNzy1Q.js +1934 -0
  128. package/dist/web/assets/index-BkEoZ-nI.css +2 -0
  129. package/dist/web/assets/ini-geHw79Aj.js +1 -0
  130. package/dist/web/assets/java-BRVCc-Q1.js +1 -0
  131. package/dist/web/assets/javascript-BD4fYJEn.js +1 -0
  132. package/dist/web/assets/jinja-CelQ23ws.js +1 -0
  133. package/dist/web/assets/jison-DBS-9n7v.js +1 -0
  134. package/dist/web/assets/json-DZDuupM6.js +1 -0
  135. package/dist/web/assets/json5-CDUsNqz6.js +1 -0
  136. package/dist/web/assets/jsonc-D48xcwyD.js +1 -0
  137. package/dist/web/assets/jsonl-cpIYDXEe.js +1 -0
  138. package/dist/web/assets/jsonnet-Da1lhszN.js +1 -0
  139. package/dist/web/assets/jssm-B8BLrEGL.js +1 -0
  140. package/dist/web/assets/jsx-BZOBrdrR.js +1 -0
  141. package/dist/web/assets/julia-BCQpMN0P.js +1 -0
  142. package/dist/web/assets/just-C3xXABnW.js +1 -0
  143. package/dist/web/assets/kanagawa-dragon-2Sk8Rx83.js +1 -0
  144. package/dist/web/assets/kanagawa-lotus-CQVSWfJp.js +1 -0
  145. package/dist/web/assets/kanagawa-wave-BKWNioLX.js +1 -0
  146. package/dist/web/assets/kdl-B-2tSRmp.js +1 -0
  147. package/dist/web/assets/kotlin-DepsEzh3.js +1 -0
  148. package/dist/web/assets/kusto-BcCtXIb8.js +1 -0
  149. package/dist/web/assets/laserwave-BUqkO46F.js +1 -0
  150. package/dist/web/assets/latex-OIm821Jq.js +1 -0
  151. package/dist/web/assets/lean-CNO9ffpX.js +1 -0
  152. package/dist/web/assets/less-Dj0T9pWC.js +1 -0
  153. package/dist/web/assets/light-plus-C9Hnuc1T.js +1 -0
  154. package/dist/web/assets/liquid-CtRnMjLR.js +1 -0
  155. package/dist/web/assets/llvm-DbV9b66l.js +1 -0
  156. package/dist/web/assets/log-BMblmPyH.js +1 -0
  157. package/dist/web/assets/logo-B78qMxws.js +1 -0
  158. package/dist/web/assets/lua-C4GAsLLv.js +1 -0
  159. package/dist/web/assets/luau-BUd8xsdE.js +1 -0
  160. package/dist/web/assets/make-Ev-6cJrd.js +1 -0
  161. package/dist/web/assets/markdown-CS4LI6sN.js +1 -0
  162. package/dist/web/assets/marko-BzBo2m_h.js +1 -0
  163. package/dist/web/assets/material-theme-5rA1zn0D.js +1 -0
  164. package/dist/web/assets/material-theme-darker-DGOEiL65.js +1 -0
  165. package/dist/web/assets/material-theme-lighter-CULfFRX0.js +1 -0
  166. package/dist/web/assets/material-theme-ocean-LQZ9CleP.js +1 -0
  167. package/dist/web/assets/material-theme-palenight-Di_f5oks.js +1 -0
  168. package/dist/web/assets/matlab-C0qEtAx9.js +1 -0
  169. package/dist/web/assets/mdc-Diez5J4p.js +1 -0
  170. package/dist/web/assets/mdx-CzvnbLXb.js +1 -0
  171. package/dist/web/assets/mermaid-BPquZaKt.js +1 -0
  172. package/dist/web/assets/min-dark-rkuIbtJV.js +1 -0
  173. package/dist/web/assets/min-light-Dj_HOGsr.js +1 -0
  174. package/dist/web/assets/mipsasm-k5DQoS6j.js +1 -0
  175. package/dist/web/assets/mojo-sTTDuNnR.js +1 -0
  176. package/dist/web/assets/monokai-D5p-u2ij.js +1 -0
  177. package/dist/web/assets/moonbit-j5ChFtBC.js +1 -0
  178. package/dist/web/assets/move-Dj0Gmn6R.js +1 -0
  179. package/dist/web/assets/narrat-DJgMz2oW.js +1 -0
  180. package/dist/web/assets/nextflow-CApkvBGW.js +1 -0
  181. package/dist/web/assets/nextflow-groovy-eDLuZ_oi.js +1 -0
  182. package/dist/web/assets/nginx-B-O05-Ip.js +1 -0
  183. package/dist/web/assets/night-owl-CEdtPl3A.js +1 -0
  184. package/dist/web/assets/night-owl-light-GdSldewm.js +1 -0
  185. package/dist/web/assets/nim-DYodfN_j.js +1 -0
  186. package/dist/web/assets/nix-CxIPS3pb.js +1 -0
  187. package/dist/web/assets/nord-3WFAz5H9.js +1 -0
  188. package/dist/web/assets/nushell-GDfBmoBU.js +1 -0
  189. package/dist/web/assets/objective-c-MFQ_MGUa.js +1 -0
  190. package/dist/web/assets/objective-cpp-Y83LcBE7.js +1 -0
  191. package/dist/web/assets/ocaml-FxYfaJxu.js +1 -0
  192. package/dist/web/assets/odin-CprihY3z.js +1 -0
  193. package/dist/web/assets/one-dark-pro-BB6mpmmA.js +1 -0
  194. package/dist/web/assets/one-light-BYLoxNtg.js +1 -0
  195. package/dist/web/assets/openscad-Bc1FbpOi.js +1 -0
  196. package/dist/web/assets/pascal-Bb4d8cUL.js +1 -0
  197. package/dist/web/assets/perl-BajmpJw1.js +1 -0
  198. package/dist/web/assets/php-GbSlF-ma.js +1 -0
  199. package/dist/web/assets/pierre-dark-DbQedTMH.js +1 -0
  200. package/dist/web/assets/pierre-light-DxtrzyCi.js +1 -0
  201. package/dist/web/assets/pkl-tM25Sq0w.js +1 -0
  202. package/dist/web/assets/plastic-D3k2Xp_5.js +1 -0
  203. package/dist/web/assets/plsql-CLEfFhSj.js +1 -0
  204. package/dist/web/assets/po-CaAzdrrh.js +1 -0
  205. package/dist/web/assets/poimandres-bPTvT4Da.js +1 -0
  206. package/dist/web/assets/polar-TG7aTGdK.js +1 -0
  207. package/dist/web/assets/postcss-8kqfa9f0.js +1 -0
  208. package/dist/web/assets/powerquery-CtSu1Nfd.js +1 -0
  209. package/dist/web/assets/powershell-87lLBHMy.js +1 -0
  210. package/dist/web/assets/prisma-Dnf694DZ.js +1 -0
  211. package/dist/web/assets/prolog-C0XbHTWa.js +1 -0
  212. package/dist/web/assets/proto-BZP-HLIb.js +1 -0
  213. package/dist/web/assets/pug-B3pftVq7.js +1 -0
  214. package/dist/web/assets/puppet-CJYWgYC5.js +1 -0
  215. package/dist/web/assets/purescript-B95Q6BAd.js +1 -0
  216. package/dist/web/assets/python-CqTCsi7P.js +1 -0
  217. package/dist/web/assets/qml-CU7fIqWl.js +1 -0
  218. package/dist/web/assets/qmldir-DlIL4hls.js +1 -0
  219. package/dist/web/assets/qss-BW72E0q_.js +1 -0
  220. package/dist/web/assets/r-VFD3g93S.js +1 -0
  221. package/dist/web/assets/racket-CCAimEsC.js +1 -0
  222. package/dist/web/assets/raku-mSuqElkM.js +1 -0
  223. package/dist/web/assets/razor-YJmCxoz7.js +1 -0
  224. package/dist/web/assets/red-C-DA4yBI.js +1 -0
  225. package/dist/web/assets/reg-CGwMBJ2c.js +1 -0
  226. package/dist/web/assets/regexp-xQImVJyz.js +1 -0
  227. package/dist/web/assets/rel-JwrbYgX4.js +1 -0
  228. package/dist/web/assets/riscv-CoYyE75b.js +1 -0
  229. package/dist/web/assets/ron-C5wrhnmJ.js +1 -0
  230. package/dist/web/assets/rose-pine-DlrMPYYd.js +1 -0
  231. package/dist/web/assets/rose-pine-dawn-DBHFtZD2.js +1 -0
  232. package/dist/web/assets/rose-pine-moon-BBfrpe5q.js +1 -0
  233. package/dist/web/assets/rosmsg-DlimTR9t.js +1 -0
  234. package/dist/web/assets/rst-C-l1vIhG.js +1 -0
  235. package/dist/web/assets/ruby-ClXcG6Uc.js +1 -0
  236. package/dist/web/assets/rust-Cxnkxx3h.js +1 -0
  237. package/dist/web/assets/sas-UbdvwYYC.js +1 -0
  238. package/dist/web/assets/sass-DEyqUIpU.js +1 -0
  239. package/dist/web/assets/scala-i3RN3yAN.js +1 -0
  240. package/dist/web/assets/scheme-BcKdjYkO.js +1 -0
  241. package/dist/web/assets/scss-BSFxtSCj.js +1 -0
  242. package/dist/web/assets/sdbl-Be_XWc3n.js +1 -0
  243. package/dist/web/assets/shaderlab-DXAhMdPo.js +1 -0
  244. package/dist/web/assets/shellscript-DipAQUtx.js +1 -0
  245. package/dist/web/assets/shellsession-4iJrG6C5.js +1 -0
  246. package/dist/web/assets/slack-dark-3PDtm74m.js +1 -0
  247. package/dist/web/assets/slack-ochin-CwiuFRJD.js +1 -0
  248. package/dist/web/assets/smalltalk-BdBlL6ks.js +1 -0
  249. package/dist/web/assets/snazzy-light-Dyqc8Is2.js +1 -0
  250. package/dist/web/assets/solarized-dark-DZiTscIX.js +1 -0
  251. package/dist/web/assets/solarized-light-DBcfxrfG.js +1 -0
  252. package/dist/web/assets/solidity-DH-yUSWc.js +1 -0
  253. package/dist/web/assets/soy-DbrU_Nxg.js +1 -0
  254. package/dist/web/assets/sparql-BdcL8cbr.js +1 -0
  255. package/dist/web/assets/splunk-CIjc4kxs.js +1 -0
  256. package/dist/web/assets/sql-5eAwe7x9.js +1 -0
  257. package/dist/web/assets/ssh-config-BKVd4drG.js +1 -0
  258. package/dist/web/assets/stata-DPzpuJuP.js +1 -0
  259. package/dist/web/assets/stylus-tqAsmugv.js +1 -0
  260. package/dist/web/assets/surrealql-BFHjstCU.js +1 -0
  261. package/dist/web/assets/svelte-DEFiloGp.js +1 -0
  262. package/dist/web/assets/swift-CdDBQ3_Z.js +1 -0
  263. package/dist/web/assets/synthwave-84-CbbRs73K.js +1 -0
  264. package/dist/web/assets/system-verilog-CBqEY-9v.js +1 -0
  265. package/dist/web/assets/systemd-khRP5zwK.js +1 -0
  266. package/dist/web/assets/talonscript-D_lneH-6.js +1 -0
  267. package/dist/web/assets/tasl-CLymawGe.js +1 -0
  268. package/dist/web/assets/tcl-BRY1S87U.js +1 -0
  269. package/dist/web/assets/templ-B3axXApj.js +1 -0
  270. package/dist/web/assets/terraform-BqohMo2f.js +1 -0
  271. package/dist/web/assets/tex-DhbFB_y0.js +1 -0
  272. package/dist/web/assets/tokyo-night-BWUONxad.js +1 -0
  273. package/dist/web/assets/toml-C4c85Lwg.js +1 -0
  274. package/dist/web/assets/ts-tags-BN89t81C.js +1 -0
  275. package/dist/web/assets/tsv-DsZq9HBQ.js +1 -0
  276. package/dist/web/assets/tsx-LzmugIB3.js +1 -0
  277. package/dist/web/assets/turtle-Dpr8zLlw.js +1 -0
  278. package/dist/web/assets/twig-BcvJvETg.js +1 -0
  279. package/dist/web/assets/typescript-vZfgIWhk.js +1 -0
  280. package/dist/web/assets/typespec-DcqgATB-.js +1 -0
  281. package/dist/web/assets/typst-CeVxmuPg.js +1 -0
  282. package/dist/web/assets/v-C2Qsh2-1.js +1 -0
  283. package/dist/web/assets/vala-CvZ3yL7c.js +1 -0
  284. package/dist/web/assets/vb-B_p4qDw4.js +1 -0
  285. package/dist/web/assets/verilog-D8MGjxD7.js +1 -0
  286. package/dist/web/assets/vesper-DossXiE1.js +1 -0
  287. package/dist/web/assets/vhdl-MLyYh_Gz.js +1 -0
  288. package/dist/web/assets/viml-BuYIArcz.js +1 -0
  289. package/dist/web/assets/vitesse-black-C3kc1227.js +1 -0
  290. package/dist/web/assets/vitesse-dark-kWOu5V36.js +1 -0
  291. package/dist/web/assets/vitesse-light-DMtiL8bK.js +1 -0
  292. package/dist/web/assets/vue-DTJd19mx.js +1 -0
  293. package/dist/web/assets/vue-html-DN1O1Gud.js +1 -0
  294. package/dist/web/assets/vue-vine-CPt4e1Kz.js +1 -0
  295. package/dist/web/assets/vyper-CNqG09-_.js +1 -0
  296. package/dist/web/assets/wasm-BsQDV7Y0.js +1 -0
  297. package/dist/web/assets/wasm-DFVlQlgd.js +1 -0
  298. package/dist/web/assets/wenyan-BmOQge13.js +1 -0
  299. package/dist/web/assets/wgsl-CgWrmvIg.js +1 -0
  300. package/dist/web/assets/wikitext-DkwckXCk.js +1 -0
  301. package/dist/web/assets/wit-CtyVFGe7.js +1 -0
  302. package/dist/web/assets/wolfram-CXE4FrKz.js +1 -0
  303. package/dist/web/assets/xml-fA_cpwGb.js +1 -0
  304. package/dist/web/assets/xsl-3f3GC_Uf.js +1 -0
  305. package/dist/web/assets/yaml-Ca1_GRr1.js +1 -0
  306. package/dist/web/assets/zenscript-DH15wJt0.js +1 -0
  307. package/dist/web/assets/zig-CqXN9brD.js +1 -0
  308. package/dist/web/index.html +13 -0
  309. package/dist/web-inline/assets/index-BkEoZ-nI.css +2 -0
  310. package/dist/web-inline/assets/index-Qzj-BIcs.js +1933 -0
  311. package/dist/web-inline/index.html +13 -0
  312. package/package.json +65 -0
  313. package/skills/reviewdeck/SKILL.md +121 -0
  314. package/skills/reviewdeck/assets/prompt-template.md +111 -0
  315. package/skills/reviewdeck/references/get-diff.md +24 -0
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Stacked Diff Review</title>
7
+ <script type="module" crossorigin src="/assets/index-Qzj-BIcs.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-BkEoZ-nI.css">
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "reviewdeck",
3
+ "version": "0.2.2",
4
+ "description": "Split large PR diffs into reviewable sub-patches via indexed groups.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/neutree-ai/reviewdeck.git"
8
+ },
9
+ "homepage": "https://github.com/neutree-ai/reviewdeck",
10
+ "bugs": {
11
+ "url": "https://github.com/neutree-ai/reviewdeck/issues"
12
+ },
13
+ "bin": {
14
+ "reviewdeck": "dist/reviewdeck.mjs"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "skills/reviewdeck",
19
+ "README.md"
20
+ ],
21
+ "type": "module",
22
+ "scripts": {
23
+ "test": "vp test",
24
+ "check": "vp check",
25
+ "check-deps": "depcruise src --config .dependency-cruiser.cjs",
26
+ "knip": "knip",
27
+ "build:cli": "esbuild src/cli/main.ts --bundle --platform=node --format=esm --outfile=dist/reviewdeck.mjs --banner:js='#!/usr/bin/env node'",
28
+ "build:web": "vp build -c src/web/vite.config.ts",
29
+ "build:html": "vp build -c src/web/vite.config.inline.ts",
30
+ "build": "npm run build:cli && npm run build:web && npm run build:html",
31
+ "lint": "vp test && vp check && knip && depcruise src --config .dependency-cruiser.cjs",
32
+ "pack:dry-run": "npm pack --dry-run",
33
+ "prepack": "npm run build",
34
+ "prepare": "vp config"
35
+ },
36
+ "dependencies": {
37
+ "@pierre/diffs": "^1.1.0",
38
+ "class-variance-authority": "^0.7.1",
39
+ "clsx": "^2.1.1",
40
+ "lucide-react": "^0.577.0",
41
+ "react": "^19.2.4",
42
+ "react-dom": "^19.2.4",
43
+ "tailwind-merge": "^3.5.0"
44
+ },
45
+ "devDependencies": {
46
+ "@tailwindcss/vite": "^4.2.1",
47
+ "@types/react": "^19.2.14",
48
+ "@types/react-dom": "^19.2.3",
49
+ "@vitejs/plugin-react": "^6.0.1",
50
+ "dependency-cruiser": "^17.3.9",
51
+ "esbuild": "^0.27.4",
52
+ "knip": "^5.86.0",
53
+ "tailwindcss": "^4.2.1",
54
+ "tsx": "^4.21.0",
55
+ "vite-plus": "latest"
56
+ },
57
+ "overrides": {
58
+ "vite": "npm:@voidzero-dev/vite-plus-core@latest",
59
+ "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
60
+ },
61
+ "engines": {
62
+ "node": ">=18"
63
+ },
64
+ "packageManager": "npm@11.11.1"
65
+ }
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: reviewdeck
3
+ description: Split a large PR diff into a sequence of smaller, reviewable sub-patches. Use when the user wants to break up a big PR for easier code review, or mentions review decks, patch splitting, or review chunking.
4
+ compatibility: Requires Node.js 18+ and npx (or the reviewdeck CLI installed globally).
5
+ metadata:
6
+ author: yanzhen
7
+ version: "0.1"
8
+ ---
9
+
10
+ # Reviewdeck
11
+
12
+ You help a code reviewer split a large PR diff into a sequence of smaller, logically coherent sub-patches, then prepare the PR for human review.
13
+
14
+ If the user wants to review a PR, do not stop after `split`. Continue into `render` unless the user explicitly says they only want the split output.
15
+ But do not substitute your own code review for the human review step unless the user explicitly asks you to review the code yourself.
16
+
17
+ When invoking the CLI via `npx`, use `npx reviewdeck@latest ...` so the workflow tracks the latest published CLI version.
18
+
19
+ ## Workflow
20
+
21
+ ### Step 1: Get the diff
22
+
23
+ Ask the user for the diff, or generate it. See [get-diff reference](references/get-diff.md) for different methods.
24
+
25
+ ### Step 2: Index changes
26
+
27
+ ```bash
28
+ npx reviewdeck@latest index pr.diff
29
+ ```
30
+
31
+ This outputs to stdout a numbered list of every changed line in the diff.
32
+
33
+ ### Step 3: Generate split metadata
34
+
35
+ Read the index output, then read the [prompt template](assets/prompt-template.md) and follow its instructions to produce a JSON split plan.
36
+
37
+ When writing each group's `description`, optimize for reviewer guidance, not literal restatement.
38
+ The description should help someone understand why this group exists and why it appears at this point in the sequence.
39
+
40
+ If you notice concrete review issues while splitting, attach them as `draftComments` on the matching group.
41
+ Each draft comment must point to a `change` index that belongs to that same group.
42
+ These are candidate co-review comments for the human reviewer to accept or reject later in `render`, not your final autonomous review output.
43
+
44
+ ### Step 4: Split and verify
45
+
46
+ Pipe the JSON directly via stdin:
47
+
48
+ ```bash
49
+ echo '<meta JSON>' | npx reviewdeck@latest split pr.diff -
50
+ ```
51
+
52
+ This validates the metadata, generates sub-patches, verifies that applying them sequentially reproduces the original diff, and outputs the sub-patches to stdout separated by `===SUB_PATCH===`.
53
+ If your metadata included `draftComments`, they are preserved for `render`.
54
+
55
+ To write sub-patches to files instead:
56
+
57
+ ```bash
58
+ echo '<meta JSON>' | npx reviewdeck@latest split pr.diff - -o output/
59
+ ```
60
+
61
+ If the command fails, read the error message, fix the metadata JSON, and retry.
62
+
63
+ ### Step 5: Start human review
64
+
65
+ After `split` succeeds, the normal next step for PR review is `render`.
66
+ Use it to open a human review UI for the generated sub-patches and collect comments.
67
+ Default to the live render session. Only switch to `--html` when the user explicitly wants a static artifact, a file to share, or the environment clearly cannot support a live local review session.
68
+
69
+ Launch a local diff review UI:
70
+
71
+ ```bash
72
+ # From a directory of .diff files
73
+ npx reviewdeck@latest render output/
74
+
75
+ # From stdin
76
+ echo '<meta JSON>' | npx reviewdeck@latest split pr.diff - | npx reviewdeck@latest render -
77
+ ```
78
+
79
+ The server opens a browser, blocks until submission, and prints a review submission JSON object to stdout.
80
+ That object contains:
81
+
82
+ - `comments`: the final comments to submit back to the source review
83
+ - `draftComments`: the agent draft comments with `accepted` / `rejected` / `pending` status
84
+
85
+ Treat `comments` as the final human-approved payload.
86
+ Treat `draftComments` as provenance that tells you which of your draft findings survived review.
87
+
88
+ If the user wants a file instead of a live browser session, generate self-contained HTML:
89
+
90
+ ```bash
91
+ echo '<meta JSON>' | npx reviewdeck@latest split pr.diff - | npx reviewdeck@latest render - --html > review.html
92
+ ```
93
+
94
+ Treat the live `render` session as the default human review handoff.
95
+ Prefer to actually launch it, wait for submission, and then continue the task with the returned submission JSON.
96
+
97
+ When you finish this step without waiting for a live session, prefer an output like:
98
+
99
+ - the split completed successfully
100
+ - where the review UI or HTML artifact is
101
+ - what the user should open next
102
+
103
+ Do not immediately switch into autonomous bug-finding or produce review findings unless the user explicitly asks for your own review.
104
+
105
+ After `render` completes and you have the submission JSON:
106
+
107
+ - summarize the accepted/rejected/pending draft comment outcome clearly
108
+ - if there are final `comments`, ask whether the user wants them submitted back to the source review system
109
+ - if the user has already made the target explicit in context, such as a specific PR or review thread, go ahead and submit there instead of asking again
110
+ - when you do submit, use `comments`, not the raw `draftComments`
111
+
112
+ If you are still before `render` submission and the user asked for PR review help, do not stop at “artifact generated” when a live local review session is possible.
113
+
114
+ ## Tips
115
+
116
+ - Aim for 3-6 sub-patches per PR
117
+ - Order: peripheral/config first, core logic next, tests last
118
+ - Each sub-patch should be independently understandable
119
+ - Group descriptions should help the reviewer navigate the stack, not just repeat the touched area
120
+ - Use range syntax in changes (for example `"0-23"`) to keep the JSON compact
121
+ - Draft comments are optional and should be concrete enough that a human can accept or reject them inline
@@ -0,0 +1,111 @@
1
+ # Task: Split a PR diff into reviewable sub-patches
2
+
3
+ You are helping a code reviewer. Given a large PR diff, split it into a sequence of smaller, logically coherent sub-patches that are easier to review.
4
+
5
+ ## Principles
6
+
7
+ - **Peripheral first, core last**: infrastructure, config, types -> implementation -> tests
8
+ - **Independent first, dependent last**: if B depends on A, A comes first
9
+ - **One concern per group**: don't mix refactoring with new features
10
+ - **Reviewer-oriented descriptions**: describe why this group exists in the review flow, not just the surface area it touches
11
+ - **Co-review drafts when warranted**: if you notice a concrete review concern while splitting, attach it as a draft comment instead of switching into a full review report
12
+
13
+ ## Input
14
+
15
+ The indexed change lines are provided separately. Each `[N]` is a **change index**. `-` = deletion, `+` = addition, `LN` = line number.
16
+
17
+ ## Output format
18
+
19
+ Output a single JSON object (no markdown fences, no commentary before or after):
20
+
21
+ ```json
22
+ {
23
+ "groups": [
24
+ {
25
+ "description": "Add version selector plumbing so later upgrade flows have a stable input",
26
+ "changes": ["0-2", 5, 6],
27
+ "draftComments": [
28
+ {
29
+ "change": 6,
30
+ "body": "Check whether the new selector can drift out of sync when no compatible versions exist."
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "description": "Cover the upgrade path with e2e checks after the UI flow is in place",
36
+ "changes": ["3-4", "7-9"]
37
+ }
38
+ ]
39
+ }
40
+ ```
41
+
42
+ ## Rules
43
+
44
+ 1. Every change index must appear in exactly one group
45
+ 2. No index may appear in more than one group
46
+ 3. No index may be omitted
47
+ 4. Groups are ordered — group 1 is applied first, group N last
48
+ 5. Aim for 3-6 groups (adjust based on the PR's complexity)
49
+ 6. Each group's `description` should read like a review-guiding commit message — a concise summary line, optionally followed by detail
50
+ 7. Use range syntax for consecutive indices: `"0-2"` means `[0, 1, 2]`. Single indices can be plain numbers: `5`
51
+ 8. `draftComments` is optional, but when you see a concrete reviewer-worthy concern while splitting, include it.
52
+ 9. Each draft comment must anchor to a `change` that belongs to the same group.
53
+
54
+ ## Description guidance
55
+
56
+ Good descriptions help a reviewer understand why this group should be reviewed as one unit and how it fits into the sequence.
57
+
58
+ Prefer descriptions that:
59
+
60
+ - explain the intent or review value of the group
61
+ - mention the dependency or sequencing reason when useful
62
+ - tell the reviewer what they can learn or verify in this step
63
+
64
+ Avoid descriptions that are only:
65
+
66
+ - a raw area label like `form version selector`
67
+ - an as-is restatement of filenames, component names, or ticket labels
68
+ - too vague to distinguish this group from adjacent ones
69
+
70
+ Better:
71
+
72
+ - `Add version selection plumbing so the upgrade flow has a stable entry point`
73
+ - `Show current version and status before wiring upgrade actions`
74
+ - `Isolate the upgrade dialog and action handling as the main behavior change`
75
+ - `Add e2e coverage once the upgrade flow is in place`
76
+
77
+ Worse:
78
+
79
+ - `version selector`
80
+ - `status display`
81
+ - `upgrade dialog`
82
+ - `e2e`
83
+
84
+ ## Draft comment guidance
85
+
86
+ Use `draftComments` selectively but decisively. They are not the final submitted comments. They are candidate review comments that the human reviewer can accept or reject during `render`.
87
+
88
+ Prefer draft comments that:
89
+
90
+ - point to a specific risk, regression, or questionable assumption
91
+ - are anchored to one concrete indexed change
92
+ - read like something worth sending to the source review if accepted
93
+
94
+ If you already have enough evidence from the diff to state a concrete concern, prefer emitting the draft comment now rather than omitting it.
95
+
96
+ Avoid draft comments that are only:
97
+
98
+ - a summary of what the code does
99
+ - generic praise or noise
100
+ - a full review section pasted into one comment
101
+
102
+ Better:
103
+
104
+ - `Potential regression: this update path bypasses the sanitizing transform used by the normal edit flow.`
105
+ - `This selector keeps the old version when no compatible options exist, so the form may submit an unavailable version.`
106
+
107
+ Worse:
108
+
109
+ - `Adds selector logic`
110
+ - `Looks risky`
111
+ - `Need review`
@@ -0,0 +1,24 @@
1
+ # Getting a diff
2
+
3
+ ## Local git
4
+
5
+ ```bash
6
+ # Current branch vs main
7
+ git diff main...HEAD
8
+
9
+ # Between two commits
10
+ git diff <commit-a> <commit-b>
11
+
12
+ # Staged changes
13
+ git diff --cached
14
+ ```
15
+
16
+ ## GitHub CLI
17
+
18
+ ```bash
19
+ # PR diff by number
20
+ gh pr diff 123
21
+
22
+ # Specific PR in another repo
23
+ gh pr diff 123 --repo owner/repo
24
+ ```