@a9n-shoji/rvw 0.9.0 → 0.11.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 (54) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +120 -144
  3. package/dist/cli-THIRD_PARTY_NOTICES.txt +112 -0
  4. package/dist/cli.mjs +997 -393
  5. package/dist/cli.mjs.map +4 -4
  6. package/dist/navigation/javascript/0.scm +99 -0
  7. package/dist/navigation/javascript/1.scm +4 -0
  8. package/dist/navigation/javascript/2.scm +23 -0
  9. package/dist/navigation/javascript/3.scm +10 -0
  10. package/dist/navigation/javascript/grammar.wasm +0 -0
  11. package/dist/navigation/ruby/0.scm +64 -0
  12. package/dist/navigation/ruby/1.scm +2 -0
  13. package/dist/navigation/ruby/2.scm +27 -0
  14. package/dist/navigation/ruby/3.scm +7 -0
  15. package/dist/navigation/ruby/grammar.wasm +0 -0
  16. package/dist/navigation/tsx/0.scm +99 -0
  17. package/dist/navigation/tsx/1.scm +4 -0
  18. package/dist/navigation/tsx/2.scm +23 -0
  19. package/dist/navigation/tsx/3.scm +4 -0
  20. package/dist/navigation/tsx/4.scm +23 -0
  21. package/dist/navigation/tsx/5.scm +10 -0
  22. package/dist/navigation/tsx/6.scm +2 -0
  23. package/dist/navigation/tsx/grammar.wasm +0 -0
  24. package/dist/navigation/typescript/0.scm +99 -0
  25. package/dist/navigation/typescript/1.scm +4 -0
  26. package/dist/navigation/typescript/2.scm +23 -0
  27. package/dist/navigation/typescript/3.scm +4 -0
  28. package/dist/navigation/typescript/4.scm +23 -0
  29. package/dist/navigation/typescript/5.scm +10 -0
  30. package/dist/navigation/typescript/6.scm +2 -0
  31. package/dist/navigation/typescript/grammar.wasm +0 -0
  32. package/dist/navigation/web-tree-sitter.wasm +0 -0
  33. package/dist/parser-worker.mjs +4379 -0
  34. package/dist/parser-worker.mjs.map +7 -0
  35. package/dist/web/assets/DocumentViewer-CzOf3Y_e.js +1420 -0
  36. package/dist/web/assets/StructureViewer-CwBbKYKF.js +7 -0
  37. package/dist/web/assets/index-CCxD40fx.css +1 -0
  38. package/dist/web/assets/index-CbZzzSE-.js +11 -0
  39. package/dist/web/index.html +2 -2
  40. package/migrations/023_remove_structure_regions.sql +6 -0
  41. package/migrations/024_pull_request_archive.sql +1 -0
  42. package/package.json +6 -1
  43. package/skills/rvw/SKILL.md +1 -1
  44. package/skills/rvw-review-compose/SKILL.md +9 -20
  45. package/skills/rvw-review-compose/references/review-composition.md +13 -32
  46. package/skills/rvw-structure/SKILL.md +9 -21
  47. package/skills/rvw-structure/references/structure-authoring.md +23 -64
  48. package/skills/rvw-walkthrough/SKILL.md +1 -1
  49. package/skills/rvw-watch-comments/SKILL.md +1 -1
  50. package/skills/rvw-watch-comments/scripts/preflight.mjs +1 -1
  51. package/dist/web/assets/DocumentViewer-3QolO9W0.js +0 -1420
  52. package/dist/web/assets/StructureViewer-DKRwQD9n.js +0 -7
  53. package/dist/web/assets/index-D2onU0ZK.css +0 -1
  54. package/dist/web/assets/index-Y4DJTjLc.js +0 -11
package/CHANGELOG.md CHANGED
@@ -5,6 +5,33 @@
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.11.0] - 2026-10-02
9
+
10
+ ### Added
11
+
12
+ - PR一覧にアーカイブ・解除と、既定ONの「アーカイブ済みを非表示」を追加。Closed / Mergedの絞り込みと独立して利用できます。
13
+ - 独自Skillから操作できる`rvw pr archive`、`rvw pr unarchive`、`rvw pr list`と対応APIを追加。Machine protocolは6を維持し、`pullRequest.archive`と`pullRequest.list`を追加。
14
+
15
+ ### Changed
16
+
17
+ - アーカイブ状態はローカルDBへ保存し、同期・reset後も維持。アーカイブ済みでも直接閲覧・コメントを継続できます。同梱Skillによる自動アーカイブは行いません。
18
+ - 最終ページが空になった場合の自動補正はブラウザ履歴を置き換え、「戻る」がループしないようにしました。
19
+
20
+ ## [0.10.0] - 2026-09-23
21
+
22
+ ### Added
23
+
24
+ - レビュー中のcode参照から、TypeScript、TSX、JavaScript、Rubyの定義・参照候補をcommit固定で探索できるcode navigationを追加。
25
+
26
+ ### Removed
27
+
28
+ - ブラウザ通知の設定・権限要求・テスト通知・Agent投稿の通知処理を撤去。コメントのpollingとwatch/Monitor連携は維持。
29
+ - StructureのRegions表示・所属・配置・export・生成指示を撤去。通常Graph、Guide、thesis/start/backboneは維持。
30
+
31
+ ### Changed
32
+
33
+ - Machine protocolを6へ更新。旧`presentation.regions`入力は拒否し、既存保存データはmigration 023でGraphを保ったまま移行。
34
+
8
35
  ## [0.9.0] - 2026-09-20
9
36
 
10
37
  ### Changed
package/README.md CHANGED
@@ -1,135 +1,105 @@
1
1
  # rvw
2
2
 
3
- rvwは、GitHubのPull Requestを、差分と**その時点のコードベース全体**を行き来しながら読むためのツールです。
4
- PR内のコミットを選び、変更された行からファイル全文、変更されていない呼び出し元やテストまで、手元のブラウザで確認できます。
3
+ GitHub Pull Request の差分だけでなく、**そのコミット時点のコードベース全体**を行き来しながらレビューするためのローカルビューアです。
5
4
 
6
- 基本的な使い方は次の4つです。
5
+ 変更行からファイル全体のコード、未変更の呼び出し元、テストコードまでを手元のブラウザで確認できます。
7
6
 
8
- - **その時点のコードベースを読む。** 差分と全文を切り替え、変更されていないファイルも開いて検索できます。
9
- - **参照リンクで根拠を確かめる。** 説明・図・コメントに付いたリンクから、対象のファイルと行を開けます。
10
- - **左右に並べて読む。** 説明とコード、呼び出し元と呼び出し先を、タブに残して見比べられます。
11
- - **コードにコメントを残す。** 変更のない行にも質問を書けます。Agentのコメント監視を起動しておけば、質問への応答と調査結果を同じ場所で読めます。
7
+ - **コードベース全体の探索**: 差分とファイル全文の切り替え、未変更ファイルの閲覧・全文検索に対応。
8
+ - **根拠コードへのジャンプ**: Walkthrough(解説文)やStructure(関係図)内のリンクから該当コードを開く。
9
+ - **2ペイン表示**: 説明とコード、呼び出し元と呼び出し先を左右に並べて比較。
10
+ - **ローカルコメント & Agent調査**: 変更のない行にもコメント可能。Codex や Claude Code に行単位で質問し、その場で調査結果を確認できる。
12
11
 
13
- ## 説明とコードを並べて読む
12
+ ---
14
13
 
15
- コードをどこから読めばよいか迷ったときは、Agentに参照リンク付きの説明を作ってもらえます。
16
- rvwでは、その説明をコードと同じ画面に開き、気になる箇所から根拠のファイルや行へ進めます。説明には2つの形式があります。
14
+ ## インストールと起動
17
15
 
18
- - **Walkthrough** は、一つの疑問や処理を順に読む説明です。「決済の承認後に注文を保存できなかったらどうなるか」などを文章や図で説明し、各所に根拠のコードへのリンクを付けます。流れを読みながら、条件や処理をコードで確認できます。
19
- - **Structure** は、ファイルや処理の関係を辿るための図です。どの処理がデータを読み書きするか、どのファイルに依存するかなどを、関連する要素や線からコードを開いて確認できます。
16
+ ### 動作要件
20
17
 
21
- 作成は、別に起動したCodex / Claude CodeへSkillを使って依頼します。rvwがAgentを起動したり、説明の正しさを判定したりすることはありません。
22
- Agentなしでコードを読むこともできます。
18
+ - Node.js 24.15.0 以上
19
+ - Git
20
+ - [GitHub CLI (`gh`)](https://cli.github.com/)(対象PRへのアクセス権限およびGit認証が完了していること)
21
+ - PRのマージ先(base)リポジトリのローカルclone、またはそこから作成した Git worktree
22
+ - ※ fork元リポジトリ単体のcloneでは利用できません。
23
+ - Claude Code でコメント監視を使う場合は、`Monitor` tool とサブAgentが利用可能な環境
23
24
 
24
- 下は注文サービスPRのデモです。左のWalkthroughにある「決済の復旧処理」から右にコードを開き、
25
- 注文の有無と決済状態による分岐を確認して質問します(カーソル付きGIF・7.5秒)。
25
+ ### セットアップ
26
26
 
27
- ![左のWalkthroughの参照リンクをカーソルで選び、右に復旧コードを開いて読み、再試行について質問し、Agentの確認中の応答と返信を読む操作](https://raw.githubusercontent.com/a9n-shoji/rvw/166871b5fbd78f258611553ca7c8acc0101737e2/docs/images/review-flow.gif)
28
-
29
- 左の説明を残したまま、右のコードで質問し、Agentの「🔎 確認中です…」が回答に変わるところまでを見せています。
30
- 実操作を短く編集し、カーソルとクリック位置を表示しています。応答は撮影用に用意した例で、実際のAgentの処理時間を示すものではありません。
31
-
32
- ## コードを確かめて質問を残す
33
-
34
- このデモでは「決済承認後に注文を保存できなかったら」を開き、次の順に読みます。
35
-
36
- 1. 説明内の **決済の復旧処理** を `Cmd` / `Ctrl`+クリックして、右ペインにコードを開きます。
37
- 2. 注文がある場合は終了し、決済状態が `voidable` の場合に取り消すことを確認します。
38
- 3. さらに読むと、`pending` や `unknown` の場合は `retry-later` を返しています。再試行の期限が分からなければ、その行に質問を残します。
39
- 4. Agentの返信と、返信に付いた参照リンクからコードや運用手順を確認します。
40
-
41
- ![再試行の期限を質問したコメントと、Codexの応答例。復旧処理と運用手順の参照リンク付きで回答している画面](https://raw.githubusercontent.com/a9n-shoji/rvw/166871b5fbd78f258611553ca7c8acc0101737e2/docs/images/review-comment.png)
42
-
43
- Agent連携では、先に外部Agentで **rvw-watch-comments** を起動しておきます。
44
- コメントを受け付けると **「🔎 確認中です…」** が付き、調査が終わると同じ投稿が回答に変わります。
45
- 応答にはCodex / Claude CodeなどのAgent名が表示され、自分の質問と区別できます。上の返信はデモ用の例です。
46
- コメントと返信は手元のrvwに保存され、GitHubには投稿されません。
27
+ ```bash
28
+ # GitHub CLI のセットアップ(未設定の場合)
29
+ gh auth login
30
+ gh auth setup-git
47
31
 
48
- ## 図から処理の関係を辿る
32
+ # インストール
33
+ npm install --global @a9n-shoji/rvw
49
34
 
50
- Structureでは、処理やデータを表す要素と、それらの関係を図で読めます。
51
- 要素のコード参照からその実装へ、関係に付いたコード参照から呼び出しや条件分岐などの根拠へ進めます。
35
+ # baseリポジトリへ移動して起動
36
+ cd /path/to/base-repository-clone
37
+ rvw doctor
38
+ rvw open https://github.com/owner/repository/pull/123
39
+ ```
52
40
 
53
- 下は同じPRの「決済を取り消してよいか」という図です。**決済先の承認状態**の周辺に絞り、
54
- 「取り消せる状態か確かめる」という関係の **`</>`** を `Cmd` / `Ctrl`+クリックしています。
55
- 右に開いた復旧処理で `voidable` の判定を確認し、続けて図の要素から決済先との通信を扱うコードを開きます。
41
+ `http://127.0.0.1:43117` でブラウザが開きます。ブラウザのタブをすべて閉じると、サーバーも自動停止します。
56
42
 
57
- ![左のStructureで決済状態と取り消し判断の関係を選び、右に判定コードを開く。続いて決済先の承認状態の要素からStripeGatewayの実装を読む操作](https://raw.githubusercontent.com/a9n-shoji/rvw/166871b5fbd78f258611553ca7c8acc0101737e2/docs/images/structure-flow.gif)
43
+ ---
58
44
 
59
- カーソル付きGIF・7.5秒。要素を選んで **1-hop / 2-hop** を使うと周辺の関係に絞れます。
60
- **全体** で図全体に戻り、**Fit** で表示中の要素を画面に収められます。
45
+ ## 基本的なレビューフロー
61
46
 
62
- ## インストールしてPRを開く
47
+ ### 1. 差分とコードベースを行き来する
63
48
 
64
- 必要なものは次のとおりです。
49
+ 1. 開いた画面でコミットを選択し、左側のファイル一覧からファイルを開きます。
50
+ 2. 上部の切り替えで **変更**(差分)または **全文**(選択コミット時点の内容)を表示します。
51
+ 3. **変更のないファイルも表示** を有効にすれば、未変更ファイルも一覧や全文検索(`Cmd/Ctrl + Shift + F`)から参照可能。`Cmd/Ctrl + クリック` で右ペインに並べて開けます。
52
+ 4. 任意の行番号の **+** からコメントを追加できます(未変更行も可。ドラッグで複数行選択)。
65
53
 
66
- - Node.js **24.15.0以上**、Git、[GitHub CLI](https://cli.github.com/)。ブラウザはローカルで開きます。
67
- - GitHub CLIで対象PRを読める認証と、Gitで取得できる権限。
68
- - PRの**マージ先(base)リポジトリのclone**、またはそのcloneから作ったGit worktree。
69
- forkからのPRも読めますが、fork側だけのcloneでは開けません。
70
- - 新規登録するPRは **github.com上のOpenまたはDraft**。初回取得と同期にはネット接続が必要です。
54
+ ### 2. Walkthrough(解説)とコードの突き合わせ
71
55
 
72
- ```bash
73
- # 未設定の場合に実行
74
- gh auth login
75
- gh auth setup-git
56
+ PR全体の流れを把握するために、Agentが生成した解説(Walkthrough)を左ペインに開き、リンクから右ペインに該当コードを呼び出せます。
76
57
 
77
- # 同名の別パッケージと区別するため、scopeを含める
78
- npm install --global @a9n-shoji/rvw
58
+ ![Walkthroughからコードを開き、コメントで質問する操作フロー](https://raw.githubusercontent.com/a9n-shoji/rvw/166871b5fbd78f258611553ca7c8acc0101737e2/docs/images/review-flow.gif)
79
59
 
80
- cd /path/to/base-repository-clone
81
- rvw doctor
82
- rvw open https://github.com/owner/repository/pull/123
83
- ```
60
+ - 解説文中のリンク(`Cmd/Ctrl + クリック`)から、実装行へ直接ジャンプします。
61
+ - 疑問点があればその場でコード行にコメントを残せます。
84
62
 
85
- `/path/to/base-repository-clone` とPRのURLは、自分の対象に置き換えてください。
86
- `rvw doctor` はGit・GitHub認証・リポジトリ・保存先への書き込みなどを診断します。
87
- 現在のブランチに対応するPRを初めて開くときは `rvw open` だけでも指定できます。
88
- 登録済みPRを確実に選ぶにはURLを指定してください。
63
+ ### 3. Structure(関係図)からの依存関係の把握
89
64
 
90
- 通常は `http://127.0.0.1:43117` でブラウザが開き、端末に制御が戻ります。
91
- 最後のrvwタブを閉じると、少し待ってサーバーも終了します。
65
+ ファイルや処理の依存関係を図として可視化し、図中の要素やコネクタから該当コードを特定できます。
92
66
 
93
- ## 最初のレビューを進める
67
+ ![Structureからコード参照を開く操作フロー](https://raw.githubusercontent.com/a9n-shoji/rvw/166871b5fbd78f258611553ca7c8acc0101737e2/docs/images/structure-flow.gif)
94
68
 
95
- ### 差分からコードベース全体を読む
69
+ - 図中の **`</>`** アイコンを `Cmd/Ctrl + クリック` すると、呼び出し元や条件分岐の実装を右ペインに開きます。
70
+ - **1-hop / 2-hop** で着目したノードの周辺関係に絞り込み、**Fit** で全体表示に戻せます。
96
71
 
97
- 1. 開いた `Pull Request.md` で変更の目的を確認します。
98
- 2. 上部の **対象commit** で、PR全体または確認したいコミットを選びます。
99
- 3. 左のファイル一覧から一つ選び、**変更** で差分、**全文** でその時点のコードを読みます。
100
- 4. **変更のないファイルも表示** をオンにし、呼び出し元やテストも開きます。`Cmd` / `Ctrl`+クリックすると右ペインに並べられます。
101
- 5. 疑問のあるコード行にマウスを置き、行番号横の **+** からコメントします。変更のない行にもコメントでき、複数行は+からドラッグして選べます。
72
+ ---
102
73
 
103
- ファイル一覧や検索では、選択範囲の最後のコミット時点のリポジトリ全体を辿れます。表示するのはGitにコミットされたコードで、作業中の未コミット変更ではありません。
104
- ここまでにAgentやSkillは必要ありません。
74
+ ## Agent連携(Codex / Claude Code)
105
75
 
106
- ### Agentの説明から読み始める
76
+ ローカルの Agent に Skill を登録することで、PRの構成図生成や、行コメントに対する調査・返信を自動化できます。
107
77
 
108
- 同じマシンで動き、対象リポジトリとrvw CLIを使えるCodexまたはClaude Codeを用意します。
109
- 使う方のSkillをインストールしてください。
78
+ ### 1. Skill のセットアップ
110
79
 
111
80
  ```bash
112
- # Codexを使う場合
81
+ # Codex の場合
113
82
  rvw skill install codex
114
83
 
115
- # Claude Codeを使う場合
84
+ # Claude Code の場合
116
85
  rvw skill install claude
117
86
  rvw skill status
118
87
  ```
119
88
 
120
- Agent側でSkillが読み込まれていることを確認し、`rvw-review-compose`を選んでPRのURLだけを渡します。
121
- `rvw-review-compose`はPRと周辺コードを調べ、どこを説明し、どこをコードで直接読むかを考えて、
122
- 必要なWalkthroughやStructureを作成します。
89
+ ### 2. Walkthrough / Structure の作成依頼
90
+
91
+ PRのURLとともに `rvw-review-compose` を実行させます。
123
92
 
124
93
  ```text
94
+ rvw-review-compose Skillを使って、次のPull Requestをレビューするための構成を検討し、
95
+ 必要なStructureやWalkthroughをrvwに作成してください。
96
+
125
97
  https://github.com/owner/repository/pull/123
126
98
  ```
127
99
 
128
- 作成後は、Agentが案内した説明を左の **ウォークスルー** または **Structure** から開きます。
129
- 気になる説明のリンクや図のコード参照を `Cmd` / `Ctrl`+クリックし、横のコードで条件や呼び出し先を確かめてください。
130
- 小さな変更では、ファイルの関係図とコードを直接読む構成になることもあります。WalkthroughとStructureが常に一組で作られるわけではありません。
100
+ ### 3. コメントの監視と調査返信
131
101
 
132
- コメントする前に、外部Agentの別タスクで監視を起動します。
102
+ Agent にコメント監視を開始させた状態でコード行にコメントを残すと、Agent が調査結果を該当行のスレッドに直接返信します。
133
103
 
134
104
  ```text
135
105
  rvw-watch-comments Skillを使って、rvwの新しいコメントと返信を監視してください。
@@ -137,58 +107,64 @@ rvw-watch-comments Skillを使って、rvwの新しいコメントと返信を
137
107
  監視を開始できたら知らせてください。
138
108
  ```
139
109
 
140
- 監視開始の知らせを待ってから、疑問のあるコード行にコメントします。
141
- 「🔎 確認中です…」が付けばAgentが受け付けています。調査後はその投稿が回答に置き換わるので、
142
- 返信とリンク先のコードを確認し、疑問が解消したら **解決** を押します。続けて質問する場合は同じコメントに返信できます。
143
-
144
- 監視には子Agentを使えるローカル環境が必要です。**全登録PRの新しいコメント・返信**が対象で、
145
- 新規に監視を始める前からあるコメントは拾いません。rvwを起動するだけでは監視は始まりません。
146
- Claude Codeでは`Monitor` toolで監視driverを起動し、出力イベントを受け取ります。Bashのbackground実行や
147
- 出力pollingは使わず、Monitorの期限到達時は同じtask stateで再開します。
148
- 監視を使わず一件ずつ渡す方法や、修正を依頼する方法は、
149
- [利用ガイド](https://github.com/a9n-shoji/rvw/blob/2f8ce1af320682b8904f2dbaae399d8b14c4385d/docs/usage.md)にあります。
150
-
151
- ## 使う前に知っておくこと
152
-
153
- - **コメントはGitHubへ投稿されません。** コメント、返信、Walkthrough、Structureはローカルに保存します。
154
- GitHubからはPR情報とコミットを取得します。共有レビューやApprove・MergeはGitHubで行います。
155
- - **説明はコードと照合してください。** rvwが検証するのは、参照先のコミット・ファイル・行が存在することです。説明の内容が正しいかどうかは判定しません。
156
- 古い説明やコメントを最新コードへ確実に対応付けられない場合は、参照時点や `Outdated` を表示します。
157
- - **初回登録・同期にはGitHubへの接続が必要です。** PR本文にある対応形式のGitHub添付画像も取得します。
158
- 登録済みPRは保存済みデータとGitオブジェクトで再表示できます。Agentへ渡す情報は、そのAgentの権限・送信先・設定に従います。
159
- - **GitHub Enterprise、Closed/Merged PRの新規登録は未対応です。** 登録後にClosed/MergedになったPRは引き続き表示・同期できます。
160
- - **ローカル環境が必要です。** 対象リポジトリやrvwのローカル接続を使えないクラウドAgentは連携対象外です。
161
- rvw自身はコード編集、テスト実行、commit、pushを行いません。
162
- - PRタイトルと本文は、常に**最後に成功したGitHub同期時点の内容**です。過去のコミットを選んでも過去のPR本文には戻りません。
163
-
164
- 保存場所、ファイル表示の制限、同期に失敗したときの確認は[利用ガイド](https://github.com/a9n-shoji/rvw/blob/2f8ce1af320682b8904f2dbaae399d8b14c4385d/docs/usage.md)にまとめています。
165
-
166
- ## デモと関連文書
167
-
168
- ソースから `pnpm demo` を起動すると、上の画面と同じ注文サービスPRを試せます。
169
- GitHub認証やAgentは不要です。[デモの起動と操作手順](https://github.com/a9n-shoji/rvw/blob/2f8ce1af320682b8904f2dbaae399d8b14c4385d/docs/usage.md#デモで同じ疑問を追う)を参照してください。
170
-
171
- - [利用ガイド](https://github.com/a9n-shoji/rvw/blob/2f8ce1af320682b8904f2dbaae399d8b14c4385d/docs/usage.md):PRを読む、説明を頼む、コメントへの応答を読む、修正後を確認する。
172
- - [CLI protocol](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/docs/cli-protocol.md):Agentや自動化向けのコマンドとJSON仕様。
173
- - [実装仕様](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/docs/implementation-spec.md) / [設計](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/docs/architecture.md):参照解決、保存、描画などの保証。
174
- - [開発・問い合わせ](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/CONTRIBUTING.md) / [互換性](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/docs/compatibility.md) / [セキュリティ](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/SECURITY.md)。
175
-
176
- ライセンスは[MIT](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/LICENSE)です。
177
-
178
- ## ショートカット
179
-
180
- `Cmd`はmacOS、`Ctrl`はWindows / Linuxで使います。
181
-
182
- | 操作 | ショートカット | 使う場所・条件 |
183
- | ---------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------- |
184
- | ファイルや説明を名前で探して開く | `Cmd` / `Ctrl` + `P` | 検索結果は `↑` / `↓` で選び、`Enter` で左ペインに開く |
185
- | コードベース全体から文字列を探す | `Cmd` / `Ctrl` + `Shift` + `F` | 選択コミットのリポジトリを全文検索 |
186
- | 開いているペイン内を検索する | `Cmd` / `Ctrl` + `F` | 文書ペインをクリックしてから。コメントなどの入力欄にいる場合は対象外 |
187
- | ペイン内検索の次/前の一致へ進む | `Enter` / `Shift` + `Enter` | ペイン内検索の入力欄。検索を開いている間は `F3` / `Shift` + `F3` も使える |
188
- | ファイルや参照先を横に開く | `Cmd` / `Ctrl` + クリック | ファイル一覧・検索結果・説明やコメントの参照リンク・Structureのコード参照 |
189
- | コメント・返信を送信する/編集を保存する | `Cmd` / `Ctrl` + `Enter` | 各入力欄。日本語変換中は送信しない |
190
- | 新規の行・ファイルコメント入力を取り消す | `Esc` | 新規コメントの入力欄。未投稿の内容を破棄する |
191
- | 前/次の文書タブへ移る | `←` / `→` | 文書タブにフォーカスがあるとき。`Home` / `End` で先頭/末尾へ |
192
- | コミットを範囲で選ぶ | `Shift` + クリック | **対象commit** の一覧で、選択範囲の最後のコミットからクリックしたコミットまで |
193
- | Structureの要素と周辺の関係へ移る | 要素をダブルクリック | 図のコード参照ボタン以外の部分 |
194
- | Structureを拡大・縮小する | `Cmd` / `Ctrl` + ホイール | 図の上。ホイールだけなら図を移動 |
110
+ ![コメントに対するAgentの返信例](https://raw.githubusercontent.com/a9n-shoji/rvw/166871b5fbd78f258611553ca7c8acc0101737e2/docs/images/review-comment.png)
111
+
112
+ - コメント送信後、調査中は「🔎 確認中です…」と表示され、完了すると回答に置き換わります。
113
+ - 疑問が解消したら **解決** を押してクローズします。
114
+
115
+ ---
116
+
117
+ ## 仕様・注意点
118
+
119
+ - **完全ローカル管理**: コメント、返信、生成された Walkthrough / Structure はローカルに保存されます。**GitHub上のPRには一切投稿・送信されません**。Approve や Merge 等は通常通り GitHub 上で行ってください。
120
+ - **参照の検証**: rvw は指定コミット・ファイル・行が存在することのみを検証します。Agentが生成した解説自体の妥当性は保証しません。
121
+ - **接続要件**: 初回取得・同期時のみ GitHub への接続が必要です。取得済みのPRはオフラインでも表示可能です。
122
+ - **未対応環境**: GitHub Enterprise、および新規登録時点ですでに Closed / Merged になっているPRには非対応です(登録済みPRのクローズ追従は可能)。
123
+ - **変更操作の非保持**: rvw 単独でコード編集、テスト実行、Git コミット等を行う機能はありません。
124
+
125
+ ---
126
+
127
+ ## ショートカット一覧
128
+
129
+ ※ `Cmd`(macOS) / `Ctrl`(Windows, Linux)
130
+
131
+ | 操作 | ショートカット | 補足 |
132
+ | :------------------------------- | :------------------------ | :--------------------------------------------- |
133
+ | ファイル・解説をクイックオープン | `Cmd/Ctrl + P` | `↑`/`↓` で選択、`Enter` で開く |
134
+ | コードベース全体の全文検索 | `Cmd/Ctrl + Shift + F` | 選択コミットのリポジトリ全体が対象 |
135
+ | ペイン内検索 | `Cmd/Ctrl + F` | 文書ペインを選択中に有効 |
136
+ | 次/前の検索一致箇所 | `Enter` / `Shift + Enter` | 検索窓フォーカス時(`F3` / `Shift + F3` も可) |
137
+ | ファイル・参照先を右ペインに開く | `Cmd/Ctrl + クリック` | 一覧、リンク、Structure上の参照に対応 |
138
+ | コメント・返信の投稿 / 保存 | `Cmd/Ctrl + Enter` | 各入力欄 |
139
+ | コメント入力のキャンセル | `Esc` | 未投稿内容を破棄 |
140
+ | 前/次のタブへ移動 | `←` / `→` | タブヘッダーにフォーカス時 |
141
+ | コミットの範囲選択 | `Shift + クリック` | コミット一覧で範囲指定 |
142
+ | Structure: ノードの詳細展開 | ノードをダブルクリック | コード参照ボタン以外の部分 |
143
+ | Structure: 拡大・縮小 | `Cmd/Ctrl + ホイール` | ホイール単体はキャンバス移動 |
144
+
145
+ ### コードの定義候補を辿る
146
+
147
+ Ruby・JS/TS・React(JSX/TSX)の全文・diff上の名前を **Cmd/Ctrl + click** すると、同じcommit内の定義候補を表示します。
148
+ 候補をclickすると対象行を開き、Cmd/Ctrl + clickなら右ペインに開きます。ブラウザのBackで元へ戻れます。
149
+ 候補は宣言行をプレビューでき、↑↓/Enterで選択、Escapeで閉じられます。
150
+ 開発checkoutでは `pnpm demo:navigation` で実Git履歴を使うRuby/Reactデモを起動できます。
151
+ 対応言語の解析機能を同梱するので、RubyやLSPの追加セットアップは不要です。構文に基づく候補であり、呼び先は確定しません。
152
+ ローカル変数の代入・引数を候補にし、JS/TSの相対named import(`import { Button as Action } from "./Button"`のような別名も含む)先を優先します。型位置と`import type`の相対named aliasにも対応しますが、型・値のsemanticな解決は行いません。
153
+ default / namespace / package import、re-export、tsconfig paths、完全なmodule resolution、型に基づくreceiver解決、Railsの動的生成method、外部gem、Find usagesは未対応です。[対象と制限](https://github.com/a9n-shoji/rvw/blob/main/docs/code-navigation.md)を参照してください。
154
+
155
+ ---
156
+
157
+ ## 見終わったPRを整理する
158
+
159
+ PR一覧の各行からアーカイブ・解除できます。アーカイブ済みは既定で非表示になり、チェックを外すと再表示できます。
160
+ PRの閲覧やコメントは引き続き利用できます。[操作と独自Skillでの自動化](https://github.com/a9n-shoji/rvw/blob/main/docs/usage.md#pr一覧のアーカイブ)を参照してください。
161
+
162
+ ## ドキュメント
163
+
164
+ ソースから `pnpm demo` を実行すると、デモ環境(認証・Agent不要)をローカルで試せます。
165
+
166
+ - [利用ガイド](https://github.com/a9n-shoji/rvw/blob/main/docs/usage.md)
167
+ - [CLI Protocol 仕様](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/docs/cli-protocol.md)
168
+ - [アーキテクチャ設計・実装仕様](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/docs/architecture.md)
169
+ - [コントリビューション](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/CONTRIBUTING.md) / [セキュリティ](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/SECURITY.md)
170
+ - [ライセンス (MIT)](https://github.com/a9n-shoji/rvw/blob/166871b5fbd78f258611553ca7c8acc0101737e2/LICENSE)
@@ -1529,6 +1529,90 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
1529
1529
  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
1530
1530
  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1531
1531
 
1532
+ ================================================================================
1533
+ tree-sitter-javascript@0.25.0
1534
+ Declared license: MIT
1535
+ Source: https://github.com/tree-sitter/tree-sitter-javascript
1536
+
1537
+ --- LICENSE ---
1538
+ The MIT License (MIT)
1539
+
1540
+ Copyright (c) 2014 Max Brunsfeld
1541
+
1542
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1543
+ of this software and associated documentation files (the "Software"), to deal
1544
+ in the Software without restriction, including without limitation the rights
1545
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1546
+ copies of the Software, and to permit persons to whom the Software is
1547
+ furnished to do so, subject to the following conditions:
1548
+
1549
+ The above copyright notice and this permission notice shall be included in all
1550
+ copies or substantial portions of the Software.
1551
+
1552
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1553
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1554
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1555
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1556
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1557
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1558
+ SOFTWARE.
1559
+
1560
+ ================================================================================
1561
+ tree-sitter-ruby@0.23.1
1562
+ Declared license: MIT
1563
+ Source: https://github.com/tree-sitter/tree-sitter-ruby
1564
+
1565
+ --- LICENSE ---
1566
+ The MIT License (MIT)
1567
+
1568
+ Copyright (c) 2016 Rob Rix
1569
+
1570
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1571
+ of this software and associated documentation files (the "Software"), to deal
1572
+ in the Software without restriction, including without limitation the rights
1573
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1574
+ copies of the Software, and to permit persons to whom the Software is
1575
+ furnished to do so, subject to the following conditions:
1576
+
1577
+ The above copyright notice and this permission notice shall be included in all
1578
+ copies or substantial portions of the Software.
1579
+
1580
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1581
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1582
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1583
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1584
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1585
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1586
+ SOFTWARE.
1587
+
1588
+ ================================================================================
1589
+ tree-sitter-typescript@0.23.2
1590
+ Declared license: MIT
1591
+ Source: https://github.com/tree-sitter/tree-sitter-typescript
1592
+
1593
+ --- LICENSE ---
1594
+ The MIT License (MIT)
1595
+
1596
+ Copyright (c) 2017 Max Brunsfeld
1597
+
1598
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1599
+ of this software and associated documentation files (the "Software"), to deal
1600
+ in the Software without restriction, including without limitation the rights
1601
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1602
+ copies of the Software, and to permit persons to whom the Software is
1603
+ furnished to do so, subject to the following conditions:
1604
+
1605
+ The above copyright notice and this permission notice shall be included in all
1606
+ copies or substantial portions of the Software.
1607
+
1608
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1609
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1610
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1611
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1612
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1613
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1614
+ SOFTWARE.
1615
+
1532
1616
  ================================================================================
1533
1617
  unist-util-position@5.0.0
1534
1618
  Declared license: MIT
@@ -1702,6 +1786,34 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
1702
1786
  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
1703
1787
  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1704
1788
 
1789
+ ================================================================================
1790
+ web-tree-sitter@0.27.0
1791
+ Declared license: MIT
1792
+ Source: git+https://github.com/tree-sitter/tree-sitter.git
1793
+
1794
+ --- LICENSE ---
1795
+ The MIT License (MIT)
1796
+
1797
+ Copyright (c) 2018 Max Brunsfeld
1798
+
1799
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1800
+ of this software and associated documentation files (the "Software"), to deal
1801
+ in the Software without restriction, including without limitation the rights
1802
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1803
+ copies of the Software, and to permit persons to whom the Software is
1804
+ furnished to do so, subject to the following conditions:
1805
+
1806
+ The above copyright notice and this permission notice shall be included in all
1807
+ copies or substantial portions of the Software.
1808
+
1809
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1810
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1811
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1812
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1813
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1814
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1815
+ SOFTWARE.
1816
+
1705
1817
  ================================================================================
1706
1818
  wsl-utils@0.3.1
1707
1819
  Declared license: MIT