Todos los cambios relevantes del proyecto se documentan en este fichero.
El formato sigue Keep a Changelog y el proyecto usa versionado semántico.
- Catálogo canónico de Selina con 10 sistemas de diseño base:
core/selina_style_catalog.pyreúne el modo libre/contextual y nueve familias visuales guiadas por tendencia para que la fase visual parta de un vocabulario explícito, no de intuiciones sueltas. - Galería de demos para comparar sistemas de diseño:
core/selina_style_demo.pyyvisual/scripts/write-style-demo-gallery.pygeneran una muestra navegable de los 10 sistemas con referencias, paletas, tipografías y tono antes de cerrar las 3 propuestas comparables. - Paletas y tipografías por familia: cada sistema de diseño declara modos cromáticos, pairing tipográfico y enlaces a Google Fonts o referencias visuales para que Selina pueda justificar la dirección elegida con señales verificables.
- Selina deja de presentarse como “tres estilos” aislados: ahora se explica como una capa de dirección visual basada en 10 sistemas de diseño base que se reducen a 3 propuestas finales comparables según PRD, audiencia y stack.
- Versionado coherente a 0.5.1: plugin, marketplace, instaladores, paquetes, memoria MCP, session report, README, changelog, docs y landing quedan alineados.
- Landing y docs públicas más fieles al runtime: la home pasa a contar el catálogo de Selina, el estado real de la release y cómo encaja la fase visual dentro del flujo orquestado.
- Superficie de actualización sin drift: los puntos de versión internos que todavía caían por defecto a una release anterior pasan a reflejar la versión actual para no mezclar metadata vieja al instalar o consultar estado.
- Tests de release menos frágiles: la suite deja de depender de wrappers finos de Astro o rutas hardcodeadas por versión cuando lo correcto es leer la fuente de verdad del manifiesto.
- Lucius — El Director Técnico: nuevo agente opcional que actúa como segunda opinión técnica externa. Invoca el Codex CLI de OpenAI (
codex review) con GPT-5.4 para auditar el código del proyecto desde una perspectiva externa, sin modificar ningún fichero. Requiere Codex CLI instalado y suscripción activa de OpenAI (Plus o Pro). - Comando
/alfred-dev:lucius: punto de entrada para invocar la auditoría. Acepta directorio objetivo y scope opcionales (all,security,tests,architecture,performance). - Informe estructurado por ítem: Lucius devuelve diagnóstico + prescripción + esfuerzo (S/M/L) + sugerencia de con quién implementar (Alfred o Codex) en cuatro secciones: Crítico, Relevante, Oportunidades y Lo que está bien.
- Preflight de prerequisitos: verifica que
codexestá en el PATH y autenticado. Si falta algún requisito, para con instrucciones claras de instalación. - HARD-GATE sin modificaciones: el subcomando
codex reviewactivasandbox: read-onlyyapproval: neverde forma nativa, garantizando que ningún fichero se toca. - Selina — La Estilista: nuevo agente de núcleo (10.º) que ocupa la fase 1b del flujo
feature. Presenta tres direcciones de estilo visual en el navegador antes de que el architect diseñe componentes. Solo se activa si el proyecto tiene interfaz de usuario. - Servidor visual local: servidor HTTP + WebSocket de dependencias cero (
visual/scripts/server.cjs) para renderizar opciones de estilo en tres columnas. Gestiona sesiones por proyecto, hot-reload víafs.watch, registro de clics enstate/eventsy cierre limpio anteSIGTERM. - Skill de estilo visual (
skills/estilo/style-direction/SKILL.md): guía completa para que Selina arranque el servidor, escriba el HTML de opciones con.style-grid, lea la elección del usuario y generedocs/style-direction.md. - Fase condicional
estilo_visual: nueva condición"tiene_frontend"en el orquestador. La funciónconfig_loader.has_frontend(stack)evalúa el stack del proyecto y permite queadvance_phase()salte la fase automáticamente en proyectos sin UI. - Helper
_advance_skipping_phases: función extraída del orquestador para gestionar el salto de fases con condición no cumplida, reduciendo la complejidad cognitiva deadvance_phase.
- 19 agentes totales: el plugin pasa de 18 a 19 agentes (10 de núcleo + 9 opcionales) con la incorporación de Lucius.
- 26 comandos: se añade
/alfred-dev:luciusal manifiesto del plugin. - Versionado coherente a 0.5.0: plugin, marketplace, instaladores, paquetes, README, changelog, docs y landing quedan alineados.
- Landing actualizada: tarjeta de Lucius antes de Selina con badge «Nuevo», agente opcional con use cases, counts actualizados a 19 agentes y 26 comandos.
- Imports de módulos nativos:
server.cjsusa ahora el prefijonode:(node:http,node:crypto,node:fs,node:path) según la convención canónica de Node.js ≥18. Number.parseInten lugar deparseIntenserver.cjspara cumplir con las reglas de linting de SonarQube.- Complejidad cognitiva de
handleRequestreducida: el bloque/files/*se extrae aserveStaticFile(). catchsin variable no usada: el bloquecatch (e)enserveStaticFilepasa acatch {}eliminando la variable no referenciada.- Complejidad cognitiva en
config_loader.py:_count_source_files(38 → ~6) ysuggest_optional_agents(18 → ~3) resueltas extrayendo_scan_dir_for_sources(recursivo, reemplaza el triple bucle manual) y_build_suggestion_checks(lista de checks, elimina las 8 ramas if/elif). - Skill de SonarQube registrado en
plugin.json: el ficheroskills/calidad/sonarqube/SKILL.mdexistía en disco pero no estaba en el arrayskillsdel manifiesto del plugin, por lo que Claude Code no lo cargaba. - Permisos de Docker en subagentes: los comandos Docker añadidos a
~/.claude/settings.jsoncomo entradasBash(docker ...)permiten que elsecurity-officerarranque SonarQube sin prompt de confirmación al usuario.
0.4.7 - 2026-03-31
- Hook SessionStart robusto: la emisión JSON del contexto de sesión ya no se trunca cuando el contenido supera
ARG_MAXdel kernel o contiene caracteres especiales (tildes, backticks, comillas, barras invertidas). La causa raíz era queescape_for_json()pasaba el contexto comosys.argv[1], sujeto al límite de tamaño de argumentos del sistema operativo.
- Emisión JSON por stdin: la generación del JSON del hook pasa de interpolación en heredoc bash con
escape_for_json()a emisión directa por stdin conjson.dumps()en una nueva funciónemit_hook_json(), eliminando la clase de error por completo. - Versionado coherente a 0.4.7: plugin, marketplace, instaladores, paquetes, metadata estructurada, README, changelog, docs y landing quedan alineados.
0.4.6 - 2026-03-23
- Memory UI local: nuevo
/alfred-dev:memory-uipara abrir una vista viva en navegador sobre la SQLite del proyecto con overview, timeline, decisiones, grafo, commits, búsqueda, salud y señales operativas de SonIA. - Memory UI reforzada para produccion: los flujos helper-first (
map-codebase,discuss,quick) ya siembran progreso, trazabilidad y kanban de forma natural, la UI importa commits Git si faltan en memoria y muestra mejor los estados vacios. - Cobertura E2E de Memory UI: nuevos tests para servidor local, contratos del comando y siembra helper-first que valida timeline, decisiones, commits y señales operativas sin rellenar SQLite a mano.
- Versionado coherente a 0.4.6: plugin, marketplace, instaladores, paquetes, metadata estructurada, README, changelog, docs y landing quedan alineados.
- Superficie pública actualizada: Alfred refleja ahora
25comandos y13hooks visibles, conmemory-uiintegrada en help, session-start, documentación y web. - Publicación más limpia: se retiran del repositorio los documentos internos de planificación
docs/superpowers/y se ignoran para no incluirlos en futuras releases.
0.4.5 - 2026-03-22
- PM operativo determinista para SonIA: nuevos comandos
/alfred-dev:standup,/alfred-dev:blocked,/alfred-dev:in-progress,/alfred-dev:validatey/alfred-dev:searchpara explotar el kanban local, la trazabilidad y la memoria del proyecto desde CLI sin abrir siempre un flujo multiagente. - SonIA Sync para GitHub: nuevo
/alfred-dev:sync-github [owner/repo]para sincronizar backlog, trabajo en curso, bloqueos y tablero de SonIA usandogh, manteniendodocs/project/y.claude/como fuente de verdad local. - Busqueda unificada proyecto + memoria:
searchcruza artefactos operativos (docs/project/) con la SQLite del proyecto y devuelve resultados accionables en una sola vista. - Validacion operativa del tablero:
validatedetecta IDs de tarea duplicados, huecos de trazabilidad, falta de evidencia endone, bloqueos mal descritos, UAT pendiente y drift del sync local con GitHub. - Cobertura PM y GitHub ampliada: nuevos tests para wrappers helper-first, parser del kanban de SonIA, renderizados operativos, sincronizacion a GitHub y smokes directos del helper CLI.
- SonIA pasa de agente interno a capa operativa visible:
progress,standup,blocked,in-progress,validateysearchconvierten el backlog local en una interfaz diaria real para Claude Code CLI. - Continuity.py se amplía a PM colaborativo: la capa determinista ya no cubre solo continuidad y UAT, sino tambien vistas PM, validacion de artefactos y sync opcional con GitHub Issues.
- Versionado coherente a 0.4.5: plugin, marketplace, instaladores, paquetes, metadata estructurada, README, changelog, docs y landing quedan alineados.
- Superficie pública actualizada: Alfred refleja ahora
24comandos y13hooks visibles, con la capa PM/GitHub integrada en help, session-start, documentación y web.
0.4.4 - 2026-03-22
- FTS de eventos consistente: los eventos con
contentya son buscables enmemory_searchycheck_health()deja de marcar la memoria como corrupta tras el primer evento indexado. - Purga limpia el indice FTS:
purge_old_events()elimina tambien las filas dememory_fts, evitando huerfanos y falsos errores despues de aplicar la retencion. - Tamano real de la DB en modo WAL:
memory_healthsuma ahora.db,-waly-shm, de modo que el tamano reportado refleja el consumo real. - Importacion Git robusta:
import_git_history()y la captura degit commitya no rompen mensajes o autores cuando el subject contiene el caracter|. - Sin techos silenciosos en sync/export: la proyeccion a memoria nativa y la exportacion de decisiones dejan de truncarse en los primeros 1000 registros.
- Capa operativa de continuidad: nuevos comandos
/alfred-dev:map-codebase,/alfred-dev:discuss,/alfred-dev:next,/alfred-dev:pause,/alfred-dev:resume,/alfred-dev:progress,/alfred-dev:verifyy/alfred-dev:quickpara orientar, pausar, retomar, mapear brownfield y cerrar UAT sin abrir siempre un flujo multiagente completo. - Helper determinista
core/continuity.py: nueva base común para continuidad CLI, artefactoscodebase-map.md,current.md,handoff.md,uat.mdy sesiones ligeras reproducibles. - Parser compartido de configuracion de memoria: nuevo modulo
core/memory_config.pypara resolver defaults y leermemoria.enabled,sync_to_native,sync_commits_limit,capture_decisions,capture_commitsyretention_daysde forma uniforme. - Hardening helper-first en Claude CLI: bootstrap de sesión, wrapper local
.claude/alfred-continuity.py, autoallow de helpers seguros y barreras de prefetch para quemap-codebasey el brownfield de/alfred-dev:alfredfuncionen de forma natural enclaude -p. - Cobertura de regresion ampliada: tests nuevos para FTS de eventos, purga + salud, tamaño con WAL, importacion Git con
|, config efectiva del servidor MCP, parser de memoria y sync mas alla de 1000 decisiones.
- Alfred decide mejor el siguiente paso: el asistente contextual ya no solo clasifica
feature/fix/spike/audit, sino también continuidad, brownfield, UAT y progreso operativo antes de abrir agentes. - La configuracion de memoria ya se aplica de verdad:
capture_decisions,capture_commits,retention_daysysync_commits_limitpasan a estar cableados en hooks, servidor MCP y sincronizacion nativa. - Versionado coherente a 0.4.4: plugin, marketplace, instaladores, paquetes, servidor MCP, informes y metadata de la web quedan alineados.
- Web, README y documentacion alineados: la landing, el README y los docs reflejan ya el modelo actual de Alfred (
18comandos,6flujos,12hooks, continuidad operativa y memoria persistente real). - Documentacion de memoria actualizada: README,
docs/memory.md,docs/configuration.mdycommands/config.mdreflejan el comportamiento real del sistema y el esquema actual.
0.4.3 - 2026-03-21
- Preflight obligatorio de SonarQube en
/alfred audit: la auditoria ahora comprueba Docker antes de lanzar agentes y no deja que SonarQube se omita silenciosamente cuando falta el daemon o hacen falta permisos. - Pregunta interactiva incluso en autopilot: si hay que instalar Docker, arrancarlo o abrir Docker Desktop, Alfred pide confirmacion explicita al usuario antes de tocar el sistema.
- Skill de SonarQube endurecido: el skill ya no asume permisos, contempla contenedor previo, puerto
9000ocupado y limpieza final aunque el analisis falle. - Ayuda alineada con el equipo real:
/alfred helpvuelve a listar los 9 agentes de nucleo incluyendoproject-manager (SonIA).
- Tests de contrato para prompts operativos: nueva cobertura de regresion para asegurar que
audit.mdyskills/calidad/sonarqube/SKILL.mdsiguen pidiendo permisos y documentando la omision de SonarQube cuando corresponde.
- Versionado coherente a 0.4.3: plugin, marketplace, instaladores, paquetes y referencias visibles de la web quedan alineados en una sola version.
0.4.2 - 2026-03-14
- Falso positivo en evidence guard: el patron
\d+ failuresdetectaba "0 failures" como fallo. Corregido para excluir el cero. - Gate de arquitectura mal tipada: la fase de arquitectura del flujo feature tenia gate
usuarioen lugar deusuario+seguridad, haciendo inoperante la validacion de seguridad. - Patrones divergentes:
quality-gate.pytenia patrones de deteccion propios que divergian deevidence_guard_lib.py. Unificado para usar una sola fuente de verdad. - Clave de autopilot inconsistente: los comandos markdown buscaban
"modo": "autopilot"pero el codigo escribia"autopilot": true. Corregido.
- Soporte para go test: la salida de
go testse detecta correctamente como exito en evidence guard. - Informe de sesiones parciales: el stop-hook genera informe cuando una sesion se interrumpe, no solo cuando se completa.
- Modo autopilot en informes: los informes de sesion indican si se ejecutaron en modo autopilot o interactivo.
- Iteraciones por fase en informes: los informes muestran cuantos reintentos tuvo cada fase.
- Verificacion de evidencia en markdown: instruccion explicita para que Claude lea
alfred-evidence.jsonantes de avanzar gates automaticas. - Loop iterativo documentado: los comandos feature, fix y ship incluyen instrucciones de loop iterativo (max 5 reintentos por fase).
- Persistencia de iteraciones: instruccion para que Claude persista el estado despues de cada intento de gate.
- Gate de deploy siempre interactiva: refuerzo explicito de que el deploy nunca se auto-aprueba.
- stop-hook refactorizado: extraidas funciones
should_block,build_block_messageyhandle_session_reportpara testabilidad. - Mensaje de bloqueo adaptado a autopilot: en modo autopilot, el stop-hook no pide confirmacion del usuario sino que indica investigar el error.
- Evidencia sin ventana temporal para informes:
get_evidence(max_age_seconds=None)devuelve todos los registros sin filtrar por antiguedad. - Version dinamica en informes: el template lee la version de
plugin.jsonen lugar de tenerla hardcoded. - Limpieza de evidencia entre sesiones: al completar una sesion, se limpia el fichero de evidencia para evitar contaminacion cruzada.
0.4.1 - 2026-03-13
- Configuracion inicial automatica (onboarding): cuando Alfred se usa por primera vez en un proyecto (no hay configuracion de autonomia en
alfred-dev.local.md), pregunta automaticamente si el usuario quiere modo interactivo o autopilot. La respuesta se guarda en el fichero de configuracion local y el flujo continua sin necesidad de reiniciar ni ejecutar comandos adicionales. Implementado en_composicion.md(Paso 0) para que aplique a todos los flujos (feature, fix, ship, spike, audit).
- Modo autopilot desconectado de los comandos: las instrucciones de los comandos (
feature.md,fix.md,ship.md) no mencionaban el modo autopilot, por lo que Claude nunca lo activaba aunque el backend (orchestrator.py) lo soportase. Añadida seccion "Modo autopilot" a los tres comandos y "Paso 2b" a_composicion.mdpara que Claude compruebe el estado de autopilot y salte las gates de usuario cuando proceda.
0.4.0 - 2026-03-13
- Verificacion de evidencia (evidence guard): nuevo hook PostToolUse que registra cada ejecucion de tests como evidencia verificable. Cuando un agente afirma que los tests pasan, el sistema puede comprobar que efectivamente se ejecutaron en los ultimos 10 minutos. Fichero de evidencia en
.claude/alfred-evidence.jsoncon rotacion a 50 registros. - Informe de sesion al cierre: al finalizar una sesion de trabajo completada, se genera automaticamente un informe en
docs/alfred-reports/con resumen de fases completadas, evidencia de tests, equipo de sesion y artefactos generados. Integrado en el stop-hook existente. - Loop iterativo dentro de fases: los agentes pueden iterar dentro de una fase (hasta 5 intentos por defecto) hasta superar la gate correspondiente. Esto habilita ciclos TDD naturales, pasadas de QA repetidas y correccion iterativa sin intervencion manual. Al agotar las iteraciones, se escala al usuario.
- Modo autopilot:
run_flow_autopilot()ejecuta un flujo completo sin interrupcion humana. Las gates de tipo «usuario» se aprueban automaticamente; las gates automaticas y de seguridad se evaluan normalmente. Solo se detiene si una gate automatica o de seguridad falla. - Tests nuevos: cobertura de evidence guard (deteccion de runners, resultados, almacenamiento), informe de sesion (secciones, duracion, generacion), loop iterativo (retry, escalado, reset) y autopilot (gates automaticas, seguridad, usuario).
- Personalidades reescritas: las 17 personalidades de agentes adoptan el tono Alfred Pennyworth: servicio impecable, ironia sutil, precision tecnica. Eliminadas expresiones coloquiales («bro», «señor», «que pasa»). Añadidos los agentes project-manager (SonIA) e i18n-specialist (La Interprete).
- Orquestador ampliado:
advance_phase()reinicia automaticamente el contador de iteraciones internas al avanzar. Nuevas funciones publicas:should_retry_phase(),reset_phase_iterations(),is_autopilot_gate_passable(),run_flow_autopilot(). - Stop-hook con informe: al cerrar una sesion completada, el stop-hook genera un informe de sesion automaticamente antes de permitir la salida.
0.3.9 - 2026-03-13
- Agente opcional i18n-specialist: nuevo agente para proyectos multiidioma con deteccion automatica de señales i18n (directorios
i18n/,locales/,translations/, ficheros de configuracion i18n). Se integra en las fases de desarrollo y calidad en paralelo con los agentes de nucleo. - Deteccion automatica de i18n: nueva funcion
_has_i18n_signals()enconfig_loader.pyque analiza el proyecto y sugierei18n-specialistcuando detecta estructura de internacionalizacion.
- Seleccion de agentes opcionales rediseñada: los 8 agentes opcionales se presentan en 2 preguntas
multiSelectagrupadas por tema (técnicos + contenido/UX) usandoAskUserQuestion, compatible con el limite de 4 opciones por pregunta. Actualizado en_composicion.md,config.mdy documentacion. - Product Owner con preguntas secuenciales: la fase de producto formula las preguntas una a una (una por turno, esperar respuesta) en vez de lanzar el bloque completo, siguiendo el patron de refinamiento progresivo.
- 8 agentes opcionales: añadido
i18n-specialistal catalogo,DEFAULT_CONFIG,_KNOWN_OPTIONAL_AGENTS,OPTIONAL_INTEGRATIONS, tablas defeature.md,help.md,config.mdydocs/configuration.md. Tests actualizados.
0.3.8 - 2026-03-13
- Capa de sincronizacion SQLite a memoria nativa: nuevo modulo
core/memory_sync.pyque proyecta las decisiones, iteraciones, commits y resumen del proyecto desdealfred-memory.dba ficheros.mden~/.claude/projects/<hash>/memory/con el formato nativo de Claude Code (frontmatter YAML conname,description,typeysource: alfred-memory). SQLite es la fuente de verdad; los.mdson proyecciones de lectura que Claude carga automaticamente en cada conversacion. - Sincronizacion hibrida (full + incremental):
session-start.shejecutasync_allal arrancar la sesion (regeneracion completa);activity-capture.pydispara sincronizaciones incrementales tras cada escritura en SQLite (decisiones, iteraciones, commits). - Gestion segura de MEMORY.md: seccion delimitada con marcadores
<!-- ALFRED-SYNC:START/END -->que se actualiza sin tocar el contenido manual del usuario. Validacion de posicion de marcadores para evitar corrupcion por marcadores huerfanos o invertidos. - Limpieza de ficheros huerfanos:
cleanup_stale()elimina ficheros de decisiones archivadas o iteraciones cerradas, identificando ficheros autogenerados por el camposource: alfred-memoryen el frontmatter. - Creacion automatica del directorio de memoria:
resolve_memory_dir()crea~/.claude/projects/<hash>/memory/si no existe al cargar Alfred por primera vez, eliminando la friccion de activacion manual. - Fichero de decisiones archivadas: las decisiones con estado
supersededorejectedse consolidan enalfred-decisions-archived.mden formato compacto (una linea por decision) en lugar de ficheros individuales. - 22 tests para memory_sync: cobertura de resolucion de directorios, proyeccion de decisiones, sincronizacion completa, gestion de MEMORY.md, limpieza de huerfanos, commits, casos de borde (DB vacia, marcadores corruptos, campos None) y flujo end-to-end.
- Skill de testing E2E: nuevo skill
calidad/e2e-testingpara configurar y escribir tests end-to-end con Playwright o Cypress, incluyendo integracion en CI.
-
60 skills revisadas y mejoradas (antes 56 + 3 protocolos sueltos): revision completa de las 56 skills existentes mas reorganizacion de los 3 protocolos sueltos (
incident-response,dependency-strategy,release-planning) en sus categorias logicas (calidad/,seguridad/,devops/). -
Descriptions enriquecidas para triggering: todas las skills incluyen sinonimos y escenarios de activacion en el campo
descriptiondel frontmatter, mejorando la precision con la que los agentes seleccionan la skill adecuada. -
Integracion con memoria persistente: 10 skills que producen decisiones o hallazgos ahora registran automaticamente en
memory_log_decisionpara trazabilidad entre sesiones (write-adr, choose-stack, design-system, compliance-check, dependency-audit, threat-model, schema-design, test-plan, competitive-analysis, competitive-analysis). -
Seccion "Que NO hacer" en 51 skills: antipatrones y errores comunes documentados para prevenir malas practicas. Las 9 skills restantes ya cubrian estas restricciones en su estructura interna.
-
Referencia al stack de Alfred en 9 skills: las skills que dependen del runtime o lenguaje del proyecto (dockerize, ci-cd-pipeline, deploy-config, profiling, benchmark, dependency-audit, sonarqube, test-plan, monitoring-setup) consultan
detect_stacken vez de repetir la deteccion. -
Clarificacion de solapamientos: skills que cubren areas adyacentes (dependency-audit vs dependency-strategy vs dependency-update, code-review vs code-review-response, changelog vs release-planning, write-adr vs choose-stack vs design-system) documentan explicitamente su alcance y cuando usar cada una.
-
Versiones normativas documentadas: compliance-check (RGPD 2016/679, NIS2 2022/2555, CRA 2024/2847), security-review (OWASP Top 10 edicion 2021), accessibility-audit (WCAG 2.1 AA, nota sobre WCAG 2.2).
-
Configuracion local ampliada:
alfred-dev.local.mdincluye las opcionessync_to_native: trueysync_commits_limit: 10para controlar la sincronizacion. -
Politica fail-open en sincronizacion: todas las operaciones de sync capturan excepciones y continuan sin bloquear el flujo de trabajo. Los errores se registran en stderr con el prefijo
[alfred-dev].
0.3.7 - 2026-03-12
- SonIA -- Project Manager: nuevo agente de nucleo transversal. Descompone el PRD en tareas, gestiona un kanban en
docs/project/kanban/con 4 ficheros MD (backlog, in-progress, done, blocked), mantiene la matriz de trazabilidad (criterio -- tarea -- test -- doc) y genera informes de progreso por fase. HARD-GATE: completitud de trazabilidad (criterio -- tarea -- test -- doc enlazados). - La Interprete -- i18n Specialist: nuevo agente opcional para internacionalizacion. Auditoria de claves i18n, deteccion de cadenas hardcodeadas, validacion de formatos por locale, generacion de esqueletos para nuevos idiomas. HARD-GATE: completitud de claves (N en base = N en todos los idiomas).
- QA Engineer ampliado: nueva seccion de testing de integracion y E2E con estrategias para Playwright/Cypress, tabla de decision entre tipos de test (unitario, integracion, E2E, regresion) y criterios de seleccion.
- El Escriba (antes El Traductor): tech-writer reescrito como agente de nucleo con doble activacion: fase 3b (documentacion inline: cabeceras, docstrings, comentarios de contexto) y fase 5 (documentacion de proyecto: API, arquitectura con diagramas Mermaid, guias, changelogs). Guia de estilo estricta: castellano sin latinismos, anglicismos permitidos, sin emojis.
- HARD-GATEs en 5 agentes opcionales: data-engineer (integridad de migraciones), ux-reviewer (WCAG 2.1 nivel A), performance-engineer (umbrales de rendimiento), seo-specialist (requisitos minimos de indexacion), github-manager (operaciones destructivas requieren confirmacion).
- Equipo ampliado a 17 agentes: 9 de nucleo (antes 8) + 8 opcionales (antes 7). Todos los conteos actualizados en web, README y manifiesto.
- Colores de agentes unificados: QA Engineer de red a amber (conflicto con security-officer), performance-engineer y copywriter alineados entre frontmatter y cuerpo del agente.
- Variable CSS
--magentaanadida al sistema de diseno para el color de SonIA. - Landing page actualizada: nueva entrada de changelog, FAQs actualizados, conteos corregidos en hero, meta, footer y secciones de agentes.
- Memoria persistente mejorada: optimizaciones en el modulo SQLite, consultas mas eficientes y mejor gestion de la base de datos entre sesiones.
- Todos los agentes revisados: inconsistencias corregidas en frontmatter (colores, herramientas), descripciones alineadas con las capacidades reales, personalidades refinadas y cadenas de integracion actualizadas.
- Dashboard GUI eliminado: la interfaz web del dashboard (introducida en v0.3.0) se retira por no cumplir las expectativas de usabilidad. El servidor HTTP/WebSocket, los ficheros de dashboard, las tablas SQLite de GUI (
gui_actions,pinned_items) y los hooks de arranque/parada automatica dejan de estar activos. La funcionalidad de estado del proyecto se cubre con/alfred-dev:status.
0.3.6 - 2026-03-10
- Agentes de nucleo registrados en plugin.json: los 7 agentes de nucleo (product-owner, architect, senior-dev, security-officer, qa-engineer, devops-engineer, tech-writer) no estaban registrados en el manifiesto del plugin, por lo que Claude Code no podia cargar sus system prompts como subagentes. Ahora los 14 agentes (7 nucleo + 7 opcionales) estan registrados.
- Herramientas MCP fantasma en librarian: el agente librarian referenciaba 5 herramientas MCP con nombres incorrectos (
memory_record_decision,memory_record_iteration,memory_record_event,memory_record_commit,memory_link_commit). Corregidos a los nombres reales del servidor MCP. - Dashboard vacio en primera sesion: el pipeline de datos del dashboard fallaba en cascada por 3 causas: (1) la configuracion local no se creaba con memoria activada, (2) sin iteracion activa los commits no se asociaban, (3)
get_full_state()devolvia arrays vacios sin iteracion. Corregido con auto-creacion de config, iteracion de sesion automatica y fallback a datos globales. - Conflicto de puertos del dashboard: si otro proyecto ya usaba los puertos 7533/7534, el dashboard no arrancaba. Ahora detecta puertos ocupados y busca alternativas automaticamente.
- Comentarios de cabecera del servidor MCP: los nombres de herramientas en el docstring del modulo no coincidian con los registrados. Alineados.
0.3.5 - 2026-03-10
- SonarQube movido al security-officer: el análisis de SonarQube lo ejecuta ahora el security-officer en lugar del qa-engineer durante
/alfred-dev:audit. El security-officer levanta Docker, ejecuta el scanner end-to-end e integra los hallazgos en su informe de seguridad. Si Docker no está disponible, informa al usuario y continúa sin SonarQube. - Instrucciones imperativas para SonarQube: el subagente recibe pasos explícitos y secuenciales (leer el skill con Read, ejecutar los 7 pasos, integrar resultados) en lugar de una referencia textual que podía ignorarse.
0.3.4 - 2026-03-03
- Nomenclatura de comandos en la web: todos los comandos actualizados de
/alfred Xa/alfred-dev:Xpara reflejar la convencion real de Claude Code. - Stats de la web corregidos: skills 56 a 59, comandos 10 a 11, hooks 7 a 11.
- Comando /alfred-dev:gui visible: anadido a la lista publica de comandos en la web (ES + EN).
- SonarQube integrado en audit: el security-officer ejecuta el skill de SonarQube como paso por defecto en
/alfred-dev:audit. - Fichero de puertos del dashboard:
session-start.shcrea.claude/alfred-gui-porty verifica conexion real al servidor. - Colores de agentes opcionales: los 5 agentes sin color en el frontmatter ahora tienen colores asignados.
0.3.3 - 2026-02-24
- Inicializacion de SQLite al arrancar: la BD de memoria (
alfred-memory.db) se crea automaticamente ensession-start.shsi no existe. Antes, la BD solo se creaba cuando los hooks de captura se disparaban, lo que impedia que el servidor GUI arrancara en la primera sesion. - Servidor GUI siempre operativo: el dashboard arranca desde el minuto 1 en cada sesion. Se elimino la dependencia circular que requeria una BD preexistente para levantar el servidor.
- Agentes servidos por WebSocket: el catalogo de 15 agentes (8 principales + 7 opcionales) se envia desde el servidor en el mensaje
init, eliminando la lista hardcodeada endashboard.html. El dashboard no muestra datos que no provengan del WebSocket. - Hooks resilientes a actualizaciones: todos los comandos en
hooks.jsonusan guardastest -f ... || truepara degradacion graceful cuandoCLAUDE_PLUGIN_ROOTapunta a un directorio eliminado tras una actualizacion de version.
0.3.2 - 2026-02-23
- Composición dinámica de equipo: sistema de 4 capas (heurística, razonamiento, presentación, ejecución) que sugiere agentes opcionales según la descripción de la tarea.
match_task_keywords()puntúa 7 agentes con keywords contextuales y combina señales de proyecto, tarea y configuración activa. La selección es efímera (solo para esa sesión) y no modifica la configuración persistente. - Función
run_flow(): punto de entrada para flujos con equipo de sesión efímero. Valida la estructura, inyecta el equipo y registra diagnósticos de error enequipo_sesion_errorpara que los consumidores downstream informen al usuario. - Tabla
TASK_KEYWORDS: mapa de 7 agentes opcionales con listas de keywords y pesos base para la composición dinámica.
- Matching por palabra completa:
match_task_keywords()usa\bword boundary en vez de subcadena, eliminando falsos positivos para keywords cortas ("ui", "ci", "pr", "form", "orm", "bd", "cd", "copy"). - Retroalimentación de validación:
run_flow()registra el motivo del descarte enequipo_sesion_errorcuando el equipo no pasa la validación. - Aviso al truncar: descripciones de tarea mayores de 10 000 caracteres emiten aviso a stderr en vez de truncarse silenciosamente.
- Tipos no-str:
match_task_keywords()avisa cuando recibe tipos inesperados en vez de convertirlos silenciosamente a cadena vacía.
_KNOWN_OPTIONAL_AGENTSderivado deTASK_KEYWORDS(fuente única de verdad) en vez de duplicar la lista de agentes.- Los 6 skills de comandos (alfred, feature, fix, spike, ship, audit) incluyen instrucciones de composición dinámica con checkboxes para el usuario.
- Documentación actualizada:
docs/configuration.mdcon sección completa de composición dinámica,docs/architecture.mdyREADME.mdcon referencias. - 326 tests (29 nuevos para composición dinámica y validación de equipo).
0.3.1 - 2026-02-23
- Lectura robusta de frames WebSocket: el servidor usaba
reader.read()que puede devolver frames parciales por fragmentacion TCP. Reescrito conreadexactly()para leer bytes exactos segun la cabecera del frame RFC 6455. Esto elimina desconexiones aleatorias y corrupcion de mensajes bajo carga. - Conexion SQLite cross-thread: la conexion de polling se creaba en un hilo y se usaba en el bucle asyncio de otro. Anadido
check_same_thread=Falsepara evitarProgrammingErroren Python 3.12+. - Consistencia en
get_full_state(): el metodo mezclaba dos conexiones SQLite (la del moduloMemoryDBy la de polling). Reescrito para usar exclusivamente la conexion de polling, eliminando posibles inconsistencias entre vistas. - Polling de elementos marcados: el watcher solo monitorizaba eventos, decisiones y commits. Anadido
poll_new_pinned()y checkpoint de marcados para que las acciones de pin/unpin se propaguen en tiempo real. - Formato de timestamps:
formatTime()no distinguia entre epoch en segundos y milisegundos, y no gestionaba cadenas ISO sin zona horaria. Corregido con umbral automatico y append deZpara UTC. - Validacion de tipos en acciones GUI: los campos
item_idypin_idse pasaban sin validar. Anadidos casts aint()ystr()para prevenir inyeccion de tipos inesperados. - Buffer de handshake WebSocket: ampliado de 4096 a 8192 bytes para soportar navegadores que envian cabeceras extensas (extensiones, cookies).
- Limpieza de writers WebSocket: al cerrar el servidor, los writers de clientes conectados no se cerraban. Anadida limpieza explicita en
close()para liberar sockets.
- Soporte movil: menu hamburguesa con sidebar deslizante y overlay para pantallas estrechas. La navegacion es completamente funcional en movil.
- Cabeceras de seguridad HTTP:
X-Content-Type-Options: nosniff,Cache-Control: no-storeyContent-Security-Policyrestrictiva para prevenir ataques de inyeccion. - Inyeccion dinamica de version: el servidor lee la version de
package.jsony la inyecta como variable JavaScript en el dashboard. La cabecera y el pie muestran la version real sin hardcodear. - Inyeccion dinamica de puerto WebSocket: el servidor inyecta el puerto WS real en el HTML, eliminando el puerto 7534 hardcodeado que fallaba cuando el puerto por defecto estaba ocupado.
- Icono SVG de marcado: sustituido el texto
[*]por un icono SVG de pin en timeline y decisiones para una interfaz mas limpia.
- Version bumpeada de 0.3.0 a 0.3.1 en plugin.json, marketplace.json, package.json, install.sh, install.ps1, memory_server.py, dashboard.html y site/index.html.
docs/gui.mdactualizado con las mejoras de estabilidad y las nuevas funcionalidades.- README.md actualizado con referencia a las mejoras de v0.3.1.
- Landing page actualizada con entrada de changelog v0.3.1 y auditoria SEO completa (canonical, og:image, FAQPage schema, hreflang, CLS).
0.3.0 - 2026-02-22
- Dashboard GUI (Fase Alpha): dashboard web en tiempo real que muestra el estado completo del proyecto sin intervenir en el terminal. 7 vistas: estado, timeline, decisiones, agentes, memoria, commits y marcados. Se lanza con
/alfred guiy se abre automáticamente en el navegador. - Servidor monolítico Python: HTTP estático (puerto 7533) + WebSocket RFC 6455 manual (puerto 7534) + SQLite watcher (polling 500 ms). Sin dependencias externas.
- Protocolo WebSocket bidireccional: mensajes
init(estado completo al conectar),update(cambios incrementales),action(acciones del usuario) yaction_ack(confirmación). Reconexión automática con backoff exponencial (1s a 30s). - Sistema de marcado (pinning): elementos marcados manual o automáticamente sobreviven a la compactación del contexto. Se inyectan como
additionalContextvíamemory-compact.py. - Tablas SQLite nuevas:
gui_actions(cola de acciones del dashboard) ypinned_items(elementos marcados). Migración automática a esquema v3. - Comando
/alfred gui: abre el dashboard en el navegador por defecto. Si el servidor no está corriendo, lo arranca automáticamente. - Arranque automático:
session-start.shlevanta el servidor GUI en background al inicio de cada sesión si existe la base de datos de memoria.stop-hook.pylo para al cerrar. - Principio fail-open: si la GUI falla, Alfred funciona exactamente igual que sin ella. Los hooks siguen escribiendo en SQLite.
- Landing page: sección Dashboard con galería de 7 capturas, etiqueta Fase Alpha, situada entre Agentes y Quality gates.
- Documentación completa:
docs/gui.mdcon arquitectura, protocolo WebSocket, esquema de tablas, guía de desarrollo y solución de problemas. - 29 tests nuevos para el módulo GUI. Total: 297 tests.
- Versión bumpeada de 0.2.3 a 0.3.0 en plugin.json, marketplace.json, package.json, install.sh, install.ps1 y memory_server.py.
- README.md ampliado con capturas del dashboard y enlace a documentación técnica.
docs/README.mdactualizado con entrada para gui.md en la navegación.
0.2.3 - 2026-02-21
- Memoria persistente v2: migración de esquema con backup automático, etiquetas y estado en decisiones, relaciones entre decisiones (
supersedes,depends_on,contradicts,relates), campofilesen commits. - 5 herramientas MCP nuevas (total 15):
memory_update_decision,memory_link_decisions,memory_health,memory_export,memory_import. - Filtros de búsqueda: parámetros
since,until,tagsystatusenmemory_searchymemory_get_decisions. - Validación de integridad:
memory_healthcomprueba versión de esquema, FTS5, permisos y tamaño de la DB. - Export/Import: exportar decisiones a Markdown (formato ADR), importar desde historial Git e importar desde ficheros ADR existentes.
- Hook commit-capture.py (PostToolUse Bash): auto-captura de commits en la memoria persistente. Detecta
git commitcon regex y registra SHA, mensaje, autor y ficheros. - Hook memory-compact.py (PreCompact): protege las decisiones críticas de la sesión durante la compactación de contexto.
- Inyección de contexto mejorada: si hay iteración activa, session-start.sh inyecta las decisiones de esa iteración (no las 5 últimas globales). Muestra etiquetas de las decisiones.
- ~49 tests nuevos. Total estimado: ~268 tests.
- El Bibliotecario amplía sus capacidades: gestión del ciclo de vida de decisiones, validación de integridad, exportación e importación. 15 herramientas MCP documentadas.
memory_log_decisionacepta parámetrotags.memory_log_commitacepta parámetrofiles.
0.2.2 - 2026-02-21
- Hook dangerous-command-guard.py (PreToolUse Bash): bloquea comandos destructivos antes de que se ejecuten. Cubre
rm -rf /, force push a main/master,DROP DATABASE/TABLE,docker system prune -af, fork bombs,mkfs/ddsobre dispositivos ygit reset --hard origin/main. Política fail-open. - Hook sensitive-read-guard.py (PreToolUse Read): aviso informativo al leer ficheros sensibles (claves privadas,
.env, credenciales AWS/SSH/GPG, keystores Java). No bloquea, solo alerta. - 4 herramientas MCP nuevas:
memory_get_stats,memory_get_iteration,memory_get_latest_iteration,memory_abandon_iteration. Total: 10 herramientas. - 3 skills nuevos: incident-response, release-planning, dependency-strategy.
- Capacidades ampliadas en arquitecto, security officer y senior dev.
/alfred featurepermite seleccionar la fase de inicio del flujo.- Test de consistencia de versión que verifica que los 5 ficheros con versión declaran el mismo valor.
- 5 ficheros de tests nuevos (219 tests en total).
- quality-gate.py: corregido ancla de posición para runners de una palabra.
cat pytest.iniya no activa el hook. Aplicadore.IGNORECASEa la detección de fallos para cubrir variantes de case mixto. - Respuestas MCP: las respuestas de error ahora se marcan con
isError: trueen el protocolo MCP en vez de devolverse como respuestas exitosas. - Encapsulación en MemoryDB:
get_latest_iteration()expuesto como método público. El servidor MCP ya no accede al atributo privado_conn. - Logging en bloques
exceptsilenciosos enconfig_loader.py,session-start.shyorchestrator.py. - Instrucciones de recuperación en el mensaje de error de estado de sesión corrupto.
User-Agent: alfred-dev-pluginen las peticiones a la API de GitHub desde session-start.sh.
0.2.1 - 2026-02-21
- Ruta de caché en scripts de Windows (install.ps1, uninstall.ps1): alineada con la convención de Claude Code (
cache/<marketplace>/<plugin>/<version>). Los usuarios de Windows tenían instalaciones rotas. - memory-capture.py: los 4 bloques
exceptque tragaban errores silenciosamente ahora emiten diagnóstico por stderr. - session-start.sh: el
except Exceptiongenérico del bloque de memoria reemplazado por catches específicos (ImportError,OperationalError,DatabaseError) con mensajes descriptivos.
- Landing page disponible en dominio personalizado alfred-dev.com.
0.2.0 - 2026-02-20
- Memoria persistente por proyecto: base de datos SQLite local (
.claude/alfred-memory.db) que registra decisiones, commits, iteraciones y eventos entre sesiones. Activación opcional con/alfred config. - Servidor MCP integrado: servidor MCP stdio sin dependencias externas con 6 herramientas:
memory_search,memory_log_decision,memory_log_commit,memory_get_iteration,memory_get_timeline,memory_stats. - Agente El Bibliotecario: agente opcional para consultas históricas sobre el proyecto. Cita fuentes con formato
[D#id],[C#sha],[I#id]. - Hook memory-capture.py: captura automática de eventos del flujo de trabajo (inicio/fin de iteraciones, cambios de fase) en la memoria persistente.
- Inyección de contexto de memoria al inicio de sesión (últimas 5 decisiones, iteración activa).
- Sección de configuración de memoria en
/alfred config. - Sanitización de secretos en la memoria con los mismos patrones que
secret-guard.sh. - Permisos 0600 en el fichero de base de datos.
- Búsqueda de texto completo con FTS5 (cuando disponible) o fallback a LIKE.
- 58 tests nuevos para el módulo de memoria. Total: 114 tests.
- Agentes opcionales pasan de 6 a 7 (nuevo: librarian / El Bibliotecario).
0.1.5 - 2026-02-20
- Secret-guard con política fail-closed: cuando el hook detecta contenido a escribir pero no puede determinar la ruta del fichero destino, ahora bloquea la operación (exit 2) en lugar de permitirla.
- Instalador idempotente en entorno limpio:
mkdir -ppara crear~/.claude/plugins/si no existe. En instalaciones donde Claude Code no había creado ese directorio, el script abortaba. - Detección de versión en
/alfred update: el comando anterior concatenaba todos losplugin.jsonde la caché con un glob, rompiendojson.load. Ahora selecciona explícitamente el fichero más reciente por fecha de modificación.
- README actualizado con cifras reales: 56 skills en 13 dominios y 6 hooks.
0.1.4 - 2026-02-19
- Sistema de agentes opcionales: 6 nuevos agentes activables con
/alfred config: data-engineer, ux-reviewer, performance-engineer, github-manager, seo-specialist, copywriter. - Descubrimiento contextual: Alfred analiza el proyecto y sugiere qué agentes opcionales activar.
- 27 skills nuevos en 6 dominios: datos (3), UX (3), rendimiento (3), GitHub (4), SEO (3), marketing (3). Ampliaciones en seguridad (+1), calidad (+2), documentación (+5). Total: 56 skills en 13 dominios.
- Soporte Windows:
install.ps1yuninstall.ps1nativos en PowerShell conirm | iex. - Hook spelling-guard.py: detección de tildes omitidas en castellano al escribir o editar ficheros. Diccionario de 60+ palabras.
- Quality gates ampliados: de 8 a 18 (10 de núcleo + 8 opcionales).
- Autoinstalación de herramientas: los agentes que dependen de herramientas externas (Docker, gh CLI, Lighthouse) preguntan al usuario antes de instalar.
- Detección de plataforma en
/alfred update(bash en macOS/Linux, PowerShell en Windows).
- Landing page actualizada con secciones de agentes opcionales, nuevos dominios de skills, tabs de instalación multiplataforma.
- Tests: 56 (antes 23).
0.1.2 - 2026-02-18
- Prefijo correcto en comandos:
/alfred-dev:feature,/alfred-dev:update, etc. - Comando update robusto: detecta la versión instalada dinámicamente.
- Registro explícito de comandos: los 10 comandos declarados en
plugin.jsonpara garantizar su descubrimiento.
- Nueva personalidad de Alfred: compañero cercano y con humor, en lugar de mayordomo solemne. Los 8 agentes tienen voz propia.
- Corrección ortográfica completa en los 68 ficheros del plugin (tildes, eñes, diacríticos según RAE).
0.1.1 - 2026-02-18
- [Alta] session-start.sh: corregido error de sintaxis en línea 125 (paréntesis huérfano + redirección
2>&2) que impedía la ejecución del hook SessionStart. - [Media] secret-guard.sh: arreglada política fail-closed. Con
set -e, un fallo de parseo salía con código 1 en vez de 2. Ahora bloquea correctamente ante errores de análisis. - [Media] stop-hook.py + orchestrator.py: validación de tipos para claves del estado de sesión. Un JSON corrupto con tipos incorrectos ya no provoca TypeError.
- install.sh + uninstall.sh: eliminada interpolación directa de variables bash dentro de
python3 -c. Ahora usasys.argvcon heredocs (<<'PYEOF'), inmune a rutas con caracteres especiales. - Eliminada constante
HARD_GATESno usada en orchestrator.py (código muerto).
0.1.0 - 2026-02-18
- Primera release pública.
- 8 agentes especializados con personalidad propia (producto, arquitectura, desarrollo, seguridad, QA, DevOps, documentación, orquestación).
- 5 flujos de trabajo: feature (6 fases), fix (3 fases), spike (2 fases), ship (4 fases), audit (paralelo).
- 29 skills organizados en 7 dominios.
- Quality gates infranqueables en cada fase.
- Compliance RGPD/NIS2/CRA integrado.
- 5 hooks de protección automática (secretos, calidad, dependencias, parada, arranque).
- Detección automática de stack tecnológico (Node.js, Python, Rust, Go, Ruby, Elixir, Java, PHP, C#, Swift).
- Sistema de actualizaciones basado en releases de GitHub.
- Asistente contextual al invocar
/alfredsin subcomando.