@a9n-shoji/rvw 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +21 -0
  3. package/README.md +305 -0
  4. package/SECURITY.md +27 -0
  5. package/dist/cli-THIRD_PARTY_NOTICES.txt +1073 -0
  6. package/dist/cli.mjs +34989 -0
  7. package/dist/cli.mjs.map +7 -0
  8. package/dist/web/THIRD_PARTY_NOTICES.txt +5302 -0
  9. package/dist/web/assets/DocumentViewer-Bpo61duW.js +1560 -0
  10. package/dist/web/assets/MarkdownImagePlaceholder-6RCNwzwM.js +36 -0
  11. package/dist/web/assets/WalkthroughViewer-B5mozyWo.js +2 -0
  12. package/dist/web/assets/abap-CLvhMVsD.js +1 -0
  13. package/dist/web/assets/abnfDiagram-N423BO3Z-BK5Jn86N.js +1 -0
  14. package/dist/web/assets/actionscript-3-Cs6JJXT5.js +1 -0
  15. package/dist/web/assets/ada-C5qYipkI.js +1 -0
  16. package/dist/web/assets/ahk-CA9gdOdF.js +1 -0
  17. package/dist/web/assets/ahk2-_6rzW9BS.js +1 -0
  18. package/dist/web/assets/andromeeda-vGVdxbeo.js +1 -0
  19. package/dist/web/assets/angular-html-B8mrqUL5.js +1 -0
  20. package/dist/web/assets/angular-ts-Bzix210W.js +1 -0
  21. package/dist/web/assets/apache-U0d_L8uA.js +1 -0
  22. package/dist/web/assets/apex-KFGFyKwG.js +1 -0
  23. package/dist/web/assets/apl-Dhin1L29.js +1 -0
  24. package/dist/web/assets/applescript-CCn79oCD.js +1 -0
  25. package/dist/web/assets/ara-4CJ0cIlV.js +1 -0
  26. package/dist/web/assets/arc-Pry-7G1_.js +1 -0
  27. package/dist/web/assets/architecture-TIHT7OUA-CNniK53V.js +1 -0
  28. package/dist/web/assets/architectureDiagram-T3A2C74G-C4e8BOKi.js +36 -0
  29. package/dist/web/assets/array-BifhSqXX.js +1 -0
  30. package/dist/web/assets/asciidoc-SCjQUq34.js +1 -0
  31. package/dist/web/assets/asm-Cmm7eHzH.js +1 -0
  32. package/dist/web/assets/astro-B-4NNgOP.js +1 -0
  33. package/dist/web/assets/aurora-x-CDeNXAV0.js +1 -0
  34. package/dist/web/assets/awk-BWXHIvNe.js +1 -0
  35. package/dist/web/assets/ayu-dark-DluEY0Gj.js +1 -0
  36. package/dist/web/assets/ayu-light-C3h-C4tm.js +1 -0
  37. package/dist/web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
  38. package/dist/web/assets/ballerina-B7ZEbQpA.js +1 -0
  39. package/dist/web/assets/bat-qdxAdBWQ.js +1 -0
  40. package/dist/web/assets/beancount-D-usSTwE.js +1 -0
  41. package/dist/web/assets/berry-DKpUyyne.js +1 -0
  42. package/dist/web/assets/bibtex-Ci_nEsc7.js +1 -0
  43. package/dist/web/assets/bicep-CUHmPFLl.js +1 -0
  44. package/dist/web/assets/bird2-CYIUgYqB.js +1 -0
  45. package/dist/web/assets/blade-C6Gedziy.js +1 -0
  46. package/dist/web/assets/blockDiagram-VBNYF7ZC-vGkPzqEX.js +132 -0
  47. package/dist/web/assets/bsl-_VjlB9mv.js +1 -0
  48. package/dist/web/assets/c-iCihek07.js +1 -0
  49. package/dist/web/assets/c3-D0apG41V.js +1 -0
  50. package/dist/web/assets/c4Diagram-5PPSVZJV-CFw7KfN7.js +10 -0
  51. package/dist/web/assets/cadence-CQ2zXKGN.js +1 -0
  52. package/dist/web/assets/cairo-DLTphjLi.js +1 -0
  53. package/dist/web/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
  54. package/dist/web/assets/catppuccin-latte-CtsyrtPq.js +1 -0
  55. package/dist/web/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
  56. package/dist/web/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
  57. package/dist/web/assets/channel-D9mpRLqV.js +1 -0
  58. package/dist/web/assets/chapel-DmtgEXO_.js +1 -0
  59. package/dist/web/assets/chunk-2GRJ4B5K-CGyf7P1B.js +1 -0
  60. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  61. package/dist/web/assets/chunk-4I5QYGJK-B9gVU0IX.js +1 -0
  62. package/dist/web/assets/chunk-5RXB4S5H-CxKRHj4A.js +231 -0
  63. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  64. package/dist/web/assets/chunk-6Q2QTUOP-wTr3poCO.js +88 -0
  65. package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  66. package/dist/web/assets/chunk-7Z6QIM7H-DO3-rKs9.js +10 -0
  67. package/dist/web/assets/chunk-GF5L2VYU-Hf7UNoHx.js +206 -0
  68. package/dist/web/assets/chunk-I66GZJ75-BsgBf6m-.js +127 -0
  69. package/dist/web/assets/chunk-JQJVKLGR-C8FDquLg.js +156 -0
  70. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  71. package/dist/web/assets/chunk-KBJHAD2P-32ugraBx.js +1 -0
  72. package/dist/web/assets/chunk-KEIR6QF5-BICK3FdT.js +161 -0
  73. package/dist/web/assets/chunk-NSK5VX7P-BRGpsxOZ.js +2 -0
  74. package/dist/web/assets/chunk-QR6OTTB3-C1LfXMA9.js +62 -0
  75. package/dist/web/assets/chunk-RYQCIY6F-BsoV8yK2.js +1 -0
  76. package/dist/web/assets/chunk-UBXNYLIW-CjykxAbY.js +1 -0
  77. package/dist/web/assets/chunk-W5SLKNZC-DTzd_oWg.js +1 -0
  78. package/dist/web/assets/chunk-WRU74C26-BOKlupGY.js +70 -0
  79. package/dist/web/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
  80. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  81. package/dist/web/assets/clarity-CtfBBspg.js +1 -0
  82. package/dist/web/assets/classDiagram-JCYQIIEL-1i-imYTn.js +1 -0
  83. package/dist/web/assets/classDiagram-v2-OCEON4UE-1i-imYTn.js +1 -0
  84. package/dist/web/assets/clojure-DqKBuwfJ.js +1 -0
  85. package/dist/web/assets/cmake-Bj61d0ZC.js +1 -0
  86. package/dist/web/assets/cobol-Cw2-KvLW.js +1 -0
  87. package/dist/web/assets/codeowners-C8r90Shi.js +1 -0
  88. package/dist/web/assets/codeql-oeQT6MSM.js +1 -0
  89. package/dist/web/assets/coffee-CiiSLhB6.js +1 -0
  90. package/dist/web/assets/common-lisp-Cv5bFMCO.js +1 -0
  91. package/dist/web/assets/coq-DuBRPxYg.js +1 -0
  92. package/dist/web/assets/cose-bilkent-JH36ORCC-lJEhNiw_.js +1 -0
  93. package/dist/web/assets/cpp-71xkOQct.js +1 -0
  94. package/dist/web/assets/crystal-DGPAtLeY.js +1 -0
  95. package/dist/web/assets/csharp-oqKa8noW.js +1 -0
  96. package/dist/web/assets/css-CNuuLpMC.js +1 -0
  97. package/dist/web/assets/csv-Dx-8-gkx.js +1 -0
  98. package/dist/web/assets/cue-CE9AQfxI.js +1 -0
  99. package/dist/web/assets/cynefin-VYW2F7L2-FyhSpENE.js +1 -0
  100. package/dist/web/assets/cynefinDiagram-MW4NZA55-uFUTQ3i8.js +62 -0
  101. package/dist/web/assets/cypher-ClKdZ_lG.js +1 -0
  102. package/dist/web/assets/cytoscape.esm-B-NFISlW.js +321 -0
  103. package/dist/web/assets/d-qD-0Kul2.js +1 -0
  104. package/dist/web/assets/dagre-Buvkdvvj.js +1 -0
  105. package/dist/web/assets/dagre-VZM6K2ZE-BlESSHVb.js +4 -0
  106. package/dist/web/assets/dark-plus-Cs2F2srj.js +1 -0
  107. package/dist/web/assets/dart-CnvKMtbv.js +1 -0
  108. package/dist/web/assets/dax-BkyTk9wS.js +1 -0
  109. package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
  110. package/dist/web/assets/desktop-Dlh5hvp9.js +1 -0
  111. package/dist/web/assets/diagram-7IWD3JNH-CVtjyPlA.js +30 -0
  112. package/dist/web/assets/diagram-B4RE2ZJO-B3alEF-G.js +3 -0
  113. package/dist/web/assets/diagram-LBJQPF4R-Dz-CRzSx.js +24 -0
  114. package/dist/web/assets/diagram-Q27KOJAE-B7x_WZC5.js +24 -0
  115. package/dist/web/assets/diagram-UB23O5K3-Di7vh04u.js +41 -0
  116. package/dist/web/assets/diff-woXpYk--.js +1 -0
  117. package/dist/web/assets/dist-v5Q1xZ2K.js +1 -0
  118. package/dist/web/assets/docker-IyjqRm3v.js +1 -0
  119. package/dist/web/assets/dotenv-_5a1GRtc.js +1 -0
  120. package/dist/web/assets/dracula-BHWKrbxM.js +1 -0
  121. package/dist/web/assets/dracula-soft-5eyTD99u.js +1 -0
  122. package/dist/web/assets/dream-maker-DW3nJb8Q.js +1 -0
  123. package/dist/web/assets/ebnfDiagram-BXEA7PRR-CVXtwzOH.js +1 -0
  124. package/dist/web/assets/edge-DCY0a-ow.js +1 -0
  125. package/dist/web/assets/elixir-DP304Xio.js +1 -0
  126. package/dist/web/assets/elm-o4NJxfws.js +1 -0
  127. package/dist/web/assets/emacs-lisp-c_oH4hRZ.js +1 -0
  128. package/dist/web/assets/erDiagram-JOGREHBK-C73ySvzv.js +85 -0
  129. package/dist/web/assets/erb-C7MPl934.js +1 -0
  130. package/dist/web/assets/erlang-Cphh6RMH.js +1 -0
  131. package/dist/web/assets/eventmodeling-45OFAUF4-lqF-K7-h.js +1 -0
  132. package/dist/web/assets/everforest-dark-sB-x3p7T.js +1 -0
  133. package/dist/web/assets/everforest-light-Df2xbC6M.js +1 -0
  134. package/dist/web/assets/fennel-DQxkIbk2.js +1 -0
  135. package/dist/web/assets/fish-BJitypiv.js +1 -0
  136. package/dist/web/assets/flowDiagram-UKHOOZJN-BjY-fuKE.js +1 -0
  137. package/dist/web/assets/fluent-C03EYrpw.js +1 -0
  138. package/dist/web/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
  139. package/dist/web/assets/fortran-free-form-CYNrtFtB.js +1 -0
  140. package/dist/web/assets/fsharp-D13ZGOAj.js +1 -0
  141. package/dist/web/assets/ganttDiagram-PKOTCBZU-DnFdkwyo.js +292 -0
  142. package/dist/web/assets/gdresource-xMC7jr7x.js +1 -0
  143. package/dist/web/assets/gdscript-DYvRD3hg.js +1 -0
  144. package/dist/web/assets/gdshader-CBce3t8t.js +1 -0
  145. package/dist/web/assets/genie-CV2tkWYe.js +1 -0
  146. package/dist/web/assets/gherkin-DExj1W_8.js +1 -0
  147. package/dist/web/assets/git-commit-BSykSTBG.js +1 -0
  148. package/dist/web/assets/git-rebase-BDPpS8w6.js +1 -0
  149. package/dist/web/assets/gitGraph-TEB2WS4Q-D9IlUiGc.js +1 -0
  150. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-C8RcHadx.js +106 -0
  151. package/dist/web/assets/github-dark-C-LZuMrd.js +1 -0
  152. package/dist/web/assets/github-dark-default-DXG-b-1a.js +1 -0
  153. package/dist/web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
  154. package/dist/web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
  155. package/dist/web/assets/github-light-EUqPIrTm.js +1 -0
  156. package/dist/web/assets/github-light-default-BXViO-2h.js +1 -0
  157. package/dist/web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
  158. package/dist/web/assets/gleam-CSRkHgEL.js +1 -0
  159. package/dist/web/assets/glimmer-js-BONyzAsu.js +1 -0
  160. package/dist/web/assets/glimmer-ts-f9c0GCOe.js +1 -0
  161. package/dist/web/assets/glsl-D5MA2a_X.js +1 -0
  162. package/dist/web/assets/gn-ilITqXS6.js +1 -0
  163. package/dist/web/assets/gnuplot-7GGW24-e.js +1 -0
  164. package/dist/web/assets/go-rLFTqkRN.js +1 -0
  165. package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
  166. package/dist/web/assets/graphql-Ctjuxyvl.js +1 -0
  167. package/dist/web/assets/groovy-CacY0gHj.js +1 -0
  168. package/dist/web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
  169. package/dist/web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
  170. package/dist/web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
  171. package/dist/web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
  172. package/dist/web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
  173. package/dist/web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
  174. package/dist/web/assets/hack-Dh_ZLRbs.js +1 -0
  175. package/dist/web/assets/haml-CwEpbK1d.js +1 -0
  176. package/dist/web/assets/handlebars-ryMP1rBR.js +1 -0
  177. package/dist/web/assets/haskell-D8IpX4py.js +1 -0
  178. package/dist/web/assets/haxe-C8oCnwJJ.js +1 -0
  179. package/dist/web/assets/hcl-Dh228itO.js +1 -0
  180. package/dist/web/assets/hjson-CxZEssPk.js +1 -0
  181. package/dist/web/assets/hlsl-Cvrh5tZx.js +1 -0
  182. package/dist/web/assets/horizon-CE9ld1lL.js +1 -0
  183. package/dist/web/assets/horizon-bright-DSNQnXHK.js +1 -0
  184. package/dist/web/assets/houston-CsvMBhTu.js +1 -0
  185. package/dist/web/assets/html-XwrE-1r6.js +1 -0
  186. package/dist/web/assets/html-derivative-i4STDFnl.js +1 -0
  187. package/dist/web/assets/http-kmH8AyfE.js +1 -0
  188. package/dist/web/assets/hurl-DCZHXKU4.js +1 -0
  189. package/dist/web/assets/hxml-Dcm88srW.js +1 -0
  190. package/dist/web/assets/hy-CZbG8q4J.js +1 -0
  191. package/dist/web/assets/imba-DsUTQ-LC.js +1 -0
  192. package/dist/web/assets/index-B8_aim9s.css +1 -0
  193. package/dist/web/assets/index-BWaG4LjN.js +355 -0
  194. package/dist/web/assets/info-DKCQHKI2-D8vjRWaN.js +1 -0
  195. package/dist/web/assets/infoDiagram-6WML65LV-JfN0KNPZ.js +2 -0
  196. package/dist/web/assets/ini-B5eOa1yu.js +1 -0
  197. package/dist/web/assets/init-C-OQMol4.js +1 -0
  198. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-C2AwcyHY.js +70 -0
  199. package/dist/web/assets/java-DdHNQ9hk.js +1 -0
  200. package/dist/web/assets/javascript-obGGvMPs.js +1 -0
  201. package/dist/web/assets/jinja-B-tLrNsM.js +1 -0
  202. package/dist/web/assets/jison-CBjhYtSs.js +1 -0
  203. package/dist/web/assets/journeyDiagram-NVQOT4AX-spVPyB4C.js +139 -0
  204. package/dist/web/assets/json-DAgxKhMr.js +1 -0
  205. package/dist/web/assets/json5-BR5RXkoi.js +1 -0
  206. package/dist/web/assets/jsonc-CYpm1nAK.js +1 -0
  207. package/dist/web/assets/jsonl-CmCQp5Yx.js +1 -0
  208. package/dist/web/assets/jsonnet-CJTPZ8u_.js +1 -0
  209. package/dist/web/assets/jssm-DXw9l8Rf.js +1 -0
  210. package/dist/web/assets/jsx-gTgmArGx.js +1 -0
  211. package/dist/web/assets/julia-CXJVy74_.js +1 -0
  212. package/dist/web/assets/just-B9Xn_Dp4.js +1 -0
  213. package/dist/web/assets/kanagawa-dragon-Bozd7klA.js +1 -0
  214. package/dist/web/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
  215. package/dist/web/assets/kanagawa-wave-BML5mF2J.js +1 -0
  216. package/dist/web/assets/kanban-definition-27J2QSJJ-DovZ9YwS.js +89 -0
  217. package/dist/web/assets/katex-CXMH3UgJ.js +257 -0
  218. package/dist/web/assets/kdl-CsD5j6eV.js +1 -0
  219. package/dist/web/assets/kotlin-DhhofPvG.js +1 -0
  220. package/dist/web/assets/kusto-C7mF5XQf.js +1 -0
  221. package/dist/web/assets/laserwave-C_8bwKvT.js +1 -0
  222. package/dist/web/assets/latex-o9DRzaEe.js +1 -0
  223. package/dist/web/assets/lean-CewbzKMR.js +1 -0
  224. package/dist/web/assets/less-DVTAwKKz.js +1 -0
  225. package/dist/web/assets/light-plus-DVQuIRkW.js +1 -0
  226. package/dist/web/assets/line-CLgOPnWr.js +1 -0
  227. package/dist/web/assets/linear-DmucvK78.js +1 -0
  228. package/dist/web/assets/liquid-G0MH4h_m.js +1 -0
  229. package/dist/web/assets/llvm-DqHOMS-s.js +1 -0
  230. package/dist/web/assets/log-BNLmms1o.js +1 -0
  231. package/dist/web/assets/logo-Cluzi2Zq.js +1 -0
  232. package/dist/web/assets/lua-FONpmTUP.js +1 -0
  233. package/dist/web/assets/luau-C2pBCSgt.js +1 -0
  234. package/dist/web/assets/make-Dixweg8N.js +1 -0
  235. package/dist/web/assets/map-BaFkSB1l.js +1 -0
  236. package/dist/web/assets/markdown-BYOwaDjH.js +1 -0
  237. package/dist/web/assets/marko-DV5GrDmo.js +1 -0
  238. package/dist/web/assets/material-theme-Bm3Qr25_.js +1 -0
  239. package/dist/web/assets/material-theme-darker-2IIEA8gg.js +1 -0
  240. package/dist/web/assets/material-theme-lighter-uhdI0v04.js +1 -0
  241. package/dist/web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
  242. package/dist/web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
  243. package/dist/web/assets/matlab-D7qyCx1q.js +1 -0
  244. package/dist/web/assets/mdc-BKfPFPZw.js +1 -0
  245. package/dist/web/assets/mdx-DQZ5AkYe.js +1 -0
  246. package/dist/web/assets/mermaid-BxpfTIzt.js +1 -0
  247. package/dist/web/assets/mermaid-parser.core-DyixRB1x.js +7 -0
  248. package/dist/web/assets/mermaid.core-BqpBcETK.js +42 -0
  249. package/dist/web/assets/min-dark-BSWPekZh.js +1 -0
  250. package/dist/web/assets/min-light-DDpmG2fV.js +1 -0
  251. package/dist/web/assets/mindmap-definition-FAOFIHXS-BbPO8pns.js +96 -0
  252. package/dist/web/assets/mipsasm-BMqwQI7S.js +1 -0
  253. package/dist/web/assets/mojo-CFuIV2fl.js +1 -0
  254. package/dist/web/assets/monokai-B_bV9PQ9.js +1 -0
  255. package/dist/web/assets/moonbit-DgjMoLWr.js +1 -0
  256. package/dist/web/assets/move-BYnGhZoM.js +1 -0
  257. package/dist/web/assets/narrat-_X_XdTYD.js +1 -0
  258. package/dist/web/assets/nextflow-BJtWHP5T.js +1 -0
  259. package/dist/web/assets/nextflow-groovy-DJMQeKeT.js +1 -0
  260. package/dist/web/assets/nginx-BTMw9COX.js +1 -0
  261. package/dist/web/assets/night-owl-DhmEMT88.js +1 -0
  262. package/dist/web/assets/night-owl-light-eJ-hLW7d.js +1 -0
  263. package/dist/web/assets/nim-B6yJ_yaC.js +1 -0
  264. package/dist/web/assets/nix-IvuFDN5E.js +1 -0
  265. package/dist/web/assets/nord-Cb4Vim4T.js +1 -0
  266. package/dist/web/assets/nsis-CjNLYCLg.js +1 -0
  267. package/dist/web/assets/nushell-DHYfO66s.js +1 -0
  268. package/dist/web/assets/objective-c-D1A_Heim.js +1 -0
  269. package/dist/web/assets/objective-cpp-BsSzOQcm.js +1 -0
  270. package/dist/web/assets/ocaml-O90oeIOV.js +1 -0
  271. package/dist/web/assets/odin-B1RWQWA5.js +1 -0
  272. package/dist/web/assets/one-dark-pro-CLwyXe_n.js +1 -0
  273. package/dist/web/assets/one-light-D7Lr4KcI.js +1 -0
  274. package/dist/web/assets/openscad-BUDT5pXO.js +1 -0
  275. package/dist/web/assets/ordinal-BDEzSJ7C.js +1 -0
  276. package/dist/web/assets/org-Ddi8Gs6E.js +1 -0
  277. package/dist/web/assets/packet-7NZHBO7P-aNovgfCM.js +1 -0
  278. package/dist/web/assets/pascal-4ZHwLPI5.js +1 -0
  279. package/dist/web/assets/path-fybaL0A-.js +1 -0
  280. package/dist/web/assets/pegDiagram-VL7TDLO6-2e4z4Op-.js +1 -0
  281. package/dist/web/assets/perl-DEgXgjuC.js +1 -0
  282. package/dist/web/assets/php-B9UPq-vz.js +1 -0
  283. package/dist/web/assets/pie-RZYD4A2V-DNId-ti0.js +1 -0
  284. package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5ZE6kTv.js +39 -0
  285. package/dist/web/assets/pierre-dark-CpLgRqie.js +1 -0
  286. package/dist/web/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
  287. package/dist/web/assets/pierre-dark-soft-kZQmAZld.js +1 -0
  288. package/dist/web/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
  289. package/dist/web/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
  290. package/dist/web/assets/pierre-light-CoaEpmwp.js +1 -0
  291. package/dist/web/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
  292. package/dist/web/assets/pierre-light-soft-lWLdNTOI.js +1 -0
  293. package/dist/web/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
  294. package/dist/web/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
  295. package/dist/web/assets/pkl-ot-7Btpt.js +1 -0
  296. package/dist/web/assets/plastic-DQwYfKfQ.js +1 -0
  297. package/dist/web/assets/plsql-DGHpHOYJ.js +1 -0
  298. package/dist/web/assets/po-BiJDBrnU.js +1 -0
  299. package/dist/web/assets/poimandres-DRFjx7u4.js +1 -0
  300. package/dist/web/assets/polar-C7UOKdEL.js +1 -0
  301. package/dist/web/assets/postcss-BXeXVLqQ.js +1 -0
  302. package/dist/web/assets/powerquery-DNMTfnFr.js +1 -0
  303. package/dist/web/assets/powershell-CCSX75yM.js +1 -0
  304. package/dist/web/assets/prisma-DMgNhnYS.js +1 -0
  305. package/dist/web/assets/prolog-iXnhIJG7.js +1 -0
  306. package/dist/web/assets/proto-DB4EqR-F.js +1 -0
  307. package/dist/web/assets/pug-DkgDHZci.js +1 -0
  308. package/dist/web/assets/puppet-CDv2pdJW.js +1 -0
  309. package/dist/web/assets/purescript-9MfHhQsQ.js +1 -0
  310. package/dist/web/assets/python-gzcpVVnB.js +1 -0
  311. package/dist/web/assets/qml-_a-QhfPD.js +1 -0
  312. package/dist/web/assets/qmldir-DCQb3MpD.js +1 -0
  313. package/dist/web/assets/qss-Fe1Jh2GI.js +1 -0
  314. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BwxDvFqg.js +7 -0
  315. package/dist/web/assets/r-BHcO8Vjq.js +1 -0
  316. package/dist/web/assets/racket-DcIDlBhZ.js +1 -0
  317. package/dist/web/assets/radar-I7S5WNFK-C2R9CqOg.js +1 -0
  318. package/dist/web/assets/railroad-3IZDKUUU-BcNatsBm.js +1 -0
  319. package/dist/web/assets/railroad-abnf-AHOZXSZD-BZPZwTjc.js +1 -0
  320. package/dist/web/assets/railroad-ebnf-EBAXGLYW-CpdNBsnS.js +1 -0
  321. package/dist/web/assets/railroad-peg-LSFZ7HO6-R8jDubES.js +1 -0
  322. package/dist/web/assets/railroadDiagram-AXF67PYL-CGJ_SZmV.js +1 -0
  323. package/dist/web/assets/raku-B3gFvitq.js +1 -0
  324. package/dist/web/assets/razor-BMJ0eI3p.js +1 -0
  325. package/dist/web/assets/rbs-C0MpOrj4.js +1 -0
  326. package/dist/web/assets/red-DX1BQOs8.js +1 -0
  327. package/dist/web/assets/reg-CRGYupPL.js +1 -0
  328. package/dist/web/assets/regexp-DR20uMnK.js +1 -0
  329. package/dist/web/assets/rel-BtDbiS_P.js +1 -0
  330. package/dist/web/assets/requirementDiagram-LRYGKXZP-BedGrIx6.js +84 -0
  331. package/dist/web/assets/riscv-Ckw8ddFX.js +1 -0
  332. package/dist/web/assets/rolldown-runtime-hePW80VL.js +1 -0
  333. package/dist/web/assets/ron-VUp2lXgN.js +1 -0
  334. package/dist/web/assets/rose-pine-aMsaMD1D.js +1 -0
  335. package/dist/web/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
  336. package/dist/web/assets/rose-pine-moon-DO-qXg-I.js +1 -0
  337. package/dist/web/assets/rosmsg-CAekHB0j.js +1 -0
  338. package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
  339. package/dist/web/assets/rst-BQCbfb9V.js +1 -0
  340. package/dist/web/assets/ruby-B8JcIHv0.js +1 -0
  341. package/dist/web/assets/rust-Cfkwpbl8.js +1 -0
  342. package/dist/web/assets/sankeyDiagram-W5VNT64P-zK0XX_8d.js +40 -0
  343. package/dist/web/assets/sas-CBpMWA2M.js +1 -0
  344. package/dist/web/assets/sass-DXrisJhu.js +1 -0
  345. package/dist/web/assets/scala-BiFt_7mu.js +1 -0
  346. package/dist/web/assets/scheme-DQCgrYNe.js +1 -0
  347. package/dist/web/assets/scss-YesllqfO.js +1 -0
  348. package/dist/web/assets/sdbl-bTVj8UrX.js +1 -0
  349. package/dist/web/assets/sequenceDiagram-SI44F4Z6-DbI4quME.js +162 -0
  350. package/dist/web/assets/shaderlab-TOUzSsQk.js +1 -0
  351. package/dist/web/assets/shellscript-Da78Ox-3.js +1 -0
  352. package/dist/web/assets/shellsession-CVsQGYfZ.js +1 -0
  353. package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  354. package/dist/web/assets/slack-dark-DnToyrRv.js +1 -0
  355. package/dist/web/assets/slack-ochin-B2OO5cIa.js +1 -0
  356. package/dist/web/assets/smalltalk-BHpQb5nM.js +1 -0
  357. package/dist/web/assets/smithy-Dgaz7aur.js +1 -0
  358. package/dist/web/assets/snazzy-light-4G7pJPwS.js +1 -0
  359. package/dist/web/assets/solarized-dark-UdsmMDCL.js +1 -0
  360. package/dist/web/assets/solarized-light-C1IUL_tW.js +1 -0
  361. package/dist/web/assets/solidity-Bj7E1mRn.js +1 -0
  362. package/dist/web/assets/soy-DEd-qcad.js +1 -0
  363. package/dist/web/assets/sparql-D_iOobhT.js +1 -0
  364. package/dist/web/assets/splunk-BC2Px7Mm.js +1 -0
  365. package/dist/web/assets/sql-DdD7vxS4.js +1 -0
  366. package/dist/web/assets/src-B6xuSHsQ.js +1 -0
  367. package/dist/web/assets/ssh-config-BgfXC-Er.js +1 -0
  368. package/dist/web/assets/stata-CMv7m7Gi.js +1 -0
  369. package/dist/web/assets/stateDiagram-OKZ733FA-5dL9K4ba.js +1 -0
  370. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-ChRa8APT.js +1 -0
  371. package/dist/web/assets/stylus-B6D30XZt.js +1 -0
  372. package/dist/web/assets/surrealql-BZoq2lXR.js +1 -0
  373. package/dist/web/assets/svelte-Bj3Hmc9F.js +1 -0
  374. package/dist/web/assets/swift-CyEgAFGc.js +1 -0
  375. package/dist/web/assets/swimlanes-SLNWSIFB-CnNbnSFl.js +2 -0
  376. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-QmkQO3yp.js +8 -0
  377. package/dist/web/assets/synthwave-84-nFMaYfgc.js +1 -0
  378. package/dist/web/assets/system-verilog-Dh5ihWbf.js +1 -0
  379. package/dist/web/assets/systemd-BxMlprV5.js +1 -0
  380. package/dist/web/assets/talonscript-CohzipZa.js +1 -0
  381. package/dist/web/assets/tasl-DMoTqEGO.js +1 -0
  382. package/dist/web/assets/tcl-CZd0xW_V.js +1 -0
  383. package/dist/web/assets/templ-TjxbArHn.js +1 -0
  384. package/dist/web/assets/terraform-DswuEJGm.js +1 -0
  385. package/dist/web/assets/tex-BK-H2Wn4.js +1 -0
  386. package/dist/web/assets/timeline-definition-Z64GVDOM-ht7Pc9Lh.js +120 -0
  387. package/dist/web/assets/tokyo-night-oM2G3aXe.js +1 -0
  388. package/dist/web/assets/toml-CcmNWLt0.js +1 -0
  389. package/dist/web/assets/treeView-QDETBFTQ-B-GVm6gh.js +1 -0
  390. package/dist/web/assets/treemap-6X3UGDF4-DZ5ImJjV.js +1 -0
  391. package/dist/web/assets/ts-tags-Cc5do7zu.js +1 -0
  392. package/dist/web/assets/tsv-sltzmVWM.js +1 -0
  393. package/dist/web/assets/tsx-CUOciP0b.js +1 -0
  394. package/dist/web/assets/turtle-ByJddavk.js +1 -0
  395. package/dist/web/assets/twig-BVSnuTf-.js +1 -0
  396. package/dist/web/assets/typescript-BydbNFcO.js +1 -0
  397. package/dist/web/assets/typespec-BRdr0IET.js +1 -0
  398. package/dist/web/assets/typst-DI99ib-x.js +1 -0
  399. package/dist/web/assets/v-DBj4K9d_.js +1 -0
  400. package/dist/web/assets/vala-zf12oZj6.js +1 -0
  401. package/dist/web/assets/vb-DOwzaHZ0.js +1 -0
  402. package/dist/web/assets/vennDiagram-T6HMQDX7-DVnsZuuc.js +34 -0
  403. package/dist/web/assets/verilog-B2gwz-sJ.js +1 -0
  404. package/dist/web/assets/vesper-DdrHHSXu.js +1 -0
  405. package/dist/web/assets/vhdl-BroJfC0k.js +1 -0
  406. package/dist/web/assets/viml-DvXPmvsu.js +1 -0
  407. package/dist/web/assets/vitesse-black-fwtXNY1n.js +1 -0
  408. package/dist/web/assets/vitesse-dark-BZCL-v6S.js +1 -0
  409. package/dist/web/assets/vitesse-light-VbXTXTou.js +1 -0
  410. package/dist/web/assets/vue-BNQF7r6F.js +1 -0
  411. package/dist/web/assets/vue-html-DkKkQnZL.js +1 -0
  412. package/dist/web/assets/vue-vine-DFaKYU4X.js +1 -0
  413. package/dist/web/assets/vyper-CgoNMtux.js +1 -0
  414. package/dist/web/assets/wardley-OPB4EBWU-CLk0x8RD.js +1 -0
  415. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BgtlhJqk.js +78 -0
  416. package/dist/web/assets/wasm-BnjxR4X6.js +1 -0
  417. package/dist/web/assets/wasm-ByWQv1Qj.js +1 -0
  418. package/dist/web/assets/wenyan-C8pVoKbM.js +1 -0
  419. package/dist/web/assets/wgsl-BsKzXJz4.js +1 -0
  420. package/dist/web/assets/wikitext-ClFFjSW2.js +1 -0
  421. package/dist/web/assets/wit-DdvCle-K.js +1 -0
  422. package/dist/web/assets/wolfram-DLL8P-h_.js +1 -0
  423. package/dist/web/assets/xml-BlnrEAEy.js +1 -0
  424. package/dist/web/assets/xsl-BOPS8gLt.js +1 -0
  425. package/dist/web/assets/xychartDiagram-ELKLHX3M-CXEN46LP.js +7 -0
  426. package/dist/web/assets/yaml-Du_6cdrH.js +1 -0
  427. package/dist/web/assets/zenscript-BnlCZFoB.js +1 -0
  428. package/dist/web/assets/zig-CMLA9XwU.js +1 -0
  429. package/dist/web/index.html +15 -0
  430. package/migrations/001_initial.sql +96 -0
  431. package/migrations/002_commit_model.sql +120 -0
  432. package/migrations/003_editable_comment_posts.sql +36 -0
  433. package/migrations/004_walkthroughs.sql +25 -0
  434. package/migrations/005_walkthrough_comments.sql +53 -0
  435. package/migrations/006_theme_preference.sql +2 -0
  436. package/migrations/007_file_level_walkthrough_references.sql +24 -0
  437. package/migrations/008_walkthrough_line_comments.sql +62 -0
  438. package/package.json +92 -0
  439. package/skills/rvw/SKILL.md +133 -0
  440. package/skills/rvw/agents/openai.yaml +4 -0
  441. package/skills/rvw-walkthrough/SKILL.md +106 -0
  442. package/skills/rvw-walkthrough/agents/openai.yaml +4 -0
@@ -0,0 +1,62 @@
1
+ CREATE TABLE comment_targets_v4 (
2
+ comment_id TEXT PRIMARY KEY REFERENCES comments(id) ON DELETE CASCADE,
3
+ target_kind TEXT NOT NULL CHECK(target_kind IN ('pull_request', 'document', 'walkthrough')),
4
+ document_kind TEXT CHECK(document_kind IN ('pull_request_markdown', 'repository_file')),
5
+ source_oid TEXT,
6
+ file_path TEXT,
7
+ source_document_hash TEXT,
8
+ quoted_text TEXT,
9
+ walkthrough_id TEXT REFERENCES walkthroughs(id),
10
+ start_line INTEGER,
11
+ end_line INTEGER,
12
+ CHECK(start_line IS NULL OR start_line >= 1),
13
+ CHECK(end_line IS NULL OR end_line >= start_line),
14
+ CHECK(
15
+ (target_kind = 'pull_request' AND document_kind IS NULL AND source_oid IS NULL AND file_path IS NULL AND source_document_hash IS NULL AND quoted_text IS NULL AND walkthrough_id IS NULL AND start_line IS NULL AND end_line IS NULL)
16
+ OR
17
+ (target_kind = 'document' AND document_kind = 'pull_request_markdown' AND source_oid IS NULL AND file_path IS NULL AND source_document_hash IS NOT NULL AND walkthrough_id IS NULL)
18
+ OR
19
+ (target_kind = 'document' AND document_kind = 'repository_file' AND source_oid IS NOT NULL AND file_path IS NOT NULL AND source_document_hash IS NULL AND quoted_text IS NULL AND walkthrough_id IS NULL)
20
+ OR
21
+ (
22
+ target_kind = 'walkthrough' AND document_kind IS NULL AND source_oid IS NULL AND file_path IS NULL AND walkthrough_id IS NOT NULL
23
+ AND (
24
+ (start_line IS NULL AND end_line IS NULL AND quoted_text IS NULL)
25
+ OR
26
+ (start_line IS NOT NULL AND end_line IS NOT NULL AND source_document_hash IS NOT NULL AND quoted_text IS NOT NULL)
27
+ )
28
+ )
29
+ ),
30
+ CHECK((start_line IS NULL AND end_line IS NULL) OR (start_line IS NOT NULL AND end_line IS NOT NULL))
31
+ );
32
+
33
+ INSERT INTO comment_targets_v4(
34
+ comment_id,
35
+ target_kind,
36
+ document_kind,
37
+ source_oid,
38
+ file_path,
39
+ source_document_hash,
40
+ quoted_text,
41
+ walkthrough_id,
42
+ start_line,
43
+ end_line
44
+ )
45
+ SELECT
46
+ comment_id,
47
+ target_kind,
48
+ document_kind,
49
+ source_oid,
50
+ file_path,
51
+ source_document_hash,
52
+ quoted_text,
53
+ walkthrough_id,
54
+ start_line,
55
+ end_line
56
+ FROM comment_targets;
57
+
58
+ DROP TABLE comment_targets;
59
+ ALTER TABLE comment_targets_v4 RENAME TO comment_targets;
60
+
61
+ CREATE INDEX comment_targets_document ON comment_targets(document_kind, source_oid, file_path);
62
+ CREATE INDEX comment_targets_walkthrough ON comment_targets(walkthrough_id);
package/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@a9n-shoji/rvw",
3
+ "version": "0.1.0",
4
+ "description": "Human-centered repository viewer for understanding and refining GitHub pull request changes",
5
+ "keywords": [
6
+ "code-review",
7
+ "developer-tools",
8
+ "github",
9
+ "local-first",
10
+ "pull-request"
11
+ ],
12
+ "license": "MIT",
13
+ "homepage": "https://github.com/a9n-shoji/rvw#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/a9n-shoji/rvw/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/a9n-shoji/rvw.git"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "type": "module",
26
+ "bin": {
27
+ "rvw": "dist/cli.mjs"
28
+ },
29
+ "files": [
30
+ "dist",
31
+ "migrations",
32
+ "skills",
33
+ "CHANGELOG.md",
34
+ "README.md",
35
+ "SECURITY.md",
36
+ "LICENSE"
37
+ ],
38
+ "engines": {
39
+ "node": ">=24.15.0",
40
+ "pnpm": "11.21.0"
41
+ },
42
+ "devDependencies": {
43
+ "@eslint/js": "^10.0.1",
44
+ "@hono/node-server": "^2.1.0",
45
+ "@pierre/diffs": "1.3.5",
46
+ "@pierre/vscode-icons": "^0.0.9",
47
+ "@playwright/test": "^1.62.1",
48
+ "@tanstack/react-query": "^5.101.4",
49
+ "@types/node": "^26.2.0",
50
+ "@types/react": "^19.2.18",
51
+ "@types/react-dom": "^19.2.4",
52
+ "@vitejs/plugin-react": "^6.0.5",
53
+ "commander": "^15.0.0",
54
+ "diff": "9.0.0",
55
+ "env-paths": "^4.0.0",
56
+ "esbuild": "^0.28.1",
57
+ "eslint": "^10.8.1",
58
+ "fuzzysort": "^3.1.0",
59
+ "globals": "^17.9.0",
60
+ "hono": "^4.13.1",
61
+ "mdast-util-from-markdown": "^2.0.3",
62
+ "mermaid": "^11.16.1",
63
+ "npm": "11.19.0",
64
+ "open": "^11.0.0",
65
+ "prettier": "^3.9.6",
66
+ "react": "^19.2.8",
67
+ "react-dom": "^19.2.8",
68
+ "react-markdown": "^10.1.0",
69
+ "rehype-raw": "^7.0.0",
70
+ "rehype-sanitize": "^6.0.0",
71
+ "remark-breaks": "^4.0.0",
72
+ "remark-gfm": "^4.0.1",
73
+ "tsx": "^4.23.11",
74
+ "typescript": "^6.0.3",
75
+ "typescript-eslint": "^8.66.0",
76
+ "vite": "^8.2.1",
77
+ "vitest": "^4.1.10",
78
+ "zod": "^4.4.3"
79
+ },
80
+ "scripts": {
81
+ "dev": "tsx src/cli/main.ts open --no-open",
82
+ "check": "tsc --noEmit && eslint . && prettier --check .",
83
+ "test": "vitest run",
84
+ "test:watch": "vitest",
85
+ "test:e2e": "node scripts/build.mjs && playwright test",
86
+ "test:package": "node scripts/package-smoke.mjs",
87
+ "build": "node scripts/build.mjs",
88
+ "start": "node dist/cli.mjs",
89
+ "release:verify": "tsx scripts/verify-release.ts",
90
+ "format": "prettier --write ."
91
+ }
92
+ }
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: rvw
3
+ description: Inspect, address, reply to, resolve, reopen, and synchronize rvw review comments through the local rvw CLI. Use when a request contains rvw://comment references, asks to handle feedback recorded in rvw, or asks to synchronize rvw after pushed changes. Do not use this Skill to publish implementation walkthroughs; use rvw-walkthrough for that task.
4
+ ---
5
+
6
+ # rvw review comments
7
+
8
+ Use only the `rvw` CLI protocol to access rvw state. Never read or edit the SQLite database directly. Require a local Agent with access to the saved repository. A running rvw viewer can provide database access through its user-only Unix socket; require direct rvw data-directory access only when that route is unavailable. Do not guess comment contents when required access is unavailable.
9
+
10
+ ## Preflight
11
+
12
+ 1. Run `rvw protocol --json` and parse stdout as JSON.
13
+ 2. Require `protocolVersion` 2, `agent.transport`, and every task capability needed for the task.
14
+ 3. Run `rvw agent status --json`. Read `socketPath`, `connectionResult`, `selectedDatabasePath`, `selectedTransport`, and `fallbackReason`. If `selectedTransport` is `unavailable`, stop and report the diagnostic; an explicitly configured `RVW_AGENT_SOCKET_PATH` never falls back to direct database access. Otherwise use the reported transport without overriding it.
15
+ 4. Prefer the CLI's transparent Unix-socket route when a normally launched rvw viewer is running.
16
+ Explain the exact local permission needed only if both the socket route and direct CLI access are
17
+ unavailable. `RVW_DATABASE_PATH` selects an explicitly managed database path; the CLI uses a
18
+ running viewer only when it reports that same database.
19
+
20
+ ## Read comments
21
+
22
+ When the user asks for unresolved feedback without supplying individual comment references, run:
23
+
24
+ ```bash
25
+ rvw comment list <PULL_REQUEST> --state unresolved --limit 50 --offset 0 --json
26
+ ```
27
+
28
+ The default state is `unresolved`; use `--state resolved` or `--state all` only when the request needs
29
+ those threads. Require the `comment.list` capability before discovery. Continue with
30
+ `--offset <nextOffset>` while the page has `hasMore: true`; never assume the first page is complete.
31
+ Each item contains a bounded root-post preview, post count, target summary, and service-derived
32
+ `latestPlacement`, but omits replies, exact target evidence, and source excerpts. Run `comment get`
33
+ for every listed thread that you will inspect or address; never act from the preview alone. Collect
34
+ the URIs from every page before replying, resolving, or reopening because those writes can reorder or
35
+ remove entries from later offset pages.
36
+
37
+ Run the following for every supplied `rvw://comment/<uuid>` reference:
38
+
39
+ ```bash
40
+ rvw comment get <COMMENT_URI> --json
41
+ ```
42
+
43
+ Use `pullRequest.localRepositoryPath` as the repository to inspect or modify. Read the latest PR title,
44
+ base/head branch names and OIDs, the exact target, all posts, `createdHeadOid`, `latestHeadOid`,
45
+ `latestPlacement`, and `exactSource` before deciding what the comment requests. The default response
46
+ omits `pullRequest.body`. Group the fetched comments by Pull Request. If any comment in a group targets
47
+ the PR or PR Markdown, or any thread in that group cannot be understood without PR-level intent, rerun
48
+ `comment get` for exactly one representative URI in that group with `--include-pr-body`. Reuse that
49
+ latest successfully synchronized body for every comment from the same Pull Request; never request the
50
+ same PR body once per comment. When supplied references span multiple Pull Requests, fetch the body at
51
+ most once for each group that needs it. `latestPlacement` is rvw's authoritative derived placement at
52
+ the latest head; never infer Outdated by comparing OIDs.
53
+
54
+ When the task needs to distinguish the cached snapshot from current GitHub state, use
55
+ `rvw comment get <COMMENT_URI> --live --json`. Read `githubState.staleAgainstGitHub` and live metadata;
56
+ this lookup is read-only and does not make the cached PR current. Without `--live`, null live fields mean
57
+ GitHub was not checked.
58
+
59
+ - For a repository-file target, inspect its recorded source OID and path even when it is Outdated.
60
+ `exactSource.excerpt` contains the selected lines with bounded context when available, and its
61
+ truncation fields say whether more of the exact document must be read from the repository. Treat the
62
+ excerpt as an entry point, not a substitute for inspecting relevant surrounding code.
63
+ `exactSource.availability` is exactly `available`, `binary`, `too-large`, or `missing`; only
64
+ `available` has a non-null excerpt.
65
+ - For a PR-Markdown target, combine its quoted text with the latest `Pull Request.md`; request that
66
+ body through the group's single representative `comment get <COMMENT_URI> --include-pr-body --json`
67
+ call if it has not already been loaded. rvw does not retain the complete historical PR body; never
68
+ treat `createdHeadOid` as a PR-body revision.
69
+ - For a Walkthrough target, read the complete current `walkthrough` object returned by `comment get`, including its body, source OID, diagram bindings, and code references. Whole-document comments remain attached when that Walkthrough is updated in place.
70
+
71
+ ## Address comments
72
+
73
+ 1. Confirm the authorized scope from the prompt and comment thread.
74
+ 2. Inspect the current worktree and relevant surrounding code. Preserve unrelated user changes.
75
+ 3. Implement only authorized changes and run proportionate tests.
76
+ 4. Reply with concrete findings when no code change is needed.
77
+ 5. Resolve only when the user requested resolution or the thread is demonstrably satisfied. A reply alone does not resolve a thread.
78
+
79
+ When feedback asks to improve the explanation rather than the code, use the `rvw-walkthrough` Skill to update the same Walkthrough URI after understanding the full thread. Do not publish a duplicate as an implicit version. Return to this Skill for any authorized reply or resolution.
80
+
81
+ Every `--stdin` command reads until EOF before parsing JSON. Supply the complete object and close stdin in the same non-interactive invocation. Prefer an execution API that accepts stdin and closes it after writing; in a shell, use a quoted heredoc. Never start the command in an interactive PTY and send only JSON plus a newline because a newline is not EOF.
82
+
83
+ To add a standalone reply, use one closed-stdin invocation:
84
+
85
+ ```bash
86
+ rvw comment reply '<COMMENT_URI>' --stdin --json <<'RVW_JSON'
87
+ {
88
+ "body": "Investigation result or completed change",
89
+ "authorLabel": "Agent name",
90
+ "relatedCommitOid": null
91
+ }
92
+ RVW_JSON
93
+ ```
94
+
95
+ Set `authorLabel` to an accurate current Agent name when known; otherwise omit it. This command is not idempotent. After an uncertain failure, re-read the comment before retrying to avoid a duplicate reply.
96
+
97
+ A resolved thread accepts replies, and replying does not reopen it. Likewise, a `pr sync` reply leaves
98
+ the current state unchanged unless its update has `resolve: true`. Use `comment reopen` as a separate,
99
+ explicit state change when the user requests reopening; never assume that a reply changed the state.
100
+
101
+ Use `rvw comment resolve <COMMENT_URI> --json` and `rvw comment reopen <COMMENT_URI> --json` for explicit state changes.
102
+
103
+ ## Synchronize pushed changes
104
+
105
+ Synchronize only GitHub-visible state. Complete authorized code changes, tests, commit, push, and any required PR title or body update first. Never represent uncommitted or unpushed local changes as synchronized state.
106
+
107
+ Pass one JSON object and close stdin in the same invocation:
108
+
109
+ ```bash
110
+ rvw pr sync --stdin --json <<'RVW_JSON'
111
+ {
112
+ "pullRequest": "https://github.com/owner/repo/pull/123",
113
+ "commentUpdates": [
114
+ {
115
+ "commentRef": "rvw://comment/uuid",
116
+ "reply": "Change included in the pushed commit",
117
+ "resolve": false
118
+ }
119
+ ]
120
+ }
121
+ RVW_JSON
122
+ ```
123
+
124
+ Prefer this atomic path when the GitHub refresh and comment updates belong to the same operation. Successful replies are linked to the synchronized head commit. The command is not idempotent when it adds replies; re-read affected comments before retrying an uncertain result.
125
+
126
+ If the saved checkout is dirty but a clean worktree in the same Git common directory exists, pass
127
+ `--repository <PATH>`. Inspect every reported dirty entry before deciding whether untracked files are
128
+ irrelevant; only then may you explicitly pass `--allow-untracked`. Never use that option to ignore
129
+ tracked changes. A clean local PR branch that is merely behind GitHub is acceptable and rvw will not
130
+ move its checkout. To change only the saved worktree path without starting a viewer, use
131
+ `rvw pr attach <PULL_REQUEST> --repository <PATH> --json`.
132
+
133
+ If rvw reports `LOCAL_STATE_INCONSISTENT`, report its reset guidance and deletion counts. Never run `rvw pr reset ... --yes` without explicit authorization because it permanently removes local comments, Walkthroughs, and retained rvw refs.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "rvw"
3
+ short_description: "Inspect and address review comments through rvw"
4
+ default_prompt: "Use $rvw to inspect and address the supplied rvw comment references."
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: rvw-walkthrough
3
+ description: Read, publish, improve in place, or explicitly delete a commit-fixed Markdown explanation with exact code references and optional Mermaid bindings through the local rvw CLI. Use when the user asks to create, present, publish, revise, update, or remove an implementation, surrounding-code, flow, or architecture walkthrough in rvw. Do not use this Skill for rvw comment handling or PR synchronization.
4
+ ---
5
+
6
+ # rvw Walkthrough management
7
+
8
+ Turn the explanation appropriate to the current request and repository into a verifiable rvw artifact. Leave the document's organization, emphasis, granularity, and use of diagrams to the current session; do not impose fixed headings or a narrative template.
9
+
10
+ Use only the `rvw` CLI protocol. Never access the SQLite database directly or control a viewer through browser automation.
11
+
12
+ ## Preflight
13
+
14
+ 1. Run `rvw protocol --json` and parse stdout as JSON.
15
+ 2. Require `protocolVersion` 2, `agent.transport`, and the `walkthrough.read` capability plus every publish, update, or delete capability needed for the task.
16
+ 3. Run `rvw agent status --json`. Read `socketPath`, `connectionResult`, `selectedDatabasePath`, `selectedTransport`, and `fallbackReason`. If `selectedTransport` is `unavailable`, stop and report the diagnostic; an explicitly configured `RVW_AGENT_SOCKET_PATH` never falls back to direct database access. Otherwise use the reported transport without overriding it.
17
+ 4. Require local access to the saved repository. When a normally launched rvw viewer is running, the
18
+ CLI can route database reads and writes through its user-only Unix socket; otherwise direct rvw data
19
+ access is required. `RVW_DATABASE_PATH` selects an explicitly managed database; the CLI uses a
20
+ running viewer only when it reports that same database.
21
+
22
+ ## Read the current artifact
23
+
24
+ For an existing `rvw://walkthrough/<uuid>` reference, run:
25
+
26
+ ```bash
27
+ rvw walkthrough get <WALKTHROUGH_URI> --json
28
+ ```
29
+
30
+ Read the complete current body, source OID, diagram bindings, references, and Pull Request repository location before revising or deleting it. Walkthroughs have one current value and no local revision history.
31
+
32
+ ## Prepare the artifact
33
+
34
+ 1. Inspect the user's requested scope and the relevant committed repository state.
35
+ 2. Choose one exact commit containing every referenced path. Do not publish an explanation of uncommitted code.
36
+ 3. Compose the explanation in the structure best suited to the current task. Make material boundaries and uncertainty explicit.
37
+ 4. Link important code claims with Markdown URLs of the form `rvw-ref:<referenceId>`.
38
+ 5. Define every reference with a repository-relative path and, when useful, an inclusive line range at the chosen `sourceOid`. Prefer the smallest meaningful multi-line range that lets the reader verify a code block or flow; include the signature and relevant body instead of pointing only at its first line. Use a single-line range only for a genuinely line-local claim such as one constant or declaration. Omit both `startLine` and `endLine` when the claim concerns the file as a whole. Keep IDs unique and stable within the publication.
39
+ 6. Add Mermaid only when it helps the explanation. Bind only elements that should open code. rvw renders Mermaid-supported diagram types, while interactive binding is currently guaranteed for flowchart nodes and class-diagram classes.
40
+ 7. Ensure every supplied reference is used by at least one Markdown `rvw-ref:` link or a Mermaid binding whose key is an actual flowchart node or classDiagram class in the body, and ensure every link and binding names a supplied reference. Never invent a binding key merely to mark a reference as used. For a line reference, supply both `startLine` and `endLine`; for a file reference, omit both. Let the CLI reject invalid commits, paths, ranges, IDs, unused references, or bindings; never silently omit a failed reference.
41
+
42
+ ## Send JSON without interactive input
43
+
44
+ Every `--stdin` command reads until EOF before parsing JSON. Supply the complete object and close stdin in the same non-interactive invocation. Prefer an execution API that accepts stdin and closes it after writing; in a shell, use a quoted heredoc as shown below. Never start the command in an interactive PTY and send only JSON plus a newline: a newline is not EOF, so the command will keep waiting.
45
+
46
+ ## Publish
47
+
48
+ Pass exactly one JSON object and close stdin. This shell form closes it at the heredoc delimiter:
49
+
50
+ ```bash
51
+ rvw walkthrough publish --stdin --json <<'RVW_JSON'
52
+ {
53
+ "pullRequest": "https://github.com/owner/repo/pull/123",
54
+ "sourceOid": "0123456789abcdef0123456789abcdef01234567",
55
+ "title": "Request flow",
56
+ "body": "Start at [the handler](rvw-ref:handler), then inspect the [composition root](rvw-ref:composition).",
57
+ "diagramBindings": { "Handler": "handler" },
58
+ "references": [
59
+ {
60
+ "id": "handler",
61
+ "label": "RequestHandler.execute",
62
+ "path": "src/request-handler.ts",
63
+ "startLine": 10,
64
+ "endLine": 24,
65
+ "description": "Application orchestration boundary"
66
+ },
67
+ {
68
+ "id": "composition",
69
+ "label": "Application composition root",
70
+ "path": "src/application.ts",
71
+ "description": "File-wide dependency wiring"
72
+ }
73
+ ]
74
+ }
75
+ RVW_JSON
76
+ ```
77
+
78
+ Set the optional `authorLabel` to an accurate current Agent name when known; otherwise omit it.
79
+
80
+ Parse the successful response and report the returned `rvw://walkthrough/<uuid>` reference. Publication is passive: never claim it opened rvw, activated a document, selected a commit, or changed a tab or scroll position. The human chooses which Walkthrough and code references to open and when.
81
+
82
+ ## Improve an existing Walkthrough
83
+
84
+ Use an in-place update when the user or a Walkthrough comment asks for a clearer or more accurate explanation. Read the current artifact first, incorporate the feedback, and send a complete replacement object containing `sourceOid`, `title`, `body`, `diagramBindings`, and every reference. Omit `authorLabel` to preserve it, or set it accurately to a string or `null`. Supply the object and close stdin in the same non-interactive invocation, using the same execution-API or quoted-heredoc pattern as publication. Run:
85
+
86
+ ```bash
87
+ rvw walkthrough update '<WALKTHROUGH_URI>' --stdin --json
88
+ ```
89
+
90
+ The successful response keeps the same Walkthrough ID and URI. rvw does not create or retain a previous Walkthrough version. Whole-document comments stay attached to the same identity and resolve to the current body and references. Updating is passive and must not be described as browser navigation.
91
+
92
+ ## Delete an unnecessary Walkthrough
93
+
94
+ Deletion permanently removes the Walkthrough, its references, and every comment and reply attached to it. First run the command without `--yes` and inspect the returned counts:
95
+
96
+ ```bash
97
+ rvw walkthrough delete <WALKTHROUGH_URI> --json
98
+ ```
99
+
100
+ Only after the user explicitly authorizes deleting that exact Walkthrough and the reported associated feedback, run:
101
+
102
+ ```bash
103
+ rvw walkthrough delete <WALKTHROUGH_URI> --yes --json
104
+ ```
105
+
106
+ Never infer deletion authorization from a request to revise, replace, or republish an explanation. Retained Git commit refs may be shared by other review state and remain managed by `rvw pr reset`.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "rvw Walkthrough"
3
+ short_description: "Publish verifiable implementation walkthroughs"
4
+ default_prompt: "Use $rvw-walkthrough to publish a commit-fixed implementation walkthrough in rvw."