@handsupmin/gc-tree 0.1.4 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +135 -119
- package/README.ja.md +136 -120
- package/README.ko.md +137 -121
- package/README.md +134 -118
- package/README.zh.md +140 -123
- package/dist/src/resolve.js +40 -6
- package/docs/concept.es.md +45 -33
- package/docs/concept.ja.md +41 -29
- package/docs/concept.ko.md +48 -36
- package/docs/concept.md +13 -1
- package/docs/concept.zh.md +48 -36
- package/docs/local-development.es.md +44 -22
- package/docs/local-development.ja.md +40 -18
- package/docs/local-development.ko.md +47 -25
- package/docs/local-development.md +27 -5
- package/docs/local-development.zh.md +27 -5
- package/docs/principles.es.md +39 -26
- package/docs/principles.ja.md +26 -13
- package/docs/principles.ko.md +40 -27
- package/docs/principles.md +15 -2
- package/docs/principles.zh.md +42 -29
- package/docs/usage.es.md +98 -50
- package/docs/usage.ja.md +71 -23
- package/docs/usage.ko.md +100 -52
- package/docs/usage.md +51 -3
- package/docs/usage.zh.md +95 -47
- package/package.json +11 -2
package/README.es.md
CHANGED
|
@@ -19,44 +19,33 @@ Gestiona varios contextos con la misma naturalidad con la que manejas ramas de G
|
|
|
19
19
|
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
|
-
Hecho para quienes trabajan de verdad entre varios repositorios, productos, clientes y flujos de trabajo.
|
|
23
|
-
|
|
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.
|
|
25
|
-
|
|
26
22
|
---
|
|
27
23
|
|
|
28
|
-
##
|
|
24
|
+
## El problema
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
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.
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
Así que acabas haciendo esto cada vez:
|
|
33
29
|
|
|
34
|
-
-
|
|
35
|
-
- el
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
- cambiar de workstream significa cambiar de contexto a mano, en tu propia cabeza
|
|
30
|
+
- Volver a explicar qué repositorios van juntos
|
|
31
|
+
- Pegar el mismo documento de arquitectura en el prompt otra vez
|
|
32
|
+
- Recordarle al agente las convenciones que ya "sabía" la semana pasada
|
|
33
|
+
- Eliminar manualmente el contexto irrelevante para el repositorio actual
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
Esto no es un problema de IA. Es un **problema de gestión del contexto**.
|
|
41
36
|
|
|
42
37
|
---
|
|
43
38
|
|
|
44
|
-
##
|
|
45
|
-
|
|
46
|
-
- **Varios contextos duraderos**
|
|
47
|
-
Puedes mantener carriles separados por producto, cliente o workstream.
|
|
39
|
+
## Para quién es esto
|
|
48
40
|
|
|
49
|
-
|
|
50
|
-
Puedes decidir con claridad qué contexto debe aplicarse solo a qué repos.
|
|
41
|
+
Sacarás más partido a `gc-tree` si:
|
|
51
42
|
|
|
52
|
-
- **
|
|
53
|
-
|
|
43
|
+
- Trabajas en **múltiples repositorios** (equipos con monorepo, repos de plataforma + cliente, stacks de backend + frontend)
|
|
44
|
+
- Cambias entre **múltiples productos o clientes** en la misma semana
|
|
45
|
+
- Te encuentras **explicando el mismo contexto** al inicio de cada sesión de IA
|
|
46
|
+
- Quieres que tus herramientas de IA entiendan tus **convenciones, arquitectura y conocimiento de dominio** — no solo el archivo actual
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
Puedes crear y mantener el contexto con Codex, Claude Code o ambos.
|
|
57
|
-
|
|
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.
|
|
48
|
+
Si solo trabajas en un repositorio y un producto, no necesitas esto. `CLAUDE.md` o `.cursorrules` es suficiente.
|
|
60
49
|
|
|
61
50
|
---
|
|
62
51
|
|
|
@@ -67,166 +56,193 @@ npm install -g @handsupmin/gc-tree
|
|
|
67
56
|
gctree init
|
|
68
57
|
```
|
|
69
58
|
|
|
70
|
-
|
|
71
|
-
A partir de ahí, sigue trabajando como siempre: `gc-tree` simplemente añade una capa de contexto global reutilizable alrededor de tu flujo habitual.
|
|
59
|
+
`gctree init` te guía a través de:
|
|
72
60
|
|
|
73
|
-
-
|
|
74
|
-
|
|
61
|
+
1. Elegir provider: `claude-code`, `codex` o `both`
|
|
62
|
+
2. Instalar los archivos de integración en el repositorio actual
|
|
63
|
+
3. Completar el onboarding guiado para el gc-branch `main`
|
|
75
64
|
|
|
76
|
-
|
|
65
|
+
Después, tu herramienta de IA aprenderá a llamar a `gctree resolve` antes de planificar o implementar.
|
|
66
|
+
|
|
67
|
+
- **CLI:** `gctree`
|
|
68
|
+
- **Requisito:** Node.js 20+
|
|
77
69
|
|
|
78
70
|
---
|
|
79
71
|
|
|
80
|
-
##
|
|
72
|
+
## Qué hace gc-tree
|
|
81
73
|
|
|
82
|
-
|
|
74
|
+
`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.
|
|
83
75
|
|
|
84
76
|
```bash
|
|
85
|
-
gctree
|
|
86
|
-
gctree onboard
|
|
77
|
+
gctree resolve --query "auth token rotation policy"
|
|
87
78
|
```
|
|
88
79
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"gc_branch": "main",
|
|
83
|
+
"matches": [
|
|
84
|
+
{
|
|
85
|
+
"title": "Convenciones de Auth y Sesión",
|
|
86
|
+
"score": 4,
|
|
87
|
+
"summary": "Rotation de JWT en cada petición, refresh tokens en cookies httpOnly, TTL de 15 min para access tokens",
|
|
88
|
+
"excerpt": "## Flujo de Auth\nAccess token: TTL 15 min, rotation en cada petición autenticada..."
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
95
92
|
```
|
|
96
93
|
|
|
97
|
-
|
|
94
|
+
Tu herramienta de IA recibe el contexto correcto — no toda la base de conocimiento, solo el fragmento relevante.
|
|
98
95
|
|
|
99
|
-
|
|
96
|
+
**En la práctica: solo ~4% del contexto total se inyecta por consulta.** El 96% restante permanece en disco, fuera de la ventana de tokens, hasta que de verdad haga falta.
|
|
100
97
|
|
|
101
|
-
|
|
102
|
-
gctree update-gc
|
|
103
|
-
gctree ugc
|
|
104
|
-
```
|
|
98
|
+
---
|
|
105
99
|
|
|
106
|
-
|
|
100
|
+
## ¿En qué se diferencia de CLAUDE.md o cursor rules?
|
|
107
101
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
102
|
+
`CLAUDE.md` es genial — para un solo repositorio.
|
|
103
|
+
|
|
104
|
+
En el momento en que tienes múltiples repos, clientes o workstreams:
|
|
111
105
|
|
|
112
|
-
|
|
106
|
+
| | `CLAUDE.md` / cursor rules | `gc-tree` |
|
|
107
|
+
| -------------------------- | -------------------------- | --------------------------------------------- |
|
|
108
|
+
| Alcance | Un repositorio | Múltiples repos, un contexto |
|
|
109
|
+
| Persistencia | Archivo dentro del repo | Almacenado fuera, reutilizable entre sesiones |
|
|
110
|
+
| Cambio de contexto | Edición manual de archivos | `gctree checkout client-b` |
|
|
111
|
+
| Filtrado por relevancia | Todo o nada | Solo inyecta docs coincidentes (~4%) |
|
|
112
|
+
| Onboarding | Escrito a mano | Guiado por tu herramienta de IA |
|
|
113
|
+
| Compatible con Codex | ✅ | ✅ |
|
|
114
|
+
| Compatible con Claude Code | ✅ | ✅ |
|
|
113
115
|
|
|
114
116
|
---
|
|
115
117
|
|
|
116
|
-
##
|
|
118
|
+
## Rendimiento validado
|
|
117
119
|
|
|
118
|
-
|
|
120
|
+
Probado con documentación interna real (4 exportaciones de Notion, consultas mixtas en español e inglés):
|
|
119
121
|
|
|
120
|
-
|
|
122
|
+
| Métrica | Resultado |
|
|
123
|
+
| ------------------------------------------------------------ | ---------------- |
|
|
124
|
+
| Recall — consultas relevantes que encuentran el doc correcto | **100%** (16/16) |
|
|
125
|
+
| Precision — consultas irrelevantes que devuelven vacío | **80%** (4/5) |
|
|
126
|
+
| F1 score | **88.9%** |
|
|
127
|
+
| Tokens inyectados por consulta vs. contexto total | **~4%** |
|
|
128
|
+
| Compatible con consultas mixtas en varios idiomas | ✅ |
|
|
121
129
|
|
|
122
|
-
|
|
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
|
|
130
|
+
---
|
|
127
131
|
|
|
128
|
-
|
|
132
|
+
## Funciona con Claude Code y Codex — ambos verificados
|
|
129
133
|
|
|
130
134
|
```bash
|
|
131
|
-
gctree
|
|
132
|
-
gctree
|
|
135
|
+
gctree scaffold --host claude-code # instala snippet en CLAUDE.md + /gc-onboard, /gc-update-global-context
|
|
136
|
+
gctree scaffold --host codex # instala snippet en AGENTS.md + $gc-onboard, $gc-update-global-context
|
|
137
|
+
gctree scaffold --host both # ambos a la vez
|
|
133
138
|
```
|
|
134
139
|
|
|
135
|
-
|
|
140
|
+
Los dos providers usan el mismo almacén de contexto. Haz el onboarding una vez y úsalo desde cualquiera de los dos.
|
|
136
141
|
|
|
137
|
-
|
|
142
|
+
**Claude Code** — usa los slash commands `/gc-resolve-context`, `/gc-onboard`, `/gc-update-global-context`.
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
**Codex** — usa los skills `$gc-resolve-context`, `$gc-onboard`, `$gc-update-global-context`. Verificado con `codex exec`:
|
|
140
145
|
|
|
141
|
-
|
|
146
|
+
```
|
|
147
|
+
gctree status → gc_branch: main, doc_count: 2
|
|
148
|
+
gctree resolve --query 'NestJS DTO plainToInstance'
|
|
149
|
+
→ coincidencia con "Convenciones de Backend" (score: 3)
|
|
150
|
+
→ DTO: class-transformer plainToInstance, class-validator obligatorio
|
|
151
|
+
→ Manejo de errores: excepciones personalizadas basadas en HttpException, prohibido lanzar raw Error
|
|
152
|
+
```
|
|
142
153
|
|
|
143
|
-
|
|
154
|
+
---
|
|
144
155
|
|
|
145
|
-
|
|
156
|
+
## Movimientos habituales
|
|
146
157
|
|
|
147
|
-
|
|
148
|
-
- dos repos de cliente
|
|
149
|
-
- un repo de tooling interno
|
|
158
|
+
### Contextos separados para workstreams distintos
|
|
150
159
|
|
|
151
|
-
|
|
160
|
+
```bash
|
|
161
|
+
gctree checkout -b client-b
|
|
162
|
+
gctree onboard
|
|
163
|
+
```
|
|
152
164
|
|
|
153
|
-
- de
|
|
154
|
-
- qué repos forman realmente un mismo conjunto
|
|
155
|
-
- qué flujo importa en este contexto
|
|
156
|
-
- qué contexto sobra y solo mete ruido
|
|
165
|
+
Cada gc-branch es un carril de contexto completamente independiente. Cambia entre ellos como con ramas de Git.
|
|
157
166
|
|
|
158
|
-
|
|
167
|
+
### Traer contexto relevante cuando lo necesitas
|
|
159
168
|
|
|
160
|
-
|
|
169
|
+
```bash
|
|
170
|
+
gctree resolve --query "billing retry policy"
|
|
171
|
+
```
|
|
161
172
|
|
|
162
|
-
|
|
163
|
-
> sino **gestionar el contexto correcto en el nivel correcto del trabajo**.
|
|
173
|
+
Solo devuelve los docs que coinciden — título, resumen y fragmento. El tool lee el doc completo únicamente si el resumen no es suficiente.
|
|
164
174
|
|
|
165
|
-
|
|
175
|
+
### Mantener el contexto al día
|
|
166
176
|
|
|
167
|
-
|
|
177
|
+
```bash
|
|
178
|
+
gctree update-global-context # o: gctree update-gc / gctree ugc
|
|
179
|
+
```
|
|
168
180
|
|
|
169
|
-
|
|
170
|
-
Un carril de contexto duradero para un producto, cliente, workstream o dominio.
|
|
181
|
+
Flujo de actualización guiado — tu herramienta de IA pregunta qué ha cambiado y escribe el nuevo contexto de vuelta al gc-branch.
|
|
171
182
|
|
|
172
|
-
|
|
173
|
-
Las reglas que deciden en qué repositorios debe aplicarse un contexto.
|
|
183
|
+
### Acotar el contexto a repos específicos
|
|
174
184
|
|
|
175
|
-
|
|
176
|
-
|
|
185
|
+
```bash
|
|
186
|
+
gctree set-repo-scope --branch client-b --include # incluir el repo actual
|
|
187
|
+
gctree set-repo-scope --branch client-b --exclude # excluir el repo actual
|
|
188
|
+
```
|
|
177
189
|
|
|
178
|
-
-
|
|
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.
|
|
190
|
+
`gc-tree` no inyectará un contexto en repos donde no corresponde.
|
|
181
191
|
|
|
182
192
|
---
|
|
183
193
|
|
|
184
|
-
##
|
|
185
|
-
|
|
186
|
-
Después del scaffold, los comandos visibles son:
|
|
194
|
+
## Cómo se almacena el contexto
|
|
187
195
|
|
|
188
|
-
|
|
189
|
-
|
|
196
|
+
```
|
|
197
|
+
~/.gctree/
|
|
198
|
+
branches/
|
|
199
|
+
main/
|
|
200
|
+
index.md ← índice compacto, ≤2000 chars, se carga primero
|
|
201
|
+
docs/
|
|
202
|
+
auth.md ← doc completo, se lee solo cuando hace falta
|
|
203
|
+
architecture.md
|
|
204
|
+
client-b/
|
|
205
|
+
index.md
|
|
206
|
+
docs/
|
|
207
|
+
...
|
|
208
|
+
branch-repo-map.json ← qué repos pertenecen a qué gc-branch
|
|
209
|
+
settings.json ← provider preferido, idioma
|
|
210
|
+
```
|
|
190
211
|
|
|
191
|
-
|
|
212
|
+
El contexto vive fuera de tus repositorios — sin reglas de `.gitignore`, sin commits accidentales, reutilizable en todos los proyectos que usen el mismo gc-branch.
|
|
192
213
|
|
|
193
214
|
---
|
|
194
215
|
|
|
195
|
-
## Comandos
|
|
196
|
-
|
|
197
|
-
| Objetivo
|
|
198
|
-
|
|
|
199
|
-
| Inicializar gc-tree y elegir provider
|
|
200
|
-
| Confirmar el gc-branch activo
|
|
201
|
-
| Buscar en el contexto activo
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
216
|
+
## Comandos principales
|
|
217
|
+
|
|
218
|
+
| Objetivo | Comando |
|
|
219
|
+
| -------------------------------------------------- | --------------------------------------------------------------- |
|
|
220
|
+
| Inicializar gc-tree y elegir provider | `gctree init` |
|
|
221
|
+
| Confirmar el gc-branch activo | `gctree status` |
|
|
222
|
+
| Buscar en el contexto activo | `gctree resolve --query "..."` |
|
|
223
|
+
| Crear o cambiar gc-branches | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
|
|
224
|
+
| Listar todos los gc-branches | `gctree branches` |
|
|
225
|
+
| Onboarding guiado de un gc-branch vacío | `gctree onboard` |
|
|
226
|
+
| Actualización guiada del gc-branch activo | `gctree update-global-context` / `gctree ugc` |
|
|
227
|
+
| Ver reglas de alcance por repo | `gctree repo-map` |
|
|
228
|
+
| Incluir o excluir el repo actual para un gc-branch | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
229
|
+
| Resetear un gc-branch antes de re-onboard | `gctree reset-gc-branch --branch <name> --yes` |
|
|
230
|
+
| Instalar scaffold en un nuevo entorno | `gctree scaffold --host codex --target /path/to/repo` |
|
|
209
231
|
|
|
210
232
|
---
|
|
211
233
|
|
|
212
234
|
## Documentación
|
|
213
235
|
|
|
214
|
-
La documentación detallada está en el directorio [`docs/`](https://github.com/handsupmin/gc-tree/tree/main/docs).
|
|
215
|
-
|
|
216
236
|
- **Concepto** — [`docs/concept.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/concept.es.md)
|
|
217
|
-
Explica qué es `gctree`, qué problema resuelve y cuál es el alcance de la capa de contexto global.
|
|
218
237
|
- **Principios** — [`docs/principles.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/principles.es.md)
|
|
219
|
-
Resume las reglas de gc-branches, alcance por repositorio, documentos summary-first y actualizaciones guiadas.
|
|
220
238
|
- **Uso** — [`docs/usage.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/usage.es.md)
|
|
221
|
-
Describe el flujo CLI estándar, los comandos del provider, el comportamiento de alcance por repo y los patrones de integración.
|
|
222
239
|
- **Desarrollo local** — [`docs/local-development.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.es.md)
|
|
223
|
-
Explica cómo instalar dependencias, ejecutar la CLI localmente y verificar cambios.
|
|
224
240
|
|
|
225
241
|
---
|
|
226
242
|
|
|
227
243
|
## Contribuir
|
|
228
244
|
|
|
229
|
-
Las contribuciones son bienvenidas. Consulta
|
|
245
|
+
Las contribuciones son bienvenidas. Consulta [CONTRIBUTING.md](https://github.com/handsupmin/gc-tree/blob/main/CONTRIBUTING.md) para el flujo de desarrollo y la checklist de PR.
|
|
230
246
|
|
|
231
247
|
---
|
|
232
248
|
|