aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile35
1 files changed, 34 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 92933b7..e42662e 100644
--- a/Makefile
+++ b/Makefile
@@ -2,8 +2,27 @@ SKILLS_DIR := $(HOME)/.claude/skills
RULES_DIR := $(HOME)/.claude/rules
SKILLS := c4-analyze c4-diagram debug add-tests respond-to-review review-pr fix-issue security-check
RULES := $(wildcard claude-rules/*.md)
+LANGUAGES := $(notdir $(wildcard languages/*))
-.PHONY: install uninstall list
+.PHONY: help install uninstall list \
+ install-lang list-languages install-elisp
+
+help:
+ @echo "rulesets — Claude Code skills, rules, and language bundles"
+ @echo ""
+ @echo " Global install (symlinks into ~/.claude/):"
+ @echo " make install - Install skills and rules globally"
+ @echo " make uninstall - Remove the symlinks"
+ @echo " make list - Show install status"
+ @echo ""
+ @echo " Per-project language rulesets:"
+ @echo " make install-lang LANG=<lang> PROJECT=<path> [FORCE=1]"
+ @echo " make install-elisp PROJECT=<path> [FORCE=1] (shortcut)"
+ @echo " make list-languages - Show available language bundles"
+ @echo ""
+ @echo " FORCE=1 overwrites an existing CLAUDE.md (other files always overwrite)."
+ @echo ""
+ @echo "Available languages: $(LANGUAGES)"
install:
@mkdir -p $(SKILLS_DIR) $(RULES_DIR)
@@ -77,3 +96,17 @@ list:
echo " - $$name"; \
fi \
done
+
+# --- Per-project language rulesets ---
+
+list-languages:
+ @echo "Available language rulesets (languages/):"
+ @for lang in $(LANGUAGES); do echo " - $$lang"; done
+
+install-lang:
+ @test -n "$(LANG)" || { echo "ERROR: set LANG=<language> (try: make list-languages)"; exit 1; }
+ @test -n "$(PROJECT)" || { echo "ERROR: set PROJECT=<path>"; exit 1; }
+ @bash scripts/install-lang.sh "$(LANG)" "$(PROJECT)" "$(FORCE)"
+
+install-elisp:
+ @$(MAKE) install-lang LANG=elisp PROJECT="$(PROJECT)" FORCE="$(FORCE)"