openprompt-lang 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/bin/cli.js +2 -0
  2. package/docs/00-ARCHITECTURE/OPL-BOOST-MULTI-AGENT.md +406 -0
  3. package/docs/02-STANDARDS/AGENTS.template.md +89 -0
  4. package/docs/02-STANDARDS/ticket-driven-development.md +99 -0
  5. package/docs/04-TICKETS/BOOST-001-profile-registry.md +66 -0
  6. package/docs/04-TICKETS/BOOST-002-context-compression.md +58 -0
  7. package/docs/04-TICKETS/BOOST-003-template-hydration.md +69 -0
  8. package/docs/04-TICKETS/BOOST-004-fewshot-engine.md +58 -0
  9. package/docs/04-TICKETS/BOOST-005-agent-pool.md +69 -0
  10. package/docs/04-TICKETS/BOOST-006-specialized-agents.md +53 -0
  11. package/docs/04-TICKETS/BOOST-007-validation-loop.md +56 -0
  12. package/docs/04-TICKETS/BOOST-008-orchestrator.md +71 -0
  13. package/docs/04-TICKETS/BOOST-009-cache-system.md +56 -0
  14. package/docs/04-TICKETS/BOOST-010-cli-mcp.md +67 -0
  15. package/docs/04-TICKETS/BOOST-011-self-learning.md +50 -0
  16. package/docs/04-TICKETS/BOOST-012-prompt-preamble.md +109 -0
  17. package/docs/04-TICKETS/BOOST-013-hydrator-duplicate-code.md +132 -0
  18. package/docs/04-TICKETS/BOOST-014-multiagent-missing-parts.md +87 -0
  19. package/docs/04-TICKETS/BOOST-015-skeleton-type-missing.md +76 -0
  20. package/docs/04-TICKETS/BOOST-016-output-path-duplicate.md +68 -0
  21. package/docs/04-TICKETS/INDEX.md +89 -0
  22. package/docs/04-TICKETS/_archive/BOOST-005-micro-tasking.md +67 -0
  23. package/docs/04-TICKETS/_archive/BOOST-006-validation-loop.md +66 -0
  24. package/docs/04-TICKETS/_archive/BOOST-007-progressive-pipeline.md +69 -0
  25. package/docs/04-TICKETS/_archive/BOOST-008-cli-mcp-integration.md +74 -0
  26. package/docs/AI_CONTEXT.md +16 -0
  27. package/package.json +3 -2
  28. package/src/boost/agent-pool.js +442 -0
  29. package/src/boost/agents/index.js +79 -0
  30. package/src/boost/cache.js +241 -0
  31. package/src/boost/context-compressor.js +354 -0
  32. package/src/boost/fewshot-retriever.js +332 -0
  33. package/src/boost/hardware-detector.js +486 -0
  34. package/src/boost/hydrator.js +398 -0
  35. package/src/boost/index.js +60 -0
  36. package/src/boost/orchestrator.js +615 -0
  37. package/src/boost/preamble.js +217 -0
  38. package/src/boost/profile-registry.js +264 -0
  39. package/src/boost/self-learn.js +247 -0
  40. package/src/boost/skeletons/component.skeleton.js +24 -0
  41. package/src/boost/skeletons/hook.skeleton.js +27 -0
  42. package/src/boost/skeletons/index.js +67 -0
  43. package/src/boost/skeletons/page.skeleton.js +22 -0
  44. package/src/boost/skeletons/service.skeleton.js +20 -0
  45. package/src/boost/skeletons/store.skeleton.js +18 -0
  46. package/src/boost/skeletons/type.skeleton.js +11 -0
  47. package/src/boost/task-dispatcher.js +142 -0
  48. package/src/boost/validation-loop.js +495 -0
  49. package/src/cli/commands-boost.js +394 -0
  50. package/src/mcp-refactor/handlers/boost.js +295 -0
  51. package/src/mcp-refactor/router.js +19 -0
  52. package/src/mcp-refactor/tools.js +113 -0
@@ -0,0 +1,58 @@
1
+ # BOOST-002 — Context Compression Engine
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-002 |
8
+ | **Título** | Context Compression Engine |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Alta |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-001 |
13
+ | **Archivos** | `src/boost/context-compressor.js` |
14
+
15
+ ## Descripción
16
+
17
+ Motor que comprime el contexto (AGENTS.md, reglas, documentación) a solo las secciones relevantes para la tarea actual. Un modelo small recibe ~20% del contexto original, eliminando secciones irrelevantes.
18
+
19
+ La compresión es adaptativa según el perfil: small comprime 80%, medium 50%, large 0%.
20
+
21
+ ## Criterios de Aceptación
22
+
23
+ ### CA-1: Compresión por tarea
24
+ - [ ] `compressContext(task, fullContext, profile)` → devuelve contexto comprimido
25
+ - [ ] El task description se usa para hacer keyword matching contra secciones
26
+ - [ ] Solo incluye secciones con score de relevancia > umbral (configurable por perfil)
27
+
28
+ ### CA-2: Modos de compresión
29
+ - [ ] **Modo seguro** (default): siempre incluye reglas de enforcement (@limit, @kind, NUNCA)
30
+ - [ ] **Modo agresivo**: solo incluye lo estrictamente relevante a la tarea
31
+ - [ ] **Modo desactivado**: pasa el contexto completo sin modificar
32
+
33
+ ### CA-3: Compresión cuantificable
34
+ - [ ] Retorna métricas: `{ originalChars, compressedChars, reductionPercent, sectionsKept, sectionsRemoved }`
35
+ - [ ] Las métricas son accesibles vía `opl boost check`
36
+
37
+ ### CA-4: Preservación de estructura
38
+ - [ ] No rompe bloques de código, tablas, o listas
39
+ - [ ] Preserva la sección de NUNCA y ENFORCEMENT siempre (modo seguro)
40
+ - [ ] El output sigue siendo markdown válido
41
+
42
+ ### CA-5: Tests
43
+ - [ ] Test con AGENTS.md completo: verify reduction % según perfil
44
+ - [ ] Test que preserve sectiones críticas (ENFORCEMENT, NUNCA)
45
+ - [ ] Test de keyword matching con diferentes task descriptions
46
+
47
+ ## Archivos a crear/modificar
48
+
49
+ | Archivo | Acción |
50
+ |---------|--------|
51
+ | `src/boost/context-compressor.js` | ➕ Crear |
52
+
53
+ ## Notas técnicas
54
+
55
+ - Implementar como función pura (sin side effects) para testabilidad
56
+ - El matching de secciones se hace por: título de sección (##, ###), palabras clave, y contexto
57
+ - Secciones protegidas: `ENFORCEMENT`, `NUNCA`, `REGLA ABSOLUTA`, `@limit`
58
+ - No necesita leer archivos — recibe el contexto como string
@@ -0,0 +1,69 @@
1
+ # BOOST-003 — Template Hydration System
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-003 |
8
+ | **Título** | Template Hydration System |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Alta |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-001 |
13
+ | **Archivos** | `src/boost/hydrator.js`, `src/boost/skeletons/*` |
14
+
15
+ ## Descripción
16
+
17
+ Sistema que proporciona esqueletos de código (skeletons) por @kind (hook, component, page, service, store) donde el modelo solo rellena la lógica de negocio (~10%). OPL se encarga de armar el código final con imports, tipos, anotaciones OPL y exports correctos.
18
+
19
+ Esto reduce drásticamente los errores de estructura típicos de modelos pequeños.
20
+
21
+ ## Criterios de Aceptación
22
+
23
+ ### CA-1: Skeletons por @kind
24
+ - [ ] Existen skeletons para: `hook`, `component`, `page`, `service`, `store`
25
+ - [ ] Cada skeleton incluye: imports base, estructura OPL (@use, @kind, @limit), tipo/interface, función placeholder, export
26
+ - [ ] Los skeletons respetan los límites de líneas de AGENTS.md (hook:80, component:120, etc.)
27
+
28
+ ### CA-2: Hydration
29
+ - [ ] `hydrate(kind, businessLogic)` → devuelve archivo completo con anotaciones
30
+ - [ ] El business logic del modelo se inyecta en el placeholder correcto
31
+ - [ ] Se agregan anotaciones @use con los valores correctos
32
+ - [ ] Se agrega @limit según el @kind
33
+ - [ ] Se agrega @contract (hooks/services) o @props (components) según el tipo
34
+
35
+ ### CA-3: Validación post-hydration
36
+ - [ ] El archivo resultante pasa `npx openprompt-lang validate` sin errores
37
+ - [ ] El archivo resultante tiene TypeScript válido
38
+
39
+ ### CA-4: CLI generate
40
+ - [ ] `opl boost generate "hook useAuth"` → hydrata un hook
41
+ - [ ] `opl boost generate "component Button" --kind component` → hydrata un componente
42
+ - [ ] Opción `--dry-run` muestra el skeleton sin rellenar
43
+ - [ ] Opción `--kind` para especificar tipo (auto-detecta si se omite)
44
+
45
+ ### CA-5: Tests
46
+ - [ ] Test de hydratación para cada @kind
47
+ - [ ] Test que el output pase validate
48
+ - [ ] Test que el output tenga TypeScript válido (si tsc está disponible)
49
+ - [ ] Test con business logic mínimo
50
+
51
+ ## Archivos a crear/modificar
52
+
53
+ | Archivo | Acción |
54
+ |---------|--------|
55
+ | `src/boost/hydrator.js` | ➕ Crear |
56
+ | `src/boost/skeletons/hook.skeleton.js` | ➕ Crear |
57
+ | `src/boost/skeletons/component.skeleton.js` | ➕ Crear |
58
+ | `src/boost/skeletons/page.skeleton.js` | ➕ Crear |
59
+ | `src/boost/skeletons/service.skeleton.js` | ➕ Crear |
60
+ | `src/boost/skeletons/store.skeleton.js` | ➕ Crear |
61
+ | `src/boost/skeletons/index.js` | ➕ Crear (export unificado) |
62
+
63
+ ## Notas técnicas
64
+
65
+ - Los skeletons son archivos JavaScript/TypeScript válidos con marcadores `{{PLACEHOLDER_LOGIC}}`
66
+ - La hydratación es un simple string replace + wrapper injection
67
+ - Los skeletons deben seguir las convenciones de OPL (named exports, anotaciones primero)
68
+ - Para `component`: incluir estructura cva + cn() como en shadcn/ui
69
+ - Para `hook`: incluir estructura de estado + efecto + retorno tipado
@@ -0,0 +1,58 @@
1
+ # BOOST-004 — Few-Shot Example Engine
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-004 |
8
+ | **Título** | Few-Shot Example Engine |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Media |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-001 |
13
+ | **Archivos** | `src/boost/fewshot-retriever.js` |
14
+
15
+ ## Descripción
16
+
17
+ Motor que busca ejemplos relevantes en el knowledge-repo y los injecta en el prompt como few-shot examples antes de que el modelo genere código. Los modelos pequeños mejoran dramáticamente cuando tienen ejemplos concretos del mismo dominio y @kind.
18
+
19
+ ## Criterios de Aceptación
20
+
21
+ ### CA-1: Búsqueda de ejemplos
22
+ - [ ] `retrieveExamples(kind, domain, query)` → devuelve 2-3 ejemplos relevantes
23
+ - [ ] Busca en templates de OPL (p.ej., hooks existentes en src/)
24
+ - [ ] Busca en knowledge-repo (documentación, ejemplos de código)
25
+ - [ ] Filtra por @kind (solo ejemplos del mismo tipo)
26
+
27
+ ### CA-2: Ranking de relevancia
28
+ - [ ] Ordena resultados por: matching de dominio > matching de @kind > frescura (fecha)
29
+ - [ ] Devuelve máximo 3 ejemplos para no saturar el contexto del modelo
30
+
31
+ ### CA-3: Inyección en prompt
32
+ - [ ] `buildFewShotPrompt(examples, userPrompt)` → prompt completo con ejemplos antes de la instrucción
33
+ - [ ] Los ejemplos se envuelven en bloques con metadata (archivo, @kind, propósito)
34
+ - [ ] El prompt resultante tiene estructura clara: [instrucción] → [ejemplos] → [tarea]
35
+
36
+ ### CA-4: Configuración por perfil
37
+ - [ ] Perfil `small`: siempre busca ejemplos (fewShot: true)
38
+ - [ ] Perfil `medium`: busca ejemplos si hay matching > 70%
39
+ - [ ] Perfil `large`: no busca ejemplos (fewShot: false)
40
+
41
+ ### CA-5: Tests
42
+ - [ ] Test de búsqueda con diferentes queries
43
+ - [ ] Test que no retorne más de 3 ejemplos
44
+ - [ ] Test de formato del prompt inyectado
45
+ - [ ] Test con knowledge-repo vacío (debe fallar graceful)
46
+
47
+ ## Archivos a crear/modificar
48
+
49
+ | Archivo | Acción |
50
+ |---------|--------|
51
+ | `src/boost/fewshot-retriever.js` | ➕ Crear |
52
+
53
+ ## Notas técnicas
54
+
55
+ - La búsqueda en knowledge-repo puede ser básica (grep/búsqueda textual) o usando los embeddings existentes
56
+ - Priorizar búsqueda textual simple para no depender de embeddings
57
+ - Los ejemplos deben ser cortos (máximo 50 líneas cada uno)
58
+ - Incluir metadata de cada ejemplo: tipo, dominio, propósito
@@ -0,0 +1,69 @@
1
+ # BOOST-005 — Agent Pool + Ollama Connector
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-005 |
8
+ | **Título** | Agent Pool + Ollama Connector |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Alta |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-001 |
13
+ | **Documento** | `docs/00-ARCHITECTURE/OPL-BOOST-MULTI-AGENT.md` |
14
+
15
+ ## Descripción
16
+
17
+ Infraestructura que permite a OPL llamar a modelos locales vía Ollama. El Agent Pool gestiona una cola de solicitudes, maneja reintentos, timeouts y formatea los prompts según el rol del agente. Es el núcleo que permite el modelo de orquestación interna (Modelo A).
18
+
19
+ ## Criterios de Aceptación
20
+
21
+ ### CA-1: Conector Ollama
22
+ - [x] `callOllama(prompt, options)` → llama a `http://localhost:11434/api/generate`
23
+ - [x] Soporta: `model`, `temperature`, `maxTokens`, `stream` (false por defecto)
24
+ - [x] Timeout configurable (default: 30s)
25
+ - [x] Manejo de errores: conexión rechazada, timeout, respuesta inválida
26
+
27
+ ### CA-2: Pool de agentes
28
+ - [x] `AgentPool` clase que mantiene cola de solicitudes
29
+ - [x] `pool.submit(role, input, profile)` → encola y retorna promesa
30
+ - [x] Modo cola: una solicitud a la vez (FIFO)
31
+ - [x] Modo paralelo: múltiples solicitudes simultáneas (configurable via perfil)
32
+
33
+ ### CA-3: Formateo de prompts por rol
34
+ - [x] `buildPrompt(role, input)` → arma el prompt según el rol del agente
35
+ - [x] Roles iniciales: `types`, `state`, `logic`, `cleaner`, `validate`
36
+ - [x] Cada rol tiene: system prompt + template de input + formato de output esperado
37
+
38
+ ### CA-4: Detección de Ollama
39
+ - [x] `checkOllama()` → verifica si Ollama está corriendo
40
+ - [x] `listModels()` → lista modelos disponibles en Ollama
41
+ - [x] `selectBestModel(profile)` → selecciona el mejor modelo según perfil
42
+
43
+ ### CA-5: Integración con perfil
44
+ - [x] Lee configuración de `profile.agentPool` (mode, modelName, temperature)
45
+ - [x] Si Ollama no está disponible, falla graceful con mensaje claro
46
+
47
+ ### CA-6: Tests
48
+ - [ ] Test de formateo de prompts por rol
49
+ - [ ] Test de cola FIFO
50
+ - [ ] Test de timeout y errores
51
+ - [ ] Test de detección de Ollama (mock)
52
+
53
+ ## Archivos
54
+
55
+ | Archivo | Acción |
56
+ |---------|--------|
57
+ | `src/boost/agent-pool.js` | ➕ Crear (conector + pool + prompts) |
58
+ | `src/boost/agents/agent-types.js` | ➕ Crear |
59
+ | `src/boost/agents/agent-state.js` | ➕ Crear |
60
+ | `src/boost/agents/agent-logic.js` | ➕ Crear |
61
+ | `src/boost/agents/agent-validate.js` | ➕ Crear |
62
+ | `src/boost/agents/agent-cleaner.js` | ➕ Crear |
63
+ | `src/boost/agents/index.js` | ➕ Crear (export unificado) |
64
+
65
+ ## Notas
66
+
67
+ - Node 18+ tiene `fetch` nativo — no necesita dependencias externas
68
+ - La URL de Ollama es configurable via `OLLAMA_HOST` env var (default: `http://localhost:11434`)
69
+ - Los prompts deben ser cortos (< 500 chars) para que quepan en contexto small
@@ -0,0 +1,53 @@
1
+ # BOOST-006 — Agentes Especializados (Types, State, Logic, Cleaner, Validate)
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-006 |
8
+ | **Título** | Agentes Especializados |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Alta |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-005 |
13
+ | **Archivos** | `src/boost/agents/index.js`, `src/boost/agent-pool.js` |
14
+
15
+ ## Descripción
16
+
17
+ Registro de agentes especializados que envuelven los prompts del Agent Pool (BOOST-005) con lógica de validación y parseo de output. Cada agente tiene un rol específico en el pipeline de generación de código.
18
+
19
+ ## Implementación
20
+
21
+ Los 5 agentes están implementados en `src/boost/agents/index.js`:
22
+
23
+ | Rol | ID | Validación |
24
+ |-----|-----|-----------|
25
+ | **Type Designer** | `types` | Output debe contener `interface` o `type ` |
26
+ | **State Architect** | `state` | Output debe contener `useState`, `useEffect`, o `useReducer` |
27
+ | **Logic Implementer** | `logic` | Output debe tener más de 50 caracteres |
28
+ | **Context Cleaner** | `cleaner` | Output debe ser más corto que el input |
29
+ | **Code Validator** | `validate` | Output debe tener más de 20 caracteres |
30
+
31
+ ## Criterios de Aceptación
32
+
33
+ ### CA-1: Agentes registrados
34
+ - [x] 5 roles definidos en `AGENTS` registry: types, state, logic, cleaner, validate
35
+ - [x] Cada agente exporta: `role`, `label`, `description`, `buildPrompt`, `validateOutput`, `parseOutput`
36
+ - [x] `getAgent(role)` → obtiene agente por ID
37
+ - [x] `listAgents()` → lista todos los agentes disponibles
38
+
39
+ ### CA-2: Validación de output
40
+ - [x] `validateOutput(text)` → verifica que el output tenga sentido para el rol
41
+ - [x] Si un agente produce output inválido, se puede reintentar
42
+ - [x] Validación específica por tipo de agente
43
+
44
+ ### CA-3: Tests
45
+ - [ ] Test unitario para cada agente
46
+ - [ ] Test de validación de output
47
+ - [ ] Test que `getAgent` falla con rol desconocido
48
+
49
+ ## Notas
50
+
51
+ - Los prompts de sistema viven en `agent-pool.js` (buildPrompt), el registry en `agents/index.js`
52
+ - Cada agente usa `buildPrompt(role, input)` del Agent Pool
53
+ - No hay archivos individuales por agente — todo está en el registry centralizado con agent-pool.js
@@ -0,0 +1,56 @@
1
+ # BOOST-007 — Validation Loop + Agent Validate
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-007 |
8
+ | **Título** | Validation Loop + Agent Validate |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Alta |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-006 |
13
+ | **Archivos** | `src/boost/validation-loop.js` |
14
+
15
+ ## Descripción
16
+
17
+ Sistema post-generación que ejecuta validación OPL y TypeScript sobre el código generado, retroalimentando errores específicos al agente `validate` para que los corrija. Los modelos pequeños son significativamente mejores corrigiendo errores específicos que generando código correcto la primera vez.
18
+
19
+ Si tras N reintentos el código sigue fallando, escala hacia abajo la complejidad.
20
+
21
+ ## Criterios de Aceptación
22
+
23
+ ### CA-1: Validación post-generación
24
+ - [ ] `validate(code, kind)` → ejecuta validación OPL sobre código generado
25
+ - [ ] Detecta: errores de anotaciones, violaciones de @limit, errores de sintaxis
26
+ - [ ] Retorna array de errores con: tipo, mensaje, línea, sugerencia de fix
27
+
28
+ ### CA-2: Feedback loop con agente validate
29
+ - [ ] `feedbackLoop(code, errors, profile)` → itera: feedback → agente validate → re-validar
30
+ - [ ] El feedback dice exactamente qué está mal + sugerencia
31
+ - [ ] Número de reintentos según perfil: small=3, medium=2, large=1
32
+
33
+ ### CA-3: Escalado de complejidad
34
+ - [ ] Si tras reintentos el código sigue fallando, reduce complejidad
35
+ - [ ] Estrategias: simplificar lógica, usar skeleton más básico, dividir en micro-tareas
36
+ - [ ] `escalateDown(task, attempt)` → versión simplificada de la tarea
37
+
38
+ ### CA-4: Reporte de calidad
39
+ - [ ] `generateReport(codeHistory, errors)` → cuántos intentos tomó, qué errores se corrigieron
40
+
41
+ ### CA-5: Tests
42
+ - [ ] Test de detección de errores de anotaciones
43
+ - [ ] Test de feedback loop con mock
44
+ - [ ] Test de escalado tras N reintentos fallidos
45
+
46
+ ## Archivos a crear
47
+
48
+ | Archivo | Acción |
49
+ |---------|--------|
50
+ | `src/boost/validation-loop.js` | ➕ Crear |
51
+
52
+ ## Notas técnicas
53
+
54
+ - La validación OPL se hace invocando `npx openprompt-lang validate` o usando el módulo de validación directamente
55
+ - El feedback loop necesita acceso al modelo vía agent-pool.js para re-generar
56
+ - El escalado de complejidad es determinista (no necesita IA)
@@ -0,0 +1,71 @@
1
+ # BOOST-008 — Orchestrator (Pipeline Unificado)
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-008 |
8
+ | **Título** | Orchestrator — Pipeline Unificado |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Alta |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-007 |
13
+ | **Archivos** | `src/boost/orchestrator.js`, `src/boost/task-dispatcher.js`, `src/boost/index.js` |
14
+
15
+ ## Descripción
16
+
17
+ Orquestador multi-etapa que coordina todos los componentes Boost en un flujo coherente. Incluye el **Task Dispatcher** que descompone tareas en un DAG de pasos con dependencias, y el **Orchestrator** que ejecuta el pipeline completo.
18
+
19
+ El pipeline completo:
20
+ 1. **Profile detect** → carga perfil activo
21
+ 2. **Context compress** → reduce contexto según perfil
22
+ 3. **Few-shot retrieve** → busca ejemplos relevantes
23
+ 4. **Task dispatch** → descompone en DAG
24
+ 5. **Agent pool execute** → ejecuta agentes según dependencias
25
+ 6. **Hydrate** → ensambla código final (usa BOOST-003)
26
+ 7. **Validate loop** → corrige errores (usa BOOST-007)
27
+ 8. **Output** → código listo
28
+
29
+ ## Criterios de Aceptación
30
+
31
+ ### CA-1: Task Dispatcher (DAG)
32
+ - [ ] `plan(task, kind)` → devuelve DAG con nodos y dependencias
33
+ - [ ] Nodos sin dependencias → paralelo; con dependencias → secuencial
34
+ - [ ] DAG serializable a JSON para cache/debug
35
+ - [ ] Soporta: hooks, components, pages, services, stores
36
+
37
+ ### CA-2: Orchestrator unificado
38
+ - [ ] `boost(task, options)` → orquesta pipeline completo
39
+ - [ ] `options.profile` → perfil a usar
40
+ - [ ] `options.kind` → tipo de archivo
41
+ - [ ] `options.dryRun` → mostrar plan sin ejecutar
42
+ - [ ] `options.output` → archivo de salida
43
+ - [ ] Retorna: `{ code, metadata, report }`
44
+
45
+ ### CA-3: Metadata de ejecución
46
+ - [ ] `{ profile, stages: [{name, duration, result}], totalTime, compressionRatio, validationAttempts }`
47
+ - [ ] Exportable como JSON para diagnóstico
48
+
49
+ ### CA-4: Modo dry-run
50
+ - [ ] `boost(task, { dryRun: true })` → muestra DAG, skeletons, ejemplos sin ejecutar
51
+
52
+ ### CA-5: Tests
53
+ - [ ] Test de planificación DAG para cada @kind
54
+ - [ ] Test de pipeline completo con mock de modelo
55
+ - [ ] Test de dry-run
56
+ - [ ] Test de metadata de ejecución
57
+
58
+ ## Archivos a crear
59
+
60
+ | Archivo | Acción |
61
+ |---------|--------|
62
+ | `src/boost/orchestrator.js` | ➕ Crear (pipeline unificado) |
63
+ | `src/boost/task-dispatcher.js` | ➕ Crear (DAG planner) |
64
+ | `src/boost/index.js` | ➕ Crear (API público del módulo) |
65
+
66
+ ## Notas técnicas
67
+
68
+ - El `index.js` es el API público del módulo Boost (`import { boost } from './boost/index.js'`)
69
+ - Cada etapa del pipeline se puede ejecutar independientemente
70
+ - Si una etapa falla, el pipeline devuelve error con estado parcial
71
+ - Los tiempos de cada etapa se registran para diagnóstico
@@ -0,0 +1,56 @@
1
+ # BOOST-009 — Cache System
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-009 |
8
+ | **Título** | Cache System para Boost |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Media |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-008 |
13
+ | **Archivos** | `src/boost/cache.js` |
14
+
15
+ ## Descripción
16
+
17
+ Sistema de caché para resultados parciales de agentes Boost. Evita re-ejecutar agentes cuando el mismo input ya fue procesado, ahorrando tiempo y recursos.
18
+
19
+ ## Criterios de Aceptación
20
+
21
+ ### CA-1: Caché por clave/valor
22
+ - [ ] `cache.get(key)` → obtiene valor cacheado
23
+ - [ ] `cache.set(key, value, ttl)` → guarda valor con TTL
24
+ - [ ] `cache.has(key)` → verifica si existe y no ha expirado
25
+ - [ ] `cache.delete(key)` → elimina entrada
26
+ - [ ] `cache.clear()` → limpia toda la caché
27
+
28
+ ### CA-2: Claves de caché predefinidas
29
+ | Clave | TTL | Beneficio |
30
+ |-------|-----|-----------|
31
+ | `compress:{task.kind}` | 1 hora | No re-comprimir contexto |
32
+ | `fewshot:{kind}:{domain}` | 1 día | No re-buscar ejemplos |
33
+ | `agent:{role}:{input_hash}` | 5 min | No re-ejecutar mismo input |
34
+ | `dag:{task_hash}` | 5 min | No re-planificar tarea igual |
35
+
36
+ ### CA-3: Persistencia
37
+ - [ ] Caché en disco: `.opencode/boost/cache/`
38
+ - [ ] Limpieza automática al expirar TTL
39
+ - [ ] `opl boost cache clear` → comando para limpiar manualmente
40
+
41
+ ### CA-4: Tests
42
+ - [ ] Test de set/get/delete/clear
43
+ - [ ] Test de expiración por TTL
44
+ - [ ] Test de persistencia en disco
45
+
46
+ ## Archivos a crear
47
+
48
+ | Archivo | Acción |
49
+ |---------|--------|
50
+ | `src/boost/cache.js` | ➕ Crear |
51
+
52
+ ## Notas técnicas
53
+
54
+ - Implementación simple: archivos JSON en `.opencode/boost/cache/`
55
+ - Hash de input: `crypto.createHash('md5').update(input).digest('hex')`
56
+ - No necesita dependencias externas
@@ -0,0 +1,67 @@
1
+ # BOOST-010 — CLI + MCP Integration Completa
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-010 |
8
+ | **Título** | CLI + MCP Integration |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Media |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-008, BOOST-009 |
13
+ | **Archivos** | `src/cli/commands-boost.js`, `src/mcp-server.js`, `AGENTS.md` |
14
+
15
+ ## Descripción
16
+
17
+ Integrar el módulo Boost completo con la CLI de OPL (comandos `opl boost *`) y el servidor MCP (tools `OPL_Boost_*`). También actualizar AGENTS.md con la sección Boost Workflow.
18
+
19
+ ## Estado Actual
20
+
21
+ ✅ **Implementado:**
22
+ - `opl boost check` → diagnóstico del perfil activo
23
+ - `opl boost profile [name]` → ver/forzar perfil (small/medium/large/auto)
24
+ - `opl boost setup` → detección de hardware + configuración interactiva
25
+
26
+ 🔴 **Pendiente:**
27
+ - `opl boost generate` → generar código con pipeline completo
28
+ - `opl boost microtask` → descomponer tarea en micro-tareas
29
+ - MCP tools: `OPL_Boost_generate`, `OPL_Boost_compress`, `OPL_Boost_profile`
30
+ - Sección Boost en AGENTS.md
31
+ - Tests de integración
32
+
33
+ ## Criterios de Aceptación
34
+
35
+ ### CA-1: CLI completa
36
+ - [x] `opl boost check` → diagnóstico
37
+ - [x] `opl boost profile [name]` → ver/forzar perfil
38
+ - [x] `opl boost setup` → detección de hardware
39
+ - [ ] `opl boost generate <desc>` → generar código con pipeline
40
+ - [ ] `opl boost microtask <task>` → descomponer en micro-tareas
41
+ - [ ] Todos los comandos tienen `--help` descriptivo
42
+
43
+ ### CA-2: MCP tools Boost
44
+ - [ ] `OPL_Boost_profile` → mostrar perfil actual
45
+ - [ ] `OPL_Boost_compress` → comprimir contexto
46
+ - [ ] `OPL_Boost_generate` → generar código completo
47
+ - [ ] `OPL_Boost_microtask` → descomponer tarea
48
+ - [ ] Tools registradas en `src/mcp-refactor/tools.js`
49
+
50
+ ### CA-3: AGENTS.md
51
+ - [ ] Nueva sección Boost con: qué es, perfiles, comandos, workflow
52
+ - [ ] Tabla de perfiles (small/medium/large)
53
+ - [ ] Referencia rápida de comandos
54
+
55
+ ### CA-4: Tests
56
+ - [ ] Test de CLI: todos los comandos funcionan
57
+ - [ ] Test de MCP: tools registradas correctamente
58
+ - [ ] Test que todos los comandos tienen `--help`
59
+ - [ ] Test de integración: pipeline CLI → MCP
60
+
61
+ ## Archivos a crear/modificar
62
+
63
+ | Archivo | Acción |
64
+ |---------|--------|
65
+ | `src/cli/commands-boost.js` | ✏️ Completar generate y microtask |
66
+ | `src/mcp-refactor/tools.js` | ✏️ Agregar Boost tools |
67
+ | `AGENTS.md` | ✏️ Agregar sección Boost |
@@ -0,0 +1,50 @@
1
+ # BOOST-011 — Auto-aprendizaje entre Sesiones
2
+
3
+ ## Metadatos
4
+
5
+ | Campo | Valor |
6
+ |-------|-------|
7
+ | **ID** | BOOST-011 |
8
+ | **Título** | Auto-aprendizaje entre sesiones |
9
+ | **Épica** | Módulo OPL Boost |
10
+ | **Prioridad** | Baja |
11
+ | **Estado** | ✅ Completado |
12
+ | **Depende de** | BOOST-010 |
13
+ | **Archivos** | `src/boost/self-learn.js` |
14
+
15
+ ## Descripción
16
+
17
+ Sistema que registra métricas de cada ejecución Boost (qué perfil, cuántos reintentos, qué errores, cuánto tiempo) y las usa para mejorar automáticamente la configuración para futuras sesiones. Si un perfil consistentemente falla, Boost recomienda cambiar a un perfil más conservador.
18
+
19
+ ## Criterios de Aceptación
20
+
21
+ ### CA-1: Registro de métricas
22
+ - [ ] Cada ejecución guarda: `{ timestamp, profile, kind, duration, attempts, errors, success }`
23
+ - [ ] Almacenamiento en `.opencode/boost/metrics.json`
24
+ - [ ] Máximo 1000 entradas (rotación automática)
25
+
26
+ ### CA-2: Recomendaciones automáticas
27
+ - [ ] Si perfil `large` falla >3 veces seguidas → recomienda bajar a `medium`
28
+ - [ ] Si validación toma >5 intentos → recomienda activar template hydration
29
+ - [ ] Las recomendaciones se muestran en `opl boost check`
30
+
31
+ ### CA-3: Integración con profile-registry
32
+ - [ ] `autoProfile()` → ajusta perfil basado en historial
33
+ - [ ] El ajuste se puede aceptar o rechazar
34
+
35
+ ### CA-4: Tests
36
+ - [ ] Test de registro de métricas
37
+ - [ ] Test de recomendaciones automáticas
38
+ - [ ] Test de rotación de historial
39
+
40
+ ## Archivos a crear
41
+
42
+ | Archivo | Acción |
43
+ |---------|--------|
44
+ | `src/boost/self-learn.js` | ➕ Crear |
45
+
46
+ ## Notas técnicas
47
+
48
+ - Baja prioridad — puede esperar a que el resto del módulo esté estable
49
+ - Las métricas se registran desde el orchestrator (BOOST-008)
50
+ - Las recomendaciones son no intrusivas: solo se muestran, no se aplican automáticamente