openprompt-lang 1.2.6 → 1.3.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 (43) hide show
  1. package/README.md +62 -8
  2. package/docs/EMBEDDINGS.md +214 -0
  3. package/docs/FRAMEWORK.md +52 -0
  4. package/docs/ONBOARDING_WORKFLOW.md +151 -0
  5. package/docs/OPL-ERRORES.md +504 -0
  6. package/docs/OPL_ACADEMIC_ISSUES.md +158 -0
  7. package/docs/WEB_SCRAPER_PLAN.md +454 -0
  8. package/package.json +7 -1
  9. package/scripts/postinstall.js +37 -0
  10. package/src/cli/commands-knowledge.js +1 -0
  11. package/src/cli/commands-opl.js +79 -1
  12. package/src/cli/commands-work.js +3 -1
  13. package/src/cli/commands-workflow.js +125 -6
  14. package/src/commands/init-core.js +188 -12
  15. package/src/commands/init-existing.js +13 -6
  16. package/src/commands/init-helpers.js +20 -14
  17. package/src/commands/knowledge-ops.js +52 -0
  18. package/src/commands/opl-embeddings.js +556 -0
  19. package/src/commands/opl-help.js +26 -2
  20. package/src/commands/opl-search.js +106 -2
  21. package/src/commands/opl-webscrape.js +390 -0
  22. package/src/commands/work-context.js +17 -0
  23. package/src/commands/workflow/close/index.js +2 -1
  24. package/src/commands/workflow/delivery/index.js +4 -0
  25. package/src/commands/workflow/discovery/index.js +4 -0
  26. package/src/commands/workflow/epic-cli.js +192 -0
  27. package/src/commands/workflow/select.js +146 -0
  28. package/src/commands/workflow/specification/index.js +4 -0
  29. package/src/commands/workflow/sprint-cli.js +174 -0
  30. package/src/core/engine/sandbox.js +7 -3
  31. package/src/core/webscrape/analyzer.js +481 -0
  32. package/src/core/webscrape/deep-scraper.js +1027 -0
  33. package/src/core/workflow/epic-manager.js +845 -0
  34. package/src/core/workflow/gates.js +180 -1
  35. package/src/core/workflow/selector.js +707 -0
  36. package/src/embeddings/chunker.js +450 -0
  37. package/src/embeddings/embedder.js +431 -0
  38. package/src/embeddings/index-pipeline.js +320 -0
  39. package/src/embeddings/vector-store.js +505 -0
  40. package/src/mcp-plan-server.js +12 -5
  41. package/src/mcp-shared-state.js +25 -0
  42. package/src/mcp-refactor/mcp-server.js +0 -171
  43. package/src/mcp-server-backup.js +0 -1913
package/README.md CHANGED
@@ -30,6 +30,25 @@ Guarda conceptos visuales o técnicos para que la IA los entienda como tú los e
30
30
  ### Repositorio de Conocimiento (Knowledge)
31
31
  Almacena, indexa y procesa documentos PDF y fuentes web técnicas. Detecta capítulos automáticamente y los divide en secciones de lectura rápida para que la IA los use. Incluye **33 libros y guías pre-empaquetados** (JavaScript, TypeScript, Rust, React, Node.js, Python, Scrum, accesibilidad, algoritmos, API de pagos, etc.) accesibles sin configuración previa vía MCP (`knowledge_search`, `knowledge_list`, `knowledge_read`, `knowledge_concept`) o CLI (`knowledge search`, `knowledge sync --all`). Genera automáticamente `.openprompt/FRAMEWORK.md` con el manual operativo restrictivo para la IA.
32
32
 
33
+ ### Búsqueda Semántica por Embeddings (Vector Search)
34
+ Reemplaza el mapa semántico manual con vectores numéricos generados por IA local. Divide documentos en chunks semánticos, los convierte en vectores (768d con Ollama o 384d con Transformers.js), y busca por similitud de coseno. Incluye un pipeline completo: chunker (3 estrategias), embedder (Ollama + Transformers.js con auto-fallback), vector store (SQLite + FTS5), y soporte de búsqueda híbrida (FTS5 + reordenamiento semántico). Se integra con `opl search --mode vector` y el indexado automático tras la ingesta de PDFs.
35
+
36
+ **Requisitos:**
37
+ - **Primario**: [Ollama](https://ollama.com) con `ollama pull nomic-embed-text` (recomendado)
38
+ - **Fallback**: `@xenova/transformers` (incluido como dependencia opcional, se activa automáticamente si Ollama no está disponible)
39
+
40
+ **Comandos:**
41
+ ```bash
42
+ opl embeddings status # Ver estado del índice vectorial
43
+ opl embeddings index <docId> # Indexar un documento
44
+ opl embeddings remove <docId> # Eliminar embeddings
45
+ opl embeddings config # Ver/configurar proveedor
46
+ opl search "consulta" --mode vector # Búsqueda semántica
47
+ opl search "consulta" --mode hybrid # Híbrido (incluye vectorial)
48
+ opl webscrape <url> --domain frontend # Scrapear web e indexar
49
+ knowledge ingest doc.pdf # Ingesta PDF + auto-embedding
50
+ ```
51
+
33
52
  ### IA Local (Local Setup)
34
53
  Configura un entorno de desarrollo completamente local y desconectado. Prepara la integración con modelos locales en Ollama (como Llama 3 o Qwen 2.5 Coder) y la suite de herramientas OpenCode, permitiendo trabajar sin internet ni costos de API, pero manteniendo el 100% de la precisión del framework.
35
54
 
@@ -582,6 +601,25 @@ openPrompt-Lang component list --validated
582
601
  | `openPrompt-Lang knowledge rebuild` | Reconstruye el índice general desde metadatos individuales |
583
602
  | `openPrompt-Lang knowledge sync [--all]` | Sincroniza libros de la biblioteca empaquetada al proyecto local |
584
603
  | `openPrompt-Lang local-setup` | Configura integración con IA local (Ollama + OpenCode) |
604
+ | `opl workflow select <desc>` | Selecciona workflow óptimo según descripción de la tarea (usar SIEMPRE primero) |
605
+ | `opl workflow delivery` | Inicia desarrollo por tickets (E.3) |
606
+ | `opl workflow close` | Cierra sesión activa y genera reporte (E.4) |
607
+ | `opl epic create --title "..." --desc "..."` | Crea épica con tickets generados automáticamente |
608
+ | `opl epic list` | Lista épicas con métricas de progreso |
609
+ | `opl epic show <id>` | Muestra detalle de épica y sus tickets |
610
+ | `opl epic close <id>` | Cierra épica |
611
+ | `opl sprint create <name> --goal "..."` | Crea sprint con duración configurable |
612
+ | `opl sprint list` | Lista sprints con métricas |
613
+ | `opl sprint plan <id> --capacity N` | Planifica sprint automáticamente desde épicas activas |
614
+ | `opl sprint close <id>` | Cierra sprint |
615
+ | `opl ticket create --title "..." --severity ...` | Crea ticket de bug/tarea |
616
+ | `opl ticket list` | Lista tickets del proyecto |
617
+ | `opl ticket close <id>` | Cierra ticket como fixed |
618
+ | `opl embeddings status` | Ver estado del índice vectorial semántico |
619
+ | `opl embeddings index <docId>` | Indexa un documento en el vector store |
620
+ | `opl embeddings remove <docId>` | Elimina embeddings de un documento |
621
+ | `opl embeddings config` | Ver/configurar proveedor de embeddings |
622
+ | `opl webscrape <url>` | Extrae contenido web y lo indexa en knowledge + embeddings |
585
623
 
586
624
  ### Base de Conocimiento Empaquetada
587
625
 
@@ -1128,17 +1166,33 @@ El **Work Context** es un sistema integrado de trazabilidad obligatoria que regi
1128
1166
  | `openPrompt-Lang work-context check` | Verifica consistencia del work-context: valida que `SESSION.json` exista y tenga estructura correcta, detecta sesiones activas olvidadas (>24h), confirma que los planes referenciados existen en disco, valida que `LOG.json` sea un array válido |
1129
1167
  | `validate --work-context` | Incluye la verificación de work-context dentro del pipeline de validación estándar |
1130
1168
 
1131
- ### Flujo de trabajo obligatorio
1169
+ ### Flujo de trabajo obligatorio (v1.3.0)
1132
1170
 
1133
- La IA debe seguir este ciclo en **cada sesión de trabajo**:
1171
+ La IA debe seguir este ciclo en **cada sesión de trabajo**. No hay excepciones:
1134
1172
 
1135
1173
  ```
1136
- 1. CONTEXT.md + SESSION.json restaurar estado o iniciar nuevo
1137
- 2. ANALYZE request → clasificar tipo de tarea
1138
- 3. PLAN`work-context plan new <name> --task "<desc>"` → PLANS/, log en LOG
1139
- 4. VALIDATE plan → contra @kind, @contract, @limit
1140
- 5. IMPLEMENT codificar, log cada acción
1141
- 6. VALIDATE código validate + validate --work-context
1174
+ 1. workflow_select "opl workflow select <descripción>"
1175
+ La IA describe su tarea, el sistema selecciona workflow óptimo
1176
+ 2. create_ticket "opl ticket create --title ... --severity ..."
1177
+ TODO cambio requiere ticket ANTES de implementar
1178
+ 3. → check_gates → workflow_selected ✓, ticket_created ✓, plan_approved ✓
1179
+ 4. work_context_plan Planificar usando work-context con búsqueda de conocimiento
1180
+ 5. → implement → Codificar con anotaciones OPL primero (@kind → @contract → @limit)
1181
+ 6. → validate → "opl validate" antes de cerrar
1182
+ 7. → docs_updated → Actualizar documentación (OBLIGATORIO antes de cerrar)
1183
+ 8. → work_context_close → Cerrar sesión y generar reporte
1184
+ ```
1185
+
1186
+ **Reglas inquebrantables:**
1187
+ - **Regla #1**: `workflow select` primero — Sin workflow seleccionado no hay implementación
1188
+ - **Regla #2**: `ticket create` antes de código — Sin ticket no se escribe código
1189
+ - **Regla #3**: `docs_updated` antes de cerrar — Sin documentación actualizada no se cierra sesión
1190
+
1191
+ El sistema de gates (`workflow_selected`, `ticket_created`, `plan_approved`, `docs_updated`)
1192
+ bloquea herramientas automáticamente si no se cumplen los prerrequisitos (configurable en
1193
+ `prompt-lang.json` → `workflow.enforcement`).
1194
+
1195
+ Ver también: `AGENTS.md` para instrucciones detalladas de cada paso.
1142
1196
  7. INTEGRATE → actualizar AGENTS.md si toca
1143
1197
  8. LEARN + REFERENCES.md → checklist de referencias seguras
1144
1198
  9. CLOSE → reporte, métricas finales
@@ -0,0 +1,214 @@
1
+ # Sistema de Embeddings Vectoriales
2
+
3
+ ## 📋 Overview
4
+
5
+ openPrompt-Lang ahora soporta búsqueda semántica vectorial. En lugar de depender solo de coincidencia de palabras clave (tags, fulltext) o un mapa semántico manual, los documentos se dividen en **chunks semánticos**, cada chunk se convierte en un **vector embedding**, y las consultas se resuelven por **similitud de coseno**.
6
+
7
+ ## 🏗️ Arquitectura
8
+
9
+ ```
10
+ Documento (opl format)
11
+
12
+
13
+ ┌─────────────────┐
14
+ │ chunker.js │ Divide: paragraph | section | fixed
15
+ └────────┬────────┘
16
+ │ chunks[]
17
+
18
+ ┌─────────────────┐
19
+ │ embedder.js │ Vectoriza: Ollama | Transformers.js | auto-fallback
20
+ └────────┬────────┘
21
+ │ vectors[]
22
+
23
+ ┌─────────────────────┐
24
+ │ vector-store.js │ Almacena + busca en SQLite
25
+ │ (embeddings table) │
26
+ └────────┬────────────┘
27
+ │ search(queryVector)
28
+
29
+ ┌─────────────────┐
30
+ │ index-pipeline │ Orquestador: chunk → embed → store
31
+ └─────────────────┘
32
+ ```
33
+
34
+ ## 📦 Módulos
35
+
36
+ | Módulo | Archivo | Responsabilidad |
37
+ |--------|---------|----------------|
38
+ | Chunker | `src/embeddings/chunker.js` | Divide documentos en chunks semánticos |
39
+ | Embedder | `src/embeddings/embedder.js` | Genera vectores numéricos (embeddings) |
40
+ | Vector Store | `src/embeddings/vector-store.js` | Almacena/consulta vectores en SQLite |
41
+ | Index Pipeline | `src/embeddings/index-pipeline.js` | Orquesta chunk → embed → store |
42
+
43
+ ## 🔧 Comandos CLI
44
+
45
+ ### `opl embeddings index <docId>`
46
+
47
+ Indexa un documento en el vector store.
48
+
49
+ ```bash
50
+ opl embeddings index react-fullstack-app
51
+ opl embeddings index react-fullstack-app --strategy paragraph
52
+ opl embeddings index react-fullstack-app --provider transformers
53
+ opl embeddings index react-fullstack-app --dry-run # simular sin persistir
54
+ opl embeddings index react-fullstack-app --resume # saltar chunks existentes
55
+ ```
56
+
57
+ ### `opl embeddings status`
58
+
59
+ Muestra el estado actual del índice vectorial.
60
+
61
+ ```bash
62
+ opl embeddings status
63
+ # 📊 Estado del índice de embeddings
64
+ # Chunks indexados: 245
65
+ # Documentos: 12
66
+ # Dimensión: 768
67
+ # Modelo: nomic-embed-text
68
+ # Último indexado: 2026-05-24 20:00:00
69
+ # Almacenamiento: 1.2 MB
70
+ ```
71
+
72
+ ### `opl embeddings remove <docId>`
73
+
74
+ Elimina todos los embeddings de un documento.
75
+
76
+ ```bash
77
+ opl embeddings remove react-fullstack-app
78
+ ```
79
+
80
+ ### `opl embeddings config`
81
+
82
+ Ver o cambiar el proveedor de embeddings.
83
+
84
+ ```bash
85
+ opl embeddings config # ver estado
86
+ opl embeddings config --provider transformers # cambiar a transformers
87
+ opl embeddings config --provider ollama # cambiar a ollama
88
+ ```
89
+
90
+ ### `opl search --mode vector <query>`
91
+
92
+ Búsqueda semántica con embeddings.
93
+
94
+ ```bash
95
+ opl search "autenticacion react" --mode vector # solo vectorial
96
+ opl search "pagos chile" --mode hybrid # híbrido incluye vector
97
+ ```
98
+
99
+ ## 🧠 Proveedores de Embeddings
100
+
101
+ ### Ollama (primario, default)
102
+
103
+ - **Modelo**: `nomic-embed-text` (768 dimensiones)
104
+ - **URL**: `http://localhost:11434`
105
+ - **Requisito**: `ollama pull nomic-embed-text`
106
+ - **Ventaja**: Local, rápido, gratuito
107
+
108
+ ### Transformers.js (fallback)
109
+
110
+ - **Modelo**: `Xenova/all-MiniLM-L6-v2` (384 dimensiones)
111
+ - **Requisito**: `npm install @xenova/transformers`
112
+ - **Ventaja**: No requiere servidor externo
113
+
114
+ ### Auto-fallback
115
+
116
+ El embedder intenta Ollama primero. Si no está disponible, cae automáticamente a Transformers.js. Si ningún proveedor funciona, lanza un error instructivo.
117
+
118
+ ## 📐 Estrategias de Chunking
119
+
120
+ | Estrategia | Descripción | Cuándo usarla |
121
+ |------------|-------------|---------------|
122
+ | `section` (default) | Divide por `##` respetando títulos | Documentos con estructura clara |
123
+ | `paragraph` | Divide por doble salto de línea | Documentos sin estructura jerárquica |
124
+ | `fixed` | Divide por tamaño fijo con solapamiento | Documentos sin estructura detectada |
125
+
126
+ ## 🔍 Búsqueda Híbrida
127
+
128
+ `hybridSearch` combina FTS5 (texto completo) con reordenamiento semántico:
129
+
130
+ 1. **FTS5**: Busca palabras clave en el índice de texto completo
131
+ 2. **Coseno**: Reordena los candidatos por similitud semántica
132
+
133
+ Esto da lo mejor de ambos mundos: precisión de FTS + semántica de embeddings.
134
+
135
+ ## 💾 Esquema SQLite
136
+
137
+ ```sql
138
+ CREATE TABLE IF NOT EXISTS embeddings (
139
+ id TEXT PRIMARY KEY,
140
+ doc_id TEXT NOT NULL,
141
+ doc_title TEXT NOT NULL DEFAULT '',
142
+ chapter_idx INTEGER NOT NULL DEFAULT 0,
143
+ chapter_title TEXT NOT NULL DEFAULT '',
144
+ chunk_idx INTEGER NOT NULL DEFAULT 0,
145
+ content TEXT NOT NULL,
146
+ vector BLOB NOT NULL,
147
+ dimension INTEGER NOT NULL DEFAULT 768,
148
+ tokens INTEGER NOT NULL DEFAULT 0,
149
+ model TEXT NOT NULL DEFAULT '',
150
+ strategy TEXT NOT NULL DEFAULT 'section',
151
+ metadata TEXT NOT NULL DEFAULT '{}',
152
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
153
+ );
154
+
155
+ CREATE VIRTUAL TABLE IF NOT EXISTS embeddings_fts USING fts5(
156
+ content,
157
+ content=embeddings,
158
+ content_rowid=rowid
159
+ );
160
+ ```
161
+
162
+ Los vectores se serializan como BLOB de Float32Array (4 bytes por float).
163
+
164
+ ## 📊 Límites de Escalabilidad
165
+
166
+ | Métrica | Límite actual | Estrategia futura |
167
+ |---------|--------------|-------------------|
168
+ | Chunks totales | ~5000 | Búsqueda lineal OK |
169
+ | Chunks > 100k | Podría ser lento | Índice HNSW |
170
+ | Dimensión vectores | 768 (Ollama) / 384 (Transformers) | Cualquier dimensión |
171
+ | Latencia búsqueda | < 50ms en 5000 chunks | Indexación en lote |
172
+
173
+ ## ✅ Tests
174
+
175
+ ```bash
176
+ npx vitest run tests/embeddings/ # 87 tests, 4 suites
177
+ ```
178
+
179
+ | Suite | Tests | Cubre |
180
+ |-------|-------|-------|
181
+ | `chunker.test.js` | 20 | Estrategias, límites, edge cases |
182
+ | `embedder.test.js` | 23 | Proveedores, fallback, errores |
183
+ | `vector-store.test.js` | 30 | CRUD, búsqueda, FTS5, híbrida |
184
+ | `index-pipeline.test.js` | 14 | Pipeline completo, reindex, batch |
185
+
186
+ ## 🔗 Integración con OPL Search
187
+
188
+ El modo `--mode vector` en `opl search`:
189
+ 1. Toma la consulta del usuario
190
+ 2. La convierte a vector con `embed()`
191
+ 3. Busca en el vector store con `hybridSearch()`
192
+ 4. Mapea chunks a documentos y muestra resultados
193
+
194
+ El modo `--mode hybrid` incluye los resultados vectoriales junto con tags, fulltext y semántico.
195
+
196
+ ## ⚡ Auto-embedding
197
+
198
+ Cuando se ingesta un PDF con `knowledge ingest`, se genera automáticamente el embedding del documento. Para saltar este paso:
199
+
200
+ ```bash
201
+ knowledge ingest mi-documento.pdf --no-embed
202
+ ```
203
+
204
+ ## 🚀 Roadmap
205
+
206
+ - [x] Chunker (3 estrategias)
207
+ - [x] Embedder (Ollama + Transformers.js)
208
+ - [x] Vector Store (SQLite + FTS5)
209
+ - [x] Index Pipeline
210
+ - [x] CLI: `opl embeddings index/status/remove/config`
211
+ - [x] Modo vector en `opl search`
212
+ - [x] Auto-embedding en `knowledge ingest`
213
+ - [ ] Web scraper (`opl webscrape`)
214
+ - [ ] Onboarding workflow en `opl init`
package/docs/FRAMEWORK.md CHANGED
@@ -186,6 +186,37 @@ npx openPrompt-Lang work-context learn
186
186
  npx openPrompt-Lang work-context report
187
187
  ```
188
188
 
189
+ ### Plan y Modo (Planificación Ágil)
190
+ ```
191
+ opl plan → Cambiar a modo PLAN (bloquea tools de escritura)
192
+ opl execute → Cambiar a modo EXECUTE (requiere plan aprobado)
193
+ opl mode → Mostrar modo actual (plan/execute)
194
+ opl workflow discovery → E.1 — Wizard de descubrimiento (8 bloques, 29 preguntas)
195
+ opl workflow specification → E.2 — Generar documentos y diagramas Mermaid
196
+ opl workflow delivery → E.3 — Iniciar desarrollo por tickets
197
+ opl workflow close → E.4 — Cerrar sesión y documentar aprendizajes
198
+ ```
199
+
200
+ ### Teaching (Enseñanza Adaptativa)
201
+ ```
202
+ opl teach progress → Dashboard de progreso
203
+ opl teach template <id> → Lección desde template @teachMe
204
+ opl teach assess → Diagnosticar nivel de dominio
205
+ opl teach study → Unidad pedagógica adaptada
206
+ opl teach project-guide → Ruta de aprendizaje con tickets
207
+ ```
208
+
209
+ ### Ticket, Memoria y Diagnóstico
210
+ ```
211
+ opl ticket create --title "..." → Crear ticket de trabajo
212
+ opl ticket list → Listar tickets (--status ready|backlog|done)
213
+ opl ticket close <id> → Cerrar ticket
214
+ opl recall "consulta" → Búsqueda en memoria del proyecto
215
+ opl doctor → Diagnóstico del sistema OPL
216
+ opl fix → Auto-corrección de errores
217
+ opl rebuild → Reconstrucción de configuración
218
+ ```
219
+
189
220
  ### QA, Extracción y AI
190
221
  ```
191
222
  npx openPrompt-Lang qa-gen [--lang L] [--source DIR] [--output DIR] [--dry-run] [--no-scan]
@@ -197,6 +228,12 @@ npx openPrompt-Lang db-rules [--list] [--id ID] [--tag TAG]
197
228
  npx openPrompt-Lang scaffold folders FRAMEWORK [--name N] [--force]
198
229
  ```
199
230
 
231
+ ### MCP Servers
232
+ ```
233
+ npx openPrompt-Lang mcp → Iniciar servidor MCP principal (tools OPL)
234
+ npx openPrompt-Lang mcp-plan → Iniciar servidor MCP de planificación (tools plan_*)
235
+ ```
236
+
200
237
  ### MCP Server
201
238
  ```
202
239
  npx openPrompt-Lang mcp
@@ -234,6 +271,21 @@ npx openPrompt-Lang mcp
234
271
  | `work_context_start` | Iniciar sesión con tracking | `task` (req), `domain?` |
235
272
  | `work_context_status` | Estado actual de la sesión | — |
236
273
  | `work_context_close` | Cerrar sesión y registrar métricas | `summary` (req) |
274
+ | `teach_progress` | Mostrar progreso de aprendizaje | `userId?`, `domain?` |
275
+ | `teach_assess` | Diagnosticar nivel de dominio | `conceptId` (req), `domain?` |
276
+ | `teach_study` | Generar unidad pedagógica adaptada | `conceptId` (req), `level?`, `includeExercises?` |
277
+
278
+ ### Servidor OPL-Plan (tools adicionales)
279
+
280
+ | Herramienta | Descripción | Parámetros |
281
+ |------------|-------------|------------|
282
+ | `plan_recommend_stack` | Analizar proyecto y recomendar stack | `description` (req) |
283
+ | `plan_wizard` | Wizard interactivo de configuración | `project_name` (req), `context` (req) |
284
+ | `plan_create` | Crear plan formal @workflow | `project_name` (req), `language` (req), `stack` (req) |
285
+ | `plan_validate` | Validar que el plan esté completo | `plan_id?` |
286
+ | `plan_status` | Mostrar estado del plan actual | `plan_id?` |
287
+ | `plan_switch_mode` | Cambiar a EXECUTE mode | `plan_id?` |
288
+ | `plan_knowledge_filter` | Filtrar biblioteca por dominio | `domain` (req), `features?` |
237
289
 
238
290
  ## 11. Reglas Estrictas
239
291
 
@@ -0,0 +1,151 @@
1
+ # 🚀 Onboarding Workflow para IA en openPrompt-Lang
2
+
3
+ > **Propósito**: Este documento es el punto de entrada OBLIGATORIO para cualquier sesión de IA
4
+ > en un proyecto que ya tiene elementos de openPrompt-Lang.
5
+ >
6
+ > **Generado por**: `opl init` al finalizar la configuración
7
+ > **Versión del documento**: 1.0.0
8
+ > **Última actualización**: {{fecha}}
9
+
10
+ ---
11
+
12
+ ## 📋 Instrucciones para la IA
13
+
14
+ Al iniciar una sesión en este proyecto, SIGUE ESTE FLUJO ESTRICTAMENTE:
15
+
16
+ ```
17
+ 1. LEER este documento (ONBOARDING_WORKFLOW.md) → entender el estado del proyecto
18
+ 2. LEER AGENTS.md → stack, convenciones, reglas
19
+ 3. LEER docs/AI_CONTEXT.md → memoria del proyecto
20
+ 4. EJECUTAR workflow_check → ver qué pasos del workflow OPL faltan
21
+ 5. EJECUTAR context_unified → panorama completo del proyecto
22
+ 6. CONTINUAR desde el último paso registrado (ver sección "Estado Actual")
23
+ ```
24
+
25
+ ---
26
+
27
+ ## 🔍 Detección Automática de Contexto
28
+
29
+ ### ¿Este proyecto ya tiene OPL?
30
+
31
+ Sí / No (según corresponda)
32
+
33
+ | Elemento | Estado | Ruta |
34
+ |----------|--------|------|
35
+ | `prompt-lang.json` | ✅ / ❌ | `/ruta` |
36
+ | `AGENTS.md` | ✅ / ❌ | `/ruta` |
37
+ | `docs/AI_CONTEXT.md` | ✅ / ❌ | `/ruta` |
38
+ | `docs/FRAMEWORK.md` | ✅ / ❌ | `/ruta` |
39
+ | `src/` con anotaciones | ✅ / ❌ | `/ruta` |
40
+ | `.opencode/` config | ✅ / ❌ | `/ruta` |
41
+ | `.openprompt/` | ✅ / ❌ | `/ruta` |
42
+ | `knowledge-repo/` | ✅ / ❌ | `/ruta` |
43
+ | Base de conocimiento | ✅ / ❌ | `/ruta` |
44
+ | Sistema de enseñanza | ✅ / ❌ | `/ruta` |
45
+
46
+ ---
47
+
48
+ ## 🧩 Stack del Proyecto
49
+
50
+ | Componente | Valor |
51
+ |------------|-------|
52
+ | **Framework** | React / Vue / Node.js / Spring Boot |
53
+ | **Lenguaje** | TypeScript / JavaScript / Java |
54
+ | **UI** | Tailwind / shadcn / Mantine / Ninguno |
55
+ | **Base de datos** | Supabase / SQLite / PostgreSQL |
56
+ | **Extensiones** | Supabase, Stripe, Prisma, Ionic, ... |
57
+ | **Módulos OPL activos** | React(23t), Vue(12t), Node(12t), Java(8t) |
58
+
59
+ ---
60
+
61
+ ## 📊 Estado Actual del Proyecto
62
+
63
+ _Completar durante la última sesión. Esto permite a la próxima IA continuar sin pérdida de contexto._
64
+
65
+ | Aspecto | Detalle |
66
+ |---------|---------|
67
+ | **Última sesión** | {{fecha}} |
68
+ | **Último comando ejecutado** | `opl ...` |
69
+ | **Fase del proyecto** | Inicial / En desarrollo / Refinamiento / Producción |
70
+ | **Sprint activo** | embeddings-sprint-001 / ninguno |
71
+ | **Ticket en progreso** | TICKET-XXX / ninguno |
72
+ | **Próximo paso** | _Descripción de lo que sigue_ |
73
+ | **Bloqueadores** | _Problemas pendientes_ |
74
+ | **Branch activa** | `main` / `feature/...` |
75
+
76
+ ---
77
+
78
+ ## 🎯 Próximos Pasos Recomendados
79
+
80
+ 1. _Paso 1 — descripción_
81
+ 2. _Paso 2 — descripción_
82
+ 3. _Paso 3 — descripción_
83
+
84
+ ---
85
+
86
+ ## 🐛 Problemas Conocidos (Academic Issues)
87
+
88
+ Ver `docs/OPL_ACADEMIC_ISSUES.md` para problemas reportados del sistema de enseñanza.
89
+
90
+ | # | Título | Severidad | Estado |
91
+ |---|--------|-----------|--------|
92
+ | 1 | Onboarding IA en proyecto existente | 🔴 Alta | Abierto |
93
+ | 2 | `opl rebuild` no detecta OPL | 🟡 Media | Abierto |
94
+ | 3 | Falta documento post-init para IA | 🔴 Alta | Abierto |
95
+
96
+ ---
97
+
98
+ ## 📚 Documentos de Referencia
99
+
100
+ | Documento | Propósito | Cuándo leerlo |
101
+ |-----------|-----------|---------------|
102
+ | `AGENTS.md` | Stack, convenciones, UI, calidad, reglas | ✅ Siempre — primera lectura |
103
+ | `docs/AI_CONTEXT.md` | Memoria extendida del proyecto | ✅ Siempre — segunda lectura |
104
+ | `docs/FRAMEWORK.md` | Manual completo: anotaciones, CLI, MCP | 🔍 Bajo demanda |
105
+ | `docs/OPL_ACADEMIC_ISSUES.md` | Problemas del sistema de enseñanza | 🔍 Si tocas el módulo académico |
106
+ | `docs/EMBEDDINGS.md` | Sistema de embeddings vectoriales | 🔍 Si tocas búsqueda semántica |
107
+ | `.opencode/work-context/SESSION.json` | Estado actual de la sesión | 🔍 Para restaurar contexto |
108
+ | `.opencode/work-context/LOG.json` | Bitácora de acciones | 🔍 Para auditoría |
109
+ | `prompt-lang.json` | Configuración del proyecto | 🔍 Si necesitas ver config |
110
+
111
+ ---
112
+
113
+ ## ⚡ Comandos Rápidos para la IA
114
+
115
+ ```bash
116
+ # Conocer el proyecto
117
+ npx openprompt-lang context # Vista general
118
+ npx openprompt-lang validate # Validar anotaciones
119
+ npx openprompt-lang analyze . # Auditoría completa
120
+
121
+ # Búsqueda de conocimiento
122
+ opl index # Navegar conocimiento
123
+ opl search "término" --mode hybrid # Búsqueda híbrida
124
+ opl read <dominio>/<id> --chapter <n> # Leer contenido
125
+
126
+ # Evaluación del proyecto
127
+ opl assess # Production Readiness Assessment
128
+ opl assess --verbose # Con detalle de 7 dimensiones
129
+
130
+ # Sistema de enseñanza
131
+ opl teach progress # Progreso de aprendizaje
132
+ opl teach study <concepto> # Estudiar un concepto
133
+ opl teach assess <concepto> # Evaluar nivel
134
+
135
+ # Embeddings (si aplica)
136
+ opl embeddings status # Estado del índice vectorial
137
+ opl search "término" --mode vector # Búsqueda semántica
138
+ ```
139
+
140
+ ---
141
+
142
+ ## 📝 Notas de la Sesión Actual
143
+
144
+ ```
145
+ Espacio para que la IA o el usuario dejen notas sobre la sesión actual.
146
+ ```
147
+
148
+ ---
149
+
150
+ *Documento generado automáticamente por `opl init`.*
151
+ *Versión: 1.0.0*