@handsupmin/gc-tree 0.8.19 → 1.0.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 +43 -34
- package/README.ja.md +44 -35
- package/README.ko.md +43 -34
- package/README.md +43 -34
- package/README.zh.md +44 -35
- package/docs/concept.es.md +2 -2
- package/docs/concept.ja.md +2 -2
- package/docs/concept.ko.md +2 -2
- package/docs/concept.md +2 -2
- package/docs/concept.zh.md +2 -2
- package/docs/local-development.es.md +4 -4
- package/docs/local-development.ja.md +4 -4
- package/docs/local-development.ko.md +4 -4
- package/docs/local-development.md +4 -4
- package/docs/local-development.zh.md +4 -4
- package/docs/principles.es.md +20 -4
- package/docs/principles.ja.md +20 -4
- package/docs/principles.ko.md +20 -4
- package/docs/principles.md +20 -4
- package/docs/principles.zh.md +20 -4
- package/docs/usage.es.md +22 -30
- package/docs/usage.ja.md +22 -30
- package/docs/usage.ko.md +22 -30
- package/docs/usage.md +24 -32
- package/docs/usage.zh.md +22 -30
- package/package.json +2 -4
package/README.es.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<img src="./logo.png" alt="logo de gc-tree" width="260" />
|
|
18
18
|
|
|
19
|
-
### Contexto global
|
|
19
|
+
### Contexto global más allá de CLAUDE.md y AGENTS.md.
|
|
20
20
|
|
|
21
21
|
Añade a tus herramientas de IA una capa de contexto reutilizable y duradera.
|
|
22
22
|
Gestiona varios contextos con la misma naturalidad con la que manejas ramas de Git.
|
|
@@ -35,16 +35,24 @@ Gestiona varios contextos con la misma naturalidad con la que manejas ramas de G
|
|
|
35
35
|
|
|
36
36
|
## El problema
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
La IA no te conoce.
|
|
39
|
+
|
|
40
|
+
No sabe en qué trabajas, cómo trabajas, qué significan los términos de tu equipo ni cuáles son las rutinas que repites sin pensarlo. Si no explicas con precisión lo que quieres, rara vez obtienes el resultado que esperabas.
|
|
39
41
|
|
|
40
42
|
Así que acabas haciendo esto cada vez:
|
|
41
43
|
|
|
44
|
+
- Volver a presentarte y explicar cómo trabajas
|
|
45
|
+
- Volver a explicar el lenguaje de dominio de tu equipo
|
|
42
46
|
- Volver a explicar qué repositorios van juntos
|
|
43
47
|
- Pegar el mismo documento de arquitectura en el prompt otra vez
|
|
44
48
|
- Recordarle al agente las convenciones que ya "sabía" la semana pasada
|
|
45
49
|
- Eliminar manualmente el contexto irrelevante para el repositorio actual
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
No es porque la IA sea tonta. Es porque este tipo de contexto es difícil de mantener vivo dentro de un solo workspace, sobre todo cuando el trabajo real se mueve entre varios repositorios y proyectos.
|
|
52
|
+
|
|
53
|
+
`CLAUDE.md` y `AGENTS.md` funcionan muy bien para describir un repositorio. Pero cuando el trabajo cruza límites entre repos, las relaciones entre repos son difíciles de expresar, el conocimiento compartido se duplica y cada sesión nueva empieza con demasiado poco contexto.
|
|
54
|
+
|
|
55
|
+
`gc-tree` existe para eliminar esa repetición.
|
|
48
56
|
|
|
49
57
|
---
|
|
50
58
|
|
|
@@ -52,12 +60,12 @@ Esto no es un problema de IA. Es un **problema de gestión del contexto**.
|
|
|
52
60
|
|
|
53
61
|
Sacarás más partido a `gc-tree` si:
|
|
54
62
|
|
|
55
|
-
- Trabajas en **múltiples repositorios** (equipos con monorepo, repos de plataforma
|
|
56
|
-
- Cambias entre **múltiples productos o
|
|
63
|
+
- Trabajas en **múltiples repositorios** (equipos con monorepo, repos de plataforma, stacks de backend + frontend)
|
|
64
|
+
- Cambias entre **múltiples productos, proyectos o workstreams**
|
|
57
65
|
- Te encuentras **explicando el mismo contexto** al inicio de cada sesión de IA
|
|
58
|
-
- Quieres que tus herramientas de IA entiendan
|
|
66
|
+
- Quieres que tus herramientas de IA entiendan tu **forma de trabajar, terminología del equipo, arquitectura y conocimiento de dominio** — no solo el archivo actual
|
|
59
67
|
|
|
60
|
-
Si solo trabajas en un repositorio y un producto, no necesitas esto. `CLAUDE.md` o
|
|
68
|
+
Si solo trabajas en un repositorio y un producto, no necesitas esto. `CLAUDE.md` o `AGENTS.md` es suficiente.
|
|
61
69
|
|
|
62
70
|
---
|
|
63
71
|
|
|
@@ -74,7 +82,7 @@ gctree init
|
|
|
74
82
|
2. Instalar los archivos de integración en el repositorio actual
|
|
75
83
|
3. Completar el onboarding guiado para el gc-branch `main`
|
|
76
84
|
|
|
77
|
-
Después, tu herramienta de IA instala integración real de hooks SessionStart/UserPromptSubmit: revisa gc-tree automáticamente antes de trabajar y cachea resultados vacíos/no-match durante la sesión. La salida del hook
|
|
85
|
+
Después, tu herramienta de IA instala integración real de hooks SessionStart/UserPromptSubmit: revisa gc-tree automáticamente antes de trabajar y cachea resultados vacíos/no-match durante la sesión. La salida del hook inyecta los resúmenes de los documentos coincidentes directamente en el contexto — de modo que la IA ve patrones y comandos reales, no solo títulos. Los documentos completos siempre están disponibles bajo demanda mediante `gctree resolve --id <id>`.
|
|
78
86
|
|
|
79
87
|
- **CLI:** `gctree`
|
|
80
88
|
- **Requisito:** Node.js 20+
|
|
@@ -83,7 +91,7 @@ Después, tu herramienta de IA instala integración real de hooks SessionStart/U
|
|
|
83
91
|
|
|
84
92
|
## Qué hace gc-tree
|
|
85
93
|
|
|
86
|
-
`gc-tree` opera **por encima del nivel del repositorio**.
|
|
94
|
+
`gc-tree` opera **por encima del nivel del repositorio**. Guarda tu forma de trabajar, la terminología del equipo, las relaciones entre repositorios y el conocimiento compartido como contexto global duradero. Tus herramientas de IA traen solo lo relevante antes de cada sesión, de forma automática.
|
|
87
95
|
|
|
88
96
|
`gctree resolve` es la **capa de índice compacto** dentro de un flujo de progressive disclosure:
|
|
89
97
|
|
|
@@ -97,18 +105,10 @@ Además, cuando la branch está vacía, el repositorio está excluido o la consu
|
|
|
97
105
|
gctree resolve --query "auth token rotation policy"
|
|
98
106
|
```
|
|
99
107
|
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
{
|
|
105
|
-
"title": "Convenciones de Auth y Sesión",
|
|
106
|
-
"score": 4,
|
|
107
|
-
"summary": "Rotation de JWT en cada petición, refresh tokens en cookies httpOnly, TTL de 15 min para access tokens",
|
|
108
|
-
"excerpt": "## Flujo de Auth\nAccess token: TTL 15 min, rotation en cada petición autenticada..."
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
}
|
|
108
|
+
```
|
|
109
|
+
[gc-tree] 1 matching doc gc-branch="main" repo="my-repo"
|
|
110
|
+
[Auth & Session Conventions] JWT rotation on every request, refresh tokens in httpOnly cookies, 15-min access token TTL
|
|
111
|
+
[Auth & Session Conventions] show full doc: gctree show-doc --id "auth" --branch "main"
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
Tu herramienta de IA recibe el contexto correcto — no toda la base de conocimiento, solo el fragmento relevante.
|
|
@@ -117,17 +117,17 @@ Tu herramienta de IA recibe el contexto correcto — no toda la base de conocimi
|
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
|
-
## ¿En qué se diferencia de CLAUDE.md o
|
|
120
|
+
## ¿En qué se diferencia de CLAUDE.md o AGENTS.md?
|
|
121
121
|
|
|
122
|
-
`CLAUDE.md`
|
|
122
|
+
`CLAUDE.md` y `AGENTS.md` son geniales — para un solo repositorio.
|
|
123
123
|
|
|
124
|
-
En el momento en que tienes múltiples repos,
|
|
124
|
+
En el momento en que tienes múltiples repos, proyectos o workstreams:
|
|
125
125
|
|
|
126
|
-
| | `CLAUDE.md` /
|
|
126
|
+
| | `CLAUDE.md` / `AGENTS.md` | `gc-tree` |
|
|
127
127
|
| -------------------------- | -------------------------- | --------------------------------------------- |
|
|
128
128
|
| Alcance | Un repositorio | Múltiples repos, un contexto |
|
|
129
129
|
| Persistencia | Archivo dentro del repo | Almacenado fuera, reutilizable entre sesiones |
|
|
130
|
-
| Cambio de contexto | Edición manual de archivos | `gctree checkout
|
|
130
|
+
| Cambio de contexto | Edición manual de archivos | `gctree checkout project-b` |
|
|
131
131
|
| Filtrado por relevancia | Todo o nada | Solo inyecta docs coincidentes (~4%) |
|
|
132
132
|
| Onboarding | Escrito a mano | Guiado por tu herramienta de IA |
|
|
133
133
|
| Compatible con Codex | ✅ | ✅ |
|
|
@@ -137,7 +137,7 @@ En el momento en que tienes múltiples repos, clientes o workstreams:
|
|
|
137
137
|
|
|
138
138
|
## Rendimiento validado
|
|
139
139
|
|
|
140
|
-
Probado con
|
|
140
|
+
Probado con fixtures sintéticos multidominio y consultas mixtas en español e inglés:
|
|
141
141
|
|
|
142
142
|
| Métrica | Resultado |
|
|
143
143
|
| ------------------------------------------------------------ | ---------------- |
|
|
@@ -167,9 +167,9 @@ Los dos providers usan el mismo almacén de contexto. Haz el onboarding una vez
|
|
|
167
167
|
```
|
|
168
168
|
gctree status → gc_branch: main, doc_count: 2
|
|
169
169
|
gctree resolve --query 'NestJS DTO plainToInstance'
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
[gc-tree] 1 matching doc gc-branch="main" repo="my-repo"
|
|
171
|
+
[Backend Coding Conventions] DTO: class-transformer plainToInstance, class-validator required. Error handling: HttpException-based custom exceptions, no raw Error throws.
|
|
172
|
+
[Backend Coding Conventions] show full doc: gctree show-doc --id "backend-conventions" --branch "main"
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
---
|
|
@@ -179,7 +179,7 @@ gctree resolve --query 'NestJS DTO plainToInstance'
|
|
|
179
179
|
### Contextos separados para workstreams distintos
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
gctree checkout -b
|
|
182
|
+
gctree checkout -b project-b
|
|
183
183
|
gctree onboard
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -201,11 +201,19 @@ gctree update-global-context # o: gctree update-gc / gctree ugc
|
|
|
201
201
|
|
|
202
202
|
Flujo de actualización guiado — tu herramienta de IA pregunta qué ha cambiado y escribe el nuevo contexto de vuelta al gc-branch.
|
|
203
203
|
|
|
204
|
+
### Mantener gc-tree actualizado
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
gctree update
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Actualiza `@handsupmin/gc-tree` a la última versión de npm y vuelve a instalar todos los providers que ya habías configurado. Úsalo cuando gc-tree publique mejores hooks, comandos, skills o snippets de integración y quieras refrescar tu configuración en un solo paso.
|
|
211
|
+
|
|
204
212
|
### Acotar el contexto a repos específicos
|
|
205
213
|
|
|
206
214
|
```bash
|
|
207
|
-
gctree set-repo-scope --branch
|
|
208
|
-
gctree set-repo-scope --branch
|
|
215
|
+
gctree set-repo-scope --branch project-b --include # incluir el repo actual
|
|
216
|
+
gctree set-repo-scope --branch project-b --exclude # excluir el repo actual
|
|
209
217
|
```
|
|
210
218
|
|
|
211
219
|
`gc-tree` no inyectará un contexto en repos donde no corresponde.
|
|
@@ -222,7 +230,7 @@ gctree set-repo-scope --branch client-b --exclude # excluir el repo actual
|
|
|
222
230
|
docs/
|
|
223
231
|
auth.md ← doc completo, se lee solo cuando hace falta
|
|
224
232
|
architecture.md
|
|
225
|
-
|
|
233
|
+
project-b/
|
|
226
234
|
index.md
|
|
227
235
|
docs/
|
|
228
236
|
...
|
|
@@ -249,6 +257,7 @@ El contexto vive fuera de tus repositorios — sin reglas de `.gitignore`, sin c
|
|
|
249
257
|
| Incluir o excluir el repo actual para un gc-branch | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
250
258
|
| Resetear un gc-branch antes de re-onboard | `gctree reset-gc-branch --branch <name> --yes` |
|
|
251
259
|
| Instalar un override local en un repo | `gctree scaffold --host codex --target /path/to/repo` |
|
|
260
|
+
| Actualizar gctree y reinstalar todos los providers | `gctree update` |
|
|
252
261
|
| Quitar la activación global y el contexto | `gctree uninstall --yes` |
|
|
253
262
|
|
|
254
263
|
---
|
package/README.ja.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<img src="./logo.png" alt="gc-tree logo" width="260" />
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### CLAUDE.md と AGENTS.md だけでは足りないグローバルコンテキスト。
|
|
20
20
|
|
|
21
21
|
今使っている AI ツールに、長く使える再利用可能なコンテキストレイヤーを重ねましょう。
|
|
22
22
|
Git のブランチ感覚で、複数のコンテキストを分けて持てます。
|
|
@@ -35,16 +35,24 @@ Git のブランチ感覚で、複数のコンテキストを分けて持てま
|
|
|
35
35
|
|
|
36
36
|
## 問題
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
AI はあなたのことを知りません。
|
|
39
|
+
|
|
40
|
+
あなたが何をしているのか、どんなやり方で働くのか、チームの用語が何を意味するのか、無意識に繰り返しているルーティンが何なのかを知りません。欲しい結果を正確に説明しなければ、期待する水準の出力はなかなか返ってきません。
|
|
39
41
|
|
|
40
42
|
だから毎回こうなってしまいます:
|
|
41
43
|
|
|
44
|
+
- 自分が誰で、どう働くのかを説明し直す
|
|
45
|
+
- チームで使うドメイン用語を説明し直す
|
|
42
46
|
- どのリポジトリが一緒に動くか、また最初から説明する
|
|
43
47
|
- 同じアーキテクチャ文書をプロンプトに貼り直す
|
|
44
48
|
- 先週「もう知っていた」規約をもう一度教える
|
|
45
49
|
- 今のリポジトリと無関係なコンテキストを手作業で取り除く
|
|
46
50
|
|
|
47
|
-
これは AI
|
|
51
|
+
これは AI が賢くないからではありません。こうした文脈を一つのワークスペースの中で保ち続けるのが難しいからです。特に実際の仕事は一つのリポジトリで完結せず、複数のリポジトリやプロジェクトを行き来しながら進みます。
|
|
52
|
+
|
|
53
|
+
`CLAUDE.md` と `AGENTS.md` は、一つのリポジトリを説明するにはよく合います。ただし複数のリポジトリを一緒に扱い始めると、リポジトリ間の関係を書きづらく、共通の背景知識は重複し、セッションが変わるたびに最初から説明し直すことになります。
|
|
54
|
+
|
|
55
|
+
その繰り返しをなくすために作ったのが `gc-tree` です。
|
|
48
56
|
|
|
49
57
|
---
|
|
50
58
|
|
|
@@ -52,12 +60,12 @@ Claude Code や Codex を毎日使っています。でも実際の仕事は複
|
|
|
52
60
|
|
|
53
61
|
以下に当てはまるなら、gc-tree が一番よく効きます:
|
|
54
62
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
63
|
+
- **複数のリポジトリ**にまたがって仕事をしている(モノレポチーム、プラットフォームリポジトリ、バックエンド + フロントエンドスタック)
|
|
64
|
+
- **複数のプロダクト、プロジェクト、ワークストリーム**を行き来している
|
|
57
65
|
- AI セッションを開くたびに**同じコンテキストを繰り返し説明**している
|
|
58
|
-
- AI
|
|
66
|
+
- AI ツールに今のファイルだけでなく**自分の働き方、チーム用語、アーキテクチャ、ドメイン知識**まで理解してほしい
|
|
59
67
|
|
|
60
|
-
リポジトリ一つ、プロダクト一つで完結するなら、このツールは必要ありません。`CLAUDE.md` や
|
|
68
|
+
リポジトリ一つ、プロダクト一つで完結するなら、このツールは必要ありません。`CLAUDE.md` や `AGENTS.md` で十分です。
|
|
61
69
|
|
|
62
70
|
---
|
|
63
71
|
|
|
@@ -74,7 +82,7 @@ gctree init
|
|
|
74
82
|
2. 現在のリポジトリへの統合ファイルのインストール
|
|
75
83
|
3. `main` gc-branch のガイド付きオンボーディング実行
|
|
76
84
|
|
|
77
|
-
その後は、AI ツールに実際の SessionStart / UserPromptSubmit フック統合が入り、作業前に gc-tree を自動確認し、空結果や no-match
|
|
85
|
+
その後は、AI ツールに実際の SessionStart / UserPromptSubmit フック統合が入り、作業前に gc-tree を自動確認し、空結果や no-match をセッション中キャッシュします。フック出力はマッチしたドキュメントの要約をコンテキストに直接注入します — AI がタイトルだけでなく実際のパターンとコマンドを見られるようにするためです。全文はいつでも `gctree resolve --id <id>` でオンデマンドに取得できます。
|
|
78
86
|
|
|
79
87
|
- **CLI:** `gctree`
|
|
80
88
|
- **動作条件:** Node.js 20+
|
|
@@ -83,7 +91,7 @@ gctree init
|
|
|
83
91
|
|
|
84
92
|
## gc-tree がやること
|
|
85
93
|
|
|
86
|
-
`gc-tree`
|
|
94
|
+
`gc-tree` は**リポジトリより上のレイヤー**に位置します。働き方、チームのドメイン用語、リポジトリ間の関係、共通の背景知識を長く使えるグローバルコンテキストとして保存し、AI ツールがセッションのたびに関連するものだけを自動で引き出せるようにします。
|
|
87
95
|
|
|
88
96
|
`gctree resolve` は、progressive-disclosure ワークフローにおける **compact index layer** です。
|
|
89
97
|
|
|
@@ -97,18 +105,10 @@ gctree init
|
|
|
97
105
|
gctree resolve --query "auth token rotation policy"
|
|
98
106
|
```
|
|
99
107
|
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
{
|
|
105
|
-
"title": "認証 & セッション規約",
|
|
106
|
-
"score": 4,
|
|
107
|
-
"summary": "すべてのリクエストで JWT rotation、refresh token は httpOnly Cookie に保存、access token の TTL は 15 分",
|
|
108
|
-
"excerpt": "## 認証フロー\nAccess token:15 分 TTL、認証リクエストのたびに rotation..."
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
}
|
|
108
|
+
```
|
|
109
|
+
[gc-tree] 1 matching doc gc-branch="main" repo="my-repo"
|
|
110
|
+
[Auth & Session Conventions] JWT rotation on every request, refresh tokens in httpOnly cookies, 15-min access token TTL
|
|
111
|
+
[Auth & Session Conventions] show full doc: gctree show-doc --id "auth" --branch "main"
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
AI ツールに渡るのは正しいコンテキスト——ナレッジベース全体ではなく、関係する部分だけです。
|
|
@@ -117,17 +117,17 @@ AI ツールに渡るのは正しいコンテキスト——ナレッジベー
|
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
|
-
## CLAUDE.md
|
|
120
|
+
## CLAUDE.md、AGENTS.md との違いは?
|
|
121
121
|
|
|
122
|
-
`CLAUDE.md` は優れています——一つのリポジトリにおいては。
|
|
122
|
+
`CLAUDE.md` と `AGENTS.md` は優れています——一つのリポジトリにおいては。
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
複数のリポジトリ・プロジェクト・ワークストリームが増えた瞬間:
|
|
125
125
|
|
|
126
|
-
| | `CLAUDE.md` /
|
|
126
|
+
| | `CLAUDE.md` / `AGENTS.md` | `gc-tree` |
|
|
127
127
|
| -------------------- | -------------------------- | ---------------------------------------- |
|
|
128
128
|
| スコープ | リポジトリ一つ | 複数リポジトリ、コンテキスト一つ |
|
|
129
129
|
| 永続化 | リポジトリ内のファイル | リポジトリ外に保存、セッション間で再利用 |
|
|
130
|
-
| コンテキスト切り替え | ファイルを手で編集 | `gctree checkout
|
|
130
|
+
| コンテキスト切り替え | ファイルを手で編集 | `gctree checkout project-b` |
|
|
131
131
|
| 関連性フィルタリング | 全部か何もないか | 一致したドキュメントだけ注入(約 4%) |
|
|
132
132
|
| オンボーディング | 手書き | AI ツールがガイド |
|
|
133
133
|
| Codex 対応 | ✅ | ✅ |
|
|
@@ -137,7 +137,7 @@ AI ツールに渡るのは正しいコンテキスト——ナレッジベー
|
|
|
137
137
|
|
|
138
138
|
## 検証済みのパフォーマンス
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
合成マルチドメイン fixture と日本語・英語混合クエリでテスト:
|
|
141
141
|
|
|
142
142
|
| 指標 | 結果 |
|
|
143
143
|
| -------------------------------------------- | ----------------- |
|
|
@@ -165,11 +165,11 @@ gctree scaffold --host both # 両方同時に
|
|
|
165
165
|
**Codex** — `$gc-resolve-context`、`$gc-onboard`、`$gc-update-global-context` スキルを使用。`codex exec` で実際に検証済み:
|
|
166
166
|
|
|
167
167
|
```
|
|
168
|
-
gctree status → gc_branch: main
|
|
168
|
+
gctree status → gc_branch: main, doc_count: 2
|
|
169
169
|
gctree resolve --query 'NestJS DTO plainToInstance'
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
[gc-tree] 1 matching doc gc-branch="main" repo="my-repo"
|
|
171
|
+
[Backend Coding Conventions] DTO: class-transformer plainToInstance, class-validator required. Error handling: HttpException-based custom exceptions, no raw Error throws.
|
|
172
|
+
[Backend Coding Conventions] show full doc: gctree show-doc --id "backend-conventions" --branch "main"
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
---
|
|
@@ -179,7 +179,7 @@ gctree resolve --query 'NestJS DTO plainToInstance'
|
|
|
179
179
|
### ワークストリームごとに別々のコンテキストを持つ
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
gctree checkout -b
|
|
182
|
+
gctree checkout -b project-b
|
|
183
183
|
gctree onboard
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -201,11 +201,19 @@ gctree update-global-context # または:gctree update-gc / gctree ugc
|
|
|
201
201
|
|
|
202
202
|
ガイド付き更新フロー——AI ツールが何が変わったかを確認し、新しいコンテキストを gc-branch に書き戻します。
|
|
203
203
|
|
|
204
|
+
### gc-tree 自体を最新に保つ
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
gctree update
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
`@handsupmin/gc-tree` を最新の npm バージョンに更新し、以前インストールしたすべてのプロバイダーを再スキャフォールドします。より良いフック、コマンド、スキル、統合スニペットが配布されたときに、既存の設定を一度で更新できます。
|
|
211
|
+
|
|
204
212
|
### コンテキストを特定のリポジトリに限定する
|
|
205
213
|
|
|
206
214
|
```bash
|
|
207
|
-
gctree set-repo-scope --branch
|
|
208
|
-
gctree set-repo-scope --branch
|
|
215
|
+
gctree set-repo-scope --branch project-b --include # 現在のリポジトリを含める
|
|
216
|
+
gctree set-repo-scope --branch project-b --exclude # 現在のリポジトリを除外する
|
|
209
217
|
```
|
|
210
218
|
|
|
211
219
|
`gc-tree` は関係のないリポジトリにコンテキストを注入しません。
|
|
@@ -222,7 +230,7 @@ gctree set-repo-scope --branch client-b --exclude # 現在のリポジトリ
|
|
|
222
230
|
docs/
|
|
223
231
|
auth.md ← 全文、必要なときだけ読む
|
|
224
232
|
architecture.md
|
|
225
|
-
|
|
233
|
+
project-b/
|
|
226
234
|
index.md
|
|
227
235
|
docs/
|
|
228
236
|
...
|
|
@@ -249,6 +257,7 @@ gctree set-repo-scope --branch client-b --exclude # 現在のリポジトリ
|
|
|
249
257
|
| 現在のリポジトリを gc-branch に含める / 除外する | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
250
258
|
| 再オンボーディング前に gc-branch をリセットする | `gctree reset-gc-branch --branch <name> --yes` |
|
|
251
259
|
| 1つのリポジトリにローカル override を入れる | `gctree scaffold --host codex --target /path/to/repo` |
|
|
260
|
+
| gctree を更新してすべてのプロバイダーを再スキャフォールドする | `gctree update` |
|
|
252
261
|
| グローバルな gc-tree 有効化とコンテキストを外す | `gctree uninstall --yes` |
|
|
253
262
|
|
|
254
263
|
---
|
package/README.ko.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<img src="./logo.png" alt="gc-tree 로고" width="260" />
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### CLAUDE.md와 AGENTS.md만으로 부족해서 만든 글로벌 컨텍스트.
|
|
20
20
|
|
|
21
21
|
기존 AI 도구 위에 오래 가는, 재사용 가능한 컨텍스트 레이어를 얹어보세요.
|
|
22
22
|
Git 브랜치 다루듯 여러 컨텍스트를 나눠 관리할 수 있습니다.
|
|
@@ -35,16 +35,24 @@ Git 브랜치 다루듯 여러 컨텍스트를 나눠 관리할 수 있습니다
|
|
|
35
35
|
|
|
36
36
|
## 문제
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
AI는 당신을 모릅니다.
|
|
39
|
+
|
|
40
|
+
당신이 무슨 일을 하는지, 어떤 방식으로 일하는지, 팀에서 쓰는 용어가 무엇을 뜻하는지, 무의식적으로 반복하던 루틴이 무엇인지 모릅니다. 원하는 바를 정확히 설명하지 않으면 원하는 수준의 결과물이 나오기 어렵습니다.
|
|
39
41
|
|
|
40
42
|
그래서 매번 이렇게 됩니다:
|
|
41
43
|
|
|
44
|
+
- 나는 어떤 사람이고 어떤 방식으로 일하는지 다시 설명
|
|
45
|
+
- 우리 팀이 어떤 용어를 쓰는지 다시 설명
|
|
42
46
|
- 어떤 레포들이 한 묶음인지 다시 설명
|
|
43
47
|
- 같은 아키텍처 문서를 또 프롬프트에 붙여넣기
|
|
44
48
|
- 지난주에 "이미 알던" 컨벤션을 다시 알려주기
|
|
45
49
|
- 현재 레포와 무관한 컨텍스트를 손으로 걷어내기
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
AI가 멍청해서가 아닙니다. 하나의 워크스페이스 안에서 이런 맥락을 계속 유지하기 어렵기 때문입니다. 특히 실제 업무는 한 레포 안에서 끝나지 않고 여러 레포와 프로젝트를 오가며 이어집니다.
|
|
52
|
+
|
|
53
|
+
`CLAUDE.md`와 `AGENTS.md`는 레포 하나를 설명하는 데는 잘 맞습니다. 하지만 여러 레포를 함께 다루는 순간, 레포 간 관계를 담기 어렵고 공통 배경지식은 여기저기 중복되며 세션이 바뀌면 다시 처음부터 설명해야 합니다.
|
|
54
|
+
|
|
55
|
+
이 반복을 없애기 위해 만든 도구가 `gc-tree`입니다.
|
|
48
56
|
|
|
49
57
|
---
|
|
50
58
|
|
|
@@ -52,12 +60,12 @@ Claude Code나 Codex를 매일 씁니다. 그런데 실제 업무는 여러 레
|
|
|
52
60
|
|
|
53
61
|
다음에 해당하면 gc-tree를 제일 잘 쓸 수 있습니다:
|
|
54
62
|
|
|
55
|
-
- **여러 레포**에 걸쳐 일하는 경우 (모노레포 팀, 플랫폼
|
|
56
|
-
-
|
|
63
|
+
- **여러 레포**에 걸쳐 일하는 경우 (모노레포 팀, 플랫폼 레포, 백엔드 + 프론트엔드 스택)
|
|
64
|
+
- **여러 제품, 프로젝트, 워크스트림** 사이를 오가는 경우
|
|
57
65
|
- AI 세션 시작마다 **같은 컨텍스트를 반복 설명**하는 경우
|
|
58
|
-
- AI 도구가 현재 파일뿐 아니라
|
|
66
|
+
- AI 도구가 현재 파일뿐 아니라 **내 작업 방식, 팀 용어, 아키텍처, 도메인 지식**도 알길 원하는 경우
|
|
59
67
|
|
|
60
|
-
레포 하나, 제품 하나에서만 일한다면 굳이 이 도구가 필요 없습니다. `CLAUDE.md`나
|
|
68
|
+
레포 하나, 제품 하나에서만 일한다면 굳이 이 도구가 필요 없습니다. `CLAUDE.md`나 `AGENTS.md`로 충분합니다.
|
|
61
69
|
|
|
62
70
|
---
|
|
63
71
|
|
|
@@ -74,7 +82,7 @@ gctree init
|
|
|
74
82
|
2. 현재 레포에 통합 파일 스캐폴딩
|
|
75
83
|
3. `main` gc-branch 가이드형 온보딩 실행
|
|
76
84
|
|
|
77
|
-
이후 AI 도구에 실제 SessionStart/UserPromptSubmit 훅 통합이 설치되어, 작업 전에 gc-tree를 자동 확인하고 세션 동안 빈 결과·no-match를 캐시합니다. 훅 출력은
|
|
85
|
+
이후 AI 도구에 실제 SessionStart/UserPromptSubmit 훅 통합이 설치되어, 작업 전에 gc-tree를 자동 확인하고 세션 동안 빈 결과·no-match를 캐시합니다. 훅 출력은 매칭된 문서 요약을 컨텍스트에 직접 주입합니다 — AI가 제목만이 아니라 실제 패턴과 명령을 볼 수 있도록. 전체 문서는 언제든 `gctree resolve --id <id>`로 필요할 때 확인할 수 있습니다.
|
|
78
86
|
|
|
79
87
|
- **CLI:** `gctree`
|
|
80
88
|
- **요구 사항:** Node.js 20+
|
|
@@ -83,7 +91,7 @@ gctree init
|
|
|
83
91
|
|
|
84
92
|
## gc-tree가 하는 일
|
|
85
93
|
|
|
86
|
-
`gc-tree`는 **레포 위 레벨**에 위치합니다.
|
|
94
|
+
`gc-tree`는 **레포 위 레벨**에 위치합니다. 내 업무 스타일, 팀의 도메인 용어, 레포 간 관계, 공통 배경지식을 오래 가는 글로벌 컨텍스트로 저장하고, AI 도구가 매 세션마다 관련된 것만 자동으로 가져오게 합니다.
|
|
87
95
|
|
|
88
96
|
`gctree resolve`는 progressive-disclosure 워크플로우의 **compact index layer**입니다:
|
|
89
97
|
|
|
@@ -97,18 +105,10 @@ gctree init
|
|
|
97
105
|
gctree resolve --query "auth token rotation policy"
|
|
98
106
|
```
|
|
99
107
|
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
{
|
|
105
|
-
"title": "인증 & 세션 컨벤션",
|
|
106
|
-
"score": 4,
|
|
107
|
-
"summary": "모든 요청에서 JWT rotation, refresh token은 httpOnly 쿠키에 저장, access token TTL 15분",
|
|
108
|
-
"excerpt": "## 인증 플로우\nAccess token: 15분 TTL, 매 인증 요청마다 rotation..."
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
}
|
|
108
|
+
```
|
|
109
|
+
[gc-tree] 1 matching doc gc-branch="main" repo="my-repo"
|
|
110
|
+
[Auth & Session Conventions] JWT rotation on every request, refresh tokens in httpOnly cookies, 15-min access token TTL
|
|
111
|
+
[Auth & Session Conventions] show full doc: gctree show-doc --id "auth" --branch "main"
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
AI 도구가 올바른 컨텍스트를 가져옵니다. 지식 베이스 전체가 아니라 — 관련된 조각만.
|
|
@@ -117,17 +117,17 @@ AI 도구가 올바른 컨텍스트를 가져옵니다. 지식 베이스 전체
|
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
|
-
## CLAUDE.md
|
|
120
|
+
## CLAUDE.md, AGENTS.md와 뭐가 다른가요?
|
|
121
121
|
|
|
122
|
-
`CLAUDE.md`는 훌륭합니다 — 레포 하나에서는요.
|
|
122
|
+
`CLAUDE.md`와 `AGENTS.md`는 훌륭합니다 — 레포 하나에서는요.
|
|
123
123
|
|
|
124
|
-
여러 레포,
|
|
124
|
+
여러 레포, 프로젝트, 워크스트림이 생기는 순간:
|
|
125
125
|
|
|
126
|
-
| | `CLAUDE.md` /
|
|
126
|
+
| | `CLAUDE.md` / `AGENTS.md` | `gc-tree` |
|
|
127
127
|
| ---------------- | -------------------------- | ---------------------------- |
|
|
128
128
|
| 범위 | 레포 하나 | 여러 레포, 컨텍스트 하나 |
|
|
129
129
|
| 지속성 | 레포 내 파일 | 레포 밖 저장, 세션 간 재사용 |
|
|
130
|
-
| 컨텍스트 전환 | 파일 직접 수정 | `gctree checkout
|
|
130
|
+
| 컨텍스트 전환 | 파일 직접 수정 | `gctree checkout project-b` |
|
|
131
131
|
| 관련성 필터링 | 전부 아니면 없음 | 매칭 문서만 주입 (~4%) |
|
|
132
132
|
| 온보딩 | 손으로 작성 | AI 도구가 가이드 |
|
|
133
133
|
| Codex 지원 | ✅ | ✅ |
|
|
@@ -137,7 +137,7 @@ AI 도구가 올바른 컨텍스트를 가져옵니다. 지식 베이스 전체
|
|
|
137
137
|
|
|
138
138
|
## 검증된 성능
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
합성 멀티 도메인 fixture와 한국어 + 영어 혼합 쿼리 기준 테스트:
|
|
141
141
|
|
|
142
142
|
| 지표 | 결과 |
|
|
143
143
|
| ----------------------------------------------- | ---------------- |
|
|
@@ -167,9 +167,9 @@ gctree scaffold --host both # 둘 다 한번에
|
|
|
167
167
|
```
|
|
168
168
|
gctree status → gc_branch: main, doc_count: 2
|
|
169
169
|
gctree resolve --query 'NestJS DTO plainToInstance'
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
[gc-tree] 1 matching doc gc-branch="main" repo="my-repo"
|
|
171
|
+
[Backend Coding Conventions] DTO: class-transformer plainToInstance, class-validator required. Error handling: HttpException-based custom exceptions, no raw Error throws.
|
|
172
|
+
[Backend Coding Conventions] show full doc: gctree show-doc --id "backend-conventions" --branch "main"
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
---
|
|
@@ -179,7 +179,7 @@ gctree resolve --query 'NestJS DTO plainToInstance'
|
|
|
179
179
|
### 워크스트림마다 별도 컨텍스트
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
gctree checkout -b
|
|
182
|
+
gctree checkout -b project-b
|
|
183
183
|
gctree onboard
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -201,11 +201,19 @@ gctree update-global-context # 또는: gctree update-gc / gctree ugc
|
|
|
201
201
|
|
|
202
202
|
가이드형 업데이트 플로우 — AI 도구가 무엇이 바뀌었는지 물어보고 새 컨텍스트를 gc-branch에 씁니다.
|
|
203
203
|
|
|
204
|
+
### gc-tree 자체 최신 상태 유지
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
gctree update
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
`@handsupmin/gc-tree`를 최신 npm 버전으로 업데이트한 뒤, 이전에 설치한 모든 프로바이더를 다시 스캐폴드합니다. 더 나은 훅, 명령, 스킬, 통합 스니펫이 배포됐을 때 기존 설정을 한 번에 새로고침하는 흐름입니다.
|
|
211
|
+
|
|
204
212
|
### 특정 레포에 컨텍스트 범위 지정
|
|
205
213
|
|
|
206
214
|
```bash
|
|
207
|
-
gctree set-repo-scope --branch
|
|
208
|
-
gctree set-repo-scope --branch
|
|
215
|
+
gctree set-repo-scope --branch project-b --include # 현재 레포 포함
|
|
216
|
+
gctree set-repo-scope --branch project-b --exclude # 현재 레포 제외
|
|
209
217
|
```
|
|
210
218
|
|
|
211
219
|
관계없는 레포에는 컨텍스트가 주입되지 않습니다.
|
|
@@ -222,7 +230,7 @@ gctree set-repo-scope --branch client-b --exclude # 현재 레포 제외
|
|
|
222
230
|
docs/
|
|
223
231
|
auth.md ← 전체 문서, 필요할 때만 읽음
|
|
224
232
|
architecture.md
|
|
225
|
-
|
|
233
|
+
project-b/
|
|
226
234
|
index.md
|
|
227
235
|
docs/
|
|
228
236
|
...
|
|
@@ -249,6 +257,7 @@ gctree set-repo-scope --branch client-b --exclude # 현재 레포 제외
|
|
|
249
257
|
| 현재 레포 포함/제외 설정 | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
250
258
|
| 재온보딩 전 gc-branch 초기화 | `gctree reset-gc-branch --branch <name> --yes` |
|
|
251
259
|
| 특정 레포에 로컬 override 설치 | `gctree scaffold --host codex --target /path/to/repo` |
|
|
260
|
+
| gctree 업데이트 및 모든 프로바이더 재스캐폴드 | `gctree update` |
|
|
252
261
|
| 전역 gc-tree 활성화와 컨텍스트 제거 | `gctree uninstall --yes` |
|
|
253
262
|
|
|
254
263
|
---
|