Files
egutierrez c36aa18c67 feat: añadir skills create-tui, init-frontend, init-go-module y utilidades
Nuevas skills para crear TUIs, inicializar frontends React y módulos Go.
Incluye binario parallel-executor y utilidades de soporte.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 02:15:34 +01:00

210 lines
7.8 KiB
Markdown

# Claude Code — Skills, Agents & Tools
Sistema de automatizacion para desarrollo de software usando Claude Code. Incluye skills (comandos invocables), agentes especializados, y herramientas Go para orquestar trabajo paralelo.
## Estructura del repo
```
repo_Claude/
├── bin/ # Binarios compilados
│ └── parallel-executor # Orquestador de ejecucion paralela
├── utils/
│ └── parallel-executor/ # Codigo fuente Go del orquestador
│ ├── core/ # Funciones puras (parser, planner)
│ └── shell/ # I/O (worktrees, executor, logger)
├── dev/
│ └── issues/ # Sistema local de issues
└── install.sh # Instalador
```
---
## Skills
Skills son comandos invocables desde Claude Code con `/nombre`. Viven en `~/.claude/skills/`.
### Configuracion y setup
| Skill | Descripcion | Uso |
|-------|-------------|-----|
| `/primer` | Genera CLAUDE.md personalizado analizando el repo | `/primer` |
| `/init-jupyter` | Inicializa proyecto Jupyter + MCP (bash script idempotente) | `/init-jupyter [ruta]` |
| `/init-go-module` | Crea modulo Go funcional con bindings Python (CGO + ctypes) | `/init-go-module nombre` |
| `/init-frontend` | Crea proyecto React/Vite o Wails desktop | `/init-frontend nombre [--wails]` |
| `/nochanges` | Modo read-only para explorar sin modificar | `/nochanges` |
| `/create-skill` | Crea un skill nuevo | `/create-skill nombre` |
| `/create-agent` | Crea un agente especializado | `/create-agent` |
### Git
| Skill | Descripcion | Uso |
|-------|-------------|-----|
| `/git-branch` | Crea ramas `issue/*` o `quick/*` desde master | `/git-branch issue 0013 slug` |
| `/git-push` | Commits atomicos por tipo, merge --no-ff, push, limpieza | `/git-push` |
| `/git-recovery` | Recupera repo de estados inconsistentes | `/git-recovery [--aggressive]` |
### Workspace (Gitea + SQLite)
| Skill | Descripcion | Uso |
|-------|-------------|-----|
| `/create-repo` | Crea workspace en Gitea con rollback | `/create-repo` |
| `/import-repo` | Importa repo existente a Gitea (mirror) | `/import-repo` |
| `/sync-repos` | Sincroniza workspaces locales con Gitea | `/sync-repos [--dry-run]` |
| `/list-repos` | Lista workspaces desde SQLite | `/list-repos [--filter x]` |
| `/cleanup-worktrees` | Limpia worktrees post-merge | `/cleanup-worktrees [--all]` |
### Issues
| Skill | Descripcion | Uso |
|-------|-------------|-----|
| `/create-issue` | Crea issue con template, sub-issues si es grande | `/create-issue` |
| `/fix-issue` | E2E: lee issue, branch, implementa, tests, merge | `/fix-issue 0013` |
| `/auto-fix` | Igual que fix-issue pero sin confirmacion | `/auto-fix 0013` |
| `/auto-create` | Igual que create-issue sin confirmacion | `/auto-create` |
| `/quick-issue` | Issue minimal desde texto (para TUI) | `/quick-issue --text "..."` |
| `/issues-status` | Dashboard con filtros por workspace/estado/tag | `/issues-status` |
### Ejecucion paralela
| Skill | Descripcion | Uso |
|-------|-------------|-----|
| `/sort-issues` | Analiza dependencias, topological sort | `/sort-issues` |
| `/parallel-issues` | Genera plan de ejecucion paralela | `/parallel-issues` |
| `/execute-parallel` | Crea worktrees y ejecuta issues en paralelo | `/execute-parallel [--dry-run]` |
---
## Agentes
Agentes especializados que Claude Code puede invocar automaticamente. Cada uno tiene su propio modelo, herramientas y MCP servers. Viven en `~/.claude/agents/`.
### Librerias de desarrollo
| Agente | Modelo | Descripcion | Ubicacion |
|--------|--------|-------------|-----------|
| **backend-lib** | sonnet | Gestiona DevFactory — libreria Go funcional con Result[T], Option[T], HTTP, DB, finance | `~/.local_agentes/backend` |
| **frontend-lib** | sonnet | Gestiona Frontend_Library — 50+ componentes React/TS, temas OKLCH, shadcn/ui, charts, DSP | `~/.local_agentes/frontend` |
### Build y deploy
| Agente | Modelo | Descripcion |
|--------|--------|-------------|
| **build-wails** | sonnet | Apps desktop Wails v2 (Go + React). Cross-compile Linux/Windows/macOS. Integra ambas librerias |
| **docker** | sonnet | Dockerfiles multi-stage, docker-compose, push a registries, deploy via SSH |
### Datos e infraestructura
| Agente | Modelo | Descripcion |
|--------|--------|-------------|
| **db-reader** | sonnet | Bases de datos SQLite y DuckDB. Consultas, imports CSV/Parquet/JSON, analisis OLAP |
| **gitea** | sonnet | Gestion de Gitea: repos, issues, PRs, branches, archivos. MCP integrado |
### Automatizacion
| Agente | Modelo | Descripcion |
|--------|--------|-------------|
| **navegator** | sonnet | Automatizacion web con Go + Chrome DevTools Protocol (chromedp). Perfiles de navegacion |
---
## Parallel Executor
Binario Go en `utils/parallel-executor/` que orquesta la ejecucion paralela de issues usando git worktrees.
### Arquitectura
Sigue el patron **pure core / impure shell** de DevFactory:
```
utils/parallel-executor/
├── core/ # Funciones puras, 0 side effects
│ ├── parser.go # Parsea PARALLEL_EXECUTION_ORDER.md
│ ├── planner.go # Topological sort (Kahn), deteccion de ciclos
│ ├── parser_test.go
│ └── planner_test.go
├── shell/ # Operaciones I/O con Result[T]
│ ├── worktree.go # CRUD de git worktrees
│ ├── executor.go # Invoca `claude -p` en cada worktree
│ └── logger.go # Logs por sesion e issue
├── main.go # CLI
├── go.mod + go.work # DevFactory como dependencia
└── Makefile
```
### Uso
```bash
# Compilar
cd utils/parallel-executor && make build
# Analizar issues y generar plan
./bin/parallel-executor --sort
# Ver que haria sin ejecutar
./bin/parallel-executor --dry-run
# Ejecutar todo
./bin/parallel-executor
# Solo un grupo
./bin/parallel-executor --group 1
# Sin paralelismo
./bin/parallel-executor --sequential
# Solo limpiar worktrees
./bin/parallel-executor --cleanup
```
### Flujo de ejecucion
1. Lee (o genera) `PARALLEL_EXECUTION_ORDER.md`
2. Agrupa issues por dependencias (topological sort)
3. Por cada grupo, crea worktrees en `worktrees/issue-NNNN/`
4. Ejecuta `claude -p` en paralelo dentro de cada worktree
5. Mergea branches exitosas a master (`--no-ff`)
6. Limpia worktrees automaticamente
7. Escribe logs en `logs/`
---
## Stack tecnologico
### Backend (Go)
- **Go 1.22+** con generics
- **DevFactory** (`~/.local_agentes/backend`): Result[T], Option[T], MapSlice, FilterSlice, Reduce, Pipe, Curry
- Patron **pure core / impure shell**: funciones puras en `core/`, I/O wrapeado en Result[T] en `shell/`
- **DuckDB** para analytics, **SQLite** para metadata
- **Bubble Tea** para TUIs
### Frontend (React)
- **React 19** + TypeScript strict + **Vite** + **Tailwind CSS 4** (OKLCH)
- **Frontend_Library** (`~/.local_agentes/frontend`): shadcn/ui, Phosphor Icons, 50+ componentes
- **pnpm** exclusivamente, link via `pnpm add @anthropic/frontend-lib@link:...`
- Vite dedupe obligatorio para `react`, `react-dom`
- **Storybook 10** para documentacion de componentes
### Desktop
- **Wails v2** (Go backend + React frontend)
- Cross-compile: Linux AMD64/ARM64, Windows AMD64
- DevFactory via `go.work`, Frontend_Library via `pnpm link`
### Infraestructura
- **Gitea** self-hosted para repositorios
- **Docker** multi-stage builds
- **Trunk-based development**: ramas `issue/*` y `quick/*`, merge rapido a master
---
## Convenciones
- **Inmutabilidad**: no mutar datos, crear copias nuevas
- **Result[T]** para errores, no `(T, error)` — permite encadenamiento monadico
- **Commits atomicos**: agrupados por tipo (feat, fix, refactor, docs, chore, test)
- **Issues**: formato 3-4 digitos, estado en markdown, sub-issues con sufijo letra
- **Skills con bash scripts**: idempotentes, detectan estado existente, colores en output