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