@qubiit/lmagent 3.1.4 → 3.1.7
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/.agents/rules/00-master.md +2 -2
- package/.agents/skills/ai-agent-engineer/SKILL.md +1 -1
- package/.agents/skills/api-designer/SKILL.md +1 -1
- package/.agents/skills/architect/SKILL.md +1 -1
- package/.agents/skills/automation-engineer/SKILL.md +1 -1
- package/.agents/skills/backend-engineer/SKILL.md +1 -1
- package/.agents/skills/bmad-methodology/SKILL.md +1 -1
- package/.agents/skills/browser-agent/SKILL.md +1 -1
- package/.agents/skills/code-reviewer/SKILL.md +1 -1
- package/.agents/skills/data-engineer/SKILL.md +1 -1
- package/.agents/skills/devops-engineer/SKILL.md +1 -1
- package/.agents/skills/document-generator/SKILL.md +1 -1
- package/.agents/skills/frontend-engineer/SKILL.md +1 -1
- package/.agents/skills/git-workflow/SKILL.md +1 -1
- package/.agents/skills/mcp-builder/SKILL.md +1 -1
- package/.agents/skills/mobile-engineer/SKILL.md +1 -1
- package/.agents/skills/orchestrator/SKILL.md +1 -1
- package/.agents/skills/performance-engineer/SKILL.md +1 -1
- package/.agents/skills/product-manager/SKILL.md +1 -1
- package/.agents/skills/prompt-engineer/SKILL.md +1 -1
- package/.agents/skills/qa-engineer/SKILL.md +1 -1
- package/.agents/skills/scrum-master/SKILL.md +1 -1
- package/.agents/skills/security-analyst/SKILL.md +1 -1
- package/.agents/skills/seo-auditor/SKILL.md +1 -1
- package/.agents/skills/spec-driven-dev/SKILL.md +1 -1
- package/.agents/skills/supabase-expert/SKILL.md +1 -1
- package/.agents/skills/swe-agent/SKILL.md +1 -1
- package/.agents/skills/systematic-debugger/SKILL.md +1 -1
- package/.agents/skills/tech-lead/SKILL.md +1 -1
- package/.agents/skills/technical-writer/SKILL.md +1 -1
- package/.agents/skills/testing-strategist/SKILL.md +1 -1
- package/.agents/skills/ux-ui-designer/SKILL.md +1 -1
- package/install.js +40 -23
- package/package.json +4 -2
- package/scripts/create_skill.js +300 -0
- package/scripts/fix_descriptions.js +51 -0
- package/scripts/token-analyzer.js +275 -0
- package/scripts/validate_skills.js +285 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 🚀 LMAgent Bootstrap — Instrucciones Iniciales
|
|
2
2
|
|
|
3
|
-
> **Tipo**: `rule` | **Versión**: 3.1.
|
|
3
|
+
> **Tipo**: `rule` | **Versión**: 3.1.7 | **Prioridad**: MÁXIMA
|
|
4
4
|
> Esta regla se aplica **SIEMPRE** como primer paso antes de cualquier tarea.
|
|
5
5
|
|
|
6
6
|
---
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
## 🧠 Framework
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Este archivo define la identidad, propósito y reglas fundamentales de **LMAgent v3.1.6**. Antes de implementar cualquier cambio:
|
|
19
19
|
|
|
20
20
|
1. **Lee `AGENTS.md`** — Catálogo completo de skills, rules y workflows
|
|
21
21
|
2. **Clasifica la tarea** — Nivel 0-4 según complejidad (ver `.agents/rules/01-workflow.md`)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ai-agent-engineer
|
|
3
|
-
description: Diseño e implementación de agentes de IA, sistemas multi-agente, RAG pipelines y evaluación de LLMs. Úsalo con /ai para construir agentes autónomos, pipelines de IA o sistemas de evaluación.
|
|
3
|
+
description: "Diseño e implementación de agentes de IA, sistemas multi-agente, RAG pipelines y evaluación de LLMs. Úsalo con /ai para construir agentes autónomos, pipelines de IA o sistemas de evaluación."
|
|
4
4
|
role: Diseño y Desarrollo de Agentes IA
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🤖
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api-designer
|
|
3
|
-
description: Diseño de contratos de API REST y GraphQL, especificaciones OpenAPI y AsyncAPI. Úsalo con /api-design para definir contratos antes de implementar.
|
|
3
|
+
description: "Diseño de contratos de API REST y GraphQL, especificaciones OpenAPI y AsyncAPI. Úsalo con /api-design para definir contratos antes de implementar."
|
|
4
4
|
role: Especialista en Diseño de APIs y Developer Experience
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🔌
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: architect
|
|
3
|
-
description: Diseño de arquitectura de software, patrones de diseño y estructuración de sistemas robustos y escalables. Úsalo con /arch para decisiones técnicas críticas, diseño de sistemas distribuidos o creación de ADRs.
|
|
3
|
+
description: "Diseño de arquitectura de software, patrones de diseño y estructuración de sistemas robustos y escalables. Úsalo con /arch para decisiones técnicas críticas, diseño de sistemas distribuidos o creación de ADRs."
|
|
4
4
|
role: Senior Solutions Architect - Diseño de Sistemas Distribuidos
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: �️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: automation-engineer
|
|
3
|
-
description: Automatización de procesos con n8n, Make y scripts. Úsalo con /auto para diseñar workflows de automatización, integraciones entre sistemas o bots.
|
|
3
|
+
description: "Automatización de procesos con n8n, Make y scripts. Úsalo con /auto para diseñar workflows de automatización, integraciones entre sistemas o bots."
|
|
4
4
|
role: Automatización e Integraciones
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: ⚙️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: backend-engineer
|
|
3
|
-
description: Desarrollo de lógica de servidor, APIs REST/GraphQL, bases de datos y servicios escalables. Úsalo con /dev para implementar endpoints, refactorizar código o debuggear problemas de backend.
|
|
3
|
+
description: "Desarrollo de lógica de servidor, APIs REST/GraphQL, bases de datos y servicios escalables. Úsalo con /dev para implementar endpoints, refactorizar código o debuggear problemas de backend."
|
|
4
4
|
role: Senior Backend Engineer & Tech Lead - Ingeniería de Software Robusta
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: ⚙️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-methodology
|
|
3
|
-
description: Clasificación de complejidad de tareas y selección de metodología (BMAD, SWE-Agent, Spec-Driven). Úsalo con /bmad para determinar el nivel de una tarea (0-4) y el workflow correcto.
|
|
3
|
+
description: "Clasificación de complejidad de tareas y selección de metodología (BMAD, SWE-Agent, Spec-Driven). Úsalo con /bmad para determinar el nivel de una tarea (0-4) y el workflow correcto."
|
|
4
4
|
role: Scale-Adaptive Intelligence & Project Orchestration
|
|
5
5
|
type: methodology
|
|
6
6
|
icon: 🧠
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: browser-agent
|
|
3
|
-
description: Automatización de navegadores web, scraping, testing E2E y verificación visual de UIs. Úsalo con /browser para interactuar con páginas web, extraer datos o verificar flujos de usuario.
|
|
3
|
+
description: "Automatización de navegadores web, scraping, testing E2E y verificación visual de UIs. Úsalo con /browser para interactuar con páginas web, extraer datos o verificar flujos de usuario."
|
|
4
4
|
role: Automatización de Navegador para Agentes IA
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🌐
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
|
-
description: Revisión exhaustiva de código para detectar bugs, problemas de seguridad, deuda técnica y violaciones de estilo. Úsalo con /review para hacer code reviews de PRs o módulos.
|
|
3
|
+
description: "Revisión exhaustiva de código para detectar bugs, problemas de seguridad, deuda técnica y violaciones de estilo. Úsalo con /review para hacer code reviews de PRs o módulos."
|
|
4
4
|
role: Experto en Code Review y Calidad de Código
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🔍
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-engineer
|
|
3
|
-
description: Diseño de pipelines de datos, ETL/ELT, modelado de datos y análisis. Úsalo con /data para construir pipelines, optimizar queries o diseñar esquemas de datos.
|
|
3
|
+
description: "Diseño de pipelines de datos, ETL/ELT, modelado de datos y análisis. Úsalo con /data para construir pipelines, optimizar queries o diseñar esquemas de datos."
|
|
4
4
|
role: Diseño y Administración de Bases de Datos
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🗜️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devops-engineer
|
|
3
|
-
description: Configuración de CI/CD, infraestructura en la nube, contenedores y automatización de despliegues. Úsalo con /devops para Dockerfiles, pipelines de GitHub Actions, manifiestos de Kubernetes o configuración de monitoreo.
|
|
3
|
+
description: "Configuración de CI/CD, infraestructura en la nube, contenedores y automatización de despliegues. Úsalo con /devops para Dockerfiles, pipelines de GitHub Actions, manifiestos de Kubernetes o configuración de monitoreo."
|
|
4
4
|
role: Infrastructure, CI/CD y Operaciones
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🚀
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: document-generator
|
|
3
|
-
description: Generación de documentación técnica, READMEs, changelogs y wikis. Úsalo con /docs para crear o actualizar documentación de proyectos.
|
|
3
|
+
description: "Generación de documentación técnica, READMEs, changelogs y wikis. Úsalo con /docs para crear o actualizar documentación de proyectos."
|
|
4
4
|
role: Generación de Documentos de Oficina
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 📄
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-engineer
|
|
3
|
-
description: Desarrollo de interfaces de usuario modernas, responsivas y centradas en la experiencia del usuario con React/Next.js. Úsalo con /front para implementar componentes, integrar APIs o optimizar performance frontend.
|
|
3
|
+
description: "Desarrollo de interfaces de usuario modernas, responsivas y centradas en la experiencia del usuario con React/Next.js. Úsalo con /front para implementar componentes, integrar APIs o optimizar performance frontend."
|
|
4
4
|
role: Desarrollo de Interfaces de Usuario
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🎨
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git-workflow
|
|
3
|
-
description: Gestión de flujos de trabajo Git, branching strategies, commits semánticos y releases. Úsalo con /git para gestionar ramas, crear releases o resolver conflictos.
|
|
3
|
+
description: "Gestión de flujos de trabajo Git, branching strategies, commits semánticos y releases. Úsalo con /git para gestionar ramas, crear releases o resolver conflictos."
|
|
4
4
|
role: Especialista en Git Workflows y Release Management
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🌿
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mcp-builder
|
|
3
|
-
description: Construcción de servidores MCP (Model Context Protocol) para extender capacidades de agentes de IA. Úsalo con /mcp para crear herramientas y recursos MCP.
|
|
3
|
+
description: "Construcción de servidores MCP (Model Context Protocol) para extender capacidades de agentes de IA. Úsalo con /mcp para crear herramientas y recursos MCP."
|
|
4
4
|
role: Especialista en Model Context Protocol y Agent Tooling
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🔧
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mobile-engineer
|
|
3
|
-
description: Desarrollo de aplicaciones móviles con React Native y Expo. Úsalo con /mobile para implementar pantallas, navegación o integraciones nativas en apps iOS/Android.
|
|
3
|
+
description: "Desarrollo de aplicaciones móviles con React Native y Expo. Úsalo con /mobile para implementar pantallas, navegación o integraciones nativas en apps iOS/Android."
|
|
4
4
|
role: Desarrollo de Aplicaciones Móviles
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 📱
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orchestrator
|
|
3
|
-
description: Meta-agente orquestador que clasifica tareas y rutea al experto correcto. Úsalo con /orch al inicio de cualquier tarea compleja o cuando no está claro qué persona activar.
|
|
3
|
+
description: "Meta-agente orquestador que clasifica tareas y rutea al experto correcto. Úsalo con /orch al inicio de cualquier tarea compleja o cuando no está claro qué persona activar."
|
|
4
4
|
role: Meta-Agent que decide qué persona y workflow activar
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🎯
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: performance-engineer
|
|
3
|
-
description: Optimización de rendimiento de aplicaciones, profiling, análisis de bottlenecks y tuning. Úsalo con /perf para identificar y resolver problemas de performance.
|
|
3
|
+
description: "Optimización de rendimiento de aplicaciones, profiling, análisis de bottlenecks y tuning. Úsalo con /perf para identificar y resolver problemas de performance."
|
|
4
4
|
role: Optimización de Rendimiento y Escalabilidad
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🏎️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: product-manager
|
|
3
|
-
description: Definición de la visión del producto, roadmap y requisitos detallados para maximizar el valor al usuario. Úsalo con /pm para generar PRDs, priorizar features con RICE/MoSCoW o conducir sesiones de brainstorming.
|
|
3
|
+
description: "Definición de la visión del producto, roadmap y requisitos detallados para maximizar el valor al usuario. Úsalo con /pm para generar PRDs, priorizar features con RICE/MoSCoW o conducir sesiones de brainstorming."
|
|
4
4
|
role: Senior Product Manager - Estrategia y Visión de Producto
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 📊
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prompt-engineer
|
|
3
|
-
description: Diseño y optimización de prompts para LLMs, system prompts y cadenas de razonamiento. Úsalo con /prompt para mejorar la calidad de respuestas de agentes de IA.
|
|
3
|
+
description: "Diseño y optimización de prompts para LLMs, system prompts y cadenas de razonamiento. Úsalo con /prompt para mejorar la calidad de respuestas de agentes de IA."
|
|
4
4
|
role: Ingeniería de Prompts y Arquitectura Cognitiva
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🧠
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qa-engineer
|
|
3
|
-
description: Aseguramiento de la calidad mediante pruebas automatizadas, manuales y validación rigurosa de criterios de aceptación. Úsalo con /qa para escribir tests, analizar cobertura, reproducir bugs o evaluar agentes de IA con LLM Evals.
|
|
3
|
+
description: "Aseguramiento de la calidad mediante pruebas automatizadas, manuales y validación rigurosa de criterios de aceptación. Úsalo con /qa para escribir tests, analizar cobertura, reproducir bugs o evaluar agentes de IA con LLM Evals."
|
|
4
4
|
role: Testing y Aseguramiento de Calidad
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🧪
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scrum-master
|
|
3
|
-
description: Facilitación de ceremonias ágiles, gestión de sprints y remoción de impedimentos. Úsalo con /scrum para planificar sprints, hacer retrospectivas o gestionar el backlog.
|
|
3
|
+
description: "Facilitación de ceremonias ágiles, gestión de sprints y remoción de impedimentos. Úsalo con /scrum para planificar sprints, hacer retrospectivas o gestionar el backlog."
|
|
4
4
|
role: Agile Coach & Senior Scrum Master - Facilitador de Alto Rendimiento
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🏉
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-analyst
|
|
3
|
-
description: Análisis de seguridad, threat modeling, revisión de vulnerabilidades y hardening. Úsalo con /sec para auditar código, revisar configuraciones o hacer threat modeling.
|
|
3
|
+
description: "Análisis de seguridad, threat modeling, revisión de vulnerabilidades y hardening. Úsalo con /sec para auditar código, revisar configuraciones o hacer threat modeling."
|
|
4
4
|
role: Seguridad y Compliance
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🛡️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: seo-auditor
|
|
3
|
-
description: Auditoría SEO, análisis de Core Web Vitals, optimización de metadatos y estrategia de contenido. Úsalo con /seo para auditar páginas web o mejorar el posicionamiento.
|
|
3
|
+
description: "Auditoría SEO, análisis de Core Web Vitals, optimización de metadatos y estrategia de contenido. Úsalo con /seo para auditar páginas web o mejorar el posicionamiento."
|
|
4
4
|
role: Auditoría Web y SEO Técnico
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🔎
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-driven-dev
|
|
3
|
-
description: Metodología SPEC DRIVEN: pipeline SPECIFY → PLAN → TASKS → CODE → VERIFY. Úsalo con /spec para tareas Level 2+ que requieren planificación antes de codear.
|
|
3
|
+
description: "Metodología SPEC DRIVEN: pipeline SPECIFY → PLAN → TASKS → CODE → VERIFY. Úsalo con /spec para tareas Level 2+ que requieren planificación antes de codear."
|
|
4
4
|
role: Development Methodology - Specification as Source of Truth
|
|
5
5
|
type: methodology
|
|
6
6
|
icon: 📋
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: supabase-expert
|
|
3
|
-
description: Desarrollo con Supabase: Auth, Realtime, Storage, Edge Functions y Row Level Security. Úsalo con /supabase para implementar features con Supabase como backend.
|
|
3
|
+
description: "Desarrollo con Supabase: Auth, Realtime, Storage, Edge Functions y Row Level Security. Úsalo con /supabase para implementar features con Supabase como backend."
|
|
4
4
|
role: Experto en Supabase Platform & PostgreSQL
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: ⚡
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: swe-agent
|
|
3
|
-
description: Resolución autónoma de issues de GitHub usando trajectory-based debugging. Úsalo con /swe para resolver bugs complejos de forma sistemática y autónoma.
|
|
3
|
+
description: "Resolución autónoma de issues de GitHub usando trajectory-based debugging. Úsalo con /swe para resolver bugs complejos de forma sistemática y autónoma."
|
|
4
4
|
role: Autonomous Software Engineering Agent
|
|
5
5
|
type: methodology
|
|
6
6
|
icon: 🔧
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: systematic-debugger
|
|
3
|
-
description: Debugging sistemático y análisis de causa raíz de bugs. Úsalo con /debug para investigar errores complejos de forma metódica.
|
|
3
|
+
description: "Debugging sistemático y análisis de causa raíz de bugs. Úsalo con /debug para investigar errores complejos de forma metódica."
|
|
4
4
|
role: Debugging Metódico y Resolución de Problemas
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🔍
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tech-lead
|
|
3
|
-
description: Liderazgo técnico, decisiones de arquitectura, mentoring y gestión de deuda técnica. Úsalo con /lead para decisiones técnicas ejecutivas o revisiones de arquitectura.
|
|
3
|
+
description: "Liderazgo técnico, decisiones de arquitectura, mentoring y gestión de deuda técnica. Úsalo con /lead para decisiones técnicas ejecutivas o revisiones de arquitectura."
|
|
4
4
|
role: Liderazgo Técnico y Mentorship
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🧭
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: technical-writer
|
|
3
|
-
description: Redacción de documentación técnica clara, tutoriales, guías de API y changelogs. Úsalo con /write para crear documentación de alta calidad.
|
|
3
|
+
description: "Redacción de documentación técnica clara, tutoriales, guías de API y changelogs. Úsalo con /write para crear documentación de alta calidad."
|
|
4
4
|
role: Documentación Técnica y Comunicación
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 📝
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: testing-strategist
|
|
3
|
-
description: Diseño de estrategias de testing, selección de herramientas y definición de métricas de calidad. Úsalo con /test-strategy para planificar la cobertura de tests de un proyecto.
|
|
3
|
+
description: "Diseño de estrategias de testing, selección de herramientas y definición de métricas de calidad. Úsalo con /test-strategy para planificar la cobertura de tests de un proyecto."
|
|
4
4
|
role: Especialista en Testing Strategy y Quality Assurance Automation
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🧪
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ux-ui-designer
|
|
3
|
-
description: Diseño de experiencias de usuario, sistemas de diseño, wireframes y accesibilidad. Úsalo con /ux para definir flujos de usuario, componentes de diseño o auditar accesibilidad.
|
|
3
|
+
description: "Diseño de experiencias de usuario, sistemas de diseño, wireframes y accesibilidad. Úsalo con /ux para definir flujos de usuario, componentes de diseño o auditar accesibilidad."
|
|
4
4
|
role: Diseño de Experiencia e Interfaz de Usuario
|
|
5
5
|
type: agent_persona
|
|
6
6
|
icon: 🎨
|
package/install.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const path = require('path');
|
|
@@ -40,7 +40,7 @@ const INIT_DIRS = [
|
|
|
40
40
|
const IDE_CONFIGS = [
|
|
41
41
|
// --- IDEs Principales (Auto-Detectados) ---
|
|
42
42
|
// Cursor: usa .cursor/rules/*.mdc (formato MDC con frontmatter)
|
|
43
|
-
{ name: 'Cursor', value: 'cursor', rulesDir: '.cursor/rules', skillsDir: '.cursor/skills', workflowsDir: '.cursor/workflows', configFile: '.cursorrules', bridgeFile: 'lmagent.mdc', markerFile: '.cursorrules', forceCopy: true },
|
|
43
|
+
{ name: 'Cursor', value: 'cursor', rulesDir: '.cursor/rules', skillsDir: '.cursor/rules/skills', workflowsDir: '.cursor/workflows', configFile: '.cursorrules', bridgeFile: 'lmagent.mdc', markerFile: '.cursorrules', forceCopy: true },
|
|
44
44
|
// Windsurf Wave 8+: usa .windsurf/rules/*.md (directorio, NO .windsurfrules)
|
|
45
45
|
{ name: 'Windsurf', value: 'windsurf', rulesDir: '.windsurf/rules', skillsDir: '.windsurf/skills', workflowsDir: '.windsurf/workflows', configFile: null, bridgeFile: 'lmagent.md', markerFile: '.windsurf', forceCopy: true },
|
|
46
46
|
// Cline: usa .clinerules/ (directorio con .md files)
|
|
@@ -902,12 +902,26 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
902
902
|
`;
|
|
903
903
|
}
|
|
904
904
|
|
|
905
|
+
// CLEANUP: Legacy Cursor Skills Directory
|
|
906
|
+
// Since we moved skills to .cursor/rules/skills, we must remove .cursor/skills to avoid duplicates
|
|
907
|
+
if (ide.value === 'cursor') {
|
|
908
|
+
const legacySkillsDir = path.join(targetRoot, '.cursor/skills');
|
|
909
|
+
if (fs.existsSync(legacySkillsDir)) {
|
|
910
|
+
try {
|
|
911
|
+
fs.rmSync(legacySkillsDir, { recursive: true, force: true });
|
|
912
|
+
console.log(` ${chalk.yellow('🗑 Eliminado directorio obsoleto:')} .cursor / skills(Movido a.cursor / rules / skills)`);
|
|
913
|
+
} catch (e) {
|
|
914
|
+
console.error(chalk.red(` ⚠️ No se pudo eliminar.cursor / skills: ${e.message} `));
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
|
|
905
919
|
try {
|
|
906
920
|
if (!fs.existsSync(path.dirname(bridgePath))) fs.mkdirSync(path.dirname(bridgePath), { recursive: true });
|
|
907
921
|
fs.writeFileSync(bridgePath, bridgeContent);
|
|
908
|
-
console.log(` ${chalk.green('✔')} ${ide.name} Bridge Rule: ${bridgeFile}`);
|
|
922
|
+
console.log(` ${chalk.green('✔')} ${ide.name} Bridge Rule: ${bridgeFile} `);
|
|
909
923
|
} catch (e) {
|
|
910
|
-
console.error(chalk.red(` ❌ Error creating bridge for ${ide.name}: ${e.message}`));
|
|
924
|
+
console.error(chalk.red(` ❌ Error creating bridge for ${ide.name}: ${e.message} `));
|
|
911
925
|
}
|
|
912
926
|
}
|
|
913
927
|
// 2. Install RULES (Files)
|
|
@@ -918,7 +932,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
918
932
|
if (arePathsEqual(targetDir, globalRulesDir)) {
|
|
919
933
|
console.log(chalk.blue(` ℹ ${ide.name}: Rules updated via Global Sync`));
|
|
920
934
|
} else {
|
|
921
|
-
console.log(chalk.bold(`\nInstalling Rules to ${chalk.cyan(targetDir)}
|
|
935
|
+
console.log(chalk.bold(`\nInstalling Rules to ${chalk.cyan(targetDir)}: `));
|
|
922
936
|
|
|
923
937
|
try {
|
|
924
938
|
if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
|
|
@@ -935,7 +949,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
935
949
|
const legacyPath = path.join(targetDir, legacy);
|
|
936
950
|
if (fs.existsSync(legacyPath)) {
|
|
937
951
|
fs.unlinkSync(legacyPath);
|
|
938
|
-
console.log(` ${chalk.yellow('🗑 Eliminado regla obsoleta:')} ${legacy}`);
|
|
952
|
+
console.log(` ${chalk.yellow('🗑 Eliminado regla obsoleta:')} ${legacy} `);
|
|
939
953
|
}
|
|
940
954
|
}
|
|
941
955
|
|
|
@@ -945,11 +959,11 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
945
959
|
|
|
946
960
|
if (fs.existsSync(srcVal)) {
|
|
947
961
|
await applyFile(srcVal, destVal, currentInstallMethod);
|
|
948
|
-
console.log(` ${chalk.blue('✔')} ${rule}`);
|
|
962
|
+
console.log(` ${chalk.blue('✔')} ${rule} `);
|
|
949
963
|
}
|
|
950
964
|
}
|
|
951
965
|
} catch (e) {
|
|
952
|
-
console.error(chalk.red(`❌ Error installing rules for ${ide.name}: ${e.message}`));
|
|
966
|
+
console.error(chalk.red(`❌ Error installing rules for ${ide.name}: ${e.message} `));
|
|
953
967
|
}
|
|
954
968
|
}
|
|
955
969
|
}
|
|
@@ -962,7 +976,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
962
976
|
if (arePathsEqual(targetDir, globalWorkflowsDir)) {
|
|
963
977
|
console.log(chalk.blue(` ℹ ${ide.name}: Workflows updated via Global Sync`));
|
|
964
978
|
} else {
|
|
965
|
-
console.log(chalk.bold(`\nInstalling Workflows to ${chalk.cyan(targetDir)}
|
|
979
|
+
console.log(chalk.bold(`\nInstalling Workflows to ${chalk.cyan(targetDir)}: `));
|
|
966
980
|
|
|
967
981
|
try {
|
|
968
982
|
if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
|
|
@@ -973,11 +987,11 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
973
987
|
|
|
974
988
|
if (fs.existsSync(srcVal)) {
|
|
975
989
|
await applyFile(srcVal, destVal, currentInstallMethod);
|
|
976
|
-
console.log(` ${chalk.magenta('✔')} ${wf}`);
|
|
990
|
+
console.log(` ${chalk.magenta('✔')} ${wf} `);
|
|
977
991
|
}
|
|
978
992
|
}
|
|
979
993
|
} catch (e) {
|
|
980
|
-
console.error(chalk.red(`❌ Error installing workflows for ${ide.name}: ${e.message}`));
|
|
994
|
+
console.error(chalk.red(`❌ Error installing workflows for ${ide.name}: ${e.message} `));
|
|
981
995
|
}
|
|
982
996
|
}
|
|
983
997
|
}
|
|
@@ -992,16 +1006,16 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
992
1006
|
const targetDir = path.join(targetRoot, parentDir, 'memory');
|
|
993
1007
|
|
|
994
1008
|
if (arePathsEqual(targetDir, path.join(globalAgentDir, 'memory'))) {
|
|
995
|
-
// console.log(chalk.blue(` ℹ ${ide.name}: Memory updated via Global Sync`));
|
|
1009
|
+
// console.log(chalk.blue(` ℹ ${ ide.name }: Memory updated via Global Sync`));
|
|
996
1010
|
} else {
|
|
997
|
-
// console.log(chalk.bold(`\nInstalling Memory to ${chalk.cyan(targetDir)}
|
|
1011
|
+
// console.log(chalk.bold(`\nInstalling Memory to ${ chalk.cyan(targetDir) }: `));
|
|
998
1012
|
try {
|
|
999
1013
|
if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
|
|
1000
1014
|
// Copy all contents of memory
|
|
1001
1015
|
copyRecursiveSync(SOURCE_MEMORY, targetDir, true); // Always copy/overwrite for now, or use applyFile for items if we want symlinks
|
|
1002
|
-
console.log(` ${chalk.cyan('✔')} Memory
|
|
1016
|
+
console.log(` ${chalk.cyan('✔')} Memory(Context) optimized.`);
|
|
1003
1017
|
} catch (e) {
|
|
1004
|
-
console.error(chalk.red(`❌ Error installing memory for ${ide.name}: ${e.message}`));
|
|
1018
|
+
console.error(chalk.red(`❌ Error installing memory for ${ide.name}: ${e.message} `));
|
|
1005
1019
|
}
|
|
1006
1020
|
}
|
|
1007
1021
|
}
|
|
@@ -1014,7 +1028,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
|
|
|
1014
1028
|
|
|
1015
1029
|
// Mensaje dinámico según agentes instalados
|
|
1016
1030
|
const ideNames = targetIdes.map(i => i.name).join(', ');
|
|
1017
|
-
console.log(chalk.cyan(`🤖 Agentes configurados: ${chalk.bold(ideNames)}`));
|
|
1031
|
+
console.log(chalk.cyan(`🤖 Agentes configurados: ${chalk.bold(ideNames)} `));
|
|
1018
1032
|
console.log('');
|
|
1019
1033
|
console.log(chalk.white(' 1. Abre tu agente en este proyecto — leerá el contexto automáticamente.'));
|
|
1020
1034
|
console.log(chalk.white(' 2. Usa los triggers para activar un rol específico:'));
|
|
@@ -1032,7 +1046,7 @@ async function applyFile(source, dest, method) {
|
|
|
1032
1046
|
|
|
1033
1047
|
// Case-insensitive check for Windows compatibility
|
|
1034
1048
|
if (srcPath.toLowerCase() === destPath.toLowerCase()) {
|
|
1035
|
-
// console.log(chalk.gray(` (Skipping self-install: ${path.basename(source)})`));
|
|
1049
|
+
// console.log(chalk.gray(` (Skipping self - install: ${ path.basename(source) })`));
|
|
1036
1050
|
return;
|
|
1037
1051
|
}
|
|
1038
1052
|
if (fs.existsSync(dest) || (fs.existsSync(path.dirname(dest)) && fs.readdirSync(path.dirname(dest)).includes(path.basename(dest)))) {
|
|
@@ -1065,11 +1079,11 @@ async function applyFile(source, dest, method) {
|
|
|
1065
1079
|
}
|
|
1066
1080
|
const isWindows = os.platform() === 'win32';
|
|
1067
1081
|
const msg = isWindows && !isDir
|
|
1068
|
-
? `(Symlink falló
|
|
1082
|
+
? `(Symlink falló[Requiere Admin / DevMode en Win].Copiado.)`
|
|
1069
1083
|
: `(Symlink falló, se usó copia)`;
|
|
1070
|
-
console.log(chalk.yellow(` ${msg}`));
|
|
1084
|
+
console.log(chalk.yellow(` ${msg} `));
|
|
1071
1085
|
} catch (err) {
|
|
1072
|
-
console.error(chalk.red(` Error copiando ${path.basename(dest)}: ${err.message}`));
|
|
1086
|
+
console.error(chalk.red(` Error copiando ${path.basename(dest)}: ${err.message} `));
|
|
1073
1087
|
}
|
|
1074
1088
|
}
|
|
1075
1089
|
} else {
|
|
@@ -1086,7 +1100,7 @@ function copyRecursiveSync(src, dest, overwrite) {
|
|
|
1086
1100
|
try {
|
|
1087
1101
|
fs.cpSync(src, dest, { recursive: true, force: overwrite, errorOnExist: false });
|
|
1088
1102
|
} catch (e) {
|
|
1089
|
-
console.error(chalk.red(`Error copying
|
|
1103
|
+
console.error(chalk.red(`Error copying(cpSync) ${path.basename(src)}: ${e.message} `));
|
|
1090
1104
|
// Fallback manual implementation just in case
|
|
1091
1105
|
if (fs.existsSync(src)) {
|
|
1092
1106
|
const stat = fs.statSync(src);
|
|
@@ -1145,7 +1159,7 @@ async function runInit(options) {
|
|
|
1145
1159
|
|
|
1146
1160
|
const projectRoot = process.cwd();
|
|
1147
1161
|
const targetRoot = projectRoot; // Fix for ReferenceError in runInit
|
|
1148
|
-
console.log(chalk.cyan(`📦 Inicializando proyecto LMAgent en: ${chalk.bold(projectRoot)}\n`));
|
|
1162
|
+
console.log(chalk.cyan(`📦 Inicializando proyecto LMAgent en: ${chalk.bold(projectRoot)} \n`));
|
|
1149
1163
|
|
|
1150
1164
|
// Verificar si ya está inicializado
|
|
1151
1165
|
const agentsExists = fs.existsSync(path.join(projectRoot, 'AGENTS.md'));
|
|
@@ -1176,7 +1190,7 @@ async function runInit(options) {
|
|
|
1176
1190
|
name: 'files',
|
|
1177
1191
|
message: 'Archivos de entry point a copiar:',
|
|
1178
1192
|
choices: INIT_FILES.map(f => ({
|
|
1179
|
-
name: `${f.src} - ${f.desc}`,
|
|
1193
|
+
name: `${f.src} - ${f.desc} `,
|
|
1180
1194
|
value: f.src,
|
|
1181
1195
|
checked: true
|
|
1182
1196
|
}))
|
|
@@ -1495,3 +1509,6 @@ function getAllItemsFlat(dir) {
|
|
|
1495
1509
|
return results;
|
|
1496
1510
|
}
|
|
1497
1511
|
|
|
1512
|
+
|
|
1513
|
+
// Execute CLI
|
|
1514
|
+
program.parse(process.argv);
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "3.1.
|
|
6
|
+
"version": "3.1.7",
|
|
7
7
|
"files": [
|
|
8
8
|
"install.js",
|
|
9
9
|
"README.md",
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"AGENTS.md",
|
|
12
12
|
"CLAUDE.md",
|
|
13
13
|
"CONTRIBUTING.md",
|
|
14
|
-
".agents"
|
|
14
|
+
".agents",
|
|
15
|
+
"scripts"
|
|
15
16
|
],
|
|
16
17
|
"engines": {
|
|
17
18
|
"node": ">=22.0.0"
|
|
@@ -74,6 +75,7 @@
|
|
|
74
75
|
"author": "Leandro Martín Alvarez (QuBiit)",
|
|
75
76
|
"license": "MIT",
|
|
76
77
|
"dependencies": {
|
|
78
|
+
"@qubiit/lmagent": "file:qubiit-lmagent-3.1.6.tgz",
|
|
77
79
|
"boxen": "^8.0.1",
|
|
78
80
|
"chalk": "^4.1.2",
|
|
79
81
|
"commander": "^13.1.0",
|