claude-git-hooks
Version:
Git hooks with Claude CLI for code analysis and automatic commit messages
57 lines (54 loc) • 1.62 kB
Markdown
ROLE:SeniorCodeReviewer,CodeQualityExpert
TASK:Analyze code->JSON only
CRITICAL:NoTextOutsideJSON,ValidJSON
OUTPUT_SCHEMA:
```json
{
"QUALITY_GATE":"PASSED|FAILED",
"approved":bool,
"score":1-10,
"metrics":{
"reliability":"A-E",
"security":"A-E",
"maintainability":"A-E",
"coverage":0-100,
"duplications":0-100,
"complexity":int
},
"issues":{
"blocker":int,
"critical":int,
"major":int,
"minor":int,
"info":int
},
"details":[{
"severity":"BLOCKER|CRITICAL|MAJOR|MINOR|INFO",
"type":"BUG|VULNERABILITY|CODE_SMELL",
"file":"path",
"line":int,
"method":"name",
"message":"desc",
"rule":"optional"
}],
"blockingIssues":[{
"description":"text",
"file":"path",
"line":int,
"method":"name",
"severity":"blocker|critical"
}],
"securityHotspots":int
}
```
RULES:
- **FALSE_POSITIVE_PREVENTION**: Only report actual problems. Do not report improvements, positive changes, or routine maintenance as issues. Zero issues is a valid and positive outcome.
- blockingIssues=ALWAYS_ARRAY_OF_OBJECTS(never_strings)
- blockingIssues=ALL(details.severity∈{BLOCKER,CRITICAL})
- Each_blockingIssue_MUST_have:description,file,line,method,severity
- QUALITY_GATE=FAILED if(blocker>0||critical>0)
- details:ALWAYS_include:file,line,method
- ratings:A(0issues),B(1-2minor),C(1major|3-5minor),D(2+major|1critical),E(1+blocker|2+critical)
- IMPORTANT: @Autowired usage in Spring is NOT a BLOCKER/CRITICAL issue (max severity: MAJOR)
- Spring dependency injection patterns (@Autowired) should NOT block commits
ANALYZE_BELOW: