ai-first-cli 1.1.0 → 1.1.2

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.
Files changed (192) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.es.md +137 -1
  3. package/README.md +136 -4
  4. package/ai/ai_context.md +2 -2
  5. package/ai/architecture.md +3 -3
  6. package/ai/cache.json +85 -57
  7. package/ai/ccp/jira-123/context.json +7 -0
  8. package/ai/context/repo.json +56 -0
  9. package/ai/context/utils.json +7 -0
  10. package/ai/dependencies.json +51 -1026
  11. package/ai/files.json +195 -3
  12. package/ai/git/commit-activity.json +8646 -0
  13. package/ai/git/recent-features.json +1 -0
  14. package/ai/git/recent-files.json +52 -0
  15. package/ai/git/recent-flows.json +1 -0
  16. package/ai/graph/knowledge-graph.json +43643 -0
  17. package/ai/graph/module-graph.json +4 -0
  18. package/ai/graph/symbol-graph.json +3307 -879
  19. package/ai/graph/symbol-references.json +119 -32
  20. package/ai/index-state.json +843 -188
  21. package/ai/index.db +0 -0
  22. package/ai/modules.json +4 -0
  23. package/ai/repo-map.json +81 -17
  24. package/ai/repo_map.json +81 -17
  25. package/ai/repo_map.md +21 -7
  26. package/ai/summary.md +5 -5
  27. package/ai/symbols.json +1 -20287
  28. package/dist/analyzers/androidResources.d.ts +23 -0
  29. package/dist/analyzers/androidResources.d.ts.map +1 -0
  30. package/dist/analyzers/androidResources.js +93 -0
  31. package/dist/analyzers/androidResources.js.map +1 -0
  32. package/dist/analyzers/dependencies.d.ts.map +1 -1
  33. package/dist/analyzers/dependencies.js +37 -0
  34. package/dist/analyzers/dependencies.js.map +1 -1
  35. package/dist/analyzers/entrypoints.d.ts.map +1 -1
  36. package/dist/analyzers/entrypoints.js +71 -1
  37. package/dist/analyzers/entrypoints.js.map +1 -1
  38. package/dist/analyzers/gradleModules.d.ts +22 -0
  39. package/dist/analyzers/gradleModules.d.ts.map +1 -0
  40. package/dist/analyzers/gradleModules.js +75 -0
  41. package/dist/analyzers/gradleModules.js.map +1 -0
  42. package/dist/analyzers/techStack.d.ts +7 -0
  43. package/dist/analyzers/techStack.d.ts.map +1 -1
  44. package/dist/analyzers/techStack.js +44 -1
  45. package/dist/analyzers/techStack.js.map +1 -1
  46. package/dist/commands/ai-first.d.ts.map +1 -1
  47. package/dist/commands/ai-first.js +311 -1
  48. package/dist/commands/ai-first.js.map +1 -1
  49. package/dist/core/adapters/adapterRegistry.d.ts +39 -0
  50. package/dist/core/adapters/adapterRegistry.d.ts.map +1 -0
  51. package/dist/core/adapters/adapterRegistry.js +155 -0
  52. package/dist/core/adapters/adapterRegistry.js.map +1 -0
  53. package/dist/core/adapters/baseAdapter.d.ts +49 -0
  54. package/dist/core/adapters/baseAdapter.d.ts.map +1 -0
  55. package/dist/core/adapters/baseAdapter.js +28 -0
  56. package/dist/core/adapters/baseAdapter.js.map +1 -0
  57. package/dist/core/adapters/community/fastapiAdapter.d.ts +7 -0
  58. package/dist/core/adapters/community/fastapiAdapter.d.ts.map +1 -0
  59. package/dist/core/adapters/community/fastapiAdapter.js +40 -0
  60. package/dist/core/adapters/community/fastapiAdapter.js.map +1 -0
  61. package/dist/core/adapters/community/index.d.ts +11 -0
  62. package/dist/core/adapters/community/index.d.ts.map +1 -0
  63. package/dist/core/adapters/community/index.js +11 -0
  64. package/dist/core/adapters/community/index.js.map +1 -0
  65. package/dist/core/adapters/community/laravelAdapter.d.ts +7 -0
  66. package/dist/core/adapters/community/laravelAdapter.d.ts.map +1 -0
  67. package/dist/core/adapters/community/laravelAdapter.js +47 -0
  68. package/dist/core/adapters/community/laravelAdapter.js.map +1 -0
  69. package/dist/core/adapters/community/nestjsAdapter.d.ts +7 -0
  70. package/dist/core/adapters/community/nestjsAdapter.d.ts.map +1 -0
  71. package/dist/core/adapters/community/nestjsAdapter.js +48 -0
  72. package/dist/core/adapters/community/nestjsAdapter.js.map +1 -0
  73. package/dist/core/adapters/community/phoenixAdapter.d.ts +7 -0
  74. package/dist/core/adapters/community/phoenixAdapter.d.ts.map +1 -0
  75. package/dist/core/adapters/community/phoenixAdapter.js +45 -0
  76. package/dist/core/adapters/community/phoenixAdapter.js.map +1 -0
  77. package/dist/core/adapters/community/springBootAdapter.d.ts +7 -0
  78. package/dist/core/adapters/community/springBootAdapter.d.ts.map +1 -0
  79. package/dist/core/adapters/community/springBootAdapter.js +44 -0
  80. package/dist/core/adapters/community/springBootAdapter.js.map +1 -0
  81. package/dist/core/adapters/dotnetAdapter.d.ts +20 -0
  82. package/dist/core/adapters/dotnetAdapter.d.ts.map +1 -0
  83. package/dist/core/adapters/dotnetAdapter.js +86 -0
  84. package/dist/core/adapters/dotnetAdapter.js.map +1 -0
  85. package/dist/core/adapters/index.d.ts +18 -0
  86. package/dist/core/adapters/index.d.ts.map +1 -0
  87. package/dist/core/adapters/index.js +19 -0
  88. package/dist/core/adapters/index.js.map +1 -0
  89. package/dist/core/adapters/javascriptAdapter.d.ts +11 -0
  90. package/dist/core/adapters/javascriptAdapter.d.ts.map +1 -0
  91. package/dist/core/adapters/javascriptAdapter.js +47 -0
  92. package/dist/core/adapters/javascriptAdapter.js.map +1 -0
  93. package/dist/core/adapters/pythonAdapter.d.ts +20 -0
  94. package/dist/core/adapters/pythonAdapter.d.ts.map +1 -0
  95. package/dist/core/adapters/pythonAdapter.js +99 -0
  96. package/dist/core/adapters/pythonAdapter.js.map +1 -0
  97. package/dist/core/adapters/railsAdapter.d.ts +10 -0
  98. package/dist/core/adapters/railsAdapter.d.ts.map +1 -0
  99. package/dist/core/adapters/railsAdapter.js +52 -0
  100. package/dist/core/adapters/railsAdapter.js.map +1 -0
  101. package/dist/core/adapters/salesforceAdapter.d.ts +16 -0
  102. package/dist/core/adapters/salesforceAdapter.d.ts.map +1 -0
  103. package/dist/core/adapters/salesforceAdapter.js +64 -0
  104. package/dist/core/adapters/salesforceAdapter.js.map +1 -0
  105. package/dist/core/adapters/sdk.d.ts +83 -0
  106. package/dist/core/adapters/sdk.d.ts.map +1 -0
  107. package/dist/core/adapters/sdk.js +114 -0
  108. package/dist/core/adapters/sdk.js.map +1 -0
  109. package/dist/core/ccp.d.ts +37 -0
  110. package/dist/core/ccp.d.ts.map +1 -0
  111. package/dist/core/ccp.js +184 -0
  112. package/dist/core/ccp.js.map +1 -0
  113. package/dist/core/gitAnalyzer.d.ts +74 -0
  114. package/dist/core/gitAnalyzer.d.ts.map +1 -0
  115. package/dist/core/gitAnalyzer.js +298 -0
  116. package/dist/core/gitAnalyzer.js.map +1 -0
  117. package/dist/core/incrementalAnalyzer.d.ts +28 -0
  118. package/dist/core/incrementalAnalyzer.d.ts.map +1 -0
  119. package/dist/core/incrementalAnalyzer.js +343 -0
  120. package/dist/core/incrementalAnalyzer.js.map +1 -0
  121. package/dist/core/knowledgeGraphBuilder.d.ts +31 -0
  122. package/dist/core/knowledgeGraphBuilder.d.ts.map +1 -0
  123. package/dist/core/knowledgeGraphBuilder.js +197 -0
  124. package/dist/core/knowledgeGraphBuilder.js.map +1 -0
  125. package/dist/core/lazyAnalyzer.d.ts +57 -0
  126. package/dist/core/lazyAnalyzer.d.ts.map +1 -0
  127. package/dist/core/lazyAnalyzer.js +204 -0
  128. package/dist/core/lazyAnalyzer.js.map +1 -0
  129. package/dist/core/schema.d.ts +57 -0
  130. package/dist/core/schema.d.ts.map +1 -0
  131. package/dist/core/schema.js +131 -0
  132. package/dist/core/schema.js.map +1 -0
  133. package/dist/core/semanticContexts.d.ts +40 -0
  134. package/dist/core/semanticContexts.d.ts.map +1 -0
  135. package/dist/core/semanticContexts.js +454 -0
  136. package/dist/core/semanticContexts.js.map +1 -0
  137. package/docs/es/guide/adapters.md +143 -0
  138. package/docs/es/guide/ai-repository-schema.md +119 -0
  139. package/docs/es/guide/features.md +67 -0
  140. package/docs/es/guide/flows.md +134 -0
  141. package/docs/es/guide/git-intelligence.md +170 -0
  142. package/docs/es/guide/incremental-analysis.md +131 -0
  143. package/docs/es/guide/knowledge-graph.md +135 -0
  144. package/docs/es/guide/lazy-indexing.md +144 -0
  145. package/docs/es/guide/performance.md +125 -0
  146. package/docs/guide/adapters.md +225 -0
  147. package/docs/guide/ai-repository-schema.md +119 -0
  148. package/docs/guide/architecture.md +69 -1
  149. package/docs/guide/flows.md +134 -0
  150. package/docs/guide/git-intelligence.md +170 -0
  151. package/docs/guide/incremental-analysis.md +131 -0
  152. package/docs/guide/knowledge-graph.md +135 -0
  153. package/docs/guide/lazy-indexing.md +144 -0
  154. package/docs/guide/performance.md +125 -0
  155. package/package.json +6 -3
  156. package/src/analyzers/androidResources.ts +113 -0
  157. package/src/analyzers/dependencies.ts +41 -0
  158. package/src/analyzers/entrypoints.ts +80 -1
  159. package/src/analyzers/gradleModules.ts +100 -0
  160. package/src/analyzers/techStack.ts +56 -0
  161. package/src/commands/ai-first.ts +342 -1
  162. package/src/core/adapters/adapterRegistry.ts +187 -0
  163. package/src/core/adapters/baseAdapter.ts +82 -0
  164. package/src/core/adapters/community/fastapiAdapter.ts +50 -0
  165. package/src/core/adapters/community/index.ts +11 -0
  166. package/src/core/adapters/community/laravelAdapter.ts +56 -0
  167. package/src/core/adapters/community/nestjsAdapter.ts +57 -0
  168. package/src/core/adapters/community/phoenixAdapter.ts +54 -0
  169. package/src/core/adapters/community/springBootAdapter.ts +53 -0
  170. package/src/core/adapters/dotnetAdapter.ts +104 -0
  171. package/src/core/adapters/index.ts +24 -0
  172. package/src/core/adapters/javascriptAdapter.ts +56 -0
  173. package/src/core/adapters/pythonAdapter.ts +118 -0
  174. package/src/core/adapters/railsAdapter.ts +65 -0
  175. package/src/core/adapters/salesforceAdapter.ts +76 -0
  176. package/src/core/adapters/sdk.ts +172 -0
  177. package/src/core/ccp.ts +240 -0
  178. package/src/core/gitAnalyzer.ts +391 -0
  179. package/src/core/incrementalAnalyzer.ts +382 -0
  180. package/src/core/knowledgeGraphBuilder.ts +181 -0
  181. package/src/core/lazyAnalyzer.ts +261 -0
  182. package/src/core/schema.ts +157 -0
  183. package/src/core/semanticContexts.ts +575 -0
  184. package/tests/adapters.test.ts +159 -0
  185. package/tests/gitAnalyzer.test.ts +133 -0
  186. package/tests/incrementalAnalyzer.test.ts +83 -0
  187. package/tests/knowledgeGraph.test.ts +146 -0
  188. package/tests/lazyAnalyzer.test.ts +230 -0
  189. package/tests/schema.test.ts +203 -0
  190. package/tests/semanticContexts.test.ts +435 -0
  191. package/ai/context/analyzers.Symbol.json +0 -19
  192. package/ai/context/analyzers.extractSymbols.json +0 -19
package/CHANGELOG.md CHANGED
@@ -6,6 +6,62 @@ All notable changes to `ai-first` will be documented in this file.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Added
10
+ - **CLI Progress Feedback**: Added ora-based progress indicators for repository analysis
11
+ - **Lazy Context Generation**: Staged indexing for faster CLI startup (Stage 1 minimal, Stage 2 on-demand)
12
+ - **Lazy Analyzer Module**: `src/core/lazyAnalyzer.ts` with buildMinimalIndex, expandFeatureContext, expandFlowContext
13
+ - **Lazy Indexing Tests**: Comprehensive test suite for lazy context generation
14
+ - **Lazy Indexing Documentation**: English and Spanish guides for lazy context generation
15
+ - **AI Repository Schema**: Standardized schema system for AI-First metadata (schema.json, project.json, tools.json)
16
+ - **AI Repository Schema**: Standardized schema system for AI-First metadata (schema.json, project.json, tools.json)
17
+ - **Schema CLI Integration**: Schema automatically generated with `ai-first init`
18
+ - **Schema Validation**: Programmatic schema validation API
19
+ - **Schema Tests**: Comprehensive test suite for schema generation and validation
20
+ - **Schema Documentation**: English and Spanish guides for AI Repository Schema
21
+ - **Incremental Analysis**: Update repository context incrementally when files change
22
+ - **Incremental Analysis**: Update repository context incrementally when files change
23
+ - **Update CLI Command**: `ai-first update` to perform incremental updates
24
+ - **Self-Healing Context**: AI context updates automatically when files change
25
+ - **Repository Knowledge Graph**: Unify all repository intelligence into a single navigable graph
26
+ - **Graph CLI Command**: `ai-first graph` to generate knowledge graph
27
+ - **Repository Knowledge Graph**: Unify all repository intelligence into a single navigable graph
28
+ - **Graph CLI Command**: `ai-first graph` to generate knowledge graph
29
+ - **Graph Output**: `ai/graph/knowledge-graph.json` with nodes and edges
30
+ - **Git Intelligence**: Analyze git activity to provide AI context about recently changed files, features, and flows
31
+ - **Git CLI Command**: `ai-first git` to analyze repository activity and generate metadata
32
+ - **Git Intelligence**: Analyze git activity to provide AI context about recently changed files, features, and flows
33
+ - **Git CLI Command**: `ai-first git` to analyze repository activity and generate metadata
34
+ - **Git Context Files**: `ai/git/recent-files.json`, `ai/git/recent-features.json`, `ai/git/recent-flows.json`, `ai/git/commit-activity.json`
35
+ - **Adapter SDK**: Developer-friendly `createAdapter()` API for creating custom ecosystem adapters
36
+ - **Community Adapters**: Pre-built adapters for Laravel, NestJS, Spring Boot, Phoenix, FastAPI
37
+ - **Adapter CLI Command**: `ai-first adapters` to list all available adapters
38
+ - **Adapter SDK**: Developer-friendly `createAdapter()` API for creating custom ecosystem adapters
39
+ - **Community Adapters**: Pre-built adapters for Laravel, NestJS, Spring Boot, Phoenix, FastAPI
40
+ - **Adapter CLI Command**: `ai-first adapters` to list all available adapters
41
+ - Enhanced symbol indexing with `filePath#symbolName` IDs
42
+ - Enhanced symbol indexing with `filePath#symbolName` IDs
43
+ - Extended symbol graph relationships: calls, called_by, imports, references, instantiates, extends, implements, exports
44
+ - Reverse symbol references (`ai/graph/symbol-references.json`)
45
+ - File index with symbol mappings (`ai/files.json`)
46
+ - Code Context Packets (CCP) with depth, ranking, and multiple formats
47
+ - Context CLI flags: `--depth`, `--max-symbols`, `--format`, `--save`
48
+ - Incremental indexing with file hash cache (`ai/index-state.json`)
49
+ - Context ranking system based on graph distance and relationships
50
+ - Android/Kotlin Support: Android framework detection, SDK version extraction, Gradle dependency parsing, AndroidManifest parsing, Android resources indexing, Gradle multi-module detection
51
+ - **Business Feature Detection**: Auto-detect business modules (auth, users, payments) from codebase structure
52
+ - **Flow Detection**: Generate execution chains spanning multiple architectural layers (api → service → data)
53
+ - Feature output: `ai/context/features/<feature>.json` with path, files, entrypoints, dependencies
54
+ - Flow output: `ai/context/flows/<flow>.json` with depth, layers, entrypoint
55
+ - Support for nested features at depth 1 and 2 (src/auth, src/modules/auth)
56
+ - **Performance Documentation**: Complete guide to incremental analysis and optimization
57
+ - **Spanish Documentation**: Complete translation for all guides
58
+ - **Adapter System**: Multi-language/framework support (JavaScript, Python, Django, Flask, Rails, Salesforce, .NET)
59
+ - **Spanish Documentation**: Complete translation for all guides
60
+
61
+ ### Improved
62
+ - Incremental repository analysis with change detection
63
+ - Performance benchmarks for various repository sizes
64
+
9
65
  ### Added
10
66
  - Enhanced symbol indexing with `filePath#symbolName` IDs
11
67
  - Extended symbol graph relationships: calls, called_by, imports, references, instantiates, extends, implements, exports
@@ -15,6 +71,28 @@ All notable changes to `ai-first` will be documented in this file.
15
71
  - Context CLI flags: `--depth`, `--max-symbols`, `--format`, `--save`
16
72
  - Incremental indexing with file hash cache (`ai/cache.json`)
17
73
  - Context ranking system based on graph distance and relationships
74
+ - Android/Kotlin Support: Android framework detection, SDK version extraction, Gradle dependency parsing, AndroidManifest parsing, Android resources indexing, Gradle multi-module detection
75
+ - **Business Feature Detection**: Auto-detect business modules (auth, users, payments) from codebase structure
76
+ - **Flow Detection**: Generate execution chains spanning multiple architectural layers (api → service → data)
77
+ - Feature output: `ai/context/features/<feature>.json` with path, files, entrypoints, dependencies
78
+ - Flow output: `ai/context/flows/<flow>.json` with depth, layers, entrypoint
79
+ - Support for nested features at depth 1 and 2 (src/auth, src/modules/auth)
80
+
81
+ ---
82
+
83
+ ## [1.1.0] - 2026-03-09
84
+
85
+ ### Added
86
+ - Enhanced symbol indexing with `filePath#symbolName` IDs
87
+ - Extended symbol graph relationships: calls, called_by, imports, references, instantiates, extends, implements, exports
88
+ - Reverse symbol references (`ai/graph/symbol-references.json`)
89
+ - File index with symbol mappings (`ai/files.json`)
90
+ - Code Context Packets (CCP) with depth, ranking, and multiple formats
91
+ - Context CLI flags: `--depth`, `--max-symbols`, `--format`, `--save`
92
+ - Incremental indexing with file hash cache (`ai/cache.json`)
93
+ YB|- Context ranking system based on graph distance and relationships
94
+ RR|- Android/Kotlin Support: Android framework detection, SDK version extraction, Gradle dependency parsing, AndroidManifest parsing, Android resources indexing, Gradle multi-module detection
95
+ PY|- Documentation: Architecture guide and Commands reference updated
18
96
  - Documentation: Architecture guide and Commands reference updated
19
97
 
20
98
  ---
package/README.es.md CHANGED
@@ -247,6 +247,17 @@ ai/
247
247
  ├── tech_stack.md # Lenguajes y frameworks
248
248
  ├── entrypoints.md # Puntos de entrada
249
249
  ├── conventions.md # Convenciones de código
250
+ ├── index.db # SQLite (con índice ai-first)
251
+
252
+ ├── graph/ # Generado por `ai-first map`
253
+ │ ├── module-graph.json # Grafo de dependencias a nivel de módulo
254
+ │ └── symbol-graph.json # Relaciones a nivel de símbolo (calls, imports, etc.)
255
+
256
+ └── context/ # Generado por `ai-first init` o `map`
257
+ ├── features/ # Features de negocio detectados
258
+ │ └── <modulo>.json
259
+ └── flows/ # Cadenas de ejecución de negocio
260
+ └── <flujo>.json
250
261
  └── index.db # SQLite (con índice ai-first)
251
262
  ```
252
263
 
@@ -278,8 +289,113 @@ ai-first init --output ./docs/ai
278
289
 
279
290
  # Directorio raíz personalizado
280
291
  ai-first init --root ./my-project
292
+ TH|```
293
+ TH|
294
+ TH|## 📦 Context Control Packs (CCP)
295
+ TH|
296
+ TH|CCP (Context Control Packs) te permite crear contextos reutilizables y específicos para diferentes flujos de trabajo de IA.
297
+ TH|
298
+ TH|### Cómo Funciona
299
+ TH|
300
+ TH|1. **Generar Módulos de Contexto**: `ai-first init` crea módulos en `ai/context/`
301
+ TH|2. **Crear un CCP**: Define qué módulos incluir para una tarea específica
302
+ TH|3. **Usar en IA**: Referencia el CCP al trabajar con agentes de IA
303
+ TH|
304
+ TH|### Comandos CCP
305
+ TH|
306
+ TH|```bash
307
+ TH|# Crear un nuevo CCP con módulos de contexto específicos
308
+ TH|ai-first ccp create tarea-auth --include repo,auth,api --description "Trabajo en autenticación"
309
+ TH|
310
+ TH|# Listar todos los CCPs disponibles
311
+ TH|ai-first ccp list
312
+ TH|
313
+ TH|# Mostrar detalles del CCP
314
+ TH|ai-first ccp show tarea-auth
315
+ TH|```
316
+ TH|
317
+ TH|### Estructura CCP
318
+ TH|
319
+ TH|```
320
+ TH|ai/
321
+ TH|├── context/ # Módulos de contexto (auto-generados)
322
+ TH|│ ├── repo.json # Contexto base del repositorio
323
+ TH|│ ├── auth.json # Contexto de autenticación
324
+ TH|│ └── <feature>.json
325
+ TH|│
326
+ TH|└── ccp/ # Definiciones de CCP
327
+ TH| └── <nombre>/
328
+ TH| └── context.json
329
+ TH|```
330
+ TH|
331
+ TH|Ejemplo CCP (context.json)
332
+ TH|
333
+ TH|```json
334
+ TH|{
335
+ TH| "task": "auth-feature",
336
+ TH| "description": "Trabajo en autenticación",
337
+ TH| "includes": [
338
+ TH| "../../context/repo.json",
339
+ TH| "../../context/auth.json",
340
+ TH| "../../context/api.json"
341
+ TH| ]
342
+ TH|}
343
+ TH|```
344
+ TH|
345
+ Caso de uso: Crea contextos específicos como `"fix-bug"`, `"add-feature"`, `"refactor"`, etc.
346
+
347
+ ---
348
+
349
+ ## 🎯 Contextos Semánticos (Features & Flows)
350
+
351
+ Los contextos semánticos son comprensión automática a nivel de negocio de tu código.
352
+
353
+ ### Features
354
+
355
+ Los features representan módulos de negocio detectados desde la estructura del proyecto.
356
+
357
+ **Filtros de calidad:**
358
+ - Debe tener ≥ 3 archivos fuente
359
+ - Debe contener un entrypoint (Controller, Route, Handler, Command, Service)
360
+ - Excluidos: utils, helpers, types, interfaces, constants, config, models, dto, common
361
+
362
+ ```json
363
+ // ai/context/features/<modulo>.json
364
+ {
365
+ "feature": "auth",
366
+ "files": ["src/auth/controller.js", "src/auth/service.js"],
367
+ "entrypoints": ["src/auth/controller.js"]
368
+ }
281
369
  ```
282
370
 
371
+ ### Flows
372
+
373
+ Los flows representan cadenas de ejecución de negocio desde entrypoints.
374
+
375
+ **Filtros de calidad:**
376
+ - Debe abarcar ≥ 3 archivos
377
+ - Debe cruzar ≥ 2 capas arquitectónicas (api → service → data)
378
+ - Debe iniciar desde un entrypoint (Controller, Route, Command, Handler)
379
+
380
+ ```json
381
+ // ai/context/flows/<nombre>.json
382
+ {
383
+ "name": "login",
384
+ "entrypoint": "src/auth/controller.js",
385
+ "files": ["controller.js", "service.js", "repository.js"],
386
+ "depth": 3,
387
+ "layers": ["api", "service", "data"]
388
+ }
389
+ ```
390
+
391
+ **Generado por:** `ai-first init` o `ai-first map`
392
+
393
+ ---
394
+
395
+ ## 🌎 Idiomas
396
+ TH|
397
+ TH|---
398
+
283
399
  ---
284
400
 
285
401
  ## 🌎 Idiomas
@@ -344,7 +460,27 @@ Ver [docs/architecture.md](./docs/architecture.md) para arquitectura interna.
344
460
  ¡Danos una ⭐ si este proyecto te ayudó!
345
461
 
346
462
  ---
347
-
463
+ KP|
464
+ VT|## 🤖 Soporte Android/Kotlin
465
+ HB|
466
+ XZ|ai-first detecta e indexa automáticamente proyectos Android/Kotlin:
467
+ HB|
468
+ RV|- **Detección de lenguaje**: Kotlin (.kt)
469
+ - **Detección de framework**: Android (vía build.gradle, AndroidManifest.xml)
470
+ - **Análisis de dependencias**: Dependencias Gradle (implementation, api, compile)
471
+ - **Puntos de entrada**: Activities, Services, BroadcastReceivers desde AndroidManifest.xml
472
+ - **Recursos**: Indexa res/layout, res/drawable, res/values
473
+ - **Multi-módulo**: Detecta módulos Gradle desde settings.gradle
474
+ HB|
475
+ XZ|### Archivos generados para proyectos Android
476
+ HB|
477
+ XZ|- `ai/tech_stack.md` - Muestra Android con versiones de SDK
478
+ - `ai/dependencies.json` - Dependencias Gradle en formato group:artifact:version
479
+ - `ai/entrypoints.md` - Activities, services, permisos de Android
480
+ - `ai/android-resources.json` - Layouts, drawables, values (si existe res/)
481
+ - `ai/gradle-modules.json` - Estructura multi-módulo (si existe settings.gradle)
482
+ HB|
483
+ VT|---
348
484
  ## 📄 Licencia
349
485
 
350
486
  MIT © [Julian Perez Pesce](https://github.com/julianperezpesce)
package/README.md CHANGED
@@ -254,6 +254,17 @@ ai/
254
254
  │ ├── module-graph.json # Module-level dependency graph
255
255
  │ └── symbol-graph.json # Symbol-level relationships (calls, imports, etc.)
256
256
 
257
+ └── context/ # Generated by `ai-first init` or `map`
258
+ ├── features/ # Auto-detected business features
259
+ │ └── <module>.json
260
+ └── flows/ # Business execution chains
261
+ └── <flow>.json
262
+ ├── index.db # SQLite (with ai-first index)
263
+
264
+ ├── graph/ # Generated by `ai-first map`
265
+ │ ├── module-graph.json # Module-level dependency graph
266
+ │ └── symbol-graph.json # Symbol-level relationships (calls, imports, etc.)
267
+
257
268
  └── context/ # Generated by `ai-first context <symbol>`
258
269
  └── <symbol>.json # Code Context Packets (CCP)
259
270
  ```
@@ -340,7 +351,63 @@ ai-first explore src
340
351
  ```
341
352
 
342
353
  The explore command generates a module dependency graph based on imports.
343
-
354
+ QB|---
355
+ QB|
356
+ QB|## 📦 Context Control Packs (CCP)
357
+ QB|
358
+ QB|CCP (Context Control Packs) allow you to create reusable, task-specific contexts for different AI workflows.
359
+ QB|
360
+ QB|### How It Works
361
+ QB|
362
+ QB|1. **Generate Context Modules**: `ai-first init` creates context modules in `ai/context/`
363
+ QB|2. **Create a CCP**: Define which modules to include for a specific task
364
+ QB|3. **Use in AI**: Reference the CCP when working with AI agents
365
+ QB|
366
+ QB|### CCP Commands
367
+ QB|
368
+ QB|```bash
369
+ QB|# Create a new CCP with specific context modules
370
+ QB|ai-first ccp create auth-task --include repo,auth,api --description "Authentication feature work"
371
+ QB|
372
+ QB|# List all available CCPs
373
+ QB|ai-first ccp list
374
+ QB|
375
+ QB|# Show CCP details
376
+ QB|ai-first ccp show auth-task
377
+ QB|```
378
+ QB|
379
+ QB|### CCP Structure
380
+ QB|
381
+ QB|```
382
+ QB|ai/
383
+ QB|├── context/ # Context modules (auto-generated)
384
+ QB|│ ├── repo.json # Base repository context
385
+ QB|│ ├── auth.json # Auth feature context
386
+ QB|│ └── <feature>.json
387
+ QB|│
388
+ QB|└── ccp/ # CCP definitions
389
+ QB| └── <name>/
390
+ QB| └── context.json
391
+ QB|```
392
+ QB|
393
+ QB|### Example CCP (context.json)
394
+ QB|
395
+ QB|```json
396
+ QB|{
397
+ QB| "task": "auth-feature",
398
+ QB| "description": "Work on authentication feature",
399
+ QB| "includes": [
400
+ QB| "../../context/repo.json",
401
+ QB| "../../context/auth.json",
402
+ QB| "../../context/api.json"
403
+ QB| ]
404
+ QB|}
405
+ QB|```
406
+ QB|
407
+ QB|Use case: Create task-specific contexts like `"fix-bug"`, `"add-feature"`, `"refactor"`, etc.
408
+ QB|
409
+ QB|---
410
+ QB|
344
411
  ---
345
412
 
346
413
  ## 🔎 Semantic Index
@@ -352,7 +419,51 @@ For large repositories (>2000 files), semantic indexing is automatically enabled
352
419
  ai-first index --semantic
353
420
  ```
354
421
 
355
- Semantic indexing:
422
+ NP|---
423
+
424
+ ## 🎯 Semantic Contexts (Features & Flows)
425
+
426
+ Semantic contexts are auto-generated business-level understanding of your codebase.
427
+
428
+ ### Features
429
+
430
+ Features represent real business modules detected from your project structure.
431
+
432
+ **Quality Filters:**
433
+ - Must have ≥ 3 source files
434
+ - Must contain an entrypoint (Controller, Route, Handler, Command, Service)
435
+ - Excluded: utils, helpers, types, interfaces, constants, config, models, dto, common
436
+
437
+ ```json
438
+ // ai/context/features/<module>.json
439
+ {
440
+ "feature": "auth",
441
+ "files": ["src/auth/controller.js", "src/auth/service.js"],
442
+ "entrypoints": ["src/auth/controller.js"]
443
+ }
444
+ ```
445
+
446
+ ### Flows
447
+
448
+ Flows represent business execution chains starting from entrypoints.
449
+
450
+ **Quality Filters:**
451
+ - Must span ≥ 3 files
452
+ - Must cross ≥ 2 architectural layers (api → service → data)
453
+ - Must start from an entrypoint (Controller, Route, Command, Handler)
454
+
455
+ ```json
456
+ // ai/context/flows/<name>.json
457
+ {
458
+ "name": "login",
459
+ "entrypoint": "src/auth/controller.js",
460
+ "files": ["controller.js", "service.js", "repository.js"],
461
+ "depth": 3,
462
+ "layers": ["api", "service", "data"]
463
+ }
464
+ ```
465
+
466
+ **Generated by:** `ai-first init` or `ai-first map`
356
467
  - Chunks files by function/class boundaries
357
468
  - Generates embeddings for semantic search
358
469
  - Supports repositories up to 100k files
@@ -366,9 +477,30 @@ Semantic indexing:
366
477
  |----------|-----------|
367
478
  | **Web** | JavaScript, TypeScript, Python, Go, Rust |
368
479
  | **Backend** | Java, C#, PHP, Ruby, Go, Rust, Kotlin |
369
- | **Mobile** | Swift, Kotlin |
480
+ NW|| **Mobile** | Swift, Kotlin, Android |
370
481
  | **Frontend** | Vue, Svelte, React, HTML, CSS, SCSS |
371
- | **Testing** | Jest, Vitest, pytest, Mocha, RSpec |
482
+ TK| Testing | Jest, Vitest, pytest, Mocha, RSpec |
483
+ MV|
484
+ NM|## 🤖 Android/Kotlin Support
485
+ HM|
486
+ XZ|ai-first automatically detects and indexes Android/Kotlin projects:
487
+ HM|
488
+ RV|- **Language Detection**: Kotlin (.kt files)
489
+ - **Framework Detection**: Android (via build.gradle, AndroidManifest.xml)
490
+ - **Dependency Parsing**: Gradle dependencies (implementation, api, compile)
491
+ - **Entry Points**: Activities, Services, BroadcastReceivers from AndroidManifest.xml
492
+ - **Resources**: Indexes res/layout, res/drawable, res/values
493
+ - **Multi-module**: Detects Gradle modules from settings.gradle
494
+ HM|
495
+ XZ|### Generated Files for Android Projects
496
+ HM|
497
+ XZ|- `ai/tech_stack.md` - Shows Android framework with SDK versions
498
+ - `ai/dependencies.json` - Gradle dependencies with group:artifact:version
499
+ - `ai/entrypoints.md` - Android activities, services, permissions
500
+ - `ai/android-resources.json` - Layouts, drawables, values (if res/ exists)
501
+ - `ai/gradle-modules.json` - Multi-module structure (if settings.gradle exists)
502
+ HM|
503
+ NM|---
372
504
 
373
505
  ---
374
506
 
package/ai/ai_context.md CHANGED
@@ -9,7 +9,7 @@
9
9
  - **Pattern**: Flat / Simple Structure
10
10
  - **Languages**: JSON, Markdown, TypeScript, CSS
11
11
  - **Frameworks**: Vue.js, Nuxt.js, TypeScript
12
- - **Total Files**: 74
12
+ - **Total Files**: 80
13
13
 
14
14
  ---
15
15
 
@@ -52,7 +52,7 @@
52
52
  | `FLOW.md` | Contains 0 files |
53
53
  | `README.es.md` | Contains 0 files |
54
54
  | `README.md` | Contains 0 files |
55
- | `ai` | Contains 21 files |
55
+ | `ai` | Contains 23 files |
56
56
  | `docs` | Contains 15 files |
57
57
  | `examples` | Contains 4 files |
58
58
  | `package-lock.json` | Contains 0 files |
@@ -16,7 +16,7 @@
16
16
  | `FLOW.md` | Contains 0 files |
17
17
  | `README.es.md` | Contains 0 files |
18
18
  | `README.md` | Contains 0 files |
19
- | `ai` | Contains 21 files |
19
+ | `ai` | Contains 23 files |
20
20
  | `docs` | Contains 15 files |
21
21
  | `examples` | Contains 4 files |
22
22
  | `package-lock.json` | Contains 0 files |
@@ -56,7 +56,7 @@
56
56
 
57
57
  ### ai
58
58
  - **Path**: `ai`
59
- - **Responsibility**: Contains 21 files
59
+ - **Responsibility**: Contains 23 files
60
60
 
61
61
 
62
62
  ### docs
@@ -81,7 +81,7 @@
81
81
 
82
82
  ### src
83
83
  - **Path**: `src`
84
- - **Responsibility**: Contains 25 files
84
+ - **Responsibility**: Contains 29 files
85
85
 
86
86
 
87
87
  ### tsconfig.json