@handsupmin/gc-tree 0.1.3 → 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 +172 -88
- package/README.ja.md +175 -91
- package/README.ko.md +177 -93
- package/README.md +169 -85
- package/README.zh.md +173 -89
- package/dist/src/resolve.js +40 -6
- package/docs/concept.es.md +37 -37
- package/docs/concept.ja.md +43 -43
- package/docs/concept.ko.md +41 -41
- package/docs/concept.md +15 -15
- package/docs/concept.zh.md +37 -37
- package/docs/local-development.es.md +25 -25
- package/docs/local-development.ja.md +22 -22
- package/docs/local-development.ko.md +25 -25
- package/docs/local-development.md +3 -3
- package/docs/local-development.zh.md +23 -23
- package/docs/principles.es.md +27 -26
- package/docs/principles.ja.md +28 -27
- package/docs/principles.ko.md +29 -28
- package/docs/principles.md +4 -4
- package/docs/principles.zh.md +28 -27
- package/docs/usage.es.md +32 -30
- package/docs/usage.ja.md +45 -43
- package/docs/usage.ko.md +41 -39
- package/docs/usage.md +2 -2
- package/docs/usage.zh.md +46 -44
- package/package.json +9 -2
package/README.es.md
CHANGED
|
@@ -1,165 +1,249 @@
|
|
|
1
1
|
# gc-tree
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
<img src="./logo.png" alt="logo de gc-tree" width="260" />
|
|
6
|
+
|
|
7
|
+
### Contexto global, más allá del proyecto.
|
|
8
|
+
|
|
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
|
+
|
|
12
|
+
[](https://www.npmjs.com/package/@handsupmin/gc-tree)
|
|
13
|
+
[](https://www.npmjs.com/package/@handsupmin/gc-tree)
|
|
14
|
+
[](https://github.com/handsupmin/gc-tree/stargazers)
|
|
15
|
+
[](https://github.com/handsupmin/gc-tree/blob/main/LICENSE)
|
|
16
|
+
[](https://nodejs.org)
|
|
4
17
|
|
|
5
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)
|
|
6
19
|
|
|
7
|
-
|
|
20
|
+
</div>
|
|
8
21
|
|
|
9
|
-
|
|
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.
|
|
22
|
+
---
|
|
11
23
|
|
|
12
|
-
|
|
24
|
+
## El problema
|
|
13
25
|
|
|
14
|
-
|
|
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
|
|
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.
|
|
19
27
|
|
|
20
|
-
|
|
28
|
+
Así que acabas haciendo esto cada vez:
|
|
21
29
|
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
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.
|
|
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
|
|
32
34
|
|
|
33
|
-
|
|
35
|
+
Esto no es un problema de IA. Es un **problema de gestión del contexto**.
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
---
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
npm install -g @handsupmin/gc-tree
|
|
39
|
-
```
|
|
39
|
+
## Qué hace gc-tree
|
|
40
40
|
|
|
41
|
-
|
|
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.
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
|
|
44
|
+
gctree resolve --query "auth token rotation policy"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
+
```
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
Tu herramienta de IA recibe el contexto correcto — no toda la base de conocimiento, solo el fragmento relevante.
|
|
53
62
|
|
|
54
|
-
|
|
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.
|
|
55
64
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Para quién es esto
|
|
68
|
+
|
|
69
|
+
Sacarás más partido a `gc-tree` si:
|
|
70
|
+
|
|
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
|
|
75
|
+
|
|
76
|
+
Si solo trabajas en un repositorio y un producto, no necesitas esto. `CLAUDE.md` o `.cursorrules` es suficiente.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## ¿En qué se diferencia de CLAUDE.md o cursor rules?
|
|
81
|
+
|
|
82
|
+
`CLAUDE.md` es genial — para un solo repositorio.
|
|
83
|
+
|
|
84
|
+
En el momento en que tienes múltiples repos, clientes o workstreams:
|
|
85
|
+
|
|
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 | ✅ | ✅ |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Rendimiento validado
|
|
99
|
+
|
|
100
|
+
Probado con documentación interna real (4 exportaciones de Notion, consultas mixtas en español e inglés):
|
|
59
101
|
|
|
60
|
-
|
|
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 | ✅ |
|
|
61
109
|
|
|
62
|
-
|
|
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
|
|
110
|
+
---
|
|
70
111
|
|
|
71
|
-
|
|
112
|
+
## Funciona con Claude Code y Codex — ambos verificados
|
|
72
113
|
|
|
73
114
|
```bash
|
|
74
|
-
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
|
|
75
118
|
```
|
|
76
119
|
|
|
77
|
-
|
|
120
|
+
Los dos providers usan el mismo almacén de contexto. Haz el onboarding una vez y úsalo desde cualquiera de los dos.
|
|
78
121
|
|
|
79
|
-
|
|
80
|
-
2. usar siempre este gc-branch en este repo
|
|
81
|
-
3. ignorar este gc-branch en este repo
|
|
122
|
+
**Claude Code** — usa los slash commands `/gc-resolve-context`, `/gc-onboard`, `/gc-update-global-context`.
|
|
82
123
|
|
|
83
|
-
|
|
124
|
+
**Codex** — usa los skills `$gc-resolve-context`, `$gc-onboard`, `$gc-update-global-context`. Verificado con `codex exec`:
|
|
84
125
|
|
|
85
|
-
|
|
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
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Instalación y arranque rápido
|
|
86
137
|
|
|
87
138
|
```bash
|
|
88
|
-
|
|
139
|
+
npm install -g @handsupmin/gc-tree
|
|
140
|
+
gctree init
|
|
89
141
|
```
|
|
90
142
|
|
|
91
|
-
`
|
|
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`
|
|
147
|
+
|
|
148
|
+
Después, tu herramienta de IA aprenderá a llamar a `gctree resolve` antes de planificar o implementar.
|
|
149
|
+
|
|
150
|
+
- **CLI:** `gctree`
|
|
151
|
+
- **Requisito:** Node.js 20+
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Movimientos habituales
|
|
92
156
|
|
|
93
|
-
|
|
157
|
+
### Contextos separados para workstreams distintos
|
|
94
158
|
|
|
95
159
|
```bash
|
|
160
|
+
gctree checkout -b client-b
|
|
96
161
|
gctree onboard
|
|
97
162
|
```
|
|
98
163
|
|
|
99
|
-
|
|
164
|
+
Cada gc-branch es un carril de contexto completamente independiente. Cambia entre ellos como con ramas de Git.
|
|
165
|
+
|
|
166
|
+
### Traer contexto relevante cuando lo necesitas
|
|
100
167
|
|
|
101
168
|
```bash
|
|
102
|
-
gctree
|
|
169
|
+
gctree resolve --query "billing retry policy"
|
|
103
170
|
```
|
|
104
171
|
|
|
105
|
-
|
|
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.
|
|
173
|
+
|
|
174
|
+
### Mantener el contexto al día
|
|
106
175
|
|
|
107
176
|
```bash
|
|
108
|
-
gctree update-gc
|
|
109
|
-
gctree ugc
|
|
177
|
+
gctree update-global-context # o: gctree update-gc / gctree ugc
|
|
110
178
|
```
|
|
111
179
|
|
|
112
|
-
|
|
180
|
+
Flujo de actualización guiado — tu herramienta de IA pregunta qué ha cambiado y escribe el nuevo contexto de vuelta al gc-branch.
|
|
113
181
|
|
|
114
|
-
|
|
115
|
-
2. después ejecutar `gctree update-global-context` para agregar contexto duradero sobre qué hace ese repo y por qué importa
|
|
116
|
-
|
|
117
|
-
#### 6) Restablece un gc-branch antes de volver a hacer onboarding
|
|
182
|
+
### Acotar el contexto a repos específicos
|
|
118
183
|
|
|
119
184
|
```bash
|
|
120
|
-
gctree
|
|
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
|
|
121
187
|
```
|
|
122
188
|
|
|
123
|
-
|
|
189
|
+
`gc-tree` no inyectará un contexto en repos donde no corresponde.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Cómo se almacena el contexto
|
|
124
194
|
|
|
125
|
-
|
|
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
|
+
```
|
|
126
210
|
|
|
127
|
-
|
|
128
|
-
- **Claude Code:** `/gc-onboard`, `/gc-update-global-context`
|
|
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.
|
|
129
212
|
|
|
130
|
-
|
|
213
|
+
---
|
|
131
214
|
|
|
132
|
-
|
|
215
|
+
## Comandos principales
|
|
133
216
|
|
|
134
217
|
| Objetivo | Comando |
|
|
135
|
-
|
|
218
|
+
|---|---|
|
|
136
219
|
| Inicializar gc-tree y elegir provider | `gctree init` |
|
|
137
220
|
| Confirmar el gc-branch activo | `gctree status` |
|
|
138
221
|
| Buscar en el contexto activo | `gctree resolve --query "..."` |
|
|
139
|
-
| Ver las reglas de alcance por repo | `gctree repo-map` |
|
|
140
|
-
| Incluir o excluir un repo para un gc-branch | `gctree set-repo-scope --branch <name> --include` / `--exclude` |
|
|
141
222
|
| Crear o cambiar gc-branches | `gctree checkout <branch>` / `gctree checkout -b <branch>` |
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
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` |
|
|
146
230
|
|
|
147
|
-
|
|
231
|
+
---
|
|
148
232
|
|
|
149
|
-
|
|
233
|
+
## Documentación
|
|
150
234
|
|
|
151
235
|
- **Concepto** — [`docs/concept.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/concept.es.md)
|
|
152
|
-
Explica qué es `gctree`, qué problema resuelve y cuál es el alcance de la capa de contexto global.
|
|
153
236
|
- **Principios** — [`docs/principles.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/principles.es.md)
|
|
154
|
-
Resume las reglas de gc-branches, alcance por repositorio, documentos summary-first y actualizaciones guiadas.
|
|
155
237
|
- **Uso** — [`docs/usage.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/usage.es.md)
|
|
156
|
-
Describe el flujo CLI estándar, los comandos del provider, el comportamiento de alcance por repo y los patrones de integración.
|
|
157
238
|
- **Desarrollo local** — [`docs/local-development.es.md`](https://github.com/handsupmin/gc-tree/blob/main/docs/local-development.es.md)
|
|
158
|
-
|
|
239
|
+
|
|
240
|
+
---
|
|
159
241
|
|
|
160
242
|
## Contribuir
|
|
161
243
|
|
|
162
|
-
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.
|
|
245
|
+
|
|
246
|
+
---
|
|
163
247
|
|
|
164
248
|
## Licencia
|
|
165
249
|
|