ai-flow-dev 2.0.1 → 2.1.1
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.
- package/README.md +10 -9
- package/dist/cli.js +17 -39
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/prompts/backend/flow-dev-commit.md +786 -0
- package/templates/AGENT.template.md +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ AI Flow is an interactive CLI that creates comprehensive professional documentat
|
|
|
10
10
|
|
|
11
11
|
**Key Features:**
|
|
12
12
|
|
|
13
|
-
- 🚀 Complete professional documentation (Backend:
|
|
13
|
+
- 🚀 Complete professional documentation (Backend: 14 docs, Frontend: 15 docs, Mobile: 13 docs, Fullstack: 3 docs)
|
|
14
14
|
- ⚡ **Two modes:** Interactive (90-120 min, full control) or Smart Auto-Suggest (15-25 min, 6 questions)
|
|
15
15
|
- 🌍 Universal support - 12 languages, 60+ frameworks, 35+ ORMs (98% coverage)
|
|
16
16
|
- 🤖 Multi-AI support with slash commands
|
|
@@ -37,7 +37,7 @@ Transforma tu idea en un proyecto listo para producción y documentado para IA e
|
|
|
37
37
|
|
|
38
38
|
**Características:**
|
|
39
39
|
|
|
40
|
-
- 🚀 Documentación profesional completa (Backend:
|
|
40
|
+
- 🚀 Documentación profesional completa (Backend: 14 docs, Frontend: 15 docs, Mobile: 13 docs, Fullstack: 3 docs)
|
|
41
41
|
- ⚡ **Dos modos:** Interactivo (90-120 min, control total) o Auto-Sugerido (15-25 min, 6 preguntas)
|
|
42
42
|
- 🌍 Soporte universal - 12 lenguajes, 60+ frameworks, 35+ ORMs
|
|
43
43
|
- 🤖 Compatible con Claude, Copilot, Cursor, Gemini
|
|
@@ -63,7 +63,7 @@ ai-flow init .
|
|
|
63
63
|
Transforme sua ideia em um projeto pronto para produção e documentado para IA em minutos.
|
|
64
64
|
**Características:**
|
|
65
65
|
|
|
66
|
-
- 🚀 Documentação profissional completa (Backend:
|
|
66
|
+
- 🚀 Documentação profissional completa (Backend: 14, Frontend: 15, Mobile: 13, Fullstack: 3 docs)
|
|
67
67
|
- ⚡ **Dois modos:** Interativo (90-120 min, controle total) ou Auto-Sugestão (15-25 min, 6 perguntas)
|
|
68
68
|
- 🌍 Suporte universal - 12 linguagens, 60+ frameworks, 35+ ORMs
|
|
69
69
|
- 🤖 Compatível com Claude, Copilot, Cursor, Gemini
|
|
@@ -103,13 +103,13 @@ The result is interconnected documentation that guides AI assistants and human d
|
|
|
103
103
|
|
|
104
104
|
- 🌍 **Universal Support** - 12 languages, 60+ frameworks, 35+ ORMs (98% coverage)
|
|
105
105
|
- 🤖 **AI-Agnostic** - Claude, Copilot, Cursor, Gemini, any AI tool
|
|
106
|
-
- 📚 **Professional Documentation** - Backend:
|
|
106
|
+
- 📚 **Professional Documentation** - Backend: 14, Frontend: 15, Mobile: 13, Fullstack: 3 docs
|
|
107
107
|
- ⚡ **Two Questionnaire Modes:**
|
|
108
108
|
- **Interactive Mode:** Full control, 71 questions (90-120 min)
|
|
109
109
|
- **Smart Auto-Suggest:** Only 6 critical questions, AI suggests best practices (15-25 min)
|
|
110
110
|
- 🔍 **Smart 3-Layer Detection** - Analyzes existing projects in 15s-5min
|
|
111
111
|
- 💾 **Intelligent Caching** - 0 seconds on re-runs with no changes
|
|
112
|
-
- 💡 **Slash Commands** - Easy execution with `/flow-build`, `/flow-dev-feature`, `/flow-dev-
|
|
112
|
+
- 💡 **Slash Commands** - Easy execution with `/flow-build`, `/flow-dev-feature`, `/flow-dev-commit`
|
|
113
113
|
- ⏱️ **Time Efficient** - Save 10-20 hours per project
|
|
114
114
|
|
|
115
115
|
---
|
|
@@ -133,7 +133,7 @@ Or using uv (Python tool manager):
|
|
|
133
133
|
uv tool install ai-flow-dev
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
**Current version:** 2.
|
|
136
|
+
**Current version:** 2.1.1
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
@@ -300,6 +300,7 @@ After initialization, use these slash commands in your AI tool:
|
|
|
300
300
|
|
|
301
301
|
- `/flow-dev-feature` - Create/modify features (15-20 min)
|
|
302
302
|
- `/flow-dev-fix` - Fix bugs (3-15 min, adaptive)
|
|
303
|
+
- `/flow-dev-commit` - Automate commits with Conventional Commits (3-5 min)
|
|
303
304
|
- `/flow-dev-work` - Manage work in progress
|
|
304
305
|
- `/flow-dev-review` - Multi-aspect code review (5 min)
|
|
305
306
|
- `/flow-dev-refactor` - Quick refactorings (3-5 min)
|
|
@@ -336,11 +337,11 @@ After initialization, use these slash commands in your AI tool:
|
|
|
336
337
|
|
|
337
338
|
## 🎯 Generated Documentation
|
|
338
339
|
|
|
339
|
-
**Backend** (14 docs): AGENT.md, ai-instructions.md, copilot-instructions.md, project-brief.md,
|
|
340
|
+
**Backend** (14 docs): AGENT.md, ai-instructions.md, copilot-instructions.md, project-brief.md, plus 8 technical docs and 2 specs
|
|
340
341
|
|
|
341
|
-
**Frontend** (15 docs): AGENT.md, ai-instructions.md, project-brief.md,
|
|
342
|
+
**Frontend** (15 docs): AGENT.md, ai-instructions.md, project-brief.md, plus 9 technical docs and 3 specs
|
|
342
343
|
|
|
343
|
-
**Mobile** (13 docs): AGENT.md, ai-instructions.md, project-brief.md,
|
|
344
|
+
**Mobile** (13 docs): AGENT.md, ai-instructions.md, project-brief.md, plus 8 technical docs and 2 specs
|
|
344
345
|
|
|
345
346
|
**Fullstack** (4 docs): AGENT.md, ai-instructions.md, project-brief.md, README.md
|
|
346
347
|
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,6 @@ import fs from 'fs-extra';
|
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import { fileURLToPath } from 'url';
|
|
9
9
|
import { dirname } from 'path';
|
|
10
|
-
import ejs from 'ejs';
|
|
11
10
|
import { assertDirWritable } from './fs-utils.js';
|
|
12
11
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
12
|
const __dirname = dirname(__filename);
|
|
@@ -216,16 +215,17 @@ async function createBootstrapStructure(targetPath, aiTools, projectType = 'back
|
|
|
216
215
|
throw error;
|
|
217
216
|
}
|
|
218
217
|
}
|
|
219
|
-
async function
|
|
220
|
-
const spinner = ora('
|
|
218
|
+
async function copyTemplates(targetPath, projectType = 'backend', dryRun, verbose) {
|
|
219
|
+
const spinner = ora('Copying templates to .ai-flow/templates/...').start();
|
|
221
220
|
try {
|
|
222
|
-
|
|
221
|
+
// Templates are copied WITHOUT rendering to .ai-flow/templates/
|
|
222
|
+
// Phase 8 will render them to project root
|
|
223
223
|
if (dryRun) {
|
|
224
|
-
spinner.succeed('
|
|
224
|
+
spinner.succeed('Templates copied (dry-run)');
|
|
225
225
|
return;
|
|
226
226
|
}
|
|
227
|
-
await assertDirWritable(
|
|
228
|
-
|
|
227
|
+
await assertDirWritable(targetPath);
|
|
228
|
+
const destTemplatesPath = path.join(targetPath, '.ai-flow', 'templates');
|
|
229
229
|
// Find all .template.md and .template files in a directory and subfolders
|
|
230
230
|
const walk = async (dir) => {
|
|
231
231
|
let files = [];
|
|
@@ -252,8 +252,7 @@ async function renderTemplates(targetPath, projectData, projectType = 'backend',
|
|
|
252
252
|
const fullPath = path.join(rootTemplatesSource, item);
|
|
253
253
|
const stat = await fs.stat(fullPath);
|
|
254
254
|
if (stat.isFile() && item.endsWith('.template.md')) {
|
|
255
|
-
|
|
256
|
-
processedFiles.set(relPath, { file: fullPath, base: rootTemplatesSource });
|
|
255
|
+
processedFiles.set(item, { file: fullPath, base: rootTemplatesSource });
|
|
257
256
|
}
|
|
258
257
|
}
|
|
259
258
|
// Include project-type-specific templates
|
|
@@ -294,43 +293,22 @@ async function renderTemplates(targetPath, projectData, projectType = 'backend',
|
|
|
294
293
|
for (const { source, base } of templateSources) {
|
|
295
294
|
const files = await walk(source);
|
|
296
295
|
for (const file of files) {
|
|
297
|
-
const relPath = path
|
|
298
|
-
.relative(base, file)
|
|
299
|
-
.replace('.template.md', '.md')
|
|
300
|
-
.replace('.template', '');
|
|
296
|
+
const relPath = path.relative(base, file);
|
|
301
297
|
// Only add if not already processed (first occurrence wins)
|
|
302
298
|
if (!processedFiles.has(relPath)) {
|
|
303
299
|
processedFiles.set(relPath, { file, base });
|
|
304
300
|
}
|
|
305
301
|
}
|
|
306
302
|
}
|
|
307
|
-
//
|
|
303
|
+
// Copy each template WITHOUT rendering to .ai-flow/templates/
|
|
308
304
|
for (const [relPath, { file: templateFile }] of processedFiles) {
|
|
309
|
-
//
|
|
310
|
-
const
|
|
311
|
-
if (fileName === '.clauderules' && !aiTools.includes('claude') && !aiTools.includes('all')) {
|
|
312
|
-
logVerbose(`Skipping ${relPath} (Claude not selected)`, verbose);
|
|
313
|
-
continue;
|
|
314
|
-
}
|
|
315
|
-
if (fileName === '.cursorrules' && !aiTools.includes('cursor') && !aiTools.includes('all')) {
|
|
316
|
-
logVerbose(`Skipping ${relPath} (Cursor not selected)`, verbose);
|
|
317
|
-
continue;
|
|
318
|
-
}
|
|
319
|
-
const destPath = path.join(templatesTarget, relPath);
|
|
305
|
+
// Preserve original file structure with .template extension
|
|
306
|
+
const destPath = path.join(destTemplatesPath, relPath);
|
|
320
307
|
await fs.ensureDir(path.dirname(destPath));
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
const rendered = ejs.render(templateContent, {
|
|
324
|
-
PROJECT_NAME: projectData.name,
|
|
325
|
-
PROJECT_DESCRIPTION: projectData.description,
|
|
326
|
-
PROJECT_TYPE: projectType,
|
|
327
|
-
GENERATION_DATE: new Date().toISOString().split('T')[0],
|
|
328
|
-
PLACEHOLDER: '{{PLACEHOLDER}}',
|
|
329
|
-
}, { delimiter: '?' });
|
|
330
|
-
await fs.writeFile(destPath, rendered, 'utf8');
|
|
331
|
-
logVerbose(`Rendered ${destPath}`, verbose);
|
|
308
|
+
await fs.copy(templateFile, destPath);
|
|
309
|
+
logVerbose(`Copied ${relPath}`, verbose);
|
|
332
310
|
}
|
|
333
|
-
spinner.succeed('
|
|
311
|
+
spinner.succeed('Templates copied');
|
|
334
312
|
}
|
|
335
313
|
catch (error) {
|
|
336
314
|
spinner.fail(fsErrorMessage(error));
|
|
@@ -507,7 +485,7 @@ async function initializeProject(targetPath, aiTool, projectType, projectName, p
|
|
|
507
485
|
console.log(chalk.cyan('\n📦 Initializing AI Flow...\n'));
|
|
508
486
|
// Create structure
|
|
509
487
|
await createBootstrapStructure(targetPath, aiTools, selectedProjectType, flags?.dryRun, flags?.verbose);
|
|
510
|
-
await
|
|
488
|
+
await copyTemplates(targetPath, selectedProjectType, flags?.dryRun, flags?.verbose);
|
|
511
489
|
await copyPrompts(targetPath, flags?.dryRun, flags?.verbose);
|
|
512
490
|
await setupSlashCommands(targetPath, aiTools, selectedProjectType, flags?.dryRun, flags?.verbose);
|
|
513
491
|
const modeText = flags?.dryRun ? 'DRY-RUN' : 'WRITE';
|
|
@@ -633,7 +611,7 @@ async function initializeProject(targetPath, aiTool, projectType, projectName, p
|
|
|
633
611
|
program
|
|
634
612
|
.name('ai-flow')
|
|
635
613
|
.description('AI-powered development workflow from idea to production. Generate specs, plan features, and build with AI assistance.')
|
|
636
|
-
.version('2.
|
|
614
|
+
.version('2.1.1');
|
|
637
615
|
program
|
|
638
616
|
.command('init')
|
|
639
617
|
.description('Initialize AI Flow in current directory')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-flow-dev",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "AI-powered development workflow from idea to production. Generate specs, plan features, and build with AI assistance throughout your project lifecycle.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -0,0 +1,786 @@
|
|
|
1
|
+
# AI Flow - Commit Automation
|
|
2
|
+
|
|
3
|
+
**YOU ARE AN EXPERT GIT WORKFLOW SPECIALIST.**
|
|
4
|
+
|
|
5
|
+
Your mission is to analyze changes, group them intelligently, and create atomic commits following Conventional Commits standard when the user executes `/flow-dev-commit`.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Command: `/flow-dev-commit`
|
|
10
|
+
|
|
11
|
+
### Objective
|
|
12
|
+
|
|
13
|
+
Automate commit creation with:
|
|
14
|
+
|
|
15
|
+
- **Automatic detection** of all changes (staged and unstaged)
|
|
16
|
+
- **Intelligent grouping** by functional relationship
|
|
17
|
+
- **Conventional Commits** compliance (type, scope, description)
|
|
18
|
+
- **Atomic commits** (one logical change per commit)
|
|
19
|
+
- **Zero user prompts** (except Allow confirmations)
|
|
20
|
+
|
|
21
|
+
### Usage Modes
|
|
22
|
+
|
|
23
|
+
- **`/flow-dev-commit`** → Full auto workflow (detect → group → commit → push)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Workflow: 4 Steps (3-5 minutes)
|
|
28
|
+
|
|
29
|
+
### Step 1: Detect Changes (Automatic - NO confirmation needed)
|
|
30
|
+
|
|
31
|
+
**Display:**
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
35
|
+
🔍 Step 1/4: Detecting Changes
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Execute these tools automatically in parallel (NO user confirmation):**
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
// Gather all changes
|
|
43
|
+
await Promise.all([
|
|
44
|
+
get_changed_files({ sourceControlState: ['unstaged'] }),
|
|
45
|
+
get_changed_files({ sourceControlState: ['staged'] }),
|
|
46
|
+
get_changed_files({}), // All states
|
|
47
|
+
]);
|
|
48
|
+
|
|
49
|
+
// Search for modified files by extension
|
|
50
|
+
await Promise.all([
|
|
51
|
+
file_search({ query: '**/*.{ts,js,tsx,jsx}', maxResults: 200 }),
|
|
52
|
+
file_search({ query: '**/*.{cs,fs,vb}', maxResults: 200 }),
|
|
53
|
+
file_search({ query: '**/*.{py,rb,php,java,go,rs}', maxResults: 200 }),
|
|
54
|
+
file_search({ query: '**/*.{md,json,yaml,yml}', maxResults: 100 }),
|
|
55
|
+
]);
|
|
56
|
+
|
|
57
|
+
// Detect code patterns
|
|
58
|
+
await Promise.all([
|
|
59
|
+
grep_search({
|
|
60
|
+
query: 'class|interface|type|struct|enum',
|
|
61
|
+
isRegexp: true,
|
|
62
|
+
maxResults: 150,
|
|
63
|
+
}),
|
|
64
|
+
grep_search({
|
|
65
|
+
query: 'export|public|private|internal',
|
|
66
|
+
isRegexp: true,
|
|
67
|
+
maxResults: 150,
|
|
68
|
+
}),
|
|
69
|
+
]);
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**If NO changes detected:**
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
ℹ️ No changes to commit.
|
|
76
|
+
|
|
77
|
+
Working directory is clean.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Stop execution and inform user.**
|
|
81
|
+
|
|
82
|
+
**If changes detected, display summary:**
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
✅ Changes detected:
|
|
86
|
+
|
|
87
|
+
Unstaged: [N] files
|
|
88
|
+
Staged: [N] files
|
|
89
|
+
|
|
90
|
+
File types:
|
|
91
|
+
- Source code: [N] files
|
|
92
|
+
- Tests: [N] files
|
|
93
|
+
- Documentation: [N] files
|
|
94
|
+
- Configuration: [N] files
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### Step 2: Intelligent Grouping (Automatic)
|
|
100
|
+
|
|
101
|
+
**Display:**
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
105
|
+
⚡ Step 2/4: Intelligent Grouping
|
|
106
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Analyze files and group by functional relationship.**
|
|
110
|
+
|
|
111
|
+
#### Universal Grouping Criteria
|
|
112
|
+
|
|
113
|
+
**1. Feature Complete**
|
|
114
|
+
|
|
115
|
+
Pattern: Entity/Model + Service/Business Logic + Controller/Endpoint + Tests + Related Docs
|
|
116
|
+
|
|
117
|
+
**Detection logic:**
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
If file matches: **/entities/**/*.*, **/models/**/*.*, **/domain/**/*.*
|
|
121
|
+
Then search for related files:
|
|
122
|
+
- Service: **/services/**/[ENTITY_NAME]*.*, **/application/**/[ENTITY_NAME]*.*
|
|
123
|
+
- Controller: **/controllers/**/[ENTITY_NAME]*.*, **/api/**/[ENTITY_NAME]*.*
|
|
124
|
+
- DTOs/Inputs: **/dto/**/[ENTITY_NAME]*.*, **/requests/**/[ENTITY_NAME]*.*
|
|
125
|
+
- Tests: **/__tests__/**/[ENTITY_NAME]*.*, **/tests/**/[ENTITY_NAME]*.*
|
|
126
|
+
- Docs: docs/**/*.md (if mentions ENTITY_NAME)
|
|
127
|
+
|
|
128
|
+
If 3+ related files found → Group as "Feature Complete"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Examples (multi-framework):**
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
// NestJS/TypeScript
|
|
135
|
+
src/modules/users/entities/user.entity.ts
|
|
136
|
+
src/modules/users/dto/create-user.dto.ts
|
|
137
|
+
src/modules/users/users.service.ts
|
|
138
|
+
src/modules/users/users.controller.ts
|
|
139
|
+
src/modules/users/__tests__/users.service.spec.ts
|
|
140
|
+
→ Commit: feat(users): implement user management with CRUD operations
|
|
141
|
+
|
|
142
|
+
// ASP.NET Core/C#
|
|
143
|
+
Domain/Entities/Product.cs
|
|
144
|
+
Application/DTOs/ProductDTO.cs
|
|
145
|
+
Application/Services/ProductService.cs
|
|
146
|
+
Infrastructure/Repositories/ProductRepository.cs
|
|
147
|
+
API/Controllers/ProductController.cs
|
|
148
|
+
→ Commit: feat(products): implement product management system
|
|
149
|
+
|
|
150
|
+
// Django/Python
|
|
151
|
+
apps/products/models.py
|
|
152
|
+
apps/products/serializers.py
|
|
153
|
+
apps/products/views.py
|
|
154
|
+
apps/products/tests/test_views.py
|
|
155
|
+
→ Commit: feat(products): add product CRUD endpoints
|
|
156
|
+
|
|
157
|
+
// Go
|
|
158
|
+
internal/domain/product.go
|
|
159
|
+
internal/service/product_service.go
|
|
160
|
+
internal/handler/product_handler.go
|
|
161
|
+
internal/repository/product_repository.go
|
|
162
|
+
→ Commit: feat(products): implement product management
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**2. Refactoring**
|
|
166
|
+
|
|
167
|
+
Pattern: Helper/Utility + Tests + Files that import it
|
|
168
|
+
|
|
169
|
+
**Detection logic:**
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
If file matches: **/utils/**/*.*, **/helpers/**/*.*, **/lib/**/*.*
|
|
173
|
+
Then search for:
|
|
174
|
+
- Test: Same path with *.spec.*, *.test.*, *_test.*
|
|
175
|
+
- Usages: grep_search for "import.*[HELPER_NAME]"
|
|
176
|
+
|
|
177
|
+
If 2+ files use the helper → Group as "Refactoring"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Examples:**
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
// TypeScript
|
|
184
|
+
src/core/utils/validation.helper.ts
|
|
185
|
+
src/core/utils/__tests__/validation.helper.spec.ts
|
|
186
|
+
src/modules/users/dto/create-user.dto.ts (uses it)
|
|
187
|
+
src/modules/products/dto/create-product.dto.ts (uses it)
|
|
188
|
+
→ Commit: refactor(core): extract validation helper with pattern constants
|
|
189
|
+
|
|
190
|
+
// C#
|
|
191
|
+
Core/Extensions/StringExtensions.cs
|
|
192
|
+
Core/Extensions.Tests/StringExtensionsTests.cs
|
|
193
|
+
Application/Services/UserService.cs (uses it)
|
|
194
|
+
→ Commit: refactor(core): add string validation extensions
|
|
195
|
+
|
|
196
|
+
// Python
|
|
197
|
+
core/utils/validators.py
|
|
198
|
+
tests/test_validators.py
|
|
199
|
+
apps/users/forms.py (imports it)
|
|
200
|
+
→ Commit: refactor(core): extract email and phone validators
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**3. Configuration Changes**
|
|
204
|
+
|
|
205
|
+
Pattern: Related config files (docker, env, CI/CD, build scripts)
|
|
206
|
+
|
|
207
|
+
**Detection logic:**
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
If any file matches:
|
|
211
|
+
- Docker: **/Dockerfile*, **/docker-compose*.*, **/.dockerignore
|
|
212
|
+
- Env: **/.env*, **/appsettings*.*, **/config/*.*
|
|
213
|
+
- CI/CD: **/.github/workflows/*, **/.gitlab-ci.*, **/azure-pipelines.*
|
|
214
|
+
- Build: **/package.json, **/requirements.txt, **/go.mod, **/*.csproj
|
|
215
|
+
|
|
216
|
+
Group related configs together
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Examples:**
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
// Docker + Env
|
|
223
|
+
docker-compose.yml
|
|
224
|
+
.env.template
|
|
225
|
+
Dockerfile
|
|
226
|
+
→ Commit: chore(docker): update postgres version and add redis service
|
|
227
|
+
|
|
228
|
+
// CI/CD
|
|
229
|
+
.github/workflows/ci.yml
|
|
230
|
+
.github/workflows/deploy.yml
|
|
231
|
+
→ Commit: ci: add automated deployment to staging
|
|
232
|
+
|
|
233
|
+
// Build dependencies
|
|
234
|
+
package.json
|
|
235
|
+
package-lock.json
|
|
236
|
+
→ Commit: chore(deps): upgrade nestjs to v10
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**4. Test Improvements (Independent)**
|
|
240
|
+
|
|
241
|
+
Pattern: Test files NOT related to new features
|
|
242
|
+
|
|
243
|
+
**Detection logic:**
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
If file matches: **/*{.spec,.test,_test}.*
|
|
247
|
+
And NO related source file changed in same commit group
|
|
248
|
+
Then: Separate commit for test improvements
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Examples:**
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
src/modules/auth/__tests__/auth.security.spec.ts
|
|
255
|
+
→ Commit: test(auth): add comprehensive security tests for JWT validation
|
|
256
|
+
|
|
257
|
+
tests/integration/api_endpoints_test.go
|
|
258
|
+
→ Commit: test(api): improve integration test coverage for error cases
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**5. Documentation (Independent)**
|
|
262
|
+
|
|
263
|
+
Pattern: Docs NOT related to features in same change
|
|
264
|
+
|
|
265
|
+
**Detection logic:**
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
If file matches: **/docs/**/*.md, **/README.md, **/CONTRIBUTING.md
|
|
269
|
+
And NO related code changed in same commit group
|
|
270
|
+
Then: Separate commit for docs
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Examples:**
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
README.md
|
|
277
|
+
docs/deployment.md
|
|
278
|
+
→ Commit: docs(deployment): add kubernetes deployment guide
|
|
279
|
+
|
|
280
|
+
docs/api.md (only this file, no related code)
|
|
281
|
+
→ Commit: docs(api): update authentication endpoints documentation
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**6. Dependency Detection Rules**
|
|
285
|
+
|
|
286
|
+
**If entity/model file changed, search for:**
|
|
287
|
+
|
|
288
|
+
- Services/business logic that use it
|
|
289
|
+
- Controllers/handlers that expose it
|
|
290
|
+
- DTOs/serializers that map it
|
|
291
|
+
- Repositories/data access for it
|
|
292
|
+
- Tests that cover it
|
|
293
|
+
- Docs that describe it
|
|
294
|
+
|
|
295
|
+
**If configuration file changed, check if:**
|
|
296
|
+
|
|
297
|
+
- Related to specific feature (include in feature commit)
|
|
298
|
+
- Independent change (separate config commit)
|
|
299
|
+
|
|
300
|
+
**If test file changed, check if:**
|
|
301
|
+
|
|
302
|
+
- Testing new feature (include in feature commit)
|
|
303
|
+
- Improving existing tests (separate test commit)
|
|
304
|
+
|
|
305
|
+
**Group Display Format:**
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
📦 Group 1: Feature Complete
|
|
309
|
+
Type: feat
|
|
310
|
+
Scope: users
|
|
311
|
+
Description: implement user management with CRUD operations
|
|
312
|
+
Files (7):
|
|
313
|
+
✓ src/modules/users/entities/user.entity.ts
|
|
314
|
+
✓ src/modules/users/dto/create-user.dto.ts
|
|
315
|
+
✓ src/modules/users/dto/update-user.dto.ts
|
|
316
|
+
✓ src/modules/users/users.service.ts
|
|
317
|
+
✓ src/modules/users/users.controller.ts
|
|
318
|
+
✓ src/modules/users/__tests__/users.service.spec.ts
|
|
319
|
+
✓ docs/api.md
|
|
320
|
+
|
|
321
|
+
📦 Group 2: Configuration
|
|
322
|
+
Type: chore
|
|
323
|
+
Scope: docker
|
|
324
|
+
Description: update database connection settings
|
|
325
|
+
Files (2):
|
|
326
|
+
✓ docker-compose.yml
|
|
327
|
+
✓ .env.template
|
|
328
|
+
|
|
329
|
+
📦 Group 3: Refactoring
|
|
330
|
+
Type: refactor
|
|
331
|
+
Scope: core
|
|
332
|
+
Description: extract validation helper with regex patterns
|
|
333
|
+
Files (4):
|
|
334
|
+
✓ src/core/utils/validation.helper.ts
|
|
335
|
+
✓ src/core/utils/__tests__/validation.helper.spec.ts
|
|
336
|
+
✓ src/modules/users/dto/create-user.dto.ts
|
|
337
|
+
✓ src/modules/products/dto/create-product.dto.ts
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
### Step 3: Generate Commits (Requires Allow per commit)
|
|
343
|
+
|
|
344
|
+
**Display:**
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
348
|
+
✅ Step 3/4: Creating Commits
|
|
349
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
350
|
+
|
|
351
|
+
[N] commits will be created following Conventional Commits standard.
|
|
352
|
+
|
|
353
|
+
You will need to click "Allow" for each commit.
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**For each group, generate ONE command:**
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
git add [file1] [file2] [file3] && git commit -m "<type>(<scope>): <description>"
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**Command Format:**
|
|
363
|
+
|
|
364
|
+
```
|
|
365
|
+
<type>(<scope>): <description>
|
|
366
|
+
|
|
367
|
+
Types (Conventional Commits):
|
|
368
|
+
- feat: New feature
|
|
369
|
+
- fix: Bug fix
|
|
370
|
+
- docs: Documentation changes
|
|
371
|
+
- style: Code formatting (no logic change)
|
|
372
|
+
- refactor: Code restructure (no feature/fix)
|
|
373
|
+
- perf: Performance improvement
|
|
374
|
+
- test: Add or fix tests
|
|
375
|
+
- chore: Build, config, dependencies
|
|
376
|
+
- ci: CI/CD changes
|
|
377
|
+
- revert: Revert previous commit
|
|
378
|
+
|
|
379
|
+
Scope Rules:
|
|
380
|
+
- Detected dynamically from project structure
|
|
381
|
+
- Entity name (singular, lowercase): users, products, orders
|
|
382
|
+
- Module name: auth, api, core, admin
|
|
383
|
+
- Technology: docker, k8s, db, cache
|
|
384
|
+
- Area: security, logging, monitoring
|
|
385
|
+
|
|
386
|
+
Description Rules:
|
|
387
|
+
- English only
|
|
388
|
+
- Imperative mood: "add", "implement", "fix" (NOT "added", "implemented")
|
|
389
|
+
- Lowercase start
|
|
390
|
+
- No period at end
|
|
391
|
+
- Max 72 characters
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
**Scope Detection Algorithm:**
|
|
395
|
+
|
|
396
|
+
```typescript
|
|
397
|
+
function detectScope(files: string[]): string {
|
|
398
|
+
// 1. Check directory names
|
|
399
|
+
const dirs = files.map((f) => path.dirname(f).split(path.sep));
|
|
400
|
+
|
|
401
|
+
// 2. Look for common patterns
|
|
402
|
+
const entityPattern = /\/(users|products|orders|customers|invoices)\//i;
|
|
403
|
+
const modulePattern = /\/(auth|api|core|admin|dashboard)\//i;
|
|
404
|
+
|
|
405
|
+
// 3. Check file names
|
|
406
|
+
const fileNames = files.map((f) => path.basename(f, path.extname(f)));
|
|
407
|
+
|
|
408
|
+
// 4. Priority order:
|
|
409
|
+
// a) Entity name from directory (most specific)
|
|
410
|
+
// b) Module name from directory
|
|
411
|
+
// c) File name pattern (UserService → users)
|
|
412
|
+
// d) Generic scope (core, api, config)
|
|
413
|
+
|
|
414
|
+
// 5. Return singular, lowercase scope
|
|
415
|
+
return scope;
|
|
416
|
+
}
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Validation Before Commit:**
|
|
420
|
+
|
|
421
|
+
```typescript
|
|
422
|
+
function validateCommitMessage(message: string): boolean {
|
|
423
|
+
// Regex: ^(type)\(scope\): description$
|
|
424
|
+
const regex =
|
|
425
|
+
/^(feat|fix|docs|style|refactor|perf|test|chore|ci|revert)\([a-z0-9\-]+\): [a-z].{1,68}[^.]$/;
|
|
426
|
+
|
|
427
|
+
if (!regex.test(message)) {
|
|
428
|
+
console.error('❌ Invalid commit message format');
|
|
429
|
+
return false;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
return true;
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
**Show each command with `run_in_terminal` and wait for Allow:**
|
|
437
|
+
|
|
438
|
+
```
|
|
439
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
440
|
+
Commit 1/3: Feature Complete
|
|
441
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
442
|
+
|
|
443
|
+
git add src/modules/users/entities/user.entity.ts src/modules/users/dto/create-user.dto.ts src/modules/users/users.service.ts src/modules/users/users.controller.ts src/modules/users/__tests__/users.service.spec.ts docs/api.md && git commit -m "feat(users): implement user management with CRUD operations"
|
|
444
|
+
|
|
445
|
+
Click "Allow" to execute →
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
**After each commit confirmation:**
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
✅ Commit created: feat(users): implement user management with CRUD operations
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
### Step 4: Finalize (Automatic log + Manual push)
|
|
457
|
+
|
|
458
|
+
**Display:**
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
462
|
+
🚀 Step 4/4: Summary & Push
|
|
463
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
**Automatic (NO confirmation):**
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
git log --oneline --graph --decorate -n [number_of_commits]
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
**Display result:**
|
|
473
|
+
|
|
474
|
+
```
|
|
475
|
+
✅ [N] commits created following Conventional Commits
|
|
476
|
+
|
|
477
|
+
📋 Commit History:
|
|
478
|
+
* a3b4c5d feat(users): implement user management with CRUD operations
|
|
479
|
+
* f6g7h8i chore(docker): update database connection settings
|
|
480
|
+
* j9k0l1m refactor(core): extract validation helper with regex patterns
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**Prepare push command (REQUIRES Allow):**
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
git push origin [current-branch]
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
**Show command:**
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
🚀 Ready to push to remote
|
|
493
|
+
|
|
494
|
+
git push origin [branch-name]
|
|
495
|
+
|
|
496
|
+
Click "Allow" to execute →
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
**If push fails:**
|
|
500
|
+
|
|
501
|
+
```
|
|
502
|
+
❌ Push failed
|
|
503
|
+
|
|
504
|
+
Error: [error message]
|
|
505
|
+
|
|
506
|
+
Suggestions:
|
|
507
|
+
- Run: git pull origin [branch] --rebase
|
|
508
|
+
- Resolve conflicts if any
|
|
509
|
+
- Run: /flow-dev-commit again to retry
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
---
|
|
513
|
+
|
|
514
|
+
## 🎯 Execution Model
|
|
515
|
+
|
|
516
|
+
| Step | Actions | User Interaction |
|
|
517
|
+
| ------ | ------------------------------------------------------- | ---------------------- |
|
|
518
|
+
| Step 1 | `get_changed_files()`, `file_search()`, `grep_search()` | Automatic (read-only) |
|
|
519
|
+
| Step 2 | Analyze and group files | Automatic |
|
|
520
|
+
| Step 3 | `git add` + `git commit` (per group) | Click Allow per commit |
|
|
521
|
+
| Step 4 | `git log` (automatic) + `git push` (manual) | Auto log / Allow push |
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## 🔍 Pattern Detection Table
|
|
526
|
+
|
|
527
|
+
Universal patterns that work across languages/frameworks:
|
|
528
|
+
|
|
529
|
+
| Pattern | File Indicators | Type | Scope Example | Description Template |
|
|
530
|
+
| ---------------------- | -------------------------------------------- | ---------- | ---------------- | ------------------------------------- |
|
|
531
|
+
| **Feature Complete** | Entity + Service + Controller + Tests + Docs | `feat` | entity-name | `implement [entity] management` |
|
|
532
|
+
| **API Endpoint** | Controller/Handler + Tests | `feat` | api | `add [endpoint] endpoint` |
|
|
533
|
+
| **Business Logic** | Service/UseCase + Tests | `feat` | module-name | `add [feature] business logic` |
|
|
534
|
+
| **Data Model** | Entity/Model + Migration/Schema | `feat` | entity-name | `add [entity] data model` |
|
|
535
|
+
| **Helper/Utility** | Helper + Tests + Dependent files | `refactor` | core | `extract [helper-name] helper` |
|
|
536
|
+
| **Guard/Middleware** | Guard/Middleware + Tests | `feat` | auth/api | `add [guard-name] for [purpose]` |
|
|
537
|
+
| **Validation** | Validator + Tests + DTOs using it | `refactor` | validation | `add [validation-type] validation` |
|
|
538
|
+
| **Database Migration** | Migration files | `feat` | db | `add migration for [change]` |
|
|
539
|
+
| **Configuration** | Docker/Env/CI files | `chore` | docker/ci/config | `update [config-type]` |
|
|
540
|
+
| **Security** | Auth/Security files + Tests | `feat/fix` | security | `implement [security-feature]` |
|
|
541
|
+
| **Performance** | Optimized code + Benchmarks | `perf` | scope | `optimize [what] performance` |
|
|
542
|
+
| **Tests Only** | Test files (no related source changes) | `test` | module-name | `add [test-type] tests for [feature]` |
|
|
543
|
+
| **Docs Only** | Docs (no related code changes) | `docs` | doc-topic | `update [doc-name] documentation` |
|
|
544
|
+
| **Dependency Update** | package.json/requirements/go.mod | `chore` | deps | `upgrade [package] to [version]` |
|
|
545
|
+
| **Build Scripts** | Makefile/scripts/build config | `chore` | build | `update [build-aspect]` |
|
|
546
|
+
|
|
547
|
+
---
|
|
548
|
+
|
|
549
|
+
## 💡 Complex Examples
|
|
550
|
+
|
|
551
|
+
### Example 1: Full Feature with Documentation
|
|
552
|
+
|
|
553
|
+
**Changes detected:**
|
|
554
|
+
|
|
555
|
+
```
|
|
556
|
+
src/modules/products/entities/product.entity.ts
|
|
557
|
+
src/modules/products/dto/create-product.dto.ts
|
|
558
|
+
src/modules/products/dto/update-product.dto.ts
|
|
559
|
+
src/modules/products/dto/product-response.dto.ts
|
|
560
|
+
src/modules/products/products.service.ts
|
|
561
|
+
src/modules/products/products.controller.ts
|
|
562
|
+
src/modules/products/products.module.ts
|
|
563
|
+
src/modules/products/__tests__/products.service.spec.ts
|
|
564
|
+
src/modules/products/__tests__/products.controller.spec.ts
|
|
565
|
+
docs/api.md (products section)
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
**Commits generated (1 commit):**
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
git add src/modules/products/entities/product.entity.ts src/modules/products/dto/create-product.dto.ts src/modules/products/dto/update-product.dto.ts src/modules/products/dto/product-response.dto.ts src/modules/products/products.service.ts src/modules/products/products.controller.ts src/modules/products/products.module.ts src/modules/products/__tests__/products.service.spec.ts src/modules/products/__tests__/products.controller.spec.ts docs/api.md && git commit -m "feat(products): implement product management with CRUD operations"
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
### Example 2: Refactoring Across Modules
|
|
575
|
+
|
|
576
|
+
**Changes detected:**
|
|
577
|
+
|
|
578
|
+
```
|
|
579
|
+
src/core/utils/validation.helper.ts (new)
|
|
580
|
+
src/core/utils/__tests__/validation.helper.spec.ts (new)
|
|
581
|
+
src/modules/users/dto/create-user.dto.ts (uses helper)
|
|
582
|
+
src/modules/products/dto/create-product.dto.ts (uses helper)
|
|
583
|
+
src/modules/orders/dto/create-order.dto.ts (uses helper)
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
**Commits generated (2 commits):**
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
# 1. Create helper
|
|
590
|
+
git add src/core/utils/validation.helper.ts src/core/utils/__tests__/validation.helper.spec.ts && git commit -m "refactor(core): extract validation helper with regex patterns"
|
|
591
|
+
|
|
592
|
+
# 2. Update DTOs
|
|
593
|
+
git add src/modules/users/dto/create-user.dto.ts src/modules/products/dto/create-product.dto.ts src/modules/orders/dto/create-order.dto.ts && git commit -m "refactor(dto): migrate DTOs to use validation helper"
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
### Example 3: Multiple Independent Changes
|
|
597
|
+
|
|
598
|
+
**Changes detected:**
|
|
599
|
+
|
|
600
|
+
```
|
|
601
|
+
src/modules/auth/auth.service.ts (bug fix)
|
|
602
|
+
src/modules/auth/__tests__/auth.service.spec.ts (bug fix test)
|
|
603
|
+
docker-compose.yml (config change)
|
|
604
|
+
.env.template (config change)
|
|
605
|
+
README.md (docs update)
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
**Commits generated (3 commits):**
|
|
609
|
+
|
|
610
|
+
```bash
|
|
611
|
+
# 1. Bug fix
|
|
612
|
+
git add src/modules/auth/auth.service.ts src/modules/auth/__tests__/auth.service.spec.ts && git commit -m "fix(auth): resolve JWT expiration validation issue"
|
|
613
|
+
|
|
614
|
+
# 2. Configuration
|
|
615
|
+
git add docker-compose.yml .env.template && git commit -m "chore(docker): update postgres version to 15"
|
|
616
|
+
|
|
617
|
+
# 3. Documentation
|
|
618
|
+
git add README.md && git commit -m "docs(readme): add authentication flow diagram"
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
### Example 4: Mixed Framework Projects
|
|
622
|
+
|
|
623
|
+
**Go Project:**
|
|
624
|
+
|
|
625
|
+
```
|
|
626
|
+
internal/domain/user.go
|
|
627
|
+
internal/service/user_service.go
|
|
628
|
+
internal/handler/user_handler.go
|
|
629
|
+
internal/repository/user_repository.go
|
|
630
|
+
internal/handler/user_handler_test.go
|
|
631
|
+
→ Commit: feat(users): implement user management with repository pattern
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
**Python/Django:**
|
|
635
|
+
|
|
636
|
+
```
|
|
637
|
+
apps/products/models.py
|
|
638
|
+
apps/products/serializers.py
|
|
639
|
+
apps/products/views.py
|
|
640
|
+
apps/products/urls.py
|
|
641
|
+
apps/products/tests/test_views.py
|
|
642
|
+
→ Commit: feat(products): add product CRUD API endpoints
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
**Ruby/Rails:**
|
|
646
|
+
|
|
647
|
+
```
|
|
648
|
+
app/models/order.rb
|
|
649
|
+
app/controllers/orders_controller.rb
|
|
650
|
+
app/serializers/order_serializer.rb
|
|
651
|
+
spec/models/order_spec.rb
|
|
652
|
+
spec/requests/orders_spec.rb
|
|
653
|
+
→ Commit: feat(orders): implement order processing system
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
---
|
|
657
|
+
|
|
658
|
+
## ⚠️ Rules & Constraints
|
|
659
|
+
|
|
660
|
+
### NEVER
|
|
661
|
+
|
|
662
|
+
- ❌ Ask user which files to group
|
|
663
|
+
- ❌ Show interactive menus or prompts
|
|
664
|
+
- ❌ Request confirmation between commits (only for git commands)
|
|
665
|
+
- ❌ Create generic commits like "update files" or "changes"
|
|
666
|
+
- ❌ Use generic scopes: "any", "various", "multiple", "all"
|
|
667
|
+
- ❌ Mix types in one commit (`feat` + `fix` in same commit)
|
|
668
|
+
- ❌ Use periods at end of commit descriptions
|
|
669
|
+
- ❌ Use past tense: "added", "fixed", "implemented"
|
|
670
|
+
- ❌ Use Spanish or other languages (English only)
|
|
671
|
+
- ❌ Exceed 72 characters in commit message first line
|
|
672
|
+
- ❌ Use framework-specific scopes when detecting project type
|
|
673
|
+
|
|
674
|
+
### ALWAYS
|
|
675
|
+
|
|
676
|
+
- ✅ Execute analysis tools automatically (Step 1) WITHOUT confirmation
|
|
677
|
+
- ✅ Use `get_changed_files()`, `file_search()`, `grep_search()` in parallel
|
|
678
|
+
- ✅ Group files by functional relationship (Step 2)
|
|
679
|
+
- ✅ Detect dependencies between files (entity → service → controller)
|
|
680
|
+
- ✅ Generate atomic commits (one logical change per commit)
|
|
681
|
+
- ✅ Follow Conventional Commits format strictly
|
|
682
|
+
- ✅ Use imperative mood: "add", "implement", "fix", "update"
|
|
683
|
+
- ✅ Use specific scopes (entity name, module name, area)
|
|
684
|
+
- ✅ Include related tests and docs in feature commits
|
|
685
|
+
- ✅ Show ALL proposed `git commit` commands with `run_in_terminal`
|
|
686
|
+
- ✅ Wait for user "Allow" per commit
|
|
687
|
+
- ✅ Execute `git log` automatically after commits (NO confirmation)
|
|
688
|
+
- ✅ Show `git push` command and wait for "Allow"
|
|
689
|
+
- ✅ Validate commit messages before executing
|
|
690
|
+
- ✅ Detect project type and adapt scope naming accordingly
|
|
691
|
+
|
|
692
|
+
---
|
|
693
|
+
|
|
694
|
+
## 📊 Workflow Diagram
|
|
695
|
+
|
|
696
|
+
```mermaid
|
|
697
|
+
graph TD
|
|
698
|
+
A[User: /flow-dev-commit] --> B[Step 1: Auto-detect changes]
|
|
699
|
+
B --> C{Changes found?}
|
|
700
|
+
C -->|No| D[Stop: No changes]
|
|
701
|
+
C -->|Yes| E[Step 2: Group by functionality]
|
|
702
|
+
E --> F[Detect dependencies]
|
|
703
|
+
F --> G[Generate commit groups]
|
|
704
|
+
G --> H{For each group}
|
|
705
|
+
H --> I[Validate commit message]
|
|
706
|
+
I --> J[Show git command]
|
|
707
|
+
J --> K{User clicks Allow?}
|
|
708
|
+
K -->|Yes| L[Execute commit]
|
|
709
|
+
K -->|No| M[Skip commit]
|
|
710
|
+
L --> H
|
|
711
|
+
M --> H
|
|
712
|
+
H -->|All done| N[Step 4: Auto git log]
|
|
713
|
+
N --> O[Show git push command]
|
|
714
|
+
O --> P{User clicks Allow?}
|
|
715
|
+
P -->|Yes| Q[Push to remote]
|
|
716
|
+
P -->|No| R[End without push]
|
|
717
|
+
Q --> S[Done]
|
|
718
|
+
R --> S
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
---
|
|
722
|
+
|
|
723
|
+
## 🚀 Error Handling
|
|
724
|
+
|
|
725
|
+
### No Changes Detected
|
|
726
|
+
|
|
727
|
+
```
|
|
728
|
+
ℹ️ No changes to commit
|
|
729
|
+
|
|
730
|
+
Working directory is clean.
|
|
731
|
+
|
|
732
|
+
Run 'git status' to verify.
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
### Git Not Initialized
|
|
736
|
+
|
|
737
|
+
```
|
|
738
|
+
❌ Git repository not initialized
|
|
739
|
+
|
|
740
|
+
This project doesn't have a git repository.
|
|
741
|
+
|
|
742
|
+
Run: git init
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
### Invalid Commit Message
|
|
746
|
+
|
|
747
|
+
```
|
|
748
|
+
❌ Invalid commit message format
|
|
749
|
+
|
|
750
|
+
Message: feat users: add user management
|
|
751
|
+
↑
|
|
752
|
+
Missing scope parentheses
|
|
753
|
+
|
|
754
|
+
Correct: feat(users): add user management
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
### Push Failed
|
|
758
|
+
|
|
759
|
+
```
|
|
760
|
+
❌ Push failed
|
|
761
|
+
|
|
762
|
+
Error: Updates were rejected because the remote contains work that you do not have locally.
|
|
763
|
+
|
|
764
|
+
Suggestions:
|
|
765
|
+
1. Pull latest changes:
|
|
766
|
+
git pull origin [branch] --rebase
|
|
767
|
+
|
|
768
|
+
2. Resolve conflicts if any
|
|
769
|
+
|
|
770
|
+
3. Try again:
|
|
771
|
+
/flow-dev-commit
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
---
|
|
775
|
+
|
|
776
|
+
## 📚 References
|
|
777
|
+
|
|
778
|
+
- **Conventional Commits:** https://www.conventionalcommits.org/
|
|
779
|
+
- **Git Best Practices:** https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project
|
|
780
|
+
- **Atomic Commits:** https://www.freshconsulting.com/insights/blog/atomic-commits/
|
|
781
|
+
|
|
782
|
+
---
|
|
783
|
+
|
|
784
|
+
**Last Updated:** December 11, 2025
|
|
785
|
+
**Version:** 1.0.0
|
|
786
|
+
**Maintained by:** AI Flow Team
|