el-primor 3.0.0 → 3.0.2

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.
@@ -1,43 +1,47 @@
1
1
  ---
2
2
  name: diseno-excelente
3
- description: "Apply UI/UX anti-pattern detection, accessibility standards (WCAG 2.2 AA), and visual design principles for frontend and full-stack projects. Activate when building or reviewing UI components, pages, or design systems especially when the output looks generic or cookie-cutter."
3
+ description: "Anti-slop frontend para landing pages, portfolios y rediseños. Actívala al generar o revisar cualquier UI el agente inferirá la dirección de diseño correcta y evitará que la salida se vea genérica."
4
4
  license: MIT
5
5
  compatibility: opencode
6
6
  metadata:
7
7
  phase: "Frontend"
8
- activation: "UI code generated or reviewed"
8
+ activation: "UI/UX tasks, landing pages, portfolios, redesigns"
9
9
  ---
10
10
 
11
11
  # Diseño Excelente
12
12
 
13
13
  ## Conocimiento que el LLM base NO demuestra consistentemente
14
14
 
15
- 1. **Anti-patrones de diseño IA el "AI Slop" detector**: los LLMs producen UIs con gradientes azul-violeta (#3B82F6 → #8B5CF6), bordes redondeados de 12-16px en todo, tipografía Inter (porque es la default de Tailwind), cards con shadow-xl y backdrop-blur, y layouts centrados de 800px. Esto grita "generado por IA". La skill detecta estos patrones y propone alternativas: sistemas de diseño con personalidad (Stripe usa azul plano #635BFF, Linear usa minimalismo agresivo, Vercel usa geometría), tipografías con carácter (Geist, Mona Sans, Departure Mono), espaciados asimétricos, grids que rompen el molde.
15
+ 1. **Sistema de 3 diales para calibrar output**: DESIGN_VARIANCE (1=simetría, 10=caos), MOTION_INTENSITY (1=estático, 10=cinemático), VISUAL_DENSITY (1=galería, 10=cockpit). Usar presets: landing SaaS 7/6/4, editorial 6/4/3, sector público 3/2/5, portfolio diseñador → 8/7/3, agency/experimental 9/8/3. Los diales guían cada decisión de layout, animación y espaciado.
16
16
 
17
- 2. **WCAG 2.2 AA no es opcional**: 98% del código UI generado por LLMs falla accesibilidad. Checklist mínimo: (a) focus visible en todos los elementos interactivos (no `outline: none` sin reemplazo), (b) labels en todos los inputs (no placeholder como label, no aria-label vacío), (c) contraste 4.5:1 para texto normal y 3:1 para texto grande (usar herramienta de verificación, no adivinar), (d) landmarks ARIA (main, nav, banner, contentinfo) en la estructura, (e) alt text en imágenes informativas y alt="" en decorativas, (f) todo operable por teclado (Tab/Shift+Tab/Enter/Escape), (g) focus trapping en modales y focus restoration al cerrar.
17
+ 2. **Design Read obligatorio antes de generar código**: declarar en UNA línea: "Lectura: [tipo de página] para [audiencia], lenguaje visual [vibe], inclinándose hacia [sistema/aesthetic]." Esto fuerza al LLM a leer el brief antes de saltar a defaults de training data. Ejemplo: "Lectura: landing B2B SaaS para compradores técnicos, lenguaje Linear-minimalista, hacia Tailwind + Geist."
18
18
 
19
- 3. **Diseño responsivo real, no "se apila en mobile"**: mobile-first implica diseñar para 375px primero y luego expandir. Touch targets mínimo 44x44px (WCAG 2.5.5). Breakpoints estratégicos: 375 (mobile), 768 (tablet portrait), 1024 (tablet landscape / small desktop), 1280+ (desktop). El contenido no solo se redimensiona se reorganiza: navegación horizontal → hamburguesa/bottom sheet, multi-column → single column, hover states alternativas touch (long press, swipe). Imágenes responsivas con `srcset` y `sizes`, no solo `max-width: 100%`.
19
+ 3. **Mapa de sistemas de diseño cuándo usar qué paquete oficial**: Fluent UI enterprise/Microsoft; Material 3 Google-flavored; Carbon IBM/B2B analytics; shadcn/ui SaaS moderna; GOV.UK/USWDS sector público. UN sistema por proyecto. Si el brief pide aesthetic (glassmorphism, brutalismo, editorial), no existe paquete oficial construir con CSS nativo + Tailwind y etiquetar honestamente como aproximación.
20
20
 
21
- 4. **Performance visual (Core Web Vitals)**: CLS (Cumulative Layout Shift) se evita con dimensiones explícitas en imágenes (`width`/`height` + `aspect-ratio`), placeholders del mismo tamaño que el contenido async, y fuentes con `font-display: optional` o `swap`. LCP (Largest Contentful Paint) se optimiza con `loading="lazy"` para imágenes below-the-fold, `fetchpriority="high"` para la hero image, y preload de fuentes críticas. El LLM típicamente genera `<img src="...">` sin atributos y `<div>` que cambian de altura al cargar datos.
21
+ 4. **Anti-Default Discipline lo que JAMÁS se usa sin justificación explícita**: gradientes púrpura-azul (#3B82F6→#8B5CF6), Inter + slate-900 como base, hero centrado sobre mesh oscuro, 3 feature cards iguales, glassmorphism genérico, micro-animaciones infinitas en todo. Cada decisión se toma desde el Design Read y los diales, no desde los defaults del modelo.
22
22
 
23
- 5. **Motion y micro-interacciones con propósito**: no animar por animar. Preferir `prefers-reduced-motion` y respetarlo. Transiciones de layout con `transition: width 150ms ease-out` (nunca linear). Estados de carga: skeleton screens con shimmer (no spinners genéricos), optimistic UI con rollback, empty states con ilustraciones + CTA (no "No items found"). Estados de error con mensajes accionables (no "Something went wrong"). El LLM entrega UI que solo contempla el happy path visual.
23
+ 5. **WCAG 2.2 AA no es opcional**: focus visible (nunca outline:none sin reemplazo), labels reales en inputs (nunca placeholder como label), contraste 4.5:1 texto normal / 3:1 texto grande, landmarks ARIA (main, nav, banner), operable por teclado, focus trapping en modales. El 98% del código UI generado por LLMs falla accesibilidad.
24
+
25
+ 6. **Core Web Vitals desde el código**: CLS → width/height explícitos en imágenes + font-display:swap; LCP → fetchpriority=high en hero + loading=lazy en below-fold; INP → nunca window.addEventListener('scroll'), siempre Motion useScroll / ScrollTrigger / IntersectionObserver.
24
26
 
25
27
  ## Cuándo activarme
26
28
 
27
- - Se genera o modifica cualquier interfaz de usuario (HTML, JSX, Vue SFC, Svelte, etc.).
29
+ - Se genera o modifica UI (landing pages, portfolios, componentes visuales).
30
+ - El output se ve genérico o "estilo IA".
28
31
  - El usuario pide revisión de diseño, accesibilidad, o responsive.
29
- - El output visual se ve "genérico" o "como todas las apps IA".
30
32
 
31
33
  ## Procedimiento
32
34
 
33
- 1. Escanear el código UI generado contra los 7 anti-patrones de "AI Slop" (gradientes, border-radius, tipografía, sombras, layout centrado, blur effects, colores pastel).
34
- 2. Ejecutar checklist WCAG 2.2 AA de 7 puntos sobre el markup/live preview.
35
- 3. Verificar responsive: simular en 375px, 768px, 1024px, 1280px confirmar que no hay overflow horizontal ni touch targets <44px.
36
- 4. Auditar performance visual: cada `<img>` tiene dimensiones explícitas, no hay CLS potencial, LCP está optimizado.
37
- 5. Asegurar que existen estados de loading, empty, error, y edge case (texto muy largo, datos faltantes, roles de usuario distintos). Si faltan, reportarlos como incompletos.
35
+ 1. **Design Read**: leer el brief completo, inferir tipo de página + audiencia + vibe, declarar la lectura en una línea. Si el brief es genuinamente ambiguo, preguntar UNA sola cosa — nunca un interrogatorio.
36
+ 2. **Calibrar diales**: asignar VARIANCE/MOTION/DENSITY según presets. Los diales son variables de sesión que guían todo lo demás.
37
+ 3. **Elegir sistema de diseño**: si el brief coincide con un sistema oficial instalar paquete oficial. Si es aesthetic → CSS nativo + Tailwind, etiquetado como aproximación.
38
+ 4. **Ejecutar checklist WCAG 2.2 AA**: verificar focus, labels, contraste, landmarks, keyboard nav, screen readers, focus trapping.
39
+ 5. **Auditar performance**: cada img con dimensiones explícitas, CLS < 0.1, LCP optimizado, motion respeta prefers-reduced-motion.
40
+ 6. **Pre-Flight check**: confirmar que no hay defaults IA (gradientes púrpura, Inter, 3 cards iguales), que existen estados loading/empty/error, y que el layout colapsa correctamente en 375px.
38
41
 
39
42
  ## Errores comunes que prevengo
40
43
 
41
- - **Entregar UI genérica "estilo IA"**: gradientes azul-violeta, sombras excesivas, tipografía Inter default. Yo detecto estos patrones y propongo alternativas con personalidad.
42
- - **Ignorar accesibilidad**: el LLM entrega código que ningún lector de pantalla puede navegar. Yo aplico el checklist WCAG 2.2 AA y reporto cada violación como bloqueante.
43
- - **No verificar en mobile**: el LLM diseña para 1440px y asume que "se adapta solo". Yo fuerzo la verificación en viewports reales y rechazo layouts que hacen overflow horizontal en 375px.
44
+ - **UI genérica "estilo IA"**: gradientes azul-violeta, Inter default, shadow-xl en todo, layouts centrados de 800px. Detecto y propongo alternativas con personalidad real basadas en el Design Read.
45
+ - **Accesibilidad ignorada**: aplico checklist WCAG 2.2 AA completo y reporto cada violación como bloqueante.
46
+ - **Diseñar para 1440px y asumir que "se adapta solo"**: fuerzo verificación en 375/768/1024/1280px. Touch targets mínimo 44×44px. Rechazo overflow horizontal o texto cortado en mobile.
47
+ - **Saltar al código sin leer el brief**: fuerzo el Design Read de una línea y la calibración de diales antes de cualquier output. Sin esto, el LLM produce el mismo diseño para cualquier prompt.
package/README.md CHANGED
@@ -1,115 +1,141 @@
1
- # 🥇 El Primor v3.0.0
1
+ # 🏆 El Primor v3.0.0
2
2
 
3
3
  [![Version](https://img.shields.io/badge/version-3.0.0-blue.svg)](https://github.com/fxMT-nx/el-primor)
4
4
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
5
5
  [![OpenCode](https://img.shields.io/badge/OpenCode-compatible-ff6b6b.svg)](https://github.com/anomalyco/opencode)
6
+ [![npm](https://img.shields.io/npm/v/el-primor?color=red)](https://www.npmjs.com/package/el-primor)
6
7
 
7
- > **El asistente de IA que investiga, aprende, ejecuta y persiste.**
8
- >
9
- > *The AI assistant that researches, learns, executes, and persists.*
8
+ > *No basta con que funcione. Tiene que estar excelente.*
10
9
 
11
- ---
12
-
13
- **El Primor** es un sistema de agentes para [OpenCode](https://github.com/anomalyco/opencode) que combina 7 skills especializadas con memoria semántica persistente (TurboVec + SQLite). Diseñado para funcionar con **DeepSeek V4 Pro**, ofrece capacidades de investigación, razonamiento y ejecución que van más allá del conocimiento nativo del LLM.
10
+ **El Primor** es un agente de coding para OpenCode que **recuerda**. No empieza de cero cada sesión — construye una memoria semántica de tu stack, tus decisiones, tus errores y tus patrones. Cuanto más lo usas, más tuyo es.
14
11
 
15
12
  ---
16
13
 
17
- ## 🚀 Install
14
+ ## 🚀 Instalación
18
15
 
19
- **For humans:**
16
+ **Humanos:**
20
17
  ```bash
21
18
  npx el-primor init
22
19
  ```
23
20
 
24
- **For AI agents:** just tell your OpenCode agent:
21
+ **Agentes AI:** solo dile a tu agente de OpenCode:
25
22
 
26
23
  > *"instala El Primor"*
27
24
 
28
- The agent will run `npx el-primor init` and configure everything automatically.
25
+ El agente ejecutará `npx el-primor init` y configurará todo automáticamente: AGENTS.md, 7 skills, TurboVec, MCP server. Sin URLs, sin clones, sin comandos manuales.
29
26
 
30
27
  ---
31
28
 
32
- ## 🧠 Capacidades
29
+ ## 🧠 Cómo funciona
33
30
 
34
- | Capacidad | Descripción |
35
- |-----------|-------------|
36
- | 🔍 **Investiga** | Búsqueda semántica multicapa con verificación cruzada |
37
- | 📚 **Aprende** | Memoria persistente que sobrevive a sesiones individuales |
38
- | **Ejecuta** | 7 skills con conocimiento experto único que el LLM no posee |
39
- | 💾 **Persiste** | TurboVec (SQLite + embeddings multilingual-e5-small) |
40
-
41
- ---
42
-
43
- ## 📋 Metodología — 9 Fases
31
+ ```
32
+ TÚ EL PRIMOR MEMORIA
33
+ │ │ │
34
+ "crea un endpoint │ │
35
+ │ de auth con JWT" │ │
36
+ ──────────────────────►│ │
37
+ │ │ ┌───────────────────┐ │
38
+ │ │ │ Fase 0: MEMORIA │ │
39
+ │ │ │ turbo_vec_search() │──► busca "auth JWT"
40
+ │ │ └───────────────────┘ │ en ~/.primor/
41
+ │ │ │ │
42
+ │ │ │ ◄────────────│ "Ya hicimos esto
43
+ │ │ │ recupera │ con bcrypt, no JWT"
44
+ │ │ │ contexto │
45
+ │ │ ┌───────────────────┐ │
46
+ │ │ │ Fase 1: ESCUCHAR │ │
47
+ │ │ │ ¿JWT o sesiones? │ │
48
+ │ │ └───────────────────┘ │
49
+ │ │ │ │
50
+ │ │ ┌───────────────────┐ │
51
+ │ │ │ Fase 2: INVESTIGAR│ │
52
+ │ │ │ 1º memoria, 2º web │ │
53
+ │ │ └───────────────────┘ │
54
+ │ │ │ │
55
+ │ │ ... 9 fases ... │
56
+ │ │ │ │
57
+ │ │ ┌───────────────────┐ │
58
+ │ │ │ Fase 8: DOCUMENTAR│ │
59
+ │ │ │ turbo_vec_store() │──► guarda decisiones,
60
+ │ │ └───────────────────┘ │ errores, aprendizajes
61
+ │ │ │
62
+ │ "listo, probado" ◄────│ │
63
+ │ │ │
64
+ │ (día siguiente) │ │
65
+ │ "añade refresh token" │ │
66
+ │ ──────────────────────►│ │
67
+ │ │ turbo_vec_search() ────► ya sabe del contexto
68
+ │ │ "auth previo, bcrypt" │
69
+ │ │ │
70
+ │ │ No pregunta de cero. │
71
+ │ │ Extiende lo que ya sabe.│
72
+ ```
44
73
 
45
- Cada tarea sigue un pipeline riguroso de 9 fases que garantiza calidad:
74
+ **TurboVec** es el motor de memoria: búsqueda semántica (multilingual-e5-small, 384-dim) + SQLite para metadatos. El agente consulta antes de actuar y documenta al terminar. El conocimiento no se pierde entre sesiones.
46
75
 
47
- | Fase | Nombre | Descripción |
48
- |------|--------|-------------|
49
- | 0 | 🔎 Consulta de Memoria | Buscar conocimiento previo en TurboVec |
50
- | 1 | 🧭 Comprensión | Analizar y descomponer la tarea |
51
- | 2 | 📖 Investigación | Recopilar información relevante |
52
- | 3 | 🏗️ Planificación | Diseñar la solución paso a paso |
53
- | 4 | 🛠️ Ejecución | Implementar siguiendo el plan |
54
- | 5 | ✅ Verificación | Validar resultados contra criterios |
55
- | 6 | 📝 Documentación | Registrar decisiones y aprendizajes |
56
- | 7 | 💾 Persistencia | Guardar en memoria semántica |
57
- | 8 | 🎯 Entrega | Reportar resultados al usuario |
76
+ Cada proyecto tiene su propio espacio en `~/.primor/`. Si trabajas en 3 proyectos, cada uno acumula su propia memoria sin mezclarse.
58
77
 
59
78
  ---
60
79
 
61
- ## 🛠️ Skills
62
-
63
- Cada skill contiene conocimiento experto que el LLM **no tiene** por defecto:
80
+ ## 📋 Metodología — 9 Fases
64
81
 
65
- | Skill | Dominio |
66
- |-------|---------|
67
- | 🧬 **razonamiento-multicapa** | Análisis multi-perspectiva, árbol de decisión, verificación cruzada |
68
- | 🔬 **investigacion-profunda** | Búsqueda con fuentes, validación de hechos, síntesis de información |
69
- | 💻 **maestria-tecnica** | Arquitectura de software, patrones de diseño, optimización |
70
- | 🏗️ **ejecucion-estructurada** | Planificación granular, gestión de dependencias, puntos de control |
71
- | 🧪 **verificacion-calidad** | Testing sistemático, validación de edge cases, métricas de calidad |
72
- | 📖 **documentacion-clara** | Documentación técnica, diagramas, explicaciones accesibles |
73
- | 🌐 **contexto-global** | Conocimiento multilingüe, matices culturales, adaptación regional |
82
+ | # | Fase | TurboVec |
83
+ |---|------|----------|
84
+ | 0 | **Memoria** | `search()` recupera contexto previo |
85
+ | 1 | **Escuchar** | Lee perfil del usuario desde memoria |
86
+ | 2 | **Investigar** | Busca en memoria ANTES que en internet |
87
+ | 3 | **Planificar** | Asumption log + dependency mapping |
88
+ | 4 | **Ejecutar** | Una cosa a la vez, tool hygiene |
89
+ | 5 | **Verificar** | Tests, edge cases, quality gates |
90
+ | 6 | **Reflexionar** | ¿Se puede mejorar? ¿Quedó algo sin cubrir? |
91
+ | 7 | **Simplificar** | Eliminar complejidad accidental |
92
+ | 8 | **Documentar** | `store()` — decisiones, errores, aprendizajes |
93
+ | 9 | **Entregar** | Resumen + autoevaluación X/6 |
74
94
 
75
95
  ---
76
96
 
77
- ## 📦 Requisitos
97
+ ## 🛠️ 7 Skills
78
98
 
79
- - **[OpenCode](https://github.com/anthropics/opencode)** Plataforma de agentes
80
- - **[DeepSeek V4 Pro](https://deepseek.com)** — Modelo de lenguaje (recomendado)
81
- - Python 3.10+ (para el MCP server de TurboVec)
82
- - SQLite 3 (incluido en la mayoría de sistemas)
99
+ Cada skill contiene conocimiento que el LLM **no demuestra consistentemente**. Se cargan bajo demanda con `skill()`:
100
+
101
+ | Skill | Se activa en | Conocimiento experto |
102
+ |-------|-------------|---------------------|
103
+ | `comprension-y-plan` | F1+F3 | Pre-flight 5 dimensiones, granularidad 2-5min, assumption logging |
104
+ | `investigacion-actualizada` | F2 | APIs canónicas por stack, validación de vigencia, TurboVec-first |
105
+ | `verificacion-rigurosa` | F5+F9 | Edge cases por dominio, property-based testing, 7-point checklist |
106
+ | `seguridad-primor` | Pre-commit | OWASP Top 10 2025, secret scanning contextual, sanitización por capa |
107
+ | `debug-forense` | Bugs | Git bisect, 5 Whys, reproducción mínima progresiva |
108
+ | `diseno-excelente` | Frontend | AI Slop detector, WCAG 2.2 AA, Core Web Vitals |
109
+ | `reporting-profesional` | Continuo | Keep a Changelog, conventional commits, semver |
83
110
 
84
111
  ---
85
112
 
86
- ## 📊 Benchmarks
113
+ ## 📦 Stack técnico
87
114
 
88
- *Próximamente en desarrollo*
115
+ | Componente | Tecnología |
116
+ |------------|-----------|
117
+ | Plataforma | OpenCode v1.18.2 |
118
+ | Modelo | DeepSeek V4 Pro |
119
+ | Memoria | TurboVec (Google Research, ICLR 2026) + SQLite |
120
+ | Embeddings | multilingual-e5-small (384-dim, 94 idiomas, ARM64 nativo) |
121
+ | MCP | Server local Python (~/.primor/turbo-vec-mcp.py) |
122
+ | Instalación | npm package (`el-primor`) |
89
123
 
90
124
  ---
91
125
 
92
- ## 📁 Estructura del Repositorio
126
+ ## 📁 Estructura
93
127
 
94
128
  ```
95
- el-primor-v3/
96
- ├── AGENTS.md # Definición del agente principal
97
- ├── install.sh # Instalador one-liner
98
- ├── setup.sh # Configuración de entorno
99
- ├── turbo-vec-mcp.py # MCP server (memoria semántica)
100
- ├── skills/ # 7 skills especializadas
101
- ├── razonamiento-multicapa/
102
- ├── investigacion-profunda/
103
- ├── maestria-tecnica/
104
- │ ├── ejecucion-estructurada/
105
- │ ├── verificacion-calidad/
106
- │ ├── documentacion-clara/
107
- │ └── contexto-global/
108
- ├── .opencode/ # Configuración de OpenCode
109
- ├── .github/workflows/ # CI/CD
110
- ├── CHANGELOG.md
111
- ├── CONTRIBUTING.md
112
- └── LICENSE
129
+ el-primor/
130
+ ├── AGENTS.md SOUL + metodología 9 fases (244 líneas)
131
+ ├── bin/cli.js CLI: init, global, update, uninstall, doctor
132
+ ├── install.sh Instalador bash (fallback)
133
+ ├── setup.sh ← Inicializa ~/.primor/ + TurboVec
134
+ ├── turbo-vec-mcp.py ← MCP server (search, store, stats)
135
+ ├── .opencode/skills/ ← 7 skills on-demand
136
+ ├── opencode.json ← Config: DeepSeek V4 Pro, Plan/Build, MCP
137
+ ├── package.json ← npm: el-primor@3.0.0
138
+ └── .github/workflows/ ← CI de validación
113
139
  ```
114
140
 
115
141
  ---
@@ -117,32 +143,3 @@ el-primor-v3/
117
143
  ## 📄 Licencia
118
144
 
119
145
  MIT © 2026 [fxMT-nx](https://github.com/fxMT-nx)
120
-
121
- ---
122
-
123
- ## 🇬🇧 English
124
-
125
- **El Primor** is an agent system for [OpenCode](https://github.com/anthropics/opencode) combining 7 specialized skills with persistent semantic memory (TurboVec + SQLite). Built for **DeepSeek V4 Pro**, it provides research, reasoning, and execution capabilities beyond the LLM's native knowledge.
126
-
127
- ### Quickstart
128
-
129
- ```bash
130
- curl -fsSL https://raw.githubusercontent.com/fxMT-nx/el-primor/main/install.sh | bash
131
- ```
132
-
133
- ### Key Features
134
-
135
- - **Semantic Memory**: TurboVec with multilingual-e5-small embeddings across sessions
136
- - **7 Expert Skills**: Knowledge the LLM doesn't natively have
137
- - **9-Phase Pipeline**: From memory recall to final delivery
138
- - **MCP Server**: Native OpenCode integration via Model Context Protocol
139
- - **One-liner Install**: Single command to get everything running
140
-
141
- ### Requirements
142
-
143
- - OpenCode + DeepSeek V4 Pro
144
- - Python 3.10+ and SQLite 3
145
-
146
- ### License
147
-
148
- MIT © 2026 fxMT-nx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "el-primor",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "El Primor — AI coding agent for OpenCode. 9-phase methodology, 7 expert skills, persistent memory (TurboVec). Zero-friction install.",
5
5
  "license": "MIT",
6
6
  "author": "fxMT-nx",