claude-git-hooks 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/README.md +203 -79
  3. package/bin/claude-hooks +295 -119
  4. package/lib/config.js +163 -0
  5. package/lib/hooks/pre-commit.js +179 -67
  6. package/lib/hooks/prepare-commit-msg.js +47 -41
  7. package/lib/utils/claude-client.js +93 -11
  8. package/lib/utils/file-operations.js +1 -65
  9. package/lib/utils/file-utils.js +65 -0
  10. package/lib/utils/package-info.js +75 -0
  11. package/lib/utils/preset-loader.js +209 -0
  12. package/lib/utils/prompt-builder.js +83 -67
  13. package/lib/utils/resolution-prompt.js +12 -2
  14. package/package.json +49 -50
  15. package/templates/ANALYZE_DIFF.md +33 -0
  16. package/templates/COMMIT_MESSAGE.md +24 -0
  17. package/templates/SUBAGENT_INSTRUCTION.md +1 -0
  18. package/templates/config.example.json +41 -0
  19. package/templates/presets/ai/ANALYSIS_PROMPT.md +133 -0
  20. package/templates/presets/ai/PRE_COMMIT_GUIDELINES.md +176 -0
  21. package/templates/presets/ai/config.json +12 -0
  22. package/templates/presets/ai/preset.json +42 -0
  23. package/templates/presets/backend/ANALYSIS_PROMPT.md +85 -0
  24. package/templates/presets/backend/PRE_COMMIT_GUIDELINES.md +87 -0
  25. package/templates/presets/backend/config.json +12 -0
  26. package/templates/presets/backend/preset.json +49 -0
  27. package/templates/presets/database/ANALYSIS_PROMPT.md +114 -0
  28. package/templates/presets/database/PRE_COMMIT_GUIDELINES.md +143 -0
  29. package/templates/presets/database/config.json +12 -0
  30. package/templates/presets/database/preset.json +38 -0
  31. package/templates/presets/default/config.json +12 -0
  32. package/templates/presets/default/preset.json +53 -0
  33. package/templates/presets/frontend/ANALYSIS_PROMPT.md +99 -0
  34. package/templates/presets/frontend/PRE_COMMIT_GUIDELINES.md +95 -0
  35. package/templates/presets/frontend/config.json +12 -0
  36. package/templates/presets/frontend/preset.json +50 -0
  37. package/templates/presets/fullstack/ANALYSIS_PROMPT.md +107 -0
  38. package/templates/presets/fullstack/CONSISTENCY_CHECKS.md +147 -0
  39. package/templates/presets/fullstack/PRE_COMMIT_GUIDELINES.md +125 -0
  40. package/templates/presets/fullstack/config.json +12 -0
  41. package/templates/presets/fullstack/preset.json +55 -0
  42. package/templates/shared/ANALYSIS_PROMPT.md +103 -0
  43. package/templates/shared/ANALYZE_DIFF.md +33 -0
  44. package/templates/shared/COMMIT_MESSAGE.md +24 -0
  45. package/templates/shared/PRE_COMMIT_GUIDELINES.md +145 -0
  46. package/templates/shared/RESOLUTION_PROMPT.md +32 -0
  47. package/templates/check-version.sh +0 -266
package/CHANGELOG.md CHANGED
@@ -5,6 +5,184 @@ Todos los cambios notables en este proyecto se documentarán en este archivo.
5
5
  El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.3.0] - 2025-11-11
9
+
10
+ ### ✨ Added
11
+
12
+ - **Preset System (Phase 3)**
13
+ - 🎯 6 built-in presets: `backend`, `frontend`, `fullstack`, `database`, `ai`, `default`
14
+ - 📦 Self-contained preset packages with custom prompts and configurations
15
+ - 🔍 Smart file filtering per preset (`.java` for backend, `.tsx` for frontend, etc.)
16
+ - 🎨 Rich metadata: tech stack, focus areas, file extensions, display names
17
+ - 🔌 Template inheritance with placeholder replacement ({{TECH_STACK}}, {{FOCUS_AREAS}})
18
+ - 🛠️ Manual preset selection via CLI: `claude-hooks --set-preset <name>`
19
+ - 📋 Preset management commands: `presets`, `preset current`, `--set-preset`
20
+ - 📖 See `next-steps/V2.3.0_PHASE3_PRESETS_FINAL.md` for full specification
21
+
22
+ - **CLI Enhancements**
23
+ - 🏷️ Added `--version`, `-v`, and `version` commands to display current version
24
+ - 📊 Version check on install with interactive update prompt (skippable with `--skip-auth` or `--force`)
25
+
26
+ ### 🐛 Fixed
27
+
28
+ - **Critical Bug**: `prepare-commit-msg` now properly loads merged config (preset + user overrides)
29
+ - Was using sync default import instead of async `getConfig()`
30
+ - Preset settings were being ignored in commit message generation
31
+ - **Template Name Mismatch**: Fixed config.js template paths
32
+ - `COMMIT_MESSAGE.md` (was `CLAUDE_COMMIT_MESSAGE.md`)
33
+ - `ANALYZE_DIFF.md` (was `CLAUDE_ANALYZE_DIFF.md`)
34
+ - **Missing Auto-Update**: `checkVersionAndPromptUpdate()` now called during install
35
+
36
+ ### 🗑️ Removed
37
+
38
+ - ❌ Deleted `readPassword()` function (24 lines) - unused since v2.0.0 sudo removal
39
+ - ❌ Deleted `setMode()` function (5 lines) - empty implementation, never used
40
+ - ❌ Deleted `readMultipleFiles()` function (62 lines) - exported but never imported
41
+ - ❌ Removed `"main": "lib/index.js"` from package.json - CLI-only package
42
+ - ❌ Deleted obsolete root template `CLAUDE_PRE_COMMIT_SONAR.md`
43
+
44
+ ### 🔄 Changed
45
+
46
+ - **Commit Message Timeout**: Increased from 120s to 180s for complex analysis
47
+ - **Config Loading**: All hooks now use async `getConfig()` for proper preset merging
48
+
49
+ ### 📚 Documentation
50
+
51
+ - 📖 Updated CHANGELOG with v2.3.0 release notes
52
+ - 📝 Marked Phase 3 preset system as IMPLEMENTED in spec
53
+
54
+ ### 🎯 Preset Examples
55
+
56
+ ```bash
57
+ # List available presets
58
+ claude-hooks presets
59
+
60
+ # Set backend preset (filters to .java, .xml, .yml files)
61
+ claude-hooks --set-preset backend
62
+
63
+ # Check active preset
64
+ claude-hooks preset current
65
+
66
+ # All presets installed during: claude-hooks install
67
+ ```
68
+
69
+ ### 📦 Available Presets
70
+
71
+ 1. **backend** - Spring Boot + SQL Server (Java, XML, YAML)
72
+ 2. **frontend** - React + Material-UI (JS, JSX, TS, TSX, CSS)
73
+ 3. **fullstack** - Backend + Frontend + DB with consistency checks
74
+ 4. **database** - SQL Server migrations and procedures
75
+ 5. **ai** - Node.js + Claude CLI integration
76
+ 6. **default** - General-purpose scripting
77
+
78
+ ### 📋 Migration from v2.2.0
79
+
80
+ No breaking changes. Presets are opt-in:
81
+
82
+ ```bash
83
+ # Continue using defaults (no preset)
84
+ git commit -m "message"
85
+
86
+ # Or activate a preset
87
+ claude-hooks --set-preset backend
88
+ git commit -m "message" # Now filters to .java, .xml, .yml only
89
+ ```
90
+
91
+ ## [2.2.0] - 2025-11-04
92
+
93
+ ### ✨ Added
94
+
95
+ - **Configuration Centralization (Phase 1)**
96
+ - 📁 Created `lib/config.js` - single source of truth for all configurable values
97
+ - 🔧 User override support via `.claude/config.json` with deep merge
98
+ - 📊 Structured config: analysis, commitMessage, subagents, templates, output, system, git
99
+ - 🚫 Eliminated environment variables (except OS for platform detection)
100
+ - 📖 See `next-steps/V2.2.0_CONFIG_CENTRALIZATION.md` for details
101
+
102
+ - **Prompt Externalization (Phase 2)**
103
+ - 📝 Extracted ALL embedded prompts to external .md template files
104
+ - 🔌 Created `loadPrompt()` utility - combines load + variable replacement
105
+ - 📄 New templates: `COMMIT_MESSAGE.md`, `ANALYZE_DIFF.md`
106
+ - 🎯 JavaScript is now completely "prompt-agnostic"
107
+ - 📖 See `next-steps/V2.2.0_PHASE2_PROMPTS.md` for details
108
+
109
+ - **Parallel Analysis**
110
+ - 🚀 True OS-level parallel execution using multiple Claude CLI processes simultaneously
111
+ - ⚡ `analyzeCodeParallel()` function runs batches via Node.js `Promise.all()`
112
+ - 📊 Configurable `batchSize` for optimal speed/cost balance (default: 2)
113
+ - 🔀 Automatic result consolidation with worst-case quality gate logic
114
+ - 📈 Real-time console output showing parallel batch launches and completion
115
+ - 🎯 Enabled by default for commits with 3+ files
116
+ - ⏱️ Speed improvement: up to 4x faster with `batchSize: 1`
117
+
118
+ ### 🔄 Changed
119
+
120
+ - **Configuration Migration**
121
+ - ♻️ Migrated `lib/hooks/pre-commit.js` to use centralized config
122
+ - ♻️ Migrated `lib/hooks/prepare-commit-msg.js` to use centralized config
123
+ - ♻️ Migrated `lib/utils/claude-client.js` to use centralized config
124
+ - 🔧 `process.env.DEBUG` → `config.system.debug`
125
+ - 🔧 All hardcoded timeouts now configurable
126
+
127
+ - **Prompt Migration**
128
+ - ♻️ `prepare-commit-msg.js`: 40 lines → 15 lines (62% reduction)
129
+ - ♻️ `bin/claude-hooks`: 30 lines → 10 lines (67% reduction)
130
+ - 🎨 Prompts now editable without touching JavaScript code
131
+
132
+ - **Template Loading**
133
+ - 📂 Enhanced `loadTemplate()` with fallback: `.claude/` → `templates/`
134
+ - 🔀 Enables per-project customization of prompts
135
+
136
+ ### 🗑️ Removed
137
+
138
+ - ❌ Deleted `buildCommitMessagePrompt()` - unused legacy code
139
+ - ❌ Removed all `process.env` references except OS check
140
+
141
+ ### 📚 Documentation
142
+
143
+ - 📖 Added `next-steps/V2.2.0_CONFIG_CENTRALIZATION.md`
144
+ - 📖 Added `next-steps/V2.2.0_PHASE2_PROMPTS.md`
145
+ - 📝 Updated configuration examples and customization guides
146
+
147
+ ### 🎯 Benefits
148
+
149
+ - **Maintainability:** Prompts editable by non-developers
150
+ - **Flexibility:** Easy A/B testing of prompt styles
151
+ - **Customization:** Per-project overrides via `.claude/config.json`
152
+ - **Simplicity:** Clear separation of concerns (JS = logic, .md = content)
153
+
154
+ ### 📋 Migration Guide
155
+
156
+ No breaking changes. All defaults match previous behavior.
157
+
158
+ **Optional: Customize configuration**
159
+ ```bash
160
+ # Create project config
161
+ mkdir -p .claude
162
+ cat > .claude/config.json << 'EOF'
163
+ {
164
+ "analysis": {
165
+ "maxFileSize": 200000,
166
+ "maxFiles": 15
167
+ },
168
+ "subagents": {
169
+ "enabled": true,
170
+ "model": "sonnet"
171
+ },
172
+ "system": {
173
+ "debug": true
174
+ }
175
+ }
176
+ EOF
177
+ ```
178
+
179
+ **Optional: Customize prompts**
180
+ ```bash
181
+ # Override commit message prompt
182
+ cp templates/COMMIT_MESSAGE.md .claude/
183
+ # Edit .claude/COMMIT_MESSAGE.md as needed
184
+ ```
185
+
8
186
  ## [2.1.0] - 2025-11-04
9
187
 
10
188
  ### Changed
package/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  ## ✨ Novedad v2.0.0 - Ahora Cross-Platform
6
6
 
7
7
  **¡Nueva arquitectura!** Migración completa a Node.js con ES6 modules para soporte más universal:
8
+
8
9
  - ✅ **Windows** - Git en Bash y Powershell
9
10
  - ✅ **WSL** - Subsistema de Linux
10
11
  - ✅ **Linux** - Funcionamiento nativo
@@ -16,8 +17,9 @@
16
17
  - 🔍 **Análisis de código pre-commit**: Detecta issues críticos antes de que lleguen al repo
17
18
  - 💬 **Mensajes de commit automáticos**: Escribe "auto" y Claude genera el mensaje
18
19
  - 📋 **Generación de PRs**: Título, descripción y tests sugeridos con un solo comando
20
+ - 🎯 **Presets por tech-stack**: 6 configuraciones optimizadas (backend, frontend, fullstack, database, ai, default) - v2.3.0+
19
21
  - ⚠️ **Skip inteligente** (EXPERIMENTAL/BROKEN): Exclusión de código con comentarios SKIP_ANALYSIS - no funciona correctamente con git diff
20
- - 🕵️‍♂️ **Paralelización**: Análisis asincrónico de archivos con sub agentes
22
+ - 🚀 **Parallel Analysis**: Multiple Claude CLI processes analyzing file batches simultaneously (v2.2.0+)
21
23
  - 🔄 **Auto-actualización**: Se mantiene actualizado automáticamente
22
24
  - 🌍 **Cross-platform**: Windows, WSL, macOS, Linux sin configuración especial
23
25
 
@@ -37,6 +39,15 @@ claude-hooks analyze-diff develop
37
39
 
38
40
  # Reinstalar durante desarrollo (después de npm link)
39
41
  claude-hooks install --force --skip-auth
42
+
43
+ # Listar presets
44
+ claude-hooks presets
45
+
46
+ # Seleccionar preset
47
+ claude-hooks --set-preset <name>
48
+
49
+ # Mostrar preset actual
50
+ claude-hooks preset current
40
51
  ```
41
52
 
42
53
  ### 📦 Instalación y Gestión
@@ -102,24 +113,123 @@ public void methodToIgnore() {
102
113
  // SKIP_ANALYSIS_BLOCK
103
114
  ```
104
115
 
105
- ### 🔧 Configuración Avanzada
116
+ ### 🔧 Configuración Avanzada (v2.2.0+)
106
117
 
107
118
  ```bash
108
- # Archivos de configuración
119
+ # Configuración vía .claude/config.json
109
120
  .claude/
110
- ├── CLAUDE_PRE_COMMIT_SONAR.md # Personalizar criterios
111
- ├── CLAUDE_ANALYSIS_PROMPT_SONAR.md # Modificar prompt
112
- └── settings.local.json # Configuración local
113
-
114
- # Variables de entorno
115
- export CLAUDE_ANALYSIS_MODE=sonarqube # Modo de análisis
116
- export CLAUDE_DEBUG=true # Debug detallado
117
-
118
- # Subagent configuration (parallel analysis for multiple files)
119
- export CLAUDE_USE_SUBAGENTS=true # Enable subagent parallel analysis
120
- export CLAUDE_SUBAGENT_MODEL=haiku # Model: haiku (fast), sonnet (balanced), opus (thorough)
121
- export CLAUDE_SUBAGENT_BATCH_SIZE=3 # Parallel subagents per batch (default: 3)
121
+ ├── config.json # Configuración principal (v2.2.0+)
122
+ ├── CLAUDE_PRE_COMMIT_SONAR.md # Personalizar criterios (override)
123
+ └── CLAUDE_ANALYSIS_PROMPT_SONAR.md # Modificar prompt (override)
124
+
125
+ # Ejemplo de config.json (todas las opciones son opcionales)
126
+ cat > .claude/config.json << 'EOF'
127
+ {
128
+ "preset": "backend",
129
+ "analysis": {
130
+ "maxFileSize": 150000,
131
+ "maxFiles": 12,
132
+ "timeout": 150000
133
+ },
134
+ "commitMessage": {
135
+ "autoKeyword": "auto",
136
+ "timeout": 180000
137
+ },
138
+ "subagents": {
139
+ "enabled": true,
140
+ "model": "haiku",
141
+ "batchSize": 3
142
+ },
143
+ "system": {
144
+ "debug": true
145
+ }
146
+ }
147
+ EOF
148
+ ```
149
+
150
+ #### 🎯 Presets Disponibles
151
+
152
+ | Preset | Extensiones de Archivo | Caso de Uso | Tech Stack |
153
+ | ------------- | -------------------------------------------------------------------------- | ---------------- | ---------------------------- |
154
+ | **backend** | `.java`, `.xml`, `.yml`, `.yaml` | APIs Spring Boot | Spring Boot, JPA, SQL Server |
155
+ | **frontend** | `.js`, `.jsx`, `.ts`, `.tsx`, `.css`, `.scss`, `.html` | Apps React | React, Redux, Material-UI |
156
+ | **fullstack** | Todos backend + frontend | Apps full-stack | Spring Boot + React |
157
+ | **database** | `.sql` | Scripts de BD | SQL Server, T-SQL |
158
+ | **ai** | `.js`, `.json`, `.md`, `.sh` | Herramientas CLI | Node.js, Claude API |
159
+ | **default** | `.js`, `.sh`, `.py`, `.rb`, `.pl`, `.sql`, `.yaml`, `.json`, `.xml`, `.md` | Propósito general| Lenguajes mixtos |
160
+
161
+ ---
162
+
163
+ #### 🔍 Qué Verifica Cada Preset
164
+
165
+ **Backend (Spring Boot + SQL Server)**
166
+
167
+ - ✅ Diseño de API REST y métodos HTTP
168
+ - ✅ Entidades JPA y repositorios
169
+ - ✅ Seguridad (OWASP Top 10)
170
+ - ✅ Prevención de inyección SQL
171
+ - ✅ Gestión de transacciones
172
+ - ✅ Mapeos DTO
173
+ - ✅ Mejores prácticas Spring Security
174
+
175
+ **Frontend (React + Material-UI)**
176
+
177
+ - ✅ Mejores prácticas de hooks React
178
+ - ✅ Diseño de componentes y reusabilidad
179
+ - ✅ Patrones de gestión de estado
180
+ - ✅ Prevención XSS
181
+ - ✅ Optimización de rendimiento
182
+ - ✅ Accesibilidad (a11y)
183
+ - ✅ Error boundaries
184
+
185
+ **Fullstack (Spring Boot + React)**
186
+
187
+ - ✅ **Consistencia de contrato API** (prioridad)
188
+ - ✅ Flujo de datos (BD → API → UI)
189
+ - ✅ Autenticación entre capas
190
+ - ✅ Consistencia en manejo de errores
191
+ - ✅ Todas las verificaciones backend
192
+ - ✅ Todas las verificaciones frontend
193
+
194
+ **Database (SQL Server)**
195
+
196
+ - ✅ Riesgos de inyección SQL
197
+ - ✅ UPDATE/DELETE sin WHERE
198
+ - ✅ Índices faltantes
199
+ - ✅ Rendimiento de consultas
200
+ - ✅ Manejo de transacciones
201
+ - ✅ Restricciones de integridad de datos
202
+
203
+ **AI (Node.js + Claude)**
204
+
205
+ - ✅ Mejores prácticas Claude API
206
+ - ✅ Calidad de ingeniería de prompts
207
+ - ✅ Experiencia de usuario CLI
208
+ - ✅ Seguridad de operaciones Git
209
+ - ✅ Compatibilidad multiplataforma
210
+ - ✅ Protección de API key
211
+
212
+ **Default (Propósito general)**
213
+
214
+ - ✅ Fundamentos de calidad de código
215
+ - ✅ Fundamentos de seguridad
216
+ - ✅ Manejo de errores
217
+ - ✅ Mejores prácticas por lenguaje
218
+ - ✅ Mantenibilidad
219
+
220
+ ---
221
+
222
+ ##### ⚙️ Prioridad de Configuración
223
+
122
224
  ```
225
+ defaults (lib/config.js)
226
+
227
+ preset config (templates/presets/backend/config.json)
228
+
229
+ user config (.claude/config.json) ← MÁXIMA PRIORIDAD
230
+ ```
231
+
232
+ **Nota v2.2.0+:** Variables de entorno ya NO son soportadas. Usar `.claude/config.json` en su lugar.
123
233
 
124
234
  ### 🎯 Casos de Uso Específicos
125
235
 
@@ -148,60 +258,74 @@ git commit -m "fix: resolver issues"
148
258
  1. **Mensaje automático**: Usa `"auto"` como mensaje para que Claude lo genere
149
259
  2. **Skip auth**: Usa `--skip-auth` en CI/CD o desarrollo local
150
260
  3. **Force install**: Usa `--force` para reinstalar sin confirmación
151
- 4. **Debug**: Activa `CLAUDE_DEBUG=true` para ver detalles completos
261
+ 4. **Debug**: Activa en `.claude/config.json`: `{"system": {"debug": true}}`
152
262
  5. **Archivos grandes**: Se omiten automáticamente archivos > 100KB
153
- 6. **Límite de archivos**: Máximo 10 archivos por commit
263
+ 6. **Límite de archivos**: Máximo 10 archivos por commit (configurable)
154
264
 
155
- ### 🚀 Parallel Analysis with Subagents (NEW in v1.5.5)
265
+ ### 🚀 Parallel Analysis (v2.2.0+)
156
266
 
157
- **When analyzing 3+ files**, enable subagents for faster parallel processing:
267
+ **When analyzing 3+ files**, parallel execution runs multiple Claude CLI processes simultaneously for faster analysis:
158
268
 
159
269
  ```bash
160
- # Enable subagent parallel analysis
161
- export CLAUDE_USE_SUBAGENTS=true
162
-
163
- # Optional: Choose model (default: haiku for speed)
164
- export CLAUDE_SUBAGENT_MODEL=haiku # Fast & cheap
165
- export CLAUDE_SUBAGENT_MODEL=sonnet # Balanced quality/speed
166
- export CLAUDE_SUBAGENT_MODEL=opus # Maximum quality
270
+ # Configure in .claude/config.json
271
+ {
272
+ "subagents": {
273
+ "enabled": true,
274
+ "model": "haiku",
275
+ "batchSize": 2
276
+ }
277
+ }
278
+ ```
167
279
 
168
- # Optional: Adjust batch size (default: 3 files at a time)
169
- export CLAUDE_SUBAGENT_BATCH_SIZE=3
280
+ **Model options:**
170
281
 
171
- # Now commits will use parallel analysis automatically
172
- git commit -m "feat: implement multiple features"
173
- ```
282
+ - `haiku` - Fast & cheap (default, recommended)
283
+ - `sonnet` - Balanced quality/speed
284
+ - `opus` - Maximum quality (slower)
174
285
 
175
286
  **How batching works:**
176
- - `BATCH_SIZE=1` with 4 files → 4 sequential batches (1 subagent each)
177
- - `BATCH_SIZE=3` with 4 files → 2 batches (3 parallel, then 1)
178
- - `BATCH_SIZE=4` with 4 files → 1 batch (all 4 in parallel)
179
- - Batch size is validated automatically (minimum: 1)
180
287
 
181
- **How it works:**
182
- - Each file is analyzed by a dedicated Claude subagent
183
- - Files are processed in batches for optimal performance
184
- - Results are consolidated automatically into single response
185
- - Shows execution time for all operations
186
- - Uses one-line prompt injection - no complex architecture changes
288
+ - Files are split into batches of size `batchSize`
289
+ - Each batch runs in a separate Claude CLI process
290
+ - All batches execute in parallel (true OS-level parallelism)
291
+ - Results are consolidated automatically
292
+
293
+ **Examples with 4 files:**
294
+
295
+ - `batchSize: 1` → 4 parallel Claude processes (1 file each) - **fastest**
296
+ - `batchSize: 2` → 2 parallel Claude processes (2 files each) - **balanced**
297
+ - `batchSize: 4` → 1 process (all files) - no parallelization
187
298
 
188
- **Best for:** Large commits (3+ files), refactoring tasks, feature branches
299
+ **Speed improvement:**
300
+
301
+ - Sequential: 60s per file × 4 = 240s total
302
+ - Parallel (batch=1): max(60s) = 60s total ✅ **4x faster**
303
+
304
+ **Console output:**
305
+
306
+ ```
307
+ 🚀 PARALLEL EXECUTION: 4 Claude processes
308
+ ⚡ Launching batch 1/4...
309
+ ⚡ Launching batch 2/4...
310
+ ⚡ Launching batch 3/4...
311
+ ⚡ Launching batch 4/4...
312
+ ⏳ Waiting for all batches to complete...
313
+
314
+ ✅ PARALLEL EXECUTION COMPLETE: 4 results in 62.5s
315
+ ```
316
+
317
+ **Best for:** Large commits (3+ files), refactoring, multi-file features
189
318
 
190
319
  ### 🎨 Personalización y Customización
191
320
 
192
321
  **Archivos clave para modificar:**
322
+
323
+ - `.claude/config.json` - Configuración principal (v2.2.0+)
193
324
  - `.claude/CLAUDE_PRE_COMMIT_SONAR.md` - Criterios (backend/frontend/data/db)
194
325
  - `.claude/CLAUDE_ANALYSIS_PROMPT_SONAR.md` - Template del prompt
195
- - `lib/hooks/pre-commit.js` - CONFIG object (extensiones, límites, umbrales)
196
-
197
- **Subagents (v1.5.5+)** - Para commits multi-archivo (3+), reduce análisis 60-70%:
198
- ```bash
199
- export CLAUDE_USE_SUBAGENTS=true # Activar paralelo
200
- export CLAUDE_SUBAGENT_MODEL=haiku # haiku/sonnet/opus
201
- export CLAUDE_SUBAGENT_BATCH_SIZE=3 # Archivos simultáneos
202
- ```
203
326
 
204
327
  **Ejemplo:**
328
+
205
329
  ```bash
206
330
  vim .claude/CLAUDE_PRE_COMMIT_SONAR.md # Agregar reglas API REST/Spring Boot
207
331
  ```
@@ -268,9 +392,9 @@ El comando `claude-hooks install` crea los siguientes archivos y directorios:
268
392
  2. **`.git/hooks/prepare-commit-msg`** - Hook de generación de mensajes
269
393
  3. **`.git/hooks/check-version.sh`** - Script de verificación de versión
270
394
  4. **`.claude/`** - Directorio para archivos de configuración
271
- - `CLAUDE_PRE_COMMIT_SONAR.md` - Pautas de evaluación SonarQube
272
- - `CLAUDE_ANALYSIS_PROMPT_SONAR.md` - Template de prompt para análisis SonarQube
273
- - `CLAUDE_RESOLUTION_PROMPT.md` - Template para prompt de resolución AI
395
+ - `CLAUDE_PRE_COMMIT_SONAR.md` - Pautas de evaluación SonarQube
396
+ - `CLAUDE_ANALYSIS_PROMPT_SONAR.md` - Template de prompt para análisis SonarQube
397
+ - `CLAUDE_RESOLUTION_PROMPT.md` - Template para prompt de resolución AI
274
398
 
275
399
  ### Actualización automática de .gitignore
276
400
 
@@ -298,21 +422,21 @@ Si no existe un `.gitignore`, se creará uno nuevo. Si ya existe, las entradas s
298
422
 
299
423
  1. **Intercepta cada intento de commit**
300
424
  2. **Extrae y filtra archivos modificados**:
301
- - Solo analiza: Java, XML, properties, yml, yaml
302
- - Omite archivos mayores a 100KB
303
- - Límite de 10 archivos por commit
425
+ - Solo analiza: Java, XML, properties, yml, yaml
426
+ - Omite archivos mayores a 100KB
427
+ - Límite de 10 archivos por commit
304
428
  3. **Construye prompt inteligente**:
305
- - Usa template de prompt desde `.claude/CLAUDE_ANALYSIS_PROMPT*.md`
306
- - Lee las pautas desde `.claude/CLAUDE_PRE_COMMIT*.md`
307
- - Incluye el diff completo para archivos nuevos
308
- - Muestra solo cambios para archivos existentes
429
+ - Usa template de prompt desde `.claude/CLAUDE_ANALYSIS_PROMPT*.md`
430
+ - Lee las pautas desde `.claude/CLAUDE_PRE_COMMIT*.md`
431
+ - Incluye el diff completo para archivos nuevos
432
+ - Muestra solo cambios para archivos existentes
309
433
  4. **Envía a Claude CLI para revisión**
310
434
  5. **Procesa respuesta JSON estructurada**:
311
- - blockingIssues siempre como objetos con localización precisa
312
- - verifica `QUALITY_GATE`, muestra métricas y issues por severidad
435
+ - blockingIssues siempre como objetos con localización precisa
436
+ - verifica `QUALITY_GATE`, muestra métricas y issues por severidad
313
437
  6. **Decisión final**:
314
- - Si hay problemas críticos → genera prompt AI de resolución y bloquea commit
315
- - Si todo está bien → commit procede
438
+ - Si hay problemas críticos → genera prompt AI de resolución y bloquea commit
439
+ - Si todo está bien → commit procede
316
440
  7. **Generación de Prompt de Resolución AI** (opcional): Cuando se detectan problemas críticos:
317
441
 
318
442
  - Se genera automáticamente un archivo `claude_resolution_prompt.md`
@@ -323,28 +447,28 @@ Si no existe un `.gitignore`, se creará uno nuevo. Si ya existe, las entradas s
323
447
  ### Hook prepare-commit-msg (Generación automática de mensajes)
324
448
 
325
449
  1. **Se activa cuando el mensaje es**:
326
- - `"auto"`
450
+ - `"auto"`
327
451
  2. **Analiza los cambios del staging area**:
328
- - Lista archivos modificados con estadísticas
329
- - Incluye diffs completos para archivos < 100KB
452
+ - Lista archivos modificados con estadísticas
453
+ - Incluye diffs completos para archivos < 100KB
330
454
  3. **Genera mensaje en formato Conventional Commits**:
331
- - Determina tipo: feat, fix, docs, style, refactor, test, chore
332
- - Crea título conciso y descriptivo
333
- - Añade body con detalles si es necesario
455
+ - Determina tipo: feat, fix, docs, style, refactor, test, chore
456
+ - Crea título conciso y descriptivo
457
+ - Añade body con detalles si es necesario
334
458
  4. **Manejo de errores**:
335
- - Si falla la generación → cancela el commit completamente
336
- - No usa mensajes genéricos de fallback
459
+ - Si falla la generación → cancela el commit completamente
460
+ - No usa mensajes genéricos de fallback
337
461
 
338
462
  ### Características adicionales
339
463
 
340
464
  - **Generación de información para Pull Requests**: `claude-hooks analyze-diff [branch]` para comparar rama local con rama origin, propone nombre para rama actual, título y detalles para pull request, da tips para verificar trabajo. Si se especifica branch, compara con origin/branch. Si no, compara con origin de la rama actual. Este comando genera automáticamente:
341
- - 📝 Título de PR conciso (máx. 72 caracteres)
342
- - 📄 Descripción detallada con markdown
343
- - 🌿 Nombre de rama sugerido (formato: tipo/descripcion)
344
- - 📋 Tipo de cambio (feature/fix/refactor/docs/test/chore)
345
- - ⚠️ Indicador de breaking changes
346
- - 🧪 Notas de testing recomendado
347
- - 📝 Archivo `.claude-pr-analysis.json`
465
+ - 📝 Título de PR conciso (máx. 72 caracteres)
466
+ - 📄 Descripción detallada con markdown
467
+ - 🌿 Nombre de rama sugerido (formato: tipo/descripcion)
468
+ - 📋 Tipo de cambio (feature/fix/refactor/docs/test/chore)
469
+ - ⚠️ Indicador de breaking changes
470
+ - 🧪 Notas de testing recomendado
471
+ - 📝 Archivo `.claude-pr-analysis.json`
348
472
  - **Auto-actualización**: Verificación automática de versiones antes de cada commit con prompt interactivo para actualizar
349
473
  - **Comando update**: `claude-hooks update` para actualizar manualmente a la última versión
350
474
  - **Modo debug**: `DEBUG=1 git commit` guarda respuestas en `debug-claude-response.json`