openprompt-lang 1.4.0 → 1.6.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 (120) hide show
  1. package/bin/cli.js +1 -14
  2. package/bin/mcp-plan.js +4 -4
  3. package/docs/02-STANDARDS/AGENTS.template.md +11 -5
  4. package/docs/02-STANDARDS/sections/00-first-5-min.md +40 -0
  5. package/docs/02-STANDARDS/sections/01-workflow.md +150 -0
  6. package/docs/02-STANDARDS/sections/02-annotations.md +89 -0
  7. package/docs/02-STANDARDS/sections/03-conventions.md +56 -0
  8. package/docs/02-STANDARDS/sections/04-commands.md +54 -0
  9. package/docs/02-STANDARDS/sections/05-reference.md +46 -0
  10. package/docs/02-STANDARDS/sections/06-project-setup.md +137 -0
  11. package/docs/AI_IMPROVEMENTS.md +3 -0
  12. package/docs/FRAMEWORK.md +7 -59
  13. package/package.json +1 -1
  14. package/src/cli/commands-context.js +69 -0
  15. package/src/cli/commands-misc.js +217 -4
  16. package/src/cli/commands-opl.js +12 -0
  17. package/src/cli/commands-teach.js +49 -0
  18. package/src/cli/commands-workflow.js +96 -38
  19. package/src/commands/init-core.js +226 -279
  20. package/src/commands/init-infer.js +313 -0
  21. package/src/commands/init.js +5 -14
  22. package/src/commands/knowledge.js +226 -3
  23. package/src/commands/opl-embeddings.js +177 -3
  24. package/src/commands/scar.js +106 -0
  25. package/src/commands/teach/assess/index.js +16 -30
  26. package/src/commands/teach/progress/index.js +14 -16
  27. package/src/commands/teach/project-guide/index.js +19 -30
  28. package/src/commands/teach/study/index.js +22 -31
  29. package/src/commands/ticket.js +76 -7
  30. package/src/commands/validate.js +84 -12
  31. package/src/commands/work-context/check.js +85 -0
  32. package/src/commands/work-context/init.js +68 -0
  33. package/src/commands/work-context/learn.js +45 -0
  34. package/src/commands/work-context/log.js +14 -0
  35. package/src/commands/work-context/plan.js +198 -0
  36. package/src/commands/work-context/report.js +45 -0
  37. package/src/commands/work-context/session.js +196 -0
  38. package/src/commands/work-context/utils.js +499 -0
  39. package/src/commands/work-context.js +7 -1028
  40. package/src/commands/workflow/close/index.js +23 -37
  41. package/src/commands/workflow/delivery/index.js +20 -33
  42. package/src/context/gates.js +136 -0
  43. package/src/context/index.js +280 -0
  44. package/src/context/plan.js +140 -0
  45. package/src/context/session.js +44 -0
  46. package/src/core/knowledge-graph/index.js +301 -0
  47. package/src/core/knowledge-graph/loader.js +356 -0
  48. package/src/core/knowledge-graph/store.js +210 -0
  49. package/src/core/knowledge-graph/types.js +280 -0
  50. package/src/core/search/anti-knowledge.js +292 -0
  51. package/src/core/search/echo-fusion.js +229 -0
  52. package/src/core/search/scar-integration.js +190 -0
  53. package/src/core/search/spreading-activation.js +312 -0
  54. package/src/core/workflow/gates.js +2 -2
  55. package/src/core/workflow/phases.js +1 -1
  56. package/src/core/workflow/selector.js +97 -641
  57. package/src/core/workflow/state-machine.js +1 -1
  58. package/src/docgen/session-docs.js +4 -5
  59. package/src/embeddings/chunker.js +79 -21
  60. package/src/embeddings/embedder.js +48 -9
  61. package/src/embeddings/index-pipeline.js +62 -35
  62. package/src/embeddings/vector-store.js +363 -352
  63. package/src/mcp-refactor/handlers/context.js +15 -20
  64. package/src/mcp-refactor/handlers/plan.js +339 -0
  65. package/src/mcp-refactor/handlers/teaching.js +9 -17
  66. package/src/mcp-refactor/handlers/workflow.js +8 -13
  67. package/src/mcp-refactor/router.js +21 -18
  68. package/src/mcp-refactor/tools.js +56 -67
  69. package/src/mcp-server.js +1 -1
  70. package/src/mcp-session.js +104 -84
  71. package/src/mcp-shared-state.js +64 -196
  72. package/src/mcp-workflow.js +90 -160
  73. package/src/persistence/json/store.js +364 -0
  74. package/src/utils/annotations.js +36 -7
  75. package/src/boost/agent-pool.js +0 -442
  76. package/src/boost/agents/index.js +0 -79
  77. package/src/boost/cache.js +0 -241
  78. package/src/boost/context-compressor.js +0 -354
  79. package/src/boost/fewshot-retriever.js +0 -332
  80. package/src/boost/hardware-detector.js +0 -486
  81. package/src/boost/hydrator.js +0 -398
  82. package/src/boost/index.js +0 -60
  83. package/src/boost/orchestrator.js +0 -615
  84. package/src/boost/preamble.js +0 -217
  85. package/src/boost/profile-registry.js +0 -264
  86. package/src/boost/self-learn.js +0 -247
  87. package/src/boost/skeletons/component.skeleton.js +0 -24
  88. package/src/boost/skeletons/hook.skeleton.js +0 -27
  89. package/src/boost/skeletons/index.js +0 -67
  90. package/src/boost/skeletons/page.skeleton.js +0 -22
  91. package/src/boost/skeletons/service.skeleton.js +0 -20
  92. package/src/boost/skeletons/store.skeleton.js +0 -18
  93. package/src/boost/skeletons/type.skeleton.js +0 -11
  94. package/src/boost/task-dispatcher.js +0 -142
  95. package/src/boost/validation-loop.js +0 -495
  96. package/src/cli/commands-ai.js +0 -58
  97. package/src/cli/commands-boost.js +0 -394
  98. package/src/cli/commands-init.js +0 -82
  99. package/src/cli/commands-knowledge.js +0 -79
  100. package/src/cli/commands-lang.js +0 -43
  101. package/src/cli/commands-learning.js +0 -54
  102. package/src/cli/commands-work.js +0 -95
  103. package/src/commands/context-compact.js +0 -129
  104. package/src/commands/wizard.js +0 -458
  105. package/src/commands/workflow/discovery/index.js +0 -86
  106. package/src/commands/workflow/specification/index.js +0 -115
  107. package/src/docgen/generator.js +0 -200
  108. package/src/docgen/mermaid/generator.js +0 -147
  109. package/src/docgen/templates/architecture.hbs +0 -51
  110. package/src/docgen/templates/backlog.hbs +0 -32
  111. package/src/docgen/templates/requirements.hbs +0 -44
  112. package/src/docgen/templates/user-stories.hbs +0 -27
  113. package/src/docgen/templates/vision.hbs +0 -20
  114. package/src/mcp-plan-server.js +0 -895
  115. package/src/mcp-refactor/handlers/boost.js +0 -295
  116. package/src/persistence/sqlite/connection.js +0 -125
  117. package/src/persistence/sqlite/migrations.js +0 -139
  118. package/src/persistence/sqlite/queries.js +0 -529
  119. package/src/persistence/sqlite/schema.js +0 -164
  120. package/src/wizard/orchestrator.js +0 -217
package/bin/cli.js CHANGED
@@ -10,18 +10,12 @@ import { readFileSync } from "fs"
10
10
  import { join, dirname } from "path"
11
11
  import { fileURLToPath } from "url"
12
12
 
13
- import { register as registerInit } from "../src/cli/commands-init.js"
14
13
  import { register as registerContext } from "../src/cli/commands-context.js"
15
- import { register as registerAi } from "../src/cli/commands-ai.js"
16
- import { register as registerLang } from "../src/cli/commands-lang.js"
17
- import { register as registerKnowledge } from "../src/cli/commands-knowledge.js"
18
- import { register as registerWork } from "../src/cli/commands-work.js"
19
- import { register as registerLearning } from "../src/cli/commands-learning.js"
20
14
  import { register as registerOpl } from "../src/cli/commands-opl.js"
21
15
  import { register as registerMisc } from "../src/cli/commands-misc.js"
22
16
  import { register as registerWorkflow } from "../src/cli/commands-workflow.js"
23
17
  import { register as registerTeach } from "../src/cli/commands-teach.js"
24
- import { register as registerBoost } from "../src/cli/commands-boost.js"
18
+
25
19
 
26
20
  import { handleUncaughtErrors, EXIT_CODES } from "../src/utils/errors.js"
27
21
 
@@ -58,17 +52,10 @@ program
58
52
  registerOpl(program)
59
53
 
60
54
  // Registrar comandos existentes
61
- registerInit(program)
62
55
  registerContext(program)
63
- registerAi(program)
64
- registerLang(program)
65
- registerKnowledge(program)
66
- registerWork(program)
67
- registerLearning(program)
68
56
  registerMisc(program)
69
57
  registerWorkflow(program)
70
58
  registerTeach(program)
71
- registerBoost(program)
72
59
 
73
60
  try {
74
61
  await program.parseAsync(process.argv)
package/bin/mcp-plan.js CHANGED
@@ -4,8 +4,8 @@
4
4
  // @contract(in: argv -> out: void, sideEffect: inicia servidor MCP modo plan)
5
5
  // @limit(lines: 20)
6
6
 
7
- import { startPlanServer } from "../src/mcp-plan-server.js"
7
+ import { startServer } from "../src/mcp-server.js"
8
8
 
9
- // MCP Plan Server — modo planificación
10
- // opencode lo ejecuta como segundo MCP para el wizard de stack/folder
11
- await startPlanServer()
9
+ // MCP Plan Server — tools de planificación están ahora en el servidor principal
10
+ // (merged in BUG-012: mcp-plan-server.js eliminado, tools integradas en mcp-server.js)
11
+ await startServer()
@@ -1,6 +1,6 @@
1
1
  # AGENTS.template.md — Plantilla Universal para Proyectos
2
2
 
3
- > **Versión:** 1.0
3
+ > **Versión:** 2.0 (estructura navegable)
4
4
  > **Uso:** La IA debe ejecutar el Protocolo de Inicialización al detectar un proyecto sin AGENTS.md o con AGENTS.md incompleto.
5
5
 
6
6
  ---
@@ -25,11 +25,16 @@ Leer package.json:
25
25
  ejecutar: opl init → Crea prompt-lang.json y estructura base docs/
26
26
  ```
27
27
 
28
- ### Paso 3: Generar AGENTS.md con el stack detectado
28
+ ### Paso 3: Generar AGENTS.md y secciones
29
29
  ```
30
- Copiar ESTE archivo como AGENTS.md en la raíz del proyecto.
31
- Reemplazar "## Stack" con las tecnologías detectadas.
32
- Reemplazar "## Perfil" según nivel (senior por defecto).
30
+ 1. Copiar ESTE archivo como AGENTS.md en la raíz del proyecto (versión resumida)
31
+ 2. Reemplazar "## Stack" con las tecnologías detectadas
32
+ 3. CREAR docs/02-STANDARDS/sections/ con archivos extraídos:
33
+ - 01-workflow.md → Workflow + gates + enforcement
34
+ - 02-annotations.md → @kind, @limit, cobertura
35
+ - 03-conventions.md → Stack detallado, código, UI
36
+ - 04-commands.md → CLI, PRA, knowledge
37
+ - 05-reference.md → Doc structure, setup
33
38
  ```
34
39
 
35
40
  ### Paso 4: Detectar archivos fuente sin anotaciones
@@ -87,3 +92,4 @@ senior
87
92
  ## Referencias
88
93
  - Framework: openPrompt-Lang
89
94
  - Tickets OPL: `opl ticket list`
95
+ - Estructura navegable: `docs/02-STANDARDS/sections/` — 01-workflow, 02-annotations, 03-conventions, 04-commands, 05-reference
@@ -0,0 +1,40 @@
1
+ // @use(kind, contract, limit)
2
+ // @kind(guide)
3
+ // @contract(in: session start -> out: readiness, sideEffect: AI carga los contextos correctos, evita errores comunes)
4
+ // @limit(lines: 40)
5
+
6
+ # 🆕 Primeros 5 Minutos — Playbook de Inicio
7
+
8
+ Esto se lee **al empezar cualquier sesión** (después de AGENTS.md + 01-workflow.md + 02-annotations.md).
9
+
10
+ ## 1. ¿Qué estoy haciendo?
11
+ | Si la tarea es... | Workflow |
12
+ |-------------------|----------|
13
+ | Bugfix / depuración | Bugfix → ticket primero, fix rápido, validate |
14
+ | Feature nueva | Feature → plan + implementación con anotaciones |
15
+ | Refactor | Refactor → analyze_blast_radius, plan, implementar |
16
+ | Research / exploración | Research → knowledge_search, recall |
17
+ | Revisión de PR | Review → validate, lint_file |
18
+
19
+ ## 2. Pasos automáticos al arrancar
20
+
21
+ ```
22
+ 1. analyze_project → entender estructura
23
+ 2. context_unified → búsqueda cruzada en 7 fuentes
24
+ 3. recall "tema" → errores pasados relacionados
25
+ 4. Todowrite → desglosar tareas
26
+ 5. work_context_start → iniciar tracking
27
+ ```
28
+
29
+ ## 3. Errores comunes al empezar (no repetir)
30
+
31
+ - ❌ Leer el AGENTS.md completo → leer solo índice, cargar bajo demanda
32
+ - ❌ Implementar sin `work_context_start` → siempre iniciar sesión primero
33
+ - ❌ Crear componente sin buscar template primero → `search_templates` + `teach_template`
34
+ - ❌ Hacer un refactor sin `analyze_blast_radius` → siempre analizar impacto
35
+ - ❌ Commitear sin `opl validate` → el pre-commit hook te va a bloquear igual
36
+
37
+ ## 4. ¿Tengo claro lo que voy a hacer antes de escribir?
38
+
39
+ Sí → `work_context_plan` si es feature/refactor, después implementar
40
+ No → `context_unified` + `knowledge_search` primero
@@ -0,0 +1,150 @@
1
+ // @use(kind, contract, limit)
2
+ // @kind(guide)
3
+ // @contract(in: session awareness -> out: workflow selected, sideEffect: AI sigue el flujo correcto)
4
+ // @limit(lines: 150)
5
+
6
+ # Workflow OPL — Reglas Absolutas y Flujo Único
7
+
8
+ → Complementos: [02-annotations.md](./02-annotations.md) para reglas de anotación | [00-first-5-min.md](./00-first-5-min.md) para onboarding rápido
9
+
10
+ ## ⛔ Regla Fundacional
11
+ `@limit(lines: N)` NO es sugerencia — bloquea el commit. Refactorizar antes de committiar.
12
+ Excepción: `// @limit(lines: 250, reason: "justificación")` documenta deuda técnica.
13
+
14
+ ## 🧭 Árbol de Decisión — ¿Qué flujo sigo?
15
+
16
+ ```
17
+ ¿Qué tipo de tarea?
18
+ ├── Bugfix / debug
19
+ │ → ticket → analyze_blast_radius → fix → @learn-error → validate → close
20
+ ├── Feature nueva
21
+ │ → context_unified → plan → implementar (anotaciones primero) → validate → close
22
+ ├── Refactor / deuda técnica
23
+ │ → analyze_blast_radius → plan → implementar → validate → close
24
+ ├── Research / explorar
25
+ │ → knowledge_search + recall → documentar hallazgos → close
26
+ └── Onboarding / proyecto nuevo
27
+ → analyze_project → domain_status → context_unified → recall → templates → close
28
+ ```
29
+
30
+ ## Flujo Obligatorio (8 pasos, siempre este orden)
31
+
32
+ ```
33
+ 1. → workflow_select "opl workflow select <descripción>"
34
+ (OBLIGATORIO — bloquea implementación)
35
+ 2. → create_ticket "opl ticket create --title ... --severity ..."
36
+ (OBLIGATORIO — bloquea escritura de código)
37
+ 3. → check_gates workflow_selected ✓, ticket_created ✓, plan_approved ✓ (si aplica)
38
+ 4. → work_context_plan Planificar (features/refactors, bugfixes pueden saltar)
39
+ 5. → implementar Codificar con anotaciones OPL primero
40
+ 6. → validate "opl validate" antes de cerrar
41
+ 7. → docs_updated Actualizar documentación (OBLIGATORIO)
42
+ 8. → work_context_close Cerrar sesión con reporte
43
+ ```
44
+
45
+ **Regla #1:** `workflow select` primero — Sin workflow no hay implementación.
46
+ **Regla #2:** `ticket create` antes de código — Sin ticket no se escribe código.
47
+ **Regla #3:** `docs_updated` antes de cerrar — Sin docs no se cierra sesión.
48
+ **Regla #4:** `work_context_plan` para features/refactors — Bugfixes simples pueden saltar.
49
+
50
+ ## Gates Evaluados Automáticamente
51
+
52
+ | Gate | Verifica | Bloquea |
53
+ |------|----------|---------|
54
+ | `workflow_selected` | `workflow select` ejecutado | Siempre |
55
+ | `ticket_created` | Ticket abierto existe | Siempre |
56
+ | `plan_approved` | Plan reciente existe | Features/refactors |
57
+ | `docs_updated` | Docs actualizados (<4h) | Antes de cerrar |
58
+
59
+ ## Enforcement MCP (v0.10.0+)
60
+
61
+ El servidor MCP rastrea tu sesión y verifica que sigas el workflow. Si omites pasos:
62
+ - **Guide mode** (default): Recibirás sugerencias con tiempo ahorrado estimado — el tool se ejecuta igual
63
+ - **Gate mode** (`strictMode: true` en prompt-lang.json): El tool se BLOQUEA hasta que cumplas los prerrequisitos
64
+ - **Learn mode**: Si encuentras errores tras omitir pasos, se crea un ticket automático
65
+
66
+ ### Flujo Obligatorio (MCP tools)
67
+
68
+ ```
69
+ 1. analyze_project → Conoce el proyecto (30s, ahorra ~15min)
70
+ 2. workflow_check → Verifica qué pasos faltan en tu sesión
71
+ 3. context_unified → Búsqueda cruzada en 7 fuentes
72
+ 4. knowledge_search o recall → Buscar antes de crear (10s, ahorra ~30min)
73
+ 5. work_context_plan → Planificar antes de implementar (1min, ahorra ~1hr)
74
+ 6. work_context_start → Iniciar sesión con tracking
75
+ 7. work_context_close → Cerrar sesión y registrar métricas
76
+ ```
77
+
78
+ ### Workflow: Debugging annotation errors
79
+ 1. `analyze_project` → ver el panorama
80
+ 2. `validate` → encontrar errores
81
+ 3. `lint_file` → debug de archivos específicos
82
+ 4. Fix + `@learn-error` → documentar
83
+ 5. `generate_tests` → tests de regresión
84
+ 6. `validate` → verificar fix
85
+
86
+ ### Workflow: Nueva feature o implementación
87
+ 1. `context_unified` + `knowledge_search` → buscar antes de crear
88
+ 2. `domain_status` → ver dominio activo y patrones
89
+ 3. `search_templates` + `teach_template` → aprender patrones existentes
90
+ 4. `work_context_plan` → planificar
91
+ 5. `work_context_start` → iniciar sesión
92
+ 6. Implementar con anotaciones
93
+ 7. `validate` → verificar
94
+ 8. `work_context_close` → cerrar sesión
95
+
96
+ ### Workflow: Onboarding a proyecto nuevo
97
+ 1. `analyze_project` → estructura
98
+ 2. `domain_status` → dominios y patrones
99
+ 3. `context_unified` → contexto completo en 7 fuentes
100
+ 4. `recall "keyword"` → memoria del proyecto
101
+ 5. `search_templates` + `teach_template` → patrones clave
102
+
103
+ ### Autonomía Táctica (Tridente para mutaciones)
104
+ `analyze_blast_radius` → `ast_patch_mutate` → `execute_sandbox`
105
+ 1. No se muta código a ciegas
106
+ 2. Toda mutación pasa por análisis de impacto previo
107
+ 3. Todo parche se verifica en sandbox antes de cerrarse
108
+
109
+ ## Hook pre-commit
110
+ `.husky/pre-commit` corre `npx openprompt-lang validate --strict` antes de cada commit.
111
+ Bloquea commits si hay violaciones @limit o errores de anotaciones.
112
+ Emergencias: `git commit --no-verify` (documentar por qué).
113
+
114
+ Setup completo: [05-reference.md](./05-reference.md#setup-de-enforcement)
115
+
116
+ ## ⛔ NUNCA
117
+ - Cerrar sesión sin `work_context_close`
118
+ - Implementar sin `work_context_start`
119
+ - Fixear bug sin crear ticket
120
+ - Hacer commit sin `opl validate --strict`
121
+ - Saltear `opl workflow select`
122
+ - Detectar bug y fixearlo sin ticket primero
123
+ - Cerrar sesión sin actualizar documentación
124
+ - Corregir error sin `@learn-error` (→ ver [02-annotations.md](./02-annotations.md#-learn-error))
125
+ - Crear plan sin revisar `recall` primero
126
+ - Crear archivo sin `@use` con anotaciones
127
+ - Modificar `*.template.*` directamente
128
+ - Modificar `prompt-lang.json` sin consultar
129
+
130
+ ## 📋 Reporte de Workflow (obligatorio al cerrar)
131
+ ```
132
+ ## 📋 Reporte de Workflow — Sesión [FECHA]
133
+
134
+ ### ✅ Pasos Ejecutados
135
+ | Paso | Comando | Resultado |
136
+ |------|---------|-----------|
137
+ | 1. Iniciar sesión | work_context_start | ✅ |
138
+ | 2. Analizar proyecto | analyze_project | ✅ |
139
+ | 3. Validar anotaciones | opl validate | ✅ 0 errores |
140
+ | 4. Buscar errores previos | recall | ✅ N encontrados |
141
+ | 5. Seleccionar workflow | opl workflow select | ✅ |
142
+ | 6. TODO list | todowrite | ✅ N tareas |
143
+
144
+ ### 🔍 Validación Final
145
+ | Check | Resultado |
146
+ |-------|-----------|
147
+ | tsc --noEmit | ✅ 0 errores |
148
+ | opl validate | ✅ 0 errores |
149
+ | Cobertura @use | X% |
150
+ ```
@@ -0,0 +1,89 @@
1
+ // @use(kind, contract, limit)
2
+ // @kind(reference)
3
+ // @contract(in: file creation/modification -> out: properly annotated code, sideEffect: prevents commit blocks from @limit violations)
4
+ // @limit(lines: 100)
5
+
6
+ # Anotaciones OPL — @kind, @limit, Cobertura
7
+
8
+ → Complementos: [01-workflow.md](./01-workflow.md) para flujo de trabajo | [03-conventions.md](./03-conventions.md) para stack y convenciones de código
9
+
10
+ ## 📐 Límites de Líneas (OBLIGATORIOS, bloquean commit)
11
+
12
+ | @kind | Líneas máx | Anotaciones requeridas | Prohibido |
13
+ |-------|------------|------------------------|-----------|
14
+ | `hook` | 80 | `@contract` | `@props` |
15
+ | `component` | 120 | `@props` | `@contract` |
16
+ | `page` | 200 | `@compose` | — |
17
+ | `service` | 150 | `@contract` | `@props` |
18
+ | `store` | 100 | `@deps` | — |
19
+ | `layout` | 150 | — | — |
20
+ | `util` | 100 | — | `@state` |
21
+ | `type` | sin límite | — | `@limit` |
22
+
23
+ Excepción documentada:
24
+ ```typescript
25
+ // @limit(lines: 250, reason: "justificación obligatoria de por qué se excede")
26
+ ```
27
+ Sin `reason`, el límite bloquea en strict mode. Con `reason`, aparece como deuda documentada.
28
+
29
+ ## 📋 Reglas de Cobertura de Anotaciones
30
+
31
+ **Deben tener `@use` al inicio:**
32
+
33
+ | Patrón | @kind requerido |
34
+ |--------|-----------------|
35
+ | `src/lib/api/*.ts` | `@kind(service)` |
36
+ | `src/lib/*.ts` | `@kind(service)` o `@kind(utility)` |
37
+ | `src/features/*/hooks/*.ts` | `@kind(hook)` |
38
+ | `src/pages/*.tsx` | `@kind(page)` |
39
+ | `src/features/*/pages/*.tsx` | `@kind(page)` |
40
+ | `src/contexts/*.tsx` | `@kind(context)` |
41
+ | `src/features/*/components/*.tsx` | `@kind(component)` |
42
+
43
+ **KPI cobertura objetivo: > 80% de archivos fuente con @use**
44
+
45
+ ## Secuencia obligatoria de anotaciones
46
+ 1. Identificar archivo y su capa (commands/, core/, persistence/, etc.)
47
+ 2. Definir propósito, responsabilidades y límites
48
+ 3. Escribir anotaciones en este orden: `@kind` → `@contract` → `@limit` → `@deps` → `@pattern` → `@teachMe`/`@level`/`@prerequisite`/`@learning-objective`
49
+ 4. Validar coherencia con capa, dominio y workflow activo
50
+ 5. **Recién entonces** implementar la lógica
51
+
52
+ ## Anotaciones esperadas por capa
53
+
54
+ | Capa | @kind | @contract | @limit | @deps | Otras |
55
+ |------|-------|-----------|--------|-------|-------|
56
+ | commands/ | `module` | Requerido | 150 | Según deps | — |
57
+ | core/ | `module` | Requerido | 150 | Según deps | @pattern si aplica |
58
+ | persistence/ | `module` | Requerido | 150 | Según deps | — |
59
+ | wizard/ | `module` | Requerido | 200 | Según deps | @pattern si aplica |
60
+ | docgen/ | `module` | Requerido | 200 | Según deps | @pattern si aplica |
61
+
62
+ **Regla:** No iniciar implementación si el archivo no tiene anotaciones OPL primero.
63
+
64
+ ## 🧠 @learn-error — Aprendizaje Obligatorio de Errores
65
+
66
+ Cada vez que se corrige un error:
67
+ 1. Crear ticket: `opl ticket create --title "..." --severity <level>`
68
+ 2. Fixear el bug
69
+ 3. Documentar con `@learn-error` en el código:
70
+ ```typescript
71
+ // @learn-error(id: '<CATEGORÍA>-<NNN>', input: 'qué causó el error', expected: 'cómo debería ser', actual: 'qué pasó', fix: 'cómo se corrigió')
72
+ ```
73
+ 4. Cerrar ticket: `opl ticket close BUG-XXX`
74
+ 5. El `@learn-error` se consulta automáticamente con `recall` en la próxima sesión
75
+
76
+ **Antes de crear un plan:** ejecutar `recall` para buscar @learn-error relacionados. Incluir precauciones en el plan.
77
+
78
+ ## @scar — Cicatrices de Guerra (conocimiento negativo)
79
+ ```typescript
80
+ // @scar(id: 'modal-scroll-lock', symptom: 'Modales anidados rompen scroll', cause: 'Estado local aislado', fix: 'hook centralizado', detect: 'document.body.style.overflow === "hidden" && !useLayoutScrollLock', severity: 'blocker', domains: ['frontend', 'accessibility'])
81
+ ```
82
+ Campos: id (req), symptom (req), cause (req), fix (req), detect (opcional), severity (opcional: blocker/critical/warning/info), domains (opcional)
83
+
84
+ ## Contratos Abstractos
85
+ IR que separa Contrato (esencia) de Sintaxis (framework):
86
+ ```
87
+ Contrato Real = Contrato Abstracto + Adapter Sintáctico
88
+ ```
89
+ - `opl contract list/show/search` — Gestionar contratos
@@ -0,0 +1,56 @@
1
+ // @use(kind, contract, limit)
2
+ // @kind(reference)
3
+ // @contract(in: coding task -> out: code following project conventions, sideEffect: consistent code style across files)
4
+ // @limit(lines: 60)
5
+
6
+ # Convenciones — Stack, Código, UI, Templates
7
+
8
+ → Complementos: [02-annotations.md](./02-annotations.md) para reglas de anotación por capa | [04-commands.md](./04-commands.md) para templates disponibles via teach_template
9
+
10
+ ## Stack del proyecto
11
+ - React 19 + TypeScript + Vite 7 + Tailwind v4 (Estándar consistente)
12
+ - Node.js + Express (TypeScript, ESM)
13
+ - Spring Boot + Java (Controllers, Services, Repositories, DTOs)
14
+ - Supabase (Backend/Auth/Storage)
15
+ - Lucide React (Iconos) · Sonner (Notificaciones) · Radix UI (Primitivos accesibles)
16
+
17
+ ## Módulos de Lenguaje (Templates)
18
+ | Módulo | Templates | Versión |
19
+ |--------|-----------|---------|
20
+ | React + TypeScript (Vite) | 23 | 1.1.0 |
21
+ | Vue 3 + Nuxt | 12 | 1.0.0 |
22
+ | Node.js + Express (TypeScript) | 12 | 1.0.0 |
23
+ | Spring Boot (Java) | 8 | 1.0.0 |
24
+ | OpenPrompt Core Knowledge | 3 | 1.0.0 |
25
+
26
+ ## Convenciones de Código
27
+ - **Context Engine**: openPrompt-Lang (@kind, @contract, @limit annotations)
28
+ - **Anotaciones primero**: No escribir implementación sin anotaciones previas
29
+ - **Exports**: Named Exports sobre Default Exports
30
+ - **Funciones**: Preferir `export function Name() {}` sobre arrow functions para componentes
31
+ - **Tipado**: NO usar `any`. Tipar retornos de hooks y props de componentes.
32
+ - **Iconos**: Preferir SVG inline o componentes dedicados si son pocos
33
+ - **Validación**: `npx openPrompt-Lang validate` antes de cada commit
34
+
35
+ ### Convenciones por lenguaje
36
+ - **React**: component/page/hook/service/store → shadcn/ui pattern (cva + cn())
37
+ - **Node.js**: controller/service/route/middleware/model/repository → ESM imports, no CommonJS
38
+ - **Java/Spring Boot**: controller/service/repository/entity/DTO → getters/setters explícitos (no Lombok)
39
+
40
+ ## UI & Diseño
41
+ - **Colores**: El usuario elige la paleta. La IA NO inventa colores base a menos que se le pida.
42
+ - **Modo Oscuro**: Soporte nativo (default: dark).
43
+ - **Componentes**: Patrón shadcn/ui (cva + cn()).
44
+ - **Layout**: Header tipo "pill flotante" centrado con backdrop-blur para landing pages.
45
+
46
+ ## Templates disponibles
47
+ - `button-shadcn`, `input-shadcn`, `select-shadcn`, `card-shadcn`, `modal-dialog`, `datatable-shadcn`
48
+ - `hook-useAuth`, `hook-useDebounce`, `hook-usePagination`, `hook-useForm`
49
+ - `service-api`
50
+
51
+ Buscar: `search_templates` / `teach_template` para aprender patrones existentes.
52
+
53
+ ## Calidad y QA
54
+ - **Errores**: Documentar con `// @learn-error id=ID fix='...'`
55
+ - **Tests**: `npx openPrompt-Lang qa-gen` tras corregir errores
56
+ - **Anotaciones**: `@use()` al inicio si se usan utilidades externas
@@ -0,0 +1,54 @@
1
+ # Comandos OPL — CLI, PRA, Knowledge, Pipeline
2
+
3
+ ## CLI — Comandos principales
4
+ - `opl` (sin args) → Pantalla de bienvenida "puerta de entrada"
5
+ - `opl help` → Misma pantalla de bienvenida
6
+ - `opl tutorial` → Recorrido guiado interactivo (7 min)
7
+ - `opl workflow select <desc>` → Seleccionar workflow con detección automática
8
+ - `opl ticket create/list/close` → Gestión de tickets (OBLIGATORIO antes de código)
9
+ - `opl init --knowledge` → Configurar biblioteca personal ~/.opl/knowledge/
10
+ - `opl upgrade` → Migrar configuración a versión actual
11
+ - `opl validate [--file <path>] [--strict]` → Validar anotaciones
12
+ - `opl lint_file <path>` → Debug de anotaciones de archivo específico
13
+ - `opl generate_tests` → Generar tests de regresión desde @learn-error
14
+ - `opl session doc/close/diff` → Gestión de sesiones con documentación
15
+ - `opl doc flow/framework` → Generar documentación (Mermaid, FRAMEWORK.md)
16
+
17
+ ## Comandos de Conocimiento
18
+ - `opl index [path]` → Navegar conocimiento por niveles
19
+ - `opl read <dominio>/<id>` → Leer contenido (--chapter n --full)
20
+ - `opl search <query>` → Búsqueda híbrida (tags + fulltext + semántica)
21
+ - `opl system [name]` → Explorar sistemas de conocimiento (10 sistemas)
22
+ - `opl contract list/show/search` → Gestionar contratos abstractos
23
+ - `opl graph [concept]` → Grafo de relaciones entre conceptos
24
+
25
+ ## Production Readiness Assessment (PRA)
26
+ - **7 dimensiones**: Funcionalidad (25%), Calidad (20%), Seguridad (15%), Resiliencia (10%), Observabilidad (10%), Compliance (10%), Despliegue (10%)
27
+ - **28 criterios** con scoring 0-100 por criterio
28
+ - **Rangos**: 💀 Pre-Alfa (0-20) → 🔴 Alfa (21-40) → 🟡 Beta (41-60) → 🟢 RC (61-80) → 🔵 Prod-Ready (81-95) → 🟣 Hardened (96-100)
29
+ - **Zero-tolerance**: F5 (transacciones atómicas), S2 (deny-by-default), S4 (no hardcoded secrets)
30
+ - **IA ceiling**: 78 solo código / 85 con config / 90 con guías deploy
31
+ - `opl assess [--verbose] [--save]` → Evaluar PRA
32
+ - `opl workflow qa-assess` → Evaluación completa con PRA + recall + validate + findings
33
+
34
+ ## Comandos Dominio y Pattern
35
+ - `context domain init/use/switch/clear/status/load` — Dominios modulares
36
+ - `learn-pattern --from <docs> --type <type> --name <name>` — Extraer patrones
37
+ - `pattern-list [--domain <domain>]` — Listar patrones por dominio
38
+
39
+ Todos los comandos `knowledge list/learning search/ticket create/list/recall` aceptan `--domain`.
40
+
41
+ ## Pipeline Auto-curativo
42
+ validate paso [4/5] tiene auto-healing loop:
43
+ 1. Ejecuta tsc/lint/format-check
44
+ 2. Si falla → lint:fix / format:fix
45
+ 3. Reintenta hasta 3 veces
46
+ 4. Si persiste → registra @learn-error automático
47
+
48
+ Configurable en `prompt-lang.json` → `pipeline.autoheal`
49
+
50
+ ## Conocimiento (Knowledge)
51
+ - **13 dominios**: payments, mobile-pwa, systems, qa, frontend, backend, accessibility, algorithms, fundamentals, architecture, typescript, saas, restaurant
52
+ - **13 playbooks**: flow-integration, capacitor-setup, rust-ownership, scrum-workflow, frontend-react, backend-nodejs, accessibility-wcag, algorithms-patterns, fundamentals-programs, spa-auth-flow, api-rest-design, db-schema-design, microservice-architecture
53
+ - **35 fuentes** de conocimiento empaquetadas (libros/docs + 2 proyectos reales)
54
+ - **10 sistemas de conocimiento**: agrupaciones de fuentes que se necesitan juntas
@@ -0,0 +1,46 @@
1
+ # Referencia — Documentación, Estructura, Setup
2
+
3
+ ## Documentación del proyecto
4
+ ```
5
+ docs/
6
+ ├── INDEX.md ← Mapa maestro del proyecto
7
+ ├── 00-ARCHITECTURE/ ← Stack, flujos, esquemas
8
+ ├── 01-AUDITS/ ← Auditorías de código y recursos
9
+ ├── 02-STANDARDS/ ← Convenciones, patrones, guías OPL
10
+ │ ├── sections/ ← Archivos extraídos de AGENTS.md (carga bajo demanda)
11
+ │ └── ticket-driven-development.md ← Proceso TDD completo
12
+ ├── 03-SPRINTS/ ← Planificación ágil por sprint
13
+ ├── 04-TICKETS/ ← Tickets ejecutables por sprint
14
+ └── 05-REFERENCES/ ← Referencias externas
15
+ ```
16
+
17
+ ## Referencia Canónica
18
+ - **Manual completo**: `.openprompt/FRAMEWORK.md` — anotaciones, comandos CLI, MCP, dominios, módulos, reglas estrictas
19
+ - **Proceso TDD**: `docs/02-STANDARDS/ticket-driven-development.md`
20
+ - **Plantilla universal AGENTS.md**: `docs/02-STANDARDS/AGENTS.template.md`
21
+ - **Pre-commit hook**: `scripts/pre-commit-opl.sh` (deployable), `.husky/pre-commit` (activo)
22
+ - **Enforce setup**: `scripts/opl-enforce-setup.mjs` (interactivo), `npm run opl:enforce`
23
+
24
+ ## Setup de Enforcement
25
+ ```bash
26
+ # Configurar enforcement completo (Ollama + pre-commit hook + agentes)
27
+ npm run opl:enforce
28
+
29
+ # O manualmente:
30
+ cp scripts/pre-commit-opl.sh .git/hooks/pre-commit
31
+ chmod +x .git/hooks/pre-commit
32
+ ```
33
+
34
+ ## Contexto Navegable (NIVEL 0-3)
35
+ La IA debe navegar el contexto por niveles:
36
+ - **NIVEL 0**: AGENTS.md — Índice (~200 tokens). Leer siempre primero.
37
+ - **NIVEL 1**: sections/01-workflow.md + 02-annotations.md — Obligatorios (~750 tokens)
38
+ - **NIVEL 2**: sections/03-conventions.md + 04-commands.md — Bajo demanda (~600 tokens)
39
+ - **NIVEL 3**: sections/05-reference.md — Solo cuando necesitas setup o estructura (~200 tokens)
40
+
41
+ ## Proceso de Documentación Pre-Close
42
+ Cada sesión se documenta antes de cerrar:
43
+ - `opl session doc` → Documentación automática
44
+ - `opl session close` → Cerrar con validación
45
+ - Gate mode bloquea close si falta documentación
46
+ - Cada sesión deja: resumen.md, decisiones.md, errores.md, aprendizajes.md
@@ -0,0 +1,137 @@
1
+ # Project Setup — AI Playbook
2
+
3
+ Usa esto cuando necesites configurar un proyecto OPL o entender los requisitos de un proyecto nuevo.
4
+
5
+ ## Dos modos
6
+
7
+ ### Modo A: Proyecto nuevo (no hay archivos)
8
+ Usa `opl init` (materials-first inference). El CLI pregunta "¿Qué quieres construir?" en **1 pregunta conversacional** — no 54 preguntas secuenciales.
9
+
10
+ El AI detecta automáticamente: framework, lenguaje, bundler, CSS, UI, extensiones.
11
+
12
+ **Si la inferencia es ambigua o incompleta**, puedes hacer preguntas adicionales usando las guías abajo. Pero no las hagas todas — solo las necesarias para resolver ambigüedades.
13
+
14
+ ### Modo B: Proyecto existente (hay archivos)
15
+ `opl init` infiere desde materiales reales:
16
+ - `package.json` → dependencias, scripts
17
+ - `tsconfig.json` → JSX, module, target
18
+ - Estructura de archivos → framework, patrones
19
+ - Descripción opcional del usuario
20
+
21
+ Cero preguntas si la inferencia es completa.
22
+
23
+ ---
24
+
25
+ ## Preguntas de Discovery (para AI, conversacionales)
26
+
27
+ Si la inferencia no es suficiente, usa estas preguntas **como guía, no como formulario**. Pregunta naturalmente, una conversación fluida. No preguntes todo — solo lo que falte.
28
+
29
+ ### 1️⃣ Problema y Visión
30
+ - ¿Qué problema resuelve el sistema?
31
+ - ¿Para quién es?
32
+ - ¿Qué valor diferencial aporta?
33
+ - ¿Qué pasa si no existe?
34
+
35
+ ### 2️⃣ Usuarios y Actores
36
+ - ¿Quiénes usan el sistema? (roles/usuarios)
37
+ - ¿Hay usuarios externos o internos?
38
+ - ¿Hay otros sistemas que interactúan?
39
+ - ¿Qué permisos necesita cada rol?
40
+
41
+ ### 3️⃣ Alcance del MVP (MoSCoW)
42
+ - MUST: ¿Qué es indispensable para el MVP?
43
+ - SHOULD: ¿Qué es importante pero no crítico?
44
+ - COULD: ¿Qué se puede agregar después?
45
+ - WON'T: ¿Qué queda fuera del alcance?
46
+
47
+ ### 4️⃣ Funcionalidades Clave
48
+ - ¿Cuáles son las 5-7 capacidades principales?
49
+ - ¿Cuál es el flujo principal del usuario?
50
+ - ¿Qué funcionalidades tienen más riesgo técnico?
51
+
52
+ ### 5️⃣ Restricciones
53
+ - ¿Restricciones técnicas? (stack, hosting, escalabilidad)
54
+ - ¿Restricciones legales? (GDPR, facturación, retención)
55
+ - ¿Restricciones de negocio? (presupuesto, timeline)
56
+ - ¿Restricciones de UX? (idioma, accesibilidad, dispositivos)
57
+
58
+ ### 6️⃣ Integraciones
59
+ - ¿APIs externas? (pagos, auth, envíos, notificaciones)
60
+ - ¿Servicios internos? (microservicios, BD, colas)
61
+ - ¿Webhooks o eventos?
62
+
63
+ ### 7️⃣ Riesgos
64
+ - ¿Qué puede salir mal? (riesgos técnicos)
65
+ - ¿Riesgos de negocio?
66
+ - ¿Dependencias críticas?
67
+ - ¿Qué riesgos necesitan mitigación inmediata?
68
+
69
+ ### 8️⃣ Criterios de Éxito
70
+ - ¿Cómo saber si el proyecto está bien encaminado?
71
+ - ¿Cuáles son los KPIs del MVP?
72
+ - ¿Qué definirá que el proyecto es exitoso?
73
+
74
+ ---
75
+
76
+ ## Technical Stack — preguntas de refinamiento por tipo de proyecto
77
+
78
+ Usa SOLO si el usuario no mencionó el área y necesitas decidir.
79
+
80
+ ### API
81
+ - Autenticación: none | JWT | Supabase | Auth.js | Clerk
82
+ - Base de datos: none | SQLite | PostgreSQL | MongoDB | Supabase
83
+ - ORM: none | Drizzle | Prisma | TypeORM | Knex
84
+ - Validación: none | Zod | Yup | Joi
85
+ - Testing: Vitest | Jest | none
86
+
87
+ ### Web
88
+ - Routing: React Router | TanStack Router | File-based | none
89
+ - Data fetching: TanStack Query | SWR | RTK Query | none
90
+ - State management: Zustand | Redux Toolkit | Jotai | Context only | none
91
+ - Styling: Tailwind | CSS Modules | Styled Components | Vanilla CSS
92
+
93
+ ### Mobile
94
+ - Framework: React Native | Capacitor | Tauri
95
+ - Navigation: React Navigation | File-based (Expo) | none
96
+
97
+ ### Desktop
98
+ - Framework: Tauri | Electron
99
+
100
+ ### Library
101
+ - Bundler: tsup | Rollup | Vite library mode
102
+ - Publish: npm | GitHub Packages | none
103
+
104
+ ---
105
+
106
+ ## Convenciones de configuración (para IA)
107
+
108
+ Cuando generes `prompt-lang.json` tras el setup:
109
+
110
+ ```json
111
+ {
112
+ "name": "<project-name>",
113
+ "version": "0.1.0",
114
+ "lenguaje": "react | vue | node | springboot",
115
+ "strictMode": true,
116
+ "stack": {
117
+ "base": ["react", "typescript", "vite", "tailwind"],
118
+ "ui": "shadcn | mantine | none",
119
+ "extensions": ["supabase", "stripe"],
120
+ "domain": "general | ecommerce | saas"
121
+ },
122
+ "mcp": {
123
+ "servers": { "OPL": "src/mcp-server.js" },
124
+ "protocol": "json-rpc-2.0"
125
+ }
126
+ }
127
+ ```
128
+
129
+ ## Estructura de directorios (init crea esto)
130
+
131
+ ```
132
+ .opencode/work-context/PLANS/
133
+ .opencode/work-context/REPORTS/
134
+ .openprompt/
135
+ docs/COMMITS/
136
+ docs/02-STANDARDS/
137
+ ```
@@ -2,3 +2,6 @@
2
2
 
3
3
  | Fecha | Mejora | Estado |
4
4
  |---|---|---|
5
+ | 2026-06-04 | AGENTS.md rediseñado como índice navegable (418 líneas → 36 líneas). Contenido extraído a 5 secciones bajo demanda en `docs/02-STANDARDS/sections/`. Incluye: `00-first-5-min.md` (playbook de inicio), `01-workflow.md` (workflow + gates + decision tree), `02-annotations.md` (@kind, @limit, @learn-error, @scar), `03-conventions.md` (stack, código, UI), `04-commands.md` (CLI, PRA, knowledge), `05-reference.md` (doc structure, setup). La IA lee ~1K tokens base + 0-300 bajo demanda (vs ~1,800 del monolito). | done |
6
+ | 2026-06-04 | @learn-error AGENTS-001 y AGENTS-002 documentan el problema del monolito y la falta de triggers de lectura. Triggers agregados al índice para secciones bajo demanda. | done |
7
+ | 2026-06-04 | AGENTS.template.md actualizado a v2.0 — instruye crear estructura seccionada en lugar de AGENTS.md plano. | done |