modified setup.sh to use skills-lokc.json

This commit is contained in:
Jun-te Kim 2026-05-05 17:01:39 +00:00
parent 85df04a2d3
commit a093614b68
2 changed files with 146 additions and 33 deletions

View file

@ -8,26 +8,21 @@
# bash /path/to/agentic-toolkit/setup.sh
#
# What this does:
# 1. Adds Matt Pocock's skills (mattpocock/skills) at the version Domna trusts.
# 2. Adds Domna's own skills (Hestia-Homes/agentic-toolkit).
# 3. Writes/updates skills-lock.json so the install is reproducible.
# 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 Matt's skills across all Domna repos:
# - Bump MATTPOCOCK_REF in this script (agentic-toolkit repo).
# 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
# --- pinned versions -----------------------------------------------------------
# Bump these refs in agentic-toolkit when Domna decides to upgrade. Devs in
# target repos pick up the new pins on their next setup.sh run.
MATTPOCOCK_SOURCE="mattpocock/skills"
MATTPOCOCK_REF="" # leave empty to track HEAD; set to a commit SHA to pin
DOMNA_SOURCE="Hestia-Homes/agentic-toolkit"
DOMNA_REF="" # leave empty to track HEAD; set to a commit SHA to pin
AGENT_TARGET="claude-code" # Claude Code agent install layout
# --- 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
@ -39,25 +34,25 @@ if [[ ! -d .git ]]; then
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 -------------------------------------------------------------------
mattpocock_pkg="$MATTPOCOCK_SOURCE${MATTPOCOCK_REF:+#$MATTPOCOCK_REF}"
domna_pkg="$DOMNA_SOURCE${DOMNA_REF:+#$DOMNA_REF}"
echo "==> Installing Matt Pocock skills from $mattpocock_pkg"
npx --yes skills@latest add "$mattpocock_pkg" \
--skill '*' \
--agent "$AGENT_TARGET" \
--copy \
--global \
--yes
echo "==> Installing Domna skills from $domna_pkg"
npx --yes skills@latest add "$domna_pkg" \
--skill '*' \
--agent "$AGENT_TARGET" \
--copy \
--global \
--yes
echo "==> Restoring skills from skills-lock.json"
npx --yes skills@latest experimental_install
# --- post-install reminder -----------------------------------------------------
cat <<'EOF'
@ -66,4 +61,7 @@ cat <<'EOF'
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

115
skills-lock.json Normal file
View file

@ -0,0 +1,115 @@
{
"version": 3,
"skills": {
"diagnose": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/diagnose/SKILL.md",
"skillFolderHash": "43d464d0e9d1049b9d525975c0f7367ab7e01a5f",
"pluginName": "mattpocock-skills"
},
"grill-with-docs": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/grill-with-docs/SKILL.md",
"skillFolderHash": "2969a1224c70fe41b9dd2ddbe32c2ec62f2815bd",
"pluginName": "mattpocock-skills"
},
"improve-codebase-architecture": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/improve-codebase-architecture/SKILL.md",
"skillFolderHash": "3ad8fa787b3b9b622d1f5a3d0afc27812ac782fa",
"pluginName": "mattpocock-skills"
},
"setup-matt-pocock-skills": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/setup-matt-pocock-skills/SKILL.md",
"skillFolderHash": "a500c5b9a481e6fac8c9bb87cd4c4e16c3f46e1a",
"pluginName": "mattpocock-skills"
},
"tdd": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/tdd/SKILL.md",
"skillFolderHash": "75beb3030b4c979205dd771ff85ac600baeb68f4",
"pluginName": "mattpocock-skills"
},
"to-issues": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/to-issues/SKILL.md",
"skillFolderHash": "2bf2903405724ce27038fc91f1c4304c4a63ae16",
"pluginName": "mattpocock-skills"
},
"to-prd": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/to-prd/SKILL.md",
"skillFolderHash": "63e890f04a30b69c9931615f36700fc45eb8d1ad",
"pluginName": "mattpocock-skills"
},
"triage": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/triage/SKILL.md",
"skillFolderHash": "de4f182c30876a2460ca307e2f601b9b892527e5",
"pluginName": "mattpocock-skills"
},
"zoom-out": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/engineering/zoom-out/SKILL.md",
"skillFolderHash": "6ecebabdea814d12888f56a611da7bf182b5fb26",
"pluginName": "mattpocock-skills"
},
"caveman": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/productivity/caveman/SKILL.md",
"skillFolderHash": "17972a1bdbf5909b9dbdc435ad348f0bf45f8664",
"pluginName": "mattpocock-skills"
},
"grill-me": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/productivity/grill-me/SKILL.md",
"skillFolderHash": "2a1ad17028306ebe45f0e49703fa28b9b2e7f499",
"pluginName": "mattpocock-skills"
},
"write-a-skill": {
"source": "mattpocock/skills",
"sourceType": "github",
"sourceUrl": "https://github.com/mattpocock/skills.git",
"skillPath": "skills/productivity/write-a-skill/SKILL.md",
"skillFolderHash": "2f252b35aa238879afc5a230ac30343708dee0b3"
},
"ralph-loop": {
"source": "Hestia-Homes/agentic-toolkit",
"sourceType": "github",
"sourceUrl": "https://github.com/Hestia-Homes/agentic-toolkit.git",
"skillPath": "skills/engineering/ralph-loop/SKILL.md",
"skillFolderHash": "d1414d3ccd3cc27f7cc1117b7723efc22b2d1ec7"
},
"to-project": {
"source": "Hestia-Homes/agentic-toolkit",
"sourceType": "github",
"sourceUrl": "https://github.com/Hestia-Homes/agentic-toolkit.git",
"skillPath": "skills/engineering/to-project/SKILL.md",
"skillFolderHash": "c28e88e90052bee0dfddc8c525462fe339ff2244"
}
},
"dismissed": {}
}