@atlashub/smartstack-cli 1.13.2 → 1.14.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.
- package/.documentation/agents.html +1 -1
- package/.documentation/apex.html +1 -1
- package/.documentation/business-analyse.html +1 -1
- package/.documentation/cli-commands.html +3 -3
- package/.documentation/commands.html +1 -1
- package/.documentation/efcore.html +1 -1
- package/.documentation/gitflow.html +1 -1
- package/.documentation/hooks.html +1 -1
- package/.documentation/index.html +1 -1
- package/.documentation/init.html +3 -3
- package/.documentation/installation.html +1001 -352
- package/.documentation/ralph-loop.html +1 -1
- package/.documentation/test-web.html +1 -1
- package/README.md +88 -20
- package/dist/index.js +276 -85
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/code-reviewer.md +163 -0
- package/templates/agents/efcore/db-deploy.md +25 -7
- package/templates/agents/efcore/db-reset.md +31 -10
- package/templates/agents/efcore/db-status.md +22 -5
- package/templates/agents/efcore/migration.md +69 -19
- package/templates/agents/gitflow/cleanup.md +8 -1
- package/templates/agents/gitflow/commit.md +7 -5
- package/templates/agents/gitflow/finish.md +6 -4
- package/templates/agents/gitflow/pr.md +8 -1
- package/templates/agents/gitflow/start.md +1 -1
- package/templates/commands/check-version.md +267 -0
- package/templates/commands/efcore/_shared.md +30 -1
- package/templates/commands/efcore/db-reset.md +18 -6
- package/templates/commands/gitflow/OPTIMIZATIONS.md +206 -0
- package/templates/commands/refactor.md +164 -0
- package/templates/project/DependencyInjection.Application.cs.template +25 -0
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
- package/templates/project/ExampleEntity.cs.template +116 -0
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
- package/templates/project/ExampleService.cs.template +146 -0
- package/templates/project/ExtensionsDbContext.cs.template +41 -0
- package/templates/project/IExtensionsDbContext.cs.template +22 -0
- package/templates/project/Program.cs.template +47 -0
- package/templates/project/README.md +79 -0
- package/templates/ralph/README.md +10 -8
- package/templates/ralph/ralph.config.yaml +2 -2
- package/templates/skills/_shared.md +44 -44
- package/templates/skills/ai-prompt/SKILL.md +55 -55
- package/templates/skills/apex/SKILL.md +235 -0
- package/templates/skills/apex/steps/step-00-init.md +203 -0
- package/templates/skills/apex/steps/step-01-analyze.md +210 -0
- package/templates/skills/apex/steps/step-02-plan.md +217 -0
- package/templates/skills/apex/steps/step-03-execute.md +178 -0
- package/templates/skills/apex/steps/step-04-validate.md +217 -0
- package/templates/skills/apex/steps/step-05-examine.md +207 -0
- package/templates/skills/apex/steps/step-06-resolve.md +181 -0
- package/templates/skills/apex/steps/step-07-tests.md +206 -0
- package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
- package/templates/skills/apex/templates/00-context.md +46 -0
- package/templates/skills/apex/templates/01-analyze.md +63 -0
- package/templates/skills/apex/templates/02-plan.md +63 -0
- package/templates/skills/apex/templates/03-execute.md +34 -0
- package/templates/skills/apex/templates/04-validate.md +61 -0
- package/templates/skills/apex/templates/05-examine.md +58 -0
- package/templates/skills/apex/templates/06-resolve.md +39 -0
- package/templates/skills/apex/templates/07-tests.md +56 -0
- package/templates/skills/apex/templates/08-run-tests.md +41 -0
- package/templates/skills/apex/templates/README.md +69 -0
- package/templates/skills/application/SKILL.md +50 -50
- package/templates/skills/application/templates-backend.md +25 -25
- package/templates/skills/application/templates-frontend.md +43 -43
- package/templates/skills/application/templates-i18n.md +29 -29
- package/templates/skills/application/templates-seed.md +77 -77
- package/templates/skills/business-analyse/SKILL.md +223 -0
- package/templates/skills/business-analyse/_shared.md +258 -0
- package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
- package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
- package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
- package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
- package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
- package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
- package/templates/skills/business-analyse/questionnaire.md +177 -177
- package/templates/skills/business-analyse/react/components.md +340 -0
- package/templates/skills/business-analyse/react/i18n-template.md +245 -0
- package/templates/skills/business-analyse/react/schema.md +151 -0
- package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
- package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
- package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
- package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
- package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
- package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
- package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
- package/templates/skills/business-analyse/templates/00-context.md +105 -0
- package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
- package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
- package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
- package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
- package/templates/skills/business-analyse/templates-frd.md +217 -217
- package/templates/skills/business-analyse/templates-react.md +26 -26
- package/templates/skills/controller/SKILL.md +141 -92
- package/templates/skills/controller/postman-templates.md +15 -15
- package/templates/skills/controller/steps/step-00-init.md +191 -0
- package/templates/skills/controller/steps/step-01-analyze.md +146 -0
- package/templates/skills/controller/steps/step-02-plan.md +176 -0
- package/templates/skills/controller/steps/step-03-generate.md +219 -0
- package/templates/skills/controller/steps/step-04-perms.md +219 -0
- package/templates/skills/controller/steps/step-05-validate.md +107 -0
- package/templates/skills/controller/templates.md +77 -77
- package/templates/skills/documentation/SKILL.md +79 -79
- package/templates/skills/feature-full/SKILL.md +38 -38
- package/templates/skills/gitflow/SKILL.md +277 -0
- package/templates/{commands → skills}/gitflow/_shared.md +20 -20
- package/templates/skills/gitflow/phases/abort.md +173 -0
- package/templates/skills/gitflow/phases/cleanup.md +226 -0
- package/templates/skills/gitflow/phases/status.md +178 -0
- package/templates/skills/gitflow/steps/step-commit.md +255 -0
- package/templates/skills/gitflow/steps/step-finish.md +255 -0
- package/templates/skills/gitflow/steps/step-init.md +209 -0
- package/templates/skills/gitflow/steps/step-merge.md +225 -0
- package/templates/skills/gitflow/steps/step-plan.md +208 -0
- package/templates/skills/gitflow/steps/step-pr.md +235 -0
- package/templates/skills/gitflow/steps/step-start.md +234 -0
- package/templates/skills/gitflow/steps/step-sync.md +200 -0
- package/templates/skills/gitflow/templates/config.json +53 -0
- package/templates/skills/notification/SKILL.md +51 -51
- package/templates/skills/ralph-loop/SKILL.md +228 -0
- package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
- package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
- package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
- package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
- package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
- package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
- package/templates/skills/review-code/SKILL.md +219 -0
- package/templates/skills/review-code/references/clean-code-principles.md +140 -0
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
- package/templates/skills/review-code/references/feedback-patterns.md +149 -0
- package/templates/skills/review-code/references/security-checklist.md +127 -0
- package/templates/skills/ui-components/SKILL.md +54 -54
- package/templates/skills/workflow/SKILL.md +46 -46
- package/templates/commands/ai-prompt.md +0 -315
- package/templates/commands/apex/1-analyze.md +0 -100
- package/templates/commands/apex/2-plan.md +0 -145
- package/templates/commands/apex/3-execute.md +0 -171
- package/templates/commands/apex/4-examine.md +0 -116
- package/templates/commands/apex/5-tasks.md +0 -209
- package/templates/commands/apex.md +0 -76
- package/templates/commands/application/create.md +0 -362
- package/templates/commands/application/templates-backend.md +0 -463
- package/templates/commands/application/templates-frontend.md +0 -517
- package/templates/commands/application/templates-i18n.md +0 -478
- package/templates/commands/application/templates-seed.md +0 -362
- package/templates/commands/application.md +0 -303
- package/templates/commands/business-analyse/0-orchestrate.md +0 -156
- package/templates/commands/business-analyse/1-init.md +0 -99
- package/templates/commands/business-analyse/2-discover.md +0 -143
- package/templates/commands/business-analyse/3-analyse.md +0 -106
- package/templates/commands/business-analyse/4-specify.md +0 -133
- package/templates/commands/business-analyse/5-validate.md +0 -132
- package/templates/commands/business-analyse/6-handoff.md +0 -157
- package/templates/commands/business-analyse/7-doc-html.md +0 -103
- package/templates/commands/business-analyse/_shared.md +0 -176
- package/templates/commands/business-analyse/bug.md +0 -118
- package/templates/commands/business-analyse/change-request.md +0 -144
- package/templates/commands/business-analyse/hotfix.md +0 -116
- package/templates/commands/business-analyse.md +0 -121
- package/templates/commands/controller/create.md +0 -216
- package/templates/commands/controller/postman-templates.md +0 -528
- package/templates/commands/controller/templates.md +0 -600
- package/templates/commands/controller.md +0 -337
- package/templates/commands/create/agent.md +0 -138
- package/templates/commands/create/command.md +0 -166
- package/templates/commands/create/hook.md +0 -234
- package/templates/commands/create/plugin.md +0 -329
- package/templates/commands/create/project.md +0 -508
- package/templates/commands/create/skill.md +0 -199
- package/templates/commands/create.md +0 -220
- package/templates/commands/documentation/module.md +0 -202
- package/templates/commands/documentation/templates.md +0 -432
- package/templates/commands/documentation.md +0 -190
- package/templates/commands/epct.md +0 -69
- package/templates/commands/explain.md +0 -186
- package/templates/commands/feature-full.md +0 -267
- package/templates/commands/gitflow/1-init.md +0 -188
- package/templates/commands/gitflow/10-start.md +0 -190
- package/templates/commands/gitflow/11-finish.md +0 -382
- package/templates/commands/gitflow/12-cleanup.md +0 -103
- package/templates/commands/gitflow/13-sync.md +0 -216
- package/templates/commands/gitflow/14-rebase.md +0 -251
- package/templates/commands/gitflow/2-status.md +0 -122
- package/templates/commands/gitflow/3-commit.md +0 -209
- package/templates/commands/gitflow/4-plan.md +0 -174
- package/templates/commands/gitflow/5-exec.md +0 -202
- package/templates/commands/gitflow/6-abort.md +0 -121
- package/templates/commands/gitflow/7-pull-request.md +0 -176
- package/templates/commands/gitflow/8-review.md +0 -113
- package/templates/commands/gitflow/9-merge.md +0 -157
- package/templates/commands/gitflow.md +0 -128
- package/templates/commands/implement.md +0 -663
- package/templates/commands/init.md +0 -567
- package/templates/commands/mcp-integration.md +0 -330
- package/templates/commands/notification.md +0 -129
- package/templates/commands/oneshot.md +0 -57
- package/templates/commands/quickstart.md +0 -154
- package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
- package/templates/commands/ralph-loop/help.md +0 -126
- package/templates/commands/ralph-loop/ralph-loop.md +0 -120
- package/templates/commands/review.md +0 -106
- package/templates/commands/workflow.md +0 -193
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verify version alignment between package.json and documentation
|
|
3
|
+
agent: action
|
|
4
|
+
model: haiku
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /check-version - Version Alignment Validator
|
|
8
|
+
|
|
9
|
+
Verifies that the version in `package.json` is aligned with all documentation files in `.documentation/`.
|
|
10
|
+
|
|
11
|
+
**USAGE:** Run before releases or as part of release process to ensure documentation is up-to-date.
|
|
12
|
+
|
|
13
|
+
**INTEGRATION:** Called automatically by `/gitflow:11-finish` for release branches.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## STEP 1: Read Package Version
|
|
18
|
+
|
|
19
|
+
**EXECUTE:**
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Get version from package.json
|
|
23
|
+
PKG_VERSION=$(cat package.json | grep -oP '"version":\s*"\K[^"]+' | head -1)
|
|
24
|
+
echo "Package version: $PKG_VERSION"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## STEP 2: Scan Documentation Files
|
|
30
|
+
|
|
31
|
+
**EXECUTE:**
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Find all HTML files with version-badge
|
|
35
|
+
echo ""
|
|
36
|
+
echo "Scanning documentation files..."
|
|
37
|
+
echo ""
|
|
38
|
+
|
|
39
|
+
# Extract versions from all doc files
|
|
40
|
+
for file in .documentation/*.html; do
|
|
41
|
+
if [ -f "$file" ]; then
|
|
42
|
+
DOC_VERSION=$(grep -oP 'version-badge">v?\K[^<]+' "$file" | head -1)
|
|
43
|
+
if [ -n "$DOC_VERSION" ]; then
|
|
44
|
+
FILENAME=$(basename "$file")
|
|
45
|
+
# Remove 'v' prefix if present for comparison
|
|
46
|
+
DOC_VERSION_CLEAN=${DOC_VERSION#v}
|
|
47
|
+
|
|
48
|
+
if [ "$DOC_VERSION_CLEAN" = "$PKG_VERSION" ]; then
|
|
49
|
+
echo "OK $FILENAME: v$DOC_VERSION_CLEAN"
|
|
50
|
+
else
|
|
51
|
+
echo "MISMATCH $FILENAME: v$DOC_VERSION_CLEAN (expected v$PKG_VERSION)"
|
|
52
|
+
fi
|
|
53
|
+
fi
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## STEP 3: Generate Report
|
|
61
|
+
|
|
62
|
+
**EXECUTE:**
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
echo ""
|
|
66
|
+
echo "====================================================================="
|
|
67
|
+
echo " VERSION ALIGNMENT CHECK"
|
|
68
|
+
echo "====================================================================="
|
|
69
|
+
echo ""
|
|
70
|
+
|
|
71
|
+
PKG_VERSION=$(cat package.json | grep -oP '"version":\s*"\K[^"]+' | head -1)
|
|
72
|
+
MISMATCH_COUNT=0
|
|
73
|
+
TOTAL_COUNT=0
|
|
74
|
+
|
|
75
|
+
for file in .documentation/*.html; do
|
|
76
|
+
if [ -f "$file" ]; then
|
|
77
|
+
DOC_VERSION=$(grep -oP 'version-badge">v?\K[^<]+' "$file" | head -1)
|
|
78
|
+
if [ -n "$DOC_VERSION" ]; then
|
|
79
|
+
TOTAL_COUNT=$((TOTAL_COUNT + 1))
|
|
80
|
+
DOC_VERSION_CLEAN=${DOC_VERSION#v}
|
|
81
|
+
if [ "$DOC_VERSION_CLEAN" != "$PKG_VERSION" ]; then
|
|
82
|
+
MISMATCH_COUNT=$((MISMATCH_COUNT + 1))
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
fi
|
|
86
|
+
done
|
|
87
|
+
|
|
88
|
+
echo "Package version: v$PKG_VERSION"
|
|
89
|
+
echo "Documentation files checked: $TOTAL_COUNT"
|
|
90
|
+
echo "Mismatches found: $MISMATCH_COUNT"
|
|
91
|
+
echo ""
|
|
92
|
+
|
|
93
|
+
if [ "$MISMATCH_COUNT" -eq 0 ]; then
|
|
94
|
+
echo "STATUS: PASSED - All versions aligned"
|
|
95
|
+
else
|
|
96
|
+
echo "STATUS: FAILED - Version mismatches detected"
|
|
97
|
+
echo ""
|
|
98
|
+
echo "Run /check-version:fix to auto-update documentation"
|
|
99
|
+
fi
|
|
100
|
+
echo ""
|
|
101
|
+
echo "====================================================================="
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Conditional: If Mismatches Detected
|
|
107
|
+
|
|
108
|
+
**IF** `MISMATCH_COUNT > 0`:
|
|
109
|
+
|
|
110
|
+
Use `AskUserQuestion` tool to ask:
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"questions": [{
|
|
115
|
+
"question": "Des fichiers de documentation ont des versions obsoletes. Voulez-vous les mettre a jour automatiquement ?",
|
|
116
|
+
"header": "Fix versions",
|
|
117
|
+
"options": [
|
|
118
|
+
{
|
|
119
|
+
"label": "Oui, mettre a jour (Recommended)",
|
|
120
|
+
"description": "Met a jour tous les fichiers avec la version actuelle"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"label": "Non, ignorer",
|
|
124
|
+
"description": "Continuer sans corriger les versions"
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"multiSelect": false
|
|
128
|
+
}]
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**IF** user selects "Oui":
|
|
133
|
+
- Execute the fix command below
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## /check-version:fix - Auto-Update Documentation Versions
|
|
138
|
+
|
|
139
|
+
**EXECUTE:**
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
PKG_VERSION=$(cat package.json | grep -oP '"version":\s*"\K[^"]+' | head -1)
|
|
143
|
+
|
|
144
|
+
echo "Updating documentation to v$PKG_VERSION..."
|
|
145
|
+
echo ""
|
|
146
|
+
|
|
147
|
+
UPDATED_COUNT=0
|
|
148
|
+
|
|
149
|
+
for file in .documentation/*.html; do
|
|
150
|
+
if [ -f "$file" ]; then
|
|
151
|
+
DOC_VERSION=$(grep -oP 'version-badge">v?\K[^<]+' "$file" | head -1)
|
|
152
|
+
if [ -n "$DOC_VERSION" ]; then
|
|
153
|
+
DOC_VERSION_CLEAN=${DOC_VERSION#v}
|
|
154
|
+
if [ "$DOC_VERSION_CLEAN" != "$PKG_VERSION" ]; then
|
|
155
|
+
# Update version in file
|
|
156
|
+
sed -i "s/version-badge\">v[^<]*/version-badge\">v$PKG_VERSION/" "$file"
|
|
157
|
+
UPDATED_COUNT=$((UPDATED_COUNT + 1))
|
|
158
|
+
echo "UPDATED $(basename "$file"): v$DOC_VERSION_CLEAN -> v$PKG_VERSION"
|
|
159
|
+
fi
|
|
160
|
+
fi
|
|
161
|
+
fi
|
|
162
|
+
done
|
|
163
|
+
|
|
164
|
+
echo ""
|
|
165
|
+
if [ "$UPDATED_COUNT" -gt 0 ]; then
|
|
166
|
+
echo "OK $UPDATED_COUNT file(s) updated"
|
|
167
|
+
echo ""
|
|
168
|
+
echo "Files modified:"
|
|
169
|
+
git status --porcelain .documentation/*.html | grep "^ M" | sed 's/^ M / /'
|
|
170
|
+
echo ""
|
|
171
|
+
echo "Next steps:"
|
|
172
|
+
echo " 1. Review changes: git diff .documentation/"
|
|
173
|
+
echo " 2. Commit: /gitflow:commit"
|
|
174
|
+
else
|
|
175
|
+
echo "OK No files needed updating"
|
|
176
|
+
fi
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## /check-version:report - Detailed Report
|
|
182
|
+
|
|
183
|
+
**EXECUTE:**
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
PKG_VERSION=$(cat package.json | grep -oP '"version":\s*"\K[^"]+' | head -1)
|
|
187
|
+
|
|
188
|
+
echo "====================================================================="
|
|
189
|
+
echo " VERSION ALIGNMENT DETAILED REPORT"
|
|
190
|
+
echo "====================================================================="
|
|
191
|
+
echo ""
|
|
192
|
+
echo "Package: @atlashub/smartstack-cli"
|
|
193
|
+
echo "Current version: v$PKG_VERSION"
|
|
194
|
+
echo ""
|
|
195
|
+
echo "---------------------------------------------------------------------"
|
|
196
|
+
echo "FILE | DOC VERSION | STATUS"
|
|
197
|
+
echo "---------------------------------------------------------------------"
|
|
198
|
+
|
|
199
|
+
for file in .documentation/*.html; do
|
|
200
|
+
if [ -f "$file" ]; then
|
|
201
|
+
DOC_VERSION=$(grep -oP 'version-badge">v?\K[^<]+' "$file" | head -1)
|
|
202
|
+
if [ -n "$DOC_VERSION" ]; then
|
|
203
|
+
FILENAME=$(basename "$file")
|
|
204
|
+
DOC_VERSION_CLEAN=${DOC_VERSION#v}
|
|
205
|
+
|
|
206
|
+
# Pad filename to 30 chars
|
|
207
|
+
PADDED_NAME=$(printf "%-28s" "$FILENAME")
|
|
208
|
+
|
|
209
|
+
if [ "$DOC_VERSION_CLEAN" = "$PKG_VERSION" ]; then
|
|
210
|
+
printf "%s | v%-10s | OK\n" "$PADDED_NAME" "$DOC_VERSION_CLEAN"
|
|
211
|
+
else
|
|
212
|
+
printf "%s | v%-10s | MISMATCH\n" "$PADDED_NAME" "$DOC_VERSION_CLEAN"
|
|
213
|
+
fi
|
|
214
|
+
fi
|
|
215
|
+
fi
|
|
216
|
+
done
|
|
217
|
+
|
|
218
|
+
echo "---------------------------------------------------------------------"
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Integration with GitFlow Release
|
|
224
|
+
|
|
225
|
+
This command is automatically called during `/gitflow:11-finish` for release branches.
|
|
226
|
+
|
|
227
|
+
**In release finish workflow:**
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Before creating tag, verify versions are aligned
|
|
231
|
+
if [[ "$TYPE" = "release" ]]; then
|
|
232
|
+
/check-version
|
|
233
|
+
|
|
234
|
+
# If mismatches, prompt to fix before continuing
|
|
235
|
+
if [ "$MISMATCH_COUNT" -gt 0 ]; then
|
|
236
|
+
echo "WARNING: Documentation versions not aligned"
|
|
237
|
+
echo "Fix with: /check-version:fix"
|
|
238
|
+
# Block release until fixed
|
|
239
|
+
fi
|
|
240
|
+
fi
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Usage Examples
|
|
246
|
+
|
|
247
|
+
| Command | Description |
|
|
248
|
+
|---------|-------------|
|
|
249
|
+
| `/check-version` | Check version alignment (interactive) |
|
|
250
|
+
| `/check-version:fix` | Auto-update all doc files |
|
|
251
|
+
| `/check-version:report` | Detailed report without prompts |
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Exit Codes
|
|
256
|
+
|
|
257
|
+
| Code | Meaning |
|
|
258
|
+
|------|---------|
|
|
259
|
+
| 0 | All versions aligned |
|
|
260
|
+
| 1 | Mismatches detected (blocking for releases) |
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Files Checked
|
|
265
|
+
|
|
266
|
+
- `.documentation/*.html` - All HTML documentation files
|
|
267
|
+
- Looks for `<span class="version-badge">vX.Y.Z</span>` pattern
|
|
@@ -63,6 +63,33 @@ block_production() {
|
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
+
## Backup Base de Données
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
backup_database() {
|
|
70
|
+
BACKUP_DIR=".claude/gitflow/backup/database"
|
|
71
|
+
mkdir -p "$BACKUP_DIR"
|
|
72
|
+
|
|
73
|
+
BACKUP_FILE="${BACKUP_DIR}/${DATABASE_NAME}_$(date +%Y%m%d_%H%M%S).bak"
|
|
74
|
+
|
|
75
|
+
echo "Backup: $DATABASE_NAME → $BACKUP_FILE"
|
|
76
|
+
|
|
77
|
+
sqlcmd -S "$SERVER_NAME" -E -Q "BACKUP DATABASE [$DATABASE_NAME] TO DISK='$BACKUP_FILE' WITH FORMAT, INIT, COMPRESSION"
|
|
78
|
+
|
|
79
|
+
if [ $? -eq 0 ]; then
|
|
80
|
+
echo "✓ Backup créé: $BACKUP_FILE"
|
|
81
|
+
BACKUP_PATH="$BACKUP_FILE"
|
|
82
|
+
else
|
|
83
|
+
echo "⚠️ Backup échoué (sqlcmd non disponible ou erreur SQL)"
|
|
84
|
+
BACKUP_PATH="none"
|
|
85
|
+
fi
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Prérequis:** `sqlcmd` doit être installé et accessible dans le PATH.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
66
93
|
## Détermination Branche Parente
|
|
67
94
|
|
|
68
95
|
**Règle d'or:** Le ModelSnapshot de référence doit venir de la branche parente (état validé).
|
|
@@ -150,9 +177,11 @@ Pattern: `{context}_v{version}_{sequence}_{Description}`
|
|
|
150
177
|
| ❌ INTERDIT | ✅ OBLIGATOIRE |
|
|
151
178
|
|-------------|----------------|
|
|
152
179
|
| Scripts SQL (.sql) dans le repo | `dotnet ef database update` |
|
|
153
|
-
| `sqlcmd`
|
|
180
|
+
| `sqlcmd` pour DDL/DML | `dotnet ef migrations add` |
|
|
154
181
|
| `migrationBuilder.Sql()` INSERT | `HasData()` pour seeding |
|
|
155
182
|
|
|
183
|
+
**Exception:** `sqlcmd` est autorisé UNIQUEMENT pour `BACKUP DATABASE` (backup avant reset).
|
|
184
|
+
|
|
156
185
|
---
|
|
157
186
|
|
|
158
187
|
## MCP Tool Reference
|
|
@@ -15,9 +15,11 @@ model: sonnet
|
|
|
15
15
|
|
|
16
16
|
| ❌ INTERDIT | ✅ OBLIGATOIRE |
|
|
17
17
|
|-------------|----------------|
|
|
18
|
-
| `sqlcmd`
|
|
18
|
+
| `sqlcmd` pour DDL/DML | `dotnet ef database drop` |
|
|
19
19
|
| Scripts .sql dans repo | `dotnet ef database update` |
|
|
20
|
-
|
|
|
20
|
+
| INSERT via scripts | `HasData()` pour seeding |
|
|
21
|
+
|
|
22
|
+
**Exception:** `sqlcmd` est autorisé UNIQUEMENT pour `BACKUP DATABASE`.
|
|
21
23
|
|
|
22
24
|
---
|
|
23
25
|
|
|
@@ -50,23 +52,32 @@ AskUserQuestion({
|
|
|
50
52
|
|
|
51
53
|
---
|
|
52
54
|
|
|
53
|
-
## STEP 2: Backup (
|
|
55
|
+
## STEP 2: Backup (automatique si configuré)
|
|
56
|
+
|
|
57
|
+
Lire config: `.claude/gitflow/config.json` → `efcore.database.backupBeforeReset`
|
|
54
58
|
|
|
55
59
|
```javascript
|
|
56
60
|
AskUserQuestion({
|
|
57
61
|
questions: [{
|
|
58
|
-
question: "Backup
|
|
62
|
+
question: "Backup de la base '" + DATABASE_NAME + "' avant suppression?",
|
|
59
63
|
header: "Backup",
|
|
60
64
|
options: [
|
|
65
|
+
{ label: "Oui, backup auto (Recommandé)", description: "Créer .bak via sqlcmd" },
|
|
61
66
|
{ label: "Non", description: "Données dev uniquement - continuer" },
|
|
62
|
-
{ label: "Backup manuel", description: "Via SSMS/Azure Portal" }
|
|
67
|
+
{ label: "Backup manuel", description: "Via SSMS/Azure Portal (stoppe ici)" }
|
|
63
68
|
],
|
|
64
69
|
multiSelect: false
|
|
65
70
|
}]
|
|
66
71
|
})
|
|
67
72
|
```
|
|
68
73
|
|
|
69
|
-
Si backup
|
|
74
|
+
**Si "Oui, backup auto":**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
backup_database # Fonction de _shared.md
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Si "Backup manuel":** Afficher instructions et stopper.
|
|
70
81
|
|
|
71
82
|
---
|
|
72
83
|
|
|
@@ -109,6 +120,7 @@ AskUserQuestion({
|
|
|
109
120
|
```
|
|
110
121
|
RESET - {DATABASE_NAME}
|
|
111
122
|
├── Environnement: {SELECTED_ENV}
|
|
123
|
+
├── Backup: {BACKUP_PATH|none}
|
|
112
124
|
├── Opérations: ✓ Drop, ✓ Create, ✓ {N} migrations
|
|
113
125
|
├── Conformité: ✓ EF Core CLI uniquement
|
|
114
126
|
└── Prochains: /efcore:db-status, /efcore:db-seed
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# GitFlow Optimizations - Resume
|
|
2
|
+
|
|
3
|
+
> **Date:** 2026-01-20
|
|
4
|
+
> **Objectif:** Reduire le temps d'execution des commandes GitFlow de ~70%
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Optimisations Implementees
|
|
9
|
+
|
|
10
|
+
### 1. Fonctions Partagees (`_shared.md`)
|
|
11
|
+
|
|
12
|
+
**Fichier cree:** `templates/commands/gitflow/_shared.md`
|
|
13
|
+
|
|
14
|
+
Centralise les fonctions reutilisables pour eviter la duplication:
|
|
15
|
+
|
|
16
|
+
| Fonction | Usage | Gain |
|
|
17
|
+
|----------|-------|------|
|
|
18
|
+
| `get_current_branch()` | Detection robuste de branche | ~66% |
|
|
19
|
+
| `get_version_info()` | Version + tags en 1 appel | ~75% |
|
|
20
|
+
| `get_sync_status()` | Statut sync local/remote | ~70% |
|
|
21
|
+
| `collect_repo_data_parallel()` | Collecte parallele | ~60-70% |
|
|
22
|
+
| `read_gitflow_config()` | Config avec cache | ~90% |
|
|
23
|
+
| `detect_worktree_mode()` | Detection auto structure | Fiabilite |
|
|
24
|
+
| `get_worktree_path()` | Chemin worktree standard | Consistance |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### 2. Parallelisation Git (`2-status.md`, `10-start.md`, `11-finish.md`)
|
|
29
|
+
|
|
30
|
+
**Avant:**
|
|
31
|
+
```bash
|
|
32
|
+
# Sequentiel - ~8 secondes
|
|
33
|
+
git fetch --all
|
|
34
|
+
git for-each-ref refs/heads
|
|
35
|
+
git for-each-ref refs/remotes
|
|
36
|
+
git for-each-ref refs/tags
|
|
37
|
+
git worktree list
|
|
38
|
+
git branch -vv
|
|
39
|
+
git status
|
|
40
|
+
# + boucles for pour chaque branche
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Apres:**
|
|
44
|
+
```bash
|
|
45
|
+
# Parallele - ~2 secondes
|
|
46
|
+
{
|
|
47
|
+
git for-each-ref refs/heads > /tmp/local &
|
|
48
|
+
git for-each-ref refs/remotes > /tmp/remote &
|
|
49
|
+
git for-each-ref refs/tags > /tmp/tags &
|
|
50
|
+
git worktree list > /tmp/worktrees &
|
|
51
|
+
git status --porcelain > /tmp/status &
|
|
52
|
+
wait
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Gain:** ~70% du temps de collecte
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
### 3. Mode Fast (`2-status.md`)
|
|
61
|
+
|
|
62
|
+
**Nouveau:** `/gitflow:status --fast`
|
|
63
|
+
|
|
64
|
+
Output compact en ~1 seconde:
|
|
65
|
+
```
|
|
66
|
+
[develop] clean | v1.5.0 | dev->main:+5 | main->dev:+0 | sync:UP-TO-DATE
|
|
67
|
+
-> /gitflow:start release (5 commits prets)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### 4. Consolidation des Questions (`10-start.md`)
|
|
73
|
+
|
|
74
|
+
**Avant:** 6+ `AskUserQuestion` sequentiels
|
|
75
|
+
- Type de branche
|
|
76
|
+
- Divergence main (release)
|
|
77
|
+
- Migrations EF Core (release)
|
|
78
|
+
- Version (release)
|
|
79
|
+
- Nom de branche
|
|
80
|
+
- Working directory dirty
|
|
81
|
+
|
|
82
|
+
**Apres:** 1-2 questions maximum
|
|
83
|
+
- Question unique avec options dynamiques
|
|
84
|
+
- Execution directe si arguments fournis
|
|
85
|
+
|
|
86
|
+
**Gain:** ~70% du temps d'interaction
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### 5. Optimisation des Agents
|
|
91
|
+
|
|
92
|
+
| Agent | Avant | Apres | Raison |
|
|
93
|
+
|-------|-------|-------|--------|
|
|
94
|
+
| `gitflow-finish` | sonnet | **haiku** | Actions predefinies |
|
|
95
|
+
| `gitflow-commit` | sonnet | **haiku** | Validation simple |
|
|
96
|
+
| `gitflow-exec` | sonnet | sonnet | Gestion conflits complexe |
|
|
97
|
+
| `gitflow-status` | haiku | haiku | OK |
|
|
98
|
+
| `gitflow-start` | haiku | haiku | OK |
|
|
99
|
+
| `gitflow-pr` | haiku | haiku | OK |
|
|
100
|
+
|
|
101
|
+
**Gain latence:** ~30-50% pour les agents optimises
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Gains Totaux par Commande
|
|
106
|
+
|
|
107
|
+
| Commande | Avant | Apres | Gain |
|
|
108
|
+
|----------|-------|-------|------|
|
|
109
|
+
| `/gitflow:status` | ~8-12s | ~2-3s | **~70%** |
|
|
110
|
+
| `/gitflow:status --fast` | N/A | ~1s | **Nouveau** |
|
|
111
|
+
| `/gitflow:start` (interactif) | ~25s | ~8s | **~65%** |
|
|
112
|
+
| `/gitflow:start feature xxx` | ~15s | ~5s | **~65%** |
|
|
113
|
+
| `/gitflow:finish` | ~15s | ~5s | **~65%** |
|
|
114
|
+
| `/gitflow:commit` | ~8s | ~4s | **~50%** |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Principes Appliques
|
|
119
|
+
|
|
120
|
+
### 1. Collecte Avant Affichage
|
|
121
|
+
- Executer TOUTES les commandes git AVANT de generer l'output
|
|
122
|
+
- Utiliser des fichiers temporaires ou variables pour stocker
|
|
123
|
+
|
|
124
|
+
### 2. Parallelisation Aggressive
|
|
125
|
+
- Utiliser `&` et `wait` pour les commandes independantes
|
|
126
|
+
- Limiter le parallelisme avec `wait -n` si necessaire
|
|
127
|
+
|
|
128
|
+
### 3. Single-Pass Parsing
|
|
129
|
+
- Parser les donnees une seule fois
|
|
130
|
+
- Stocker en memoire pour reutilisation
|
|
131
|
+
|
|
132
|
+
### 4. Cache des Donnees Frequentes
|
|
133
|
+
- Config GitFlow (variable globale)
|
|
134
|
+
- Tags Git (valide pendant la session)
|
|
135
|
+
- Version (calculee une fois)
|
|
136
|
+
|
|
137
|
+
### 5. Questions Minimales
|
|
138
|
+
- Consolider les questions en 1-2 appels
|
|
139
|
+
- Utiliser les arguments directs quand possible
|
|
140
|
+
- Options dynamiques basees sur le contexte
|
|
141
|
+
|
|
142
|
+
### 6. Modeles Adaptes
|
|
143
|
+
- **haiku** pour les taches simples/predefinies
|
|
144
|
+
- **sonnet** uniquement pour le raisonnement complexe
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Fichiers Modifies
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
templates/commands/gitflow/
|
|
152
|
+
_shared.md # NOUVEAU - Fonctions partagees
|
|
153
|
+
2-status.md # Parallelisation + mode fast
|
|
154
|
+
10-start.md # Consolidation questions
|
|
155
|
+
11-finish.md # Parallelisation scan + haiku
|
|
156
|
+
OPTIMIZATIONS.md # NOUVEAU - Cette documentation
|
|
157
|
+
|
|
158
|
+
templates/agents/gitflow/
|
|
159
|
+
finish.md # sonnet -> haiku
|
|
160
|
+
commit.md # sonnet -> haiku
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Compatibilite
|
|
166
|
+
|
|
167
|
+
**Aucun breaking change:**
|
|
168
|
+
- Les commandes gardent la meme interface
|
|
169
|
+
- Les options existantes fonctionnent
|
|
170
|
+
- Nouveaux modes (`--fast`) sont optionnels
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Tests Recommandes
|
|
175
|
+
|
|
176
|
+
1. `/gitflow:status` - Verifier temps < 3s
|
|
177
|
+
2. `/gitflow:status --fast` - Verifier temps < 1s
|
|
178
|
+
3. `/gitflow:start feature test` - Verifier temps < 5s
|
|
179
|
+
4. `/gitflow:start` (interactif) - Verifier 1-2 questions max
|
|
180
|
+
5. `/gitflow:finish` - Verifier scan parallele
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Metriques de Suivi
|
|
185
|
+
|
|
186
|
+
Pour mesurer les performances:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# Temps d'execution
|
|
190
|
+
time /gitflow:status
|
|
191
|
+
|
|
192
|
+
# Avec mode fast
|
|
193
|
+
time /gitflow:status --fast
|
|
194
|
+
|
|
195
|
+
# Creation directe
|
|
196
|
+
time /gitflow:start feature test-perf --no-worktree
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Ameliorations Futures Possibles
|
|
202
|
+
|
|
203
|
+
1. **Cache persistant** - Stocker tags/config entre sessions
|
|
204
|
+
2. **Pre-fetch** - Fetch en background au demarrage
|
|
205
|
+
3. **Incremental status** - Ne collecter que les changements
|
|
206
|
+
4. **Batch PR checks** - API GitHub/Azure en batch
|