@atlashub/smartstack-cli 1.11.0 → 1.13.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/.documentation/agents.html +7 -2
- package/.documentation/apex.html +7 -2
- package/.documentation/business-analyse.html +7 -2
- package/.documentation/cli-commands.html +871 -0
- package/.documentation/commands.html +7 -2
- package/.documentation/efcore.html +7 -2
- package/.documentation/gitflow.html +7 -2
- package/.documentation/hooks.html +7 -2
- package/.documentation/index.html +7 -2
- package/.documentation/init.html +7 -2
- package/.documentation/installation.html +7 -2
- package/.documentation/ralph-loop.html +7 -2
- package/.documentation/test-web.html +7 -2
- package/dist/index.js +1932 -336
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
- package/templates/agents/efcore/squash.md +67 -31
- package/templates/agents/gitflow/finish.md +68 -56
- package/templates/commands/business-analyse/0-orchestrate.md +72 -556
- package/templates/commands/business-analyse/1-init.md +23 -193
- package/templates/commands/business-analyse/2-discover.md +85 -462
- package/templates/commands/business-analyse/3-analyse.md +40 -342
- package/templates/commands/business-analyse/4-specify.md +72 -537
- package/templates/commands/business-analyse/5-validate.md +43 -237
- package/templates/commands/business-analyse/6-handoff.md +93 -682
- package/templates/commands/business-analyse/7-doc-html.md +45 -544
- package/templates/commands/business-analyse/_shared.md +176 -0
- package/templates/commands/business-analyse/bug.md +50 -257
- package/templates/commands/business-analyse/change-request.md +59 -283
- package/templates/commands/business-analyse/hotfix.md +36 -120
- package/templates/commands/business-analyse.md +55 -574
- package/templates/commands/efcore/_shared.md +206 -0
- package/templates/commands/efcore/conflicts.md +39 -201
- package/templates/commands/efcore/db-deploy.md +28 -237
- package/templates/commands/efcore/db-reset.md +41 -390
- package/templates/commands/efcore/db-seed.md +44 -323
- package/templates/commands/efcore/db-status.md +31 -210
- package/templates/commands/efcore/migration.md +45 -368
- package/templates/commands/efcore/rebase-snapshot.md +38 -241
- package/templates/commands/efcore/scan.md +35 -204
- package/templates/commands/efcore/squash.md +158 -251
- package/templates/commands/efcore.md +49 -177
- package/templates/commands/gitflow/1-init.md +94 -1318
- package/templates/commands/gitflow/10-start.md +86 -990
- package/templates/commands/gitflow/11-finish.md +264 -454
- package/templates/commands/gitflow/12-cleanup.md +40 -213
- package/templates/commands/gitflow/2-status.md +51 -386
- package/templates/commands/gitflow/3-commit.md +108 -801
- package/templates/commands/gitflow/4-plan.md +42 -13
- package/templates/commands/gitflow/5-exec.md +60 -5
- package/templates/commands/gitflow/6-abort.md +54 -277
- package/templates/commands/gitflow/7-pull-request.md +74 -717
- package/templates/commands/gitflow/8-review.md +51 -178
- package/templates/commands/gitflow/9-merge.md +74 -404
- package/templates/commands/gitflow/_shared.md +196 -0
- package/templates/commands/quickstart.md +154 -0
- package/templates/commands/ralph-loop/ralph-loop.md +104 -2
- package/templates/hooks/hooks.json +13 -0
- package/templates/hooks/ralph-mcp-logger.sh +46 -0
- package/templates/hooks/ralph-session-end.sh +69 -0
- package/templates/ralph/README.md +91 -0
- package/templates/ralph/ralph.config.yaml +113 -0
- package/templates/scripts/setup-ralph-loop.sh +173 -0
- package/templates/skills/_shared.md +117 -0
- package/templates/skills/ai-prompt/SKILL.md +87 -654
- package/templates/skills/application/SKILL.md +76 -499
- package/templates/skills/controller/SKILL.md +38 -165
- package/templates/skills/documentation/SKILL.md +2 -1
- package/templates/skills/feature-full/SKILL.md +107 -732
- package/templates/skills/notification/SKILL.md +85 -474
- package/templates/skills/ui-components/SKILL.md +62 -762
- package/templates/skills/workflow/SKILL.md +85 -489
- package/templates/commands/gitflow/rescue.md +0 -867
- package/templates/skills/business-analyse/SKILL.md +0 -191
|
@@ -6,226 +6,100 @@ model: haiku
|
|
|
6
6
|
|
|
7
7
|
# Phase 8: REVIEW - Review PR avec checklist
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**Argument:** `$ARGUMENTS` = numéro PR (requis)
|
|
10
10
|
|
|
11
|
-
**
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Detection du provider
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
REMOTE_URL=$(git remote get-url origin 2>/dev/null || echo "")
|
|
19
|
-
|
|
20
|
-
if [[ "$REMOTE_URL" == *"dev.azure.com"* ]] || [[ "$REMOTE_URL" == *"visualstudio.com"* ]]; then
|
|
21
|
-
GIT_PROVIDER="azuredevops"
|
|
22
|
-
if [[ "$REMOTE_URL" =~ dev\.azure\.com/([^/]+)/([^/]+)/_git/([^/]+) ]]; then
|
|
23
|
-
AZURE_ORG="${BASH_REMATCH[1]}"
|
|
24
|
-
AZURE_PROJECT="${BASH_REMATCH[2]}"
|
|
25
|
-
AZURE_REPO="${BASH_REMATCH[3]}"
|
|
26
|
-
fi
|
|
27
|
-
elif [[ "$REMOTE_URL" == *"github.com"* ]]; then
|
|
28
|
-
GIT_PROVIDER="github"
|
|
29
|
-
else
|
|
30
|
-
GIT_PROVIDER="unknown"
|
|
31
|
-
fi
|
|
32
|
-
```
|
|
11
|
+
> **Ref:** Fonction `detect_git_provider()` dans [_shared.md](_shared.md)
|
|
33
12
|
|
|
34
13
|
---
|
|
35
14
|
|
|
36
15
|
## Chargement PR
|
|
37
16
|
|
|
38
17
|
```bash
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# Recuperer les fichiers changes
|
|
46
|
-
az repos pr diff --id {number} \
|
|
47
|
-
--organization "https://dev.azure.com/$AZURE_ORG" \
|
|
48
|
-
--project "$AZURE_PROJECT"
|
|
49
|
-
else
|
|
50
|
-
# Recuperer infos PR GitHub
|
|
51
|
-
gh pr view {number} --json title,body,files,commits,reviews,checks
|
|
52
|
-
|
|
53
|
-
# Recuperer diff
|
|
54
|
-
gh pr diff {number}
|
|
55
|
-
fi
|
|
18
|
+
# GitHub
|
|
19
|
+
gh pr view {number} --json title,body,files,commits,reviews,checks
|
|
20
|
+
gh pr diff {number}
|
|
21
|
+
|
|
22
|
+
# Azure DevOps
|
|
23
|
+
az repos pr show --id {number} --organization "https://dev.azure.com/$AZURE_ORG" --project "$AZURE_PROJECT"
|
|
56
24
|
```
|
|
57
25
|
|
|
58
26
|
---
|
|
59
27
|
|
|
60
28
|
## Checklist Review
|
|
61
29
|
|
|
62
|
-
###
|
|
30
|
+
### Code Quality
|
|
63
31
|
|
|
64
|
-
| Check |
|
|
32
|
+
| Check | Critère | Poids |
|
|
65
33
|
|-------|---------|-------|
|
|
66
|
-
|
|
|
34
|
+
| Lisibilité | Noms clairs, structure logique | HIGH |
|
|
67
35
|
| DRY | Pas de duplication | MEDIUM |
|
|
68
|
-
| SOLID | Principes
|
|
69
|
-
|
|
|
36
|
+
| SOLID | Principes respectés | MEDIUM |
|
|
37
|
+
| Complexité | Méthodes < 20 lignes | LOW |
|
|
70
38
|
|
|
71
|
-
###
|
|
39
|
+
### Patterns .NET
|
|
72
40
|
|
|
73
41
|
| Check | Validation |
|
|
74
42
|
|-------|------------|
|
|
75
43
|
| Async/Await | Pas de `.Result` ou `.Wait()` |
|
|
76
|
-
|
|
|
77
|
-
| Null
|
|
78
|
-
| Exceptions |
|
|
79
|
-
|
|
80
|
-
### 3. EF Core (si migrations)
|
|
81
|
-
|
|
82
|
-
| Check | Validation | Severite |
|
|
83
|
-
|-------|------------|----------|
|
|
84
|
-
| 3 fichiers | Migration + Designer + ModelSnapshot | BLOQUANT |
|
|
85
|
-
| Naming | Convention `{Date}_{Description}` | WARNING |
|
|
86
|
-
| Down() | Methode Down implementee | WARNING |
|
|
87
|
-
| Indexes | Sur colonnes FK et filtres frequents | INFO |
|
|
88
|
-
| Data loss | Pas de DropColumn sans backup | BLOQUANT |
|
|
89
|
-
|
|
90
|
-
### 4. Tests
|
|
91
|
-
|
|
92
|
-
| Check | Critere |
|
|
93
|
-
|-------|---------|
|
|
94
|
-
| Coverage | Nouveau code couvert |
|
|
95
|
-
| Naming | `{Method}_Should_{Behavior}_When_{Condition}` |
|
|
96
|
-
| Arrange/Act/Assert | Structure claire |
|
|
97
|
-
| Mocks | Pas de dependances reelles |
|
|
98
|
-
|
|
99
|
-
### 5. Security
|
|
100
|
-
|
|
101
|
-
| Check | Pattern a detecter | Severite |
|
|
102
|
-
|-------|-------------------|----------|
|
|
103
|
-
| Secrets | `password`, `apikey`, `secret` hardcodes | BLOQUANT |
|
|
104
|
-
| SQL Injection | String concat dans queries | BLOQUANT |
|
|
105
|
-
| XSS | `@Html.Raw()` sans sanitization | HIGH |
|
|
106
|
-
| Auth | `[AllowAnonymous]` sur endpoints sensibles | HIGH |
|
|
44
|
+
| DI | Pas de `new Service()` |
|
|
45
|
+
| Null | `?.` ou `??` ou `required` |
|
|
46
|
+
| Exceptions | Spécifiques, pas `catch (Exception)` |
|
|
107
47
|
|
|
108
|
-
|
|
48
|
+
### EF Core (si migrations)
|
|
109
49
|
|
|
110
|
-
|
|
50
|
+
| Check | Sévérité |
|
|
51
|
+
|-------|----------|
|
|
52
|
+
| 3 fichiers complets | BLOQUANT |
|
|
53
|
+
| Naming convention | WARNING |
|
|
54
|
+
| Down() implémenté | WARNING |
|
|
55
|
+
| Pas de DropColumn sans backup | BLOQUANT |
|
|
111
56
|
|
|
112
|
-
###
|
|
57
|
+
### Security
|
|
113
58
|
|
|
114
|
-
|
|
|
115
|
-
|
|
116
|
-
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
|
|
|
120
|
-
| 5 | Tests | Qualite couverture |
|
|
59
|
+
| Pattern | Sévérité |
|
|
60
|
+
|---------|----------|
|
|
61
|
+
| Secrets hardcodés | BLOQUANT |
|
|
62
|
+
| SQL Injection | BLOQUANT |
|
|
63
|
+
| `@Html.Raw()` sans sanitization | HIGH |
|
|
64
|
+
| `[AllowAnonymous]` sur sensible | HIGH |
|
|
121
65
|
|
|
122
|
-
|
|
66
|
+
---
|
|
123
67
|
|
|
124
|
-
|
|
125
|
-
METRIQUES PR
|
|
126
|
-
────────────────────────────────
|
|
127
|
-
Fichiers: {count} (+{added}/-{removed})
|
|
128
|
-
Commits: {count}
|
|
129
|
-
Insertions: +{lines}
|
|
130
|
-
Deletions: -{lines}
|
|
131
|
-
|
|
132
|
-
Ratio tests: {test_files}/{total_files}
|
|
133
|
-
────────────────────────────────
|
|
134
|
-
```
|
|
68
|
+
## Priorité fichiers
|
|
135
69
|
|
|
136
|
-
|
|
70
|
+
1. `*Migration*.cs` - Impact DB
|
|
71
|
+
2. `*Controller*.cs` - Surface d'attaque
|
|
72
|
+
3. `*Service*.cs` - Logique métier
|
|
73
|
+
4. Tests - Couverture
|
|
137
74
|
|
|
138
|
-
|
|
75
|
+
---
|
|
139
76
|
|
|
140
|
-
|
|
77
|
+
## Output
|
|
141
78
|
|
|
142
79
|
```
|
|
143
80
|
CODE REVIEW - PR #{number}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
RESUME: {APPROVE | CHANGES_REQUESTED | COMMENT}
|
|
81
|
+
RÉSUMÉ: {APPROVE | CHANGES_REQUESTED}
|
|
147
82
|
|
|
148
|
-
BLOQUANTS
|
|
83
|
+
BLOQUANTS:
|
|
149
84
|
🔴 [{file}:{line}] {description}
|
|
150
|
-
Suggestion: {fix}
|
|
151
85
|
|
|
152
|
-
WARNINGS
|
|
86
|
+
WARNINGS:
|
|
153
87
|
🟡 [{file}:{line}] {description}
|
|
154
|
-
Suggestion: {fix}
|
|
155
|
-
|
|
156
|
-
SUGGESTIONS ({count}):
|
|
157
|
-
🟢 [{file}:{line}] {description}
|
|
158
88
|
|
|
159
89
|
POINTS POSITIFS:
|
|
160
|
-
✨ {ce qui est bien
|
|
161
|
-
|
|
162
|
-
════════════════════════════════════════
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Soumission review
|
|
166
|
-
|
|
167
|
-
#### GitHub
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
if [ "$GIT_PROVIDER" = "github" ]; then
|
|
171
|
-
# Approve
|
|
172
|
-
gh pr review {number} --approve --body "{comments}"
|
|
173
|
-
|
|
174
|
-
# Request changes
|
|
175
|
-
gh pr review {number} --request-changes --body "{comments}"
|
|
176
|
-
|
|
177
|
-
# Comment only
|
|
178
|
-
gh pr review {number} --comment --body "{comments}"
|
|
179
|
-
fi
|
|
90
|
+
✨ {ce qui est bien}
|
|
180
91
|
```
|
|
181
92
|
|
|
182
|
-
|
|
93
|
+
### Soumission
|
|
183
94
|
|
|
184
95
|
```bash
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
# Approve
|
|
190
|
-
az repos pr set-vote --id {number} --vote approve \
|
|
191
|
-
--organization "https://dev.azure.com/$AZURE_ORG" \
|
|
192
|
-
--project "$AZURE_PROJECT"
|
|
193
|
-
|
|
194
|
-
# Request changes (reject)
|
|
195
|
-
az repos pr set-vote --id {number} --vote reject \
|
|
196
|
-
--organization "https://dev.azure.com/$AZURE_ORG" \
|
|
197
|
-
--project "$AZURE_PROJECT"
|
|
198
|
-
|
|
199
|
-
# Ajouter commentaire
|
|
200
|
-
az repos pr comment create --id {number} \
|
|
201
|
-
--content "{comments}" \
|
|
202
|
-
--organization "https://dev.azure.com/$AZURE_ORG" \
|
|
203
|
-
--project "$AZURE_PROJECT"
|
|
204
|
-
fi
|
|
205
|
-
```
|
|
96
|
+
# GitHub
|
|
97
|
+
gh pr review {number} --approve --body "{comments}"
|
|
98
|
+
gh pr review {number} --request-changes --body "{comments}"
|
|
206
99
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
## Resume
|
|
212
|
-
|
|
213
|
-
```
|
|
214
|
-
REVIEW COMPLETE
|
|
215
|
-
────────────────────────────────
|
|
216
|
-
PR: #{number}
|
|
217
|
-
Status: {APPROVED|CHANGES_REQUESTED|COMMENTED}
|
|
218
|
-
|
|
219
|
-
Issues:
|
|
220
|
-
Bloquants: {count}
|
|
221
|
-
Warnings: {count}
|
|
222
|
-
Suggestions: {count}
|
|
223
|
-
|
|
224
|
-
EF Core: {OK|ISSUES|N/A}
|
|
225
|
-
Tests: {COVERED|MISSING|N/A}
|
|
226
|
-
Security: {OK|ISSUES}
|
|
227
|
-
────────────────────────────────
|
|
228
|
-
Prochain: /gitflow:9-merge #{number}
|
|
100
|
+
# Azure DevOps
|
|
101
|
+
az repos pr set-vote --id {number} --vote approve
|
|
102
|
+
az repos pr set-vote --id {number} --vote reject
|
|
229
103
|
```
|
|
230
104
|
|
|
231
105
|
---
|
|
@@ -235,6 +109,5 @@ Prochain: /gitflow:9-merge #{number}
|
|
|
235
109
|
| Commande | Action |
|
|
236
110
|
|----------|--------|
|
|
237
111
|
| `/gitflow:8-review 123` | Review PR #123 |
|
|
238
|
-
| `/gitflow:8-review --security` | Focus
|
|
239
|
-
| `/gitflow:8-review --ef-core` | Focus migrations |
|
|
112
|
+
| `/gitflow:8-review --security` | Focus sécurité |
|
|
240
113
|
| `/gitflow:8-review --quick` | Checklist rapide |
|