diff --git a/CHANGELOG.md b/CHANGELOG.md index ba1819b..f888fa5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed +- 0.36.0 shipped without the `mastermind-style-deep` skill in the default install — it was missing from the `stage-npm-share.sh` bundle allowlist, so `mastermind install` never copied it to `~/.claude/skills/`. The bundle now auto-discovers every skill under `skills/` instead of a hand-maintained allowlist (`extras/` stays excluded as a separate tree), so the skill ships and future skills can't be forgotten. + ## [0.36.0] - 2026-06-27 ### Added diff --git a/scripts/stage-npm-share.sh b/scripts/stage-npm-share.sh index 4dd57ce..006ccfd 100755 --- a/scripts/stage-npm-share.sh +++ b/scripts/stage-npm-share.sh @@ -19,30 +19,18 @@ mkdir -p "$SHARE/agents" "$SHARE/skills" # Subagents — flat `.md` files. cp "$REPO_ROOT"/agents/subagents/*.md "$SHARE/agents/" -# Core skills — explicit allowlist. Add here only skills that belong in the -# default install (intake → plan → execute → audit loop). -CORE_SKILLS=( - skills/workflow/mastermind-task-planning - skills/workflow/mastermind-task-executor - skills/workflow/mastermind-codegraph-research - skills/workflow/mastermind-structured-report-contract - skills/workflow/mastermind-critical-review - skills/prompt-engineering/mastermind-prompt-refiner - skills/debugging/mastermind-investigation-ledger - skills/security/mastermind-agent-security-review - skills/coding/no-ai-slop-comments -) - -for skill_dir in "${CORE_SKILLS[@]}"; do - src="$REPO_ROOT/$skill_dir" - name="$(basename "$skill_dir")" - if [ ! -d "$src" ]; then - echo "ERROR: core skill not found: $src" >&2 - exit 1 - fi - cp -R "$src" "$SHARE/skills/$name" -done +# Core skills — every skill under `skills/` ships in the default install. Non-core +# artifacts live in `extras/` (a separate tree), which this never scans, so adding +# a skill under `skills/` ships it automatically — no allowlist to forget. +while IFS= read -r skill_md; do + src="$(dirname "$skill_md")" + cp -R "$src" "$SHARE/skills/$(basename "$src")" +done < <(find "$REPO_ROOT/skills" -name SKILL.md | sort) agents_n=$(find "$SHARE/agents" -name '*.md' | wc -l | tr -d ' ') skills_n=$(find "$SHARE/skills" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ') +if [ "$agents_n" -eq 0 ] || [ "$skills_n" -eq 0 ]; then + echo "ERROR: staged $agents_n subagents + $skills_n skills — discovery found nothing" >&2 + exit 1 +fi echo "staged $agents_n subagents + $skills_n skills → npm/mastermind/share/"