ai-first-cli 1.3.5 → 1.3.8
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/CHANGELOG.md +186 -0
- package/README.es.md +68 -0
- package/README.md +53 -15
- package/ai/graph/knowledge-graph.json +1 -1
- package/ai-context/index-state.json +86 -2
- package/dist/analyzers/architecture.d.ts.map +1 -1
- package/dist/analyzers/architecture.js +72 -5
- package/dist/analyzers/architecture.js.map +1 -1
- package/dist/analyzers/entrypoints.d.ts.map +1 -1
- package/dist/analyzers/entrypoints.js +253 -0
- package/dist/analyzers/entrypoints.js.map +1 -1
- package/dist/analyzers/symbols.d.ts.map +1 -1
- package/dist/analyzers/symbols.js +47 -2
- package/dist/analyzers/symbols.js.map +1 -1
- package/dist/analyzers/techStack.d.ts.map +1 -1
- package/dist/analyzers/techStack.js +86 -0
- package/dist/analyzers/techStack.js.map +1 -1
- package/dist/commands/ai-first.d.ts.map +1 -1
- package/dist/commands/ai-first.js +78 -4
- package/dist/commands/ai-first.js.map +1 -1
- package/dist/config/configLoader.d.ts +6 -0
- package/dist/config/configLoader.d.ts.map +1 -0
- package/dist/config/configLoader.js +232 -0
- package/dist/config/configLoader.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +101 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/core/content/contentProcessor.d.ts +4 -0
- package/dist/core/content/contentProcessor.d.ts.map +1 -0
- package/dist/core/content/contentProcessor.js +235 -0
- package/dist/core/content/contentProcessor.js.map +1 -0
- package/dist/core/content/index.d.ts +3 -0
- package/dist/core/content/index.d.ts.map +1 -0
- package/dist/core/content/index.js +2 -0
- package/dist/core/content/index.js.map +1 -0
- package/dist/core/content/types.d.ts +32 -0
- package/dist/core/content/types.d.ts.map +1 -0
- package/dist/core/content/types.js +2 -0
- package/dist/core/content/types.js.map +1 -0
- package/dist/core/gitAnalyzer.d.ts +14 -0
- package/dist/core/gitAnalyzer.d.ts.map +1 -1
- package/dist/core/gitAnalyzer.js +98 -0
- package/dist/core/gitAnalyzer.js.map +1 -1
- package/dist/core/multiRepo/index.d.ts +3 -0
- package/dist/core/multiRepo/index.d.ts.map +1 -0
- package/dist/core/multiRepo/index.js +2 -0
- package/dist/core/multiRepo/index.js.map +1 -0
- package/dist/core/multiRepo/multiRepoScanner.d.ts +18 -0
- package/dist/core/multiRepo/multiRepoScanner.d.ts.map +1 -0
- package/dist/core/multiRepo/multiRepoScanner.js +131 -0
- package/dist/core/multiRepo/multiRepoScanner.js.map +1 -0
- package/dist/core/rag/index.d.ts +3 -0
- package/dist/core/rag/index.d.ts.map +1 -0
- package/dist/core/rag/index.js +2 -0
- package/dist/core/rag/index.js.map +1 -0
- package/dist/core/rag/vectorIndex.d.ts +28 -0
- package/dist/core/rag/vectorIndex.d.ts.map +1 -0
- package/dist/core/rag/vectorIndex.js +71 -0
- package/dist/core/rag/vectorIndex.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +154 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/utils/fileUtils.d.ts.map +1 -1
- package/dist/utils/fileUtils.js +5 -0
- package/dist/utils/fileUtils.js.map +1 -1
- package/docs/planning/evaluator-v1.0.0/README.md +112 -0
- package/docs/planning/evaluator-v1.0.0/improvements_plan_2026-03-28.md +237 -0
- package/package.json +13 -3
- package/src/analyzers/architecture.ts +75 -6
- package/src/analyzers/entrypoints.ts +285 -0
- package/src/analyzers/symbols.ts +52 -2
- package/src/analyzers/techStack.ts +90 -0
- package/src/commands/ai-first.ts +83 -4
- package/src/config/configLoader.ts +274 -0
- package/src/config/index.ts +27 -0
- package/src/config/types.ts +117 -0
- package/src/core/content/contentProcessor.ts +292 -0
- package/src/core/content/index.ts +9 -0
- package/src/core/content/types.ts +35 -0
- package/src/core/gitAnalyzer.ts +130 -0
- package/src/core/multiRepo/index.ts +2 -0
- package/src/core/multiRepo/multiRepoScanner.ts +177 -0
- package/src/core/rag/index.ts +2 -0
- package/src/core/rag/vectorIndex.ts +105 -0
- package/src/mcp/index.ts +1 -0
- package/src/mcp/server.ts +179 -0
- package/src/utils/fileUtils.ts +5 -0
- package/tests/entrypoints-languages.test.ts +373 -0
- package/tests/framework-detection.test.ts +296 -0
- package/tests/v1.3.8-integration.test.ts +361 -0
- package/BETA_EVALUATION_REPORT.md +0 -151
- package/ai-context/context/flows/App.json +0 -17
- package/ai-context/context/flows/DashboardPage.json +0 -14
- package/ai-context/context/flows/LoginPage.json +0 -14
- package/ai-context/context/flows/admin.json +0 -10
- package/ai-context/context/flows/androidresources.json +0 -11
- package/ai-context/context/flows/authController.json +0 -14
- package/ai-context/context/flows/entrypoints.json +0 -9
- package/ai-context/context/flows/fastapiAdapter.json +0 -14
- package/ai-context/context/flows/fastapiadapter.json +0 -11
- package/ai-context/context/flows/index.json +0 -19
- package/ai-context/context/flows/indexer.json +0 -9
- package/ai-context/context/flows/indexstate.json +0 -9
- package/ai-context/context/flows/init.json +0 -22
- package/ai-context/context/flows/main.json +0 -18
- package/ai-context/context/flows/mainactivity.json +0 -9
- package/ai-context/context/flows/models.json +0 -15
- package/ai-context/context/flows/posts.json +0 -15
- package/ai-context/context/flows/repoMapper.json +0 -20
- package/ai-context/context/flows/repomapper.json +0 -11
- package/ai-context/context/flows/serializers.json +0 -10
- package/ai-context-evaluation-report-1774223059505.md +0 -206
- package/dist/scripts/ai-context-evaluator.js +0 -367
- package/quick-evaluation-report-1774396002305.md +0 -64
- package/quick-evaluator.ts +0 -200
- package/scripts/ai-context-evaluator.ts +0 -440
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
import { runAIFirst } from '../commands/ai-first.js';
|
|
5
|
+
import { generateIndex } from '../core/indexer.js';
|
|
6
|
+
export function startMCPServer(options = {}) {
|
|
7
|
+
const rootDir = options.rootDir || process.cwd();
|
|
8
|
+
const aiDir = options.aiDir || `${rootDir}/ai-context`;
|
|
9
|
+
const server = new Server({
|
|
10
|
+
name: 'ai-first-cli',
|
|
11
|
+
version: '1.4.0',
|
|
12
|
+
}, {
|
|
13
|
+
capabilities: {
|
|
14
|
+
tools: {},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
18
|
+
return {
|
|
19
|
+
tools: [
|
|
20
|
+
{
|
|
21
|
+
name: 'generate_context',
|
|
22
|
+
description: 'Generate AI context for the repository or a specific module',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
module: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Optional module path to generate context for (e.g., "src/auth")',
|
|
29
|
+
},
|
|
30
|
+
preset: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
enum: ['full', 'quick', 'api', 'docs'],
|
|
33
|
+
description: 'Preset to use for context generation',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'query_symbols',
|
|
40
|
+
description: 'Query symbols (functions, classes, interfaces) in the indexed repository',
|
|
41
|
+
inputSchema: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
properties: {
|
|
44
|
+
query: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'Search query for symbols',
|
|
47
|
+
},
|
|
48
|
+
type: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
enum: ['function', 'class', 'interface', 'variable', 'all'],
|
|
51
|
+
description: 'Type of symbol to search for',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
required: ['query'],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'get_architecture',
|
|
59
|
+
description: 'Get the architecture analysis of the project',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
format: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
enum: ['summary', 'detailed'],
|
|
66
|
+
description: 'Level of detail for the architecture report',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
75
|
+
const { name, arguments: args } = request.params;
|
|
76
|
+
try {
|
|
77
|
+
switch (name) {
|
|
78
|
+
case 'generate_context': {
|
|
79
|
+
const result = await runAIFirst({
|
|
80
|
+
rootDir,
|
|
81
|
+
outputDir: aiDir,
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
content: [
|
|
85
|
+
{
|
|
86
|
+
type: 'text',
|
|
87
|
+
text: JSON.stringify({
|
|
88
|
+
success: result.success,
|
|
89
|
+
filesCreated: result.filesCreated,
|
|
90
|
+
message: result.success
|
|
91
|
+
? `Generated context in ${aiDir}`
|
|
92
|
+
: `Error: ${result.error}`,
|
|
93
|
+
}, null, 2),
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
case 'query_symbols': {
|
|
99
|
+
const query = args?.query;
|
|
100
|
+
const symbolType = args?.type || 'all';
|
|
101
|
+
const index = generateIndex(rootDir, aiDir);
|
|
102
|
+
return {
|
|
103
|
+
content: [
|
|
104
|
+
{
|
|
105
|
+
type: 'text',
|
|
106
|
+
text: JSON.stringify({
|
|
107
|
+
query,
|
|
108
|
+
type: symbolType,
|
|
109
|
+
results: [],
|
|
110
|
+
message: `Symbol query executed for "${query}"`,
|
|
111
|
+
}, null, 2),
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
case 'get_architecture': {
|
|
117
|
+
const format = args?.format || 'summary';
|
|
118
|
+
return {
|
|
119
|
+
content: [
|
|
120
|
+
{
|
|
121
|
+
type: 'text',
|
|
122
|
+
text: JSON.stringify({
|
|
123
|
+
format,
|
|
124
|
+
rootDir,
|
|
125
|
+
message: 'Architecture analysis available',
|
|
126
|
+
}, null, 2),
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
default:
|
|
132
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
return {
|
|
137
|
+
content: [
|
|
138
|
+
{
|
|
139
|
+
type: 'text',
|
|
140
|
+
text: JSON.stringify({
|
|
141
|
+
error: error instanceof Error ? error.message : String(error),
|
|
142
|
+
}, null, 2),
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
isError: true,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
const transport = new StdioServerTransport();
|
|
150
|
+
server.connect(transport);
|
|
151
|
+
console.error('AI-First MCP Server running on stdio');
|
|
152
|
+
}
|
|
153
|
+
export { startMCPServer as startMCP };
|
|
154
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/fileUtils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"fileUtils.d.ts","sourceRoot":"","sources":["../../src/utils/fileUtils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAuBpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,UA6BtC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,eAAe,GAAE,MAAM,EAA6B,EACpD,iBAAiB,GAAE,MAAM,EAA+B,GACvD,MAAM,EAAE,CAgCV;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGjE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGtE"}
|
package/dist/utils/fileUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUtils.js","sourceRoot":"","sources":["../../src/utils/fileUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,cAAc;IACd,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,SAAS;IACT,OAAO;IACP,aAAa;IACb,eAAe;IACf,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;
|
|
1
|
+
{"version":3,"file":"fileUtils.js","sourceRoot":"","sources":["../../src/utils/fileUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Evaluator v1.0.0 - Planes de Mejora
|
|
2
|
+
|
|
3
|
+
Este directorio contiene los planes de mejora generados por el AI-First Evaluator v1.0.0.
|
|
4
|
+
|
|
5
|
+
## Estructura de Archivos
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
evaluator-v1.0.0/
|
|
9
|
+
├── README.md # Este archivo
|
|
10
|
+
├── improvements_plan_YYYY-MM-DD.md # Plan de mejoras específico
|
|
11
|
+
└── [futuros planes...]
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Convención de Nombres
|
|
15
|
+
|
|
16
|
+
Los archivos de plan de mejoras siguen el formato:
|
|
17
|
+
```
|
|
18
|
+
improvements_plan_<fecha>.md
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Ejemplos:
|
|
22
|
+
- `improvements_plan_2026-03-28.md`
|
|
23
|
+
- `improvements_plan_2026-04-15.md`
|
|
24
|
+
- `improvements_plan_2026-05-01.md`
|
|
25
|
+
|
|
26
|
+
## Template para Nuevas Evaluaciones
|
|
27
|
+
|
|
28
|
+
Para crear un nuevo plan de mejoras:
|
|
29
|
+
|
|
30
|
+
1. **Ejecutar el evaluator:**
|
|
31
|
+
```bash
|
|
32
|
+
npm run evaluate:quick
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
2. **Copiar el template:**
|
|
36
|
+
```bash
|
|
37
|
+
cp improvements_plan_2026-03-28.md improvements_plan_$(date +%Y-%m-%d).md
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
3. **Actualizar campos marcados:**
|
|
41
|
+
- Fecha de evaluación
|
|
42
|
+
- Proyecto evaluado
|
|
43
|
+
- Score obtenido
|
|
44
|
+
- Hallazgos específicos
|
|
45
|
+
- Owners y deadlines
|
|
46
|
+
|
|
47
|
+
## Contenido del Plan de Mejoras
|
|
48
|
+
|
|
49
|
+
Cada documento incluye:
|
|
50
|
+
|
|
51
|
+
1. **Resumen Ejecutivo**
|
|
52
|
+
- Score total y métricas
|
|
53
|
+
- Distribución de puntos por perspectiva
|
|
54
|
+
- Estado general (PASS/FAIL)
|
|
55
|
+
|
|
56
|
+
2. **Fortalezas**
|
|
57
|
+
- Qué se está haciendo bien
|
|
58
|
+
- Qué mantener
|
|
59
|
+
|
|
60
|
+
3. **Áreas de Mejora**
|
|
61
|
+
- Priorizadas por impacto
|
|
62
|
+
- Con categorías (IMPLEMENTED, USER_ACTION, etc.)
|
|
63
|
+
- Incluyen templates de solución
|
|
64
|
+
|
|
65
|
+
4. **Plan de Acción**
|
|
66
|
+
- Tablas con tareas, owners y deadlines
|
|
67
|
+
- Separadas por prioridad
|
|
68
|
+
|
|
69
|
+
5. **Proyección de Mejora**
|
|
70
|
+
- Score actual vs proyectado
|
|
71
|
+
- ROI estimado
|
|
72
|
+
|
|
73
|
+
6. **Checklist de Seguimiento**
|
|
74
|
+
- Implementación
|
|
75
|
+
- Verificación
|
|
76
|
+
- Documentación
|
|
77
|
+
|
|
78
|
+
## Versionado
|
|
79
|
+
|
|
80
|
+
Cuando se actualice el evaluator a una nueva versión (ej: v1.1.0, v2.0.0):
|
|
81
|
+
|
|
82
|
+
1. Crear nuevo directorio: `evaluator-v1.1.0/`
|
|
83
|
+
2. Copiar template actualizado
|
|
84
|
+
3. Documentar cambios en el nuevo formato
|
|
85
|
+
|
|
86
|
+
## Ejemplo de Uso
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 1. Evaluar proyecto
|
|
90
|
+
npm run evaluate:quick
|
|
91
|
+
|
|
92
|
+
# 2. Crear plan de mejoras
|
|
93
|
+
cp docs/planning/evaluator-v1.0.0/improvements_plan_2026-03-28.md \
|
|
94
|
+
docs/planning/evaluator-v1.0.0/improvements_plan_$(date +%Y-%m-%d).md
|
|
95
|
+
|
|
96
|
+
# 3. Editar con resultados específicos
|
|
97
|
+
# [Abrir en editor y completar]
|
|
98
|
+
|
|
99
|
+
# 4. Commit
|
|
100
|
+
git add docs/planning/evaluator-v1.0.0/
|
|
101
|
+
git commit -m "docs: add improvements plan for $(date +%Y-%m-%d)"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Historial
|
|
105
|
+
|
|
106
|
+
| Fecha | Proyecto | Score | Estado | Archivo |
|
|
107
|
+
|-------|----------|-------|--------|---------|
|
|
108
|
+
| 2026-03-28 | express-api | 3.88/5.0 | PASS | improvements_plan_2026-03-28.md |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
**Nota:** Mantener este README actualizado con cada nueva versión del evaluator.
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# AI-First Evaluator - Plan de Mejoras
|
|
2
|
+
|
|
3
|
+
**Template Version:** 1.0
|
|
4
|
+
**Evaluator Version:** 1.0.0
|
|
5
|
+
**Evaluation Date:** 2026-03-28
|
|
6
|
+
**Project:** express-api
|
|
7
|
+
**Current Score:** 3.88/5.0
|
|
8
|
+
**Status:** PASS
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Instrucciones de Uso
|
|
13
|
+
|
|
14
|
+
Este documento es un TEMPLATE para registrar resultados de evaluación y planificar mejoras.
|
|
15
|
+
|
|
16
|
+
### Para nuevas evaluaciones:
|
|
17
|
+
1. Copiar este archivo como improvements_plan_YYYY-MM-DD.md
|
|
18
|
+
2. Actualizar los campos marcados con [ACTUALIZAR]
|
|
19
|
+
3. Documentar hallazgos específicos del proyecto
|
|
20
|
+
4. Crear issues/tickets para acciones identificadas
|
|
21
|
+
|
|
22
|
+
### Estructura del documento:
|
|
23
|
+
- Resumen: Métricas principales y estado general
|
|
24
|
+
- Hallazgos: Fortalezas y áreas de mejora
|
|
25
|
+
- Plan de Acción: Tareas priorizadas con owners y deadlines
|
|
26
|
+
- Seguimiento: Checklist de implementación
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Resumen Ejecutivo
|
|
31
|
+
|
|
32
|
+
### Métricas Principales [ACTUALIZAR]
|
|
33
|
+
|
|
34
|
+
- Score Total: 3.88/5.0
|
|
35
|
+
- Umbral Mínimo: 3.5
|
|
36
|
+
- Ahorro de Costos AI: 100%
|
|
37
|
+
- Duración: 3ms
|
|
38
|
+
- Estado: PASS
|
|
39
|
+
|
|
40
|
+
### Distribución de Puntos
|
|
41
|
+
|
|
42
|
+
| Perspectiva | Peso | Score | Estado |
|
|
43
|
+
|-------------|------|-------|--------|
|
|
44
|
+
| Local Structure | 40 pts | 40/40 | Pass |
|
|
45
|
+
| Content Quality | 80 pts | 62/80 | Warning |
|
|
46
|
+
| AI Assessment | 10 pts | N/A | Skipped |
|
|
47
|
+
| Total | 130 pts | 102/130 | 78% |
|
|
48
|
+
|
|
49
|
+
### Análisis por Categoría
|
|
50
|
+
|
|
51
|
+
- IMPLEMENTED: 0 issues
|
|
52
|
+
- USER_ACTION: 1 issue
|
|
53
|
+
- KNOWN_LIMITATION: 0 issues
|
|
54
|
+
- IMPROVEMENT: 4 issues
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Fortalezas (Mantener)
|
|
59
|
+
|
|
60
|
+
1. Estructura Local Completa
|
|
61
|
+
- Archivos requeridos presentes
|
|
62
|
+
- JSON válidos
|
|
63
|
+
- Formato markdown consistente
|
|
64
|
+
|
|
65
|
+
2. Features Opcionales Utilizadas
|
|
66
|
+
- API Contracts generados
|
|
67
|
+
- Framework Instructions presentes
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Áreas de Mejora (Priorizadas)
|
|
72
|
+
|
|
73
|
+
### Alta Prioridad
|
|
74
|
+
|
|
75
|
+
#### 1. Documentation Completeness
|
|
76
|
+
Issue: Faltan secciones requeridas en summary.md
|
|
77
|
+
Categoría: IMPROVEMENT
|
|
78
|
+
Severidad: HIGH
|
|
79
|
+
Impacto: +8 pts
|
|
80
|
+
|
|
81
|
+
Checklist:
|
|
82
|
+
- [ ] Agregar sección Overview
|
|
83
|
+
- [ ] Agregar sección Purpose
|
|
84
|
+
- [ ] Agregar sección Features
|
|
85
|
+
|
|
86
|
+
Template para fix:
|
|
87
|
+
```
|
|
88
|
+
## Overview
|
|
89
|
+
[Breve descripción del proyecto]
|
|
90
|
+
|
|
91
|
+
## Purpose
|
|
92
|
+
[Propósito principal]
|
|
93
|
+
|
|
94
|
+
## Features
|
|
95
|
+
- Feature 1: [descripción]
|
|
96
|
+
- Feature 2: [descripción]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Owner: [ASIGNAR]
|
|
100
|
+
Deadline: [FECHA]
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
#### 2. Entry Point Documentation
|
|
105
|
+
Issue: Entry points sin descripciones detalladas
|
|
106
|
+
Categoría: IMPROVEMENT
|
|
107
|
+
Severidad: MEDIUM
|
|
108
|
+
Impacto: +10 pts
|
|
109
|
+
|
|
110
|
+
Checklist:
|
|
111
|
+
- [ ] Usar headers para cada entry point
|
|
112
|
+
- [ ] Agregar descripción de propósito
|
|
113
|
+
- [ ] Documentar parámetros
|
|
114
|
+
- [ ] Listar dependencias
|
|
115
|
+
|
|
116
|
+
Template para fix:
|
|
117
|
+
```
|
|
118
|
+
### server.js
|
|
119
|
+
Purpose: Punto de entrada principal
|
|
120
|
+
Parameters: PORT, NODE_ENV
|
|
121
|
+
Dependencies: express, cors
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Owner: [ASIGNAR]
|
|
125
|
+
Deadline: [FECHA]
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
### Media Prioridad
|
|
130
|
+
|
|
131
|
+
#### 3. Generic Phrases
|
|
132
|
+
Issue: Descripciones contienen frases genéricas
|
|
133
|
+
Categoría: IMPROVEMENT
|
|
134
|
+
Severidad: MEDIUM
|
|
135
|
+
Impacto: +5 pts
|
|
136
|
+
|
|
137
|
+
Ejemplos a corregir:
|
|
138
|
+
- Antes: This project contains API endpoints
|
|
139
|
+
- Después: REST API providing user authentication
|
|
140
|
+
|
|
141
|
+
Owner: [ASIGNAR]
|
|
142
|
+
Deadline: [FECHA]
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### Baja Prioridad
|
|
147
|
+
|
|
148
|
+
#### 4. Freshness Tracking
|
|
149
|
+
Issue: No hay tracking de freshness
|
|
150
|
+
Categoría: USER_ACTION
|
|
151
|
+
Severidad: LOW
|
|
152
|
+
Impacto: Mejor mantenibilidad
|
|
153
|
+
|
|
154
|
+
Acción:
|
|
155
|
+
```
|
|
156
|
+
af init # Re-generar contexto periódicamente
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Frecuencia recomendada: Semanal o al inicio de cada sprint
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Plan de Acción
|
|
164
|
+
|
|
165
|
+
### Inmediato (Esta semana)
|
|
166
|
+
|
|
167
|
+
| # | Tarea | Impacto | Owner | Deadline | Status |
|
|
168
|
+
|---|-------|---------|-------|----------|--------|
|
|
169
|
+
| 1 | Completar summary.md | +8 pts | TBD | TBD | Pending |
|
|
170
|
+
| 2 | Mejorar entrypoints.md | +10 pts | TBD | TBD | Pending |
|
|
171
|
+
|
|
172
|
+
### Corto Plazo (Próximo sprint)
|
|
173
|
+
|
|
174
|
+
| # | Tarea | Impacto | Owner | Deadline | Status |
|
|
175
|
+
|---|-------|---------|-------|----------|--------|
|
|
176
|
+
| 3 | Revisar frases genéricas | +5 pts | TBD | TBD | Pending |
|
|
177
|
+
| 4 | Habilitar freshness tracking | N/A | TBD | TBD | Pending |
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Proyección de Mejora
|
|
182
|
+
|
|
183
|
+
### Escenarios
|
|
184
|
+
|
|
185
|
+
| Escenario | Score Actual | Score Proyectado | Cambio |
|
|
186
|
+
|-----------|--------------|------------------|--------|
|
|
187
|
+
| Conservador | 3.88 | 4.05 | +0.17 |
|
|
188
|
+
| Completo | 3.88 | 4.20 | +0.32 |
|
|
189
|
+
|
|
190
|
+
### ROI Esperado
|
|
191
|
+
|
|
192
|
+
- Tiempo estimado: 2-3 horas
|
|
193
|
+
- Mejora en score: +0.32 puntos
|
|
194
|
+
- Impacto en calidad de AI: Mayor comprensión
|
|
195
|
+
- Ahorro continuo: Mantiene 100% ahorro
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Checklist de Seguimiento
|
|
200
|
+
|
|
201
|
+
### Implementación
|
|
202
|
+
- [ ] Mejora #1 implementada
|
|
203
|
+
- [ ] Mejora #2 implementada
|
|
204
|
+
- [ ] Mejora #3 implementada (opcional)
|
|
205
|
+
- [ ] Mejora #4 implementada (opcional)
|
|
206
|
+
|
|
207
|
+
### Verificación
|
|
208
|
+
- [ ] Re-ejecutar evaluator
|
|
209
|
+
- [ ] Validar nuevo score >= 4.0
|
|
210
|
+
- [ ] Confirmar que no hay regresiones
|
|
211
|
+
- [ ] Actualizar este documento
|
|
212
|
+
|
|
213
|
+
### Documentación
|
|
214
|
+
- [ ] Actualizar CHANGELOG
|
|
215
|
+
- [ ] Crear PR con cambios
|
|
216
|
+
- [ ] Revisión de código
|
|
217
|
+
- [ ] Merge a main
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Notas Adicionales
|
|
222
|
+
|
|
223
|
+
### Lecciones Aprendidas
|
|
224
|
+
[ESPACIO PARA NOTAS]
|
|
225
|
+
|
|
226
|
+
### Bloqueos Identificados
|
|
227
|
+
[DOCUMENTAR SI HAY BLOQUEOS]
|
|
228
|
+
|
|
229
|
+
### Recursos Útiles
|
|
230
|
+
- Guía de escritura: [LINK]
|
|
231
|
+
- Template summary.md: [LINK]
|
|
232
|
+
- Ejemplos entry points: [LINK]
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
Documento generado por: AI-First Evaluator v1.0.0
|
|
237
|
+
Última actualización: 2026-03-28
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-first-cli",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
4
4
|
"description": "CLI tool that prepares any repository to be used effectively by AI coding agents",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
"docs:dev": "vitepress dev docs",
|
|
17
17
|
"docs:build": "vitepress build docs",
|
|
18
18
|
"docs:preview": "vitepress preview docs",
|
|
19
|
-
"prepublishOnly": "npm run build"
|
|
19
|
+
"prepublishOnly": "npm run build",
|
|
20
|
+
"postinstall": "if [ -d node_modules/ai-first-evaluator ]; then cd node_modules/ai-first-evaluator && npm install && npm run build 2>/dev/null || true; fi",
|
|
21
|
+
"evaluate": "node node_modules/ai-first-evaluator/dist/core/evaluation/run-evaluation.js --config evaluator.config.json 2>/dev/null || echo 'Evaluator not installed'",
|
|
22
|
+
"evaluate:ci": "node node_modules/ai-first-evaluator/dist/core/evaluation/run-evaluation.js --config evaluator.config.json --compare-baseline --save-baseline 2>/dev/null || echo 'Evaluator not installed'",
|
|
23
|
+
"evaluate:quick": "node node_modules/ai-first-evaluator/dist/core/evaluation/run-evaluation.js --config evaluator.config.json --skip-ai 2>/dev/null || echo 'Evaluator not installed'"
|
|
20
24
|
},
|
|
21
25
|
"keywords": [
|
|
22
26
|
"ai",
|
|
@@ -27,7 +31,9 @@
|
|
|
27
31
|
"development",
|
|
28
32
|
"tool",
|
|
29
33
|
"code-analysis",
|
|
30
|
-
"indexing"
|
|
34
|
+
"indexing",
|
|
35
|
+
"mcp",
|
|
36
|
+
"model-context-protocol"
|
|
31
37
|
],
|
|
32
38
|
"author": "Julian Perez Pesce <julian@example.com> (https://github.com/julianperezpesce)",
|
|
33
39
|
"license": "MIT",
|
|
@@ -47,7 +53,11 @@
|
|
|
47
53
|
"vitest": "^4.1.0",
|
|
48
54
|
"vue": "^3.5.30"
|
|
49
55
|
},
|
|
56
|
+
"optionalDependencies": {
|
|
57
|
+
"ai-first-evaluator": "git+https://github.com/julianperezpesce/ai-first-evaluator.git"
|
|
58
|
+
},
|
|
50
59
|
"dependencies": {
|
|
60
|
+
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
51
61
|
"chokidar": "^5.0.0",
|
|
52
62
|
"ora": "^9.3.0",
|
|
53
63
|
"sql.js": "^1.10.0"
|