Setups globales de tooling

Perfiles de desarrollo

Conjuntos con nombre de kits y artifacts globales. Cambiar de perfil desmonta los installs opcionales del anterior y aplica los del siguiente — sin tocar enforced ni archivos ajenos a HubBound.

Qué son

Un perfil es un conjunto con nombre de pins (artifacts y kits) que HubBound materializa en los homes globales de tus tools — Claude Code, Cursor, Codex, Copilot, Antigravity, etc.

Los perfiles son solo globales. No reemplazan el archivo HubBound del proyecto (hubbound.json), y no aplican con --scope local.

Para qué sirven

Usalos cuando necesitás setups globales distintos — por ejemplo work vs personal — y un swap seguro entre ellos.

El switch quita solo installs opcionales del perfil anterior y después aplica los pins del destino.

  • Nunca desinstala installs enforced / RuleMandatory.
  • Nunca borra archivos sin marcadores de ownership de HubBound.
  • Los pins con versión latest se chequean por updates durante el switch.

Dónde se guardan

Viven bajo el directorio de config de usuario de HubBound (os.UserConfigDir()/hubbound-lab). En macOS suele ser ~/Library/Application Support/hubbound-lab; en Linux ~/.config/hubbound-lab.

hubbound-lab/

profiles/

active # ej. work

work/hubbound.json

personal/hubbound.json

state/

artifact_installs.json

kit_installs.json

profiles/<name>/hubbound.json Pins de ese perfil (misma forma que el manifesto de proyecto).
profiles/active Nombre en texto plano del perfil activo.
state/artifact_installs.json Ledger de installs; las filas del perfil llevan profile_id.
state/kit_installs.json Ledger de kits; mismo campo opcional profile_id.

Qué modifican

Aplicar un perfil instala o actualiza los kits/artifacts pineados en los directorios globales de las tools y estampa profile_id en el ledger.

Al salir de un perfil se desinstalan los opcionales cuyo profile_id coincide con el activo anterior y que el destino no requiere.

  • Archivos de providers que HubBound posee (skills, hooks, rules, etc.) de installs opcionales del perfil.
  • profiles/active y los pins del hubbound.json del perfil.
  • Entradas del ledger — la pertenencia vive en profile_id, no en el formato de marcadores del provider.

Comandos que los usan

Los perfiles se manejan con los subcomandos profile y con install --profile.

$ hubbound profile create work

$ hubbound install artifact author/my-hook --profile work

$ hubbound profile switch personal

$ hubbound profile list

hubbound profile create Crea profiles/<name>/hubbound.json. El primero queda activo; puede absorber installs globales sin perfil.
hubbound profile switch Teardown de opcionales del perfil anterior → check de pins latest → aplica destino → escribe profiles/active.
hubbound profile list Escanea profiles/*/hubbound.json; muestra conteos y cuál está activo.
hubbound install … --profile Siempre pinnea en ese perfil. Activo → instala ya. Inactivo → ofrece switch en TUI (o imprime hint con --no-tui).