Commit Graph

62 Commits

Author SHA1 Message Date
egutierrez fa2b2e16bc feat(statusline): refresco idle via refreshInterval + cache de git
El statusline solo se re-ejecutaba al cambiar los mensajes, asi que el estado de
reposo que el Stop hook escribe ~2s despues (en background) no se reflejaba hasta
que el usuario interactuaba. Se anade refreshInterval=2 para que el harness re-
ejecute el statusline cada 2s tambien estando idle, mostrando el valor final sin
necesidad de escribir y sin bloquear el turno.

Para que el refresco continuo no sea caro en repos grandes, el bloque git se
cachea por directorio con TTL de 6s (el estado git no cambia estando parado); los
ticks idle reusan el cache (~0.1s vs ~0.33s recomputando). El goal file (la fase)
se lee siempre fresco.

Se revierte el intento previo de Stop sincrono (bloqueaba ~2s el control).

Nota: Claude Code no soporta acotar el refresco a una ventana (p.ej. 10s y
parar); refreshInterval es continuo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 15:19:21 +02:00
egutierrez 4d1fff53e9 fix(statusline): al parar, salir del estado activo de inmediato
El Stop hook ahora pone en_pausa de forma sincrona si la fase estaba en un
estado activo (investigando/haciendo/testeando/puliendo), antes de lanzar el
worker haiku en background. Evita que el statusline se quede mostrando el ultimo
estado activo (p.ej. 'investigando' por un 'git log' final) durante los ~2s que
tarda la clasificacion de reposo. El provisional no toca el historial; el worker
escribe el reposo final (hecho/pendiente_revision/bloqueado/en_pausa) + history.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 15:07:57 +02:00
egutierrez eb42966295 style(statusline): historial con emojis pegados, sin separador entre ellos
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 15:04:43 +02:00
egutierrez 8c9919f1f8 feat(statusline): estados activo (deterministas) + reposo (haiku)
Separa el ciclo de trabajo en dos grupos con la fuente adecuada para cada uno:

- ACTIVO (mientras se trabaja): lo marca el hook PostToolUse de forma
  determinista, sin LLM, segun la herramienta usada — Read/Grep/Glob ->
  investigando; Edit/Write -> haciendo; Bash con tests -> testeando; Bash de
  lectura (ls/cat/git status...) -> investigando; mcp fn_search/show/... ->
  investigando. Refleja en tiempo real lo que hace el asistente.
- REPOSO (al parar y ceder el control): lo resuelve el Stop hook con ask_llm
  (haiku) -> hecho / pendiente_revision / bloqueado / en_pausa. Al parar nunca
  queda en un estado activo.

Cambios:
- goal_phase_active.sh: nuevo hook PostToolUse (mapa herramienta -> fase activa).
- goal_phase_worker.sh: ahora solo produce estados de reposo; se elimina el modo
  prompt. Mantiene el gate (resuelve reposo solo si hubo trabajo o se venia de
  activo) y el historial.
- goal_tracker.sh: deja de lanzar clasificacion LLM en el prompt (redundante);
  vuelve a fijar objetivo desde el prompt + informar estado.
- statusline.sh: nuevo estado en_pausa (en pausa); set de fases reordenado.
- settings.json: registra el hook PostToolUse.

Resultado: 1 sola llamada haiku por turno (Stop); el estado activo es gratis y
refleja las acciones reales en vez de la intencion del prompt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 15:04:07 +02:00
egutierrez f881b7703b feat(statusline): historial de estados + clasificacion al escribir el usuario
- statusline.sh: muestra los ultimos 7 estados previos como emojis atenuados
  (DIM) separados por │, entre el objetivo y la fase actual. El historial se
  guarda en el goal JSON (campo .history), colapsando estados consecutivos
  repetidos, hasta 12 entradas.
- goal_phase_worker.sh: dos modos. 'stop' (tras la respuesta del asistente, con
  filtro de trabajo real) y 'prompt' (tras el prompt del usuario, clasifica la
  intencion para feedback inmediato). Nuevo veredicto 'sin_cambio' para
  preguntas/charla que no implican cambio de actividad; ante la duda, no toca.
  Ambos modos mantienen el historial.
- goal_tracker.sh: en cada prompt con objetivo activo lanza el worker en modo
  prompt (background) ademas del Stop hook.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:07:39 +02:00
egutierrez 5efcedf9ba feat(statusline): seguimiento de objetivo + fase por terminal
Cada terminal muestra su objetivo (color estable por session_id) y la fase de
trabajo actual, para distinguir sesiones y saber cuando algo esta hecho.

- statusline.sh: linea 0 con objetivo (izq, color por sesion) + fase (der) con
  el separador estandar; 9 fases (investigando, planificando, haciendo,
  testeando, puliendo, iterando, pendiente_revision, bloqueado, hecho) con icono,
  color y etiqueta. Purga de goal files de sesiones muertas (>7 dias).
- hooks/goal_tracker.sh (UserPromptSubmit): fija el objetivo leyendo el prompt
  del usuario ("objetivo: ...", "objetivo: clear" lo borra); si no, informa el
  estado actual al modelo.
- hooks/goal_phase_eval.sh (Stop): al terminar el turno lanza el worker en
  background, sin bloquear.
- hooks/goal_phase_worker.sh: clasifica la fase con ask_llm (haiku, API directa,
  nunca claude -p) usando la peticion del usuario + la ultima respuesta del
  asistente. Solo reevalua si el turno tuvo trabajo real (tool_use); en charla
  pura no toca la fase ni gasta llamada.
- settings.json: registra los hooks UserPromptSubmit y Stop.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:01:05 +02:00
egutierrez 71874079cd chore: auto-commit (1 archivos)
- .claude/settings.json

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-05 17:34:23 +02:00
egutierrez 3d0002625b chore: auto-commit (4 archivos)
- .claude/CLAUDE.md
- .claude/agents/dagu/SKILL.md
- .claude/settings.json
- .claude/skills/dagu-auto/SKILL.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 01:29:46 +02:00
egutierrez 3c7a91e0c0 feat(skills): add /sino one-shot short-answer mode
Slash command for rapid yes/no/short iteration. Allows internal
reasoning + read-only tools but restricts user-facing output to
si/no/short phrase. One-shot: only affects the invoking turn.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 20:49:12 +02:00
egutierrez 25eefbd5e3 chore: sync local config — caveman plugin, command/skill tweaks
- settings.json: enable caveman marketplace+plugin, effortLevel=high
- commands/git-branch + git-push: refactor docs
- skills/parallel-fix-issues: SKILL.md + scripts updates
2026-05-08 20:44:50 +02:00
egutierrez bf8651020e feat(statusline): rate-limit burndown colors + reset times
- Show 5h reset as HH:MM and 7d reset as "Day HH:MM" from rate_limits.*.resets_at
- Color 5h/7d pill+arrow by burndown vs expected rate (5h: 20%/h, 7d: 14%/day)
- Green if available% >= expected, yellow if >= expected/2, red otherwise
- Add separator between 5h and 7d blocks
2026-05-08 20:42:48 +02:00
egutierrez e2a131a6dc refactor: skills globales — eliminar hardcodes de paths/build tags
- parallel-fix-issues: detecta build tag del proyecto (auto o via BUILD_TAG env/arg),
  usa $(git rev-parse --show-toplevel) para rutas en vez de /home/ubuntu/agents_and_robots
- verify-worktree.sh: acepta BUILD_TAG como env o segundo argumento, auto-detecta con
  //go:build, ejecuta sin -tags si no hay tag configurado
- create-tui: DEVFACTORY_PATH, DEVFACTORY_MODULE y GO_NAMESPACE configurables via env
- init-jupyter: resuelve SKILL_DIR dinamicamente siguiendo el symlink de ~/.claude
- pass-usage: elimina GPG-ID hardcodeado, instruye leer de ~/.password-store/.gpg-id
- settings.json: refresh de formato + effortLevel

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 17:04:34 +02:00
egutierrez 31b28cf260 feat: agregar skill parallel-fix-issues
Nuevo skill que permite implementar múltiples issues en paralelo usando
git worktrees aislados y agentes concurrentes. Analiza dependencias,
verifica builds/tests e integra a master en orden. Incluye scripts
auxiliares en scripts/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 23:26:58 +02:00
egutierrez e6f24187b4 feat: agregar commands al repositorio
Se añaden 4 commands en .claude/commands/ que reemplazan a los skills
obsoletos con formato SKILL.md. Los commands usan el formato nativo de
Claude Code (.md en commands/) y cubren: create-issue, fix-issue,
git-branch y git-push. Esto simplifica la invocación y mantenimiento.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 23:26:51 +02:00
egutierrez b0a9e31abd chore: eliminar SKILL.md de skills obsoletos
Se eliminan los archivos SKILL.md y scripts asociados de 20 skills que
ya no se usan. Estos skills fueron reemplazados por commands (.claude/commands/)
o por skills nuevos con estructura actualizada. Limpieza necesaria para
evitar confusión entre skills activos y obsoletos.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 23:26:44 +02:00
egutierrez ff17ad2c37 chore: eliminar SKILL.md de agents obsoletos
Se eliminan los archivos SKILL.md de fn-constructor, fn-executor,
fn-recopilador y frontend-lib que ya no se utilizan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 23:01:44 +02:00
egutierrez 757b4721a9 feat: añadir agents fn-constructor y fn-recopilador
Se añaden los agents del ciclo reactivo: fn-constructor (Fase 1) para
construcción de funciones/tests/tipos, y fn-recopilador (Fase 3) para
auditoría y validación de operations.db.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 20:19:54 +02:00
egutierrez 442ce2fb20 chore: eliminar agents obsoletos
Se eliminan los agents backend-lib, build-wails, db-reader, docker y navegator
que ya no se utilizan en el flujo de trabajo actual.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 20:19:49 +02:00
egutierrez c8a8a4cb0a feat: estructura obligatoria de apps en fn-executor
Añade sección completa de estructura obligatoria para apps: app.md con
frontmatter estandarizado, .gitignore, estructura por lenguaje (Go/Python/Bash),
checklist de validación de 7 puntos, y templates actualizados que incluyen
app.md + .gitignore + fn index como pasos obligatorios al crear apps.
2026-03-29 18:13:29 +02:00
egutierrez 14c29bc3c5 claude autoeditable 2026-03-27 02:44:24 +01:00
egutierrez 92d0ae810e feat: añadir skill pass-usage para gestión de contraseñas
Skill que gestiona contraseñas con pass (password-store) y GPG.
Soporta insertar, listar, buscar, generar y sincronizar secretos
con el repositorio de Gitea. Verifica dependencias e instala
automáticamente si es necesario.
2026-03-27 02:35:42 +01:00
egutierrez cf71067dc6 Fix dagu-auto skill: add common errors table for Dagu v2.3+
Added explicit rules for working_dir (not dir), type: graph with depends,
and snake_case step IDs. These caused validation failures in practice.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 02:20:58 +01:00
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
egutierrez 7f4c481e73 refactor: actualizar skill execute-parallel con binario y nuevos flags
Documentar arquitectura utils/parallel-executor/, añadir flags
--dry-run, --sort, --cleanup. Actualizar flujo para usar binario
compilado en bin/parallel-executor.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 02:15:23 +01:00
egutierrez 650f848ac3 chore: habilitar plugin gopls-lsp en settings
Añadir gopls-lsp@claude-plugins-official a enabledPlugins
para soporte de Go LSP en Claude Code.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 02:15:17 +01:00
egutierrez 3f7fd50b90 feat: añadir agente dagu y skill dagu-auto
Agente para gestionar Dagu: instalación, organización de ~/dagu,
creación de DAGs YAML con referencia completa del formato.
Skill dagu-auto genera automatizaciones completas (DAG + scripts)
y es invocable tanto por el usuario como por Claude automáticamente.
Preferimos Dagu sobre cron para toda programación de tareas.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 02:15:12 +01:00
egutierrez 0f8f8457f6 feat: añadir reglas de inmutabilidad y programación funcional
Actualiza JUPYTER_RULES en setup-jupyter.sh para incluir:
- Regla 1: Código inmutable - prohibido modificar celdas existentes
- Regla 2: Programación funcional obligatoria con ejemplos
- Renumeración de reglas existentes (3-7)

Estas reglas se aplicarán a todos los repos inicializados con /init-jupyter
2026-03-26 22:46:17 +01:00
egutierrez d2017b83bc feat: añadir reglas de notebooks y uv a init-jupyter
Actualizar JUPYTER_RULES en setup-jupyter.sh para incluir:
- Todos los notebooks van a carpeta notebooks/ o subcarpetas
- Siempre usar uv para gestionar Python (no pip directamente)
- Renumerar secciones de reglas
2026-03-26 00:48:07 +01:00
egutierrez e38f100189 refactor: simplificar SKILL.md delegando trabajo al script bash
Reduce SKILL.md de ~450 líneas a ~60 líneas.
El agente ahora solo ejecuta setup-jupyter.sh e interpreta el STATUS.
Elimina instrucciones manuales redundantes que el bash ya maneja.
2026-03-26 00:21:34 +01:00
egutierrez 3ae6268e4c feat: añadir script bash para automatizar setup de Jupyter
Script setup-jupyter.sh que automatiza todo el proceso de inicialización:
- Verifica estado actual (MCP, config, Jupyter, reglas)
- Elimina instalación global de MCP si existe
- Detecta puerto libre automáticamente
- Crea run-jupyter-lab.sh, .mcp.json, CLAUDE.md
- Instala dependencias con uv/pip
- Devuelve STATUS para que el agente interprete el resultado
2026-03-26 00:21:28 +01:00
egutierrez 66bfdd4ce9 feat: mejorar skill init-jupyter con validaciones robustas
Añade verificaciones y manejo de casos edge para trabajo multi-repo:

- Verificación de puerto desincronizado (PORT_DESYNC)
- Detección y limpieza de instalación global de MCP
- Merge de settings.local.json con jq para preservar MCPs existentes
- Resumen final mejorado con troubleshooting
2026-03-25 23:58:18 +01:00
egutierrez e29eef47f1 feat: mejorar skill init-jupyter con detección inteligente
- Añadir PASO 0 para detectar estado del repo (MCP instalado, repo configurado, Jupyter corriendo)
- Reglas de Jupyter ahora se insertan al PRINCIPIO de CLAUDE.md
- Nuevas conversaciones detectan automáticamente si el repo tiene Jupyter habilitado
- Autodetección de puerto libre (8888-8899)
- Script run-jupyter-lab.sh guarda puerto en .jupyter-port
2026-03-25 23:41:10 +01:00
egutierrez f6702e6371 configuraciones añadida 2026-03-25 22:08:40 +01:00
egutierrez 00fbe6fe21 feat: añadir script run-jupyter-lab.sh y detección de Jupyter activo
- Crear script run-jupyter-lab.sh automáticamente en proyectos
- Detectar si Jupyter ya está corriendo antes de arrancarlo
- Usuario puede gestionar Jupyter manualmente, Claude se adapta
- Documentar dos opciones de flujo de trabajo colaborativo

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-25 22:07:22 +01:00
egutierrez 9f552313ef feat: mejorar init-jupyter con kernel compartido para colaboración
- Añadir configuración --start-new-runtime false por defecto
- Documentar flujo de trabajo colaborativo con Jupyter Lab
- Permitir ver ejecuciones de Claude en tiempo real en el notebook
- Añadir instrucciones para conectar a kernel específico

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-25 22:01:30 +01:00
egutierrez 6d0ccdfe20 feat: agregar status line personalizada y agente navegator
Incluye script de statusline con info de modelo, contexto, tokens,
git, costos y rate limits. Actualiza install.sh para instalar configs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-25 21:01:54 +01:00
egutierrez 439d42f082 feat: crear skill create-agent
Skill para generar nuevos agentes especializados siguiendo la estructura oficial.

Características:
- Validación de nombre y convenciones
- Configuración guiada (model, tools, MCP servers)
- Soporte para repositorios locales en ~/.local_agentes/
- Generación de SKILL.md con frontmatter YAML + documentación
- Templates para MCP servers (gitea, sqlite, filesystem)
- Integración automática con git-push

Estructura generada:
- .claude/agents/nombre/SKILL.md
- ~/.local_agentes/nombre/ (opcional)
- README.md en carpeta local

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-24 22:59:34 +01:00
egutierrez 4bf7f51613 feat: mejorar init-jupyter para detectar notebooks existentes
Ahora el skill detecta si ya hay archivos .ipynb en el repo o carpeta notebooks.
Si existen, simplemente inicia Jupyter via MCP sin reinicializar el proyecto.
Se garantiza que siempre use MCP para la integración con Claude.
Se agrega Glob a las herramientas permitidas para la detección.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-23 13:03:00 +01:00
egutierrez 9f88010eb5 refactor: eliminar MCP servers y usar Python nativo en db-reader
Se remueven las dependencias de mcp-server-sqlite y mcp-server-duckdb.
Ahora el agente usa Python directamente con sqlite3 y duckdb.
Se agregan reglas críticas para evitar crear archivos con variables de entorno literales.
Se documentan ejemplos correctos de rutas absolutas y relativas.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-23 13:02:55 +01:00
egutierrez 3af90e590c docs: añadir regla de colaborador egutierrez en agente gitea
Se establece como regla obligatoria añadir a egutierrez como colaborador
admin en todos los repositorios creados con el bot dataforge.
2026-03-22 19:10:54 +01:00
egutierrez 00f58d2560 docs: actualizar tokens en agente gitea
Se actualiza la documentación de tokens con la nueva estructura:
- dataforge-token: para operaciones automatizadas/bot
- egutierrez-token: para operaciones personales

Se agregan funciones de bash para cambiar entre usuarios fácilmente.
2026-03-22 19:08:00 +01:00
egutierrez 1529e55d25 feat: agregar agente build-wails para apps desktop
Nuevo agente para crear y compilar aplicaciones Wails (Go + React).
Soporta compilación cross-platform: Linux, Windows, macOS.
Incluye script de creación de proyecto con DevFactory y frontend-lib integrados.
2026-03-22 19:00:07 +01:00
egutierrez 8f7dbcf196 feat: agregar agente docker para containerización
Nuevo agente para generar Dockerfiles y docker-compose.
Incluye templates para Go, React/Vite, y stacks fullstack.
Soporta desarrollo con hot reload y producción optimizada.
2026-03-22 19:00:06 +01:00
egutierrez 99a175498d feat: agregar agente frontend-lib (Frontend_Library)
Nuevo agente para gestionar componentes React/TypeScript reutilizables.
Trabaja en ~/.local_agentes/frontend con 50+ componentes shadcn/ui.
Stack: React 19, Tailwind v4, Vite 8, Storybook 10.
2026-03-22 18:59:58 +01:00
egutierrez d51f93a342 feat: agregar agente backend-lib (DevFactory)
Nuevo agente para gestionar la librería Go funcional DevFactory.
Trabaja en ~/.local_agentes/backend y sincroniza con Gitea.
Incluye patrones Result[T], Option[T], y arquitectura core/shell/app.
2026-03-22 18:59:57 +01:00
egutierrez ae60de8536 docs: actualizar agente gitea con gestión de secretos
Se agrega documentación sobre gestión de secretos usando pass (GPG).
Incluye instrucciones para cargar credenciales y sincronizar con el repo de secretos.
2026-03-22 18:59:49 +01:00
egutierrez 29603b436d chore: eliminar agente browser-go
Se elimina el agente browser-go que usaba Chrome DevTools MCP.
Este agente fue reemplazado por otras soluciones.
2026-03-22 18:59:48 +01:00
egutierrez e1ef67f784 feat: agregar agente browser-go con MCP de Chrome DevTools
Agente especializado en crear binarios Go que interactúan con navegador
headless. Usa chrome-devtools-mcp para explorar páginas y genera código
con chromedp siguiendo arquitectura funcional (core/shell/app).

Características:
- Exploración de páginas web con navegador real via MCP
- Generación de módulos Go con estructura core/shell/app
- Patrón Result[T] para manejo funcional de errores
- Errores tipados (BrowserError) con contexto completo
- Compila y verifica binarios antes de entregar
2026-03-21 21:40:09 +01:00
egutierrez 53f71af12f feat: agregar agente gitea con MCP oficial
Crea agente para gestionar instancias Gitea:

- Repositorios: crear, fork, listar, buscar
- Branches: crear, eliminar, listar
- Archivos: leer, crear, actualizar, eliminar
- Issues: crear, listar, comentar
- Pull Requests: crear, listar
- Milestones: CRUD completo

MCP: gitea-mcp (oficial de Gitea)
Requiere: GITEA_URL y GITEA_TOKEN

Invocación: @gitea o claude --agent gitea
2026-03-21 21:07:58 +01:00
egutierrez ee29301ad2 feat: agregar agente db-reader con SQLite y DuckDB
Crea agente especializado en bases de datos:

- SQLite MCP: crear, insertar, consultar, analizar
- DuckDB MCP: análisis OLAP, importar CSV/Parquet

MCPs configurados:
- mcp-server-sqlite (uvx)
- mcp-server-duckdb (uvx)

Variables de entorno:
- SQLITE_DB_PATH (default: ./data.sqlite)
- DUCKDB_DB_PATH (default: ./data.duckdb)

Invocación: @db-reader o claude --agent db-reader
2026-03-21 21:02:01 +01:00