qgraphflow 0.0.6
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/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +17 -0
- package/.claude-plugin/plugin.json +13 -0
- package/.codex-plugin/plugin.json +26 -0
- package/.cursor-plugin/plugin.json +9 -0
- package/.qoder-plugin/plugin.json +9 -0
- package/LICENSE +21 -0
- package/README.md +262 -0
- package/THIRD_PARTY_NOTICES.md +190 -0
- package/bin/qgraphflow.mjs +17 -0
- package/docs/clients.de.md +83 -0
- package/docs/clients.es.md +83 -0
- package/docs/clients.ja.md +83 -0
- package/docs/clients.md +83 -0
- package/docs/clients.pt.md +83 -0
- package/docs/clients.ru.md +83 -0
- package/docs/clients.zh-CN.md +83 -0
- package/docs/readme/README.de.md +262 -0
- package/docs/readme/README.es.md +262 -0
- package/docs/readme/README.ja.md +262 -0
- package/docs/readme/README.pt.md +262 -0
- package/docs/readme/README.ru.md +262 -0
- package/docs/readme/README.zh-CN.md +264 -0
- package/examples/order-flow.graph.json +94 -0
- package/package.json +61 -0
- package/skills/q-flow/SKILL.md +69 -0
- package/skills/q-flow/agents/openai.yaml +5 -0
- package/skills/q-flow/assets/layout-dist/ELK-LICENSE.md +264 -0
- package/skills/q-flow/assets/layout-dist/worker.mjs +24 -0
- package/skills/q-flow/assets/viewer/package.json +22 -0
- package/skills/q-flow/assets/viewer/src/diagrams/architecture.js +43 -0
- package/skills/q-flow/assets/viewer/src/diagrams/card.js +21 -0
- package/skills/q-flow/assets/viewer/src/diagrams/class.js +52 -0
- package/skills/q-flow/assets/viewer/src/diagrams/dataflow.js +19 -0
- package/skills/q-flow/assets/viewer/src/diagrams/deployment.js +41 -0
- package/skills/q-flow/assets/viewer/src/diagrams/drawing.js +174 -0
- package/skills/q-flow/assets/viewer/src/diagrams/er.js +34 -0
- package/skills/q-flow/assets/viewer/src/diagrams/flowchart.js +37 -0
- package/skills/q-flow/assets/viewer/src/diagrams/registry.js +28 -0
- package/skills/q-flow/assets/viewer/src/diagrams/sequence.js +38 -0
- package/skills/q-flow/assets/viewer/src/diagrams/state.js +91 -0
- package/skills/q-flow/assets/viewer/src/diagrams/usecase.js +28 -0
- package/skills/q-flow/assets/viewer/src/edge-routing.js +596 -0
- package/skills/q-flow/assets/viewer/src/export-svg.js +90 -0
- package/skills/q-flow/assets/viewer/src/graph-validation.js +286 -0
- package/skills/q-flow/assets/viewer/src/i18n-messages.json +1314 -0
- package/skills/q-flow/assets/viewer/src/i18n.js +14 -0
- package/skills/q-flow/assets/viewer/src/layout-measure.js +55 -0
- package/skills/q-flow/assets/viewer/src/layout-quality.js +164 -0
- package/skills/q-flow/assets/viewer/src/layout-spacing.js +12 -0
- package/skills/q-flow/assets/viewer/src/node-svg.js +28 -0
- package/skills/q-flow/assets/viewer/src/radix-colors.js +47 -0
- package/skills/q-flow/assets/viewer/src/sequence-executions.js +140 -0
- package/skills/q-flow/assets/viewer/src/sequence-fragments.js +208 -0
- package/skills/q-flow/assets/viewer/src/session-graph.js +43 -0
- package/skills/q-flow/assets/viewer/src/text-layout.js +126 -0
- package/skills/q-flow/assets/viewer/src/visual-style.js +158 -0
- package/skills/q-flow/assets/viewer-dist/index.html +291 -0
- package/skills/q-flow/references/acceptance.md +11 -0
- package/skills/q-flow/references/evidence-sources.md +38 -0
- package/skills/q-flow/references/graph-common.md +54 -0
- package/skills/q-flow/references/graph-schema.md +214 -0
- package/skills/q-flow/references/guided-intake.md +100 -0
- package/skills/q-flow/references/types/architecture.md +41 -0
- package/skills/q-flow/references/types/class.md +40 -0
- package/skills/q-flow/references/types/dataflow.md +41 -0
- package/skills/q-flow/references/types/deployment.md +37 -0
- package/skills/q-flow/references/types/er.md +36 -0
- package/skills/q-flow/references/types/flowchart.md +47 -0
- package/skills/q-flow/references/types/sequence.md +74 -0
- package/skills/q-flow/references/types/state.md +44 -0
- package/skills/q-flow/references/types/usecase.md +39 -0
- package/skills/q-flow/references/viewer-development.md +258 -0
- package/skills/q-flow/references/visual-contract.md +54 -0
- package/skills/q-flow/scripts/compile-layout.mjs +565 -0
- package/skills/q-flow/scripts/compile-sequence.mjs +112 -0
- package/skills/q-flow/scripts/generate-viewer.mjs +126 -0
- package/skills/q-flow/scripts/validate-graph.mjs +278 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# QGraphFlow
|
|
4
|
+
|
|
5
|
+
### 複雑なコードを、探索できる図へ。
|
|
6
|
+
|
|
7
|
+
経路をたどり、根拠を確認し、ひとつのオフラインファイルで共有。
|
|
8
|
+
|
|
9
|
+
<sub>💡 <a href="https://github.com/Cocoon-AI/architecture-diagram-generator">Cocoon-AI/architecture-diagram-generator</a> に着想を得ました。原作者に感謝します。</sub>
|
|
10
|
+
|
|
11
|
+
[English](../../README.md) · [中文](../../docs/readme/README.zh-CN.md) · [Русский](../../docs/readme/README.ru.md) · [Português](../../docs/readme/README.pt.md) · [日本語](../../docs/readme/README.ja.md) · [Deutsch](../../docs/readme/README.de.md) · [Español](../../docs/readme/README.es.md)
|
|
12
|
+
|
|
13
|
+
[オンラインデモ](https://supermax92.github.io/qgraphflow/) · [クライアントへの導入](#インストールガイド) · [問題を報告](https://github.com/supermax92/qgraphflow/issues) · [MIT](../../LICENSE)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
*9種類の図に対応:アーキテクチャ、フローチャート、シーケンス、ER、配置、クラス、状態、ユースケース、データフロー。*
|
|
20
|
+
|
|
21
|
+
QGraphFlow はソースコード、データ構造、設定、要件から対話型のソフトウェア図を生成します。関係の根拠を確認し、共有可能なオフライン HTML として届けます。
|
|
22
|
+
|
|
23
|
+
**ここが違う:** 1 つのスキルで 9 種類の図、すべての関係に出典、自動レイアウト、ページ上での編集。プラグインのスクリプトと Viewer 自体はネットワーク通信を一切行いません。
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx skills add supermax92/qgraphflow
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
1 つのコマンドで Claude Code、Codex、Cursor、Qoder にスキルを導入できます。プラグインとしての導入やほかのクライアントは[インストールガイド](#インストールガイド)を参照してください。
|
|
30
|
+
|
|
31
|
+
- **探索:** 検索・拡大縮小・パンで、責務と上流・下流の関係を確認。
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
- **検証:** ノードや接続線からファイル、行番号、シンボル、明示された不確実性を確認。
|
|
36
|
+
|
|
37
|
+

|
|
38
|
+
|
|
39
|
+
- **編集:** ロック解除後に文字や位置を変更。必要に応じてリセット。
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
- **共有:** オフライン HTML を開くか、図全体を SVG / PNG に出力。
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+
|
|
47
|
+
上部のアニメーションはアーキテクチャ図・シーケンス図・ER 図を 1.5 秒ずつ(1 ループ 4.5 秒)表示し、4 つの機能アニメーションは 6.5〜8.5 秒です。すべてソースからビルドした Viewer で [agent-desk サンプル](../../examples/showcase/agent-desk)(架空の業務、実在のコード)を日本語の図と UI で録画しています。[showcase-v2 Release のアセット](https://github.com/supermax92/qgraphflow/releases/tag/showcase-v2)として配置し、Git 履歴やプラグインパッケージには含めないため閲覧にはネットワークが必要です。生成された図の HTML 自体はオフラインで動作します。
|
|
48
|
+
|
|
49
|
+
## インストールガイド
|
|
50
|
+
|
|
51
|
+
Node.js 22 以降と、プラグインに対応しモデルへのアクセスを設定済みのクライアントを用意してください。
|
|
52
|
+
|
|
53
|
+
### クイックインストール
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npx skills add supermax92/qgraphflow
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`skills` 1.7.0 で Claude Code、Codex、Cursor、Qoder への導入を実測済みです。導入先のクライアントを尋ねられます。`-a claude-code` で直接指定でき、`-g` を付けると現在のプロジェクトではなくユーザー単位で導入します。この方法で導入したスキル名は `q-flow` で、下のプラグイン導入で付く `qgraphflow:` という接頭辞は付きません。
|
|
60
|
+
|
|
61
|
+
プラグインとして導入する場合は、次の手順に従ってください。[Qoder Desktop](#qoder-desktop) ではマーケットプレイスから直接インストールできるため、手順 1 は不要です。
|
|
62
|
+
|
|
63
|
+
### 1. プラグインをダウンロード
|
|
64
|
+
|
|
65
|
+
[qgraphflow-0.0.6.zip](https://github.com/supermax92/qgraphflow/releases/download/v0.0.6/qgraphflow-0.0.6.zip) をダウンロードし、隠しファイルを保持したまま専用のディレクトリに展開します。
|
|
66
|
+
|
|
67
|
+
以下のコマンドはすべて、**展開後の `skills/` を含むプラグインのルートディレクトリ**で実行してください。
|
|
68
|
+
|
|
69
|
+
### 2. クライアントにインストール
|
|
70
|
+
|
|
71
|
+
#### Codex App / CLI
|
|
72
|
+
|
|
73
|
+
ターミナルで Codex CLI を使用できるよう、あらかじめインストールしてください。
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
codex plugin marketplace add .
|
|
77
|
+
codex plugin add qgraphflow@supermax92
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
新しいセッションを開始し、`$` を入力して `qgraphflow:q-flow` を選択します。
|
|
81
|
+
|
|
82
|
+
#### Claude Code
|
|
83
|
+
|
|
84
|
+
ZIP をダウンロードせず、GitHub から直接インストールします:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
claude plugin marketplace add supermax92/qgraphflow
|
|
88
|
+
claude plugin install qgraphflow@supermax92 --scope user
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
または、展開したプラグインのルートで実行します:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
claude plugin marketplace add .
|
|
95
|
+
claude plugin install qgraphflow@supermax92 --scope user
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
新しいセッションを開始し、`/q-flow`(または完全名 `/qgraphflow:q-flow`)を入力します。
|
|
99
|
+
|
|
100
|
+
#### Qoder CLI
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
qodercli plugins install .
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
新しいセッションを開始し、`q-flow` を選択します。
|
|
107
|
+
|
|
108
|
+
#### Qoder Desktop
|
|
109
|
+
|
|
110
|
+
**推奨:** **Settings → Plugins → Marketplace** を開き、**代码图谱可视化** または **qgraphflow** を検索してインストールします。新しいセッションを開始し、`q-flow` を選択します。ZIP のダウンロードやソースのビルドは不要です。
|
|
111
|
+
|
|
112
|
+
ローカルインストールの場合は手順 1 を完了し、**Settings → Plugins → Custom → Import** を開いて、展開したプラグインのルートディレクトリ全体をインポートします。新しいセッションで `q-flow` を選択します。
|
|
113
|
+
|
|
114
|
+
#### Cursor
|
|
115
|
+
|
|
116
|
+
プラグインのルートディレクトリ内のすべてのファイル(隠しファイルを含む)を、次の場所にコピーします。
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
~/.cursor/plugins/local/qgraphflow/
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
その中に `.cursor-plugin/plugin.json` があることを確認し、ウィンドウを再読み込みして **Customize** で `q-flow` を探します。旧バージョンがある場合は先にバックアップし、新旧のファイルを混在させないでください。
|
|
123
|
+
|
|
124
|
+
### 3. 使い始める
|
|
125
|
+
|
|
126
|
+
クライアントで対象のプロジェクトを開き、新しいセッションでスキルを選択します。下の[すぐに使う](#すぐに使う)の例を参考に依頼し、生成された HTML をブラウザで開いてください。
|
|
127
|
+
|
|
128
|
+
<details>
|
|
129
|
+
<summary>別のインストール方法:npm</summary>
|
|
130
|
+
|
|
131
|
+
ZIP の代わりに npmjs.com からプラグインを取得することもできます。アカウント、ログイン、トークンは不要です。業務プロジェクトの外に専用ディレクトリを作成します。
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
mkdir qgraphflow-install
|
|
135
|
+
cd qgraphflow-install
|
|
136
|
+
npm install qgraphflow --ignore-scripts
|
|
137
|
+
cd node_modules/qgraphflow
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
これでプラグインのルートディレクトリに移動できました。上記のクライアント別インストール手順に進んでください。**npm でダウンロードしても、クライアントへのインストールは自動では行われません。** このパッケージには `qgraphflow` コマンドも含まれ、[図とコードを同期させる](#図とコードを同期させる)で使います。
|
|
141
|
+
|
|
142
|
+
</details>
|
|
143
|
+
|
|
144
|
+
自分でビルドする場合は、[ソースからのビルド手順](https://github.com/supermax92/qgraphflow/blob/main/docs/distribution.md#prepare-locally)を参照してください。
|
|
145
|
+
|
|
146
|
+
## すぐに使う
|
|
147
|
+
|
|
148
|
+
以下は Codex の `$qgraphflow:q-flow` を使う例です。クライアントに `$q-flow` と表示される場合は、その入口を選択してください。他のクライアントでは、上記の対応するスキルの呼び出し方を使います。
|
|
149
|
+
|
|
150
|
+
**どこから始めるか迷ったら:** スキルを呼び出し、案内に従って対象と知りたいことを選びます。
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
$qgraphflow:q-flow
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**目的が決まっているなら:** 「どの部分を描くか+何を知りたいか」を伝えます。先に図の種類を選ぶ必要はありません。
|
|
157
|
+
|
|
158
|
+
### 例1:プロジェクト構造を理解する
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
$qgraphflow:q-flow 現在のプロジェクトを分析し、主要モジュールの責務、依存関係、システム境界を示す日本語のアーキテクチャ図を作成してください。
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
初めて触れるプロジェクトの全体像をつかむのに適しています。
|
|
165
|
+
|
|
166
|
+
### 例2:業務の呼び出しを追う
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
$qgraphflow:q-flow 注文作成フローを分析し、価格計算、在庫引当、支払い、注文保存の呼び出し順と失敗分岐を示す日本語のシーケンス図を作成してください。
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
「注文作成」と各手順を実際の業務フローに置き換えてください。同じ会話で続けて依頼できます。
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
$qgraphflow:q-flow 前の図の在庫引当を掘り下げ、成功時と失敗時の処理を示す日本語のフローチャートを別に作成してください。
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
既定の保存先は `docs/qgraphflow/` 配下です。`index.html` を開いて探索・編集・出力でき、`graph.json` に図データが残ります。各ビューは SVG(`diagram.svg`、複数ビューでは `diagram-<n>-<type>.svg`)としても書き出され、README、プルリクエスト、Wiki に画像として埋め込めます。
|
|
179
|
+
|
|
180
|
+
ページで編集したあと、Chrome または Edge で「その他 → 変更を保存」を実行し、図のフォルダーを一度選ぶと、ページ、`graph.json`、SVG がその場で書き換わります。ほかのブラウザーは `graph.json` だけを保存します。そのフォルダーに置いてから `npx -y qgraphflow generate docs/qgraphflow/<name>/graph.json docs/qgraphflow/<name> --layout preserve --force` でページと SVG を再生成してください。
|
|
181
|
+
|
|
182
|
+
<details>
|
|
183
|
+
<summary>EC の9種類のサンプルを手動で実行</summary>
|
|
184
|
+
|
|
185
|
+
次のコマンドはリポジトリ内のサンプル用です。導入済みプラグインの使用には、このリポジトリの複製は不要です。Node.js 22 以降を用意して実行します。
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
git clone https://github.com/supermax92/qgraphflow.git
|
|
189
|
+
cd qgraphflow
|
|
190
|
+
node skills/q-flow/scripts/validate-graph.mjs examples/showcase/ecommerce.ja.graph.json
|
|
191
|
+
node skills/q-flow/scripts/generate-viewer.mjs examples/showcase/ecommerce.ja.graph.json output/ecommerce-ja
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
ブラウザーで `output/ecommerce-ja/index.html` を開きます。9 つの SVG も同じディレクトリにあります。上部の「図の種類」から切り替えます。各図で保存した文字と位置は切り替えても保持されます。「その他 → 変更を保存」で、上で説明したとおり全ビューを保存します。同じページは[オンラインデモ](https://supermax92.github.io/qgraphflow/)でも見られます。
|
|
195
|
+
|
|
196
|
+
ビルド済み Viewer からのページ生成には、依存関係のインストール、API キー、バックエンドは不要です。AI による根拠収集と図の作成には、選んだクライアントのモデルサービスを使います。
|
|
197
|
+
|
|
198
|
+
</details>
|
|
199
|
+
|
|
200
|
+
## 図とコードを同期させる
|
|
201
|
+
|
|
202
|
+
リポジトリのルートを指定して生成した図には、各コンポーネントの定義位置が記録されます。`--repo-root` 付きで検証すると、記録したファイルがない、行範囲がファイルに収まらない、記録したシンボルが元の行範囲から外れた、のいずれかで失敗し、エラーにはシンボルの現在の行が示されます。次のジョブを CI に追加してください。ビルド、ログイン、トークンは不要です。
|
|
203
|
+
|
|
204
|
+
```yaml
|
|
205
|
+
name: Diagrams
|
|
206
|
+
on: [push, pull_request]
|
|
207
|
+
jobs:
|
|
208
|
+
diagrams:
|
|
209
|
+
runs-on: ubuntu-latest
|
|
210
|
+
steps:
|
|
211
|
+
- uses: actions/checkout@v7
|
|
212
|
+
- uses: actions/setup-node@v7
|
|
213
|
+
with:
|
|
214
|
+
node-version: '22'
|
|
215
|
+
- run: |
|
|
216
|
+
for graph in docs/qgraphflow/*/graph.json; do
|
|
217
|
+
npx -y qgraphflow validate "$graph" --input-only --repo-root . || { echo "::error file=$graph::$graph failed validation"; failed=1; }
|
|
218
|
+
done
|
|
219
|
+
exit ${failed:-0}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
失敗したら、スキルにその図の更新を頼みます。
|
|
223
|
+
|
|
224
|
+
```text
|
|
225
|
+
$qgraphflow:q-flow CI で docs/qgraphflow/order-sequence の図が古いと出ました。更新してください。
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
スキルは、ファイル内で 1 か所だけ見つかったシンボルのアンカーを移し、なお失敗するアンカーだけを修正し、編集した位置と文字を保ったままページと SVG を再生成します。図を描き直すことはしません。
|
|
229
|
+
|
|
230
|
+
## 9種類の図が答えること
|
|
231
|
+
|
|
232
|
+
| 図 · PNG | 主な問い | サンプルの範囲 |
|
|
233
|
+
| --- | --- | --- |
|
|
234
|
+
| アーキテクチャ | どの責務が協調するか? | チャネル、決済、価格、リスク、在庫、支払い、注文、イベント、出荷 |
|
|
235
|
+
| フローチャート | 判断はどこで分岐・合流するか? | 欠品、リスク拒否、支払い補償、正常コミット |
|
|
236
|
+
| シーケンス | 呼び出しと戻りの順序は? | 決済成功経路と非同期 OrderPaid |
|
|
237
|
+
| ER | 主要データはどう関連するか? | カート、注文、明細、支払い、引当、荷物 |
|
|
238
|
+
| 配置 | 実行単位をどこに置き、どう接続するか? | エッジ、Kubernetes、データサービス、支払い、倉庫配送ネットワーク |
|
|
239
|
+
| クラス | ドメインオブジェクトと契約はどう依存するか? | 決済サービス、Order、4つのポート |
|
|
240
|
+
| 状態 | どのイベントとガードが注文を進めるか? | 支払い、出荷、取消、返金、終了 |
|
|
241
|
+
| ユースケース | 各利用者に何ができるか? | 購入者、店舗、倉庫、サポート |
|
|
242
|
+
| データフロー | データをどう変換・保存するか? | カート、取引判断、注文イベント、倉庫、配送受領記録 |
|
|
243
|
+
|
|
244
|
+
これは QGraphFlow の機能を示す概念モデルで、特定の EC リポジトリに対応しません。サンプルの `graph.json` に架空のソースパスは入れず、関係の証拠を `inference` に統一しています。実際のプロジェクトでは、追跡可能なソース、DDL、設定、テスト、合意済み要件を使ってください。
|
|
245
|
+
|
|
246
|
+
## 開発と参加
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
npm ci --prefix skills/q-flow/assets/viewer
|
|
250
|
+
npm run build --prefix skills/q-flow/assets/viewer
|
|
251
|
+
node --test tests/*.test.mjs skills/q-flow/scripts/*.test.mjs
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
開発には Node.js 22 以降、npm、tar、zip、unzip が必要です。問題報告には、機密情報を除いた最小限の図データ、クライアントとブラウザーのバージョン、再現手順を添えてください。
|
|
255
|
+
|
|
256
|
+
リファレンス(英語):[証拠の出典](../../skills/q-flow/references/evidence-sources.md) · [図データ形式](../../skills/q-flow/references/graph-schema.md) · [対話による要件確認](../../skills/q-flow/references/guided-intake.md) · [Viewer の開発](../../skills/q-flow/references/viewer-development.md) · [図の構成](../../skills/q-flow/references/visual-contract.md)
|
|
257
|
+
|
|
258
|
+
## ライセンスと帰属
|
|
259
|
+
|
|
260
|
+
[MIT](../../LICENSE) · [第三者の表示](../../THIRD_PARTY_NOTICES.md)
|
|
261
|
+
|
|
262
|
+
QGraphFlow は MIT ライセンスの独立プロジェクトです。本文のシナリオは概念例で、実在する企業の本番構成を表しません。提携、後援、推奨を意味するものでもありません。
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# QGraphFlow
|
|
4
|
+
|
|
5
|
+
### Transforme código complexo em diagramas que você pode explorar.
|
|
6
|
+
|
|
7
|
+
Siga o caminho. Confira as evidências. Compartilhe um arquivo offline.
|
|
8
|
+
|
|
9
|
+
<sub>💡 Inspirado em <a href="https://github.com/Cocoon-AI/architecture-diagram-generator">Cocoon-AI/architecture-diagram-generator</a> — agradecemos pela ideia.</sub>
|
|
10
|
+
|
|
11
|
+
[English](../../README.md) · [中文](../../docs/readme/README.zh-CN.md) · [Русский](../../docs/readme/README.ru.md) · [Português](../../docs/readme/README.pt.md) · [日本語](../../docs/readme/README.ja.md) · [Deutsch](../../docs/readme/README.de.md) · [Español](../../docs/readme/README.es.md)
|
|
12
|
+
|
|
13
|
+
[Demonstração online](https://supermax92.github.io/qgraphflow/) · [Instalação por cliente](#guia-de-instalação) · [Relatar problema](https://github.com/supermax92/qgraphflow/issues) · [MIT](../../LICENSE)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
*Nove tipos: arquitetura, fluxograma, sequência, ER, implantação, classes, estados, casos de uso e fluxo de dados.*
|
|
20
|
+
|
|
21
|
+
QGraphFlow gera diagramas de software interativos a partir de código, esquemas, configuração e requisitos. As relações podem ser verificadas e o resultado é um HTML offline compartilhável.
|
|
22
|
+
|
|
23
|
+
**O que o diferencia:** nove tipos de diagrama em uma só habilidade, a origem de cada relação, layout automático, edição na própria página e nenhuma requisição de rede dos scripts do plugin nem do próprio Viewer.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx skills add supermax92/qgraphflow
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Um só comando instala a habilidade para Claude Code, Codex, Cursor e Qoder; a instalação como plugin e os demais clientes estão no [guia de instalação](#guia-de-instalação).
|
|
30
|
+
|
|
31
|
+
- **Explorar:** pesquisar, ampliar e deslocar a tela; entender responsabilidades e relações de entrada e saída.
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
- **Verificar:** inspecionar nós e conexões para conferir arquivos, linhas, símbolos e incertezas explícitas.
|
|
36
|
+
|
|
37
|
+

|
|
38
|
+
|
|
39
|
+
- **Editar:** desbloquear o layout, alterar textos e mover elementos; redefinir quando necessário.
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
- **Compartilhar:** abrir o HTML offline ou exportar o diagrama completo em SVG / PNG.
|
|
44
|
+
|
|
45
|
+

|
|
46
|
+
|
|
47
|
+
A animação do topo mostra arquitetura, sequência e ER por 1,5 segundo cada (4,5 segundos por ciclo); as quatro animações de recursos duram de 6,5 a 8,5 segundos. Todas foram gravadas no Viewer construído a partir do código-fonte sobre o [exemplo agent-desk](../../examples/showcase/agent-desk) — negócio fictício, código real — com diagramas e interface em português. Estão hospedadas como [assets da Release showcase-v2](https://github.com/supermax92/qgraphflow/releases/tag/showcase-v2), fora do histórico Git e do pacote do plugin, portanto vê-las exige rede; o HTML gerado do diagrama funciona offline.
|
|
48
|
+
|
|
49
|
+
## Guia de instalação
|
|
50
|
+
|
|
51
|
+
Você precisa do Node.js 22 ou posterior e de um cliente com suporte a plugins e acesso ao modelo configurado.
|
|
52
|
+
|
|
53
|
+
### Instalação rápida
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npx skills add supermax92/qgraphflow
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Testado com `skills` 1.7.0 no Claude Code, Codex, Cursor e Qoder. O comando pergunta em quais clientes instalar; `-a claude-code` indica um diretamente e `-g` instala para o seu usuário em vez do projeto atual. A habilidade é instalada como `q-flow`, sem o prefixo `qgraphflow:` das instalações como plugin abaixo.
|
|
60
|
+
|
|
61
|
+
Para instalar como plugin, siga as etapas abaixo. No [Qoder Desktop](#qoder-desktop), você pode instalar pelo Marketplace e pular a etapa 1.
|
|
62
|
+
|
|
63
|
+
### 1. Baixe o plugin
|
|
64
|
+
|
|
65
|
+
Baixe [qgraphflow-0.0.6.zip](https://github.com/supermax92/qgraphflow/releases/download/v0.0.6/qgraphflow-0.0.6.zip) e extraia em um diretório separado, preservando os arquivos ocultos.
|
|
66
|
+
|
|
67
|
+
Execute os comandos abaixo na **raiz do plugin extraído, que contém `skills/`**.
|
|
68
|
+
|
|
69
|
+
### 2. Instale no seu cliente
|
|
70
|
+
|
|
71
|
+
#### Codex App / CLI
|
|
72
|
+
|
|
73
|
+
O Codex CLI precisa estar instalado e disponível no terminal:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
codex plugin marketplace add .
|
|
77
|
+
codex plugin add qgraphflow@supermax92
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Inicie uma nova sessão, digite `$` e selecione `qgraphflow:q-flow`.
|
|
81
|
+
|
|
82
|
+
#### Claude Code
|
|
83
|
+
|
|
84
|
+
Instale diretamente do GitHub sem baixar o ZIP:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
claude plugin marketplace add supermax92/qgraphflow
|
|
88
|
+
claude plugin install qgraphflow@supermax92 --scope user
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Ou, a partir da raiz do plugin extraído:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
claude plugin marketplace add .
|
|
95
|
+
claude plugin install qgraphflow@supermax92 --scope user
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Inicie uma nova sessão e digite `/q-flow` (ou o nome completo `/qgraphflow:q-flow`).
|
|
99
|
+
|
|
100
|
+
#### Qoder CLI
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
qodercli plugins install .
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Inicie uma nova sessão e selecione `q-flow`.
|
|
107
|
+
|
|
108
|
+
#### Qoder Desktop
|
|
109
|
+
|
|
110
|
+
**Recomendado:** Abra **Settings → Plugins → Marketplace**, pesquise **代码图谱可视化** ou **qgraphflow** e instale o plugin. Inicie uma nova sessão e selecione `q-flow`. Não é necessário baixar um ZIP nem compilar o código-fonte.
|
|
111
|
+
|
|
112
|
+
Para uma instalação local, conclua primeiro a etapa 1. Depois, abra **Settings → Plugins → Custom → Import** e importe o diretório raiz completo do plugin extraído. Inicie uma nova sessão e selecione `q-flow`.
|
|
113
|
+
|
|
114
|
+
#### Cursor
|
|
115
|
+
|
|
116
|
+
Copie todo o conteúdo da raiz do plugin, incluindo os arquivos ocultos, para:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
~/.cursor/plugins/local/qgraphflow/
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Confirme que `.cursor-plugin/plugin.json` existe nesse local, recarregue a janela e encontre `q-flow` em **Customize**. Se houver uma versão anterior, faça backup primeiro; não misture arquivos antigos e novos.
|
|
123
|
+
|
|
124
|
+
### 3. Comece a usar
|
|
125
|
+
|
|
126
|
+
Abra seu projeto no cliente, inicie uma nova sessão e selecione a habilidade. Descreva a tarefa seguindo os exemplos de [Início rápido](#início-rápido) abaixo. Abra o HTML gerado no navegador.
|
|
127
|
+
|
|
128
|
+
<details>
|
|
129
|
+
<summary>Outra forma de instalação: npm</summary>
|
|
130
|
+
|
|
131
|
+
Você também pode obter o plugin no npmjs.com em vez do ZIP, sem conta, login nem token. Crie um diretório separado, fora do projeto da sua aplicação:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
mkdir qgraphflow-install
|
|
135
|
+
cd qgraphflow-install
|
|
136
|
+
npm install qgraphflow --ignore-scripts
|
|
137
|
+
cd node_modules/qgraphflow
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Agora você está na raiz do plugin. Continue com as etapas de instalação no cliente acima. **Baixar pelo npm não instala automaticamente o plugin no cliente.** O pacote também oferece o comando `qgraphflow`, usado em [Mantenha os diagramas em sincronia com o código](#mantenha-os-diagramas-em-sincronia-com-o-código).
|
|
141
|
+
|
|
142
|
+
</details>
|
|
143
|
+
|
|
144
|
+
Quer compilar por conta própria? Consulte as [instruções de compilação do código-fonte](https://github.com/supermax92/qgraphflow/blob/main/docs/distribution.md#prepare-locally).
|
|
145
|
+
|
|
146
|
+
## Início rápido
|
|
147
|
+
|
|
148
|
+
Os exemplos usam `$qgraphflow:q-flow` no Codex. Se o cliente mostrar `$q-flow`, selecione essa entrada. Nos demais clientes, use a forma de chamada da habilidade indicada acima.
|
|
149
|
+
|
|
150
|
+
**Sem saber por onde começar?** Chame a habilidade e escolha o assunto e a pergunta quando solicitado.
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
$qgraphflow:q-flow
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Já tem um objetivo?** Diga qual parte deseja desenhar e o que quer entender. Não é preciso escolher o tipo de diagrama antes.
|
|
157
|
+
|
|
158
|
+
### Exemplo 1: Entender a arquitetura
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
$qgraphflow:q-flow Analise este projeto e crie um diagrama de arquitetura em português com responsabilidades dos módulos, dependências e limites do sistema.
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Útil para conhecer a estrutura geral ao entrar em um projeto.
|
|
165
|
+
|
|
166
|
+
### Exemplo 2: Acompanhar um fluxo de negócio
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
$qgraphflow:q-flow Analise a criação de pedidos e gere um diagrama de sequência em português com cálculo de preços, reserva de estoque, pagamento e persistência do pedido, incluindo os ramos de falha.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Substitua a criação de pedidos e suas etapas pelo fluxo real do projeto. Continue na mesma conversa:
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
$qgraphflow:q-flow Expanda a reserva de estoque do diagrama anterior em um fluxograma separado em português, mostrando o tratamento de sucesso e falha.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Os resultados ficam em `docs/qgraphflow/` por padrão. Abra `index.html` para explorar, editar e exportar; `graph.json` mantém os dados do grafo. Cada vista também é gravada como SVG (`diagram.svg`, ou `diagram-<n>-<type>.svg` quando há várias vistas), que pode ser incorporado como imagem em um README, pull request ou wiki.
|
|
179
|
+
|
|
180
|
+
Depois de editar na página, **Mais → Salvar alterações** no Chrome ou no Edge regrava a página, o `graph.json` e os SVG no lugar, depois que você escolhe a pasta do diagrama uma vez. Outros navegadores salvam só o `graph.json`: coloque-o na pasta e gere de novo a página e os SVG com `npx -y qgraphflow generate docs/qgraphflow/<name>/graph.json docs/qgraphflow/<name> --layout preserve --force`.
|
|
181
|
+
|
|
182
|
+
<details>
|
|
183
|
+
<summary>Executar manualmente o exemplo de comércio com nove vistas</summary>
|
|
184
|
+
|
|
185
|
+
Os comandos abaixo executam o exemplo do repositório. Usar um plugin já instalado não exige clonar este repositório. Com Node.js 22 ou posterior:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
git clone https://github.com/supermax92/qgraphflow.git
|
|
189
|
+
cd qgraphflow
|
|
190
|
+
node skills/q-flow/scripts/validate-graph.mjs examples/showcase/ecommerce.pt.graph.json
|
|
191
|
+
node skills/q-flow/scripts/generate-viewer.mjs examples/showcase/ecommerce.pt.graph.json output/ecommerce-pt
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Abra `output/ecommerce-pt/index.html` no navegador; os nove SVG ficam ao lado. Alterne em **Tipos de diagrama** na barra superior; cada vista mantém seus textos e posições salvos. **Mais → Salvar alterações** salva todas as vistas como descrito acima. As mesmas páginas estão na [demonstração online](https://supermax92.github.io/qgraphflow/).
|
|
195
|
+
|
|
196
|
+
O Viewer pré-compilado não exige instalar dependências, chave de API ou backend. A coleta de evidências e a criação de diagramas por IA usam o serviço de modelos do cliente escolhido.
|
|
197
|
+
|
|
198
|
+
</details>
|
|
199
|
+
|
|
200
|
+
## Mantenha os diagramas em sincronia com o código
|
|
201
|
+
|
|
202
|
+
Um diagrama gerado com a raiz do repositório registra onde cada componente é definido. A validação com `--repo-root` falha quando um arquivo registrado sumiu, um intervalo de linhas não cabe mais no arquivo ou um símbolo registrado saiu das suas linhas, e o erro indica as linhas em que o símbolo está agora. Adicione este job ao seu CI; ele não precisa de build, login nem token:
|
|
203
|
+
|
|
204
|
+
```yaml
|
|
205
|
+
name: Diagrams
|
|
206
|
+
on: [push, pull_request]
|
|
207
|
+
jobs:
|
|
208
|
+
diagrams:
|
|
209
|
+
runs-on: ubuntu-latest
|
|
210
|
+
steps:
|
|
211
|
+
- uses: actions/checkout@v7
|
|
212
|
+
- uses: actions/setup-node@v7
|
|
213
|
+
with:
|
|
214
|
+
node-version: '22'
|
|
215
|
+
- run: |
|
|
216
|
+
for graph in docs/qgraphflow/*/graph.json; do
|
|
217
|
+
npx -y qgraphflow validate "$graph" --input-only --repo-root . || { echo "::error file=$graph::$graph failed validation"; failed=1; }
|
|
218
|
+
done
|
|
219
|
+
exit ${failed:-0}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Quando falhar, peça à habilidade para atualizar o diagrama:
|
|
223
|
+
|
|
224
|
+
```text
|
|
225
|
+
$qgraphflow:q-flow O CI diz que docs/qgraphflow/order-sequence está desatualizado. Atualize-o.
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
A habilidade move as âncoras cujo símbolo aparece uma única vez no arquivo, corrige apenas as âncoras que ainda falham e gera de novo a página e os SVG, mantendo as posições e os textos que você editou. Ela não redesenha o diagrama.
|
|
229
|
+
|
|
230
|
+
## O que cada uma das nove vistas responde
|
|
231
|
+
|
|
232
|
+
| Vista · PNG | Pergunta principal | Escopo do exemplo |
|
|
233
|
+
| --- | --- | --- |
|
|
234
|
+
| Arquitetura | Quais responsabilidades colaboram? | Canais, compra, preços, risco, estoque, pagamento, pedidos, eventos e entrega |
|
|
235
|
+
| Fluxograma | Onde o processo se ramifica e converge? | Falta de estoque, recusa de risco, compensação de pagamento e confirmação bem-sucedida |
|
|
236
|
+
| Sequência | Em que ordem ocorrem chamadas e retornos? | Compra bem-sucedida e OrderPaid assíncrono |
|
|
237
|
+
| ER | Como os dados centrais se relacionam? | Carrinho, pedidos, itens, pagamentos, reservas e pacotes |
|
|
238
|
+
| Implantação | Onde as unidades executam e se conectam? | Borda, Kubernetes, serviços de dados, pagamentos e redes logísticas |
|
|
239
|
+
| Classes | Como objetos de domínio e contratos dependem entre si? | Serviço de compra, Order e quatro portas |
|
|
240
|
+
| Estados | Quais eventos e condições avançam um pedido? | Pagamento, entrega, cancelamento, reembolso e encerramento |
|
|
241
|
+
| Casos de uso | O que cada ator pode fazer? | Comprador, lojista, depósito e atendimento |
|
|
242
|
+
| Fluxo de dados | Como os dados são transformados e armazenados? | Carrinho, decisões, eventos, depósito e comprovantes de entrega |
|
|
243
|
+
|
|
244
|
+
Este modelo conceitual demonstra o QGraphFlow e não corresponde a um repositório de comércio específico. O exemplo `graph.json` não inventa caminhos de código e marca as evidências das relações como `inference`. Diagramas reais precisam de código, DDL, configuração, testes e requisitos aceitos rastreáveis.
|
|
245
|
+
|
|
246
|
+
## Desenvolvimento e contribuição
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
npm ci --prefix skills/q-flow/assets/viewer
|
|
250
|
+
npm run build --prefix skills/q-flow/assets/viewer
|
|
251
|
+
node --test tests/*.test.mjs skills/q-flow/scripts/*.test.mjs
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
São necessários Node.js 22 ou posterior, npm, tar, zip e unzip. Ao relatar problemas, inclua um grafo mínimo sem informações sensíveis, versões do cliente e navegador e passos de reprodução.
|
|
255
|
+
|
|
256
|
+
Documentação de referência (em inglês): [Fontes de evidência](../../skills/q-flow/references/evidence-sources.md) · [Formato dos grafos](../../skills/q-flow/references/graph-schema.md) · [Consulta guiada](../../skills/q-flow/references/guided-intake.md) · [Desenvolvimento do Viewer](../../skills/q-flow/references/viewer-development.md) · [Composição de diagramas](../../skills/q-flow/references/visual-contract.md)
|
|
257
|
+
|
|
258
|
+
## Licença e atribuição
|
|
259
|
+
|
|
260
|
+
[MIT](../../LICENSE) · [Avisos de terceiros](../../THIRD_PARTY_NOTICES.md)
|
|
261
|
+
|
|
262
|
+
QGraphFlow é um projeto independente sob a licença MIT. Os cenários deste documento são conceituais e não representam a arquitetura de produção de nenhuma empresa; não implica afiliação, patrocínio ou endosso.
|