@handsupmin/gc-tree 0.1.2 → 0.1.4

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
@@ -1,107 +1,101 @@
1
1
  # gc-tree
2
2
 
3
- Una capa de contexto global con ramas para herramientas de programación con IA.
3
+ <div align="center">
4
4
 
5
- [English](README.md) | [한국어](README.ko.md) | [简体中文](README.zh.md) | [日本語](README.ja.md) | [Español](README.es.md)
5
+ <img src="./logo.png" alt="logo de gc-tree" width="260" />
6
6
 
7
- ## Introducción
7
+ ### Contexto global, más allá del proyecto.
8
8
 
9
- `gctree` es un **Global Context Tree** ligero para herramientas de programación con IA.
10
- Le da al contexto duradero un hogar reutilizable, basado en archivos y separado por ramas, sin obligarte a adoptar una plataforma completa de orquestación.
9
+ Añade a tus herramientas de IA una capa de contexto reutilizable y duradera.
10
+ Gestiona varios contextos con la misma naturalidad con la que manejas ramas de Git.
11
11
 
12
- Cuando un solo `AGENTS.md`, `CLAUDE.md` o fragmento de prompt ya no alcanza, `gctree` te ayuda a:
12
+ [![npm version](https://img.shields.io/npm/v/%40handsupmin%2Fgc-tree)](https://www.npmjs.com/package/@handsupmin/gc-tree)
13
+ [![npm downloads](https://img.shields.io/npm/dm/%40handsupmin%2Fgc-tree)](https://www.npmjs.com/package/@handsupmin/gc-tree)
14
+ [![GitHub stars](https://img.shields.io/github/stars/handsupmin/gc-tree)](https://github.com/handsupmin/gc-tree/stargazers)
15
+ [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/handsupmin/gc-tree/blob/main/LICENSE)
16
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
13
17
 
14
- - separar el contexto por producto, cliente o línea de trabajo
15
- - conservar el conocimiento fuente en markdown en lugar de depender de memoria oculta
16
- - resolver el contexto activo rápidamente con un índice liviano y documentos summary-first
17
- - hacer onboarding y actualizaciones duraderas desde tu CLI LLM preferida
18
- - hacer que un gc-branch solo se use en los repos realmente relacionados
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)
19
19
 
20
- ## Características rápidas
20
+ </div>
21
21
 
22
- - **Onboarding guiado por provider**
23
- `gctree init` primero te pregunta qué modo de provider quieres usar (`claude-code`, `codex` o `both`), luego qué idioma deben usar las respuestas, guarda esas decisiones, prepara la superficie de comandos adecuada y arranca el onboarding del gc-branch `main` por defecto.
24
- - **gc-branches con alcance por repositorio**
25
- Con `~/.gctree/branch-repo-map.json` puedes asociar un gc-branch solo a ciertos repositorios. Por ejemplo, hacer que A aplique a B/C/D y se ignore en F.
26
- - **Protección interactiva de alcance**
27
- Si `gctree resolve` detecta que el repositorio actual todavía no está asociado a ese gc-branch, puede preguntarte si quieres continuar una vez, usarlo siempre aquí o ignorarlo aquí.
28
- - **Documentación summary-first**
29
- Las herramientas pueden leer primero un resumen corto y abrir el documento completo solo cuando hace falta.
30
- - **Actualizaciones duraderas guiadas**
31
- Puedes actualizar el contexto global con el mismo flujo del provider, sin escribir JSON a mano.
22
+ Hecho para quienes trabajan de verdad entre varios repositorios, productos, clientes y flujos de trabajo.
32
23
 
33
- ## Instalación y guía rápida
24
+ `gc-tree` añade a tus herramientas de programación con IA una **capa de contexto reutilizable por encima del repo**. Conserva el contexto que dura, lo aplica solo donde corresponde y se aparta cuando el repositorio actual no tiene nada que ver.
34
25
 
35
- ### Instalar desde npm
26
+ ---
36
27
 
37
- ```bash
38
- npm install -g @handsupmin/gc-tree
39
- ```
28
+ ## Por qué gc-tree
40
29
 
41
- Si solo quieres ejecutarlo una vez sin instalación global:
30
+ En cuanto empiezas a usar agentes de IA en trabajo real, el contexto local al repositorio se queda corto enseguida.
42
31
 
43
- ```bash
44
- npx @handsupmin/gc-tree init
45
- ```
32
+ Cuando tu día a día se reparte entre varios repos y varias líneas de trabajo, suelen aparecer los mismos problemas:
46
33
 
47
- - **Nombre del paquete:** `@handsupmin/gc-tree`
48
- - **Comando CLI:** `gctree`
49
- - **Requisito:** Node.js 20+
50
- Para desarrollo desde el código fuente, consulta [docs/local-development.md](docs/local-development.md).
34
+ - el contexto duradero acaba metido a la fuerza en los prompts
35
+ - el contexto que no toca se cuela en repositorios donde no debería
36
+ - cada sesión nueva obliga a repetir la misma explicación
37
+ - el conocimiento de cliente o producto vive escondido en el historial del chat
38
+ - cambiar de workstream significa cambiar de contexto a mano, en tu propia cabeza
51
39
 
52
- ### Inicio rápido
40
+ `gc-tree` está pensado para gente que ya usa a fondo herramientas como Codex o Claude Code y no quiere seguir gestionando el contexto como una tarea manual más.
53
41
 
54
- #### 1) Inicializa gc-tree
42
+ ---
55
43
 
56
- ```bash
57
- gctree init
58
- ```
44
+ ## Qué te da
59
45
 
60
- Este comando:
46
+ - **Varios contextos duraderos**
47
+ Puedes mantener carriles separados por producto, cliente o workstream.
61
48
 
62
- - crea `~/.gctree`
63
- - crea el gc-branch `main` por defecto
64
- - te pide elegir un modo de provider (`claude-code`, `codex` o `both`)
65
- - si eliges `both`, te pregunta qué provider debe iniciar este onboarding
66
- - te pide elegir el idioma (`English`, `Korean` o escribir tu propio idioma)
67
- - guarda el modo de provider, el provider real de onboarding y el idioma en `~/.gctree/settings.json`
68
- - prepara la superficie de comandos adecuada en el entorno actual
69
- - inicia el onboarding guiado del gc-branch activo cuando `main` sigue vacío
49
+ - **Relevancia acotada por repositorio**
50
+ Puedes decidir con claridad qué contexto debe aplicarse solo a qué repos.
70
51
 
71
- #### 2) Resuelve el contexto activo
52
+ - **Protección de alcance más inteligente**
53
+ Si entras en un repo todavía no asociado, puedes elegir si seguir solo esta vez, usar siempre ese contexto ahí o ignorarlo en ese repo.
72
54
 
73
- ```bash
74
- gctree resolve --query "auth token rotation"
75
- ```
76
-
77
- Si el repositorio actual aún no está asociado a ese gc-branch, `gctree` puede dejarte elegir entre:
55
+ - **Onboarding y actualizaciones guiadas**
56
+ Puedes crear y mantener el contexto con Codex, Claude Code o ambos.
78
57
 
79
- 1. continuar solo esta vez
80
- 2. usar siempre este gc-branch en este repo
81
- 3. ignorar este gc-branch en este repo
58
+ - **Conocimiento en markdown, con enfoque summary-first**
59
+ El contexto vive en archivos visibles, no en memoria oculta, y las herramientas pueden leer primero el resumen corto.
82
60
 
83
- Si eliges 2 o 3, `~/.gctree/branch-repo-map.json` se actualiza.
61
+ ---
84
62
 
85
- #### 3) Crea otro gc-branch si necesitas un contexto separado
63
+ ## Instalación y arranque rápido
86
64
 
87
65
  ```bash
88
- gctree checkout -b client-b
66
+ npm install -g @handsupmin/gc-tree
67
+ gctree init
89
68
  ```
90
69
 
91
- `checkout -b` crea un **gc-branch vacío nuevo**. No copia los documentos de otra rama.
70
+ Con eso ya puedes arrancar.
71
+ A partir de ahí, sigue trabajando como siempre: `gc-tree` simplemente añade una capa de contexto global reutilizable alrededor de tu flujo habitual.
72
+
73
+ - **Comando CLI:** `gctree`
74
+ - **Requisito:** Node.js 20+
75
+
76
+ Si quieres trabajar desde el código fuente, consulta [docs/local-development.es.md](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.es.md).
77
+
78
+ ---
79
+
80
+ ## Movimientos habituales
92
81
 
93
- #### 4) Haz onboarding de un gc-branch vacío
82
+ ### Crea un contexto nuevo cuando un workstream merezca su propio carril
94
83
 
95
84
  ```bash
85
+ gctree checkout -b client-b
96
86
  gctree onboard
97
87
  ```
98
88
 
99
- #### 5) Actualiza el contexto duradero más adelante
89
+ Si un cliente, un producto, una migración o una iniciativa concreta necesita su propio contexto duradero, dale su propio gc-branch.
90
+
91
+ ### Actualiza después el contexto duradero
100
92
 
101
93
  ```bash
102
94
  gctree update-global-context
103
95
  ```
104
96
 
97
+ A medida que el trabajo avanza, añade al gc-branch activo lo que merece quedarse a largo plazo.
98
+
105
99
  Alias cortos:
106
100
 
107
101
  ```bash
@@ -109,18 +103,85 @@ gctree update-gc
109
103
  gctree ugc
110
104
  ```
111
105
 
112
- Si al trabajar descubres que un repo realmente pertenece al gc-branch actual, el flujo natural es:
106
+ ### Resuelve el contexto cuando de verdad lo necesites
107
+
108
+ ```bash
109
+ gctree resolve --query "auth token rotation"
110
+ ```
113
111
 
114
- 1. primero añadir ese repo al branch repo map
115
- 2. después ejecutar `gctree update-global-context` para agregar contexto duradero sobre qué hace ese repo y por qué importa
112
+ Trae de vuelta el contexto relevante justo en el momento en que hace falta.
116
113
 
117
- #### 6) Restablece un gc-branch antes de volver a hacer onboarding
114
+ ---
115
+
116
+ ## Por qué se siente natural
117
+
118
+ **Puedes manejar varios contextos como si fueran ramas de Git, pero sin tener que vivir pendiente de ellos.**
119
+
120
+ Puedes separar contextos para:
121
+
122
+ - un cliente
123
+ - una línea de producto
124
+ - un equipo de plataforma
125
+ - un stack compartido de backend + frontend
126
+ - una iniciativa temporal o una migración
127
+
128
+ Y moverte entre ellos con comandos familiares:
118
129
 
119
130
  ```bash
120
- gctree reset-gc-branch --branch client-b --yes
131
+ gctree checkout -b client-b
132
+ gctree checkout main
121
133
  ```
122
134
 
123
- ### Comandos visibles dentro del runtime
135
+ Pero, a diferencia de Git, no tienes que vigilar ese cambio manualmente todo el tiempo.
136
+
137
+ Si el repo en el que estás queda fuera del alcance del contexto activo, `gc-tree` puede tratar ese contexto como irrelevante en lugar de dejar que se cuele en la sesión equivocada.
138
+
139
+ Eso te permite mantener varios contextos a largo plazo sin arrastrarlos todos a cada sesión de trabajo.
140
+
141
+ ---
142
+
143
+ ## Un flujo de trabajo realista
144
+
145
+ Imagina que trabajas entre:
146
+
147
+ - un repo compartido de plataforma
148
+ - dos repos de cliente
149
+ - un repo de tooling interno
150
+
151
+ Sin `gc-tree`, cada sesión nueva con IA obliga a volver a explicar:
152
+
153
+ - de qué cliente estamos hablando ahora
154
+ - qué repos forman realmente un mismo conjunto
155
+ - qué flujo importa en este contexto
156
+ - qué contexto sobra y solo mete ruido
157
+
158
+ Con `gc-tree`, puedes mantener contextos separados por carril, reutilizarlos entre sesiones y dejar que las reglas de repo scope bloqueen el contexto que no toca.
159
+
160
+ Ese es el trabajo real que resuelve:
161
+
162
+ > no “guardar más texto de prompt”,
163
+ > sino **gestionar el contexto correcto en el nivel correcto del trabajo**.
164
+
165
+ ---
166
+
167
+ ## Conceptos clave
168
+
169
+ - **gc-branch**
170
+ Un carril de contexto duradero para un producto, cliente, workstream o dominio.
171
+
172
+ - **repo scope**
173
+ Las reglas que deciden en qué repositorios debe aplicarse un contexto.
174
+
175
+ - **provider-guided flow**
176
+ En vez de escribir JSON a mano, haces onboarding y actualizaciones desde tu herramienta de IA preferida.
177
+
178
+ - **context tree**
179
+ Por dentro, `gc-tree` organiza el contexto como conocimiento en archivos, consciente de las ramas.
180
+ Lo que tú ganas es contexto reutilizable más allá de un solo proyecto.
181
+
182
+ ---
183
+
184
+ ## Comandos visibles dentro del runtime
124
185
 
125
186
  Después del scaffold, los comandos visibles son:
126
187
 
@@ -129,7 +190,9 @@ Después del scaffold, los comandos visibles son:
129
190
 
130
191
  Esos comandos deben dejar claro cuál es el gc-branch activo antes de empezar a recoger o actualizar contexto duradero, y también deben mantener el idioma guardado hasta el final, salvo que el usuario pida cambiarlo explícitamente.
131
192
 
132
- ### Comandos clave de un vistazo
193
+ ---
194
+
195
+ ## Comandos clave de un vistazo
133
196
 
134
197
  | Objetivo | Comando |
135
198
  | --- | --- |
@@ -144,23 +207,29 @@ Esos comandos deben dejar claro cuál es el gc-branch activo antes de empezar a
144
207
  | Restablecer un gc-branch antes de re-onboard | `gctree reset-gc-branch --branch <name> --yes` |
145
208
  | Instalar scaffold manualmente en otro entorno | `gctree scaffold --host codex --target /path/to/repo` |
146
209
 
210
+ ---
211
+
147
212
  ## Documentación
148
213
 
149
- La documentación detallada está en el directorio [`docs/`](docs).
214
+ La documentación detallada está en el directorio [`docs/`](https://github.com/handsupmin/gc-tree/tree/main/docs).
150
215
 
151
- - **Concepto** — [`docs/concept.es.md`](docs/concept.es.md)
216
+ - **Concepto** — [`docs/concept.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/concept.es.md)
152
217
  Explica qué es `gctree`, qué problema resuelve y cuál es el alcance de la capa de contexto global.
153
- - **Principios** — [`docs/principles.es.md`](docs/principles.es.md)
218
+ - **Principios** — [`docs/principles.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/principles.es.md)
154
219
  Resume las reglas de gc-branches, alcance por repositorio, documentos summary-first y actualizaciones guiadas.
155
- - **Uso** — [`docs/usage.es.md`](docs/usage.es.md)
220
+ - **Uso** — [`docs/usage.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/usage.es.md)
156
221
  Describe el flujo CLI estándar, los comandos del provider, el comportamiento de alcance por repo y los patrones de integración.
157
- - **Desarrollo local** — [`docs/local-development.es.md`](docs/local-development.es.md)
222
+ - **Desarrollo local** — [`docs/local-development.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.es.md)
158
223
  Explica cómo instalar dependencias, ejecutar la CLI localmente y verificar cambios.
159
224
 
225
+ ---
226
+
160
227
  ## Contribuir
161
228
 
162
- Las contribuciones son bienvenidas. Consulta el documento en inglés [CONTRIBUTING.md](CONTRIBUTING.md) para ver el flujo de desarrollo y la checklist de PR.
229
+ Las contribuciones son bienvenidas. Consulta el documento en inglés [CONTRIBUTING.md](https://github.com/handsupmin/gc-tree/blob/main/CONTRIBUTING.md) para ver el flujo de desarrollo y la checklist de PR.
230
+
231
+ ---
163
232
 
164
233
  ## Licencia
165
234
 
166
- MIT. Consulta [`LICENSE`](LICENSE).
235
+ MIT. Consulta [`LICENSE`](https://github.com/handsupmin/gc-tree/blob/main/LICENSE).
package/README.ja.md CHANGED
@@ -1,107 +1,101 @@
1
1
  # gc-tree
2
2
 
3
- AI コーディングツール向けのブランチ対応グローバルコンテキストレイヤー。
3
+ <div align="center">
4
4
 
5
- [English](README.md) | [한국어](README.ko.md) | [简体中文](README.zh.md) | [日本語](README.ja.md) | [Español](README.es.md)
5
+ <img src="./logo.png" alt="gc-tree logo" width="260" />
6
6
 
7
- ## 紹介
7
+ ### プロジェクトの外まで届くグローバルコンテキスト。
8
8
 
9
- `gctree` AI コーディングツール向けの軽量な **Global Context Tree** です。
10
- 長期的なコンテキストに、ファイルベースで再利用しやすく、ブランチ単位で切り替えられる明確な置き場所を与え、既存のワークフローにも自然に組み込めます。
9
+ 今使っている AI ツールに、長く使える再利用可能なコンテキストレイヤーを重ねましょう。
10
+ Git のブランチ感覚で、複数のコンテキストを分けて持てます。
11
11
 
12
- 1 つの `AGENTS.md`、`CLAUDE.md`、あるいは短いプロンプト断片だけでは足りなくなったとき、`gctree` は次のことを助けます。
12
+ [![npm version](https://img.shields.io/npm/v/%40handsupmin%2Fgc-tree)](https://www.npmjs.com/package/@handsupmin/gc-tree)
13
+ [![npm downloads](https://img.shields.io/npm/dm/%40handsupmin%2Fgc-tree)](https://www.npmjs.com/package/@handsupmin/gc-tree)
14
+ [![GitHub stars](https://img.shields.io/github/stars/handsupmin/gc-tree)](https://github.com/handsupmin/gc-tree/stargazers)
15
+ [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/handsupmin/gc-tree/blob/main/LICENSE)
16
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
13
17
 
14
- - プロダクト、クライアント、作業トラックごとにコンテキストを分ける
15
- - 隠れたメモリではなく、markdown 文書を source of truth として管理する
16
- - 小さなインデックスと summary-first ドキュメントで必要なコンテキストを素早く見つける
17
- - 好みの LLM CLI を使ってオンボーディングと永続更新を進める
18
- - ある gc-branch が本当に関係するリポジトリでだけ使われるようにする
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)
19
19
 
20
- ## 簡単な特徴
20
+ </div>
21
21
 
22
- - **Provider 駆動のオンボーディング**
23
- `gctree init` はまず `claude-code`、`codex`、`both` のどの provider モードを使うかを聞き、その後に応答言語を選ばせ、選択内容を保存して必要なコマンド面を用意したうえで、デフォルトの `main` gc-branch のオンボーディングを開始します。
24
- - **リポジトリ範囲付き gc-branch**
25
- `~/.gctree/branch-repo-map.json` により、1 つの gc-branch を特定のリポジトリ群にだけ結びつけられます。たとえば A を B/C/D にだけ適用し、F では無視できます。
26
- - **対話的な範囲ガード**
27
- `gctree resolve` が現在のリポジトリをまだこの gc-branch に結び付けていないと判断した場合、今回だけ使うか、今後も使うか、ここでは無視するかを選べます。
28
- - **Summary-first ドキュメント構造**
29
- ツールはまず短い要約を読み、必要なときだけ全文を読み込めます。
30
- - **ガイド付きの永続更新**
31
- JSON ファイルを手で作らなくても、同じ provider フローでグローバルコンテキストを更新できます。
22
+ 日々の仕事が複数のリポジトリ、プロダクト、クライアント、ワークフローにまたがっている開発者のために作りました。
32
23
 
33
- ## インストールとクイックスタート
24
+ `gc-tree` は、AI コーディングツールに **リポジトリの外側で再利用できるコンテキストレイヤー** を足してくれます。長く使う前提の文脈は残しつつ、関係あるリポジトリにだけ効かせ、無関係な場所では静かに引っ込みます。
34
25
 
35
- ### npm からインストール
26
+ ---
36
27
 
37
- ```bash
38
- npm install -g @handsupmin/gc-tree
39
- ```
28
+ ## なぜ gc-tree なのか
40
29
 
41
- グローバルインストールなしで一度だけ実行する場合:
30
+ AI エージェントを本気で実務に入れると、リポジトリローカルのコンテキストだけではすぐ足りなくなります。
42
31
 
43
- ```bash
44
- npx @handsupmin/gc-tree init
45
- ```
32
+ 作業が複数のリポジトリやワークストリームに広がると、たとえばこんなことが起きがちです。
46
33
 
47
- - **パッケージ名:** `@handsupmin/gc-tree`
48
- - **CLI コマンド:** `gctree`
49
- - **要件:** Node.js 20+
50
- ソースベースの開発は [docs/local-development.md](docs/local-development.md) を参照してください。
34
+ - 長期コンテキストがプロンプトの中に押し込まれていく
35
+ - 無関係な文脈が別のリポジトリまで漏れてしまう
36
+ - 新しいセッションを開くたびに同じ説明をやり直すことになる
37
+ - クライアントやプロダクトの知識がチャット履歴の中に埋もれる
38
+ - 作業を切り替えるたびに頭の中で手動で文脈を切り替える必要がある
51
39
 
52
- ### クイックスタート
40
+ `gc-tree` は、Codex や Claude Code のような AI コーディングツールをすでにしっかり使っていて、コンテキスト管理まで手作業で回したくない人のための道具です。
53
41
 
54
- #### 1) gc-tree を初期化する
42
+ ---
55
43
 
56
- ```bash
57
- gctree init
58
- ```
44
+ ## これでできること
59
45
 
60
- このコマンドは次のことを行います。
46
+ - **長期コンテキストを複数持てる**
47
+ プロダクト、クライアント、ワークストリームごとに別々のコンテキストレーンを維持できます。
61
48
 
62
- - `~/.gctree` を作成する
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 のガイド付きオンボーディングを開始する
49
+ - **リポジトリ単位で関連性を絞れる**
50
+ どのコンテキストをどのリポジトリにだけ適用するかをはっきり決められます。
70
51
 
71
- #### 2) 現在のコンテキストを解決する
52
+ - **スコープを賢くガードできる**
53
+ まだ紐付いていないリポジトリに入ったとき、今回だけ続けるか、ここでは常に使うか、ここでは無視するかを選べます。
72
54
 
73
- ```bash
74
- gctree resolve --query "auth token rotation"
75
- ```
76
-
77
- 現在のリポジトリがその gc-branch にまだ紐付いていない場合、`gctree` は次を選ばせます。
55
+ - **ガイド付きでオンボードと更新ができる**
56
+ Codex、Claude Code、あるいは両方を使いながら、コンテキストを育てていけます。
78
57
 
79
- 1. 今回だけ続行する
80
- 2. 今後もこのリポジトリでこの gc-branch を使う
81
- 3. このリポジトリではこの gc-branch を無視する
58
+ - **summary-first の markdown ナレッジとして残せる**
59
+ 隠れたメモリではなくファイルに残し、ツールにはまず短い要約から読ませられます。
82
60
 
83
- 2 または 3 を選ぶと `~/.gctree/branch-repo-map.json` が更新されます。
61
+ ---
84
62
 
85
- #### 3) 別のコンテキストが必要なら新しい gc-branch を作る
63
+ ## インストール & クイックスタート
86
64
 
87
65
  ```bash
88
- gctree checkout -b client-b
66
+ npm install -g @handsupmin/gc-tree
67
+ gctree init
89
68
  ```
90
69
 
91
- `checkout -b` は**新しい空の gc-branch**を作ります。既存のブランチ文書はコピーしません。
70
+ これでスタート準備は完了です。
71
+ あとはいつもどおり開発を進めれば大丈夫。`gc-tree` が普段の流れにグローバルコンテキストのレーンを足してくれます。
72
+
73
+ - **CLI コマンド:** `gctree`
74
+ - **要件:** Node.js 20+
75
+
76
+ ソースから試す場合は [docs/local-development.ja.md](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.ja.md) を参照してください。
77
+
78
+ ---
79
+
80
+ ## よく使う流れ
92
81
 
93
- #### 4) 空の gc-branch をオンボードする
82
+ ### 作業に専用レーンが欲しくなったら新しいコンテキストを切る
94
83
 
95
84
  ```bash
85
+ gctree checkout -b client-b
96
86
  gctree onboard
97
87
  ```
98
88
 
99
- #### 5) 後から永続コンテキストを更新する
89
+ クライアント、プロダクト、移行案件、期間限定の施策など、文脈を分けておきたい仕事は gc-branch を切っておくと楽です。
90
+
91
+ ### 後から長期コンテキストを育てる
100
92
 
101
93
  ```bash
102
94
  gctree update-global-context
103
95
  ```
104
96
 
97
+ 作業が進んだら、アクティブな gc-branch に長く効く文脈を足していきます。
98
+
105
99
  短い別名:
106
100
 
107
101
  ```bash
@@ -109,18 +103,85 @@ gctree update-gc
109
103
  gctree ugc
110
104
  ```
111
105
 
112
- 実際に作業してみて、そのリポジトリが現在の gc-branch に属するべきだと分かった場合は、自然な流れはこうです。
106
+ ### 必要になったタイミングでコンテキストを引く
107
+
108
+ ```bash
109
+ gctree resolve --query "auth token rotation"
110
+ ```
113
111
 
114
- 1. まずそのリポジトリを branch repo map に追加する
115
- 2. その後 `gctree update-global-context` を実行して、そのリポジトリが何を担うのか、なぜ重要なのかといった長期コンテキストを追加する
112
+ 必要な瞬間だけ、関係ある文脈を呼び戻せば十分です。
116
113
 
117
- #### 6) 再オンボーディングの前に gc-branch をリセットする
114
+ ---
115
+
116
+ ## しっくりくる理由
117
+
118
+ **Git のブランチみたいに複数のコンテキストを持てるのに、Git のブランチみたいに逐一面倒を見る必要はありません。**
119
+
120
+ たとえば次のようにコンテキストを分けられます。
121
+
122
+ - クライアントごと
123
+ - プロダクトラインごと
124
+ - プラットフォームチームごと
125
+ - バックエンドとフロントエンドをまとめた共有スタック
126
+ - 一時的な施策や移行プロジェクト
127
+
128
+ そして、ブランチ感覚のコマンドで行き来できます。
118
129
 
119
130
  ```bash
120
- gctree reset-gc-branch --branch client-b --yes
131
+ gctree checkout -b client-b
132
+ gctree checkout main
121
133
  ```
122
134
 
123
- ### ランタイムで見える provider コマンド
135
+ ただし Git と違って、その切り替えを常に人が意識して管理する必要はありません。
136
+
137
+ 今いるリポジトリが現在のコンテキストのスコープ外なら、`gc-tree` はその文脈を「今は関係ないもの」として扱えます。だから、無関係なコンテキストが別のセッションに混ざり込みません。
138
+
139
+ その結果、長く使うコンテキストを複数抱えたままでも、毎回すべてを全部のセッションに持ち込まずに済みます。
140
+
141
+ ---
142
+
143
+ ## 現実的なワークフロー
144
+
145
+ たとえば、こんな構成で仕事をしているとします。
146
+
147
+ - 共通のプラットフォームリポジトリが 1 つ
148
+ - クライアント向けリポジトリが 2 つ
149
+ - 社内ツール用リポジトリが 1 つ
150
+
151
+ `gc-tree` がないと、新しい AI セッションを開くたびに説明し直すことになります。
152
+
153
+ - 今どのクライアントの話なのか
154
+ - どのリポジトリ同士がひとまとまりなのか
155
+ - ここで重要なワークフローは何か
156
+ - 今はどの文脈がむしろノイズになるのか
157
+
158
+ `gc-tree` があれば、レーンごとにコンテキストを持ち分けて、セッションをまたいで再利用し、repo scope のルールで不要な文脈の流入も防げます。
159
+
160
+ 要するに、本当にやりたいのはこういうことです。
161
+
162
+ > プロンプトをもっと溜め込むことではなく、
163
+ > **仕事の単位に合ったコンテキストを、正しいレイヤーで管理すること。**
164
+
165
+ ---
166
+
167
+ ## コア概念
168
+
169
+ - **gc-branch**
170
+ 1 つのプロダクト、クライアント、ワークストリーム、ドメインのための長期コンテキストレーンです。
171
+
172
+ - **repo scope**
173
+ そのコンテキストをどのリポジトリで効かせるかを決めるルールです。
174
+
175
+ - **provider-guided flow**
176
+ JSON を手で書く代わりに、好みの AI コーディングツールでオンボードと更新を進める流れです。
177
+
178
+ - **context tree**
179
+ `gc-tree` は内部的には、ブランチを意識したファイルベースの知識ツリーとしてコンテキストを整理します。
180
+ ユーザーが得る価値は、プロジェクトの外までつながる再利用可能なコンテキストです。
181
+
182
+ ---
183
+
184
+ ## ランタイムで見える provider コマンド
124
185
 
125
186
  scaffold 後に見えるコマンドは次の通りです。
126
187
 
@@ -129,38 +190,46 @@ scaffold 後に見えるコマンドは次の通りです。
129
190
 
130
191
  これらのコマンドは、長期コンテキストを集めたり更新したりする前に、現在の gc-branch を必ず明示し、ユーザーが明示的に切り替えを求めない限り、保存された言語を最後まで維持するべきです。
131
192
 
132
- ### 主要コマンド一覧
193
+ ---
194
+
195
+ ## 主要コマンド一覧
133
196
 
134
197
  | 目的 | コマンド |
135
198
  | --- | --- |
136
199
  | gc-tree を初期化して provider を選ぶ | `gctree init` |
137
200
  | 現在の gc-branch を確認する | `gctree status` |
138
- | 現在のコンテキストを検索する | `gctree resolve --query "..."` |
201
+ | アクティブなコンテキストを検索する | `gctree resolve --query "..."` |
139
202
  | リポジトリ範囲ルールを確認する | `gctree repo-map` |
140
- | gc-branch に対してリポジトリを明示的に含める/除外する | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
141
- | gc-branch を作成/切り替えする | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
203
+ | gc-branch に対してリポジトリを明示的に含める / 除外する | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
204
+ | gc-branch を作成 / 切り替えする | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
142
205
  | 空の gc-branch をオンボードする | `gctree onboard` |
143
- | 現在の gc-branch を永続更新する | `gctree update-global-context` / `gctree update-gc` / `gctree ugc` |
206
+ | 現在の gc-branch を長期更新する | `gctree update-global-context` / `gctree update-gc` / `gctree ugc` |
144
207
  | 再オンボーディング前に gc-branch をリセットする | `gctree reset-gc-branch --branch <name> --yes` |
145
208
  | 別環境に手動で scaffold を入れる | `gctree scaffold --host codex --target /path/to/repo` |
146
209
 
210
+ ---
211
+
147
212
  ## ドキュメント
148
213
 
149
- 詳細ドキュメントは [`docs/`](docs) にまとまっています。
214
+ 詳細ドキュメントは [`docs/`](https://github.com/handsupmin/gc-tree/tree/main/docs) にまとまっています。
150
215
 
151
- - **コンセプト** — [`docs/concept.ja.md`](docs/concept.ja.md)
216
+ - **コンセプト** — [`docs/concept.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/concept.ja.md)
152
217
  `gctree` が何であり、どの課題を解決し、どこまでを担当するのかを説明します。
153
- - **原則** — [`docs/principles.ja.md`](docs/principles.ja.md)
218
+ - **原則** — [`docs/principles.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/principles.ja.md)
154
219
  gc-branch、リポジトリ範囲、summary-first 文書、ガイド付き更新の考え方をまとめています。
155
- - **使い方** — [`docs/usage.ja.md`](docs/usage.ja.md)
220
+ - **使い方** — [`docs/usage.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/usage.ja.md)
156
221
  標準 CLI フロー、provider コマンド、リポジトリ範囲の挙動、統合パターンを案内します。
157
- - **ローカル実行方法** — [`docs/local-development.ja.md`](docs/local-development.ja.md)
222
+ - **ローカル実行方法** — [`docs/local-development.ja.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.ja.md)
158
223
  依存関係のインストール、CLI のローカル実行、変更確認手順を説明します。
159
224
 
225
+ ---
226
+
160
227
  ## コントリビュート
161
228
 
162
- コントリビューション歓迎です。開発フローと PR チェックリストは英語ドキュメントの [CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。
229
+ コントリビューション歓迎です。開発フローと PR チェックリストは英語ドキュメントの [CONTRIBUTING.md](https://github.com/handsupmin/gc-tree/blob/main/CONTRIBUTING.md) を参照してください。
230
+
231
+ ---
163
232
 
164
233
  ## ライセンス
165
234
 
166
- MIT。詳細は [`LICENSE`](LICENSE) を参照してください。
235
+ MIT。詳細は [`LICENSE`](https://github.com/handsupmin/gc-tree/blob/main/LICENSE) を参照してください。