diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..ea0a5a7 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,18 @@ +{ + "hooks": { + "PreToolUse": [ + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "if": "Bash(git commit *)", + "command": "output=$(cd \"$CLAUDE_PROJECT_DIR\" && ./gradlew compileJava spotlessCheck checkstyleMain checkstyleTest checkstyleIntTest pmdMain pmdTest pmdIntTest 2>&1); code=$?; if [ $code -ne 0 ]; then reason=$(printf '%s' \"$output\" | tail -150); jq -n --arg reason \"$reason\" '{hookSpecificOutput:{hookEventName:\"PreToolUse\",permissionDecision:\"deny\",permissionDecisionReason:(\"Pre-commit Gradle checks failed (compileJava, spotlessCheck, checkstyle*, pmd*):\\n\\n\" + $reason)}}'; else echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"permissionDecision\":\"allow\"}}'; fi", + "timeout": 180, + "statusMessage": "Running compile, format check, Checkstyle, PMD before commit..." + } + ] + } + ] + } +} diff --git a/CLAUDE.md b/CLAUDE.md index 835f110..294a513 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,3 +18,12 @@ src/int-test — integration tests, run by `intTest`, not part of `test` - Formatting via Spotless + google-java-format — run `spotlessApply`, don't hand-format - Coverage gate requires 80% line / 70% branch, combined across unit + integration tests - PRs must list Jira story keys per `.github/pull_request_template.md` + +## Recommended Claude Code plugins +``` +/plugin marketplace add stride-nyc/stride-plugins-official +/plugin install pdca-framework@stride-plugins-official +/plugin install afb-tdd@stride-plugins-official + +/plugin install superpowers@claude-plugins-official +```