@qubiit/lmagent 2.5.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/.editorconfig +18 -0
- package/AGENTS.md +169 -0
- package/CLAUDE.md +122 -0
- package/CONTRIBUTING.md +90 -0
- package/LICENSE +21 -0
- package/README.md +195 -0
- package/config/commands.yaml +194 -0
- package/config/levels.yaml +135 -0
- package/config/models.yaml +192 -0
- package/config/settings.yaml +405 -0
- package/config/tools-extended.yaml +534 -0
- package/config/tools.yaml +437 -0
- package/docs/assets/logo.png +0 -0
- package/docs/commands.md +132 -0
- package/docs/customization-guide.md +445 -0
- package/docs/getting-started.md +154 -0
- package/docs/how-to-start.md +242 -0
- package/docs/navigation-index.md +227 -0
- package/docs/usage-guide.md +113 -0
- package/install.js +1044 -0
- package/package.json +35 -0
- package/pyproject.toml +182 -0
- package/rules/_bootstrap.md +138 -0
- package/rules/agents-ia.md +607 -0
- package/rules/api-design.md +337 -0
- package/rules/automations-n8n.md +646 -0
- package/rules/code-style.md +570 -0
- package/rules/documentation.md +98 -0
- package/rules/security.md +316 -0
- package/rules/stack.md +395 -0
- package/rules/testing.md +326 -0
- package/rules/workflow.md +353 -0
- package/scripts/create_skill.js +300 -0
- package/scripts/validate_skills.js +283 -0
- package/skills/ai-agent-engineer/SKILL.md +394 -0
- package/skills/ai-agent-engineer/references/agent-patterns.md +149 -0
- package/skills/api-designer/SKILL.md +429 -0
- package/skills/api-designer/references/api-standards.md +13 -0
- package/skills/architect/SKILL.md +285 -0
- package/skills/architect/references/c4-model.md +133 -0
- package/skills/automation-engineer/SKILL.md +352 -0
- package/skills/automation-engineer/references/n8n-patterns.md +127 -0
- package/skills/backend-engineer/SKILL.md +261 -0
- package/skills/backend-engineer/assets/fastapi-project-structure.yaml +74 -0
- package/skills/backend-engineer/references/debugging-guide.md +174 -0
- package/skills/backend-engineer/references/design-patterns.md +208 -0
- package/skills/backend-engineer/scripts/scaffold_backend.py +313 -0
- package/skills/bmad-methodology/SKILL.md +202 -0
- package/skills/bmad-methodology/references/scale-adaptive-levels.md +141 -0
- package/skills/browser-agent/SKILL.md +502 -0
- package/skills/browser-agent/scripts/playwright_setup.ts +16 -0
- package/skills/code-reviewer/SKILL.md +306 -0
- package/skills/code-reviewer/references/code-review-checklist.md +16 -0
- package/skills/data-engineer/SKILL.md +474 -0
- package/skills/data-engineer/assets/pg-monitoring-queries.sql +154 -0
- package/skills/data-engineer/references/index-strategy.md +128 -0
- package/skills/data-engineer/scripts/backup_postgres.py +221 -0
- package/skills/devops-engineer/SKILL.md +547 -0
- package/skills/devops-engineer/references/ci-cd-patterns.md +265 -0
- package/skills/devops-engineer/scripts/docker_healthcheck.py +125 -0
- package/skills/document-generator/SKILL.md +746 -0
- package/skills/document-generator/references/pdf-generation.md +22 -0
- package/skills/frontend-engineer/SKILL.md +532 -0
- package/skills/frontend-engineer/references/accessibility-guide.md +146 -0
- package/skills/frontend-engineer/scripts/audit_bundle.py +144 -0
- package/skills/git-workflow/SKILL.md +374 -0
- package/skills/git-workflow/references/git-flow.md +25 -0
- package/skills/mcp-builder/SKILL.md +471 -0
- package/skills/mcp-builder/references/mcp-server-guide.md +23 -0
- package/skills/mobile-engineer/SKILL.md +502 -0
- package/skills/mobile-engineer/references/platform-guidelines.md +160 -0
- package/skills/orchestrator/SKILL.md +246 -0
- package/skills/orchestrator/references/methodology-routing.md +117 -0
- package/skills/orchestrator/references/persona-mapping.md +85 -0
- package/skills/orchestrator/references/routing-logic.md +110 -0
- package/skills/performance-engineer/SKILL.md +549 -0
- package/skills/performance-engineer/references/caching-patterns.md +181 -0
- package/skills/performance-engineer/scripts/profile_endpoint.py +170 -0
- package/skills/product-manager/SKILL.md +488 -0
- package/skills/product-manager/references/prioritization-frameworks.md +126 -0
- package/skills/prompt-engineer/SKILL.md +433 -0
- package/skills/prompt-engineer/references/prompt-patterns.md +158 -0
- package/skills/qa-engineer/SKILL.md +441 -0
- package/skills/qa-engineer/references/testing-strategy.md +166 -0
- package/skills/qa-engineer/scripts/run_coverage.py +147 -0
- package/skills/scrum-master/SKILL.md +225 -0
- package/skills/scrum-master/references/sprint-ceremonies.md +159 -0
- package/skills/security-analyst/SKILL.md +390 -0
- package/skills/security-analyst/references/owasp-top10.md +188 -0
- package/skills/security-analyst/scripts/audit_security.py +242 -0
- package/skills/seo-auditor/SKILL.md +523 -0
- package/skills/seo-auditor/references/seo-checklist.md +17 -0
- package/skills/spec-driven-dev/SKILL.md +342 -0
- package/skills/spec-driven-dev/references/phase-gates.md +107 -0
- package/skills/supabase-expert/SKILL.md +602 -0
- package/skills/supabase-expert/references/supabase-patterns.md +19 -0
- package/skills/swe-agent/SKILL.md +311 -0
- package/skills/swe-agent/references/trajectory-format.md +134 -0
- package/skills/systematic-debugger/SKILL.md +512 -0
- package/skills/systematic-debugger/references/debugging-guide.md +12 -0
- package/skills/tech-lead/SKILL.md +409 -0
- package/skills/tech-lead/references/code-review-checklist.md +111 -0
- package/skills/technical-writer/SKILL.md +631 -0
- package/skills/technical-writer/references/doc-templates.md +218 -0
- package/skills/testing-strategist/SKILL.md +476 -0
- package/skills/testing-strategist/references/testing-pyramid.md +16 -0
- package/skills/ux-ui-designer/SKILL.md +419 -0
- package/skills/ux-ui-designer/references/design-system-foundation.md +168 -0
- package/skills_overview.txt +94 -0
- package/templates/PROJECT_KICKOFF.md +284 -0
- package/templates/SKILL_TEMPLATE.md +131 -0
- package/templates/USAGE.md +95 -0
- package/templates/agent-python/README.md +71 -0
- package/templates/agent-python/agent.py +272 -0
- package/templates/agent-python/config.yaml +76 -0
- package/templates/agent-python/prompts/system.md +109 -0
- package/templates/agent-python/requirements.txt +7 -0
- package/templates/automation-n8n/README.md +14 -0
- package/templates/automation-n8n/webhook-handler.json +57 -0
- package/templates/backend-node/Dockerfile +12 -0
- package/templates/backend-node/README.md +15 -0
- package/templates/backend-node/package.json +30 -0
- package/templates/backend-node/src/index.ts +19 -0
- package/templates/backend-node/src/routes.ts +7 -0
- package/templates/backend-node/tsconfig.json +22 -0
- package/templates/backend-python/Dockerfile +11 -0
- package/templates/backend-python/README.md +78 -0
- package/templates/backend-python/app/core/config.py +12 -0
- package/templates/backend-python/app/core/database.py +12 -0
- package/templates/backend-python/app/main.py +17 -0
- package/templates/backend-python/app/routers/__init__.py +1 -0
- package/templates/backend-python/app/routers/health.py +7 -0
- package/templates/backend-python/requirements-dev.txt +6 -0
- package/templates/backend-python/requirements.txt +4 -0
- package/templates/backend-python/tests/test_health.py +9 -0
- package/templates/checkpoint.yaml +117 -0
- package/templates/database/README.md +474 -0
- package/templates/frontend-react/README.md +446 -0
- package/templates/plan.yaml +320 -0
- package/templates/session.yaml +125 -0
- package/templates/spec.yaml +229 -0
- package/templates/tasks.yaml +330 -0
- package/workflows/bugfix-backend.md +380 -0
- package/workflows/documentation.md +232 -0
- package/workflows/generate-prd.md +320 -0
- package/workflows/ideation.md +396 -0
- package/workflows/new-agent-ia.md +497 -0
- package/workflows/new-automation.md +374 -0
- package/workflows/new-feature.md +290 -0
- package/workflows/optimize-performance.md +373 -0
- package/workflows/resolve-github-issue.md +524 -0
- package/workflows/security-review.md +291 -0
- package/workflows/spec-driven.md +476 -0
- package/workflows/testing-strategy.md +296 -0
- package/workflows/third-party-integration.md +277 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# LMAgent Backend Python Template
|
|
2
|
+
|
|
3
|
+
Template de proyecto FastAPI con la estructura y configuración recomendada por LMAgent.
|
|
4
|
+
|
|
5
|
+
## Estructura
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
backend-python/
|
|
9
|
+
├── app/
|
|
10
|
+
│ ├── __init__.py
|
|
11
|
+
│ ├── main.py # Entry point FastAPI
|
|
12
|
+
│ ├── config.py # Configuración con Pydantic Settings
|
|
13
|
+
│ ├── routers/ # Endpoints API
|
|
14
|
+
│ │ ├── __init__.py
|
|
15
|
+
│ │ ├── health.py # Health check
|
|
16
|
+
│ │ └── v1/ # API v1
|
|
17
|
+
│ │ ├── __init__.py
|
|
18
|
+
│ │ └── users.py # Ejemplo: users endpoints
|
|
19
|
+
│ ├── services/ # Lógica de negocio
|
|
20
|
+
│ │ ├── __init__.py
|
|
21
|
+
│ │ └── user_service.py
|
|
22
|
+
│ ├── repositories/ # Acceso a datos
|
|
23
|
+
│ │ ├── __init__.py
|
|
24
|
+
│ │ └── user_repository.py
|
|
25
|
+
│ ├── models/ # SQLModel models
|
|
26
|
+
│ │ ├── __init__.py
|
|
27
|
+
│ │ └── user.py
|
|
28
|
+
│ ├── schemas/ # Pydantic schemas
|
|
29
|
+
│ │ ├── __init__.py
|
|
30
|
+
│ │ └── user.py
|
|
31
|
+
│ └── core/ # Utilidades compartidas
|
|
32
|
+
│ ├── __init__.py
|
|
33
|
+
│ ├── database.py # Database connection
|
|
34
|
+
│ └── exceptions.py # Custom exceptions
|
|
35
|
+
├── tests/
|
|
36
|
+
│ ├── conftest.py # Fixtures de pytest
|
|
37
|
+
│ └── test_health.py
|
|
38
|
+
├── Dockerfile
|
|
39
|
+
├── requirements.txt
|
|
40
|
+
├── requirements-dev.txt
|
|
41
|
+
└── pyproject.toml
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Quick Start
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Crear entorno virtual
|
|
48
|
+
python -m venv venv
|
|
49
|
+
source venv/bin/activate # Linux/Mac
|
|
50
|
+
# venv\Scripts\activate # Windows
|
|
51
|
+
|
|
52
|
+
# Instalar dependencias
|
|
53
|
+
pip install -r requirements.txt
|
|
54
|
+
pip install -r requirements-dev.txt
|
|
55
|
+
|
|
56
|
+
# Configurar variables de entorno
|
|
57
|
+
cp .env.example .env
|
|
58
|
+
# Editar .env con tus valores
|
|
59
|
+
|
|
60
|
+
# Ejecutar en desarrollo
|
|
61
|
+
uvicorn app.main:app --reload
|
|
62
|
+
|
|
63
|
+
# Ejecutar tests
|
|
64
|
+
pytest --cov=app
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Dependencias Principales
|
|
68
|
+
|
|
69
|
+
- **FastAPI**: Framework web async
|
|
70
|
+
- **SQLModel**: ORM + validación
|
|
71
|
+
- **Pydantic**: Validación de datos
|
|
72
|
+
- **Uvicorn**: Servidor ASGI
|
|
73
|
+
- **Redis**: Cache
|
|
74
|
+
- **pytest**: Testing
|
|
75
|
+
|
|
76
|
+
## Patrones de Código
|
|
77
|
+
|
|
78
|
+
Ver `rules/code-style.md` y `personas/backend-engineer.md` para guías detalladas.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from pydantic_settings import BaseSettings
|
|
2
|
+
|
|
3
|
+
class Settings(BaseSettings):
|
|
4
|
+
PROJECT_NAME: str = "LMAgent Project"
|
|
5
|
+
API_V1_STR: str = "/api/v1"
|
|
6
|
+
DATABASE_URL: str = "sqlite:///./dev.db"
|
|
7
|
+
|
|
8
|
+
class Config:
|
|
9
|
+
case_sensitive = True
|
|
10
|
+
env_file = ".env"
|
|
11
|
+
|
|
12
|
+
settings = Settings()
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from sqlmodel import SQLModel, create_engine, Session
|
|
2
|
+
from app.core.config import settings
|
|
3
|
+
|
|
4
|
+
connect_args = {"check_same_thread": False} if "sqlite" in settings.DATABASE_URL else {}
|
|
5
|
+
engine = create_engine(settings.DATABASE_URL, echo=True, connect_args=connect_args)
|
|
6
|
+
|
|
7
|
+
def get_session():
|
|
8
|
+
with Session(engine) as session:
|
|
9
|
+
yield session
|
|
10
|
+
|
|
11
|
+
def init_db():
|
|
12
|
+
SQLModel.metadata.create_all(engine)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from fastapi import FastAPI
|
|
2
|
+
from app.core.config import settings
|
|
3
|
+
from app.routers import health
|
|
4
|
+
# from app.routers.v1 import users # Uncomment when created
|
|
5
|
+
|
|
6
|
+
app = FastAPI(
|
|
7
|
+
title=settings.PROJECT_NAME,
|
|
8
|
+
openapi_url=f"{settings.API_V1_STR}/openapi.json"
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
app.include_router(health.router, tags=["health"])
|
|
12
|
+
# app.include_router(users.router, prefix=f"{settings.API_V1_STR}/users", tags=["users"])
|
|
13
|
+
|
|
14
|
+
@app.on_event("startup")
|
|
15
|
+
def on_startup():
|
|
16
|
+
from app.core.database import init_db
|
|
17
|
+
init_db()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from . import health
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Checkpoint & Backup System
|
|
2
|
+
# LMAgent Framework v3.0 - Ultra-Robust State Persistence
|
|
3
|
+
#
|
|
4
|
+
# Este archivo define el sistema de checkpoints automáticos y backups
|
|
5
|
+
# para garantizar que NUNCA se pierda el estado del proyecto.
|
|
6
|
+
#
|
|
7
|
+
# UBICACIÓN: .lmagent/checkpoints/ (directorio)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
12
|
+
# SISTEMA DE CHECKPOINTS AUTOMÁTICOS
|
|
13
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
14
|
+
#
|
|
15
|
+
# El agente debe crear un checkpoint en estos momentos:
|
|
16
|
+
#
|
|
17
|
+
# 1. FASE COMPLETADA
|
|
18
|
+
# - Después de aprobar spec.yaml → checkpoint "phase_specify_complete"
|
|
19
|
+
# - Después de aprobar plan.yaml → checkpoint "phase_plan_complete"
|
|
20
|
+
# - Después de crear tasks.yaml → checkpoint "phase_tasks_complete"
|
|
21
|
+
# - Después de verificar → checkpoint "phase_verify_complete"
|
|
22
|
+
#
|
|
23
|
+
# 2. TASK COMPLETADA
|
|
24
|
+
# - Después de completar cada task → checkpoint "task_T00X_complete"
|
|
25
|
+
#
|
|
26
|
+
# 3. DECISIÓN IMPORTANTE
|
|
27
|
+
# - Después de decisiones arquitectónicas → checkpoint "decision_DXXX"
|
|
28
|
+
#
|
|
29
|
+
# 4. SESIÓN FINALIZADA
|
|
30
|
+
# - Cuando el usuario cierra la sesión → checkpoint "session_X_end"
|
|
31
|
+
|
|
32
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
33
|
+
# ESTRUCTURA DE CHECKPOINT
|
|
34
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
35
|
+
|
|
36
|
+
checkpoint:
|
|
37
|
+
id: "chk_20260123_143052" # Formato: chk_YYYYMMDD_HHMMSS
|
|
38
|
+
created_at: "2026-01-23T14:30:52"
|
|
39
|
+
trigger: "task_complete" # phase_complete | task_complete | decision | session_end | manual
|
|
40
|
+
|
|
41
|
+
# Qué disparó este checkpoint
|
|
42
|
+
trigger_details:
|
|
43
|
+
type: "task"
|
|
44
|
+
id: "T002"
|
|
45
|
+
title: "Crear endpoint GET /users"
|
|
46
|
+
|
|
47
|
+
# Snapshot del estado completo
|
|
48
|
+
state_snapshot:
|
|
49
|
+
current_phase: "implement"
|
|
50
|
+
spec_status: "approved"
|
|
51
|
+
plan_status: "approved"
|
|
52
|
+
tasks_total: 15
|
|
53
|
+
tasks_completed: 2
|
|
54
|
+
tasks_in_progress: 1
|
|
55
|
+
tasks_pending: 12
|
|
56
|
+
current_task_id: "T003"
|
|
57
|
+
|
|
58
|
+
# Archivos que cambiaron desde el último checkpoint
|
|
59
|
+
changed_files:
|
|
60
|
+
- path: "src/models/user.py"
|
|
61
|
+
action: "created"
|
|
62
|
+
- path: "src/api/users.py"
|
|
63
|
+
action: "modified"
|
|
64
|
+
- path: "tests/test_users.py"
|
|
65
|
+
action: "created"
|
|
66
|
+
|
|
67
|
+
# Resumen en lenguaje natural (para que cualquier LLM entienda rápido)
|
|
68
|
+
summary: |
|
|
69
|
+
Fase: Implementación
|
|
70
|
+
Completé: T002 - Endpoint GET /users
|
|
71
|
+
Creé: user.py, users.py, test_users.py
|
|
72
|
+
Próximo: T003 - Endpoint POST /users
|
|
73
|
+
Tests passing: 5/5
|
|
74
|
+
|
|
75
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
76
|
+
# INSTRUCCIONES PARA EL AGENTE
|
|
77
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
78
|
+
#
|
|
79
|
+
# 🤖 CREAR CHECKPOINT:
|
|
80
|
+
#
|
|
81
|
+
# Después de cada milestone significativo, ejecuta:
|
|
82
|
+
#
|
|
83
|
+
# ```python
|
|
84
|
+
# checkpoint = {
|
|
85
|
+
# "id": f"chk_{datetime.now().strftime('%Y%m%d_%H%M%S')}",
|
|
86
|
+
# "created_at": datetime.now().isoformat(),
|
|
87
|
+
# "trigger": "task_complete", # o el trigger correspondiente
|
|
88
|
+
# "trigger_details": {...},
|
|
89
|
+
# "state_snapshot": {...},
|
|
90
|
+
# "changed_files": [...],
|
|
91
|
+
# "summary": "..."
|
|
92
|
+
# }
|
|
93
|
+
#
|
|
94
|
+
# # Guardar en .lmagent/checkpoints/chk_YYYYMMDD_HHMMSS.yaml
|
|
95
|
+
# ```
|
|
96
|
+
#
|
|
97
|
+
# 🤖 RECUPERAR DE CHECKPOINT:
|
|
98
|
+
#
|
|
99
|
+
# Si el usuario dice "algo salió mal" o "volver atrás":
|
|
100
|
+
#
|
|
101
|
+
# 1. Listar checkpoints: ls .lmagent/checkpoints/
|
|
102
|
+
# 2. Mostrar últimos 5 al usuario
|
|
103
|
+
# 3. El usuario elige uno
|
|
104
|
+
# 4. Leer ese checkpoint y restaurar el estado
|
|
105
|
+
#
|
|
106
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
107
|
+
# POLÍTICA DE RETENCIÓN
|
|
108
|
+
# ═══════════════════════════════════════════════════════════════════════════
|
|
109
|
+
#
|
|
110
|
+
# Mantener:
|
|
111
|
+
# - Últimos 20 checkpoints de tasks
|
|
112
|
+
# - Todos los checkpoints de fases (nunca borrar)
|
|
113
|
+
# - Últimos 10 checkpoints de sesión
|
|
114
|
+
#
|
|
115
|
+
# Limpiar automáticamente cuando hay más de 50 checkpoints totales.
|
|
116
|
+
#
|
|
117
|
+
# ═══════════════════════════════════════════════════════════════════════════
|