# 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
