Commit e813df98c863

Vincent Demeester <vincent@sbr.pm>
2026-05-27 10:53:22
dots: declarative skill packages via skills CLI
Add skills-install target that installs skill packages if not present, using sentinel skill names to detect existing installs. Packages: - obra/superpowers (brainstorming, debugging, TDD, etc.) - jakubkrehel/make-interfaces-feel-better Also adds skills-update target for updating all installed skills.
1 parent dd529b7
Changed files (1)
dots/Makefile
@@ -94,9 +94,31 @@ emacs-skills : claude-skills
 
 ##@ AI Shared Config
 
-all += agent-skills agent-skill-manager-bin ai-config shared-agent-skills
+all += agent-skills agent-skill-manager-bin ai-config shared-agent-skills skills-install
 agent-skills : ~/.config/agent-skills
 shared-agent-skills : ~/.agents/skills/review-pr-critically
+
+# Declarative skill packages โ€” installed via `skills` CLI if not present.
+# Format: sentinel-skill=package (sentinel is any skill name from the package)
+# Installed to ~/.agents/skills/ and auto-linked to Claude, Pi, etc.
+SKILL_PACKAGES := brainstorming=obra/superpowers make-interfaces-feel-better=jakubkrehel/make-interfaces-feel-better
+
+skills-install:
+	@for entry in $(SKILL_PACKAGES); do \
+		sentinel=$${entry%%=*}; \
+		pkg=$${entry#*=}; \
+		if [ ! -d "$(HOME)/.agents/skills/$$sentinel" ]; then \
+			echo "๐Ÿ“ฆ Installing skills from $$pkg..."; \
+			skills add -g -y "$$pkg" || \
+				echo "  โš ๏ธ  Failed to install $$pkg"; \
+		fi; \
+	done
+	@echo "โœ… Skill packages installed!"
+
+skills-update:
+	@echo "๐Ÿ”„ Updating all installed skills..."
+	@skills update -g -y
+	@echo "โœ… Skills updated!"
 ai-config : ~/.config/ai/skills ~/.config/ai/path-policies.json
 
 # Skills shared with claude via cross-link
@@ -192,5 +214,5 @@ help:
 	@echo "Individual components:"
 	@$(foreach target,$(all),echo "  $(target)";)
 
-.PHONY: all $(all) pi-extensions-install help
+.PHONY: all $(all) pi-extensions-install skills-update help
 .DEFAULT_GOAL := all