@qubiit/lmagent 2.6.5 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CLAUDE.md +3 -3
- package/README.md +25 -1
- package/install.js +11 -10
- package/package.json +16 -1
- package/rules/_bootstrap.md +2 -2
- package/scripts/create_skill.js +4 -4
- package/scripts/validate_skills.js +3 -3
- package/skills/ai-agent-engineer/SKILL.md +1 -1
- package/skills/api-designer/SKILL.md +2 -2
- package/skills/architect/SKILL.md +1 -1
- package/skills/automation-engineer/SKILL.md +1 -1
- package/skills/backend-engineer/SKILL.md +1 -1
- package/skills/bmad-methodology/SKILL.md +2 -2
- package/skills/browser-agent/SKILL.md +1 -1
- package/skills/code-reviewer/SKILL.md +2 -2
- package/skills/data-engineer/SKILL.md +1 -1
- package/skills/devops-engineer/SKILL.md +1 -1
- package/skills/document-generator/SKILL.md +1 -1
- package/skills/frontend-engineer/SKILL.md +1 -1
- package/skills/git-workflow/SKILL.md +2 -2
- package/skills/mcp-builder/SKILL.md +2 -2
- package/skills/mobile-engineer/SKILL.md +1 -1
- package/skills/orchestrator/SKILL.md +1 -1
- package/skills/performance-engineer/SKILL.md +1 -1
- package/skills/product-manager/SKILL.md +1 -1
- package/skills/prompt-engineer/SKILL.md +1 -1
- package/skills/qa-engineer/SKILL.md +1 -1
- package/skills/scrum-master/SKILL.md +1 -1
- package/skills/security-analyst/SKILL.md +1 -1
- package/skills/seo-auditor/SKILL.md +1 -1
- package/skills/spec-driven-dev/SKILL.md +2 -2
- package/skills/supabase-expert/SKILL.md +2 -2
- package/skills/swe-agent/SKILL.md +2 -2
- package/skills/systematic-debugger/SKILL.md +1 -1
- package/skills/tech-lead/SKILL.md +1 -1
- package/skills/technical-writer/SKILL.md +1 -1
- package/skills/testing-strategist/SKILL.md +2 -2
- package/skills/ux-ui-designer/SKILL.md +1 -1
- package/.editorconfig +0 -18
- package/pyproject.toml +0 -182
package/AGENTS.md
CHANGED
package/CLAUDE.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# LMAgent Framework v2.
|
|
1
|
+
# LMAgent Framework v2.7.0 - Claude Code Instructions
|
|
2
2
|
|
|
3
3
|
> [!IMPORTANT]
|
|
4
|
-
> **ANTES DE HACER CUALQUIER COSA**: Este proyecto usa el framework **LMAgent v2.
|
|
4
|
+
> **ANTES DE HACER CUALQUIER COSA**: Este proyecto usa el framework **LMAgent v2.7.0**.
|
|
5
5
|
> **DEBES** leer `AGENTS.md` y `rules/_bootstrap.md` antes de implementar cualquier cambio.
|
|
6
6
|
|
|
7
7
|
## Framework
|
|
8
8
|
|
|
9
|
-
Estás trabajando con **LMAgent v2.
|
|
9
|
+
Estás trabajando con **LMAgent v2.7.0**, un framework para desarrollo de automatizaciones y agentes de IA. Organiza las capacidades del agente en tres pilares: **Skills**, **Rules** y **Workflows**.
|
|
10
10
|
|
|
11
11
|
## ⚡ Inicio Rápido
|
|
12
12
|
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
by QuBit
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
  
|
|
14
14
|
|
|
15
15
|
> **"Separate the reasoning from the execution."**
|
|
16
16
|
> LMAgent is the foundational runtime that empowers your AI Agents with standardized **Skills**, **Rules**, and **Workflows** across any IDE (Cursor, Windsurf, VSCode, Zed, Qodo).
|
|
@@ -63,6 +63,30 @@ lmagent doctor
|
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
+
## 🏛️ Architecture: Global Brain vs. Local Project
|
|
67
|
+
|
|
68
|
+
LMAgent uses a **Hybrid Architecture** to balance **Centralized Updates** with **Project Portability**.
|
|
69
|
+
|
|
70
|
+
### The Problem it Solves
|
|
71
|
+
* **Global Installs** run the risk of breaking projects if they rely on your specific machine paths.
|
|
72
|
+
* **Local Copies** become stale and are hard to update across 10+ projects.
|
|
73
|
+
|
|
74
|
+
### The Solution: "Symlink Bridge"
|
|
75
|
+
|
|
76
|
+
| Layer | Location | Purpose |
|
|
77
|
+
| :--- | :--- | :--- |
|
|
78
|
+
| **1. Global Brain** | `~/.agents/` | **Single Source of Truth**. Hosted in your user home. Updated via `npm update -g`. |
|
|
79
|
+
| **2. Local Project** | `./.cursor/skills/` | **Symlinks** pointing to the Global Brain. Lightweight and bridge-like. |
|
|
80
|
+
| **3. Context** | `./CLAUDE.md` | Points to **Local Symlinks** (Relative Paths). **100% Portable** to other devs. |
|
|
81
|
+
|
|
82
|
+
### Why `init` and `install` are separate?
|
|
83
|
+
1. **`lmagent init`**: Creates the **Portable Structure** (files that *must* exist in the repo to work, like `CLAUDE.md`).
|
|
84
|
+
2. **`lmagent install`**: Builds the **Bridge** (Symlinks) specific to *your* machine's environment.
|
|
85
|
+
|
|
86
|
+
> **Best Practice**: Commit `CLAUDE.md` and `AGENTS.md`. **Do NOT** commit the `.cursor/skills` folder (add it to `.gitignore`), as each developer should run `lmagent install` to link their own brain.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
66
90
|
## 🛠️ Creating New Skills
|
|
67
91
|
Need a custom agent? Use the interactive generator:
|
|
68
92
|
|
package/install.js
CHANGED
|
@@ -369,7 +369,7 @@ const IDE_CONFIGS = [
|
|
|
369
369
|
program
|
|
370
370
|
.name('lmagent')
|
|
371
371
|
.description('CLI para instalar skills y reglas de LMAgent')
|
|
372
|
-
.version('2.
|
|
372
|
+
.version('2.7.0'); // Version bump
|
|
373
373
|
|
|
374
374
|
program.command('install')
|
|
375
375
|
.description('Instalar skills, rules y workflows en el IDE del proyecto')
|
|
@@ -589,35 +589,39 @@ async function runInstall(options) {
|
|
|
589
589
|
|
|
590
590
|
console.log('');
|
|
591
591
|
console.log(chalk.gray('--- Selección de Contenido ---'));
|
|
592
|
+
// Seleccionar Skills
|
|
593
|
+
console.log(chalk.bold('\n🔹 Skills Disponibles:'));
|
|
592
594
|
const skillsAnswer = await inquirer.prompt([
|
|
593
595
|
{
|
|
594
596
|
type: 'checkbox',
|
|
595
597
|
name: 'skills',
|
|
596
|
-
message: 'Selecciona
|
|
598
|
+
message: 'Selecciona:',
|
|
597
599
|
choices: availableSkills.map(s => ({ name: s, checked: true })),
|
|
598
600
|
pageSize: 15
|
|
599
601
|
}
|
|
600
602
|
]);
|
|
601
603
|
selectedSkills = skillsAnswer.skills;
|
|
602
604
|
|
|
603
|
-
|
|
605
|
+
// Seleccionar Rules
|
|
606
|
+
console.log(chalk.bold('\n🔹 Reglas Disponibles:'));
|
|
604
607
|
const rulesAnswer = await inquirer.prompt([
|
|
605
608
|
{
|
|
606
609
|
type: 'checkbox',
|
|
607
610
|
name: 'rules',
|
|
608
|
-
message: 'Selecciona
|
|
611
|
+
message: 'Selecciona:',
|
|
609
612
|
choices: availableRules.map(r => ({ name: r, checked: true })),
|
|
610
613
|
pageSize: 15
|
|
611
614
|
}
|
|
612
615
|
]);
|
|
613
616
|
selectedRules = rulesAnswer.rules;
|
|
614
617
|
|
|
615
|
-
|
|
618
|
+
// Seleccionar Workflows
|
|
619
|
+
console.log(chalk.bold('\n🔹 Workflows Disponibles:'));
|
|
616
620
|
const workflowsAnswer = await inquirer.prompt([
|
|
617
621
|
{
|
|
618
622
|
type: 'checkbox',
|
|
619
623
|
name: 'workflows',
|
|
620
|
-
message: 'Selecciona
|
|
624
|
+
message: 'Selecciona:',
|
|
621
625
|
choices: availableWorkflows.map(w => ({ name: w, checked: true })),
|
|
622
626
|
pageSize: 15
|
|
623
627
|
}
|
|
@@ -908,9 +912,6 @@ async function runInit(options) {
|
|
|
908
912
|
}))
|
|
909
913
|
}
|
|
910
914
|
]);
|
|
911
|
-
filesToCopy = INIT_FILES.filter(f => answers.files.includes(f.src));
|
|
912
|
-
dirsToCopy = INIT_DIRS.filter(d => answers.dirs.includes(d.src));
|
|
913
|
-
filesToCopy = INIT_FILES.filter(f => answers.files.includes(f.src));
|
|
914
915
|
dirsToCopy = INIT_DIRS.filter(d => answers.dirs.includes(d.src));
|
|
915
916
|
|
|
916
917
|
// Seleccionar IDE para destino de archivos
|
|
@@ -1016,7 +1017,7 @@ DEBUG=true
|
|
|
1016
1017
|
}
|
|
1017
1018
|
|
|
1018
1019
|
// Resumen
|
|
1019
|
-
console.log(gradient.pastel.multiline('\n✨ Proyecto inicializado con LMAgent v2.
|
|
1020
|
+
console.log(gradient.pastel.multiline('\n✨ Proyecto inicializado con LMAgent v2.7.0 ✨'));
|
|
1020
1021
|
console.log('');
|
|
1021
1022
|
console.log(chalk.cyan('Próximos pasos:'));
|
|
1022
1023
|
console.log(` 1. ${chalk.bold('lmagent install')} - Instalar skills/rules/workflows en tu IDE`);
|
package/package.json
CHANGED
|
@@ -3,7 +3,22 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.7.0",
|
|
7
|
+
"files": [
|
|
8
|
+
"install.js",
|
|
9
|
+
"README.md",
|
|
10
|
+
"LICENSE",
|
|
11
|
+
"AGENTS.md",
|
|
12
|
+
"CLAUDE.md",
|
|
13
|
+
"CONTRIBUTING.md",
|
|
14
|
+
"config",
|
|
15
|
+
"docs",
|
|
16
|
+
"rules",
|
|
17
|
+
"scripts",
|
|
18
|
+
"skills",
|
|
19
|
+
"templates",
|
|
20
|
+
"workflows"
|
|
21
|
+
],
|
|
7
22
|
"description": "CLI to install LMAgent skills and rules into your IDE",
|
|
8
23
|
"main": "install.js",
|
|
9
24
|
"bin": {
|
package/rules/_bootstrap.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 🚀 LMAgent Bootstrap — Instrucciones Iniciales
|
|
2
2
|
|
|
3
|
-
> **Tipo**: `rule` | **Versión**: 2.
|
|
3
|
+
> **Tipo**: `rule` | **Versión**: 2.7.0 | **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 v2.
|
|
18
|
+
Estás trabajando con **LMAgent v2.7.0**. 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 `rules/workflow.md`)
|
package/scripts/create_skill.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* LMAgent Skill Generator — v2.
|
|
4
|
+
* LMAgent Skill Generator — v2.7.0
|
|
5
5
|
*
|
|
6
6
|
* Genera la estructura completa de un nuevo skill interactivamente.
|
|
7
7
|
*
|
|
@@ -92,7 +92,7 @@ name: ${data.name}
|
|
|
92
92
|
description: ${data.description}
|
|
93
93
|
role: ${data.role}
|
|
94
94
|
type: ${data.type}
|
|
95
|
-
version: 2.
|
|
95
|
+
version: 2.7
|
|
96
96
|
icon: ${data.icon}
|
|
97
97
|
expertise:
|
|
98
98
|
${expertise}
|
|
@@ -206,13 +206,13 @@ Antes de considerar una tarea terminada, verifica TODO:
|
|
|
206
206
|
|
|
207
207
|
---
|
|
208
208
|
|
|
209
|
-
*Skill version: 2.
|
|
209
|
+
*Skill version: 2.7 | LMAgent Framework*
|
|
210
210
|
`;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
// ─── Main ─────────────────────────────────────────────────────
|
|
214
214
|
async function main() {
|
|
215
|
-
console.log(c.bold('\n🛠️ LMAgent Skill Generator v2.
|
|
215
|
+
console.log(c.bold('\n🛠️ LMAgent Skill Generator v2.7.0\n'));
|
|
216
216
|
|
|
217
217
|
const prompt = createPrompt();
|
|
218
218
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* LMAgent Skills Validator — v2.
|
|
4
|
+
* LMAgent Skills Validator — v2.7.0
|
|
5
5
|
*
|
|
6
6
|
* Valida la integridad de todos los skills del framework.
|
|
7
7
|
* Verifica: frontmatter YAML, campos obligatorios, estructura de directorio.
|
|
@@ -29,7 +29,7 @@ const SKILLS_DIR = join(ROOT, 'skills');
|
|
|
29
29
|
// ─── Configuración ────────────────────────────────────────────
|
|
30
30
|
const REQUIRED_FIELDS = ['name', 'description', 'role', 'type', 'version', 'icon', 'expertise', 'activates_on', 'triggers'];
|
|
31
31
|
const VALID_TYPES = ['agent_persona', 'methodology'];
|
|
32
|
-
const CURRENT_VERSION = 2.
|
|
32
|
+
const CURRENT_VERSION = 2.7;
|
|
33
33
|
const OPTIONAL_DIRS = ['scripts', 'references', 'assets'];
|
|
34
34
|
|
|
35
35
|
// ─── Colores (sin dependencias) ───────────────────────────────
|
|
@@ -196,7 +196,7 @@ function main() {
|
|
|
196
196
|
|
|
197
197
|
const c = chalk;
|
|
198
198
|
|
|
199
|
-
console.log(c.bold('\n🔍 LMAgent Skill Validator v2.
|
|
199
|
+
console.log(c.bold('\n🔍 LMAgent Skill Validator v2.7.0\n'));
|
|
200
200
|
console.log(chalk.dim(` Directorio: ${SKILLS_DIR}`));
|
|
201
201
|
console.log(chalk.dim(` Campos obligatorios: ${REQUIRED_FIELDS.length}`));
|
|
202
202
|
console.log('');
|
|
@@ -3,7 +3,7 @@ name: AI Agent Engineer
|
|
|
3
3
|
description: Especialista en diseño, desarrollo y optimización de agentes de inteligencia artificial y flujos RAG.
|
|
4
4
|
role: Diseño y Desarrollo de Agentes IA
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🤖
|
|
8
8
|
expertise:
|
|
9
9
|
- LLM integration
|
|
@@ -3,7 +3,7 @@ name: API Designer
|
|
|
3
3
|
description: Arquitecto de APIs REST y GraphQL con enfoque en diseño consistente, documentación OpenAPI y experiencia del desarrollador.
|
|
4
4
|
role: Especialista en Diseño de APIs y Developer Experience
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🔌
|
|
8
8
|
expertise:
|
|
9
9
|
- REST API design
|
|
@@ -426,4 +426,4 @@ components:
|
|
|
426
426
|
|
|
427
427
|
---
|
|
428
428
|
|
|
429
|
-
|
|
429
|
+
|
|
@@ -3,7 +3,7 @@ name: Architect
|
|
|
3
3
|
description: Diseño de arquitectura de software, patrones de diseño y estructuración de sistemas robustos.
|
|
4
4
|
role: Senior Solutions Architect - Diseño de Sistemas Distribuidos
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🏛️
|
|
8
8
|
expertise:
|
|
9
9
|
- System Design
|
|
@@ -3,7 +3,7 @@ name: Backend Engineer
|
|
|
3
3
|
description: Desarrollo de lógica de servidor, gestión de bases de datos, APIs y servicios escalables.
|
|
4
4
|
role: Senior Backend Engineer & Tech Lead - Ingeniería de Software Robusta
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: ⚙️
|
|
8
8
|
expertise:
|
|
9
9
|
- Python 3.12+ (FastAPI, SQLModel, Pydantic v2)
|
|
@@ -3,7 +3,7 @@ name: BMAD Methodology
|
|
|
3
3
|
description: Experto en la aplicación de la metodología Best Model Agent Driven (BMAD).
|
|
4
4
|
role: Scale-Adaptive Intelligence & Project Orchestration
|
|
5
5
|
type: methodology
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🧠
|
|
8
8
|
expertise:
|
|
9
9
|
- Scale-Adaptive Intelligence (Levels 0-4)
|
|
@@ -198,5 +198,5 @@ BMAD coordina personas según la fase del proyecto:
|
|
|
198
198
|
|
|
199
199
|
---
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
|
|
202
202
|
*Compatible con: Spec-Driven Development + SWE-Agent*
|
|
@@ -3,7 +3,7 @@ name: Browser Agent
|
|
|
3
3
|
description: Automatización inteligente de navegador con Playwright/Puppeteer para scraping, auditorías, flujos interactivos y extracción de datos.
|
|
4
4
|
role: Automatización de Navegador para Agentes IA
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🌐
|
|
8
8
|
expertise:
|
|
9
9
|
- Browser Automation (Playwright, Puppeteer)
|
|
@@ -3,7 +3,7 @@ name: Code Reviewer
|
|
|
3
3
|
description: Especialista en revisiones de código sistemáticas, asegurando calidad, seguridad y mantenibilidad.
|
|
4
4
|
role: Experto en Code Review y Calidad de Código
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🔍
|
|
8
8
|
expertise:
|
|
9
9
|
- Code review sistemático
|
|
@@ -303,4 +303,4 @@ def add_item(item, items=None):
|
|
|
303
303
|
|
|
304
304
|
---
|
|
305
305
|
|
|
306
|
-
|
|
306
|
+
|
|
@@ -3,7 +3,7 @@ name: Data Engineer / DBA
|
|
|
3
3
|
description: Gestión de pipelines de datos, almacenamiento, procesamiento y análisis de información.
|
|
4
4
|
role: Diseño y Administración de Bases de Datos
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🗜️
|
|
8
8
|
expertise:
|
|
9
9
|
- PostgreSQL/MySQL
|
|
@@ -3,7 +3,7 @@ name: DevOps Engineer
|
|
|
3
3
|
description: Configuración de CI/CD, infraestructura en la nube, contenedores y automatización de despliegues.
|
|
4
4
|
role: Infrastructure, CI/CD y Operaciones
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🚀
|
|
8
8
|
expertise:
|
|
9
9
|
- Docker/Kubernetes
|
|
@@ -3,7 +3,7 @@ name: Document Generator
|
|
|
3
3
|
description: Generación programática de documentos formales (PDF, DOCX, XLSX, PPTX) con librerías especializadas.
|
|
4
4
|
role: Generación de Documentos de Oficina
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 📄
|
|
8
8
|
expertise:
|
|
9
9
|
- PDF Generation (pdfmake, jsPDF, Puppeteer)
|
|
@@ -3,7 +3,7 @@ name: Frontend Engineer
|
|
|
3
3
|
description: Desarrollo de interfaces de usuario modernas, responsivas y centradas en la experiencia del usuario.
|
|
4
4
|
role: Desarrollo de Interfaces de Usuario
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🎨
|
|
8
8
|
expertise:
|
|
9
9
|
- React 18+ / Next.js 14+
|
|
@@ -3,7 +3,7 @@ name: Git Workflow
|
|
|
3
3
|
description: Experto en estrategias de branching, flujos de trabajo Git, y gestión de releases.
|
|
4
4
|
role: Especialista en Git Workflows y Release Management
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🌿
|
|
8
8
|
expertise:
|
|
9
9
|
- Git branching strategies
|
|
@@ -371,4 +371,4 @@ git rebase --abort # Volver al estado anterior
|
|
|
371
371
|
|
|
372
372
|
---
|
|
373
373
|
|
|
374
|
-
|
|
374
|
+
|
|
@@ -3,7 +3,7 @@ name: MCP Builder
|
|
|
3
3
|
description: Experto en construir MCP Servers, Tools, Resources y Prompts para extender agentes de IA.
|
|
4
4
|
role: Especialista en Model Context Protocol y Agent Tooling
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🔧
|
|
8
8
|
expertise:
|
|
9
9
|
- Model Context Protocol (MCP)
|
|
@@ -468,4 +468,4 @@ return {
|
|
|
468
468
|
|
|
469
469
|
---
|
|
470
470
|
|
|
471
|
-
|
|
471
|
+
|
|
@@ -3,7 +3,7 @@ name: Mobile Engineer
|
|
|
3
3
|
description: Desarrollo de aplicaciones móviles utilizando React Native, Expo y otras tecnologías nativas.
|
|
4
4
|
role: Desarrollo de Aplicaciones Móviles
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 📱
|
|
8
8
|
expertise:
|
|
9
9
|
- React Native / Expo
|
|
@@ -3,7 +3,7 @@ name: Orchestrator
|
|
|
3
3
|
description: Agente orquestador encargado de dirigir las solicitudes al experto más adecuado.
|
|
4
4
|
role: Meta-Agent que decide qué persona y workflow activar
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🎯
|
|
8
8
|
expertise:
|
|
9
9
|
- Task classification
|
|
@@ -3,7 +3,7 @@ name: Performance Engineer
|
|
|
3
3
|
description: Especialista en identificación y resolución de cuellos de botella para optimizar el rendimiento y la escalabilidad.
|
|
4
4
|
role: Optimización de Rendimiento y Escalabilidad
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🏎️
|
|
8
8
|
expertise:
|
|
9
9
|
- Performance profiling
|
|
@@ -3,7 +3,7 @@ name: Product Manager
|
|
|
3
3
|
description: Definición de la visión del producto, roadmap y requisitos detallados para maximizar el valor al usuario.
|
|
4
4
|
role: Senior Product Manager - Estrategia y Visión de Producto
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 📊
|
|
8
8
|
expertise:
|
|
9
9
|
- Product Strategy
|
|
@@ -3,7 +3,7 @@ name: Prompt Engineer
|
|
|
3
3
|
description: Optimización de prompts para maximizar la calidad, precisión y razonamiento de los outputs de los LLMs.
|
|
4
4
|
role: Ingeniería de Prompts y Arquitectura Cognitiva
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🧠
|
|
8
8
|
expertise:
|
|
9
9
|
- Advanced Prompting (CoT, ToT, ReAct)
|
|
@@ -3,7 +3,7 @@ name: QA Engineer
|
|
|
3
3
|
description: Aseguramiento de la calidad mediante pruebas automatizadas, manuales y validación rigurosa de criterios de aceptación.
|
|
4
4
|
role: Testing y Aseguramiento de Calidad
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🧪
|
|
8
8
|
expertise:
|
|
9
9
|
- Unit testing (pytest, jest)
|
|
@@ -3,7 +3,7 @@ name: Scrum Master
|
|
|
3
3
|
description: Facilitador de metodologías ágiles enfocado en la eliminación de obstáculos y la mejora continua del equipo.
|
|
4
4
|
role: Agile Coach & Senior Scrum Master - Facilitador de Alto Rendimiento
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🏉
|
|
8
8
|
expertise:
|
|
9
9
|
- Agile Methodologies (Scrum, Kanban, XP)
|
|
@@ -3,7 +3,7 @@ name: Security Analyst
|
|
|
3
3
|
description: Auditoría de vulnerabilidades, protección de datos y cumplimiento de estándares de seguridad internacionales.
|
|
4
4
|
role: Seguridad y Compliance
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🛡️
|
|
8
8
|
expertise:
|
|
9
9
|
- Application security
|
|
@@ -3,7 +3,7 @@ name: SEO Auditor
|
|
|
3
3
|
description: Auditoría técnica completa de sitios web incluyendo SEO on-page, Core Web Vitals, accesibilidad WCAG, schema markup y Open Graph.
|
|
4
4
|
role: Auditoría Web y SEO Técnico
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🔎
|
|
8
8
|
expertise:
|
|
9
9
|
- SEO On-Page & Technical SEO
|
|
@@ -3,7 +3,7 @@ name: Spec-Driven Agentic Development
|
|
|
3
3
|
description: Metodología de desarrollo basada rigurosamente en especificaciones y contratos técnicos para garantizar trazabilidad.
|
|
4
4
|
role: Development Methodology - Specification as Source of Truth
|
|
5
5
|
type: methodology
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 📋
|
|
8
8
|
expertise:
|
|
9
9
|
- Specification-first development
|
|
@@ -338,5 +338,5 @@ User Input → Orchestrator clasifica nivel
|
|
|
338
338
|
|
|
339
339
|
---
|
|
340
340
|
|
|
341
|
-
|
|
341
|
+
|
|
342
342
|
*Compatible con: BMAD-METHOD + SWE-Agent*
|
|
@@ -3,7 +3,7 @@ name: Supabase Expert
|
|
|
3
3
|
description: Especialista en Supabase, incluyendo PostgreSQL, RLS, Edge Functions, Auth, Realtime y Storage.
|
|
4
4
|
role: Experto en Supabase Platform & PostgreSQL
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: ⚡
|
|
8
8
|
expertise:
|
|
9
9
|
- Supabase platform
|
|
@@ -599,4 +599,4 @@ CREATE INDEX idx_users_auth_id ON public.users(auth_id);
|
|
|
599
599
|
|
|
600
600
|
---
|
|
601
601
|
|
|
602
|
-
|
|
602
|
+
|
|
@@ -3,7 +3,7 @@ name: SWE-Agent
|
|
|
3
3
|
description: Agente de ingeniería de software especializado en la resolución autónoma de issues y refactorización sistemática.
|
|
4
4
|
role: Autonomous Software Engineering Agent
|
|
5
5
|
type: methodology
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🔧
|
|
8
8
|
expertise:
|
|
9
9
|
- Autonomous issue resolution
|
|
@@ -307,5 +307,5 @@ SWE-Agent utiliza el sistema de herramientas definido en el framework:
|
|
|
307
307
|
|
|
308
308
|
---
|
|
309
309
|
|
|
310
|
-
|
|
310
|
+
|
|
311
311
|
*Compatible con: BMAD-METHOD + Spec-Driven Development*
|
|
@@ -3,7 +3,7 @@ name: Systematic Debugger
|
|
|
3
3
|
description: Metodología rigurosa de debugging en 4 fases para encontrar la causa raíz antes de aplicar cualquier fix.
|
|
4
4
|
role: Debugging Metódico y Resolución de Problemas
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🔍
|
|
8
8
|
activates_on:
|
|
9
9
|
- Debugging de bugs y errores
|
|
@@ -3,7 +3,7 @@ name: Tech Lead
|
|
|
3
3
|
description: Liderazgo técnico, revisión de código crítica y establecimiento de mejores prácticas de ingeniería de software.
|
|
4
4
|
role: Liderazgo Técnico y Mentorship
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🧭
|
|
8
8
|
expertise:
|
|
9
9
|
- Technical decision making
|
|
@@ -3,7 +3,7 @@ name: Technical Writer
|
|
|
3
3
|
description: Creación de documentación técnica clara, manuales de usuario y guías que reducen la curva de aprendizaje.
|
|
4
4
|
role: Documentación Técnica y Comunicación
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 📝
|
|
8
8
|
expertise:
|
|
9
9
|
- API documentation
|
|
@@ -3,7 +3,7 @@ name: Testing Strategist
|
|
|
3
3
|
description: Experto en estrategias de testing automatizado, TDD/BDD, y frameworks de testing modernos.
|
|
4
4
|
role: Especialista en Testing Strategy y Quality Assurance Automation
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🧪
|
|
8
8
|
expertise:
|
|
9
9
|
- Test-Driven Development (TDD)
|
|
@@ -473,4 +473,4 @@ it('should debounce search', async () => {
|
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
|
-
|
|
476
|
+
|
|
@@ -3,7 +3,7 @@ name: UX/UI Designer
|
|
|
3
3
|
description: Diseño visual e interactivo centrado en la usabilidad, estética moderna y accesibilidad universal.
|
|
4
4
|
role: Diseño de Experiencia e Interfaz de Usuario
|
|
5
5
|
type: agent_persona
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.7
|
|
7
7
|
icon: 🎨
|
|
8
8
|
expertise:
|
|
9
9
|
- User Experience (UX)
|
package/.editorconfig
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# EditorConfig helps maintain consistent coding styles
|
|
2
|
-
# https://editorconfig.org
|
|
3
|
-
|
|
4
|
-
root = true
|
|
5
|
-
|
|
6
|
-
[*]
|
|
7
|
-
charset = utf-8
|
|
8
|
-
end_of_line = lf
|
|
9
|
-
insert_final_newline = true
|
|
10
|
-
trim_trailing_whitespace = true
|
|
11
|
-
indent_style = space
|
|
12
|
-
indent_size = 2
|
|
13
|
-
|
|
14
|
-
[*.md]
|
|
15
|
-
trim_trailing_whitespace = false
|
|
16
|
-
|
|
17
|
-
[*.py]
|
|
18
|
-
indent_size = 4
|
package/pyproject.toml
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "lmagent"
|
|
3
|
-
version = "2.3.0"
|
|
4
|
-
description = "Framework for automation and AI agent development"
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
license = { text = "MIT" }
|
|
7
|
-
requires-python = ">=3.12"
|
|
8
|
-
authors = [
|
|
9
|
-
{ name = "QuBiit0", email = "info@leandroalvarez.com.ar" }
|
|
10
|
-
]
|
|
11
|
-
keywords = [
|
|
12
|
-
"ai",
|
|
13
|
-
"agents",
|
|
14
|
-
"automation",
|
|
15
|
-
"llm",
|
|
16
|
-
"framework",
|
|
17
|
-
"mcp"
|
|
18
|
-
]
|
|
19
|
-
classifiers = [
|
|
20
|
-
"Development Status :: 5 - Production/Stable",
|
|
21
|
-
"Intended Audience :: Developers",
|
|
22
|
-
"License :: OSI Approved :: MIT License",
|
|
23
|
-
"Programming Language :: Python :: 3",
|
|
24
|
-
"Programming Language :: Python :: 3.12",
|
|
25
|
-
"Programming Language :: Python :: 3.13",
|
|
26
|
-
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
27
|
-
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
28
|
-
]
|
|
29
|
-
|
|
30
|
-
dependencies = [
|
|
31
|
-
"pydantic>=2.10",
|
|
32
|
-
"pydantic-settings>=2.4",
|
|
33
|
-
"pyyaml>=6.0",
|
|
34
|
-
"structlog>=24.1",
|
|
35
|
-
"httpx>=0.27",
|
|
36
|
-
"python-dotenv>=1.0",
|
|
37
|
-
"fastapi>=0.115",
|
|
38
|
-
"sqlmodel>=0.0.22",
|
|
39
|
-
"litellm>=1.45",
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
[project.optional-dependencies]
|
|
43
|
-
dev = [
|
|
44
|
-
"pytest>=8.0",
|
|
45
|
-
"pytest-asyncio>=0.23",
|
|
46
|
-
"pytest-cov>=5.0",
|
|
47
|
-
"ruff>=0.5",
|
|
48
|
-
"mypy>=1.10",
|
|
49
|
-
"pre-commit>=3.7",
|
|
50
|
-
]
|
|
51
|
-
llm = [
|
|
52
|
-
"openai>=1.40",
|
|
53
|
-
"anthropic>=0.30",
|
|
54
|
-
"google-generativeai>=0.7",
|
|
55
|
-
"litellm>=1.45",
|
|
56
|
-
"langchain>=0.2.10",
|
|
57
|
-
"langgraph>=0.1.5",
|
|
58
|
-
]
|
|
59
|
-
tools = [
|
|
60
|
-
"aiohttp>=3.10",
|
|
61
|
-
"asyncpg>=0.29",
|
|
62
|
-
"redis>=5.0",
|
|
63
|
-
"pandas>=2.2",
|
|
64
|
-
]
|
|
65
|
-
all = [
|
|
66
|
-
"lmagent[dev]",
|
|
67
|
-
"lmagent[llm]",
|
|
68
|
-
"lmagent[tools]",
|
|
69
|
-
]
|
|
70
|
-
|
|
71
|
-
[project.urls]
|
|
72
|
-
Homepage = "https://github.com/QuBiit0/lmagent"
|
|
73
|
-
Documentation = "https://github.com/QuBiit0/lmagent#readme"
|
|
74
|
-
Repository = "https://github.com/QuBiit0/lmagent"
|
|
75
|
-
Issues = "https://github.com/QuBiit0/lmagent/issues"
|
|
76
|
-
|
|
77
|
-
# [build-system]
|
|
78
|
-
# requires = ["hatchling"]
|
|
79
|
-
# build-backend = "hatchling.build"
|
|
80
|
-
|
|
81
|
-
# [tool.hatch.build.targets.wheel]
|
|
82
|
-
# packages = ["agents"]
|
|
83
|
-
|
|
84
|
-
# ============================================
|
|
85
|
-
# RUFF (Linter & Formatter)
|
|
86
|
-
# ============================================
|
|
87
|
-
|
|
88
|
-
[tool.ruff]
|
|
89
|
-
target-version = "py312"
|
|
90
|
-
line-length = 100
|
|
91
|
-
exclude = [
|
|
92
|
-
".git",
|
|
93
|
-
".venv",
|
|
94
|
-
"venv",
|
|
95
|
-
"__pycache__",
|
|
96
|
-
"node_modules",
|
|
97
|
-
".ruff_cache",
|
|
98
|
-
]
|
|
99
|
-
|
|
100
|
-
[tool.ruff.lint]
|
|
101
|
-
select = [
|
|
102
|
-
"E", # pycodestyle errors
|
|
103
|
-
"W", # pycodestyle warnings
|
|
104
|
-
"F", # pyflakes
|
|
105
|
-
"I", # isort
|
|
106
|
-
"B", # flake8-bugbear
|
|
107
|
-
"C4", # flake8-comprehensions
|
|
108
|
-
"UP", # pyupgrade
|
|
109
|
-
"ARG", # flake8-unused-arguments
|
|
110
|
-
"SIM", # flake8-simplify
|
|
111
|
-
]
|
|
112
|
-
ignore = [
|
|
113
|
-
"E501", # line too long (handled by formatter)
|
|
114
|
-
"B008", # do not perform function calls in argument defaults
|
|
115
|
-
]
|
|
116
|
-
|
|
117
|
-
[tool.ruff.lint.isort]
|
|
118
|
-
known-first-party = ["agents", "lmagent"]
|
|
119
|
-
|
|
120
|
-
[tool.ruff.format]
|
|
121
|
-
quote-style = "double"
|
|
122
|
-
indent-style = "space"
|
|
123
|
-
skip-magic-trailing-comma = false
|
|
124
|
-
|
|
125
|
-
# ============================================
|
|
126
|
-
# MYPY (Type Checking)
|
|
127
|
-
# ============================================
|
|
128
|
-
|
|
129
|
-
[tool.mypy]
|
|
130
|
-
python_version = "3.12"
|
|
131
|
-
warn_return_any = true
|
|
132
|
-
warn_unused_ignores = true
|
|
133
|
-
disallow_untyped_defs = true
|
|
134
|
-
disallow_incomplete_defs = true
|
|
135
|
-
check_untyped_defs = true
|
|
136
|
-
ignore_missing_imports = true
|
|
137
|
-
exclude = [
|
|
138
|
-
"tests",
|
|
139
|
-
"venv",
|
|
140
|
-
".venv",
|
|
141
|
-
]
|
|
142
|
-
|
|
143
|
-
# ============================================
|
|
144
|
-
# PYTEST
|
|
145
|
-
# ============================================
|
|
146
|
-
|
|
147
|
-
[tool.pytest.ini_options]
|
|
148
|
-
minversion = "7.0"
|
|
149
|
-
asyncio_mode = "auto"
|
|
150
|
-
testpaths = ["tests"]
|
|
151
|
-
python_files = ["test_*.py", "*_test.py"]
|
|
152
|
-
python_functions = ["test_*"]
|
|
153
|
-
addopts = [
|
|
154
|
-
"-v",
|
|
155
|
-
"--tb=short",
|
|
156
|
-
"--strict-markers",
|
|
157
|
-
]
|
|
158
|
-
markers = [
|
|
159
|
-
"slow: marks tests as slow",
|
|
160
|
-
"integration: marks tests as integration tests",
|
|
161
|
-
]
|
|
162
|
-
filterwarnings = [
|
|
163
|
-
"ignore::DeprecationWarning",
|
|
164
|
-
]
|
|
165
|
-
|
|
166
|
-
[tool.coverage.run]
|
|
167
|
-
source = ["agents"]
|
|
168
|
-
branch = true
|
|
169
|
-
omit = [
|
|
170
|
-
"*/tests/*",
|
|
171
|
-
"*/__pycache__/*",
|
|
172
|
-
]
|
|
173
|
-
|
|
174
|
-
[tool.coverage.report]
|
|
175
|
-
exclude_lines = [
|
|
176
|
-
"pragma: no cover",
|
|
177
|
-
"def __repr__",
|
|
178
|
-
"raise NotImplementedError",
|
|
179
|
-
"if __name__ == .__main__.:",
|
|
180
|
-
"if TYPE_CHECKING:",
|
|
181
|
-
]
|
|
182
|
-
fail_under = 80
|