ajustes
Configura Alfred Dev: autonomía, proyecto, Lucius, memoria y personalidad. Antes /alfred-dev:config
Comprueba y aplica actualizaciones del plugin Alfred Dev
> /plugin marketplace add 686f6c61/alfred-dev > /plugin install alfred-dev@alfred-dev
How it fires
How this command gets triggered: by you, by Claude, or both.
/updateContext preview
What this command does when you run it.
Comprueba y aplica actualizaciones del plugin Alfred Dev
description: "Comprueba y aplica actualizaciones del plugin Alfred Dev" disable-model-invocation: true allowed-tools: Bash, Read
Eres Alfred. El usuario quiere comprobar si hay una version nueva del plugin. Sigue estos pasos al pie de la letra.
Primero usa la CLI nativa de Claude Code, porque es la fuente autoritativa de instalaciones activas, scopes e installPath:
claude plugin list --json
Busca la entrada `alfred-dev@alfred-dev`. Si hay varias, prioriza:
1. una entrada `enabled: true` cuyo `projectPath`, si existe, coincide con el proyecto actual; 2. una entrada `enabled: true` sin `projectPath` (instalación `user`); 3. cualquier entrada `alfred-dev@alfred-dev` como último recurso.
Extrae:
Si `claude plugin list --json` falla o no devuelve la entrada, usa este fallback de cache para la version y marca el scope como `desconocido`:
python3 -c "
import json, os, glob, sys
candidates = sorted(
glob.glob(os.path.expanduser('~/.claude/plugins/cache/alfred-dev/**/.claude-plugin/plugin.json'), recursive=True),
key=os.path.getmtime,
reverse=True
)
if not candidates:
print('desconocida')
sys.exit(0)
with open(candidates[0]) as f:
print(json.load(f).get('version', 'desconocida'))
" 2>/dev/null || echo "desconocida"El fallback selecciona la version mas reciente por fecha de modificacion para evitar errores cuando coexistan varias versiones en cache, pero no lo uses para decidir scope si la CLI sí ha devuelto uno.
Ejecuta con Bash:
curl -s --max-time 10 "https://api.github.com/repos/686f6c61/alfred-dev/releases/latest"
Extrae del JSON: `tag_name` (version), `name` (titulo), `body` (notas de la release), `published_at` (fecha).
Si la peticion falla (sin red, rate limit, timeout), informa del error y sugiere reintentarlo mas tarde. No sigas adelante. En concreto:
Valida que `tag_name` tiene formato semver valido: debe coincidir con el patron `v?X.Y.Z` donde X, Y, Z son numeros (por ejemplo `v0.3.0` o `0.3.0`). Si no coincide, muestra un aviso y aborta: el formato de la release no es el esperado.
Normaliza `tag_name` (sin la `v` inicial) y la version instalada a tuplas numericas `(major, minor, patch)` y comparalas como semver real. **Nunca** compares las versiones como texto plano (`0.10.0` es mayor que `0.9.0`).
Si necesitas una comparacion determinista, ejecuta con Bash:
python3 - <<'PY'
def parse(value):
return tuple(int(part) for part in value.strip().lstrip('v').split('.'))
installed = "VERSION_INSTALADA"
latest = "TAG_NAME"
print(parse(latest) > parse(installed))
PYSustituye `VERSION_INSTALADA` y `TAG_NAME` por los valores reales del paso 1 y 2.
Muestra al usuario:
Despues usa **un único `AskUserQuestion`** con menú seleccionable real. No dejes la decisión en texto libre. Las dos opciones deben ser:
Informa de que no hay actualizaciones disponibles y muestra la version actual. Fin.
Si el usuario acepta, usa siempre la ruta global de usuario salvo que el scope sea `managed`. Alfred Dev no conserva instalaciones `local` ni `project` al actualizar desde este comando: las normaliza a `--scope user` para que `/alfred-dev:*` funcione en cualquier proyecto del usuario. No rematerializa un alias global `/alfred` ni pisa `~/.claude/skills`.
Para instalaciones de usuario, locales, de proyecto o con scope desconocido, usa el instalador soportado de Alfred Dev. Esta ruta vuelve a registrar la fuente GitHub con `--scope user`, reinstala mediante la CLI nativa de Claude Code, limpia/refresca el checkout local del marketplace para evitar caches obsoletas y no pisa `~/.claude/skills`. Vuelve a aplicar el parche de Python compatible en `hooks.json` y `.mcp.json` cuando hace falta.
Si el scope detectado era `local` o `project`, dilo antes de ejecutar: la actualización convertirá esa instalación en una instalación global de usuario. No uses `claude plugin update --scope local` ni `claude plugin update --scope project`.
Primero detecta la plataforma y despues ejecuta el instalador correspondiente.
Ejecuta con Bash:
uname -s 2>/dev/null || echo "Windows"
curl -fsSL https://raw.githubusercontent.com/686f6c61/alfred-dev/main/install.sh | bash
irm https://raw.githubusercontent.com/686f6c61/alfred-dev/main/install.ps1 | iex
Si el scope detectado es `managed`, no intentes actualizarlo. Explica que las instalaciones managed las controla la política del administrador y que el usuario debe pedir la actualización a quien gestione Claude Code en su equipo.
Despues de que termine cualquier actualización, informa al usuario de que debe ejecutar **`/reload-plugins`** en Claude Code para c
Tu equipo de desarrolladores en un plugin. 10 agentes, 11 skills planas, 18 comandos /alfred-dev:*. Memoria persistente, quality gates con evidencia y MCP local.
Configura Alfred Dev: autonomía, proyecto, Lucius, memoria y personalidad. Antes /alfred-dev:config
Asistente contextual de Alfred Dev. Enruta automáticamente al flujo o comando operativo correcto
Refina una idea o feature antes de abrir un flujo completo de implementación
Ciclo completo de desarrollo: producto, arquitectura, desarrollo, QA, docs, entrega