Files
repo_Claude/.claude/skills/pass-usage/SKILL.md
T
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

4.9 KiB


name: pass-usage description: Gestiona contraseñas con pass (password-store) y GPG. Inserta, lista, busca, genera y sincroniza secretos con Gitea. argument-hint: [accion] [nombre-secreto] disable-model-invocation: true user-invocable: true allowed-tools: Bash, Read, Write

pass-usage

Gestiona contraseñas usando pass (password-store) con cifrado GPG, sincronizando con Gitea via pass git push.

Sintaxis

/pass-usage                          # Listar todos los secretos
/pass-usage add servicio/usuario     # Agregar nuevo secreto
/pass-usage show servicio/usuario    # Ver un secreto
/pass-usage gen servicio/usuario 24  # Generar contraseña aleatoria (24 chars)
/pass-usage find texto               # Buscar secretos por nombre
/pass-usage sync                     # Sincronizar con Gitea (push + pull)
/pass-usage edit servicio/usuario    # Editar secreto existente
/pass-usage rm servicio/usuario      # Eliminar secreto
/pass-usage help                     # Mostrar esta ayuda

Precondiciones

Verificar antes de cualquier operación:

# 1. Verificar pass instalado
if ! command -v pass &>/dev/null; then
  echo "pass no está instalado."
  echo "Ejecuta: sudo apt install pass   # Debian/Ubuntu"
  echo "     o:  sudo pacman -S pass      # Arch"
  echo "     o:  sudo dnf install pass    # Fedora"
  exit 1
fi

# 2. Verificar GPG disponible
if ! command -v gpg &>/dev/null; then
  echo "gpg no está instalado."
  echo "Ejecuta: sudo apt install gnupg"
  exit 1
fi

# 3. Verificar store inicializado
if [ ! -d ~/.password-store ]; then
  echo "Password store no inicializado."
  echo "Primero necesitas una clave GPG. Listar existentes:"
  echo "  gpg --list-keys"
  echo ""
  echo "Si no tienes clave GPG, crear una:"
  echo "  gpg --full-generate-key"
  echo ""
  echo "Luego inicializar pass con el ID de tu clave:"
  echo "  pass init <GPG-ID>"
  echo ""
  echo "Para habilitar sincronización con Gitea:"
  echo "  pass git init"
  echo "  pass git remote add origin <URL-REPO-GITEA>"
  exit 1
fi

Flujo

Parsear $ARGUMENTS para determinar la acción. Si no hay argumentos, listar secretos.

Determinar acción

$0 (acción) Operación
(vacío) Listar todos
add Insertar nuevo secreto
show Mostrar secreto
gen Generar contraseña aleatoria
find Buscar por nombre
sync Push + Pull con Gitea
edit Editar existente
rm Eliminar secreto
help Mostrar ayuda

Acción: Listar (sin argumentos)

pass

Mostrar el árbol de secretos al usuario.

Acción: add

Nombre del secreto: $1 (requerido).

Preguntar al usuario qué valor quiere guardar. Luego:

# Insertar contraseña (interactivo - el usuario debe ejecutarlo)
echo "Ejecuta en tu terminal:"
echo "  pass insert $1"

IMPORTANTE: pass insert es interactivo (pide input por stdin). Indicar al usuario que lo ejecute con ! o darle la opción de insertar de forma no-interactiva:

# Opción no-interactiva (si el usuario proporciona el valor)
echo "VALOR_SECRETO" | pass insert -e $1

Después de insertar, ofrecer sincronizar:

pass git push

Acción: show

pass show $1

Mostrar el contenido descifrado al usuario.

Acción: gen

Nombre: $1, longitud: $2 (default 20).

pass generate $1 ${2:-20}

Esto genera y guarda una contraseña aleatoria. Ofrecer sincronizar después.

Acción: edit

# Interactivo - el usuario debe ejecutarlo
echo "Ejecuta: ! pass edit $1"

Acción: find

pass find $1

Acción: rm

Confirmar con el usuario antes de eliminar.

pass rm $1
pass git push

Acción: sync

pass git pull --rebase && pass git push

Si falla el pull, mostrar el error y sugerir resolución.

Acción: help

Mostrar la tabla de sintaxis de este skill.

Post-operación

Después de cualquier operación que modifique el store (add, gen, edit, rm):

  1. Mostrar resultado de la operación
  2. Preguntar si quiere sincronizar con Gitea (pass git push)
  3. Si el repo de secretos en Gitea (dataforge/pass-secrets) necesita actualización del README, usar el agente @gitea para actualizarlo

Integración con Gitea

El repo de secretos vive en dataforge/pass-secrets. Para operaciones que requieran actualizar documentación o estructura en remoto, delegar al agente @gitea.

Reglas

  • NUNCA mostrar contraseñas en texto plano en el output sin que el usuario lo pida explícitamente (acción show)
  • Para pass insert y pass edit, indicar al usuario que ejecute el comando con ! ya que son interactivos
  • Siempre verificar precondiciones antes de operar
  • Si pass o gpg no están instalados, dar los comandos de instalación para la distro detectada (no ejecutar sudo directamente)
  • Ofrecer pass git push después de cada modificación
  • El GPG-ID actual es 91324463