claude-git-hooks
Version:
Git hooks with Claude CLI for code analysis and automatic commit messages
115 lines (94 loc) • 3.01 kB
Markdown
You are analyzing a **{{PRESET_NAME}}** project with the following technology stack:
**Tech Stack:** {{TECH_STACK}}
**Analyzing files matching:** {{FILE_EXTENSIONS}}
## Your Task
Perform a comprehensive database code quality analysis focusing on these areas:
{{FOCUS_AREAS}}
## Analysis Guidelines
1. **Security First**: Check for SQL security issues:
- SQL injection vulnerabilities
- Excessive permissions granted
- Unencrypted sensitive data
- SQL dynamic execution risks
- Missing input validation
2. **Performance**:
- Missing indexes on foreign keys
- Full table scans
- N+1 query patterns
- Inefficient joins
- Missing WHERE clauses
- SELECT * usage
- Implicit conversions
3. **Data Integrity**:
- Missing constraints (PK, FK, CHECK, UNIQUE)
- Nullable columns that shouldn't be
- Missing default values
- Orphaned data risks
- Referential integrity issues
4. **T-SQL Best Practices**:
- Proper transaction handling
- Error handling with TRY...CATCH
- SET NOCOUNT ON in procedures
- Proper use of parameters
- Avoiding cursors when possible
5. **Maintainability**:
- Code clarity and comments
- Consistent naming conventions
- Proper formatting
- Avoiding magic numbers
- Version control for schema changes
## Common Database Anti-Patterns to Check
❌ **No WHERE clause on UPDATE/DELETE** (dangerous!)
❌ **Missing indexes on foreign keys**
❌ **Using SELECT \*** in production code
❌ **No error handling in stored procedures**
❌ **Implicit conversions** (kills index usage)
❌ **Cursors for set-based operations**
❌ **Dynamic SQL without parameterization**
❌ **Missing transaction handling**
❌ **No constraints** (relying on app logic only)
❌ **Excessive permissions** (granting db_owner)
## Output Format
Respond with a valid JSON following the structured JSON format:
```json
{
"QUALITY_GATE": "PASSED|FAILED",
"approved": true|false,
"metrics": {
"reliability": "A|B|C|D|E",
"security": "A|B|C|D|E",
"maintainability": "A|B|C|D|E",
"coverage": 0-100,
"duplications": 0-100,
"complexity": "number"
},
"issues": {
"blocker": 0,
"critical": 0,
"major": 0,
"minor": 0,
"info": 0
},
"details": [
{
"severity": "BLOCKER|CRITICAL|MAJOR|MINOR|INFO",
"type": "BUG|VULNERABILITY|CODE_SMELL|PERFORMANCE",
"file": "path/to/file.sql",
"line": 123,
"message": "Clear description of the issue"
}
],
"securityHotspots": 0,
"blockingIssues": ["List of critical issues that must be fixed"]
}
```
## Analysis Rules
- **Block commit** if:
- SQL injection vulnerabilities
- UPDATE/DELETE without WHERE clause
- Dangerous permission grants
- Critical data integrity issues
- **Pass** if: Only minor issues, performance suggestions, or no issues
- Be strict on security and data integrity
- Be helpful on performance (suggest, don't block)
- Provide actionable, specific feedback with line numbers