agent-mp 0.5.11 → 0.5.13

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 (2) hide show
  1. package/dist/core/engine.js +296 -114
  2. package/package.json +1 -1
@@ -1021,125 +1021,280 @@ DIRECTORIO_TRABAJO: ${this.projectDir}
1021
1021
  PROYECTO: ${this.config.project}
1022
1022
  STACK: ${this.config.stack}
1023
1023
 
1024
- ESTRUCTURA DE ARCHIVOS DEL PROYECTO (excluyendo .agent, node_modules, .git, dist, __pycache__, .venv, target, build):
1024
+ ESTRUCTURA DE ARCHIVOS (excluye .agent, node_modules, .git, dist, __pycache__, .venv, target, build):
1025
1025
  ${fsSnapshot}
1026
1026
 
1027
- ${existingMainArch ? `=== DOCUMENTACION EXISTENTE: architecture.md (principal) ===\n${existingMainArch.slice(0, 2000)}\n` : ''}
1028
- ${existingComponentDocs ? `=== DOCUMENTACION EXISTENTE por componente ===\n${existingComponentDocs.slice(0, 3000)}\n` : ''}
1027
+ ${existingMainArch ? `=== DOC EXISTENTE: architecture.md (principal) ===\n${existingMainArch.slice(0, 2000)}\n` : ''}
1028
+ ${existingComponentDocs ? `=== DOC EXISTENTE por componente ===\n${existingComponentDocs.slice(0, 3000)}\n` : ''}
1029
1029
 
1030
- INSTRUCCIONES:
1031
- Analiza la estructura de archivos y genera documentación ESCALONADA en DOS NIVELES:
1030
+ ================================================================
1031
+ OBJETIVO
1032
+ ================================================================
1033
+ Generar documentacion ESCALONADA en 3 niveles, util TANTO para personas funcionales (PM, negocio) como tecnicas (devs).
1034
+ Detallada pero NO excesiva. Concreta, con datos REALES leidos de los archivos. Cero especulaciones.
1035
+
1036
+ ================================================================
1037
+ REGLA DE ORO — PROHIBIDO INVENTAR
1038
+ ================================================================
1039
+ NO uses jamas: "Inferido", "Probablemente", "Posiblemente", "Asumido", "(supuesto)", "(quizas)", "parece ser".
1040
+ Si no podes verificar un dato leyendo un archivo concreto → OMITELO. Es mejor una doc corta y veraz que una larga llena de suposiciones.
1041
+ Cada puerto, version, endpoint, env var, schema o ruta que aparezca en la doc DEBE haber sido leido de un archivo real.
1032
1042
 
1033
- NIVEL 1: architecture.md (raiz de .agent/context/)
1034
- - Lista TODOS los directorios al nivel del proyecto
1035
- - Indica si son independientes o conectados entre si (ej: front consume back, dos APIs se consumen entre si)
1036
- - Prerequisitos generales para levantar el proyecto
1037
- - Comandos globales de desarrollo
1043
+ ================================================================
1044
+ WORKFLOW QUE TENES QUE EJECUTAR (usa tus tools de read_file/grep_search/list_directory)
1045
+ ================================================================
1046
+ 1. Lista DIRECTORIO_TRABAJO. Identifica los componentes (apps/services/libs). Descarta lo trivial (solo configs/docs/scripts).
1047
+ 2. Para CADA componente no trivial, LEE COMO MINIMO:
1048
+ a. Manifest del proyecto: package.json | requirements.txt | pyproject.toml | pom.xml | build.gradle | Cargo.toml | go.mod
1049
+ → de ahi sacas: nombre, version, framework, dependencias clave con sus versiones, scripts/tasks, entry point
1050
+ b. Entry point real: src/main.ts | index.js | app.py | Application.java | cmd/main.go (segun stack)
1051
+ → de ahi sacas: puerto, middlewares, modulos cargados, configuracion inicial
1052
+ c. Archivo de variables de entorno: .env | .env.example | application.yml | config.* | settings.py
1053
+ → de ahi sacas: variables reales con su proposito
1054
+ d. Al menos 2-3 controladores/routers/handlers principales
1055
+ → de ahi extraes endpoints REALES (metodo, ruta, parametros)
1056
+ e. Al menos 2-3 modelos/schemas/entities principales
1057
+ → de ahi extraes el shape de datos
1058
+ f. README.md del componente si existe
1059
+ 3. Mapea RELACIONES REALES entre componentes (no asumas):
1060
+ - Buscando URLs/hosts de otros servicios en .env
1061
+ - Buscando imports cross-component
1062
+ - Buscando cadenas de conexion a BBDD/colas/cache
1063
+ 4. Recien con esa informacion concreta, genera los archivos de documentacion.
1038
1064
 
1039
- NIVEL 2: Para CADA directorio que sea un servicio/API/app/funcionalidad:
1040
- - Crea subcarpeta: [nombre-del-directorio]/architecture.md → explica como se estructura internamente
1041
- - Crea subcarpeta: [nombre-del-directorio]/modules/[modulo].md → detalle de cada modulo interno
1042
- - Si un directorio es trivial (solo scripts, docs, configs), NO crees subcarpeta, solo mencionarlo en el architecture.md principal
1065
+ ================================================================
1066
+ LENGUAJE DUAL (regla critica)
1067
+ ================================================================
1068
+ Cada seccion abre con UNA linea en lenguaje simple (que entienda un PM/negocio), DESPUES viene el detalle tecnico.
1069
+ - MAL: "El microservicio orquesta la persistencia mediante un repositorio."
1070
+ - BIEN: "Guarda la informacion del usuario en la base. Internamente usa un repositorio que abstrae la conexion a MongoDB."
1043
1071
 
1044
- FORMATO EXACTO de los archivos a devolver (separados por marcadores):
1072
+ ================================================================
1073
+ ESTRUCTURA DE LOS 3 NIVELES
1074
+ ================================================================
1045
1075
 
1046
- === architecture.md ===
1047
- # ${this.config.project}Architecture Overview
1076
+ ────────────────────────────────────────────────────────────────
1077
+ NIVEL 0architecture.md (raiz de .agent/context/)
1078
+ Indice global. Objetivo: 50-150 lineas. Concreto.
1079
+ ────────────────────────────────────────────────────────────────
1080
+ Secciones obligatorias:
1048
1081
 
1049
- Descripcion general del proyecto.
1082
+ # ${this.config.project} Arquitectura Global (NIVEL 0)
1050
1083
 
1051
- ## Componentes del Proyecto
1084
+ > Indice de servicios y relaciones. Lectura escalonada:
1085
+ > NIVEL 0: este archivo
1086
+ > NIVEL 1: .agent/context/[componente]/architecture.md
1087
+ > NIVEL 2: .agent/context/[componente]/modules/[modulo].md
1052
1088
 
1053
- | Componente | Tipo | Stack | Proposito | Entry Point |
1054
- |------------|------|-------|-----------|-------------|
1055
- | datamart-data-access-api | API Backend | NestJS | Acceso a datos | src/main.ts |
1056
- | nexus-core-api | API Backend | NestJS | Core business logic | src/main.ts |
1089
+ ## 1. Overview funcional
1090
+ 2-4 lineas en lenguaje simple: que es el sistema, para quien sirve, que problema resuelve.
1057
1091
 
1058
- ## Como se Relacionan los Componentes
1092
+ ## 2. Componentes del proyecto
1093
+ | Componente | Tipo | Stack + version | Puerto | Proposito (negocio) | Entry point |
1094
+ |------------|------|-----------------|--------|---------------------|-------------|
1095
+ (una fila por componente, con datos REALES)
1059
1096
 
1060
- Explica las conexiones entre componentes:
1061
- - Si un front consume un back, explicar como
1062
- - Si dos APIs se consumen entre sí (fetch, HTTP), explicar el flujo
1063
- - Si son independientes, indicar que cada uno funciona por su cuenta
1097
+ ## 3. Relaciones entre componentes
1098
+ | Origen | Destino | Tipo (HTTP / Import / DB / Queue / CORS) | Proposito |
1099
+ |--------|---------|------------------------------------------|-----------|
1100
+ (una fila por cada relacion confirmada)
1064
1101
 
1065
- ### Diagrama de Flujo (texto)
1102
+ ## 4. Diagrama de arquitectura
1066
1103
  \`\`\`
1067
- [Frontend] --fetch--> [API 1] --HTTP--> [API 2]
1068
- [API 1] --> [Database]
1104
+ [Frontend Web] ──HTTP──> [API Auth :8081]
1105
+ │ │
1106
+ │ v
1107
+ └──HTTP──> [API Core :8080] ──> [MongoDB]
1069
1108
  \`\`\`
1070
1109
 
1071
- ## Prerequisitos Generales
1072
- - Node.js x.x, Python x.x, Docker, etc.
1073
- - Bases de datos, servicios externos
1110
+ ## 5. Flujos end-to-end principales (3-5)
1111
+ Mappings funcional → tecnico, paso a paso. Ejemplo:
1112
+ - **"Un usuario crea un pedido"**: WebApp → POST /orders (API Core) → valida JWT contra API Auth → guarda en MongoDB → devuelve 201 con el pedido.
1113
+
1114
+ ## 6. Prerequisitos para levantar el proyecto
1115
+ Versiones REALES leidas de los manifests (no rangos genericos).
1074
1116
 
1075
- ## Comandos de Desarrollo Globales
1117
+ ## 7. Comandos globales de desarrollo
1076
1118
  | Comando | Descripcion | Directorio |
1077
- |---------|-------------|------------|
1078
- | ... | ... | ... |
1079
1119
 
1080
- === [nombre]/architecture.md ===
1081
- # [nombre] — Arquitectura Interna
1120
+ ## 8. Decisiones de arquitectura globales (opcional, solo si hay)
1121
+
1122
+ ────────────────────────────────────────────────────────────────
1123
+ NIVEL 1 — [componente]/architecture.md
1124
+ Detalle del componente. Objetivo: 80-200 lineas. Crear UNO POR CADA componente NO trivial.
1125
+ ────────────────────────────────────────────────────────────────
1126
+ Secciones obligatorias:
1127
+
1128
+ # [componente] — Arquitectura (NIVEL 1)
1129
+
1130
+ ## Que hace
1131
+ 2-3 lineas en lenguaje simple, sin tecnicismos.
1082
1132
 
1083
- Descripcion de este componente y su rol en el proyecto.
1133
+ ## Casos de uso principales
1134
+ 3-6 bullets en formato negocio:
1135
+ - "Permite al usuario X..."
1136
+ - "El sistema usa este servicio para Y..."
1084
1137
 
1085
- ## Estructura Interna
1138
+ ## Stack tecnico
1139
+ | Item | Valor |
1140
+ |------|-------|
1141
+ | Lenguaje | TypeScript 5.3 |
1142
+ | Framework | NestJS 11.0.1 |
1143
+ | ORM | Mongoose 9.3.3 |
1144
+ | Auth | Passport JWT |
1145
+ (datos reales del manifest)
1146
+
1147
+ ## Puerto y URLs
1148
+ - **Puerto:** 8085 (de PORT en .env)
1149
+ - **Swagger / docs:** http://localhost:8085/api/docs (si aplica)
1150
+ - **Health check:** GET /health (si existe)
1151
+
1152
+ ## Estructura interna (arbol real)
1086
1153
  \`\`\`
1087
1154
  src/
1088
- ├── main.ts # entry point
1089
- ├── config/ # configuracion
1090
- ├── controllers/ # endpoints
1091
- └── services/ # logica de negocio
1155
+ ├── main.ts # entry point, configura CORS y swagger
1156
+ ├── auth/ # autenticacion JWT
1157
+ ├── leads/ # gestion de leads
1158
+ └── ...
1092
1159
  \`\`\`
1093
1160
 
1094
- ## Modulos Internos
1095
- | Modulo | Archivo | Descripcion |
1096
- |--------|---------|-------------|
1097
- | config | modules/config.md | Configuracion |
1098
- | controller | modules/controller.md | Endpoints |
1161
+ ## Modulos internos
1162
+ | Modulo | Proposito (negocio) | Doc tecnica |
1163
+ |--------|---------------------|-------------|
1164
+ | auth | Login y validacion de tokens | modules/auth.md |
1165
+ | leads | Listado y consulta de negocios | modules/leads.md |
1166
+
1167
+ ## Endpoints principales
1168
+ | Metodo | Ruta | Modulo | Que hace (lenguaje simple) |
1169
+ |--------|------|--------|----------------------------|
1170
+ | GET | /leads | leads | Lista negocios filtrables |
1171
+ | GET | /leads/:id | leads | Detalle de un negocio |
1172
+ (SOLO endpoints reales extraidos de los controllers)
1173
+
1174
+ ## Variables de entorno
1175
+ | Variable | Default | Proposito |
1176
+ |----------|---------|-----------|
1177
+ | PORT | 8085 | Puerto del servicio |
1178
+ | MONGODB_URI | mongodb://... | Conexion principal |
1179
+
1180
+ ## Integraciones con otros servicios / sistemas
1181
+ | Servicio externo | Tipo (HTTP/DB/Queue) | Proposito |
1099
1182
 
1100
- ## Como Levantar
1101
- - **Instalar deps:** comando
1102
- - **Servicios necesarios:** BD, redis, etc.
1103
- - **Variables de entorno:** listarlas con su proposito
1104
- - **Comando para iniciar:** \`...\`
1183
+ ## Como levantar
1184
+ - **Instalar deps:** \`npm install\`
1185
+ - **Servicios necesarios:** MongoDB corriendo, security-api accesible
1186
+ - **Comando para iniciar:** \`npm run start:dev\`
1105
1187
 
1106
- ## Comandos Disponibles
1188
+ ## Comandos disponibles
1107
1189
  | Comando | Que hace |
1108
- |---------|----------|
1109
- | ... | ... |
1110
1190
 
1111
- ## Comunicacion con Otros Componentes
1112
- - A que APIs llama o que APIs lo llaman
1113
- - Protocolo (fetch, HTTP, gRPC, etc.)
1191
+ ## Decisiones tecnicas relevantes
1192
+ (solo si hay decisiones notables; si no, omitir esta seccion)
1114
1193
 
1115
- === [nombre]/modules/[modulo].md ===
1116
- # [nombre-del-modulo]
1194
+ ────────────────────────────────────────────────────────────────
1195
+ NIVEL 2 — [componente]/modules/[modulo].md
1196
+ Detalle de un modulo interno. Objetivo: 40-120 lineas. Crear UNO POR cada modulo significativo.
1197
+ ────────────────────────────────────────────────────────────────
1198
+ Secciones obligatorias:
1117
1199
 
1118
- ## Funcion
1119
- Que hace este modulo especifico.
1200
+ # Modulo: [nombre] — [componente]
1120
1201
 
1121
- ## Archivo Principal
1122
- - **Ruta:** path relativo
1123
- - **Funciones/Clases principales**
1202
+ ## Funcion (lenguaje simple)
1203
+ 1-2 lineas: "Permite al usuario gestionar X" / "El sistema usa este modulo para Y".
1124
1204
 
1125
- ## Endpoints / Interfaces Publicas
1126
- Si es un controller/router:
1127
- - \`GET /ruta\` — descripcion
1128
- - \`POST /ruta\` descripcion
1205
+ ## Funcion (tecnica)
1206
+ 1-2 lineas: como esta implementado a alto nivel.
1207
+
1208
+ ## Flujos / casos de uso (1-3)
1209
+ Escenarios paso a paso. Ejemplo:
1210
+ - **Crear un pedido:** Cliente → POST /orders → middleware valida JWT → service.create() → guarda en DB → responde 201
1211
+
1212
+ ## Endpoints / interfaces publicas (si aplica)
1213
+ | Metodo | Ruta | Body | Respuesta |
1214
+ |--------|------|------|-----------|
1215
+
1216
+ ## Modelos / schemas relevantes
1217
+ \`\`\`typescript
1218
+ // shape REAL extraido del archivo de schema/model
1219
+ {
1220
+ _id: ObjectId,
1221
+ name: string,
1222
+ createdAt: Date,
1223
+ ...
1224
+ }
1225
+ \`\`\`
1226
+
1227
+ ## Reglas de negocio
1228
+ - Validaciones: ...
1229
+ - Condiciones especiales: ...
1230
+ - Excepciones: ...
1231
+
1232
+ ## Archivos clave
1233
+ | Archivo | Rol |
1234
+ |---------|-----|
1235
+ | src/leads/leads.controller.ts | Endpoints /leads |
1236
+ | src/leads/leads.service.ts | Logica de negocio |
1129
1237
 
1130
1238
  ## Dependencias
1131
- - **Internas:** modulos del mismo componente
1132
- - **Externas:** librerias de terceros
1133
-
1134
- REGLAS:
1135
- - Devuelve UNICAMENTE los archivos separados por === path/file.md ===
1136
- - USA NOMBRES CORTOS: NO uses rutas absolutas
1137
- - El archivo principal SIEMPRE es === architecture.md ===
1138
- - Para componentes: === nombre-del-componente/architecture.md ===
1139
- - Para modulos internos: === nombre-del-componente/modules/nombre-modulo.md ===
1140
- - Para componentes triviales (scripts, docs): solo mencionarlos en architecture.md principal
1141
- - Documenta TODOS los directorios al nivel de DIRECTORIO_TRABAJO (excluyendo .agent)
1142
- - Si hay documentacion existente, actualizala con los cambios detectados`;
1239
+ - **Internas (mismo componente):** auth, common
1240
+ - **Externas:** mongoose, class-validator
1241
+ - **Cross-component:** llama a security-api via HTTP para validar JWT
1242
+
1243
+ ================================================================
1244
+ CALIBRACION DE DETALLE
1245
+ ================================================================
1246
+ - NIVEL 0: 50-150 lineas (no menos, no mas)
1247
+ - NIVEL 1: 80-200 lineas por componente
1248
+ - NIVEL 2: 40-120 lineas por modulo
1249
+ - Si te queda corto leiste pocos archivos, lee mas
1250
+ - Si te queda largo estas repitiendo o agregando relleno, recorta
1251
+
1252
+ ================================================================
1253
+ QUE NO HACER
1254
+ ================================================================
1255
+ - NO usar "Inferido", "Probablemente", "(asumido)", "(quizas)", "parece"
1256
+ - NO repetir lo mismo entre niveles sin agregar valor (cada nivel zoomea mas)
1257
+ - NO dejar tablas vacias ni con placeholders tipo "..."
1258
+ - NO mezclar lenguaje tecnico puro: SIEMPRE empezar funcional, despues tecnico
1259
+ - NO documentar componentes triviales (scripts, docs, configs sueltas) con su propia carpeta — mencionalos en NIVEL 0 y listo
1260
+ - NO inventar endpoints, env vars, puertos o schemas que no leiste
1261
+
1262
+ ================================================================
1263
+ FORMATO DE SALIDA — OBLIGATORIO
1264
+ ================================================================
1265
+ Devolve UNICAMENTE bloques de archivos separados por marcadores ===. Nada de explicaciones extra fuera de los bloques.
1266
+
1267
+ IMPORTANTE: TODAS las rutas son RELATIVAS al directorio del proyecto.
1268
+ Los archivos se escriben SIEMPRE dentro de .agent/context/
1269
+
1270
+ Ejemplos de marcadores:
1271
+ === .agent/context/architecture.md ===
1272
+ === .agent/context/datamart-data-access-api/architecture.md ===
1273
+ === .agent/context/datamart-data-access-api/modules/auth.md ===
1274
+ === .agent/context/nexus-core-api/architecture.md ===
1275
+ === .agent/context/nexus-core-api/modules/users.md ===
1276
+
1277
+ === .agent/context/architecture.md ===
1278
+ [contenido completo del NIVEL 0]
1279
+
1280
+ === .agent/context/nombre-componente-1/architecture.md ===
1281
+ [contenido completo del NIVEL 1 del componente 1]
1282
+
1283
+ === .agent/context/nombre-componente-1/modules/auth.md ===
1284
+ [contenido completo del NIVEL 2 del modulo auth]
1285
+
1286
+ === .agent/context/nombre-componente-1/modules/leads.md ===
1287
+ [contenido completo del NIVEL 2 del modulo leads]
1288
+
1289
+ === .agent/context/nombre-componente-2/architecture.md ===
1290
+ ...
1291
+
1292
+ REGLAS DE PATHS:
1293
+ - El archivo principal SIEMPRE es: === .agent/context/architecture.md ===
1294
+ - Por componente: === .agent/context/[nombre-componente]/architecture.md ===
1295
+ - Por modulo interno: === .agent/context/[nombre-componente]/modules/[nombre-modulo].md ===
1296
+ - Documenta TODOS los componentes no triviales del DIRECTORIO_TRABAJO
1297
+ - Si existe documentacion previa, ACTUALIZALA preservando lo que sigue siendo valido y agregando lo nuevo`;
1143
1298
  const res = await this.runWithFallback('explorer', prompt, 'Exploracion');
1144
1299
  const text = extractCliText(res);
1145
1300
  // Parse sections separated by === path/file.md === markers
@@ -1154,37 +1309,33 @@ REGLAS:
1154
1309
  content = content.replace(/^```markdown\s*/i, '').replace(/^```\s*$/gm, '').trim();
1155
1310
  try {
1156
1311
  let targetPath;
1157
- if (fileName === 'architecture.md' || fileName === 'ARCHITECTURE.md') {
1312
+ // Normalize: strip any .agent/context/ prefix from the marker
1313
+ let relPath = fileName.replace(/^\.agent\/context\//i, '');
1314
+ if (relPath === 'architecture.md' || relPath === 'ARCHITECTURE.md' || relPath === fileName) {
1158
1315
  // Main architecture doc
1159
- targetPath = mainArchPath;
1316
+ if (relPath === 'architecture.md' || relPath === 'ARCHITECTURE.md') {
1317
+ targetPath = mainArchPath;
1318
+ }
1319
+ else {
1320
+ // Fallback for unrecognized paths: skip
1321
+ continue;
1322
+ }
1160
1323
  }
1161
1324
  else {
1162
- // CRITICAL: Extract only the relative path components, strip any absolute path prefix
1163
- // fileName could be: "datamart-data-access-api/architecture.md"
1164
- // or "/home/user/project/datamart-data-access-api/architecture.md" (BAD — must ignore prefix)
1165
- // We only want the components relative to contextDir
1166
- // Remove any leading absolute path by extracting the last meaningful path segments
1167
- const cleanName = fileName.replace(/^.*[\/\\]/, ''); // strip any prefix
1168
- // Check if it's a component architecture file: "component/architecture.md" or "component/modules/mod.md"
1169
- const pathParts = fileName.split(/[\/\\]/).filter(Boolean);
1170
- // Keep only the last 2-3 parts (component name + file)
1171
- // e.g. ["/home", "user", "proj", "datamart", "architecture.md"] → ["datamart", "architecture.md"]
1172
- // e.g. ["datamart-data-access-api", "architecture.md"] → same
1173
- // e.g. ["datamart-data-access-api", "modules", "config.md"] → same
1174
- let relPath;
1325
+ // Component doc: component/architecture.md or component/modules/mod.md
1326
+ const pathParts = relPath.split(/[\/\\]/).filter(Boolean);
1175
1327
  if (pathParts.length >= 3 && pathParts[pathParts.length - 2] === 'modules') {
1176
1328
  // component/modules/file.md
1177
- relPath = path.join(pathParts[pathParts.length - 3], 'modules', pathParts[pathParts.length - 1]);
1329
+ targetPath = path.join(contextDir, pathParts[pathParts.length - 3], 'modules', pathParts[pathParts.length - 1]);
1178
1330
  }
1179
1331
  else if (pathParts.length >= 2) {
1180
1332
  // component/file.md
1181
- relPath = path.join(pathParts[pathParts.length - 2], pathParts[pathParts.length - 1]);
1333
+ targetPath = path.join(contextDir, pathParts[pathParts.length - 2], pathParts[pathParts.length - 1]);
1182
1334
  }
1183
1335
  else {
1184
- // fallback
1185
- relPath = path.join('modules', cleanName);
1336
+ // Fallback
1337
+ continue;
1186
1338
  }
1187
- targetPath = path.join(contextDir, relPath);
1188
1339
  }
1189
1340
  await fs.mkdir(path.dirname(targetPath), { recursive: true });
1190
1341
  await writeFile(targetPath, content);
@@ -1230,16 +1381,47 @@ PROYECTO: ${this.config.project}
1230
1381
  ${existingArch ? `DOCUMENTACION EXISTENTE:\n${existingArch.slice(0, 3000)}\n` : 'Sin documentacion previa.\n'}
1231
1382
  CONTEXTO: ${context.slice(0, 2000)}
1232
1383
 
1233
- INSTRUCCIONES:
1234
- 1. Lista el directorio raiz e identifica todos los servicios/apps.
1235
- 2. Para cada uno: lee package.json/requirements.txt, explora src/, identifica entry point, rutas/endpoints, puerto.
1236
- 3. Identifica dependencias entre servicios.
1237
- 4. Crea/actualiza ${archPath} con tabla resumen y detalle por servicio.
1238
- 5. Crea/actualiza ${contextDir}/<servicio>/architecture.md para cada servicio.
1239
-
1240
- REGLAS:
1241
- - Escribe UNICAMENTE los archivos indicados: ${archPath} y ${contextDir}/<servicio>/architecture.md
1242
- - NO crees archivos adicionales ni con otros nombres en ningun directorio`);
1384
+ OBJETIVO
1385
+ Generar documentacion ESCALONADA en 3 niveles (global / componente / modulo), util para perfiles funcionales y tecnicos. Detallada pero concreta. Cero suposiciones.
1386
+
1387
+ REGLA DE ORO PROHIBIDO ESPECULAR
1388
+ NO uses "Inferido", "Probablemente", "Asumido", "(quizas)", "parece". Si no podes verificar un dato leyendo un archivo, OMITELO. Cada puerto, version, endpoint, env var y schema debe haber sido leido de un archivo real.
1389
+
1390
+ WORKFLOW (usa tus tools)
1391
+ 1. Lista DIRECTORIO_TRABAJO y detecta los componentes no triviales.
1392
+ 2. Para cada componente, LEE como minimo:
1393
+ - Manifest (package.json | requirements.txt | pom.xml | build.gradle | go.mod | Cargo.toml)
1394
+ - Entry point (main.ts | index.js | app.py | Application.java | cmd/main.go)
1395
+ - .env / .env.example / application.yml / settings.py
1396
+ - 2-3 controladores/routers principales (para endpoints reales)
1397
+ - 2-3 schemas/models principales (para shapes reales)
1398
+ 3. Mapea relaciones reales (URLs en .env, imports cross-component, conexiones a DB/colas).
1399
+
1400
+ LENGUAJE DUAL
1401
+ Cada seccion abre con UNA linea simple (que entienda un PM). Despues, el detalle tecnico.
1402
+ - MAL: "El microservicio orquesta la persistencia mediante un repositorio."
1403
+ - BIEN: "Guarda la informacion del usuario. Internamente usa un repositorio que abstrae MongoDB."
1404
+
1405
+ NIVEL 0 — ${archPath} (50-150 lineas)
1406
+ Secciones: Overview funcional · Tabla de componentes (con stack+version, puerto, proposito, entry point) · Tabla de relaciones (origen, destino, tipo, proposito) · Diagrama ASCII · 3-5 flujos end-to-end (mapping funcional → tecnico) · Prerequisitos · Comandos globales.
1407
+
1408
+ NIVEL 1 — ${contextDir}/<componente>/architecture.md (80-200 lineas, uno por componente)
1409
+ Secciones: Que hace (simple) · Casos de uso (3-6 bullets en formato negocio) · Stack tecnico (tabla con versiones reales) · Puerto y URLs · Estructura interna (arbol real) · Tabla de modulos · Tabla de endpoints reales · Tabla de variables de entorno · Integraciones · Como levantar · Comandos.
1410
+
1411
+ NIVEL 2 — ${contextDir}/<componente>/modules/<modulo>.md (40-120 lineas, uno por modulo significativo)
1412
+ Secciones: Funcion (simple) · Funcion (tecnica) · Flujos / casos de uso paso a paso · Endpoints / interfaces · Schemas reales en codigo · Reglas de negocio · Archivos clave · Dependencias internas/externas/cross-component.
1413
+
1414
+ CALIBRACION
1415
+ - NIVEL 0: 50-150 lineas. NIVEL 1: 80-200 por componente. NIVEL 2: 40-120 por modulo.
1416
+ - Si te queda corto, leiste pocos archivos. Si te queda largo, recorta el relleno.
1417
+ - Componentes triviales (solo scripts/docs): mencionalos en NIVEL 0 y NO les crees subcarpeta.
1418
+
1419
+ REGLAS DE ESCRITURA
1420
+ - Solo podes escribir archivos dentro de ${contextDir}/
1421
+ - NO crees archivos sueltos en la raiz de ${contextDir}/ (excepto architecture.md)
1422
+ - Por componente usa: ${contextDir}/<componente>/architecture.md
1423
+ - Por modulo usa: ${contextDir}/<componente>/modules/<modulo>.md
1424
+ - Si existe documentacion previa, ACTUALIZALA preservando lo valido`);
1243
1425
  let result;
1244
1426
  const sp = this._startSpinner(`agent-explorer ${role.model}`);
1245
1427
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-mp",
3
- "version": "0.5.11",
3
+ "version": "0.5.13",
4
4
  "description": "Deterministic multi-agent CLI orchestrator — plan, code, review",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",