@a9n-shoji/rvw 0.8.0 → 0.9.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.
- package/CHANGELOG.md +23 -0
- package/README.md +148 -497
- package/dist/cli.mjs +137 -14
- package/dist/cli.mjs.map +2 -2
- package/dist/web/assets/DocumentViewer-3QolO9W0.js +1420 -0
- package/dist/web/assets/{MarkdownTable-IiPLNTUX.js → MarkdownTable-CMERaA8_.js} +5 -5
- package/dist/web/assets/{StructureViewer-H6GjgwjT.js → StructureViewer-DKRwQD9n.js} +1 -1
- package/dist/web/assets/WalkthroughViewer-Dt_IUyQ1.js +43 -0
- package/dist/web/assets/index-Y4DJTjLc.js +11 -0
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/skills/rvw/SKILL.md +44 -3
- package/skills/rvw-review-compose/SKILL.md +33 -13
- package/skills/rvw-review-compose/agents/openai.yaml +1 -1
- package/skills/rvw-review-compose/references/review-composition.md +107 -30
- package/skills/rvw-structure/SKILL.md +2 -2
- package/skills/rvw-structure/references/structure-authoring.md +19 -11
- package/skills/rvw-walkthrough/SKILL.md +19 -17
- package/skills/rvw-walkthrough/references/walkthrough-authoring.md +78 -59
- package/skills/rvw-watch-comments/SKILL.md +65 -8
- package/dist/web/assets/DocumentViewer-CLt6W3yV.js +0 -1420
- package/dist/web/assets/WalkthroughViewer-JkLyJ0Rz.js +0 -43
- package/dist/web/assets/index--jtTJT6K.js +0 -11
package/README.md
CHANGED
|
@@ -1,543 +1,194 @@
|
|
|
1
1
|
# rvw
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
repository全体を行き来し、PR本文、変更されたコード、変更されていない関連コードへコメントできます。
|
|
6
|
-
Agentが実装やarchitectureの説明を提示した場合は、説明を独立したtabに残したまま、inline linkや
|
|
7
|
-
Mermaid図から人間が選んだcodeだけを開けます。文書は最大2ペインへ並べられるため、
|
|
8
|
-
説明と実装、callerとdefinition、Markdown previewとcodeを同時に読めます。
|
|
9
|
-
関係を同時に見渡したいsubjectは、Agentがsource anchorとoptionalなauthorial presentation付きStructureとして
|
|
10
|
-
提示でき、意図されたspatial explanationを手がかりに同じworkspaceでnodeとrelationを自由に辿れます。
|
|
11
|
-
|
|
12
|
-
diffは変更を見つける入口であり、レビュー対象の境界ではありません。人間が結果を読み、影響を追い、
|
|
13
|
-
次に直すべきことを判断します。Codex / Claude Codeは、その判断を同梱された共通Skillと`rvw` CLI
|
|
14
|
-
protocolで受け取り、実装へ反映します。`rvw`自身はAIを起動せず、コードを編集しません。
|
|
3
|
+
rvwは、GitHubのPull Requestを、差分と**その時点のコードベース全体**を行き来しながら読むためのツールです。
|
|
4
|
+
PR内のコミットを選び、変更された行からファイル全文、変更されていない呼び出し元やテストまで、手元のブラウザで確認できます。
|
|
15
5
|
|
|
16
|
-
|
|
17
|
-
Agentが実装
|
|
18
|
-
↓
|
|
19
|
-
Git commit / GitHub Pull Request
|
|
20
|
-
↓
|
|
21
|
-
Agentが任意でsource anchor付きWalkthrough / Structureを提示
|
|
22
|
-
↓
|
|
23
|
-
rvwで意図・説明・変更・repository全体を読む
|
|
24
|
-
↓
|
|
25
|
-
人間が理解し、コードへコメントする
|
|
26
|
-
↓
|
|
27
|
-
Skill + CLI protocol
|
|
28
|
-
↓
|
|
29
|
-
Agentが次の実装へ反映
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
この考え方とプロダクト境界は[Product principles](docs/product-principles.md)にまとめています。
|
|
33
|
-
|
|
34
|
-
## 必要なもの
|
|
6
|
+
基本的な使い方は次の4つです。
|
|
35
7
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
8
|
+
- **その時点のコードベースを読む。** 差分と全文を切り替え、変更されていないファイルも開いて検索できます。
|
|
9
|
+
- **参照リンクで根拠を確かめる。** 説明・図・コメントに付いたリンクから、対象のファイルと行を開けます。
|
|
10
|
+
- **左右に並べて読む。** 説明とコード、呼び出し元と呼び出し先を、タブに残して見比べられます。
|
|
11
|
+
- **コードにコメントを残す。** 変更のない行にも質問を書けます。Agentのコメント監視を起動しておけば、質問への応答と調査結果を同じ場所で読めます。
|
|
40
12
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## インストール
|
|
44
|
-
|
|
45
|
-
npm registryからglobal installします。非scopedの`rvw` packageは別のプロジェクトなので、必ずscopeを
|
|
46
|
-
含めます。
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm install --global @a9n-shoji/rvw
|
|
50
|
-
rvw doctor
|
|
51
|
-
```
|
|
13
|
+
## 説明とコードを並べて読む
|
|
52
14
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`pnpm install --frozen-lockfile && pnpm build && pnpm link --global`を実行します。
|
|
15
|
+
コードをどこから読めばよいか迷ったときは、Agentに参照リンク付きの説明を作ってもらえます。
|
|
16
|
+
rvwでは、その説明をコードと同じ画面に開き、気になる箇所から根拠のファイルや行へ進めます。説明には2つの形式があります。
|
|
56
17
|
|
|
57
|
-
|
|
18
|
+
- **Walkthrough** は、一つの疑問や処理を順に読む説明です。「決済の承認後に注文を保存できなかったらどうなるか」などを文章や図で説明し、各所に根拠のコードへのリンクを付けます。流れを読みながら、条件や処理をコードで確認できます。
|
|
19
|
+
- **Structure** は、ファイルや処理の関係を辿るための図です。どの処理がデータを読み書きするか、どのファイルに依存するかなどを、関連する要素や線からコードを開いて確認できます。
|
|
58
20
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
rvw open https://github.com/owner/repository/pull/123
|
|
62
|
-
```
|
|
21
|
+
作成は、別に起動したCodex / Claude CodeへSkillを使って依頼します。rvwがAgentを起動したり、説明の正しさを判定したりすることはありません。
|
|
22
|
+
Agentなしでコードを読むこともできます。
|
|
63
23
|
|
|
64
|
-
|
|
24
|
+
下は注文サービスPRのデモです。左のWalkthroughにある「決済の復旧処理」から右にコードを開き、
|
|
25
|
+
注文の有無と決済状態による分岐を確認して質問します(カーソル付きGIF・7.5秒)。
|
|
65
26
|
|
|
66
|
-
|
|
67
|
-
rvw open
|
|
68
|
-
```
|
|
27
|
+

|
|
69
28
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
起動しません。最初の`rvw open`だけがbackground runtimeを開始し、最初のtab接続を確認してから端末へ
|
|
73
|
-
制御を返します。最後のtabを閉じると短い猶予後に停止し、リロード中や別tabが残っている間は停止しません。
|
|
74
|
-
固定originにより、Browser NotificationのpermissionとAgentコメント通知設定は通常起動をまたいで維持されます。
|
|
75
|
-
空きportを自動選択する場合は`--port 0`を明示します。この場合は起動ごとにoriginが変わり得るため、通知permissionと
|
|
76
|
-
browser storageは引き継がれません。異なる`RVW_DATABASE_PATH`のruntimeを同時に起動する場合は、二つ目へ別の
|
|
77
|
-
固定`--port`または`--port 0`を指定します。
|
|
78
|
-
|
|
79
|
-
serverを端末に接続したままにする場合は`rvw open --foreground`を使います。同じdatabaseのruntimeが
|
|
80
|
-
既にあればforeground commandは競合を明示します。ブラウザだけを自動で開かない場合は
|
|
81
|
-
`rvw open --no-open`を使います。active runtimeがあればURLを表示して再利用し、なければCtrl+Cまで
|
|
82
|
-
signal管理のserverを起動します。再利用時もCLIがCtrl+Cまでviewer leaseを保持するため、表示したURLが
|
|
83
|
-
終了猶予中に無効になることはありません。初回の`--port`は尊重し、省略時はactive runtimeのoriginを再利用します。
|
|
84
|
-
active runtimeと異なるportを明示した場合は
|
|
85
|
-
二つ目を起動せず競合を返します。一度登録したPRは、完全URLまたは全登録PRで一意な番号を指定すれば
|
|
86
|
-
repository外のdirectoryからも開けます。
|
|
87
|
-
|
|
88
|
-
最上部の`...` menuでは、Browser Notificationのpermission状態を確認し、Agent更新と独立したテスト通知を送れます。
|
|
89
|
-
`Agentのコメントを通知`を有効にすると、初回読込後にAgentが追加・更新した最終回答を通知します。
|
|
90
|
-
|
|
91
|
-
## 変更を理解する
|
|
92
|
-
|
|
93
|
-
初回openでPRのcommit履歴と最新PR本文を取得します。以後は保持済み状態を先に表示し、viewer起動後または最上部の`...` menuにある`GitHubと同期`で最新状態を取得します。独自の版取り込み操作はありません。
|
|
94
|
-
|
|
95
|
-
基本の読み方は次のとおりです。
|
|
96
|
-
|
|
97
|
-
1. `Pull Request.md`で、最後に同期できたPRの意図と説明を読む。
|
|
98
|
-
2. 変更ファイルとcommit rangeで、どこがどの順序で変わったかを把握する。
|
|
99
|
-
3. 全文、全ファイル、repository検索、開いた文書のtabを使い、変更されていないcaller、設定、test、documentまで辿る。
|
|
100
|
-
4. PR全体、PR本文、変更file、変更されていないfile、コード行へコメントする。
|
|
101
|
-
5. comment参照をAgentへ渡し、修正後のcommitを同じ文脈で読み直す。
|
|
102
|
-
|
|
103
|
-
viewerはこの流れのために次を提供します。
|
|
104
|
-
|
|
105
|
-
- `Pull Request.md`、変更ファイル、全ファイル
|
|
106
|
-
- 開いた文書を保持するタブ、最大2つの横ペイン、横幅をdrag調整できるsidebar / pane divider
|
|
107
|
-
- タブのdrag & drop、ペインmenu、sidebarからの`Cmd` / `Ctrl`+clickによる右ペイン表示
|
|
108
|
-
- repository内Markdown全文のPreview既定とSource / Preview切り替え(差分がある変更表示は通常のdiff、見出しlinkと同じcommitの相対画像を含む)
|
|
109
|
-
- 全文、選択した連続commit範囲の差分
|
|
110
|
-
- split / stacked diff、syntax highlight、行・範囲選択
|
|
111
|
-
- `@pierre/vscode-icons`による全画面共通の言語/tooling file icon
|
|
112
|
-
- ファイル名fuzzy検索、Gitによるrealtime全文fixed-string検索(case / whole-word、file grouping、行jump)
|
|
113
|
-
- PR全体、PR本文、ファイル全体、行範囲、Walkthrough全体へのコメント
|
|
114
|
-
- コメントと返信のsafe GFM表示(repository内link/同一commit相対画像、表示専用Mermaid、
|
|
115
|
-
exact commitへ固定したinline code referenceを含む)
|
|
116
|
-
- 未解決/解決済み、返信、Outdated追跡
|
|
117
|
-
- Agentへ渡す一件・一覧・複数選択した`rvw://comment/<uuid>`参照のコピー
|
|
118
|
-
- Agentが提示したWalkthrough、exact code reference、選択可能なMermaid node
|
|
119
|
-
- Agentが提示したStructure、focus近傍、source anchor付きnode / relation
|
|
120
|
-
- Walkthrough commentをAgentが読むときの、元の説明本文とcode referenceの同時取得
|
|
121
|
-
- 同じ参照を保ったWalkthroughの改善と、確認付きの不要Walkthrough削除
|
|
122
|
-
|
|
123
|
-
各commitはcommit message、short SHA、commit日時で選択できます。一件はclick、連続範囲は一覧をdragするだけで両端を含めて選べ、`PR全体`と`最新だけ`のshortcutも利用できます。範囲のlatest側がheadならtop barに`最新`を表示します。`Pull Request.md`は選択commitにかかわらず常に最新です。
|
|
124
|
-
|
|
125
|
-
全文表示と全ファイルtreeが通常のrepository reading surfaceです。変更表示は同じcommit範囲へ
|
|
126
|
-
変更箇所を重ねるlensとして働きます。diff外のfileを開いても比較条件は変わらず、そのcommitの
|
|
127
|
-
全文を表示して`差分なし · 全文表示`と明示します。
|
|
128
|
-
|
|
129
|
-
## Agentの説明を人間の順序で検証する
|
|
130
|
-
|
|
131
|
-
外部Agentは単一Artifact producerである`rvw-walkthrough` SkillとCLIを使い、一つのbounded subjectの
|
|
132
|
-
実装説明を一つのsource commitをanchorとしてrvwへ提示できます。
|
|
29
|
+
左の説明を残したまま、右のコードで質問し、Agentの「🔎 確認中です…」が回答に変わるところまでを見せています。
|
|
30
|
+
実操作を短く編集し、カーソルとクリック位置を表示しています。応答は撮影用に用意した例で、実際のAgentの処理時間を示すものではありません。
|
|
133
31
|
|
|
134
|
-
|
|
135
|
-
rvw walkthrough publish --stdin --json
|
|
136
|
-
```
|
|
32
|
+
## コードを確かめて質問を残す
|
|
137
33
|
|
|
138
|
-
|
|
139
|
-
構成されます。参照は意味のある複数行range、単行、またはfile全体を指せます。rvwは登録時にcommit、
|
|
140
|
-
path、指定された行範囲を検証します。publishしてもbrowserは開かれず、
|
|
141
|
-
active tabやscroll位置も変わりません。人間がviewerのWalkthroughを開き、必要なreferenceを選んだ
|
|
142
|
-
時だけ、`sourceOid`のanchorから最新PR headへcode位置を保守的に解決します。追跡できれば最新code、
|
|
143
|
-
変更や曖昧さがあれば参照時点のcodeを明示して開きます。行指定はfile全体が同一、または選択範囲が
|
|
144
|
-
source/latest双方で一意な場合だけ解決し、範囲全体を強調します。元pathが消えたrenameはcopy候補も含めて後継が1件のときだけ追従します。
|
|
145
|
-
変更表示は選択中の比較がlatestで終わる場合だけtop barのPR比較範囲を使い、historical範囲では別revisionへ
|
|
146
|
-
lineを誤適用せずlatest全文を表示します。fallbackでは、同じfileまたは明確なrename先があればline保証なしで
|
|
147
|
-
最新fileも開けます。このactionも比較終端がlatestと一致するときだけ変更表示を使い、historical範囲ではlatest全文を
|
|
148
|
-
開きます。解決後にPR headが進んだ場合、または同じWalkthrough IDのreference座標が変わった場合はstaleとし、
|
|
149
|
-
解決時/現在のSHAと表示中のanchorを示します。staleな判断とlatest file actionを隠して明示的な再解決だけを提供します。通常clickは左ペイン、
|
|
150
|
-
`Cmd` / `Ctrl`を押しながら選べば右ペインへ開きます。説明tabは残るため、
|
|
151
|
-
複数のclaimと実装を任意の順序・任意のタイミングで往復できます。
|
|
152
|
-
|
|
153
|
-
Walkthrough本文のinline referenceとMermaid node linkは維持しますが、同じ参照を横や下へ列挙する
|
|
154
|
-
`Code references` indexとsidebar上の参照件数は表示しません。そのため、本文linkと、本文中に実在する
|
|
155
|
-
対応済みnode-like elementへのMermaid bindingのどちらからも使われないreferenceはpublish/update時に
|
|
156
|
-
拒否します。存在しないnode名だけをbindingへ宣言しても使用済みにはなりません。
|
|
157
|
-
|
|
158
|
-
Mermaidの描画はflowchartだけに限定せず、class、sequence、state、ERなどbundled Mermaidが対応する
|
|
159
|
-
記法を受け付けます。code referenceとの要素bindingはflowchart node、class、sequence participant / actor、
|
|
160
|
-
state、ER entity、architecture serviceをE2Eで保証します。message、transition、relationship、architecture
|
|
161
|
-
edge / groupなどのedge-like elementはbindingできないため、そのclaimの根拠は図の近くのinline referenceで
|
|
162
|
-
開けるようにします。binding IDはWalkthrough全体で共有され、別sourceを開く複数図では別IDを使います。
|
|
163
|
-
|
|
164
|
-
authoringの既定は、具体的な状況と最初のcode入口から始め、一つの問いに必要な小さな説明を得てsourceで
|
|
165
|
-
確かめ、何が分かったかを責務・状態・条件・結果へ位置付け、次の探索理由へつなぐ読解pathです。複数の主体、
|
|
166
|
-
状態、順序、分岐を文章だけから組み立て直す必要がある場合、Mermaidを標準的に使います。flowchartは分岐、
|
|
167
|
-
stateDiagram-v2はstate / lifecycle、sequenceDiagramはinteraction / async順序というように中心の問いから
|
|
168
|
-
図法を選び、必要になった地点へ一問一図の小さな図を置きます。小さな定数や局所条件は図なしの方が明快です。
|
|
169
|
-
図の矢印、状態、順序もsourceについてのclaimであり、renderやbinding成功だけで意味の正しさは保証されません。
|
|
170
|
-
|
|
171
|
-
これはin-app AI chatではありません。説明と図はAgentのclaimで、commit済みcodeが検証対象の正本です。
|
|
172
|
-
Walkthroughにはローカルな版履歴を持たせません。説明全体へのfeedbackはstableなWalkthrough IDへ残るため、
|
|
173
|
-
Agentは現在内容を読み、同じ`rvw://walkthrough/<uuid>`を更新して分かりやすくできます。更新後もコメントは
|
|
174
|
-
同じ説明へ残り、viewerはpollで本文、参照、titleを再取得します。不要なWalkthroughはviewerの削除action、
|
|
175
|
-
または削除件数を確認したCLIで、紐づくコメントと返信を含めて削除できます。
|
|
176
|
-
|
|
177
|
-
## codeの関係を空間として検証する
|
|
178
|
-
|
|
179
|
-
外部Agentは単一Artifact producerである`rvw-structure` SkillとCLIを使い、PRに関係する一つのboundedな
|
|
180
|
-
behavior / review questionをfactualなcode entrypointからdependency、contract、side effectへ辿る空間、
|
|
181
|
-
またはPRを理解するためのfile responsibility / dependency mapを提示できます。ファイル地図では実在する
|
|
182
|
-
repository fileを1 Nodeずつfile-level anchorへ結び、Edgeを具体的なsource evidenceで検証します。
|
|
183
|
-
thesis、最初に見るNode、必要な場合だけ2〜12 Node / 1〜16 Edgeのconnected exact-relation backbone、
|
|
184
|
-
stable IDと責務summaryを持つcomprehension regionで説明の意図を表せます。artifactは一つのbounded behavior、
|
|
185
|
-
review question、またはfile relation setに必要なrelationを保持し、Viewerはstableな全体像とfocus-relativeな
|
|
186
|
-
局所lensを往復します。正直なspatial organizerがない場合も、意味のある
|
|
187
|
-
thesisとattention startだけを提示できます。順序とprose自体がartifactならWalkthroughです。
|
|
188
|
-
PRへ接地しない静的なarchitecture/責務inventoryやrepository全体のimport graphへは広げません。
|
|
34
|
+
このデモでは「決済承認後に注文を保存できなかったら」を開き、次の順に読みます。
|
|
189
35
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
rvw structure update rvw://structure/<uuid> --stdin --json
|
|
195
|
-
rvw structure delete rvw://structure/<uuid> --json
|
|
196
|
-
```
|
|
36
|
+
1. 説明内の **決済の復旧処理** を `Cmd` / `Ctrl`+クリックして、右ペインにコードを開きます。
|
|
37
|
+
2. 注文がある場合は終了し、決済状態が `voidable` の場合に取り消すことを確認します。
|
|
38
|
+
3. さらに読むと、`pending` や `unknown` の場合は `retry-later` を返しています。再試行の期限が分からなければ、その行に質問を残します。
|
|
39
|
+
4. Agentの返信と、返信に付いた参照リンクからコードや運用手順を確認します。
|
|
197
40
|
|
|
198
|
-
|
|
199
|
-
`presentation`からなります。presentationはraw座標ではなく、thesis、authorialなattention start、exact factual
|
|
200
|
-
Edgeのunordered setからなる一つのoptionalなconnected primary backbone、stable ID / label / 責務summary /
|
|
201
|
-
重複しないNode membershipを持つcomprehension regionからなるauthorial semanticsです。backboneもregionも持たないstart-only presentationは、
|
|
202
|
-
意味のあるthesisとattention startを伝えられる一方、graph配置へ存在しないspatial orderを作りません。
|
|
203
|
-
Nodeは0または1件、Edgeは0件以上のsource anchorを持ち、rvwはcommit、UTF-8 path、line pair、endpoint、
|
|
204
|
-
重複ID、presentation参照とmembership、sizeを保存前に検証します。publish / updateはbrowserやnavigationを操作しません。
|
|
205
|
-
publish / update前には同じgraph contentをpreviewし、presentationに依存しないtopology diagnosticsとauthoring warningから
|
|
206
|
-
origin、granularity、behavior / subject boundaryを再確認できます。warningは保存を拒否せず、graphを自動変更しません。
|
|
207
|
-
|
|
208
|
-
primary backboneまたはregionがあればcanonical配置へ反映し、backboneもregionもないstart-only presentationと
|
|
209
|
-
`presentation: null`は同じtopology projectionを使います。start-onlyでもthesisとattention startはoverview、
|
|
210
|
-
visual cue、exportへ残り、新規sessionは`startNodeId`から始まります。factual entrypointのoriginは別に示します。
|
|
211
|
-
header直下のcompact Guideはattention startと折り畳み可能なthesisだけを示し、backbone Edgeの完全なリストや
|
|
212
|
-
Region関係図を複製しません。Structure本体はGraph / Regionsを切り替えられ、Regions modeではRegionごとの責務を
|
|
213
|
-
矩形として示し、factual Edgeから導出したdirectなRegion間connectionを矢印で表示します。Regionを選ぶとGraphへ
|
|
214
|
-
drill-downして、代表Nodeを捏造せずexact memberへviewportを移動します。Graph上にはRegionのfull label、責務summary、
|
|
215
|
-
member / internal relation数を持つcompact lensを表示し、対象Nodeと内部relationを専用styleで強調します。stable ID由来の
|
|
216
|
-
略称を復号したり、Node配置からmembershipを推測したりする必要はありません。BackでRegions overviewへ戻れます。
|
|
217
|
-
Regions modeはcard geometryを狭いpaneへ押し込まず、初期表示 / ResetではStartを含む責務を読めるscaleで示し、
|
|
218
|
-
Fitだけがmap全体を収めます。独立したzoom / wheel・drag panで局所を読みます。このRegions cameraはGraph viewportと混ぜずpane-local sessionへ保持し、
|
|
219
|
-
mode切替、Region drillからのBack、tab往復でもそれぞれの位置を復元します。
|
|
220
|
-
region membershipは囲い枠ではなく明示Node IDに
|
|
221
|
-
基づくため、manual drag後も変わりません。regionはnamed comprehension chunkで、summaryはそのchunkがthesisへ
|
|
222
|
-
何を寄与するかを伝えます。Region arrayと各`nodeIds`の順序に意味はなく、stable IDでcanonical化されます。
|
|
223
|
-
Region間の関係は別のauthorial graphではなく、member間のdirect factual EdgeからViewerが導出します。
|
|
224
|
-
viewerではHomeでauthorial start(null presentationではorigin)とexact 1-hopを読み、canvas / minimapに残る
|
|
225
|
-
backbone emphasisでcoreの位置を保ちながら、single clickではcameraを動かさずNodeを選択し、double clickでは
|
|
226
|
-
選択Nodeとexact 1-hopへone-shotでfocusします。1-hop / 2-hop、Region frame、AllをBackで往復できます。
|
|
227
|
-
HomeとRegion frameは対象を確実に見せるためAllへ切り替えます。Region frame中はfocusを維持したままmemberと内部relationを
|
|
228
|
-
full relevanceで読め、Home、Node selection、depth変更で解除します。Backは直前のview mode / focus / hop depth / framed region / viewportを復元します。
|
|
229
|
-
backbone membershipは固定されたauthorial salience、focus hopは一時的なreviewer attentionとして別に表示します。
|
|
230
|
-
低zoomで省略するdetailもvisible / total件数、minimap、selection、Allから回収でき、pan、zoom、fit、node drag、
|
|
231
|
-
layout resetで探索できます。通常clickでexact sourceを左、
|
|
232
|
-
`Cmd` / `Ctrl`+clickで右ペインへ開きます。globalなcommit選択は
|
|
233
|
-
変えません。GraphのNode位置 / viewportとRegions viewportは互いに独立して同じbrowser sessionで保持しますが、SQLiteやAgent protocolへ座標を
|
|
234
|
-
保存しません。同じsubjectの更新は同じURIを完全置換します。通常は存続するIDの位置を保ちますが、backbone endpoint
|
|
235
|
-
adjacency、Region identity / membershipなどspatial organizerが変われば、新しいspatial semanticsへcanonical geometryをrebaseします。
|
|
236
|
-
frame中のRegion IDが存続する場合はchunk lensも維持し、current memberと内部relationのderived boundsへrefitします。
|
|
237
|
-
Regionのlabel / summaryや配列順だけの変更ではGraphのNode geometryをrebaseしません。
|
|
238
|
-
Regions cameraは別のderived-map basisでreconcileし、unorderedな配列順やsummary / thesisだけの変更では保持する一方、
|
|
239
|
-
Region label / membership、cross-Region Edge endpoint・direction・labelなどprojection / routingが変われば、
|
|
240
|
-
Startを読める新しいHome projectionへ戻します。map全体への縮小は明示的なFitだけが行います。
|
|
241
|
-
`null`とstart-onlyの往復やthesis / startだけの変更ではmanual geometryを保ちます。別subjectは新しい
|
|
242
|
-
Structureとしてpublishします。
|
|
243
|
-
Node / Edge / Regionのstable IDは同じclaim / comprehension chunkが存続する間だけ維持し、一度削除したIDを
|
|
244
|
-
別の意味で再利用しません。rvwは三種類すべてのretired IDをtombstoneとして保持し、後のupdateでの再導入を
|
|
245
|
-
拒否します。存続中のIDが意味ごと差し替えられたかは機械判定せず、producerが新しいIDを割り当てます。
|
|
246
|
-
|
|
247
|
-
Structure headerの`Export`から、現在のNode配置を保った図全体をstandalone SVGまたは2倍基準のPNGとして
|
|
248
|
-
保存できます。focusや1-hop / 2-hopで画面上に絞り込んでいても、出力には全Node、全Relation、全Edge labelが
|
|
249
|
-
含まれ、pan / zoomや選択状態は持ち込みません。
|
|
250
|
-
|
|
251
|
-
## Codex / Claude Code Skills
|
|
252
|
-
|
|
253
|
-
アプリ本体からローカルSkillをインストールします。一度のinstallで、コメント処理用の`rvw`、PR全体の
|
|
254
|
-
必要最小限のreview compositionを選ぶ`rvw-review-compose`、単一Walkthroughのpublish・改善・削除用の
|
|
255
|
-
`rvw-walkthrough`、単一Structureのpublish・置換・削除用の`rvw-structure`、新規コメント監視用の
|
|
256
|
-
`rvw-watch-comments`という5つが入ります。Skill名と内容はCodex / Claude Codeで共通で、platform指定は
|
|
257
|
-
配置先だけを選びます。
|
|
41
|
+

|
|
258
42
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
rvw
|
|
263
|
-
```
|
|
43
|
+
Agent連携では、先に外部Agentで **rvw-watch-comments** を起動しておきます。
|
|
44
|
+
コメントを受け付けると **「🔎 確認中です…」** が付き、調査が終わると同じ投稿が回答に変わります。
|
|
45
|
+
応答にはCodex / Claude CodeなどのAgent名が表示され、自分の質問と区別できます。上の返信はデモ用の例です。
|
|
46
|
+
コメントと返信は手元のrvwに保存され、GitHubには投稿されません。
|
|
264
47
|
|
|
265
|
-
|
|
48
|
+
## 図から処理の関係を辿る
|
|
266
49
|
|
|
267
|
-
|
|
268
|
-
|
|
50
|
+
Structureでは、処理やデータを表す要素と、それらの関係を図で読めます。
|
|
51
|
+
要素のコード参照からその実装へ、関係に付いたコード参照から呼び出しや条件分岐などの根拠へ進めます。
|
|
269
52
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
`
|
|
273
|
-
`--force`を指定してください。package smokeやカスタム配置にはplatformを明示して
|
|
274
|
-
`rvw skill status codex --target <SKILLS_ROOT>`のように指定します。
|
|
275
|
-
以前の開発版が配置した`rvw-codex` / `rvw-claude` directoryは、local変更を消さないため自動削除しません。
|
|
276
|
-
内容を確認してから手動で取り除いてください。
|
|
53
|
+
下は同じPRの「決済を取り消してよいか」という図です。**決済先の承認状態**の周辺に絞り、
|
|
54
|
+
「取り消せる状態か確かめる」という関係の **`</>`** を `Cmd` / `Ctrl`+クリックしています。
|
|
55
|
+
右に開いた復旧処理で `voidable` の判定を確認し、続けて図の要素から決済先との通信を扱うコードを開きます。
|
|
277
56
|
|
|
278
|
-
|
|
279
|
-
確認するよう依頼します。
|
|
57
|
+

|
|
280
58
|
|
|
281
|
-
|
|
282
|
-
|
|
59
|
+
カーソル付きGIF・7.5秒。要素を選んで **1-hop / 2-hop** を使うと周辺の関係に絞れます。
|
|
60
|
+
**全体** で図全体に戻り、**Fit** で表示中の要素を画面に収められます。
|
|
283
61
|
|
|
284
|
-
|
|
285
|
-
```
|
|
62
|
+
## インストールしてPRを開く
|
|
286
63
|
|
|
287
|
-
|
|
288
|
-
rvw Skillを使って、https://github.com/owner/repository/pull/123 の未解決コメントを確認してください。
|
|
289
|
-
```
|
|
64
|
+
必要なものは次のとおりです。
|
|
290
65
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
```text
|
|
297
|
-
rvw Skillを使って、https://github.com/owner/repository/pull/123 をreviewし、見つけた指摘をRVWのコメントとして作成してください。
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
PR全体または明示したreview subjectについて、どの説明surfaceが必要かも含めて任せる場合は
|
|
301
|
-
`rvw-review-compose` Skillを使います。
|
|
302
|
-
|
|
303
|
-
```text
|
|
304
|
-
rvw-review-compose Skillを使って、https://github.com/owner/repository/pull/123 を理解するための
|
|
305
|
-
Walkthrough / Structureをおすすめの構成で作ってください。
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
composerはcommit済みcodeと周辺contextを調査します。PR全体のdefault compositionでは、変更を理解するために
|
|
309
|
-
必要な実在fileの責務と具体的な依存を示すファイル地図Structureを必ず含め、その制約内で総理解コストを
|
|
310
|
-
最小化します。小さなPRなら1 Node / 0 Edgeの地図と直接code readingだけで構いません。意味のあるbehavior
|
|
311
|
-
changeには原則Walkthroughを選び、ownership、state authority、contract等の関係理解に独立した価値があれば、
|
|
312
|
-
ファイル地図とは別の通常Structureも選びます。Walkthroughと通常Structureを常に一組にせず、固定の3 Artifact、
|
|
313
|
-
overview、section template、reading orderも要求しません。recommendation-onlyでは必須地図も未作成briefに留まり、
|
|
314
|
-
権限やtransportが足りなければ未達理由を返します。作成後は通常のAgent responseで、構成理由、推奨される最初の入口、作成または
|
|
315
|
-
更新したURI、ファイル地図に含めた/除外した範囲、意図的に直接code readingへ残した論点を返します。このresponseとcomposer内部の理解単位やbriefは
|
|
316
|
-
永続Artifactではなく、厳密なreview完了planでもありません。ReviewerはWalkthrough、Structure、codeのどこからでも
|
|
317
|
-
入り直せます。
|
|
318
|
-
|
|
319
|
-
composerは各producerをcanonical Skill名で、Codex / Claude Codeそれぞれのnative Skill mechanismからloadします。
|
|
320
|
-
共有Skill本文は`$name`や`/name`をruntime protocolとして扱わず、producerがsessionで利用不能ならArtifact操作前に
|
|
321
|
-
停止します。briefのsubject、review question、purpose / behavior boundary、scope、inclusion / exclusion、emphasisは
|
|
322
|
-
調査範囲のauthorityですが、`mustEstablish`、suggested origin / relationship / invariantなどの実装assertionはproducerが
|
|
323
|
-
commit済みsourceとtestから独立に検証するcandidate claimです。briefやvalidなsource rangeだけで事実とはみなしません。
|
|
324
|
-
|
|
325
|
-
Walkthroughを一件作る場合は、説明したいbounded subjectと必要な作成指示をセッションへ伝えて
|
|
326
|
-
`rvw-walkthrough` Skillを直接使います。Skillは上位composerを含む明示されたbriefのsubject、review question、
|
|
327
|
-
scope、inclusion / exclusion、emphasisを優先し、未指定の作成判断だけを既定guideで補います。PR全体のArtifact数や
|
|
328
|
-
Structureとの役割分担を決めず、そのsubjectに適した一つのordered pathをsource anchor付きreferenceで検証して
|
|
329
|
-
publishします。`mustEstablish`その他の実装assertionはauthorityとして受け入れずsourceから再検証し、essential claimが
|
|
330
|
-
unsupported / contradictedなら無理なanchorを付けずcallerへ返します。ordered pathが適切でなければStructureを提案する
|
|
331
|
-
representation rejectionは残ります。
|
|
332
|
-
Walkthrough全体へのコメントから説明を改善する場合は、現在内容を取得して同じURIを更新し、重複した
|
|
333
|
-
「改訂版」を追加しません。
|
|
334
|
-
|
|
335
|
-
Structureを作る場合は、通常Structureかファイル地図か、behavior / review question、roleに合うorigin候補、scope、含める/除外する関係と、必要なら伝えたいthesis、
|
|
336
|
-
最初に見るNode、connectedなexact factual relation setのprimary backbone、regionを伝えて`rvw-structure` Skillを使います。
|
|
337
|
-
Skillは上位composerを含む明示briefを調査boundaryのauthorityとして一つのbounded mapだけを扱い、suggested
|
|
338
|
-
originやrelationを実際のcommit済みcodeから再検証して、labelではなくclaimのidentityとしてstable IDを割り当てます。
|
|
339
|
-
通常Structureはresponsibility等をcode-level Nodeへ分けられます。ファイル地図は同一pathを分割せず、複数fileを
|
|
340
|
-
まとめず、全Nodeをfile-level anchorへ置きます。独立領域を架空Edgeで結ばず、必要ならcomposerが別地図を判断します。
|
|
341
|
-
PR全体の構成や別behaviorのArtifactは自律的に増やしません。順序とprose自体が本質ならWalkthroughを提案し、
|
|
342
|
-
Structureを一本道のstepperにせず、genericな静的architecture inventoryも作らないrepresentation rejectionは残ります。
|
|
343
|
-
producer authoringの実地評価は
|
|
344
|
-
[Structure producer evaluation](docs/structure-producer-evaluation.md)、[Walkthrough producer evaluation](docs/walkthrough-producer-evaluation.md)、composition判断のfresh-context評価は
|
|
345
|
-
[Review composition decision evaluation](docs/review-composition-evaluation.md)に記録しています。
|
|
346
|
-
|
|
347
|
-
新規root commentとreplyを継続監視する場合は`rvw-watch-comments` Skillを起動します。全登録PRを
|
|
348
|
-
同梱driverから約1秒間隔で監視し、起動前の既存未解決commentは処理しません。自分のPRのfix-and-pushを起動taskへ
|
|
349
|
-
明示許可した場合だけ、live PR authorと起動時のGitHub loginが一致するPRで修正・test・commit・pushを
|
|
350
|
-
行えます。fork PRではlive head repository、branch、OIDとpush先も一致させます。他人またはauthor不明の
|
|
351
|
-
PRは常にcode/GitHub read-onlyで調査します。同梱driverがcursor resumeとRFC 7464 ingestを行い、
|
|
352
|
-
batchをclaimすると各threadへ`🔎 確認中です…`をAgent往復なしに即時返信し、
|
|
353
|
-
完了時は同じreplyを最終結果へ編集します。Skill同梱のtask-state toolがrepository外のSQLiteへcursor、
|
|
354
|
-
queue、retry、batch内のthread単位status post、自己返信抑制をtransactionalに保存します。同じthreadへ
|
|
355
|
-
後から返信が追加された場合は新しいstatus postを返信するため、以前の回答は書き換えません。親taskは
|
|
356
|
-
起動前にsubagent枠を予約し、driverはその枠数までだけbatchをclaimします。acknowledge済みbatchは大小や
|
|
357
|
-
変更有無にかかわらず同じscheduling turnでfresh subagentへ委譲し、親taskは直接処理しません。lease解放後の
|
|
358
|
-
同一PR follow-upと期限到達したretryはdriverがtask stateから自動的に再開します。
|
|
359
|
-
調査結果、実装内容、test結果が具体的なcodeに基づく場合、Skillは最終replyからexact commitの有用な
|
|
360
|
-
line rangeへ`rvw-ref:` linkを付け、reviewerが根拠へ直接移動できるようにします。
|
|
361
|
-
|
|
362
|
-
5つのSkillはrvwのapplication SQLiteを直接読まず、rvwへの操作には`rvw protocol --json`、`rvw agent status --json`、
|
|
363
|
-
`rvw comment ... --json`、
|
|
364
|
-
`rvw walkthrough list/get/update/publish/delete ... --json`、
|
|
365
|
-
`rvw structure list/preview/get/update/publish/delete ... --json`、`rvw pr sync --stdin --json`という既存contractだけを
|
|
366
|
-
利用します。既存Walkthrough URIが明示されない場合は`walkthrough list`で候補を発見し、titleだけで同一subjectと
|
|
367
|
-
判断せず`walkthrough get`で現在内容を確認します。composerのための永続的なreview planや新しいArtifactはありません。
|
|
368
|
-
ローカルDBやrepositoryへアクセスできないCloud Agentは対象外です。
|
|
369
|
-
|
|
370
|
-
## 復旧
|
|
371
|
-
|
|
372
|
-
まず`rvw doctor --json`でGit、GitHub CLI認証、現在のrepository、DB pathを確認してください。初回登録や
|
|
373
|
-
同期だけが失敗する場合は`gh auth status`とnetworkを確認します。登録済みPRはofflineでも開けます。
|
|
374
|
-
|
|
375
|
-
force-push前に観測したhead commitはimmutable refで保持するため、旧コメントの参照元として読めます。Git refとSQLiteの不整合は部分修復せず、削除件数を確認後、正式な復旧手段としてresetします。
|
|
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**。初回取得と同期にはネット接続が必要です。
|
|
376
71
|
|
|
377
72
|
```bash
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
resetは対象PRのコメント、返信、コメント対象、コメント投稿、Walkthroughのcode reference、Structure、
|
|
383
|
-
`refs/rvw/pr/<number>/...`を削除し、現在のGitHub状態からcacheとhead refを再構築します。
|
|
384
|
-
バックアップや旧コメント移行は行わず、元に戻せません。
|
|
73
|
+
# 未設定の場合に実行
|
|
74
|
+
gh auth login
|
|
75
|
+
gh auth setup-git
|
|
385
76
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
機械向けコマンドはstdoutへJSONだけを出します。長時間の`comment watch`だけはRFC 7464 JSON text
|
|
389
|
-
sequenceを出します。
|
|
77
|
+
# 同名の別パッケージと区別するため、scopeを含める
|
|
78
|
+
npm install --global @a9n-shoji/rvw
|
|
390
79
|
|
|
391
|
-
|
|
392
|
-
rvw
|
|
393
|
-
rvw
|
|
394
|
-
rvw agent status --json
|
|
395
|
-
rvw pr refresh <PR_REF> --json
|
|
396
|
-
rvw comment create --stdin --json
|
|
397
|
-
rvw comment list <PR_REF> --state unresolved --limit 50 --offset 0 --json
|
|
398
|
-
rvw comment watch [--after <CURSOR>] [--interval 10] --json-seq
|
|
399
|
-
rvw comment watch-task activate --task-id <UUID> --json
|
|
400
|
-
rvw comment watch-task verify --task-id <UUID> --generation <N> --json
|
|
401
|
-
rvw comment watch-task reserve-write --task-id <UUID> --generation <N> --lease-id <UUID> --write-key <OWNER/REPOSITORY> --json
|
|
402
|
-
rvw comment watch-task release-write --task-id <UUID> --generation <N> --lease-id <UUID> --json
|
|
403
|
-
rvw comment get <COMMENT_URI> --json
|
|
404
|
-
rvw comment get <COMMENT_URI> --include-pr-body --json
|
|
405
|
-
rvw comment get <COMMENT_URI> --live --json
|
|
406
|
-
rvw comment reply <COMMENT_URI> --stdin --json
|
|
407
|
-
rvw comment edit <COMMENT_URI> --post <POST_ID> --stdin --json
|
|
408
|
-
rvw comment resolve <COMMENT_URI> --json
|
|
409
|
-
rvw comment reopen <COMMENT_URI> --json
|
|
410
|
-
rvw walkthrough list <PR_REF> --json [--limit 50] [--offset 0]
|
|
411
|
-
rvw walkthrough get <WALKTHROUGH_URI> --json
|
|
412
|
-
rvw walkthrough publish --stdin --json
|
|
413
|
-
rvw walkthrough update <WALKTHROUGH_URI> --stdin --json
|
|
414
|
-
rvw walkthrough delete <WALKTHROUGH_URI> --json
|
|
415
|
-
rvw walkthrough delete <WALKTHROUGH_URI> --yes --json
|
|
416
|
-
rvw pr sync --stdin --json [--repository <PATH>] [--allow-untracked]
|
|
417
|
-
rvw pr attach <PR_REF> --repository <PATH> --json
|
|
80
|
+
cd /path/to/base-repository-clone
|
|
81
|
+
rvw doctor
|
|
82
|
+
rvw open https://github.com/owner/repository/pull/123
|
|
418
83
|
```
|
|
419
84
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
`comment watch-task`は同じrvw databaseを監視する外部taskのgenerationを管理します。新taskだけが
|
|
425
|
-
`activate`し、再開taskは保存済みgenerationを`verify`します。comment watch cursorは引き続きevent位置
|
|
426
|
-
だけを表し、consumer ownershipとは独立です。repository writer reservationもrvw databaseで共有され、
|
|
427
|
-
active generationの検証と取得が同じtransactionで行われます。旧generationの取得済みreservationは
|
|
428
|
-
releaseされるまで新generationをブロックします。
|
|
429
|
-
|
|
430
|
-
`comment create`は登録済みPR、通常のcomment target、本文、任意のAgent名、投稿単位code referenceをstdin JSONで受け取り、
|
|
431
|
-
未解決のroot threadを一件作成します。repository targetはexact commit、path、任意のinclusive line rangeを
|
|
432
|
-
指定し、viewerと同じ文書・行検証を通ります。作成してもbrowserを開かず、tabやcommit選択を変更しません。
|
|
433
|
-
同梱Skillは具体的なcode上のclaimにnavigation価値のある根拠がある場合、Walkthroughと同じくtyped
|
|
434
|
-
referenceを既定で使います。
|
|
85
|
+
`/path/to/base-repository-clone` とPRのURLは、自分の対象に置き換えてください。
|
|
86
|
+
`rvw doctor` はGit・GitHub認証・リポジトリ・保存先への書き込みなどを診断します。
|
|
87
|
+
現在のブランチに対応するPRを初めて開くときは `rvw open` だけでも指定できます。
|
|
88
|
+
登録済みPRを確実に選ぶにはURLを指定してください。
|
|
435
89
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
続けて取得し、完全なthreadは`comment get`で読みます。listと通常の`comment get`はPR本文を省略し、
|
|
439
|
-
本文が必要な場合だけ`comment get --include-pr-body`で最新の同期済み本文を取得します。複数threadを
|
|
440
|
-
扱うAgentは同じPR本文を一度だけ取得し、そのPRの全threadで共有します。
|
|
441
|
-
`comment get`は最新PRのtitle、base/head、serviceが導出したplacement、対象commitのbounded source
|
|
442
|
-
excerptを返すため、AgentはOID比較でOutdatedを推測しません。
|
|
90
|
+
通常は `http://127.0.0.1:43117` でブラウザが開き、端末に制御が戻ります。
|
|
91
|
+
最後のrvwタブを閉じると、少し待ってサーバーも終了します。
|
|
443
92
|
|
|
444
|
-
|
|
445
|
-
canonical `rvw://walkthrough/<uuid>`、title、source OID、author、作成日時だけを返します。古いsource OIDの
|
|
446
|
-
項目も含み、本文、reference、diagram bindingは`walkthrough get`で取得します。最短のdiscovery / retrievalは
|
|
447
|
-
`rvw walkthrough list <PR_REF> --json`の結果からrefを選び、
|
|
448
|
-
`rvw walkthrough get <LIST_RESULT_REF> --json`へそのまま渡す流れです。
|
|
93
|
+
## 最初のレビューを進める
|
|
449
94
|
|
|
450
|
-
|
|
95
|
+
### 差分からコードベース全体を読む
|
|
451
96
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
97
|
+
1. 開いた `Pull Request.md` で変更の目的を確認します。
|
|
98
|
+
2. 上部の **対象commit** で、PR全体または確認したいコミットを選びます。
|
|
99
|
+
3. 左のファイル一覧から一つ選び、**変更** で差分、**全文** でその時点のコードを読みます。
|
|
100
|
+
4. **変更のないファイルも表示** をオンにし、呼び出し元やテストも開きます。`Cmd` / `Ctrl`+クリックすると右ペインに並べられます。
|
|
101
|
+
5. 疑問のあるコード行にマウスを置き、行番号横の **+** からコメントします。変更のない行にもコメントでき、複数行は+からドラッグして選べます。
|
|
457
102
|
|
|
458
|
-
|
|
103
|
+
ファイル一覧や検索では、選択範囲の最後のコミット時点のリポジトリ全体を辿れます。表示するのはGitにコミットされたコードで、作業中の未コミット変更ではありません。
|
|
104
|
+
ここまでにAgentやSkillは必要ありません。
|
|
459
105
|
|
|
460
|
-
|
|
106
|
+
### Agentの説明から読み始める
|
|
461
107
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
同じreleaseで更新します。SQLite schema、data directory内layout、`src/` moduleはpublic APIではなく、
|
|
465
|
-
直接操作・importする前提を置きません。詳しくは[0.x compatibility](docs/compatibility.md)を参照してください。
|
|
466
|
-
最初のpublic protocolはversion 1とし、公開後はversion番号を再利用しません。
|
|
467
|
-
|
|
468
|
-
## Issues and contributions
|
|
469
|
-
|
|
470
|
-
bug reportとfeature suggestionは[GitHub Issues](https://github.com/a9n-shoji/rvw/issues)で歓迎します。
|
|
471
|
-
個人で保守しているため応答や修正時期は保証せず、Pull Requestは原則として募集していません。詳しくは
|
|
472
|
-
[Contributing](CONTRIBUTING.md)を参照してください。security issueはpublic Issueへ書かず、
|
|
473
|
-
[Security policy](SECURITY.md)の案内に従ってください。
|
|
474
|
-
|
|
475
|
-
maintainer向けのversion、tag、npm staged publishing、障害対応手順は
|
|
476
|
-
[npm release runbook](docs/releasing.md)にまとめています。
|
|
477
|
-
|
|
478
|
-
## 開発
|
|
479
|
-
|
|
480
|
-
source checkoutでは、GitHub接続や保存済みPRを用意せずにrepository規模のviewerを確認できます。
|
|
108
|
+
同じマシンで動き、対象リポジトリとrvw CLIを使えるCodexまたはClaude Codeを用意します。
|
|
109
|
+
使う方のSkillをインストールしてください。
|
|
481
110
|
|
|
482
111
|
```bash
|
|
483
|
-
|
|
484
|
-
|
|
112
|
+
# Codexを使う場合
|
|
113
|
+
rvw skill install codex
|
|
485
114
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
115
|
+
# Claude Codeを使う場合
|
|
116
|
+
rvw skill install claude
|
|
117
|
+
rvw skill status
|
|
118
|
+
```
|
|
490
119
|
|
|
491
|
-
|
|
492
|
-
|
|
120
|
+
Agent側でSkillが読み込まれていることを確認し、`rvw-review-compose`を選んでPRのURLだけを渡します。
|
|
121
|
+
`rvw-review-compose`はPRと周辺コードを調べ、どこを説明し、どこをコードで直接読むかを考えて、
|
|
122
|
+
必要なWalkthroughやStructureを作成します。
|
|
493
123
|
|
|
494
|
-
```
|
|
495
|
-
|
|
124
|
+
```text
|
|
125
|
+
https://github.com/owner/repository/pull/123
|
|
496
126
|
```
|
|
497
127
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
128
|
+
作成後は、Agentが案内した説明を左の **ウォークスルー** または **Structure** から開きます。
|
|
129
|
+
気になる説明のリンクや図のコード参照を `Cmd` / `Ctrl`+クリックし、横のコードで条件や呼び出し先を確かめてください。
|
|
130
|
+
小さな変更では、ファイルの関係図とコードを直接読む構成になることもあります。WalkthroughとStructureが常に一組で作られるわけではありません。
|
|
501
131
|
|
|
502
|
-
|
|
503
|
-
pnpm install --frozen-lockfile
|
|
504
|
-
pnpm check
|
|
505
|
-
pnpm test
|
|
506
|
-
pnpm test:dogfood
|
|
507
|
-
pnpm test:e2e
|
|
508
|
-
pnpm build
|
|
509
|
-
pnpm test:package
|
|
510
|
-
```
|
|
132
|
+
コメントする前に、外部Agentの別タスクで監視を起動します。
|
|
511
133
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
134
|
+
```text
|
|
135
|
+
rvw-watch-comments Skillを使って、rvwの新しいコメントと返信を監視してください。
|
|
136
|
+
今回は調査とrvwへの返信だけを行い、コード変更・commit・pushはしないでください。
|
|
137
|
+
監視を開始できたら知らせてください。
|
|
138
|
+
```
|
|
139
|
+
|
|
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` + ホイール | 図の上。ホイールだけなら図を移動 |
|