@a9n-shoji/rvw 0.3.1 → 0.4.0-beta.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 (161) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +51 -10
  3. package/dist/cli.mjs +1183 -55
  4. package/dist/cli.mjs.map +4 -4
  5. package/dist/web/assets/CommentThread-dsad9VaW.js +33 -0
  6. package/dist/web/assets/DocumentViewer-CN8CiQe9.js +1417 -0
  7. package/dist/web/assets/FileIcon-AhP8Ezk9.js +343 -0
  8. package/dist/web/assets/MarkdownTable-Clfr8wUw.js +7 -0
  9. package/dist/web/assets/MermaidExpandedView-BjmXfluL.js +4 -0
  10. package/dist/web/assets/MermaidSurface-B2Z3pJme.js +2 -0
  11. package/dist/web/assets/StructureViewer-Ywjlwt8f.js +1 -0
  12. package/dist/web/assets/WalkthroughViewer-Ckb8Qlvj.js +43 -0
  13. package/dist/web/assets/abnfDiagram-N423BO3Z-DjhFeHQj.js +1 -0
  14. package/dist/web/assets/architecture-TIHT7OUA-CsHfPErM.js +1 -0
  15. package/dist/web/assets/architectureDiagram-T3A2C74G-4zQ-4s9L.js +36 -0
  16. package/dist/web/assets/{blockDiagram-VBNYF7ZC-C77pTjUb.js → blockDiagram-VBNYF7ZC-Bh91Tm8T.js} +1 -1
  17. package/dist/web/assets/{c4Diagram-5PPSVZJV-DGHS-vVy.js → c4Diagram-5PPSVZJV-BHgLhSdB.js} +1 -1
  18. package/dist/web/assets/ccount-DFmD81E1.js +1 -0
  19. package/dist/web/assets/channel-BmC0cAv-.js +1 -0
  20. package/dist/web/assets/{chunk-2GRJ4B5K-DeUANCIz.js → chunk-2GRJ4B5K-sTPzFBtk.js} +1 -1
  21. package/dist/web/assets/chunk-3NCLNEKW-k0AW8Qyp.js +1 -0
  22. package/dist/web/assets/{chunk-4I5QYGJK-CMh2oglh.js → chunk-4I5QYGJK-q_8xEFmv.js} +1 -1
  23. package/dist/web/assets/chunk-5FCAYU7R-Dh5nylU8.js +1 -0
  24. package/dist/web/assets/chunk-5HE753X5-Bw-yg4kO.js +1 -0
  25. package/dist/web/assets/chunk-5JV3BV7I-Cy5pj3QY.js +1 -0
  26. package/dist/web/assets/{chunk-5RXB4S5H-DKTEiVyP.js → chunk-5RXB4S5H-BcuYQqlM.js} +1 -1
  27. package/dist/web/assets/chunk-5TONJI2A-DQOY3q1H.js +2 -0
  28. package/dist/web/assets/{chunk-6Q2QTUOP-CcgtbZZN.js → chunk-6Q2QTUOP-DDI96JMg.js} +1 -1
  29. package/dist/web/assets/{chunk-7Z6QIM7H-ktwy8mS7.js → chunk-7Z6QIM7H-B8QX_5g4.js} +1 -1
  30. package/dist/web/assets/chunk-BIQX33UG-DZEsGuSn.js +1 -0
  31. package/dist/web/assets/chunk-CQNSW5MT-B8S09OIh.js +1 -0
  32. package/dist/web/assets/chunk-CYSBUYHQ-C1Rf4art.js +1 -0
  33. package/dist/web/assets/chunk-EMLP6XTP-RLD4nXpI.js +1 -0
  34. package/dist/web/assets/{chunk-GF5L2VYU-C3sn41mA.js → chunk-GF5L2VYU-CJin2HQO.js} +1 -1
  35. package/dist/web/assets/{chunk-I66GZJ75-PkPnHXQJ.js → chunk-I66GZJ75-CEntV2nF.js} +1 -1
  36. package/dist/web/assets/chunk-J7OUQ5F2-XLdTvjUm.js +2 -0
  37. package/dist/web/assets/chunk-JG7HCLWE-BYfiSaVt.js +2 -0
  38. package/dist/web/assets/{chunk-JQJVKLGR-C7Y_Zm_L.js → chunk-JQJVKLGR-Bnum3gum.js} +3 -3
  39. package/dist/web/assets/{chunk-KBJHAD2P-CPGb1KEF.js → chunk-KBJHAD2P-DwPs20tJ.js} +1 -1
  40. package/dist/web/assets/chunk-MOZMSUNE-XVucA-n6.js +1 -0
  41. package/dist/web/assets/{chunk-NSK5VX7P-CiYrTyo0.js → chunk-NSK5VX7P-AmYQxFLu.js} +1 -1
  42. package/dist/web/assets/chunk-OSBZ3O6U-CrKZOUOr.js +1 -0
  43. package/dist/web/assets/chunk-QBLGF6JB-CxAyS2mW.js +1 -0
  44. package/dist/web/assets/{chunk-QR6OTTB3-Cxc4CBz3.js → chunk-QR6OTTB3-VIu9ZqqS.js} +1 -1
  45. package/dist/web/assets/chunk-R7FJI6CG-Cnn3gE-Y.js +1 -0
  46. package/dist/web/assets/chunk-U6XO7XAA-BFxjP5U3.js +2 -0
  47. package/dist/web/assets/{chunk-UBXNYLIW-Cu8_QUds.js → chunk-UBXNYLIW-D4XAD8w6.js} +1 -1
  48. package/dist/web/assets/{chunk-W5SLKNZC-xEW_C207.js → chunk-W5SLKNZC-B8QG_JAG.js} +1 -1
  49. package/dist/web/assets/{chunk-WRU74C26-lur1bNcP.js → chunk-WRU74C26-CS8zeNym.js} +1 -1
  50. package/dist/web/assets/chunk-YOTPTUD7-D0vRKqYp.js +1 -0
  51. package/dist/web/assets/chunk-ZIRB5QZD-O39ZBUk3.js +32 -0
  52. package/dist/web/assets/classDiagram-JCYQIIEL-DyY7Kt3N.js +1 -0
  53. package/dist/web/assets/classDiagram-v2-OCEON4UE-DyY7Kt3N.js +1 -0
  54. package/dist/web/assets/cynefin-VYW2F7L2-Ds2Fw2Y0.js +1 -0
  55. package/dist/web/assets/cynefinDiagram-MW4NZA55-DaNC4kY7.js +62 -0
  56. package/dist/web/assets/{dagre-VZM6K2ZE-DzKymXhT.js → dagre-VZM6K2ZE-DJ845MyA.js} +1 -1
  57. package/dist/web/assets/{diagram-7IWD3JNH-B1TUtKVL.js → diagram-7IWD3JNH-98E00vZR.js} +3 -3
  58. package/dist/web/assets/diagram-B4RE2ZJO-BpMQ8ico.js +3 -0
  59. package/dist/web/assets/diagram-LBJQPF4R-BZ8RNQpZ.js +24 -0
  60. package/dist/web/assets/diagram-Q27KOJAE-Bn1wtc7g.js +24 -0
  61. package/dist/web/assets/diagram-UB23O5K3-B314M-wb.js +41 -0
  62. package/dist/web/assets/dist-DCGa16l5.js +145 -0
  63. package/dist/web/assets/ebnfDiagram-BXEA7PRR-CqKM-cL0.js +1 -0
  64. package/dist/web/assets/{erDiagram-JOGREHBK-DlhKVbK5.js → erDiagram-JOGREHBK-CVMcNMlx.js} +1 -1
  65. package/dist/web/assets/eventmodeling-45OFAUF4-CLEiVx5s.js +1 -0
  66. package/dist/web/assets/flowDiagram-UKHOOZJN-8dur6GAS.js +1 -0
  67. package/dist/web/assets/{ganttDiagram-PKOTCBZU-Buwx6kT-.js → ganttDiagram-PKOTCBZU-DALoGLHl.js} +1 -1
  68. package/dist/web/assets/gitGraph-TEB2WS4Q-CZFBqwW-.js +1 -0
  69. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-BY_jOOb-.js +106 -0
  70. package/dist/web/assets/index-AVz95gz4.js +11 -0
  71. package/dist/web/assets/index-Dq83UXVE.css +1 -0
  72. package/dist/web/assets/info-DKCQHKI2--1InqQeT.js +1 -0
  73. package/dist/web/assets/infoDiagram-6WML65LV-CNMbrlEJ.js +2 -0
  74. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-u7_elIzl.js → ishikawaDiagram-WSZJBQD7-NODY49Zb.js} +2 -2
  75. package/dist/web/assets/{journeyDiagram-NVQOT4AX-C2jFr8oy.js → journeyDiagram-NVQOT4AX-v9CJWB8Y.js} +1 -1
  76. package/dist/web/assets/{kanban-definition-27J2QSJJ-D-7UHdx4.js → kanban-definition-27J2QSJJ-Cv2iL7No.js} +3 -3
  77. package/dist/web/assets/lib-p2IERBh0.js +9 -0
  78. package/dist/web/assets/{line-CQAM_baC.js → line-Dah7RomF.js} +1 -1
  79. package/dist/web/assets/mermaid-parser.core-BcQae2Lb.js +4 -0
  80. package/dist/web/assets/mermaid.core-BVyLgPb6.js +11 -0
  81. package/dist/web/assets/{mindmap-definition-FAOFIHXS-tXNzs65p.js → mindmap-definition-FAOFIHXS-BD9fkU-f.js} +1 -1
  82. package/dist/web/assets/packet-7NZHBO7P-BGMXB0XL.js +1 -0
  83. package/dist/web/assets/pegDiagram-VL7TDLO6-D-HL9Pvp.js +1 -0
  84. package/dist/web/assets/pie-RZYD4A2V-DgYg3tCt.js +1 -0
  85. package/dist/web/assets/pieDiagram-7S7Q4E2Y-Sam5BEo-.js +39 -0
  86. package/dist/web/assets/preload-helper-Czpn1I53.js +1 -0
  87. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-Ck1WL56V.js → quadrantDiagram-CIZ2JOQS-BNXhvOJb.js} +1 -1
  88. package/dist/web/assets/radar-I7S5WNFK-Ag-zp_Rq.js +1 -0
  89. package/dist/web/assets/railroad-3IZDKUUU-aibJDIDV.js +1 -0
  90. package/dist/web/assets/railroad-abnf-AHOZXSZD-BBMEuvIl.js +1 -0
  91. package/dist/web/assets/railroad-ebnf-EBAXGLYW-Be1nseej.js +1 -0
  92. package/dist/web/assets/railroad-peg-LSFZ7HO6-DIvD-Eyb.js +1 -0
  93. package/dist/web/assets/railroadDiagram-AXF67PYL-C6-GuR01.js +1 -0
  94. package/dist/web/assets/{requirementDiagram-LRYGKXZP-C-GtPNYS.js → requirementDiagram-LRYGKXZP-Dew1VZVc.js} +1 -1
  95. package/dist/web/assets/{sankeyDiagram-W5VNT64P-DiFurH1m.js → sankeyDiagram-W5VNT64P-BNlHXupx.js} +1 -1
  96. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BBJvY7He.js → sequenceDiagram-SI44F4Z6-CHZhbxWH.js} +1 -1
  97. package/dist/web/assets/stateDiagram-OKZ733FA-BP7TOkRY.js +1 -0
  98. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-BoFgs-SF.js +1 -0
  99. package/dist/web/assets/swimlanes-SLNWSIFB-DfMga4nB.js +2 -0
  100. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CpfunQZj.js +8 -0
  101. package/dist/web/assets/{timeline-definition-Z64GVDOM-CPtTrFUL.js → timeline-definition-Z64GVDOM-DjC-PWK6.js} +1 -1
  102. package/dist/web/assets/treeView-QDETBFTQ-uHZ-3Fz8.js +1 -0
  103. package/dist/web/assets/treemap-6X3UGDF4-BnUKyy3l.js +1 -0
  104. package/dist/web/assets/{vennDiagram-T6HMQDX7-BjWQrcS4.js → vennDiagram-T6HMQDX7-CJzy1Vav.js} +2 -2
  105. package/dist/web/assets/wardley-OPB4EBWU-Da7TLC2F.js +1 -0
  106. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-DHLZ0oPi.js → wardleyDiagram-T6FBY63Y-C9BlVo6M.js} +3 -3
  107. package/dist/web/assets/{xychartDiagram-ELKLHX3M-CEJ_HkG9.js → xychartDiagram-ELKLHX3M-B0WUxsYy.js} +3 -3
  108. package/dist/web/index.html +7 -2
  109. package/migrations/014_structures.sql +13 -0
  110. package/migrations/015_structure_concurrency.sql +6 -0
  111. package/migrations/016_structure_retired_ids.sql +13 -0
  112. package/package.json +1 -1
  113. package/skills/rvw-structure/SKILL.md +154 -0
  114. package/skills/rvw-structure/agents/openai.yaml +4 -0
  115. package/skills/rvw-structure/references/structure-authoring.md +136 -0
  116. package/skills/rvw-walkthrough/SKILL.md +9 -4
  117. package/skills/rvw-walkthrough/agents/openai.yaml +1 -1
  118. package/skills/rvw-walkthrough/references/walkthrough-authoring.md +11 -0
  119. package/dist/web/assets/DocumentViewer-C7UMfzam.js +0 -1561
  120. package/dist/web/assets/MarkdownTable-Dg8UkuDK.js +0 -15
  121. package/dist/web/assets/WalkthroughViewer-BvS7o2T0.js +0 -42
  122. package/dist/web/assets/abnfDiagram-N423BO3Z-C2idvncb.js +0 -1
  123. package/dist/web/assets/architecture-TIHT7OUA-C7fqtQhb.js +0 -1
  124. package/dist/web/assets/architectureDiagram-T3A2C74G-Cdm5LY27.js +0 -36
  125. package/dist/web/assets/channel-DwAsM5u1.js +0 -1
  126. package/dist/web/assets/classDiagram-JCYQIIEL-ZOHoHid8.js +0 -1
  127. package/dist/web/assets/classDiagram-v2-OCEON4UE-ZOHoHid8.js +0 -1
  128. package/dist/web/assets/cynefin-VYW2F7L2-D8ja_01T.js +0 -1
  129. package/dist/web/assets/cynefinDiagram-MW4NZA55-DRefzYPy.js +0 -62
  130. package/dist/web/assets/diagram-B4RE2ZJO-DQ7yWH6C.js +0 -3
  131. package/dist/web/assets/diagram-LBJQPF4R-h5ld83dF.js +0 -24
  132. package/dist/web/assets/diagram-Q27KOJAE-CQyWB8j1.js +0 -24
  133. package/dist/web/assets/diagram-UB23O5K3-SmscW8SS.js +0 -41
  134. package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6Uv9Fga.js +0 -1
  135. package/dist/web/assets/eventmodeling-45OFAUF4-hg8ilqKd.js +0 -1
  136. package/dist/web/assets/flowDiagram-UKHOOZJN-DlU6Mvry.js +0 -1
  137. package/dist/web/assets/gitGraph-TEB2WS4Q-DcKoIebc.js +0 -1
  138. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-6hyOioar.js +0 -106
  139. package/dist/web/assets/index-CLhFOtpL.css +0 -1
  140. package/dist/web/assets/index-DYmdeW10.js +0 -384
  141. package/dist/web/assets/info-DKCQHKI2-BTrntoWR.js +0 -1
  142. package/dist/web/assets/infoDiagram-6WML65LV-C9vEklZc.js +0 -2
  143. package/dist/web/assets/mermaid-parser.core-D2z7ZOcE.js +0 -7
  144. package/dist/web/assets/mermaid.core-d5lQFkUm.js +0 -42
  145. package/dist/web/assets/packet-7NZHBO7P-Ck4WifuO.js +0 -1
  146. package/dist/web/assets/pegDiagram-VL7TDLO6-CI2wa80w.js +0 -1
  147. package/dist/web/assets/pie-RZYD4A2V-HqKGJX8R.js +0 -1
  148. package/dist/web/assets/pieDiagram-7S7Q4E2Y-DiANc3xh.js +0 -39
  149. package/dist/web/assets/radar-I7S5WNFK-BGZ0ArkI.js +0 -1
  150. package/dist/web/assets/railroad-3IZDKUUU-CG80mKUm.js +0 -1
  151. package/dist/web/assets/railroad-abnf-AHOZXSZD-siyTaNqs.js +0 -1
  152. package/dist/web/assets/railroad-ebnf-EBAXGLYW-CXsuiW_x.js +0 -1
  153. package/dist/web/assets/railroad-peg-LSFZ7HO6-2Zrn2h_2.js +0 -1
  154. package/dist/web/assets/railroadDiagram-AXF67PYL-DqLD6_Ag.js +0 -1
  155. package/dist/web/assets/stateDiagram-OKZ733FA-CJJJoWYF.js +0 -1
  156. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-Cwihtgsj.js +0 -1
  157. package/dist/web/assets/swimlanes-SLNWSIFB-DDD-kqF3.js +0 -2
  158. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CthM5wkr.js +0 -8
  159. package/dist/web/assets/treeView-QDETBFTQ-CXpMsauD.js +0 -1
  160. package/dist/web/assets/treemap-6X3UGDF4-DODWUMCI.js +0 -1
  161. package/dist/web/assets/wardley-OPB4EBWU-HV6ftDhi.js +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.4.0-beta.0] - 2026-08-31
9
+
10
+ ### Added
11
+
12
+ - 一つの具体的なbehavior / processing flowをsource-anchored origin、stable Node / Edge ID、exact source
13
+ anchorで提示し、1/2-hop / All、focus、pan / zoom / dragから探索できるproduction `Structure` document
14
+ - Structureのpublish / get / whole-value update / confirmation付きdeleteを行うCLI、Agent socket capability、
15
+ SQLite migration、HTTP API、Codex / Claude Code共通の`rvw-structure` Skill
16
+
17
+ ## [0.3.2] - 2026-08-31
18
+
19
+ ### Added
20
+
21
+ - Markdown、comment、WalkthroughのMermaid図をviewportサイズのreview workspaceへ展開し、Fit・zoom・
22
+ scroll、resizableなcomment rail、code referenceのpeekとreview画面へのnavigationを利用できる機能
23
+ - WalkthroughのMermaid bindingをflowchartとclassDiagramに加え、sequenceDiagramのparticipant / actor、
24
+ stateDiagram-v2のstate、erDiagramのentity、architecture-betaのserviceへ拡張
25
+
26
+ ### Changed
27
+
28
+ - Walkthroughのcode referenceを保存済みの最新PR headへ遅延解決し、fileが不変ならexact range、変更時は
29
+ sourceとdestinationで一意な未変更rangeだけを対応付け。安全に特定できない場合はimmutableなsource commitへ
30
+ fallbackし、rename / copyも一意な直接successorだけを追跡
31
+
8
32
  ## [0.3.1] - 2026-08-28
9
33
 
10
34
  ### Added
package/README.md CHANGED
@@ -6,6 +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
11
 
10
12
  diffは変更を見つける入口であり、レビュー対象の境界ではありません。人間が結果を読み、影響を追い、
11
13
  次に直すべきことを判断します。Codex / Claude Codeは、その判断を同梱された共通Skillと`rvw` CLI
@@ -16,7 +18,7 @@ Agentが実装
16
18
 
17
19
  Git commit / GitHub Pull Request
18
20
 
19
- Agentが任意でcommit固定のWalkthroughを提示
21
+ Agentが任意でsource anchor付きWalkthrough / Structureを提示
20
22
 
21
23
  rvwで意図・説明・変更・repository全体を読む
22
24
 
@@ -107,6 +109,7 @@ viewerはこの流れのために次を提供します。
107
109
  - 未解決/解決済み、返信、Outdated追跡
108
110
  - Agentへ渡す一件・一覧・複数選択した`rvw://comment/<uuid>`参照のコピー
109
111
  - Agentが提示したWalkthrough、exact code reference、選択可能なMermaid node
112
+ - Agentが提示したStructure、focus近傍、source anchor付きnode / relation
110
113
  - Walkthrough commentをAgentが読むときの、元の説明本文とcode referenceの同時取得
111
114
  - 同じ参照を保ったWalkthroughの改善と、確認付きの不要Walkthrough削除
112
115
 
@@ -118,7 +121,7 @@ viewerはこの流れのために次を提供します。
118
121
 
119
122
  ## Agentの説明を人間の順序で検証する
120
123
 
121
- 外部Agentは`rvw-walkthrough` SkillとCLIを使い、実装説明を一つのcommitへ固定してrvwへ提示できます。
124
+ 外部Agentは`rvw-walkthrough` SkillとCLIを使い、実装説明を一つのsource commitをanchorとしてrvwへ提示できます。
122
125
 
123
126
  ```bash
124
127
  rvw walkthrough publish --stdin --json
@@ -128,7 +131,14 @@ rvw walkthrough publish --stdin --json
128
131
  構成されます。参照は意味のある複数行range、単行、またはfile全体を指せます。rvwは登録時にcommit、
129
132
  path、指定された行範囲を検証します。publishしてもbrowserは開かれず、
130
133
  active tabやscroll位置も変わりません。人間がviewerのWalkthroughを開き、必要なreferenceを選んだ
131
- 時だけ、exact sourceがdocument tabへ開き、行指定があれば範囲全体が強調されます。通常clickは左ペイン、
134
+ 時だけ、`sourceOid`のanchorから最新PR headへcode位置を保守的に解決します。追跡できれば最新code、
135
+ 変更や曖昧さがあれば参照時点のcodeを明示して開きます。行指定はfile全体が同一、または選択範囲が
136
+ source/latest双方で一意な場合だけ解決し、範囲全体を強調します。元pathが消えたrenameはcopy候補も含めて後継が1件のときだけ追従します。
137
+ 変更表示は選択中の比較がlatestで終わる場合だけtop barのPR比較範囲を使い、historical範囲では別revisionへ
138
+ lineを誤適用せずlatest全文を表示します。fallbackでは、同じfileまたは明確なrename先があればline保証なしで
139
+ 最新fileも開けます。このactionも比較終端がlatestと一致するときだけ変更表示を使い、historical範囲ではlatest全文を
140
+ 開きます。解決後にPR headが進んだ場合、または同じWalkthrough IDのreference座標が変わった場合はstaleとし、
141
+ 解決時/現在のSHAと表示中のanchorを示します。staleな判断とlatest file actionを隠して明示的な再解決だけを提供します。通常clickは左ペイン、
132
142
  `Cmd` / `Ctrl`を押しながら選べば右ペインへ開きます。説明tabは残るため、
133
143
  複数のclaimと実装を任意の順序・任意のタイミングで往復できます。
134
144
 
@@ -147,10 +157,35 @@ Agentは現在内容を読み、同じ`rvw://walkthrough/<uuid>`を更新して
147
157
  同じ説明へ残り、viewerはpollで本文、参照、titleを再取得します。不要なWalkthroughはviewerの削除action、
148
158
  または削除件数を確認したCLIで、紐づくコメントと返信を含めて削除できます。
149
159
 
160
+ ## codeの関係を空間として検証する
161
+
162
+ 外部Agentは`rvw-structure` SkillとCLIを使い、PRに関係するboundedなbehaviorをfactualなcode entrypointから
163
+ dependency、contract、side effectへ辿る空間として提示できます。必須の読み順を持つ説明はWalkthroughです。
164
+ entrypointを置けない静的なarchitecture/責務inventoryはStructureへ広げません。
165
+
166
+ ```bash
167
+ rvw structure publish --stdin --json
168
+ rvw structure get rvw://structure/<uuid> --json
169
+ rvw structure update rvw://structure/<uuid> --stdin --json
170
+ rvw structure delete rvw://structure/<uuid> --json
171
+ ```
172
+
173
+ Structureは一つのexact `sourceOid`、宣言されたtitle / scope、entrypoint、stableなNode / Edge IDからなります。
174
+ Nodeは0または1件、Edgeは0件以上のsource anchorを持ち、rvwはcommit、UTF-8 path、line pair、endpoint、
175
+ focus、重複ID、sizeを保存前に検証します。publish / updateはbrowserやnavigationを操作しません。
176
+
177
+ viewerではfocusがある時に1-hop / 2-hopへ絞り、Allでは全Node / Edgeを表示します。relationを次数やIDで
178
+ 暗黙に隠さず、pan、zoom、fit、node drag、layout resetで探索できます。通常clickでexact sourceを左、
179
+ `Cmd` / `Ctrl`+clickで右ペインへ開きます。globalなcommit選択は
180
+ 変えません。node位置とviewportは同じbrowser sessionで保持しますが、SQLiteやAgent protocolへ座標を
181
+ 保存しません。同じsubjectの更新は同じURIを完全置換し、存続するIDの位置を保ちます。別subjectは新しい
182
+ Structureとしてpublishします。
183
+
150
184
  ## Codex / Claude Code Skills
151
185
 
152
186
  アプリ本体からローカルSkillをインストールします。一度のinstallで、コメント処理用の`rvw`、
153
- Walkthroughのpublish・改善・削除用の`rvw-walkthrough`、新規コメント監視用の
187
+ Walkthroughのpublish・改善・削除用の`rvw-walkthrough`、Structureのpublish・置換・削除用の
188
+ `rvw-structure`、新規コメント監視用の
154
189
  `rvw-watch-comments`が入ります。Skill名と内容はCodex / Claude Codeで共通で、
155
190
  platform指定は配置先だけを選びます。
156
191
 
@@ -162,8 +197,8 @@ rvw skill status
162
197
 
163
198
  既定の配置先は次です。
164
199
 
165
- - Codex: `~/.agents/skills/rvw`、`~/.agents/skills/rvw-walkthrough`、`~/.agents/skills/rvw-watch-comments`
166
- - Claude Code: `~/.claude/skills/rvw`、`~/.claude/skills/rvw-walkthrough`、`~/.claude/skills/rvw-watch-comments`
200
+ - Codex: `~/.agents/skills/rvw`、`~/.agents/skills/rvw-walkthrough`、`~/.agents/skills/rvw-structure`、`~/.agents/skills/rvw-watch-comments`
201
+ - Claude Code: `~/.claude/skills/rvw`、`~/.claude/skills/rvw-walkthrough`、`~/.claude/skills/rvw-structure`、`~/.claude/skills/rvw-watch-comments`
167
202
 
168
203
  rvwがインストールしたSkillには同梱版digestを記録します。`skill status --json`と`doctor --json`は、
169
204
  管理済みの旧版なら`updateAvailable: true`、ローカル編集なら`locallyModified: true`、記録のない差異なら
@@ -197,10 +232,15 @@ rvw Skillを使って、https://github.com/owner/repository/pull/123 をreview
197
232
 
198
233
  Walkthroughを作る場合は、説明したい対象と必要な作成指示をセッションへ伝えて`rvw-walkthrough` Skillを使います。
199
234
  Skillは明示された指示を優先し、未指定の作成判断だけを既定guideで補って、reviewerが変更または実装対象の
200
- mental modelを作るための最初の読解経路を構成します。文書の見出しや説明順序は固定せず、commit固定の
235
+ mental modelを作るための最初の読解経路を構成します。文書の見出しや説明順序は固定せず、source anchorを持つ
201
236
  reference付きartifactとして検証してpublishします。Walkthrough全体へのコメントから説明を改善する場合は、
202
237
  現在内容を取得して同じURIを更新し、重複した「改訂版」を追加しません。
203
238
 
239
+ Structureを作る場合は、behavior、entrypoint、scope、含める/除外する関係を伝えて`rvw-structure` Skillを使います。
240
+ Skillは実際のcommit済みcodeを調査し、labelではなくclaimのidentityとしてstable IDを割り当てます。
241
+ 読み順が本質ならWalkthroughを提案し、静的なarchitecture inventoryならStructureを作りません。producer authoringの実地評価は
242
+ [Structure producer evaluation](docs/structure-producer-evaluation.md)に記録しています。
243
+
204
244
  新規root commentとreplyを継続監視する場合は`rvw-watch-comments` Skillを起動します。全登録PRを
205
245
  同梱driverから約1秒間隔で監視し、起動前の既存未解決commentは処理しません。自分のPRのfix-and-pushを起動taskへ
206
246
  明示許可した場合だけ、live PR authorと起動時のGitHub loginが一致するPRで修正・test・commit・pushを
@@ -216,8 +256,9 @@ queue、retry、batch内のthread単位status post、自己返信抑制をtransa
216
256
  調査結果、実装内容、test結果が具体的なcodeに基づく場合、Skillは最終replyからexact commitの有用な
217
257
  line rangeへ`rvw-ref:` linkを付け、reviewerが根拠へ直接移動できるようにします。
218
258
 
219
- 三つのSkillはSQLiteを直接読まず、`rvw protocol --json`、`rvw comment ... --json`、
220
- `rvw walkthrough get/update/publish/delete ... --json`、`rvw pr sync --stdin --json`だけを利用します。
259
+ 四つのSkillはSQLiteを直接読まず、`rvw protocol --json`、`rvw comment ... --json`、
260
+ `rvw walkthrough get/update/publish/delete ... --json`、`rvw structure get/update/publish/delete ... --json`、
261
+ `rvw pr sync --stdin --json`だけを利用します。
221
262
  ローカルDBやrepositoryへアクセスできないCloud Agentは対象外です。
222
263
 
223
264
  ## 復旧
@@ -232,7 +273,7 @@ rvw pr reset https://github.com/owner/repository/pull/123 --json
232
273
  rvw pr reset https://github.com/owner/repository/pull/123 --yes --json
233
274
  ```
234
275
 
235
- resetは対象PRのコメント、返信、コメント対象、コメント投稿とWalkthroughのcode reference、
276
+ resetは対象PRのコメント、返信、コメント対象、コメント投稿、Walkthroughのcode reference、Structure、
236
277
  `refs/rvw/pr/<number>/...`を削除し、現在のGitHub状態からcacheとhead refを再構築します。
237
278
  バックアップや旧コメント移行は行わず、元に戻せません。
238
279