@handsupmin/gc-tree 0.8.19 → 1.0.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 +34 -33
- package/README.ja.md +35 -34
- package/README.ko.md +34 -33
- package/README.md +34 -33
- package/README.zh.md +35 -34
- 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/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 +10 -27
- package/docs/usage.ja.md +10 -27
- package/docs/usage.ko.md +10 -27
- package/docs/usage.md +12 -29
- package/docs/usage.zh.md +10 -27
- package/package.json +1 -1
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 | ✅ | ✅ |
|
|
@@ -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
|
|
|
@@ -204,8 +204,8 @@ Flujo de actualización guiado — tu herramienta de IA pregunta qué ha cambiad
|
|
|
204
204
|
### Acotar el contexto a repos específicos
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
gctree set-repo-scope --branch
|
|
208
|
-
gctree set-repo-scope --branch
|
|
207
|
+
gctree set-repo-scope --branch project-b --include # incluir el repo actual
|
|
208
|
+
gctree set-repo-scope --branch project-b --exclude # excluir el repo actual
|
|
209
209
|
```
|
|
210
210
|
|
|
211
211
|
`gc-tree` no inyectará un contexto en repos donde no corresponde.
|
|
@@ -222,7 +222,7 @@ gctree set-repo-scope --branch client-b --exclude # excluir el repo actual
|
|
|
222
222
|
docs/
|
|
223
223
|
auth.md ← doc completo, se lee solo cuando hace falta
|
|
224
224
|
architecture.md
|
|
225
|
-
|
|
225
|
+
project-b/
|
|
226
226
|
index.md
|
|
227
227
|
docs/
|
|
228
228
|
...
|
|
@@ -249,6 +249,7 @@ El contexto vive fuera de tus repositorios — sin reglas de `.gitignore`, sin c
|
|
|
249
249
|
| Incluir o excluir el repo actual para un gc-branch | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
250
250
|
| Resetear un gc-branch antes de re-onboard | `gctree reset-gc-branch --branch <name> --yes` |
|
|
251
251
|
| Instalar un override local en un repo | `gctree scaffold --host codex --target /path/to/repo` |
|
|
252
|
+
| Actualizar gctree y reinstalar todos los providers | `gctree update` |
|
|
252
253
|
| Quitar la activación global y el contexto | `gctree uninstall --yes` |
|
|
253
254
|
|
|
254
255
|
---
|
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 対応 | ✅ | ✅ |
|
|
@@ -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
|
|
|
@@ -204,8 +204,8 @@ gctree update-global-context # または:gctree update-gc / gctree ugc
|
|
|
204
204
|
### コンテキストを特定のリポジトリに限定する
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
gctree set-repo-scope --branch
|
|
208
|
-
gctree set-repo-scope --branch
|
|
207
|
+
gctree set-repo-scope --branch project-b --include # 現在のリポジトリを含める
|
|
208
|
+
gctree set-repo-scope --branch project-b --exclude # 現在のリポジトリを除外する
|
|
209
209
|
```
|
|
210
210
|
|
|
211
211
|
`gc-tree` は関係のないリポジトリにコンテキストを注入しません。
|
|
@@ -222,7 +222,7 @@ gctree set-repo-scope --branch client-b --exclude # 現在のリポジトリ
|
|
|
222
222
|
docs/
|
|
223
223
|
auth.md ← 全文、必要なときだけ読む
|
|
224
224
|
architecture.md
|
|
225
|
-
|
|
225
|
+
project-b/
|
|
226
226
|
index.md
|
|
227
227
|
docs/
|
|
228
228
|
...
|
|
@@ -249,6 +249,7 @@ gctree set-repo-scope --branch client-b --exclude # 現在のリポジトリ
|
|
|
249
249
|
| 現在のリポジトリを gc-branch に含める / 除外する | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
250
250
|
| 再オンボーディング前に gc-branch をリセットする | `gctree reset-gc-branch --branch <name> --yes` |
|
|
251
251
|
| 1つのリポジトリにローカル override を入れる | `gctree scaffold --host codex --target /path/to/repo` |
|
|
252
|
+
| gctree を更新してすべてのプロバイダーを再スキャフォールドする | `gctree update` |
|
|
252
253
|
| グローバルな gc-tree 有効化とコンテキストを外す | `gctree uninstall --yes` |
|
|
253
254
|
|
|
254
255
|
---
|
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 지원 | ✅ | ✅ |
|
|
@@ -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
|
|
|
@@ -204,8 +204,8 @@ gctree update-global-context # 또는: gctree update-gc / gctree ugc
|
|
|
204
204
|
### 특정 레포에 컨텍스트 범위 지정
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
gctree set-repo-scope --branch
|
|
208
|
-
gctree set-repo-scope --branch
|
|
207
|
+
gctree set-repo-scope --branch project-b --include # 현재 레포 포함
|
|
208
|
+
gctree set-repo-scope --branch project-b --exclude # 현재 레포 제외
|
|
209
209
|
```
|
|
210
210
|
|
|
211
211
|
관계없는 레포에는 컨텍스트가 주입되지 않습니다.
|
|
@@ -222,7 +222,7 @@ gctree set-repo-scope --branch client-b --exclude # 현재 레포 제외
|
|
|
222
222
|
docs/
|
|
223
223
|
auth.md ← 전체 문서, 필요할 때만 읽음
|
|
224
224
|
architecture.md
|
|
225
|
-
|
|
225
|
+
project-b/
|
|
226
226
|
index.md
|
|
227
227
|
docs/
|
|
228
228
|
...
|
|
@@ -249,6 +249,7 @@ gctree set-repo-scope --branch client-b --exclude # 현재 레포 제외
|
|
|
249
249
|
| 현재 레포 포함/제외 설정 | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
250
250
|
| 재온보딩 전 gc-branch 초기화 | `gctree reset-gc-branch --branch <name> --yes` |
|
|
251
251
|
| 특정 레포에 로컬 override 설치 | `gctree scaffold --host codex --target /path/to/repo` |
|
|
252
|
+
| gctree 업데이트 및 모든 프로바이더 재스캐폴드 | `gctree update` |
|
|
252
253
|
| 전역 gc-tree 활성화와 컨텍스트 제거 | `gctree uninstall --yes` |
|
|
253
254
|
|
|
254
255
|
---
|