@a9n-shoji/rvw 0.5.0 → 0.7.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 (33) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +162 -42
  3. package/dist/cli.mjs +898 -87
  4. package/dist/cli.mjs.map +4 -4
  5. package/dist/web/assets/{DocumentViewer-CWTnSlpG.js → DocumentViewer-D_PY7MU3.js} +2 -2
  6. package/dist/web/assets/StructureViewer-CXtsUfYG.js +7 -0
  7. package/dist/web/assets/{WalkthroughPanel-D2KqSIf9.js → WalkthroughPanel-DvyIFY5z.js} +1 -1
  8. package/dist/web/assets/{WalkthroughViewer-BDb-99Qk.js → WalkthroughViewer-y-grnBAx.js} +1 -1
  9. package/dist/web/assets/index-CbUV8NfH.css +1 -0
  10. package/dist/web/assets/index-zyXQjX9Z.js +11 -0
  11. package/dist/web/index.html +3 -3
  12. package/migrations/018_comment_watch_tasks.sql +10 -0
  13. package/migrations/019_comment_watch_write_reservations.sql +11 -0
  14. package/migrations/020_structure_retired_region_ids.sql +6 -0
  15. package/package.json +3 -1
  16. package/skills/rvw/SKILL.md +6 -2
  17. package/skills/rvw-review-compose/SKILL.md +226 -0
  18. package/skills/rvw-review-compose/agents/openai.yaml +4 -0
  19. package/skills/rvw-review-compose/references/review-composition.md +463 -0
  20. package/skills/rvw-structure/SKILL.md +124 -37
  21. package/skills/rvw-structure/agents/openai.yaml +2 -2
  22. package/skills/rvw-structure/references/structure-authoring.md +306 -75
  23. package/skills/rvw-walkthrough/SKILL.md +77 -15
  24. package/skills/rvw-walkthrough/agents/openai.yaml +2 -2
  25. package/skills/rvw-walkthrough/references/walkthrough-authoring.md +168 -30
  26. package/skills/rvw-watch-comments/SKILL.md +58 -13
  27. package/skills/rvw-watch-comments/scripts/auto-ack.mjs +67 -9
  28. package/skills/rvw-watch-comments/scripts/preflight.mjs +2 -1
  29. package/skills/rvw-watch-comments/scripts/watch-driver.mjs +47 -1
  30. package/skills/rvw-watch-comments/scripts/watch-state.mjs +376 -42
  31. package/dist/web/assets/StructureViewer-RiN3cqvU.js +0 -5
  32. package/dist/web/assets/index-CUAdTtdU.css +0 -1
  33. package/dist/web/assets/index-D0LsMDeu.js +0 -11
package/CHANGELOG.md CHANGED
@@ -5,6 +5,73 @@
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.7.0] - 2026-09-08
9
+
10
+ ### Changed
11
+
12
+ - PR全体の`rvw-review-compose` defaultを、実在fileを1 Nodeずつsource anchorへ結ぶ必須の
13
+ file-map Structureと、必要に応じたWalkthrough・通常Structure・直接code readingのadaptive compositionへ変更
14
+ - `rvw-walkthrough`を具体的な問いからcode確認とmental-model更新を繰り返す読解pathとして明確化し、
15
+ interaction、state、branch等を文章から再構築させる場合は問いに合うMermaid図を標準的に選ぶauthoring guidanceを追加
16
+ - `rvw-structure`に、bounded behavior mapとは別のPR-scoped file responsibility / dependency map用途を追加。
17
+ generic architecture inventory、新しいArtifact kind、schema、Viewer modeは追加しない
18
+
19
+ ## [0.6.0] - 2026-09-07
20
+
21
+ ### Added
22
+
23
+ - 通知permissionの状態表示と、Agentのcomment更新経路を介さずbrowser / OS通知を確認できるテスト通知
24
+ - PR全体または明示されたreview subjectを調査し、Walkthrough、Structure、直接code readingから必要最小限の
25
+ 構成を選ぶCodex / Claude Code共通のbundled `rvw-review-compose` Skill
26
+ - Structureへthesis、attention start、optionalなconnected exact-Edge primary backbone、stable IDとresponsibility
27
+ summaryを持つunorderedなnamed comprehension regionからなるoptionalなauthorial `presentation`を追加。raw座標を保存せず、spatial organizerが
28
+ ある時だけcanonical配置をauthoringし、start-onlyではtopology配置のままGuide、focus、visual cue、exportへ
29
+ 説明意図を伝えられる
30
+ - Structure Viewerへ折り畳み可能なGuide、Home / Backによるfocus navigation、clickableなRegion framing、
31
+ backbone salienceとfocus-hop attentionの分離、complete extentを保つsemantic zoomを追加
32
+ - protocol version 5と`structure.presentation` capability
33
+
34
+ ### Changed
35
+
36
+ - `rvw open`の新規runtimeを既定で`127.0.0.1:43117`へ固定し、起動をまたいでorigin-scopedな通知permissionと
37
+ 設定を維持。空きportの自動選択は明示的な`--port 0`へ変更
38
+ - comment watcherのauthorityをshared rvw database上のgenerationとしてdurable化し、
39
+ `comment.watchOwnership` capabilityでpreflightする。repository単位のwriter reservationで異なるtask / processの
40
+ Git writerを直列化し、generationを持たないlegacy task stateは再初期化と明示的なactivateを必須に変更
41
+ - `rvw-walkthrough`と`rvw-structure`を一つのbounded Artifactを作るproducerとして明確化し、上位composerの
42
+ subject、review question、scope、inclusion / exclusionを優先しながら、`mustEstablish`、suggested origin / relation /
43
+ invariantはcommit済みsourceで独立に検証し、各representationの拒否境界を維持
44
+ - review composerからproducerをcanonical名と各hostのnative Skill mechanismでloadし、Codex / Claude Code固有の
45
+ user-facing invocation記法を共有runtime contractにしないfail-closedな委譲へ変更
46
+ - Structure preview / publish / updateはrequired nullableな`presentation`を受け取る。旧`graph_json`はread時に
47
+ `null`へnormalizeし、content rewriteは不要。migration 020は削除済みRegion IDのtombstoneだけを追加する
48
+ - Viewer / exportで共有するdeterministicなobstacle-aware relation routeとstable label placementへ変更し、
49
+ exact endpointのvisible boundary portへ接続する。non-endpoint NodeへのEdge貫通とfocus変更によるlabel jumpを防ぎ、
50
+ shared / near-coincident corridorを持つdistinct visible relation(parallel / reciprocalを含む)の実質的lane分離と
51
+ normal-detail labelの相互非重複を保証
52
+ - Structure presentationのRegion配列と各`nodeIds`を順序を持たないsetとして扱い、stable IDでcanonical化する
53
+ - Regionを持つGraphのcanonical projectionはRegion全体をcompound chunkとして先に配置し、direct factual
54
+ adjacency、internal crossing、boundary affinityを使って全体extentとEdge routeを抑える。backbone-onlyの
55
+ projectionは従来のderived bandを維持する
56
+ - partial Region membershipで残るneutral Contextをfactual connected component単位のrenderer-owned compoundとして
57
+ boundedに折り畳み、chain / bridge / fan-outをauthored Regionの全周へglobal packingすることで、12〜50 Nodeでも
58
+ 一方向へ伸びず、Regionとexact boundary relationの近くへ配置される
59
+ - Structure内のNode / Region / Context / exact Relation / source移動をbrowser historyへ統合し、Back / Forwardで
60
+ view mode、focus、hop depth、lens、cameraを復元する
61
+ - Region frameをpane-localなchunk lensとして保持し、focusを変えずmember / internal relationをfull relevanceで
62
+ 表示。Home / Node focus / depth変更で解除し、Backでfocus / depth / cameraと一緒に復元
63
+ - 長いprimary backboneのderived bandをdeterministicなserpentine複数行へ折り返し、region envelopeの衝突を
64
+ 避けながらcanonical mapの縦方向を活用。row / layerを新しいprotocol semanticsにはしない
65
+ - bundled Skillsのprotocol preflightをversion 5へ更新
66
+
67
+ ### Fixed
68
+
69
+ - 最後のviewerを閉じて再起動した際、random portによるorigin変更でAgentコメント通知が事実上リセットされる問題
70
+ - superseded watcherがauthorityを再取得できるrace、resolved / missing threadのhistorical eventがactionable workとして
71
+ 再処理される問題、別task / processのrepository writerが重複実行される問題
72
+ - Structureのfile逆引きをCmd / Ctrl+Clickした際に修飾キーが失われ、右ペインではなく左ペインへ開く問題
73
+ - 2-hop表示で遠距離のbackbone Node / Edgeだけが強いopacityを保ち、focusからの距離層を判別できない問題
74
+
8
75
  ## [0.5.0] - 2026-09-03
9
76
 
10
77
  ### Added
package/README.md CHANGED
@@ -6,8 +6,8 @@ repository全体を行き来し、PR本文、変更されたコード、変更
6
6
  Agentが実装やarchitectureの説明を提示した場合は、説明を独立したtabに残したまま、inline linkや
7
7
  Mermaid図から人間が選んだcodeだけを開けます。文書は最大2ペインへ並べられるため、
8
8
  説明と実装、callerとdefinition、Markdown previewとcodeを同時に読めます。
9
- 順序より関係が重要なsubjectは、Agentがsource anchor付きStructureとして提示でき、同じworkspaceで
10
- nodeとrelationを自由に辿れます。
9
+ 関係を同時に見渡したいsubjectは、Agentがsource anchorとoptionalなauthorial presentation付きStructureとして
10
+ 提示でき、意図されたspatial explanationを手がかりに同じworkspaceでnodeとrelationを自由に辿れます。
11
11
 
12
12
  diffは変更を見つける入口であり、レビュー対象の境界ではありません。人間が結果を読み、影響を追い、
13
13
  次に直すべきことを判断します。Codex / Claude Codeは、その判断を同梱された共通Skillと`rvw` CLI
@@ -67,20 +67,27 @@ rvw open https://github.com/owner/repository/pull/123
67
67
  rvw open
68
68
  ```
69
69
 
70
- serverは`127.0.0.1`の空きportだけへbindします。同じdatabaseで既にrvwが動いていれば、通常の
70
+ serverは`127.0.0.1:43117`へbindします。同じdatabaseで既にrvwが動いていれば、通常の
71
71
  `rvw open`はそのruntimeへPRを追加し、同じoriginで新しいtabを開きます。二つ目のserverやdatabase接続は
72
72
  起動しません。最初の`rvw open`だけがbackground runtimeを開始し、最初のtab接続を確認してから端末へ
73
73
  制御を返します。最後のtabを閉じると短い猶予後に停止し、リロード中や別tabが残っている間は停止しません。
74
- 異なる`RVW_DATABASE_PATH`を指定したruntimeは独立して起動できます。
74
+ 固定originにより、Browser NotificationのpermissionとAgentコメント通知設定は通常起動をまたいで維持されます。
75
+ 空きportを自動選択する場合は`--port 0`を明示します。この場合は起動ごとにoriginが変わり得るため、通知permissionと
76
+ browser storageは引き継がれません。異なる`RVW_DATABASE_PATH`のruntimeを同時に起動する場合は、二つ目へ別の
77
+ 固定`--port`または`--port 0`を指定します。
75
78
 
76
79
  serverを端末に接続したままにする場合は`rvw open --foreground`を使います。同じdatabaseのruntimeが
77
80
  既にあればforeground commandは競合を明示します。ブラウザだけを自動で開かない場合は
78
81
  `rvw open --no-open`を使います。active runtimeがあればURLを表示して再利用し、なければCtrl+Cまで
79
82
  signal管理のserverを起動します。再利用時もCLIがCtrl+Cまでviewer leaseを保持するため、表示したURLが
80
- 終了猶予中に無効になることはありません。初回の`--port`は尊重し、active runtimeと異なるportを指定した場合は
83
+ 終了猶予中に無効になることはありません。初回の`--port`は尊重し、省略時はactive runtimeのoriginを再利用します。
84
+ active runtimeと異なるportを明示した場合は
81
85
  二つ目を起動せず競合を返します。一度登録したPRは、完全URLまたは全登録PRで一意な番号を指定すれば
82
86
  repository外のdirectoryからも開けます。
83
87
 
88
+ 最上部の`...` menuでは、Browser Notificationのpermission状態を確認し、Agent更新と独立したテスト通知を送れます。
89
+ `Agentのコメントを通知`を有効にすると、初回読込後にAgentが追加・更新した最終回答を通知します。
90
+
84
91
  ## 変更を理解する
85
92
 
86
93
  初回openでPRのcommit履歴と最新PR本文を取得します。以後は保持済み状態を先に表示し、viewer起動後または最上部の`...` menuにある`GitHubと同期`で最新状態を取得します。独自の版取り込み操作はありません。
@@ -121,7 +128,8 @@ viewerはこの流れのために次を提供します。
121
128
 
122
129
  ## Agentの説明を人間の順序で検証する
123
130
 
124
- 外部Agentは`rvw-walkthrough` SkillとCLIを使い、実装説明を一つのsource commitをanchorとしてrvwへ提示できます。
131
+ 外部Agentは単一Artifact producerである`rvw-walkthrough` SkillとCLIを使い、一つのbounded subjectの
132
+ 実装説明を一つのsource commitをanchorとしてrvwへ提示できます。
125
133
 
126
134
  ```bash
127
135
  rvw walkthrough publish --stdin --json
@@ -144,12 +152,21 @@ lineを誤適用せずlatest全文を表示します。fallbackでは、同じfi
144
152
 
145
153
  Walkthrough本文のinline referenceとMermaid node linkは維持しますが、同じ参照を横や下へ列挙する
146
154
  `Code references` indexとsidebar上の参照件数は表示しません。そのため、本文linkと、本文中に実在する
147
- flowchart/classDiagram nodeへのMermaid bindingのどちらからも使われないreferenceはpublish/update時に
155
+ 対応済みnode-like elementへのMermaid bindingのどちらからも使われないreferenceはpublish/update時に
148
156
  拒否します。存在しないnode名だけをbindingへ宣言しても使用済みにはなりません。
149
157
 
150
158
  Mermaidの描画はflowchartだけに限定せず、class、sequence、state、ERなどbundled Mermaidが対応する
151
- 記法を受け付けます。code referenceとの要素bindingはflowchartclass diagramをE2Eで保証し、
152
- SVG上の要素構造が異なる他の記法は描画とinteractionを分けて扱います。
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成功だけで意味の正しさは保証されません。
153
170
 
154
171
  これはin-app AI chatではありません。説明と図はAgentのclaimで、commit済みcodeが検証対象の正本です。
155
172
  Walkthroughにはローカルな版履歴を持たせません。説明全体へのfeedbackはstableなWalkthrough IDへ残るため、
@@ -159,9 +176,16 @@ Agentは現在内容を読み、同じ`rvw://walkthrough/<uuid>`を更新して
159
176
 
160
177
  ## codeの関係を空間として検証する
161
178
 
162
- 外部Agentは`rvw-structure` SkillとCLIを使い、PRに関係するboundedなbehaviorをfactualなcode entrypointから
163
- dependency、contract、side effectへ辿る空間として提示できます。必須の読み順を持つ説明はWalkthroughです。
164
- entrypointを置けない静的なarchitecture/責務inventoryはStructureへ広げません。
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へは広げません。
165
189
 
166
190
  ```bash
167
191
  rvw structure preview --stdin --json
@@ -171,18 +195,54 @@ rvw structure update rvw://structure/<uuid> --stdin --json
171
195
  rvw structure delete rvw://structure/<uuid> --json
172
196
  ```
173
197
 
174
- Structureは一つのexact `sourceOid`、宣言されたtitle / scope、entrypoint、stableなNode / Edge IDからなります。
198
+ Structureは一つのexact `sourceOid`、宣言されたtitle / scope、roleに合うorigin、stableなNode / Edge ID、required nullableな
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を作りません。
175
203
  Nodeは0または1件、Edgeは0件以上のsource anchorを持ち、rvwはcommit、UTF-8 path、line pair、endpoint、
176
- focus、重複ID、sizeを保存前に検証します。publish / updateはbrowserやnavigationを操作しません。
177
- publish / update前には同じgraph contentをpreviewし、canonical layout diagnosticsとauthoring warningから
204
+ 重複ID、presentation参照とmembership、sizeを保存前に検証します。publish / updateはbrowserやnavigationを操作しません。
205
+ publish / update前には同じgraph contentをpreviewし、presentationに依存しないtopology diagnosticsとauthoring warningから
178
206
  origin、granularity、behavior / subject boundaryを再確認できます。warningは保存を拒否せず、graphを自動変更しません。
179
207
 
180
- viewerではfocusがある時に1-hop / 2-hopへ絞り、Allでは全Node / Edgeを表示します。relationを次数やIDで
181
- 暗黙に隠さず、pan、zoom、fit、node drag、layout resetで探索できます。通常clickでexact sourceを左、
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を左、
182
232
  `Cmd` / `Ctrl`+clickで右ペインへ開きます。globalなcommit選択は
183
- 変えません。node位置とviewportは同じbrowser sessionで保持しますが、SQLiteやAgent protocolへ座標を
184
- 保存しません。同じsubjectの更新は同じURIを完全置換し、存続するIDの位置を保ちます。別subjectは新しい
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は新しい
185
242
  Structureとしてpublishします。
243
+ Node / Edge / Regionのstable IDは同じclaim / comprehension chunkが存続する間だけ維持し、一度削除したIDを
244
+ 別の意味で再利用しません。rvwは三種類すべてのretired IDをtombstoneとして保持し、後のupdateでの再導入を
245
+ 拒否します。存続中のIDが意味ごと差し替えられたかは機械判定せず、producerが新しいIDを割り当てます。
186
246
 
187
247
  Structure headerの`Export`から、現在のNode配置を保った図全体をstandalone SVGまたは2倍基準のPNGとして
188
248
  保存できます。focusや1-hop / 2-hopで画面上に絞り込んでいても、出力には全Node、全Relation、全Edge labelが
@@ -190,11 +250,11 @@ Structure headerの`Export`から、現在のNode配置を保った図全体をs
190
250
 
191
251
  ## Codex / Claude Code Skills
192
252
 
193
- アプリ本体からローカルSkillをインストールします。一度のinstallで、コメント処理用の`rvw`、
194
- Walkthroughのpublish・改善・削除用の`rvw-walkthrough`、Structureのpublish・置換・削除用の
195
- `rvw-structure`、新規コメント監視用の
196
- `rvw-watch-comments`が入ります。Skill名と内容はCodex / Claude Codeで共通で、
197
- platform指定は配置先だけを選びます。
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
+ 配置先だけを選びます。
198
258
 
199
259
  ```bash
200
260
  rvw skill install codex
@@ -204,8 +264,8 @@ rvw skill status
204
264
 
205
265
  既定の配置先は次です。
206
266
 
207
- - Codex: `~/.agents/skills/rvw`、`~/.agents/skills/rvw-walkthrough`、`~/.agents/skills/rvw-structure`、`~/.agents/skills/rvw-watch-comments`
208
- - Claude Code: `~/.claude/skills/rvw`、`~/.claude/skills/rvw-walkthrough`、`~/.claude/skills/rvw-structure`、`~/.claude/skills/rvw-watch-comments`
267
+ - Codex: `~/.agents/skills/rvw`、`~/.agents/skills/rvw-review-compose`、`~/.agents/skills/rvw-walkthrough`、`~/.agents/skills/rvw-structure`、`~/.agents/skills/rvw-watch-comments`
268
+ - Claude Code: `~/.claude/skills/rvw`、`~/.claude/skills/rvw-review-compose`、`~/.claude/skills/rvw-walkthrough`、`~/.claude/skills/rvw-structure`、`~/.claude/skills/rvw-watch-comments`
209
269
 
210
270
  rvwがインストールしたSkillには同梱版digestを記録します。`skill status --json`と`doctor --json`は、
211
271
  管理済みの旧版なら`updateAvailable: true`、ローカル編集なら`locallyModified: true`、記録のない差異なら
@@ -237,16 +297,52 @@ globalなcommit選択を変えずに開けます。
237
297
  rvw Skillを使って、https://github.com/owner/repository/pull/123 をreviewし、見つけた指摘をRVWのコメントとして作成してください。
238
298
  ```
239
299
 
240
- Walkthroughを作る場合は、説明したい対象と必要な作成指示をセッションへ伝えて`rvw-walkthrough` Skillを使います。
241
- Skillは明示された指示を優先し、未指定の作成判断だけを既定guideで補って、reviewerが変更または実装対象の
242
- mental modelを作るための最初の読解経路を構成します。文書の見出しや説明順序は固定せず、source anchorを持つ
243
- reference付きartifactとして検証してpublishします。Walkthrough全体へのコメントから説明を改善する場合は、
244
- 現在内容を取得して同じURIを更新し、重複した「改訂版」を追加しません。
300
+ PR全体または明示したreview subjectについて、どの説明surfaceが必要かも含めて任せる場合は
301
+ `rvw-review-compose` Skillを使います。
245
302
 
246
- Structureを作る場合は、behavior、entrypoint、scope、含める/除外する関係を伝えて`rvw-structure` Skillを使います。
247
- Skillは実際のcommit済みcodeを調査し、labelではなくclaimのidentityとしてstable IDを割り当てます。
248
- 読み順が本質ならWalkthroughを提案し、静的なarchitecture inventoryならStructureを作りません。producer authoringの実地評価は
249
- [Structure producer evaluation](docs/structure-producer-evaluation.md)に記録しています。
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)に記録しています。
250
346
 
251
347
  新規root commentとreplyを継続監視する場合は`rvw-watch-comments` Skillを起動します。全登録PRを
252
348
  同梱driverから約1秒間隔で監視し、起動前の既存未解決commentは処理しません。自分のPRのfix-and-pushを起動taskへ
@@ -263,9 +359,12 @@ queue、retry、batch内のthread単位status post、自己返信抑制をtransa
263
359
  調査結果、実装内容、test結果が具体的なcodeに基づく場合、Skillは最終replyからexact commitの有用な
264
360
  line rangeへ`rvw-ref:` linkを付け、reviewerが根拠へ直接移動できるようにします。
265
361
 
266
- 四つのSkillはSQLiteを直接読まず、`rvw protocol --json`、`rvw comment ... --json`、
267
- `rvw walkthrough get/update/publish/delete ... --json`、`rvw structure preview/get/update/publish/delete ... --json`、
268
- `rvw pr sync --stdin --json`だけを利用します。
362
+ 5つのSkillはrvwのapplication SQLiteを直接読まず、rvwへの操作には`rvw protocol --json`、`rvw agent status --json`、
363
+ `rvw comment ... --json`、
364
+ `rvw walkthrough get/update/publish/delete ... --json`、
365
+ `rvw structure list/preview/get/update/publish/delete ... --json`、`rvw pr sync --stdin --json`という既存contractだけを
366
+ 利用します。composerの追加による新しいCLI commandやprotocol capabilityはありません。既存Walkthrough URIが
367
+ 明示されない場合に全Walkthroughを列挙するcontractもないため、composerはSQLiteを読んで重複を推測しません。
269
368
  ローカルDBやrepositoryへアクセスできないCloud Agentは対象外です。
270
369
 
271
370
  ## 復旧
@@ -297,6 +396,10 @@ rvw pr refresh <PR_REF> --json
297
396
  rvw comment create --stdin --json
298
397
  rvw comment list <PR_REF> --state unresolved --limit 50 --offset 0 --json
299
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
300
403
  rvw comment get <COMMENT_URI> --json
301
404
  rvw comment get <COMMENT_URI> --include-pr-body --json
302
405
  rvw comment get <COMMENT_URI> --live --json
@@ -317,6 +420,12 @@ rvw pr attach <PR_REF> --repository <PATH> --json
317
420
  stdinをcloseし、shellではpipe、quoted heredoc、input redirectionのいずれかを使います。起動済みの
318
421
  対話commandへJSONと改行だけを送るとEOF待ちになります。
319
422
 
423
+ `comment watch-task`は同じrvw databaseを監視する外部taskのgenerationを管理します。新taskだけが
424
+ `activate`し、再開taskは保存済みgenerationを`verify`します。comment watch cursorは引き続きevent位置
425
+ だけを表し、consumer ownershipとは独立です。repository writer reservationもrvw databaseで共有され、
426
+ active generationの検証と取得が同じtransactionで行われます。旧generationの取得済みreservationは
427
+ releaseされるまで新generationをブロックします。
428
+
320
429
  `comment create`は登録済みPR、通常のcomment target、本文、任意のAgent名、投稿単位code referenceをstdin JSONで受け取り、
321
430
  未解決のroot threadを一件作成します。repository targetはexact commit、path、任意のinclusive line rangeを
322
431
  指定し、viewerと同じ文書・行検証を通ります。作成してもbrowserを開かず、tabやcommit選択を変更しません。
@@ -367,16 +476,27 @@ source checkoutでは、GitHub接続や保存済みPRを用意せずにrepositor
367
476
  pnpm demo
368
477
  ```
369
478
 
370
- このデモは小さなE2E fixtureとは分離され、現在のcheckoutにある直近6件のfirst-parent commitを
371
- 一つのsynthetic PRとして表示します。tree、文書、diff、検索はworktreeではなく実際のGit objectから読み、
372
- 100件以上の実在file、複数commit、変更外のtest・document・Skill、初期commentとWalkthroughを含みます。
479
+ 既定のデモは、固定metadataからtemporary directoryへ毎回同じSHA-1 Git historyを構築します。架空の注文
480
+ serviceに対するresilient order placement PRを、7 commits、changed / unchanged file、review comments、
481
+ Walkthrough、Structureを含む一貫したreview workloadとして表示します。networkや現在のrvw historyには依存しません。
373
482
  browserを自動で開かない場合は`pnpm demo -- --no-open`、portを変える場合は`RVW_DEMO_PORT`を指定します。
374
- デモを停止するには起動したterminalでCtrl+Cを押してください。
483
+
484
+ 現在のrvw checkoutをそのままreviewする任意のdogfood modeは別commandです。表示内容はlocal refsと
485
+ committed historyに応じて変わり、必要なfirst-parent historyが不足していれば明示的に失敗します。
486
+
487
+ ```bash
488
+ pnpm demo:dogfood
489
+ ```
490
+
491
+ fixtureのcontract / realistic / stress / dogfoodの境界、realistic historyの更新規則、anchor integrity、
492
+ stress coverageの場所は[Fixture architecture](docs/fixture-architecture.md)を参照してください。デモを停止するには
493
+ 起動したterminalでCtrl+Cを押してください。
375
494
 
376
495
  ```bash
377
496
  pnpm install --frozen-lockfile
378
497
  pnpm check
379
498
  pnpm test
499
+ pnpm test:dogfood
380
500
  pnpm test:e2e
381
501
  pnpm build
382
502
  pnpm test:package