ai-first-cli 1.2.1 → 1.2.3
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/ANALISIS_COMPLETO.md +424 -0
- package/ANALISIS_MEJORAS.md +327 -0
- package/README.es.md +104 -82
- package/README.md +116 -113
- package/TEST_RESULTS.md +198 -0
- package/TEST_RESULTS_COMPARATIVE.md +159 -0
- package/TEST_RESULTS_COMPLETE.md +127 -0
- package/TEST_RESULTS_COMPREHENSIVE.md +208 -0
- package/ai/dependencies.json +15 -0
- package/ai/graph/knowledge-graph.json +4 -2
- package/ai-context/ai_context.md +7 -7
- package/ai-context/ai_rules.md +2 -2
- package/ai-context/architecture.md +17 -17
- package/ai-context/dependencies.json +34 -2
- package/ai-context/entrypoints.md +1 -1
- package/ai-context/graph/knowledge-graph.json +14 -199
- package/ai-context/index-state.json +386 -22
- package/ai-context/modules.json +685 -284
- package/ai-context/project.json +1 -1
- package/ai-context/repo_map.json +5317 -2019
- package/ai-context/repo_map.md +751 -17
- package/ai-context/schema.json +1 -1
- package/ai-context/summary.md +13 -8
- package/ai-context/symbols.json +65349 -5
- package/ai-context/tech_stack.md +4 -3
- package/dist/analyzers/symbols.js +9 -9
- package/dist/analyzers/symbols.js.map +1 -1
- package/dist/commands/ai-first.js +17 -0
- package/dist/commands/ai-first.js.map +1 -1
- package/dist/core/adapters/baseAdapter.d.ts +1 -1
- package/dist/core/adapters/baseAdapter.d.ts.map +1 -1
- package/dist/core/adapters/baseAdapter.js +50 -12
- package/dist/core/adapters/baseAdapter.js.map +1 -1
- package/dist/core/semanticContexts.d.ts.map +1 -1
- package/dist/core/semanticContexts.js +22 -60
- package/dist/core/semanticContexts.js.map +1 -1
- package/homebrew/af.rb +18 -0
- package/install.sh +188 -0
- package/package.json +2 -2
- package/src/analyzers/symbols.ts +9 -9
- package/src/commands/ai-first.ts +19 -1
- package/src/core/adapters/baseAdapter.ts +61 -12
- package/src/core/semanticContexts.ts +24 -66
- package/tests/knowledgeGraph.test.ts +1 -1
- package/tests/phase2-fixes.test.ts +4 -4
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
# 📋 ANÁLISIS COMPLETO DE MEJORAS - ai-first-cli
|
|
2
|
+
## Fecha: 2026-03-17
|
|
3
|
+
## Versión analizada: 1.1.5
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ✅ PUNTO 1 COMPLETADO: Release v1.1.5
|
|
8
|
+
|
|
9
|
+
- ✅ Versión actualizada a 1.1.5
|
|
10
|
+
- ✅ CHANGELOG.md actualizado
|
|
11
|
+
- ✅ BUGS.md actualizado con nuevos issues
|
|
12
|
+
- ✅ Build exitoso
|
|
13
|
+
- ✅ Commit realizado (f983ba8)
|
|
14
|
+
- ✅ Push a GitHub completado
|
|
15
|
+
- ⏳ NPM publish (pendiente de confirmación del usuario)
|
|
16
|
+
|
|
17
|
+
**Commit:** https://github.com/julianperezpesce/ai-first/commit/f983ba8
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🔍 ANÁLISIS DE PROBLEMAS Y MEJORAS IDENTIFICADAS
|
|
22
|
+
|
|
23
|
+
### 1. COBERTURA DE TESTING (Alta Prioridad)
|
|
24
|
+
|
|
25
|
+
**Estado actual:**
|
|
26
|
+
- ✅ 5 proyectos de test funcionando (Express, NestJS, Python CLI, React, Salesforce)
|
|
27
|
+
- ❌ 11+ frameworks sin testing
|
|
28
|
+
|
|
29
|
+
**Frameworks soportados pero NO testeados:**
|
|
30
|
+
| Framework | Tipo | Prioridad |
|
|
31
|
+
|-----------|------|-----------|
|
|
32
|
+
| Laravel | PHP Web | Alta |
|
|
33
|
+
| Django | Python Web | Alta |
|
|
34
|
+
| Flask/FastAPI | Python API | Alta |
|
|
35
|
+
| Rails | Ruby Web | Media |
|
|
36
|
+
| Spring Boot | Java Enterprise | Media |
|
|
37
|
+
| ASP.NET Core | C# Web | Media |
|
|
38
|
+
| Blazor | .NET Frontend | Baja |
|
|
39
|
+
| Phoenix | Elixir Web | Baja |
|
|
40
|
+
| FastAPI | Python API | Alta |
|
|
41
|
+
| Ruby | Ruby general | Baja |
|
|
42
|
+
|
|
43
|
+
**Impacto:** Los usuarios de estos frameworks pueden encontrar errores no detectados.
|
|
44
|
+
|
|
45
|
+
**Solución recomendada:**
|
|
46
|
+
1. Crear un test project para cada framework soportado
|
|
47
|
+
2. Implementar test automatizados que validen:
|
|
48
|
+
- Generación correcta de símbolos
|
|
49
|
+
- Detección de entrypoints
|
|
50
|
+
- Extracción de dependencias
|
|
51
|
+
- Generación de features/flows
|
|
52
|
+
3. Ejecutar tests en CI/CD antes de cada release
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### 2. ARCHIVOS DUPLICADOS (Media Prioridad)
|
|
57
|
+
|
|
58
|
+
**Problema detectado:**
|
|
59
|
+
En `ai/` se generan archivos duplicados con diferentes convenciones:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
ai/
|
|
63
|
+
├── repo-map.json ← kebab-case
|
|
64
|
+
├── repo_map.json ← snake_case
|
|
65
|
+
├── repo_map.md ← snake_case
|
|
66
|
+
├── module-graph.json ← kebab-case
|
|
67
|
+
├── symbol-graph.json ← kebab-case
|
|
68
|
+
└── ...
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Archivos duplicados encontrados:**
|
|
72
|
+
1. `repo-map.json` vs `repo_map.json`
|
|
73
|
+
2. Posiblemente otros casos similares
|
|
74
|
+
|
|
75
|
+
**Impacto:**
|
|
76
|
+
- Confusión para usuarios (¿cuál usar?)
|
|
77
|
+
- Doble espacio en disco
|
|
78
|
+
- Inconsistencia percibida
|
|
79
|
+
|
|
80
|
+
**Solución recomendada:**
|
|
81
|
+
1. Elegir UNA convención (recomendado: snake_case)
|
|
82
|
+
2. Mantener solo `repo_map.json`
|
|
83
|
+
3. Eliminar `repo-map.json` o marcarlo como deprecated
|
|
84
|
+
4. Actualizar toda la documentación
|
|
85
|
+
|
|
86
|
+
**Archivos a modificar:**
|
|
87
|
+
- `src/commands/ai-first.ts` (líneas que generan repo-map)
|
|
88
|
+
- `src/core/aiContextGenerator.ts`
|
|
89
|
+
- `src/core/ccp.ts`
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 3. INCONSISTENCIAS DE NOMENCLATURA (Media Prioridad)
|
|
94
|
+
|
|
95
|
+
**Problema detectado:**
|
|
96
|
+
Mezcla de convenciones en archivos generados:
|
|
97
|
+
|
|
98
|
+
| Archivo | Convención Actual | Convención Recomendada |
|
|
99
|
+
|---------|-------------------|------------------------|
|
|
100
|
+
| `repo-map.json` | kebab-case | `repo_map.json` |
|
|
101
|
+
| `module-graph.json` | kebab-case | `module_graph.json` |
|
|
102
|
+
| `symbol-graph.json` | kebab-case | `symbol_graph.json` |
|
|
103
|
+
| `knowledge-graph.json` | kebab-case | `knowledge_graph.json` |
|
|
104
|
+
| `symbol-references.json` | kebab-case | `symbol_references.json` |
|
|
105
|
+
| `ai_context.md` | snake_case | ✅ Correcto |
|
|
106
|
+
| `tech_stack.md` | snake_case | ✅ Correcto |
|
|
107
|
+
| `repo_map.md` | snake_case | ✅ Correcto |
|
|
108
|
+
|
|
109
|
+
**Impacto:**
|
|
110
|
+
- Difícil de recordar nombres
|
|
111
|
+
- Inconsistencia visual
|
|
112
|
+
- No sigue estándares de Node.js (que usa snake_case o camelCase)
|
|
113
|
+
|
|
114
|
+
**Solución recomendada:**
|
|
115
|
+
1. Estandarizar TODO a snake_case
|
|
116
|
+
2. Crear función helper `toSnakeCase()` para consistencia
|
|
117
|
+
3. Actualizar todos los generadores de archivos
|
|
118
|
+
4. Agregar test que valide convenciones
|
|
119
|
+
|
|
120
|
+
**Ejemplo de cambio:**
|
|
121
|
+
```typescript
|
|
122
|
+
// Antes
|
|
123
|
+
const outputFile = path.join(outputPath, 'module-graph.json');
|
|
124
|
+
|
|
125
|
+
// Después
|
|
126
|
+
const outputFile = path.join(outputPath, 'module_graph.json');
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 4. ORGANIZACIÓN DE CARPETA ai/ (Alta Prioridad)
|
|
132
|
+
|
|
133
|
+
**Problema detectado:**
|
|
134
|
+
La carpeta `ai/` en el repositorio contiene archivos que NO son generados por el CLI:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
ai/ (en el repo, no generado)
|
|
138
|
+
├── ai_context.md ← Generado por CLI ✅
|
|
139
|
+
├── ai_rules.md ← Generado por CLI ✅
|
|
140
|
+
├── cache.json ← Cache (temporal) ⚠️
|
|
141
|
+
├── embeddings.json ← Muy grande (706KB) ⚠️
|
|
142
|
+
├── git/ ← Datos git temporales ⚠️
|
|
143
|
+
├── hierarchy.json ← Temporal ⚠️
|
|
144
|
+
├── index-state.json ← Estado interno ⚠️
|
|
145
|
+
└── ...
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Problemas:**
|
|
149
|
+
1. Los usuarios no saben qué archivos versionar
|
|
150
|
+
2. Archivos temporales/cache ocupan espacio
|
|
151
|
+
3. Mezcla de archivos de ejemplo con archivos reales
|
|
152
|
+
4. Los test projects tienen archivos `ai/` versionados
|
|
153
|
+
|
|
154
|
+
**Solución recomendada:**
|
|
155
|
+
|
|
156
|
+
#### Opción A: Estructura limpia (Recomendada)
|
|
157
|
+
```
|
|
158
|
+
ai/
|
|
159
|
+
├── ai_context.md ← ✅ Mantener (principal)
|
|
160
|
+
├── ai_rules.md ← ✅ Mantener (reglas)
|
|
161
|
+
├── architecture.md ← ✅ Mantener
|
|
162
|
+
├── conventions.md ← ✅ Mantener
|
|
163
|
+
├── dependencies.json ← ✅ Mantener
|
|
164
|
+
├── entrypoints.md ← ✅ Mantener
|
|
165
|
+
├── repo_map.md ← ✅ Mantener
|
|
166
|
+
├── symbols.json ← ✅ Mantener
|
|
167
|
+
├── tech_stack.md ← ✅ Mantener
|
|
168
|
+
├── context/ ← ✅ Mantener (features, flows)
|
|
169
|
+
├── graph/ ← ✅ Mantener (graphs estáticos)
|
|
170
|
+
├── .cache/ ← 🆕 Nuevo (archivos temporales)
|
|
171
|
+
│ ├── cache.json
|
|
172
|
+
│ ├── index-state.json
|
|
173
|
+
│ └── embeddings.json
|
|
174
|
+
└── .git/ ← 🆕 Mover desde raíz
|
|
175
|
+
└── ...
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### Opción B: Separación completa
|
|
179
|
+
```
|
|
180
|
+
repo/
|
|
181
|
+
├── ai/ ← Solo archivos esenciales
|
|
182
|
+
│ ├── ai_context.md
|
|
183
|
+
│ ├── symbols.json
|
|
184
|
+
│ └── ...
|
|
185
|
+
├── .ai-cache/ ← Temporales (en .gitignore)
|
|
186
|
+
│ └── ...
|
|
187
|
+
└── .ai-git/ ← Datos git (en .gitignore)
|
|
188
|
+
└── ...
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Archivos a modificar:**
|
|
192
|
+
- `.gitignore` (agregar `ai/.cache/`, `ai/.git/`)
|
|
193
|
+
- `src/commands/ai-first.ts` (cambiar rutas de salida)
|
|
194
|
+
- `src/core/indexer.ts` (cambiar ruta de index.db)
|
|
195
|
+
- Documentación
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
### 5. MANEJO DE ERRORES GIT (Baja Prioridad)
|
|
200
|
+
|
|
201
|
+
**Problema actual:**
|
|
202
|
+
```bash
|
|
203
|
+
$ ai-first git --root test-projects/express-api
|
|
204
|
+
❌ Not a git repository
|
|
205
|
+
EXIT_CODE: 1
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Mejora recomendada:**
|
|
209
|
+
```bash
|
|
210
|
+
$ ai-first git --root test-projects/express-api
|
|
211
|
+
⚠️ No git repository found in test-projects/express-api
|
|
212
|
+
|
|
213
|
+
💡 To enable git analysis:
|
|
214
|
+
1. cd test-projects/express-api
|
|
215
|
+
2. git init
|
|
216
|
+
3. git add .
|
|
217
|
+
4. git commit -m "Initial commit"
|
|
218
|
+
|
|
219
|
+
📚 Learn more: https://ai-first-cli.netlify.app/docs/git-command
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Beneficios:**
|
|
223
|
+
- Mejor UX para nuevos usuarios
|
|
224
|
+
- Reduce tickets de soporte
|
|
225
|
+
- Educación inline
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### 6. MEJORAS ADICIONALES IDENTIFICADAS
|
|
230
|
+
|
|
231
|
+
#### 6.1 Validación de archivos generados
|
|
232
|
+
**Problema:** No hay validación automática de que los archivos generados sean válidos.
|
|
233
|
+
|
|
234
|
+
**Solución:** Agregar validación:
|
|
235
|
+
```typescript
|
|
236
|
+
// Después de generar JSON
|
|
237
|
+
const validateJson = (content: string) => {
|
|
238
|
+
try {
|
|
239
|
+
JSON.parse(content);
|
|
240
|
+
return true;
|
|
241
|
+
} catch {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
#### 6.2 Tamaño de archivos
|
|
248
|
+
**Problema:** `embeddings.json` puede ser muy grande (706KB en ejemplo).
|
|
249
|
+
|
|
250
|
+
**Solución:**
|
|
251
|
+
- Agregar compresión opcional
|
|
252
|
+
- O dividir en chunks
|
|
253
|
+
- O guardar en SQLite en lugar de JSON
|
|
254
|
+
|
|
255
|
+
#### 6.3 Documentación de archivos generados
|
|
256
|
+
**Falta:** Tabla clara que explique cada archivo generado.
|
|
257
|
+
|
|
258
|
+
**Solución:** Crear `docs/generated-files.md`:
|
|
259
|
+
| Archivo | Propósito | ¿Versionar? | Tamaño típico |
|
|
260
|
+
|---------|-----------|-------------|---------------|
|
|
261
|
+
| ai_context.md | Contexto principal para AI | Sí | ~2KB |
|
|
262
|
+
| symbols.json | Símbolos del proyecto | Sí | ~30KB |
|
|
263
|
+
| index.db | Base de datos SQLite | Opcional | ~45KB |
|
|
264
|
+
| cache.json | Cache temporal | No | Variable |
|
|
265
|
+
|
|
266
|
+
#### 6.4 Cleanup automático
|
|
267
|
+
**Problema:** Archivos viejos no se limpian automáticamente.
|
|
268
|
+
|
|
269
|
+
**Solución:** Agregar `ai-first clean`:
|
|
270
|
+
```bash
|
|
271
|
+
ai-first clean # Limpiar cache
|
|
272
|
+
ai-first clean --all # Limpiar todo excepto esenciales
|
|
273
|
+
ai-first clean --cache # Solo cache
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
#### 6.5 Configuración global
|
|
277
|
+
**Falta:** Archivo de configuración para defaults.
|
|
278
|
+
|
|
279
|
+
**Solución:** Soportar `ai-first.config.json`:
|
|
280
|
+
```json
|
|
281
|
+
{
|
|
282
|
+
"outputDir": "./ai",
|
|
283
|
+
"exclude": ["*.test.js", "node_modules"],
|
|
284
|
+
"cacheEnabled": true,
|
|
285
|
+
"maxFileSize": "1MB"
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 📊 RESUMEN DE PRIORIDADES
|
|
292
|
+
|
|
293
|
+
| # | Issue | Prioridad | Esfuerzo | Impacto |
|
|
294
|
+
|---|-------|-----------|----------|---------|
|
|
295
|
+
| 1 | Testing de frameworks | 🔴 Alta | Alto | Alto |
|
|
296
|
+
| 2 | Organización de ai/ | 🔴 Alta | Medio | Alto |
|
|
297
|
+
| 3 | Archivos duplicados | 🟡 Media | Bajo | Medio |
|
|
298
|
+
| 4 | Inconsistencias de nombres | 🟡 Media | Medio | Medio |
|
|
299
|
+
| 5 | Manejo de errores git | 🟢 Baja | Bajo | Bajo |
|
|
300
|
+
| 6 | Validación de archivos | 🟡 Media | Medio | Medio |
|
|
301
|
+
| 7 | Documentación de archivos | 🟢 Baja | Bajo | Medio |
|
|
302
|
+
| 8 | Cleanup automático | 🟢 Baja | Medio | Bajo |
|
|
303
|
+
| 9 | Configuración global | 🟢 Baja | Medio | Medio |
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 🎯 RECOMENDACIONES INMEDIATAS
|
|
308
|
+
|
|
309
|
+
### Para v1.1.6 (Próximo release):
|
|
310
|
+
1. ✅ Testing completo de Laravel y Django
|
|
311
|
+
2. ✅ Documentar estructura de ai/ claramente
|
|
312
|
+
3. ✅ Agregar mensaje amigable para error de git
|
|
313
|
+
|
|
314
|
+
### Para v1.2.0 (Release mayor):
|
|
315
|
+
1. Reorganizar estructura de ai/ (breaking change)
|
|
316
|
+
2. Consolidar archivos duplicados (breaking change)
|
|
317
|
+
3. Estandarizar nomenclatura (breaking change)
|
|
318
|
+
|
|
319
|
+
### Para v2.0.0 (Futuro):
|
|
320
|
+
1. Sistema de plugins
|
|
321
|
+
2. Configuración global
|
|
322
|
+
3. UI web para visualizar graphs
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
*Análisis completado: 2026-03-17*
|
|
327
|
+
*Issues registrados en: BUGS.md (sección "Nuevos Issues Identificados")*
|
package/README.es.md
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<a href="https://github.com/julianperezpesce/ai-first/stargazers">
|
|
7
7
|
<img src="https://img.shields.io/github/stars/julianperezpesce/ai-first?style=flat&color=ffd700" alt="Stars">
|
|
8
8
|
</a>
|
|
9
|
-
<a href="https://www.npmjs.com/package/ai-first">
|
|
10
|
-
<img src="https://img.shields.io/npm/dt/ai-first?color=blue" alt="NPM Downloads">
|
|
9
|
+
<a href="https://www.npmjs.com/package/ai-first-cli">
|
|
10
|
+
<img src="https://img.shields.io/npm/dt/ai-first-cli?color=blue" alt="NPM Downloads">
|
|
11
11
|
</a>
|
|
12
12
|
<a href="https://opensource.org/licenses/MIT">
|
|
13
13
|
<img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License">
|
|
@@ -19,11 +19,50 @@
|
|
|
19
19
|
|
|
20
20
|
> **Dale superpoderes a tu asistente de código IA.** Genera contexto instantáneo del proyecto para que los agentes IA comprendan tu código en segundos, no en minutos.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 📋 Tabla de Contenidos
|
|
25
|
+
|
|
26
|
+
- [Comandos](#-referencia-de-comandos)
|
|
27
|
+
- [Inicio Rápido](#-inicio-rápido)
|
|
28
|
+
- [Instalación](#-instalación)
|
|
29
|
+
- [Casos de Uso](#-casos-de-uso)
|
|
30
|
+
- [Benchmark](#-benchmark)
|
|
31
|
+
- [Cómo Funciona](#-cómo-funciona)
|
|
32
|
+
- [Archivos Generados](#-archivos-generados)
|
|
33
|
+
- [Agentes IA](#-agentes-ia-soportados)
|
|
34
|
+
- [Roadmap](#-roadmap)
|
|
35
|
+
- [Contribuir](#-para-contribuidores)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ⚡ Referencia de Comandos
|
|
40
|
+
|
|
41
|
+
| Comando | Descripción |
|
|
42
|
+
|---------|-------------|
|
|
43
|
+
| `af init` | Genera todos los archivos de contexto (símbolos, dependencias, arquitectura, etc.) |
|
|
44
|
+
| `af index` | Crea base de datos SQLite para consultas rápidas de símbolos |
|
|
45
|
+
| `af update` | Actualiza incrementally el contexto cuando archivos cambian |
|
|
46
|
+
| `af watch` | Observa cambios y actualiza el índice automáticamente |
|
|
47
|
+
| `af context` | Extrae contexto alrededor de un símbolo o función específica |
|
|
48
|
+
| `af explore` | Explora dependencias de módulos interactivamente |
|
|
49
|
+
| `af map` | Genera mapa del repositorio con todas las relaciones |
|
|
50
|
+
| `af doctor` | Verifica salud del repositorio y preparación para IA |
|
|
51
|
+
| `af query` | Consulta el índice (símbolos, imports, exports, stats) |
|
|
52
|
+
| `af adapters` | Lista adaptadores de lenguajes/frameworks soportados |
|
|
53
|
+
| `af git` | Muestra actividad reciente de git y archivos cambiados |
|
|
54
|
+
| `af graph` | Muestra visualización del grafo de conocimiento |
|
|
55
|
+
| `af --completions` | Genera script de autocompletado para shell |
|
|
56
|
+
|
|
57
|
+
> **Nota:** Todos los comandos funcionan con `af` (recomendado) o `ai-first` (legacy).
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
23
61
|
## ⚡ En 10 Segundos
|
|
24
62
|
|
|
25
63
|
```
|
|
26
|
-
$
|
|
64
|
+
$ npm install -g ai-first-cli
|
|
65
|
+
$ af init
|
|
27
66
|
✅ Generated ai-context/ai_context.md (0.3s)
|
|
28
67
|
✅ Generated ai-context/symbols.json (0.1s)
|
|
29
68
|
✅ Generated ai-context/dependencies.json (0.1s)
|
|
@@ -33,7 +72,6 @@ $ npx ai-first init
|
|
|
33
72
|
```
|
|
34
73
|
|
|
35
74
|
**Resultado:** La IA comprende tu proyecto en ~500 tokens en lugar de 50,000.
|
|
36
|
-
<!-- END FIRST 10 SECONDS VALUE -->
|
|
37
75
|
|
|
38
76
|
---
|
|
39
77
|
|
|
@@ -42,69 +80,54 @@ $ npx ai-first init
|
|
|
42
80
|
Inicializa AI-First en tu repositorio:
|
|
43
81
|
|
|
44
82
|
```
|
|
45
|
-
|
|
83
|
+
af init
|
|
46
84
|
```
|
|
47
85
|
|
|
48
86
|
Indexa el repositorio para que los agentes de IA puedan entender el código:
|
|
49
87
|
|
|
50
88
|
```
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
Genera un mapa de arquitectura del repositorio:
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
ai-first summarize
|
|
89
|
+
af index
|
|
58
90
|
```
|
|
59
91
|
|
|
60
92
|
* `init` genera 11 archivos de contexto con metadatos del proyecto
|
|
61
93
|
* `index` crea una base de datos SQLite para consultas rápidas de símbolos
|
|
62
|
-
* `summarize` crea resúmenes jerárquicos para navegación IA
|
|
63
94
|
|
|
64
95
|
---
|
|
65
96
|
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
Los asistentes de código IA a menudo tienen dificultades con repositorios grandes.
|
|
69
|
-
|
|
70
|
-
**Problemas comunes:**
|
|
71
|
-
|
|
72
|
-
* ventanas de contexto limitadas
|
|
73
|
-
* falta de conocimiento arquitectónico
|
|
74
|
-
* dificultad para navegar bases de código grandes
|
|
75
|
-
* relaciones perdidas entre módulos
|
|
97
|
+
## 📦 Instalación
|
|
76
98
|
|
|
77
|
-
|
|
99
|
+
### Requisitos
|
|
100
|
+
- Node.js 18+ (para indexación semántica opcional)
|
|
78
101
|
|
|
79
|
-
|
|
102
|
+
### Instalar
|
|
80
103
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
* mantener contexto arquitectónico
|
|
104
|
+
```bash
|
|
105
|
+
# Instalar globalmente (recomendado)
|
|
106
|
+
npm install -g ai-first-cli
|
|
85
107
|
|
|
86
|
-
|
|
108
|
+
# Ahora puedes usar el comando 'af'
|
|
109
|
+
af init
|
|
110
|
+
af index
|
|
111
|
+
af doctor
|
|
112
|
+
```
|
|
87
113
|
|
|
88
|
-
|
|
114
|
+
### Otros Métodos de Instalación
|
|
89
115
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
| 30+ segundos para que la IA "se caliente" | Comprensión instantánea |
|
|
95
|
-
| La IA pierde convenciones y patrones | La IA conoce tu arquitectura |
|
|
116
|
+
```bash
|
|
117
|
+
# Homebrew (macOS/Linux)
|
|
118
|
+
brew tap julianperezpesce/tap
|
|
119
|
+
brew install ai-first-cli
|
|
96
120
|
|
|
97
|
-
|
|
121
|
+
# Script de instalación (Linux/macOS/WSL)
|
|
122
|
+
curl -fsSL https://raw.githubusercontent.com/julianperezpesce/ai-first/master/install.sh | bash
|
|
123
|
+
```
|
|
98
124
|
|
|
99
|
-
|
|
125
|
+
### Autocompletado de Shell
|
|
100
126
|
|
|
101
127
|
```bash
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
# O instalar globalmente
|
|
106
|
-
npm install -g ai-first
|
|
107
|
-
ai-first init
|
|
128
|
+
# Para bash
|
|
129
|
+
af --completions > /usr/local/etc/bash_completion.d/af.bash
|
|
130
|
+
source /usr/local/etc/bash_completion.d/af.bash
|
|
108
131
|
```
|
|
109
132
|
|
|
110
133
|
---
|
|
@@ -113,19 +136,19 @@ ai-first init
|
|
|
113
136
|
|
|
114
137
|
### 1. Agentes de Código IA (OpenCode, Cursor, Claude Code)
|
|
115
138
|
```bash
|
|
116
|
-
|
|
139
|
+
af init
|
|
117
140
|
# Luego pregunta a la IA: "Lee ai-context/ai_context.md y ayúdame a agregar una característica"
|
|
118
141
|
```
|
|
119
142
|
|
|
120
143
|
### 2. Incorporación de Nuevos Desarrolladores
|
|
121
144
|
```bash
|
|
122
|
-
|
|
145
|
+
af init
|
|
123
146
|
# El nuevo desarrollador lee ai-context/ai_context.md → comprende el proyecto en 2 minutos
|
|
124
147
|
```
|
|
125
148
|
|
|
126
149
|
### 3. Documentación del Proyecto
|
|
127
150
|
```bash
|
|
128
|
-
|
|
151
|
+
af init
|
|
129
152
|
# Documentación automática instantánea siempre actualizada
|
|
130
153
|
```
|
|
131
154
|
|
|
@@ -146,7 +169,7 @@ Resultado: Código roto, tokens desperdiciados
|
|
|
146
169
|
### Después: IA Ilustrada
|
|
147
170
|
|
|
148
171
|
```
|
|
149
|
-
$
|
|
172
|
+
$ af init
|
|
150
173
|
|
|
151
174
|
Tú: "Lee ai-context/ai_context.md, luego agrega autenticación"
|
|
152
175
|
IA: *lee 1 archivo (0.5s)*
|
|
@@ -243,22 +266,19 @@ ai-context/
|
|
|
243
266
|
├── repo_map.json # Estructura legible por máquina
|
|
244
267
|
├── symbols.json # Funciones/clases extraídas
|
|
245
268
|
├── dependencies.json # Relaciones de imports
|
|
246
|
-
├── architecture.md
|
|
269
|
+
├── architecture.md # Patrón de arquitectura
|
|
247
270
|
├── tech_stack.md # Lenguajes y frameworks
|
|
248
271
|
├── entrypoints.md # Puntos de entrada
|
|
249
272
|
├── conventions.md # Convenciones de código
|
|
250
|
-
├── index.db # SQLite (
|
|
251
|
-
|
|
252
|
-
├── graph
|
|
253
|
-
│
|
|
254
|
-
|
|
255
|
-
│
|
|
256
|
-
└── context/ # Generado por `ai-first init` o `map`
|
|
273
|
+
├── index.db # Índice SQLite (generado por `af index`)
|
|
274
|
+
├── graph/ # Grafos de dependencias (generado por `af map`)
|
|
275
|
+
│ ├── module-graph.json
|
|
276
|
+
│ └── symbol-graph.json
|
|
277
|
+
└── context/ # Contexto de negocio (generado por `af init`)
|
|
257
278
|
├── features/ # Features de negocio detectados
|
|
258
279
|
│ └── <modulo>.json
|
|
259
280
|
└── flows/ # Cadenas de ejecución de negocio
|
|
260
281
|
└── <flujo>.json
|
|
261
|
-
└── index.db # SQLite (con índice ai-first)
|
|
262
282
|
```
|
|
263
283
|
|
|
264
284
|
---
|
|
@@ -279,16 +299,16 @@ ai-context/
|
|
|
279
299
|
|
|
280
300
|
```bash
|
|
281
301
|
# Generar contexto
|
|
282
|
-
|
|
302
|
+
af init
|
|
283
303
|
|
|
284
304
|
# Generar índice SQLite
|
|
285
|
-
|
|
305
|
+
af index
|
|
286
306
|
|
|
287
307
|
# Directorio de salida personalizado
|
|
288
|
-
|
|
308
|
+
af init --output ./docs/ai
|
|
289
309
|
|
|
290
310
|
# Directorio raíz personalizado
|
|
291
|
-
|
|
311
|
+
af init --root ./my-project
|
|
292
312
|
```
|
|
293
313
|
|
|
294
314
|
---
|
|
@@ -299,14 +319,14 @@ CCP (Context Control Packs) te permite crear contextos reutilizables y específi
|
|
|
299
319
|
|
|
300
320
|
### Cómo Funciona
|
|
301
321
|
|
|
302
|
-
1. **Generar Módulos de Contexto**: `
|
|
322
|
+
1. **Generar Módulos de Contexto**: `af init` crea módulos en `ai-context/context/`
|
|
303
323
|
2. **Crear un CCP**: Define qué módulos incluir para una tarea específica
|
|
304
324
|
3. **Usar en IA**: Referencia el CCP al trabajar con agentes de IA
|
|
305
325
|
|
|
306
326
|
### Ejemplo
|
|
307
327
|
|
|
308
328
|
```bash
|
|
309
|
-
|
|
329
|
+
af ccp create tarea-auth --include repo,auth,api --description "Trabajo en autenticación"
|
|
310
330
|
```
|
|
311
331
|
|
|
312
332
|
---
|
|
@@ -353,13 +373,13 @@ Los flows representan cadenas de ejecución de negocio desde entrypoints.
|
|
|
353
373
|
}
|
|
354
374
|
```
|
|
355
375
|
|
|
356
|
-
**Generado por:** `
|
|
376
|
+
**Generado por:** `af init` o `af map`
|
|
357
377
|
|
|
358
378
|
---
|
|
359
379
|
|
|
360
380
|
## 🤖 Soporte Android/Kotlin
|
|
361
381
|
|
|
362
|
-
|
|
382
|
+
af detecta e indexa automáticamente proyectos Android/Kotlin:
|
|
363
383
|
|
|
364
384
|
- **Detección de lenguaje**: Kotlin (.kt)
|
|
365
385
|
- **Detección de framework**: Android (vía build.gradle, AndroidManifest.xml)
|
|
@@ -388,19 +408,23 @@ ai-first detecta e indexa automáticamente proyectos Android/Kotlin:
|
|
|
388
408
|
- Soporte para parsers PHP y Ruby agregado
|
|
389
409
|
- 11 adapters funcionando (100% cobertura)
|
|
390
410
|
|
|
391
|
-
### Phase 3 (
|
|
392
|
-
-
|
|
393
|
-
-
|
|
394
|
-
-
|
|
395
|
-
-
|
|
396
|
-
-
|
|
397
|
-
- [ ] Plantillas de integración CI/CD
|
|
411
|
+
### Phase 3 ✅ (Completado)
|
|
412
|
+
- Indexación semántica mejorada
|
|
413
|
+
- Soporte PHP y Ruby (proyectos de prueba Laravel y Rails)
|
|
414
|
+
- Soporte de archivo de configuración (`ai-first.config.json`)
|
|
415
|
+
- Sistema de reglas/plugins custom
|
|
416
|
+
- Plantillas de integración CI/CD
|
|
398
417
|
|
|
399
|
-
### Phase 4 (
|
|
400
|
-
-
|
|
401
|
-
-
|
|
402
|
-
-
|
|
403
|
-
-
|
|
418
|
+
### Phase 4 ✅ (Completado)
|
|
419
|
+
- Integración con Git (analizar cambios recientes)
|
|
420
|
+
- Contexto aware de diff (qué cambió desde última ejecución)
|
|
421
|
+
- Modo interactivo
|
|
422
|
+
- Índice SQLite para consultas rápidas de símbolos
|
|
423
|
+
|
|
424
|
+
### Phase 5 ✅ (Completado)
|
|
425
|
+
- Arquitectura: `ai/` → `ai-context/`
|
|
426
|
+
- Rendimiento: embeddings a SQLite
|
|
427
|
+
- Documentación: mejoras comprehensivas del README
|
|
404
428
|
|
|
405
429
|
---
|
|
406
430
|
|
|
@@ -443,7 +467,7 @@ Ver [docs/architecture.md](./docs/architecture.md) para arquitectura interna.
|
|
|
443
467
|
|
|
444
468
|
## 🤖 Soporte Android/Kotlin
|
|
445
469
|
|
|
446
|
-
|
|
470
|
+
af detecta e indexa automáticamente proyectos Android/Kotlin:
|
|
447
471
|
|
|
448
472
|
- **Detección de lenguaje**: Kotlin (.kt)
|
|
449
473
|
- **Detección de framework**: Android (vía build.gradle, AndroidManifest.xml)
|
|
@@ -465,5 +489,3 @@ ai-first detecta e indexa automáticamente proyectos Android/Kotlin:
|
|
|
465
489
|
## 📄 Licencia
|
|
466
490
|
|
|
467
491
|
MIT © [Julian Perez Pesce](https://github.com/julianperezpesce)
|
|
468
|
-
|
|
469
|
-
MIT © [Julian Perez Pesce](https://github.com/julianperezpesce)
|