@qubiit/lmagent 3.1.4 → 3.1.8

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 (38) hide show
  1. package/.agents/rules/00-master.md +2 -2
  2. package/.agents/skills/ai-agent-engineer/SKILL.md +1 -1
  3. package/.agents/skills/api-designer/SKILL.md +1 -1
  4. package/.agents/skills/architect/SKILL.md +1 -1
  5. package/.agents/skills/automation-engineer/SKILL.md +1 -1
  6. package/.agents/skills/backend-engineer/SKILL.md +1 -1
  7. package/.agents/skills/bmad-methodology/SKILL.md +1 -1
  8. package/.agents/skills/browser-agent/SKILL.md +1 -1
  9. package/.agents/skills/code-reviewer/SKILL.md +1 -1
  10. package/.agents/skills/data-engineer/SKILL.md +1 -1
  11. package/.agents/skills/devops-engineer/SKILL.md +1 -1
  12. package/.agents/skills/document-generator/SKILL.md +1 -1
  13. package/.agents/skills/frontend-engineer/SKILL.md +1 -1
  14. package/.agents/skills/git-workflow/SKILL.md +1 -1
  15. package/.agents/skills/mcp-builder/SKILL.md +1 -1
  16. package/.agents/skills/mobile-engineer/SKILL.md +1 -1
  17. package/.agents/skills/orchestrator/SKILL.md +1 -1
  18. package/.agents/skills/performance-engineer/SKILL.md +1 -1
  19. package/.agents/skills/product-manager/SKILL.md +1 -1
  20. package/.agents/skills/prompt-engineer/SKILL.md +1 -1
  21. package/.agents/skills/qa-engineer/SKILL.md +1 -1
  22. package/.agents/skills/scrum-master/SKILL.md +1 -1
  23. package/.agents/skills/security-analyst/SKILL.md +1 -1
  24. package/.agents/skills/seo-auditor/SKILL.md +1 -1
  25. package/.agents/skills/spec-driven-dev/SKILL.md +1 -1
  26. package/.agents/skills/supabase-expert/SKILL.md +1 -1
  27. package/.agents/skills/swe-agent/SKILL.md +1 -1
  28. package/.agents/skills/systematic-debugger/SKILL.md +1 -1
  29. package/.agents/skills/tech-lead/SKILL.md +1 -1
  30. package/.agents/skills/technical-writer/SKILL.md +1 -1
  31. package/.agents/skills/testing-strategist/SKILL.md +1 -1
  32. package/.agents/skills/ux-ui-designer/SKILL.md +1 -1
  33. package/install.js +43 -24
  34. package/package.json +3 -2
  35. package/scripts/create_skill.js +300 -0
  36. package/scripts/fix_descriptions.js +51 -0
  37. package/scripts/token-analyzer.js +275 -0
  38. 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.4 | **Prioridad**: MÁXIMA
3
+ > **Tipo**: `rule` | **Versión**: 3.1.8 | **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
- Estás trabajando con **LMAgent v3.1.4**. Antes de implementar cualquier cambio:
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
@@ -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)
@@ -373,8 +373,6 @@ if (process.argv.length === 2) {
373
373
  program.parse();
374
374
  }
375
375
 
376
-
377
- // Helper for Windows-proof path comparison
378
376
  function arePathsEqual(p1, p2) {
379
377
  if (!p1 || !p2) return false;
380
378
  return path.resolve(p1).toLowerCase() === path.resolve(p2).toLowerCase();
@@ -902,12 +900,26 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
902
900
  `;
903
901
  }
904
902
 
903
+ // CLEANUP: Legacy Cursor Skills Directory
904
+ // Since we moved skills to .cursor/rules/skills, we must remove .cursor/skills to avoid duplicates
905
+ if (ide.value === 'cursor') {
906
+ const legacySkillsDir = path.join(targetRoot, '.cursor/skills');
907
+ if (fs.existsSync(legacySkillsDir)) {
908
+ try {
909
+ fs.rmSync(legacySkillsDir, { recursive: true, force: true });
910
+ console.log(` ${chalk.yellow('🗑 Eliminado directorio obsoleto:')} .cursor / skills(Movido a.cursor / rules / skills)`);
911
+ } catch (e) {
912
+ console.error(chalk.red(` ⚠️ No se pudo eliminar.cursor / skills: ${e.message} `));
913
+ }
914
+ }
915
+ }
916
+
905
917
  try {
906
918
  if (!fs.existsSync(path.dirname(bridgePath))) fs.mkdirSync(path.dirname(bridgePath), { recursive: true });
907
919
  fs.writeFileSync(bridgePath, bridgeContent);
908
- console.log(` ${chalk.green('✔')} ${ide.name} Bridge Rule: ${bridgeFile}`);
920
+ console.log(` ${chalk.green('✔')} ${ide.name} Bridge Rule: ${bridgeFile} `);
909
921
  } catch (e) {
910
- console.error(chalk.red(` ❌ Error creating bridge for ${ide.name}: ${e.message}`));
922
+ console.error(chalk.red(` ❌ Error creating bridge for ${ide.name}: ${e.message} `));
911
923
  }
912
924
  }
913
925
  // 2. Install RULES (Files)
@@ -918,7 +930,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
918
930
  if (arePathsEqual(targetDir, globalRulesDir)) {
919
931
  console.log(chalk.blue(` ℹ ${ide.name}: Rules updated via Global Sync`));
920
932
  } else {
921
- console.log(chalk.bold(`\nInstalling Rules to ${chalk.cyan(targetDir)}:`));
933
+ console.log(chalk.bold(`\nInstalling Rules to ${chalk.cyan(targetDir)}: `));
922
934
 
923
935
  try {
924
936
  if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
@@ -935,7 +947,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
935
947
  const legacyPath = path.join(targetDir, legacy);
936
948
  if (fs.existsSync(legacyPath)) {
937
949
  fs.unlinkSync(legacyPath);
938
- console.log(` ${chalk.yellow('🗑 Eliminado regla obsoleta:')} ${legacy}`);
950
+ console.log(` ${chalk.yellow('🗑 Eliminado regla obsoleta:')} ${legacy} `);
939
951
  }
940
952
  }
941
953
 
@@ -945,11 +957,11 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
945
957
 
946
958
  if (fs.existsSync(srcVal)) {
947
959
  await applyFile(srcVal, destVal, currentInstallMethod);
948
- console.log(` ${chalk.blue('✔')} ${rule}`);
960
+ console.log(` ${chalk.blue('✔')} ${rule} `);
949
961
  }
950
962
  }
951
963
  } catch (e) {
952
- console.error(chalk.red(`❌ Error installing rules for ${ide.name}: ${e.message}`));
964
+ console.error(chalk.red(`❌ Error installing rules for ${ide.name}: ${e.message} `));
953
965
  }
954
966
  }
955
967
  }
@@ -962,7 +974,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
962
974
  if (arePathsEqual(targetDir, globalWorkflowsDir)) {
963
975
  console.log(chalk.blue(` ℹ ${ide.name}: Workflows updated via Global Sync`));
964
976
  } else {
965
- console.log(chalk.bold(`\nInstalling Workflows to ${chalk.cyan(targetDir)}:`));
977
+ console.log(chalk.bold(`\nInstalling Workflows to ${chalk.cyan(targetDir)}: `));
966
978
 
967
979
  try {
968
980
  if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
@@ -973,11 +985,11 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
973
985
 
974
986
  if (fs.existsSync(srcVal)) {
975
987
  await applyFile(srcVal, destVal, currentInstallMethod);
976
- console.log(` ${chalk.magenta('✔')} ${wf}`);
988
+ console.log(` ${chalk.magenta('✔')} ${wf} `);
977
989
  }
978
990
  }
979
991
  } catch (e) {
980
- console.error(chalk.red(`❌ Error installing workflows for ${ide.name}: ${e.message}`));
992
+ console.error(chalk.red(`❌ Error installing workflows for ${ide.name}: ${e.message} `));
981
993
  }
982
994
  }
983
995
  }
@@ -992,16 +1004,16 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
992
1004
  const targetDir = path.join(targetRoot, parentDir, 'memory');
993
1005
 
994
1006
  if (arePathsEqual(targetDir, path.join(globalAgentDir, 'memory'))) {
995
- // console.log(chalk.blue(` ℹ ${ide.name}: Memory updated via Global Sync`));
1007
+ // console.log(chalk.blue(` ℹ ${ ide.name }: Memory updated via Global Sync`));
996
1008
  } else {
997
- // console.log(chalk.bold(`\nInstalling Memory to ${chalk.cyan(targetDir)}:`));
1009
+ // console.log(chalk.bold(`\nInstalling Memory to ${ chalk.cyan(targetDir) }: `));
998
1010
  try {
999
1011
  if (!fs.existsSync(targetDir)) fs.mkdirSync(targetDir, { recursive: true });
1000
1012
  // Copy all contents of memory
1001
1013
  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 (Context) optimized.`);
1014
+ console.log(` ${chalk.cyan('✔')} Memory(Context) optimized.`);
1003
1015
  } catch (e) {
1004
- console.error(chalk.red(`❌ Error installing memory for ${ide.name}: ${e.message}`));
1016
+ console.error(chalk.red(`❌ Error installing memory for ${ide.name}: ${e.message} `));
1005
1017
  }
1006
1018
  }
1007
1019
  }
@@ -1014,7 +1026,7 @@ Use estos comandos para activar su rol. Para detalles, consulte \`AGENTS.md\`.
1014
1026
 
1015
1027
  // Mensaje dinámico según agentes instalados
1016
1028
  const ideNames = targetIdes.map(i => i.name).join(', ');
1017
- console.log(chalk.cyan(`🤖 Agentes configurados: ${chalk.bold(ideNames)}`));
1029
+ console.log(chalk.cyan(`🤖 Agentes configurados: ${chalk.bold(ideNames)} `));
1018
1030
  console.log('');
1019
1031
  console.log(chalk.white(' 1. Abre tu agente en este proyecto — leerá el contexto automáticamente.'));
1020
1032
  console.log(chalk.white(' 2. Usa los triggers para activar un rol específico:'));
@@ -1032,7 +1044,7 @@ async function applyFile(source, dest, method) {
1032
1044
 
1033
1045
  // Case-insensitive check for Windows compatibility
1034
1046
  if (srcPath.toLowerCase() === destPath.toLowerCase()) {
1035
- // console.log(chalk.gray(` (Skipping self-install: ${path.basename(source)})`));
1047
+ // console.log(chalk.gray(` (Skipping self - install: ${ path.basename(source) })`));
1036
1048
  return;
1037
1049
  }
1038
1050
  if (fs.existsSync(dest) || (fs.existsSync(path.dirname(dest)) && fs.readdirSync(path.dirname(dest)).includes(path.basename(dest)))) {
@@ -1065,11 +1077,11 @@ async function applyFile(source, dest, method) {
1065
1077
  }
1066
1078
  const isWindows = os.platform() === 'win32';
1067
1079
  const msg = isWindows && !isDir
1068
- ? `(Symlink falló [Requiere Admin/DevMode en Win]. Copiado.)`
1080
+ ? `(Symlink falló[Requiere Admin / DevMode en Win].Copiado.)`
1069
1081
  : `(Symlink falló, se usó copia)`;
1070
- console.log(chalk.yellow(` ${msg}`));
1082
+ console.log(chalk.yellow(` ${msg} `));
1071
1083
  } catch (err) {
1072
- console.error(chalk.red(` Error copiando ${path.basename(dest)}: ${err.message}`));
1084
+ console.error(chalk.red(` Error copiando ${path.basename(dest)}: ${err.message} `));
1073
1085
  }
1074
1086
  }
1075
1087
  } else {
@@ -1086,7 +1098,7 @@ function copyRecursiveSync(src, dest, overwrite) {
1086
1098
  try {
1087
1099
  fs.cpSync(src, dest, { recursive: true, force: overwrite, errorOnExist: false });
1088
1100
  } catch (e) {
1089
- console.error(chalk.red(`Error copying (cpSync) ${path.basename(src)}: ${e.message}`));
1101
+ console.error(chalk.red(`Error copying(cpSync) ${path.basename(src)}: ${e.message} `));
1090
1102
  // Fallback manual implementation just in case
1091
1103
  if (fs.existsSync(src)) {
1092
1104
  const stat = fs.statSync(src);
@@ -1145,7 +1157,7 @@ async function runInit(options) {
1145
1157
 
1146
1158
  const projectRoot = process.cwd();
1147
1159
  const targetRoot = projectRoot; // Fix for ReferenceError in runInit
1148
- console.log(chalk.cyan(`📦 Inicializando proyecto LMAgent en: ${chalk.bold(projectRoot)}\n`));
1160
+ console.log(chalk.cyan(`📦 Inicializando proyecto LMAgent en: ${chalk.bold(projectRoot)} \n`));
1149
1161
 
1150
1162
  // Verificar si ya está inicializado
1151
1163
  const agentsExists = fs.existsSync(path.join(projectRoot, 'AGENTS.md'));
@@ -1176,7 +1188,7 @@ async function runInit(options) {
1176
1188
  name: 'files',
1177
1189
  message: 'Archivos de entry point a copiar:',
1178
1190
  choices: INIT_FILES.map(f => ({
1179
- name: `${f.src} - ${f.desc}`,
1191
+ name: `${f.src} - ${f.desc} `,
1180
1192
  value: f.src,
1181
1193
  checked: true
1182
1194
  }))
@@ -1495,3 +1507,10 @@ function getAllItemsFlat(dir) {
1495
1507
  return results;
1496
1508
  }
1497
1509
 
1510
+
1511
+ // Execute CLI
1512
+ if (process.argv.length === 2) {
1513
+ runInstall({});
1514
+ } else {
1515
+ program.parse(process.argv);
1516
+ }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.1.4",
6
+ "version": "3.1.8",
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"