aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-03-29 16:25:05 -0500
committerCraig Jennings <c@cjennings.net>2026-03-29 16:25:05 -0500
commit861bab677b4632e9d30e6318bc2a35c36ee77105 (patch)
tree22dc96a5eeba6250f4697b2daf573289e9fea8f2 /Makefile
parent24a3b7fe059f3d95d47432c4593993fa5001f18f (diff)
downloadrulesets-861bab677b4632e9d30e6318bc2a35c36ee77105.tar.gz
rulesets-861bab677b4632e9d30e6318bc2a35c36ee77105.zip
Add general-purpose skills and rules from DeepSat coding-rulesets
Skills (adapted from DeepSat, stripped of project-specific references): - /review-pr: PR review against engineering standards - /fix-issue: issue-to-merge TDD workflow - /security-check: secrets, OWASP, and dependency audit - /debug: systematic 4-phase debugging - /add-tests: test coverage analysis and generation - /respond-to-review: evaluate and implement code review feedback Rules (general-purpose, copied as-is): - testing.md: universal TDD standards and anti-patterns - verification.md: proof over assumption Makefile updated to install both skills and rules via symlinks. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile44
1 files changed, 42 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index e95e876..92933b7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,13 @@
SKILLS_DIR := $(HOME)/.claude/skills
-SKILLS := c4-analyze c4-diagram
+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)
.PHONY: install uninstall list
install:
- @mkdir -p $(SKILLS_DIR)
+ @mkdir -p $(SKILLS_DIR) $(RULES_DIR)
+ @echo "Skills:"
@for skill in $(SKILLS); do \
if [ -L "$(SKILLS_DIR)/$$skill" ]; then \
echo " skip $$skill (already linked)"; \
@@ -15,9 +18,24 @@ install:
echo " link $$skill → $(SKILLS_DIR)/$$skill"; \
fi \
done
+ @echo ""
+ @echo "Rules:"
+ @for rule in $(RULES); do \
+ name=$$(basename $$rule); \
+ if [ -L "$(RULES_DIR)/$$name" ]; then \
+ echo " skip $$name (already linked)"; \
+ elif [ -e "$(RULES_DIR)/$$name" ]; then \
+ echo " WARN $$name exists and is not a symlink — skipping"; \
+ else \
+ ln -s "$(CURDIR)/$$rule" "$(RULES_DIR)/$$name"; \
+ echo " link $$name → $(RULES_DIR)/$$name"; \
+ fi \
+ done
+ @echo ""
@echo "done"
uninstall:
+ @echo "Skills:"
@for skill in $(SKILLS); do \
if [ -L "$(SKILLS_DIR)/$$skill" ]; then \
rm "$(SKILLS_DIR)/$$skill"; \
@@ -26,6 +44,18 @@ uninstall:
echo " skip $$skill (not a symlink)"; \
fi \
done
+ @echo ""
+ @echo "Rules:"
+ @for rule in $(RULES); do \
+ name=$$(basename $$rule); \
+ if [ -L "$(RULES_DIR)/$$name" ]; then \
+ rm "$(RULES_DIR)/$$name"; \
+ echo " rm $$name"; \
+ else \
+ echo " skip $$name (not a symlink)"; \
+ fi \
+ done
+ @echo ""
@echo "done"
list:
@@ -37,3 +67,13 @@ list:
echo " - $$skill"; \
fi \
done
+ @echo ""
+ @echo "Rules:"
+ @for rule in $(RULES); do \
+ name=$$(basename $$rule); \
+ if [ -L "$(RULES_DIR)/$$name" ]; then \
+ echo " ✓ $$name (installed)"; \
+ else \
+ echo " - $$name"; \
+ fi \
+ done