@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 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, más allá del proyecto.
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
- Usas Claude Code o Codex a diario. Pero tu trabajo real se extiende por múltiples repositorios, productos y clientes — y tus herramientas de IA solo conocen el archivo actual.
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
- Esto no es un problema de IA. Es un **problema de gestión del contexto**.
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 + cliente, stacks de backend + frontend)
56
- - Cambias entre **múltiples productos o clientes** en la misma semana
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 tus **convenciones, arquitectura y conocimiento de dominio** — no solo el archivo actual
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 `.cursorrules` es suficiente.
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 se mantiene compacta: muestra el estado found/no-match junto con títulos e IDs de documentos coincidentes, y deja el documento completo detrás de `gctree resolve --id <id>`.
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**. Almacena contexto en archivos Markdown estructurados y permite que tus herramientas de IA traigan solo lo relevante antes de cada sesión, de forma automática.
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
- ```json
101
- {
102
- "gc_branch": "main",
103
- "matches": [
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 cursor rules?
120
+ ## ¿En qué se diferencia de CLAUDE.md o AGENTS.md?
121
121
 
122
- `CLAUDE.md` es genial — para un solo repositorio.
122
+ `CLAUDE.md` y `AGENTS.md` son geniales — para un solo repositorio.
123
123
 
124
- En el momento en que tienes múltiples repos, clientes o workstreams:
124
+ En el momento en que tienes múltiples repos, proyectos o workstreams:
125
125
 
126
- | | `CLAUDE.md` / cursor rules | `gc-tree` |
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 client-b` |
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
- coincidencia con "Convenciones de Backend" (score: 3)
171
- DTO: class-transformer plainToInstance, class-validator obligatorio
172
- Manejo de errores: excepciones personalizadas basadas en HttpException, prohibido lanzar raw Error
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 client-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 client-b --include # incluir el repo actual
208
- gctree set-repo-scope --branch client-b --exclude # excluir el repo actual
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
- client-b/
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
- Claude Code や Codex を毎日使っています。でも実際の仕事は複数のリポジトリ、プロダクト、クライアントにまたがっていて——AI ツールは今開いているファイルしか知りません。
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` や `.cursorrules` で十分です。
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 をセッション中キャッシュします。フック出力はコンパクトに保たれ、found/no-match 状態、マッチしたドキュメントのタイトルと ID だけを示し、全文は必要なときに `gctree resolve --id <id>` で開きます。
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` は**リポジトリより上のレイヤー**に位置します。コンテキストを構造化された Markdown ファイルに保存し、AI ツールがセッションのたびに関連するものだけを自動で引き出せるようにします。
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
- ```json
101
- {
102
- "gc_branch": "main",
103
- "matches": [
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 や cursor rules との違いは?
120
+ ## CLAUDE.md、AGENTS.md との違いは?
121
121
 
122
- `CLAUDE.md` は優れています——一つのリポジトリにおいては。
122
+ `CLAUDE.md` と `AGENTS.md` は優れています——一つのリポジトリにおいては。
123
123
 
124
- 複数のリポジトリ・クライアント・ワークストリームが増えた瞬間:
124
+ 複数のリポジトリ・プロジェクト・ワークストリームが増えた瞬間:
125
125
 
126
- | | `CLAUDE.md` / cursor rules | `gc-tree` |
126
+ | | `CLAUDE.md` / `AGENTS.md` | `gc-tree` |
127
127
  | -------------------- | -------------------------- | ---------------------------------------- |
128
128
  | スコープ | リポジトリ一つ | 複数リポジトリ、コンテキスト一つ |
129
129
  | 永続化 | リポジトリ内のファイル | リポジトリ外に保存、セッション間で再利用 |
130
- | コンテキスト切り替え | ファイルを手で編集 | `gctree checkout client-b` |
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: maindoc_count: 2
168
+ gctree status → gc_branch: main, doc_count: 2
169
169
  gctree resolve --query 'NestJS DTO plainToInstance'
170
- →「バックエンドコーディング規約」にマッチ(score: 3)
171
- DTOclass-transformer plainToInstanceclass-validator 必須
172
- エラー処理:HttpException ベースのカスタム例外、raw Error throw 禁止
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 client-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 client-b --include # 現在のリポジトリを含める
208
- gctree set-repo-scope --branch client-b --exclude # 現在のリポジトリを除外する
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
- client-b/
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
- Claude Code나 Codex를 매일 씁니다. 그런데 실제 업무는 여러 레포, 제품, 고객사에 걸쳐 있고 — AI 도구는 현재 파일밖에 모릅니다.
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`나 `.cursorrules`로 충분합니다.
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를 캐시합니다. 훅 출력은 짧게 유지됩니다: 찾음/no-match 상태와 매칭된 문서 제목/ID만 보여주고 전체 문서는 `gctree resolve --id <id>`로 필요할 때 엽니다.
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`는 **레포 위 레벨**에 위치합니다. 컨텍스트를 구조화된 마크다운 파일에 저장하고, AI 도구가 매 세션마다 관련된 것만 자동으로 가져오게 합니다.
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
- ```json
101
- {
102
- "gc_branch": "main",
103
- "matches": [
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 cursor rules와 뭐가 다른가요?
120
+ ## CLAUDE.md, AGENTS.md와 뭐가 다른가요?
121
121
 
122
- `CLAUDE.md`는 훌륭합니다 — 레포 하나에서는요.
122
+ `CLAUDE.md`와 `AGENTS.md`는 훌륭합니다 — 레포 하나에서는요.
123
123
 
124
- 여러 레포, 고객사, 워크스트림이 생기는 순간:
124
+ 여러 레포, 프로젝트, 워크스트림이 생기는 순간:
125
125
 
126
- | | `CLAUDE.md` / cursor rules | `gc-tree` |
126
+ | | `CLAUDE.md` / `AGENTS.md` | `gc-tree` |
127
127
  | ---------------- | -------------------------- | ---------------------------- |
128
128
  | 범위 | 레포 하나 | 여러 레포, 컨텍스트 하나 |
129
129
  | 지속성 | 레포 내 파일 | 레포 밖 저장, 세션 간 재사용 |
130
- | 컨텍스트 전환 | 파일 직접 수정 | `gctree checkout client-b` |
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
- "백엔드 코딩 컨벤션" 매칭 (score: 3)
171
- DTO: class-transformer plainToInstance, class-validator 필수
172
- 에러 처리: HttpException 기반 커스텀 예외, raw Error throw 금지
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 client-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 client-b --include # 현재 레포 포함
208
- gctree set-repo-scope --branch client-b --exclude # 현재 레포 제외
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
- client-b/
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
  ---