diff --git a/dev/issues/001-agent-orchestrator.md b/dev/issues/001-agent-orchestrator.md new file mode 100644 index 0000000..1713882 --- /dev/null +++ b/dev/issues/001-agent-orchestrator.md @@ -0,0 +1,46 @@ +# Issue #001: Crear agente orchestrator + +**Tipo:** feat +**Prioridad:** alta +**Estado:** pendiente + +## Descripción + +Crear un agente "arquitecto" que coordine los demás agentes para proyectos completos. Cuando el usuario pida algo como "Crea una app de trading", el orchestrator debe coordinar: +- backend-lib (API Go) +- frontend-lib (UI React) +- db-reader (base de datos) +- docker (containerización) +- build-wails (si es desktop) +- gitea (repo) + +## Capacidades requeridas + +- [ ] Analizar requisitos del proyecto +- [ ] Determinar qué agentes necesita invocar +- [ ] Secuenciar las operaciones (crear repo → backend → frontend → docker) +- [ ] Pasar contexto entre agentes +- [ ] Verificar que cada paso se completó correctamente +- [ ] Generar resumen final del proyecto creado + +## Ejemplo de uso + +``` +Usuario: "Crea una app de gestión de inventario con Go backend y React frontend" + +Orchestrator: +1. Crea repo en Gitea (agente gitea) +2. Inicializa backend con DevFactory (agente backend-lib) +3. Inicializa frontend con Frontend_Library (agente frontend-lib) +4. Configura docker-compose (agente docker) +5. Genera README con instrucciones +``` + +## Dependencias + +- Todos los agentes existentes deben estar funcionales +- MCP de Gitea configurado + +## Notas + +Este es el agente más complejo porque requiere orquestación multi-agente. diff --git a/dev/issues/002-agent-ci-cd.md b/dev/issues/002-agent-ci-cd.md new file mode 100644 index 0000000..a8f5fae --- /dev/null +++ b/dev/issues/002-agent-ci-cd.md @@ -0,0 +1,49 @@ +# Issue #002: Crear agente ci-cd + +**Tipo:** feat +**Prioridad:** alta +**Estado:** pendiente + +## Descripción + +Crear un agente para gestionar pipelines de CI/CD, principalmente con Gitea Actions (compatible con GitHub Actions) o Drone CI. + +## Capacidades requeridas + +### Gitea Actions +- [ ] Crear workflows `.gitea/workflows/*.yml` +- [ ] Templates para Go (test, build, lint) +- [ ] Templates para React (test, build, lint) +- [ ] Templates para Docker (build, push) +- [ ] Configurar secrets en Gitea + +### Pipelines +- [ ] Pipeline de PR: lint → test → build +- [ ] Pipeline de merge: test → build → deploy +- [ ] Pipeline de release: tag → build → push registry + +### Integración +- [ ] Detectar tipo de proyecto (Go/React/ambos) +- [ ] Generar pipeline apropiado +- [ ] Configurar badges de estado + +## Templates a incluir + +```yaml +# .gitea/workflows/ci.yml +name: CI +on: [push, pull_request] +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + - run: go test ./... +``` + +## Dependencias + +- Gitea Actions habilitado en la instancia +- Agente gitea para gestionar secrets +- Agente docker para builds de imágenes diff --git a/dev/issues/003-agent-testing.md b/dev/issues/003-agent-testing.md new file mode 100644 index 0000000..e8363b6 --- /dev/null +++ b/dev/issues/003-agent-testing.md @@ -0,0 +1,70 @@ +# Issue #003: Crear agente testing + +**Tipo:** feat +**Prioridad:** media +**Estado:** pendiente + +## Descripción + +Crear un agente especializado en testing que pueda generar, ejecutar y analizar tests para proyectos Go y React. + +## Capacidades requeridas + +### Go Testing +- [ ] Generar tests unitarios con `go test` +- [ ] Generar tests de tabla (table-driven tests) +- [ ] Mocks con testify o gomock +- [ ] Coverage con `go test -cover` +- [ ] Benchmarks con `go test -bench` + +### React Testing +- [ ] Tests con Vitest +- [ ] Tests de componentes con Testing Library +- [ ] Tests E2E con Playwright +- [ ] Coverage reports + +### Análisis +- [ ] Parsear resultados de tests +- [ ] Identificar tests fallidos +- [ ] Sugerir fixes para tests rotos +- [ ] Generar reporte de coverage + +## Flujo de trabajo + +``` +Usuario: "Genera tests para el módulo auth" + +Agente: +1. Lee el código del módulo +2. Identifica funciones públicas +3. Genera tests unitarios +4. Ejecuta tests +5. Reporta coverage +``` + +## Templates + +### Go test template +```go +func TestNombreFuncion(t *testing.T) { + tests := []struct { + name string + input string + expected string + }{ + {"caso normal", "input", "expected"}, + {"caso edge", "", ""}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // ... + }) + } +} +``` + +## Dependencias + +- Go 1.22+ con soporte de testing +- Vitest/Playwright para React diff --git a/dev/issues/004-agent-api-client.md b/dev/issues/004-agent-api-client.md new file mode 100644 index 0000000..1d237b6 --- /dev/null +++ b/dev/issues/004-agent-api-client.md @@ -0,0 +1,65 @@ +# Issue #004: Crear agente api-client + +**Tipo:** feat +**Prioridad:** media +**Estado:** pendiente + +## Descripción + +Crear un agente para gestionar integraciones con APIs externas: autenticación, rate limiting, retry logic, y generación de clientes. + +## Capacidades requeridas + +### Gestión de API Keys +- [ ] Almacenar keys en pass (cifrado GPG) +- [ ] Rotar keys automáticamente +- [ ] Validar keys antes de usar +- [ ] Documentar límites de cada API + +### Generación de clientes +- [ ] Generar cliente Go desde OpenAPI/Swagger +- [ ] Generar cliente TypeScript desde OpenAPI +- [ ] Wrappers con retry y rate limiting +- [ ] Caché de respuestas + +### APIs comunes pre-configuradas +- [ ] OpenAI / Anthropic (LLMs) +- [ ] Alpha Vantage / Yahoo Finance (finanzas) +- [ ] GitHub / Gitea (git) +- [ ] Cloudflare / AWS (infra) + +## Integración con DevFactory + +```go +// shell/api/openai.go +package api + +import "github.com/lucasdataproyects/devfactory/core" + +type OpenAIClient struct { + apiKey string + http *shell.HTTPClient +} + +func (c *OpenAIClient) Complete(prompt string) core.Result[string] { + // Con retry y rate limiting automático +} +``` + +## Flujo de trabajo + +``` +Usuario: "Configura cliente para Alpha Vantage" + +Agente: +1. Verifica si key existe en pass +2. Si no, pide al usuario que la añada +3. Genera cliente Go con DevFactory patterns +4. Añade a shell/api/ o app/finance/ +5. Documenta uso +``` + +## Dependencias + +- pass para gestión de secrets +- DevFactory para patrones HTTP diff --git a/dev/issues/005-agent-docs-generator.md b/dev/issues/005-agent-docs-generator.md new file mode 100644 index 0000000..58df403 --- /dev/null +++ b/dev/issues/005-agent-docs-generator.md @@ -0,0 +1,71 @@ +# Issue #005: Crear agente docs-generator + +**Tipo:** feat +**Prioridad:** baja +**Estado:** pendiente + +## Descripción + +Crear un agente para generar documentación técnica automáticamente desde el código. + +## Capacidades requeridas + +### Go +- [ ] Generar docs desde godoc comments +- [ ] README.md con ejemplos de uso +- [ ] API reference +- [ ] Diagramas de arquitectura (mermaid) + +### React/TypeScript +- [ ] Docs desde JSDoc/TSDoc +- [ ] Props tables para componentes +- [ ] Storybook docs (ya existe en frontend-lib) +- [ ] Changelog automático + +### Proyecto completo +- [ ] README.md con badges, instalación, uso +- [ ] CONTRIBUTING.md +- [ ] CHANGELOG.md (conventional commits) +- [ ] Arquitectura (diagrama mermaid) + +## Templates + +### README.md +```markdown +# Proyecto + +![CI](badge) ![Coverage](badge) + +## Instalación +## Uso +## API +## Desarrollo +## Licencia +``` + +### Diagrama arquitectura +```mermaid +graph TB + A[Frontend] --> B[Backend] + B --> C[Database] + B --> D[Cache] +``` + +## Flujo de trabajo + +``` +Usuario: "Genera documentación para este proyecto" + +Agente: +1. Detecta tipo de proyecto +2. Escanea código y comentarios +3. Genera README.md +4. Genera API docs +5. Genera diagrama de arquitectura +``` + +## Dependencias + +- godoc para Go +- typedoc para TypeScript +- mermaid para diagramas diff --git a/dev/issues/006-improve-db-reader.md b/dev/issues/006-improve-db-reader.md new file mode 100644 index 0000000..8a4f449 --- /dev/null +++ b/dev/issues/006-improve-db-reader.md @@ -0,0 +1,68 @@ +# Issue #006: Mejorar agente db-reader + +**Tipo:** enhancement +**Prioridad:** media +**Estado:** pendiente + +## Descripción + +Extender el agente db-reader para soportar más bases de datos y funcionalidades. + +## Mejoras requeridas + +### Nuevas bases de datos +- [ ] PostgreSQL via MCP (mcp-server-postgres) +- [ ] MySQL/MariaDB via MCP +- [ ] Redis para cache + +### Migraciones +- [ ] Integrar golang-migrate o Atlas +- [ ] Crear migraciones desde schema +- [ ] Aplicar migraciones up/down +- [ ] Historial de migraciones + +### Seeds +- [ ] Generar datos de prueba +- [ ] Seeds desde CSV/JSON +- [ ] Faker para datos aleatorios + +### Queries avanzados +- [ ] Query builder visual +- [ ] Explain/analyze de queries +- [ ] Índices sugeridos +- [ ] Exportar a CSV/JSON/Parquet + +## Configuración MCP adicional + +```yaml +mcpServers: + - postgres: + type: stdio + command: uvx + args: + - mcp-server-postgres + - --connection-string + - "${POSTGRES_URL}" +``` + +## Integración con DevFactory + +```go +// shell/postgres.go +package shell + +import "github.com/lucasdataproyects/devfactory/core" + +type PostgresClient struct { + connString string +} + +func (c *PostgresClient) Query(sql string) core.Result[[]map[string]any] { + // ... +} +``` + +## Dependencias + +- MCP servers para cada DB +- golang-migrate para migraciones diff --git a/dev/issues/007-improve-backend-lib.md b/dev/issues/007-improve-backend-lib.md new file mode 100644 index 0000000..b266ab5 --- /dev/null +++ b/dev/issues/007-improve-backend-lib.md @@ -0,0 +1,76 @@ +# Issue #007: Mejorar agente backend-lib (DevFactory) + +**Tipo:** enhancement +**Prioridad:** alta +**Estado:** pendiente + +## Descripción + +Extender DevFactory con más módulos en shell/ y app/ para cubrir casos de uso comunes. + +## Nuevos módulos shell/ + +### shell/postgres.go +- [ ] Cliente PostgreSQL funcional +- [ ] Connection pooling +- [ ] Transacciones con Result[T] +- [ ] Query builder básico + +### shell/redis.go +- [ ] Cliente Redis funcional +- [ ] Get/Set/Del con Result[T] +- [ ] Pub/Sub +- [ ] Cache wrapper + +### shell/queue.go +- [ ] Cola de mensajes simple +- [ ] Workers con retry +- [ ] Dead letter queue + +## Nuevos módulos app/ + +### app/auth/ +- [ ] JWT generation/validation +- [ ] OAuth2 client +- [ ] Session management +- [ ] Password hashing (argon2) + +### app/email/ +- [ ] SMTP client +- [ ] Templates HTML +- [ ] Queue de envío + +## Mejoras de calidad + +### Testing +- [ ] Tests para todos los módulos core/ +- [ ] Tests para shell/ (con mocks) +- [ ] Coverage > 80% +- [ ] Benchmarks + +### CI/CD +- [ ] GitHub/Gitea Actions workflow +- [ ] Lint con golangci-lint +- [ ] Release automático con goreleaser + +### Documentación +- [ ] godoc para cada función +- [ ] Ejemplos en README +- [ ] CHANGELOG.md + +## Ejemplo de uso nuevo + +```go +import ( + "github.com/lucasdataproyects/devfactory/shell" + "github.com/lucasdataproyects/devfactory/app/auth" +) + +// Postgres +db := shell.NewPostgresClient(os.Getenv("DATABASE_URL")) +users := db.Query("SELECT * FROM users").UnwrapOr([]User{}) + +// Auth +token := auth.GenerateJWT(userID, secret) +claims := auth.ValidateJWT(token, secret) +``` diff --git a/dev/issues/008-improve-frontend-lib.md b/dev/issues/008-improve-frontend-lib.md new file mode 100644 index 0000000..b60fb7c --- /dev/null +++ b/dev/issues/008-improve-frontend-lib.md @@ -0,0 +1,72 @@ +# Issue #008: Mejorar agente frontend-lib + +**Tipo:** enhancement +**Prioridad:** media +**Estado:** pendiente + +## Descripción + +Mejorar Frontend_Library con versionado semántico, testing y más componentes. + +## Versionado + +### Semántico +- [ ] Configurar release-please o semantic-release +- [ ] CHANGELOG.md automático desde commits +- [ ] Tags v1.0.0, v1.1.0, etc. +- [ ] Breaking changes documentados + +### Publicación +- [ ] Publicar a npm registry privado (Gitea Packages) +- [ ] O mantener pnpm link como está + +## Testing + +### Componentes +- [ ] Tests con Vitest + Testing Library +- [ ] Tests de accesibilidad con axe-core +- [ ] Visual regression tests +- [ ] Coverage > 70% + +### E2E +- [ ] Playwright tests para flujos críticos +- [ ] Tests en CI + +## Nuevos componentes + +### Data visualization +- [ ] Treemap (ECharts) +- [ ] Sankey diagram +- [ ] Heatmap calendar +- [ ] Sparklines + +### Forms +- [ ] File upload con drag & drop +- [ ] Rich text editor (Tiptap) +- [ ] Color picker +- [ ] Slider range + +### Layout +- [ ] Resizable panels +- [ ] Virtual list (TanStack Virtual) +- [ ] Infinite scroll + +## Mejoras existentes + +### Button +- [ ] Loading state con spinner +- [ ] Icon button variant +- [ ] Button group + +### DataTable +- [ ] Export a CSV/Excel +- [ ] Column resize +- [ ] Row selection con checkbox +- [ ] Inline editing + +## Documentación + +- [ ] Storybook docs mejorados +- [ ] Props tables automáticas +- [ ] Ejemplos de código copiables +- [ ] Changelog visible diff --git a/dev/issues/009-improve-gitea.md b/dev/issues/009-improve-gitea.md new file mode 100644 index 0000000..886e513 --- /dev/null +++ b/dev/issues/009-improve-gitea.md @@ -0,0 +1,80 @@ +# Issue #009: Mejorar agente gitea + +**Tipo:** enhancement +**Prioridad:** media +**Estado:** pendiente + +## Descripción + +Extender el agente gitea con soporte para CI/CD, templates y automatizaciones. + +## Gitea Actions + +### Workflows +- [ ] Crear/editar workflows en `.gitea/workflows/` +- [ ] Templates para Go, React, Docker +- [ ] Secrets management via API + +### Templates de workflow +```yaml +# Template Go +- uses: actions/setup-go@v5 +- run: go test ./... +- run: go build + +# Template React +- uses: actions/setup-node@v4 +- run: pnpm install +- run: pnpm test +- run: pnpm build +``` + +## Templates de proyecto + +### Issue templates +- [ ] `.gitea/issue_template/bug.md` +- [ ] `.gitea/issue_template/feature.md` + +### PR template +- [ ] `.gitea/pull_request_template.md` + +### Ejemplo bug template +```markdown +--- +name: Bug Report +about: Report a bug +--- + +## Descripción +## Pasos para reproducir +## Comportamiento esperado +## Screenshots +## Entorno +``` + +## Automatizaciones + +### Hooks post-creación de repo +- [ ] Añadir egutierrez como colaborador (ya implementado) +- [ ] Crear estructura inicial (README, LICENSE, .gitignore) +- [ ] Configurar branch protection +- [ ] Crear labels estándar + +### Labels estándar +``` +bug - #d73a4a +enhancement - #a2eeef +documentation - #0075ca +good first issue - #7057ff +``` + +## Releases + +- [ ] Crear releases via API +- [ ] Subir binarios como attachments +- [ ] Changelog automático desde commits + +## Integraciones + +- [ ] Webhook a Discord/Slack +- [ ] Mirror a GitHub (backup) diff --git a/dev/issues/README.md b/dev/issues/README.md new file mode 100644 index 0000000..f3416d5 --- /dev/null +++ b/dev/issues/README.md @@ -0,0 +1,57 @@ +# Issues - Roadmap de Agentes + +Sistema local de issues para trackear mejoras y nuevos agentes. + +## Nuevos Agentes + +| # | Issue | Prioridad | Estado | +|---|-------|-----------|--------| +| 001 | [orchestrator](001-agent-orchestrator.md) - Coordinar agentes | Alta | Pendiente | +| 002 | [ci-cd](002-agent-ci-cd.md) - Pipelines de CI/CD | Alta | Pendiente | +| 003 | [testing](003-agent-testing.md) - Tests automatizados | Media | Pendiente | +| 004 | [api-client](004-agent-api-client.md) - APIs externas | Media | Pendiente | +| 005 | [docs-generator](005-agent-docs-generator.md) - Documentación | Baja | Pendiente | + +## Mejoras a Agentes Existentes + +| # | Issue | Prioridad | Estado | +|---|-------|-----------|--------| +| 006 | [db-reader](006-improve-db-reader.md) - PostgreSQL, migraciones | Media | Pendiente | +| 007 | [backend-lib](007-improve-backend-lib.md) - Nuevos módulos shell/app | Alta | Pendiente | +| 008 | [frontend-lib](008-improve-frontend-lib.md) - Versionado, testing | Media | Pendiente | +| 009 | [gitea](009-improve-gitea.md) - Actions, templates | Media | Pendiente | + +## Agentes Completados + +| Agente | Descripción | Fecha | +|--------|-------------|-------| +| docker | Containerización y deployment | 2025-03-22 | +| build-wails | Apps desktop Wails | 2025-03-22 | + +## Prioridad de implementación + +``` +1. ci-cd ← Automatización básica +2. orchestrator ← Cuando tengas 5+ agentes funcionando +3. backend-lib ← Más módulos reutilizables +4. testing ← Integrar con CI +5. frontend-lib ← Versionado y tests +6. db-reader ← Más bases de datos +7. gitea ← Templates y automatizaciones +8. api-client ← APIs externas +9. docs-generator ← Último, menos crítico +``` + +## Formato de issues + +```markdown +# Issue #XXX: Título + +**Tipo:** feat | enhancement | fix +**Prioridad:** alta | media | baja +**Estado:** pendiente | en progreso | completado + +## Descripción +## Capacidades requeridas +## Dependencias +```