@handsupmin/gc-tree 0.1.3 → 0.2.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/README.es.md +172 -88
- package/README.ja.md +175 -91
- package/README.ko.md +177 -93
- package/README.md +169 -85
- package/README.zh.md +173 -89
- package/dist/src/resolve.js +40 -6
- package/docs/concept.es.md +37 -37
- package/docs/concept.ja.md +43 -43
- package/docs/concept.ko.md +41 -41
- package/docs/concept.md +15 -15
- package/docs/concept.zh.md +37 -37
- package/docs/local-development.es.md +25 -25
- package/docs/local-development.ja.md +22 -22
- package/docs/local-development.ko.md +25 -25
- package/docs/local-development.md +3 -3
- package/docs/local-development.zh.md +23 -23
- package/docs/principles.es.md +27 -26
- package/docs/principles.ja.md +28 -27
- package/docs/principles.ko.md +29 -28
- package/docs/principles.md +4 -4
- package/docs/principles.zh.md +28 -27
- package/docs/usage.es.md +32 -30
- package/docs/usage.ja.md +45 -43
- package/docs/usage.ko.md +41 -39
- package/docs/usage.md +2 -2
- package/docs/usage.zh.md +46 -44
- package/package.json +9 -2
package/README.ja.md
CHANGED
|
@@ -1,165 +1,249 @@
|
|
|
1
1
|
# gc-tree
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
<img src="./logo.png" alt="gc-tree logo" width="260" />
|
|
6
|
+
|
|
7
|
+
### プロジェクトの外まで届くグローバルコンテキスト。
|
|
8
|
+
|
|
9
|
+
今使っている AI ツールに、長く使える再利用可能なコンテキストレイヤーを重ねましょう。
|
|
10
|
+
Git のブランチ感覚で、複数のコンテキストを分けて持てます。
|
|
11
|
+
|
|
12
|
+
[](https://www.npmjs.com/package/@handsupmin/gc-tree)
|
|
13
|
+
[](https://www.npmjs.com/package/@handsupmin/gc-tree)
|
|
14
|
+
[](https://github.com/handsupmin/gc-tree/stargazers)
|
|
15
|
+
[](https://github.com/handsupmin/gc-tree/blob/main/LICENSE)
|
|
16
|
+
[](https://nodejs.org)
|
|
4
17
|
|
|
5
18
|
[English](https://github.com/handsupmin/gc-tree/blob/main/README.md) | [한국어](https://github.com/handsupmin/gc-tree/blob/main/README.ko.md) | [简体中文](https://github.com/handsupmin/gc-tree/blob/main/README.zh.md) | [日本語](https://github.com/handsupmin/gc-tree/blob/main/README.ja.md) | [Español](https://github.com/handsupmin/gc-tree/blob/main/README.es.md)
|
|
6
19
|
|
|
7
|
-
|
|
20
|
+
</div>
|
|
8
21
|
|
|
9
|
-
|
|
10
|
-
長期的なコンテキストに、ファイルベースで再利用しやすく、ブランチ単位で切り替えられる明確な置き場所を与え、既存のワークフローにも自然に組み込めます。
|
|
22
|
+
---
|
|
11
23
|
|
|
12
|
-
|
|
24
|
+
## 問題
|
|
13
25
|
|
|
14
|
-
|
|
15
|
-
- 隠れたメモリではなく、markdown 文書を source of truth として管理する
|
|
16
|
-
- 小さなインデックスと summary-first ドキュメントで必要なコンテキストを素早く見つける
|
|
17
|
-
- 好みの LLM CLI を使ってオンボーディングと永続更新を進める
|
|
18
|
-
- ある gc-branch が本当に関係するリポジトリでだけ使われるようにする
|
|
26
|
+
Claude Code や Codex を毎日使っています。でも実際の仕事は複数のリポジトリ、プロダクト、クライアントにまたがっていて——AI ツールは今開いているファイルしか知りません。
|
|
19
27
|
|
|
20
|
-
|
|
28
|
+
だから毎回こうなってしまいます:
|
|
21
29
|
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
- **対話的な範囲ガード**
|
|
27
|
-
`gctree resolve` が現在のリポジトリをまだこの gc-branch に結び付けていないと判断した場合、今回だけ使うか、今後も使うか、ここでは無視するかを選べます。
|
|
28
|
-
- **Summary-first ドキュメント構造**
|
|
29
|
-
ツールはまず短い要約を読み、必要なときだけ全文を読み込めます。
|
|
30
|
-
- **ガイド付きの永続更新**
|
|
31
|
-
JSON ファイルを手で作らなくても、同じ provider フローでグローバルコンテキストを更新できます。
|
|
30
|
+
- どのリポジトリが一緒に動くか、また最初から説明する
|
|
31
|
+
- 同じアーキテクチャ文書をプロンプトに貼り直す
|
|
32
|
+
- 先週「もう知っていた」規約をもう一度教える
|
|
33
|
+
- 今のリポジトリと無関係なコンテキストを手作業で取り除く
|
|
32
34
|
|
|
33
|
-
|
|
35
|
+
これは AI の問題ではありません。**コンテキスト管理の問題**です。
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
---
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
npm install -g @handsupmin/gc-tree
|
|
39
|
-
```
|
|
39
|
+
## gc-tree がやること
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
`gc-tree` は**リポジトリより上のレイヤー**に位置します。コンテキストを構造化された Markdown ファイルに保存し、AI ツールがセッションのたびに関連するものだけを自動で引き出せるようにします。
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
|
|
44
|
+
gctree resolve --query "auth token rotation policy"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"gc_branch": "main",
|
|
50
|
+
"matches": [
|
|
51
|
+
{
|
|
52
|
+
"title": "認証 & セッション規約",
|
|
53
|
+
"score": 4,
|
|
54
|
+
"summary": "すべてのリクエストで JWT rotation、refresh token は httpOnly Cookie に保存、access token の TTL は 15 分",
|
|
55
|
+
"excerpt": "## 認証フロー\nAccess token:15 分 TTL、認証リクエストのたびに rotation..."
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
AI ツールに渡るのは正しいコンテキスト——ナレッジベース全体ではなく、関係する部分だけです。
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
**実測値:1 クエリあたり全コンテキストの約 4% だけ注入されます。** 残り 96% は実際に必要になるまでディスクに留まり、トークンウィンドウに入りません。
|
|
55
64
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## こんな人に向いています
|
|
68
|
+
|
|
69
|
+
以下に当てはまるなら、gc-tree が一番よく効きます:
|
|
70
|
+
|
|
71
|
+
- **複数のリポジトリ**にまたがって仕事をしている(モノレポチーム、プラットフォーム + クライアントリポジトリ、バックエンド + フロントエンドスタック)
|
|
72
|
+
- 同じ週に**複数のプロダクトやクライアント**を行き来している
|
|
73
|
+
- AI セッションを開くたびに**同じコンテキストを繰り返し説明**している
|
|
74
|
+
- AI ツールに今のファイルだけでなく**規約・アーキテクチャ・ドメイン知識**まで理解してほしい
|
|
75
|
+
|
|
76
|
+
リポジトリ一つ、プロダクト一つで完結するなら、このツールは必要ありません。`CLAUDE.md` や `.cursorrules` で十分です。
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## CLAUDE.md や cursor rules との違いは?
|
|
81
|
+
|
|
82
|
+
`CLAUDE.md` は優れています——一つのリポジトリにおいては。
|
|
83
|
+
|
|
84
|
+
複数のリポジトリ・クライアント・ワークストリームが増えた瞬間:
|
|
85
|
+
|
|
86
|
+
| | `CLAUDE.md` / cursor rules | `gc-tree` |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| スコープ | リポジトリ一つ | 複数リポジトリ、コンテキスト一つ |
|
|
89
|
+
| 永続化 | リポジトリ内のファイル | リポジトリ外に保存、セッション間で再利用 |
|
|
90
|
+
| コンテキスト切り替え | ファイルを手で編集 | `gctree checkout client-b` |
|
|
91
|
+
| 関連性フィルタリング | 全部か何もないか | 一致したドキュメントだけ注入(約 4%) |
|
|
92
|
+
| オンボーディング | 手書き | AI ツールがガイド |
|
|
93
|
+
| Codex 対応 | ✅ | ✅ |
|
|
94
|
+
| Claude Code 対応 | ✅ | ✅ |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 検証済みのパフォーマンス
|
|
99
|
+
|
|
100
|
+
実際の社内ドキュメントでテスト(Notion エクスポート 4 件、日本語・英語混合クエリ):
|
|
59
101
|
|
|
60
|
-
|
|
102
|
+
| 指標 | 結果 |
|
|
103
|
+
|---|---|
|
|
104
|
+
| Recall——関連クエリが正しい文書を見つける割合 | **100%**(16/16) |
|
|
105
|
+
| Precision——無関係なクエリが空を返す割合 | **80%**(4/5) |
|
|
106
|
+
| F1 スコア | **88.9%** |
|
|
107
|
+
| クエリあたりの注入トークン割合(全体比) | **約 4%** |
|
|
108
|
+
| 日英混合クエリ対応 | ✅ |
|
|
61
109
|
|
|
62
|
-
|
|
63
|
-
- デフォルトの `main` gc-branch を作成する
|
|
64
|
-
- provider モード(`claude-code`、`codex`、`both`)を選ばせる
|
|
65
|
-
- `both` を選んだ場合は、今回のオンボーディングをどちらで始めるかをさらに選ばせる
|
|
66
|
-
- 言語(`English`、`Korean`、または自由入力)を選ばせる
|
|
67
|
-
- provider モード、実際のオンボーディング provider、言語を `~/.gctree/settings.json` に保存する
|
|
68
|
-
- 現在の環境に必要なコマンド面を用意する
|
|
69
|
-
- `main` が空であれば、アクティブな gc-branch のガイド付きオンボーディングを開始する
|
|
110
|
+
---
|
|
70
111
|
|
|
71
|
-
|
|
112
|
+
## Claude Code と Codex、両方で動作検証済み
|
|
72
113
|
|
|
73
114
|
```bash
|
|
74
|
-
gctree
|
|
115
|
+
gctree scaffold --host claude-code # CLAUDE.md スニペット + /gc-onboard、/gc-update-global-context をインストール
|
|
116
|
+
gctree scaffold --host codex # AGENTS.md スニペット + $gc-onboard、$gc-update-global-context をインストール
|
|
117
|
+
gctree scaffold --host both # 両方同時に
|
|
75
118
|
```
|
|
76
119
|
|
|
77
|
-
|
|
120
|
+
どちらのプロバイダーも同じ基盤のコンテキストストアを使います。一度オンボーディングすれば、どちらのツールからでも使えます。
|
|
78
121
|
|
|
79
|
-
|
|
80
|
-
2. 今後もこのリポジトリでこの gc-branch を使う
|
|
81
|
-
3. このリポジトリではこの gc-branch を無視する
|
|
122
|
+
**Claude Code** — `/gc-resolve-context`、`/gc-onboard`、`/gc-update-global-context` スラッシュコマンドを使用。
|
|
82
123
|
|
|
83
|
-
|
|
124
|
+
**Codex** — `$gc-resolve-context`、`$gc-onboard`、`$gc-update-global-context` スキルを使用。`codex exec` で実際に検証済み:
|
|
84
125
|
|
|
85
|
-
|
|
126
|
+
```
|
|
127
|
+
gctree status → gc_branch: main、doc_count: 2
|
|
128
|
+
gctree resolve --query 'NestJS DTO plainToInstance'
|
|
129
|
+
→「バックエンドコーディング規約」にマッチ(score: 3)
|
|
130
|
+
→ DTO:class-transformer plainToInstance、class-validator 必須
|
|
131
|
+
→ エラー処理:HttpException ベースのカスタム例外、raw Error の throw 禁止
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## インストール & クイックスタート
|
|
86
137
|
|
|
87
138
|
```bash
|
|
88
|
-
|
|
139
|
+
npm install -g @handsupmin/gc-tree
|
|
140
|
+
gctree init
|
|
89
141
|
```
|
|
90
142
|
|
|
91
|
-
`
|
|
143
|
+
`gctree init` が次のことを案内してくれます:
|
|
144
|
+
1. プロバイダーの選択:`claude-code`、`codex`、または `both`
|
|
145
|
+
2. 現在のリポジトリへの統合ファイルのインストール
|
|
146
|
+
3. `main` gc-branch のガイド付きオンボーディング実行
|
|
147
|
+
|
|
148
|
+
その後は、AI ツールが計画・実装の前に `gctree resolve` を呼ぶ流れを自然に覚えます。
|
|
149
|
+
|
|
150
|
+
- **CLI:** `gctree`
|
|
151
|
+
- **動作条件:** Node.js 20+
|
|
92
152
|
|
|
93
|
-
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## よく使う流れ
|
|
156
|
+
|
|
157
|
+
### ワークストリームごとに別々のコンテキストを持つ
|
|
94
158
|
|
|
95
159
|
```bash
|
|
160
|
+
gctree checkout -b client-b
|
|
96
161
|
gctree onboard
|
|
97
162
|
```
|
|
98
163
|
|
|
99
|
-
|
|
164
|
+
各 gc-branch は完全に独立したコンテキストレーンです。Git ブランチと同じ感覚で行き来できます。
|
|
165
|
+
|
|
166
|
+
### 必要なときに関連コンテキストを引き出す
|
|
100
167
|
|
|
101
168
|
```bash
|
|
102
|
-
gctree
|
|
169
|
+
gctree resolve --query "billing retry policy"
|
|
103
170
|
```
|
|
104
171
|
|
|
105
|
-
|
|
172
|
+
一致したドキュメントだけが返ります——タイトル、要約、抜粋。要約で足りなければ、ツールが全文を読みます。
|
|
173
|
+
|
|
174
|
+
### コンテキストを常に最新に保つ
|
|
106
175
|
|
|
107
176
|
```bash
|
|
108
|
-
gctree update-gc
|
|
109
|
-
gctree ugc
|
|
177
|
+
gctree update-global-context # または:gctree update-gc / gctree ugc
|
|
110
178
|
```
|
|
111
179
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
1. まずそのリポジトリを branch repo map に追加する
|
|
115
|
-
2. その後 `gctree update-global-context` を実行して、そのリポジトリが何を担うのか、なぜ重要なのかといった長期コンテキストを追加する
|
|
180
|
+
ガイド付き更新フロー——AI ツールが何が変わったかを確認し、新しいコンテキストを gc-branch に書き戻します。
|
|
116
181
|
|
|
117
|
-
|
|
182
|
+
### コンテキストを特定のリポジトリに限定する
|
|
118
183
|
|
|
119
184
|
```bash
|
|
120
|
-
gctree
|
|
185
|
+
gctree set-repo-scope --branch client-b --include # 現在のリポジトリを含める
|
|
186
|
+
gctree set-repo-scope --branch client-b --exclude # 現在のリポジトリを除外する
|
|
121
187
|
```
|
|
122
188
|
|
|
123
|
-
|
|
189
|
+
`gc-tree` は関係のないリポジトリにコンテキストを注入しません。
|
|
124
190
|
|
|
125
|
-
|
|
191
|
+
---
|
|
126
192
|
|
|
127
|
-
|
|
128
|
-
|
|
193
|
+
## コンテキストの保存構造
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
~/.gctree/
|
|
197
|
+
branches/
|
|
198
|
+
main/
|
|
199
|
+
index.md ← 圧縮インデックス、≤2000 文字、最初にロード
|
|
200
|
+
docs/
|
|
201
|
+
auth.md ← 全文、必要なときだけ読む
|
|
202
|
+
architecture.md
|
|
203
|
+
client-b/
|
|
204
|
+
index.md
|
|
205
|
+
docs/
|
|
206
|
+
...
|
|
207
|
+
branch-repo-map.json ← どのリポジトリがどの gc-branch に属するか
|
|
208
|
+
settings.json ← 優先プロバイダー、言語
|
|
209
|
+
```
|
|
129
210
|
|
|
130
|
-
|
|
211
|
+
コンテキストはリポジトリの外に保存されます——`.gitignore` 設定不要、誤コミットの心配なし、同じ gc-branch を使うすべてのプロジェクトで再利用可能。
|
|
131
212
|
|
|
132
|
-
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 主要コマンド
|
|
133
216
|
|
|
134
217
|
| 目的 | コマンド |
|
|
135
|
-
|
|
136
|
-
| gc-tree
|
|
137
|
-
|
|
|
138
|
-
|
|
|
218
|
+
|---|---|
|
|
219
|
+
| gc-tree を初期化してプロバイダーを選ぶ | `gctree init` |
|
|
220
|
+
| アクティブな gc-branch を確認する | `gctree status` |
|
|
221
|
+
| アクティブなコンテキストを検索する | `gctree resolve --query "..."` |
|
|
222
|
+
| gc-branch を作成または切り替える | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
|
|
223
|
+
| 全 gc-branch を一覧表示する | `gctree branches` |
|
|
224
|
+
| 空の gc-branch をガイド付きオンボーディングする | `gctree onboard` |
|
|
225
|
+
| アクティブな gc-branch をガイド付き更新する | `gctree update-global-context` / `gctree ugc` |
|
|
139
226
|
| リポジトリ範囲ルールを確認する | `gctree repo-map` |
|
|
140
|
-
| gc-branch
|
|
141
|
-
| gc-branch を作成/切り替えする | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
|
|
142
|
-
| 空の gc-branch をオンボードする | `gctree onboard` |
|
|
143
|
-
| 現在の gc-branch を永続更新する | `gctree update-global-context` / `gctree update-gc` / `gctree ugc` |
|
|
227
|
+
| 現在のリポジトリを gc-branch に含める / 除外する | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
144
228
|
| 再オンボーディング前に gc-branch をリセットする | `gctree reset-gc-branch --branch <name> --yes` |
|
|
145
|
-
|
|
|
229
|
+
| 別の環境に scaffold をインストールする | `gctree scaffold --host codex --target /path/to/repo` |
|
|
146
230
|
|
|
147
|
-
|
|
231
|
+
---
|
|
148
232
|
|
|
149
|
-
|
|
233
|
+
## ドキュメント
|
|
150
234
|
|
|
151
235
|
- **コンセプト** — [`docs/concept.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/concept.ja.md)
|
|
152
|
-
`gctree` が何であり、どの課題を解決し、どこまでを担当するのかを説明します。
|
|
153
236
|
- **原則** — [`docs/principles.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/principles.ja.md)
|
|
154
|
-
gc-branch、リポジトリ範囲、summary-first 文書、ガイド付き更新の考え方をまとめています。
|
|
155
237
|
- **使い方** — [`docs/usage.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/usage.ja.md)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
238
|
+
- **ローカル開発** — [`docs/local-development.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.ja.md)
|
|
239
|
+
|
|
240
|
+
---
|
|
159
241
|
|
|
160
242
|
## コントリビュート
|
|
161
243
|
|
|
162
|
-
コントリビューション歓迎です。開発フローと PR
|
|
244
|
+
コントリビューション歓迎です。開発フローと PR チェックリストは [CONTRIBUTING.md](https://github.com/handsupmin/gc-tree/blob/main/CONTRIBUTING.md) を参照してください。
|
|
245
|
+
|
|
246
|
+
---
|
|
163
247
|
|
|
164
248
|
## ライセンス
|
|
165
249
|
|