From f894e07ea3c39620e37245f1e1bf829e853bbe5b Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 29 Mar 2026 16:27:59 -0500 Subject: Add hooks settings.json with install-hooks target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hooks provide: - PostEditTool: ruff format/check on Python, terraform fmt on .tf - PreCommit: block commits containing hardcoded secrets (AWS keys, API tokens, passwords) Install per-project with: make install-hooks TARGET=/path/to/project Won't overwrite existing settings.json — shows diff command instead. Co-Authored-By: Claude Opus 4.6 (1M context) --- Makefile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 92933b7..892104a 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ 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 +.PHONY: install uninstall install-hooks list install: @mkdir -p $(SKILLS_DIR) $(RULES_DIR) @@ -34,6 +34,20 @@ install: @echo "" @echo "done" +install-hooks: +ifndef TARGET + $(error Usage: make install-hooks TARGET=/path/to/project) +endif + @mkdir -p $(TARGET)/.claude + @if [ -e "$(TARGET)/.claude/settings.json" ]; then \ + echo " WARN $(TARGET)/.claude/settings.json already exists — not overwriting"; \ + echo " Compare with: diff $(CURDIR)/hooks/settings.json $(TARGET)/.claude/settings.json"; \ + else \ + cp "$(CURDIR)/hooks/settings.json" "$(TARGET)/.claude/settings.json"; \ + echo " copy settings.json → $(TARGET)/.claude/settings.json"; \ + fi + @echo "done" + uninstall: @echo "Skills:" @for skill in $(SKILLS); do \ -- cgit v1.2.3