agentic-toolkit/setup.sh
2026-05-05 17:01:39 +00:00

67 lines
2.5 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Install Domna's curated skill set into the current repo.
#
# Run from the root of the target repo:
# curl -fsSL https://raw.githubusercontent.com/Hestia-Homes/agentic-toolkit/main/setup.sh | bash
# Or, if you've cloned agentic-toolkit:
# bash /path/to/agentic-toolkit/setup.sh
#
# What this does:
# 1. Drops the pinned skills-lock.json from agentic-toolkit into the target repo.
# 2. Runs `skills experimental_install` to restore the exact pinned versions
# of Matt Pocock's skills + Domna's own skills (Hestia-Homes/agentic-toolkit).
#
# To upgrade skills across all Domna repos:
# - In agentic-toolkit, re-install the skills you want, then commit the
# resulting skills-lock.json (this script reads from that file).
# - Devs re-run setup.sh in their target repos.
#
set -euo pipefail
# --- config --------------------------------------------------------------------
LOCK_URL="https://raw.githubusercontent.com/Hestia-Homes/agentic-toolkit/main/skills-lock.json"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd || true)"
LOCAL_LOCK="${SCRIPT_DIR:+$SCRIPT_DIR/skills-lock.json}"
# --- guards --------------------------------------------------------------------
if ! command -v npx >/dev/null 2>&1; then
echo "error: npx is required (install Node.js >= 20)." >&2
exit 1
fi
if [[ ! -d .git ]]; then
echo "error: run this script from the root of a git repository." >&2
exit 1
fi
# --- stage skills-lock.json ----------------------------------------------------
if [[ -n "$LOCAL_LOCK" && -f "$LOCAL_LOCK" ]]; then
echo "==> Using local skills-lock.json from $LOCAL_LOCK"
cp "$LOCAL_LOCK" ./skills-lock.json
else
echo "==> Fetching skills-lock.json from $LOCK_URL"
if command -v curl >/dev/null 2>&1; then
curl -fsSL "$LOCK_URL" -o ./skills-lock.json
elif command -v wget >/dev/null 2>&1; then
wget -qO ./skills-lock.json "$LOCK_URL"
else
echo "error: need curl or wget to fetch skills-lock.json." >&2
exit 1
fi
fi
# --- install -------------------------------------------------------------------
echo "==> Restoring skills from skills-lock.json"
npx --yes skills@latest experimental_install
# --- post-install reminder -----------------------------------------------------
cat <<'EOF'
==> Done. Next steps:
1. Run /setup-matt-pocock-skills (one-time per repo) to record the issue
tracker, triage labels, and domain-doc layout.
2. Commit skills-lock.json so the rest of the team gets the same pinned
skill versions on their next `skills experimental_install`.
EOF