main
Kyle Bergstedt Publish 3.0.0 259e308 13d ago
#!/usr/bin/env bash
# Install the pup USER skillpack: the main `pup` skill + its focused user sub-skills.
# Per the Bridge SDK a pkg ships ONLY user skills; all skills listed here are user-facing.
# The DEV + PUBLISH maintainer skills are source-only (repo dev-skills/ + publish-skills/,
# NOT in package.json files[], never installed here). The bridge RUNTIME isn't here either
# — it ships in Adom Bridge + as the Releases zip. The AD CLI + core skills arrive via
# this pkg's dependencies:{ "adom/adom-bridge": "^1.9.x" } at `pkg install` time.
set -e
PKG_DIR="$(cd "$(dirname "$0")" && pwd)"

deploy_into() {
  local BASE="$1"
  install_skill() { mkdir -p "$BASE/$1"; cp "$PKG_DIR/$2" "$BASE/$1/SKILL.md"; }
  # main user skill. SKILL.md lives at the repo ROOT (required by the registry), but it
  # installs as `pup` — the skill directory name is the slug the loader surfaces, and it
  # MUST equal the SKILL.md `name:` field. Every other skill on a machine follows that
  # (adom-bridge-fusion, adom-bridge-kicad, ... and all four pup sub-skills); this one
  # installed as the REPO name while declaring `name: pup`, so a `pkg install` surfaced the
  # start-here skill under a slug that contradicted its own frontmatter, its trigger words,
  # and every cross-reference in the sub-skills. Repo name != skill name; don't re-conflate.
  rm -rf "$BASE/adom-bridge-puppeteer-bridge"   # drop the pre-1.9.86 mis-slugged copy
  # v2.0.276: ALSO purge "pup-bridge" — a second mis-slugged copy of the start-here skill that a
  # pkg-layer install deposited under the PAGE slug. It was user-invocable, so it sat in the user's
  # slash menu as a duplicate of /pup, and because THIS installer never touched it, it served
  # week-old text (found 2026-08-22: it still described windows as opening MAXIMIZED six days after
  # that was fixed). Repo name != skill name; the skill installs as `pup`, and nothing else.
  rm -rf "$BASE/pup-bridge"
  install_skill pup SKILL.md
  # focused user sub-skills
  install_skill pup-windows-sessions-tabs  skills/pup-windows-sessions-tabs/SKILL.md
  install_skill pup-screenshots-recording  skills/pup-screenshots-recording/SKILL.md
  install_skill pup-browsers-and-chrome    skills/pup-browsers-and-chrome/SKILL.md
  install_skill pup-adom-wiki              skills/pup-adom-wiki/SKILL.md
  install_skill pup-vendor-login           skills/pup-vendor-login/SKILL.md
  install_skill pup-settings               skills/pup-settings/SKILL.md
  install_skill pup-lanes skills/pup-lanes/SKILL.md   # 2.0.594: the lane comparison; missing from this list left every container on the pre-parity text (pup-bridge#116)
  install_skill pup-credentials            skills/pup-credentials/SKILL.md
  # Windows-line-only skills a Windows pkg may have left behind; they describe features this Mac app lacks.
  rm -rf "$BASE/pup-taskbar-states" "$BASE/pup-progress" "$BASE/pup-taskbar-progress" "$BASE/pup-import-logins"
  install_skill pup-why-cft                skills/pup-why-cft/SKILL.md
  echo "  -> $BASE (pup + 9 sub-skills)"
}

echo "Installing pup for macOS skills:"
deploy_into "$HOME/.claude/skills"                          # Claude Code
[ -d "$HOME/.codex" ] && deploy_into "$HOME/.codex/skills"  # Codex (if present)

# adom/pup-bridge#66 — the Dock Bar card. dockbar.json's first step is skipped when `pup-dashboard`
# is already on PATH, so this install is what makes the card launchable at all. ~/.local/bin is where
# every wiki CLI lands; the manifest's steps prepend it because it is NOT on the exec shell's PATH.
if [ -f "$PKG_DIR/tools/pup-dashboard" ]; then
  mkdir -p "$HOME/.local/bin"
  # SYMLINK, not copy: the Adom convention (and the publish lint enforces it) is to link install
  # targets back into ~/project/adom_modules/<slug>/ so edits propagate and a reinstall cannot
  # clobber a local change. Same shape adom/wiki-issue-loop uses for its hook script.
  chmod +x "$PKG_DIR/tools/pup-dashboard" 2>/dev/null || true
  ln -sfn "$PKG_DIR/tools/pup-dashboard" "$HOME/.local/bin/pup-dashboard"
  echo "  -> pup-dashboard installed to ~/.local/bin (the Dock Bar card's status page)"
fi
echo "Done. The pup skills drive pup through the adom-bridge CLI; if pup is not installed on Adom Bridge yet, it self-installs on first use."