@handsupmin/gc-tree 0.1.4 → 0.2.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 +133 -118
- package/README.ja.md +135 -120
- package/README.ko.md +137 -122
- package/README.md +138 -123
- package/README.zh.md +135 -119
- package/dist/src/resolve.js +40 -6
- package/package.json +9 -2
package/README.es.md
CHANGED
|
@@ -19,214 +19,229 @@ 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
|
-
## Qué
|
|
39
|
+
## Qué hace gc-tree
|
|
45
40
|
|
|
46
|
-
- **
|
|
47
|
-
Puedes mantener carriles separados por producto, cliente o workstream.
|
|
41
|
+
`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.
|
|
48
42
|
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
```bash
|
|
44
|
+
gctree resolve --query "auth token rotation policy"
|
|
45
|
+
```
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"gc_branch": "main",
|
|
50
|
+
"matches": [
|
|
51
|
+
{
|
|
52
|
+
"title": "Convenciones de Auth y Sesión",
|
|
53
|
+
"score": 4,
|
|
54
|
+
"summary": "Rotation de JWT en cada petición, refresh tokens en cookies httpOnly, TTL de 15 min para access tokens",
|
|
55
|
+
"excerpt": "## Flujo de Auth\nAccess token: TTL 15 min, rotation en cada petición autenticada..."
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
54
60
|
|
|
55
|
-
|
|
56
|
-
Puedes crear y mantener el contexto con Codex, Claude Code o ambos.
|
|
61
|
+
Tu herramienta de IA recibe el contexto correcto — no toda la base de conocimiento, solo el fragmento relevante.
|
|
57
62
|
|
|
58
|
-
|
|
59
|
-
El contexto vive en archivos visibles, no en memoria oculta, y las herramientas pueden leer primero el resumen corto.
|
|
63
|
+
**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.
|
|
60
64
|
|
|
61
65
|
---
|
|
62
66
|
|
|
63
|
-
##
|
|
67
|
+
## Para quién es esto
|
|
64
68
|
|
|
65
|
-
|
|
66
|
-
npm install -g @handsupmin/gc-tree
|
|
67
|
-
gctree init
|
|
68
|
-
```
|
|
69
|
+
Sacarás más partido a `gc-tree` si:
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
- Trabajas en **múltiples repositorios** (equipos con monorepo, repos de plataforma + cliente, stacks de backend + frontend)
|
|
72
|
+
- Cambias entre **múltiples productos o clientes** en la misma semana
|
|
73
|
+
- Te encuentras **explicando el mismo contexto** al inicio de cada sesión de IA
|
|
74
|
+
- Quieres que tus herramientas de IA entiendan tus **convenciones, arquitectura y conocimiento de dominio** — no solo el archivo actual
|
|
72
75
|
|
|
73
|
-
|
|
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).
|
|
76
|
+
Si solo trabajas en un repositorio y un producto, no necesitas esto. `CLAUDE.md` o `.cursorrules` es suficiente.
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
80
|
-
##
|
|
80
|
+
## ¿En qué se diferencia de CLAUDE.md o cursor rules?
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
`CLAUDE.md` es genial — para un solo repositorio.
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
gctree checkout -b client-b
|
|
86
|
-
gctree onboard
|
|
87
|
-
```
|
|
84
|
+
En el momento en que tienes múltiples repos, clientes o workstreams:
|
|
88
85
|
|
|
89
|
-
|
|
86
|
+
| | `CLAUDE.md` / cursor rules | `gc-tree` |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| Alcance | Un repositorio | Múltiples repos, un contexto |
|
|
89
|
+
| Persistencia | Archivo dentro del repo | Almacenado fuera, reutilizable entre sesiones |
|
|
90
|
+
| Cambio de contexto | Edición manual de archivos | `gctree checkout client-b` |
|
|
91
|
+
| Filtrado por relevancia | Todo o nada | Solo inyecta docs coincidentes (~4%) |
|
|
92
|
+
| Onboarding | Escrito a mano | Guiado por tu herramienta de IA |
|
|
93
|
+
| Compatible con Codex | ✅ | ✅ |
|
|
94
|
+
| Compatible con Claude Code | ✅ | ✅ |
|
|
90
95
|
|
|
91
|
-
|
|
96
|
+
---
|
|
92
97
|
|
|
93
|
-
|
|
94
|
-
gctree update-global-context
|
|
95
|
-
```
|
|
98
|
+
## Rendimiento validado
|
|
96
99
|
|
|
97
|
-
|
|
100
|
+
Probado con documentación interna real (4 exportaciones de Notion, consultas mixtas en español e inglés):
|
|
98
101
|
|
|
99
|
-
|
|
102
|
+
| Métrica | Resultado |
|
|
103
|
+
|---|---|
|
|
104
|
+
| Recall — consultas relevantes que encuentran el doc correcto | **100%** (16/16) |
|
|
105
|
+
| Precision — consultas irrelevantes que devuelven vacío | **80%** (4/5) |
|
|
106
|
+
| F1 score | **88.9%** |
|
|
107
|
+
| Tokens inyectados por consulta vs. contexto total | **~4%** |
|
|
108
|
+
| Compatible con consultas mixtas en varios idiomas | ✅ |
|
|
100
109
|
|
|
101
|
-
|
|
102
|
-
gctree update-gc
|
|
103
|
-
gctree ugc
|
|
104
|
-
```
|
|
110
|
+
---
|
|
105
111
|
|
|
106
|
-
|
|
112
|
+
## Funciona con Claude Code y Codex — ambos verificados
|
|
107
113
|
|
|
108
114
|
```bash
|
|
109
|
-
gctree
|
|
115
|
+
gctree scaffold --host claude-code # instala snippet en CLAUDE.md + /gc-onboard, /gc-update-global-context
|
|
116
|
+
gctree scaffold --host codex # instala snippet en AGENTS.md + $gc-onboard, $gc-update-global-context
|
|
117
|
+
gctree scaffold --host both # ambos a la vez
|
|
110
118
|
```
|
|
111
119
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
---
|
|
120
|
+
Los dos providers usan el mismo almacén de contexto. Haz el onboarding una vez y úsalo desde cualquiera de los dos.
|
|
115
121
|
|
|
116
|
-
|
|
122
|
+
**Claude Code** — usa los slash commands `/gc-resolve-context`, `/gc-onboard`, `/gc-update-global-context`.
|
|
117
123
|
|
|
118
|
-
**
|
|
124
|
+
**Codex** — usa los skills `$gc-resolve-context`, `$gc-onboard`, `$gc-update-global-context`. Verificado con `codex exec`:
|
|
119
125
|
|
|
120
|
-
|
|
126
|
+
```
|
|
127
|
+
gctree status → gc_branch: main, doc_count: 2
|
|
128
|
+
gctree resolve --query 'NestJS DTO plainToInstance'
|
|
129
|
+
→ coincidencia con "Convenciones de Backend" (score: 3)
|
|
130
|
+
→ DTO: class-transformer plainToInstance, class-validator obligatorio
|
|
131
|
+
→ Manejo de errores: excepciones personalizadas basadas en HttpException, prohibido lanzar raw Error
|
|
132
|
+
```
|
|
121
133
|
|
|
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
|
|
134
|
+
---
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
## Instalación y arranque rápido
|
|
129
137
|
|
|
130
138
|
```bash
|
|
131
|
-
|
|
132
|
-
gctree
|
|
139
|
+
npm install -g @handsupmin/gc-tree
|
|
140
|
+
gctree init
|
|
133
141
|
```
|
|
134
142
|
|
|
135
|
-
|
|
143
|
+
`gctree init` te guía a través de:
|
|
144
|
+
1. Elegir provider: `claude-code`, `codex` o `both`
|
|
145
|
+
2. Instalar los archivos de integración en el repositorio actual
|
|
146
|
+
3. Completar el onboarding guiado para el gc-branch `main`
|
|
136
147
|
|
|
137
|
-
|
|
148
|
+
Después, tu herramienta de IA aprenderá a llamar a `gctree resolve` antes de planificar o implementar.
|
|
138
149
|
|
|
139
|
-
|
|
150
|
+
- **CLI:** `gctree`
|
|
151
|
+
- **Requisito:** Node.js 20+
|
|
140
152
|
|
|
141
153
|
---
|
|
142
154
|
|
|
143
|
-
##
|
|
144
|
-
|
|
145
|
-
Imagina que trabajas entre:
|
|
155
|
+
## Movimientos habituales
|
|
146
156
|
|
|
147
|
-
|
|
148
|
-
- dos repos de cliente
|
|
149
|
-
- un repo de tooling interno
|
|
157
|
+
### Contextos separados para workstreams distintos
|
|
150
158
|
|
|
151
|
-
|
|
159
|
+
```bash
|
|
160
|
+
gctree checkout -b client-b
|
|
161
|
+
gctree onboard
|
|
162
|
+
```
|
|
152
163
|
|
|
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
|
|
164
|
+
Cada gc-branch es un carril de contexto completamente independiente. Cambia entre ellos como con ramas de Git.
|
|
157
165
|
|
|
158
|
-
|
|
166
|
+
### Traer contexto relevante cuando lo necesitas
|
|
159
167
|
|
|
160
|
-
|
|
168
|
+
```bash
|
|
169
|
+
gctree resolve --query "billing retry policy"
|
|
170
|
+
```
|
|
161
171
|
|
|
162
|
-
|
|
163
|
-
> sino **gestionar el contexto correcto en el nivel correcto del trabajo**.
|
|
172
|
+
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
173
|
|
|
165
|
-
|
|
174
|
+
### Mantener el contexto al día
|
|
166
175
|
|
|
167
|
-
|
|
176
|
+
```bash
|
|
177
|
+
gctree update-global-context # o: gctree update-gc / gctree ugc
|
|
178
|
+
```
|
|
168
179
|
|
|
169
|
-
|
|
170
|
-
Un carril de contexto duradero para un producto, cliente, workstream o dominio.
|
|
180
|
+
Flujo de actualización guiado — tu herramienta de IA pregunta qué ha cambiado y escribe el nuevo contexto de vuelta al gc-branch.
|
|
171
181
|
|
|
172
|
-
|
|
173
|
-
Las reglas que deciden en qué repositorios debe aplicarse un contexto.
|
|
182
|
+
### Acotar el contexto a repos específicos
|
|
174
183
|
|
|
175
|
-
|
|
176
|
-
|
|
184
|
+
```bash
|
|
185
|
+
gctree set-repo-scope --branch client-b --include # incluir el repo actual
|
|
186
|
+
gctree set-repo-scope --branch client-b --exclude # excluir el repo actual
|
|
187
|
+
```
|
|
177
188
|
|
|
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.
|
|
189
|
+
`gc-tree` no inyectará un contexto en repos donde no corresponde.
|
|
181
190
|
|
|
182
191
|
---
|
|
183
192
|
|
|
184
|
-
##
|
|
185
|
-
|
|
186
|
-
Después del scaffold, los comandos visibles son:
|
|
193
|
+
## Cómo se almacena el contexto
|
|
187
194
|
|
|
188
|
-
|
|
189
|
-
|
|
195
|
+
```
|
|
196
|
+
~/.gctree/
|
|
197
|
+
branches/
|
|
198
|
+
main/
|
|
199
|
+
index.md ← índice compacto, ≤2000 chars, se carga primero
|
|
200
|
+
docs/
|
|
201
|
+
auth.md ← doc completo, se lee solo cuando hace falta
|
|
202
|
+
architecture.md
|
|
203
|
+
client-b/
|
|
204
|
+
index.md
|
|
205
|
+
docs/
|
|
206
|
+
...
|
|
207
|
+
branch-repo-map.json ← qué repos pertenecen a qué gc-branch
|
|
208
|
+
settings.json ← provider preferido, idioma
|
|
209
|
+
```
|
|
190
210
|
|
|
191
|
-
|
|
211
|
+
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
212
|
|
|
193
213
|
---
|
|
194
214
|
|
|
195
|
-
## Comandos
|
|
215
|
+
## Comandos principales
|
|
196
216
|
|
|
197
217
|
| Objetivo | Comando |
|
|
198
|
-
|
|
218
|
+
|---|---|
|
|
199
219
|
| Inicializar gc-tree y elegir provider | `gctree init` |
|
|
200
220
|
| Confirmar el gc-branch activo | `gctree status` |
|
|
201
221
|
| Buscar en el contexto activo | `gctree resolve --query "..."` |
|
|
202
|
-
| Ver las reglas de alcance por repo | `gctree repo-map` |
|
|
203
|
-
| Incluir o excluir un repo para un gc-branch | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
204
222
|
| Crear o cambiar gc-branches | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
223
|
+
| Listar todos los gc-branches | `gctree branches` |
|
|
224
|
+
| Onboarding guiado de un gc-branch vacío | `gctree onboard` |
|
|
225
|
+
| Actualización guiada del gc-branch activo | `gctree update-global-context` / `gctree ugc` |
|
|
226
|
+
| Ver reglas de alcance por repo | `gctree repo-map` |
|
|
227
|
+
| Incluir o excluir el repo actual para un gc-branch | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
228
|
+
| Resetear un gc-branch antes de re-onboard | `gctree reset-gc-branch --branch <name> --yes` |
|
|
229
|
+
| Instalar scaffold en un nuevo entorno | `gctree scaffold --host codex --target /path/to/repo` |
|
|
209
230
|
|
|
210
231
|
---
|
|
211
232
|
|
|
212
233
|
## Documentación
|
|
213
234
|
|
|
214
|
-
La documentación detallada está en el directorio [`docs/`](https://github.com/handsupmin/gc-tree/tree/main/docs).
|
|
215
|
-
|
|
216
235
|
- **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
236
|
- **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
237
|
- **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
238
|
- **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
239
|
|
|
225
240
|
---
|
|
226
241
|
|
|
227
242
|
## Contribuir
|
|
228
243
|
|
|
229
|
-
Las contribuciones son bienvenidas. Consulta
|
|
244
|
+
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
245
|
|
|
231
246
|
---
|
|
232
247
|
|