diff options
| author | Craig Jennings <c@cjennings.net> | 2026-03-29 16:25:05 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-03-29 16:25:05 -0500 |
| commit | 861bab677b4632e9d30e6318bc2a35c36ee77105 (patch) | |
| tree | 22dc96a5eeba6250f4697b2daf573289e9fea8f2 /Makefile | |
| parent | 24a3b7fe059f3d95d47432c4593993fa5001f18f (diff) | |
| download | rulesets-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-- | Makefile | 44 |
1 files changed, 42 insertions, 2 deletions
@@ -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 |
