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.
- package/README.md +62 -8
- package/docs/EMBEDDINGS.md +214 -0
- package/docs/FRAMEWORK.md +52 -0
- package/docs/ONBOARDING_WORKFLOW.md +151 -0
- package/docs/OPL-ERRORES.md +504 -0
- package/docs/OPL_ACADEMIC_ISSUES.md +158 -0
- package/docs/WEB_SCRAPER_PLAN.md +454 -0
- package/package.json +7 -1
- package/scripts/postinstall.js +37 -0
- package/src/cli/commands-knowledge.js +1 -0
- package/src/cli/commands-opl.js +79 -1
- package/src/cli/commands-work.js +3 -1
- package/src/cli/commands-workflow.js +125 -6
- package/src/commands/init-core.js +188 -12
- package/src/commands/init-existing.js +13 -6
- package/src/commands/init-helpers.js +20 -14
- package/src/commands/knowledge-ops.js +52 -0
- package/src/commands/opl-embeddings.js +556 -0
- package/src/commands/opl-help.js +26 -2
- package/src/commands/opl-search.js +106 -2
- package/src/commands/opl-webscrape.js +390 -0
- package/src/commands/work-context.js +17 -0
- package/src/commands/workflow/close/index.js +2 -1
- package/src/commands/workflow/delivery/index.js +4 -0
- package/src/commands/workflow/discovery/index.js +4 -0
- package/src/commands/workflow/epic-cli.js +192 -0
- package/src/commands/workflow/select.js +146 -0
- package/src/commands/workflow/specification/index.js +4 -0
- package/src/commands/workflow/sprint-cli.js +174 -0
- package/src/core/engine/sandbox.js +7 -3
- package/src/core/webscrape/analyzer.js +481 -0
- package/src/core/webscrape/deep-scraper.js +1027 -0
- package/src/core/workflow/epic-manager.js +845 -0
- package/src/core/workflow/gates.js +180 -1
- package/src/core/workflow/selector.js +707 -0
- package/src/embeddings/chunker.js +450 -0
- package/src/embeddings/embedder.js +431 -0
- package/src/embeddings/index-pipeline.js +320 -0
- package/src/embeddings/vector-store.js +505 -0
- package/src/mcp-plan-server.js +12 -5
- package/src/mcp-shared-state.js +25 -0
- package/src/mcp-refactor/mcp-server.js +0 -171
- 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.
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
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*
|