mdma-cli 1.1.3 → 1.2.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/README.md CHANGED
@@ -14,32 +14,29 @@ Cela installe la skill dans `.claude/skills/mdma/` de ton projet.
14
14
 
15
15
  ## Utilisation
16
16
 
17
- ### Mode interactif (par defaut)
17
+ ### Mode interactif
18
18
 
19
19
  ```bash
20
20
  /mdma
21
21
  ```
22
22
 
23
23
  Reponds aux questions, rules generes dans `.claude/rules/`.
24
+ A la fin, propose de sauvegarder ton profil via dialogue fichier (Finder/Explorer).
24
25
 
25
- ### Mode profil
26
+ ### Importer un profil existant
26
27
 
27
28
  ```bash
28
- # Sauvegarder tes preferences dans un profil
29
- /mdma save MonProfil
30
-
31
- # Appliquer un profil existant (sans Q&A)
32
- /mdma MonProfil
29
+ /mdma import
33
30
  ```
34
31
 
35
- Les profils sont stockes dans `.mdma-profiles/`.
32
+ Ouvre un dialogue fichier pour selectionner un profil `.md` existant, puis genere les rules sans Q&A.
36
33
 
37
34
  ### Workflow recommande
38
35
 
39
36
  1. Lance Claude Code dans ton projet
40
37
  2. (Optionnel) Tape `/init` pour generer le contexte projet
41
- 3. Premier projet : `/mdma save TonNom` (cree ton profil)
42
- 4. Projets suivants : `/mdma TonNom` (applique direct)
38
+ 3. Premier projet : `/mdma` puis sauvegarde ton profil quelque part (cloud, cle USB...)
39
+ 4. Projets suivants : `/mdma import` pour reutiliser ton profil
43
40
 
44
41
  ## Ce que ça fait
45
42
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdma-cli",
3
- "version": "1.1.3",
3
+ "version": "1.2.0",
4
4
  "description": "Skill Claude Code pour configurer les préférences de travail d'un agent",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -50,7 +50,12 @@ Ce document montre des exemples de rules files générés par `/mdma`.
50
50
  - Si fail → tente de fixer
51
51
  - Max 5 itérations
52
52
  - Si toujours fail → **STOP** → demande quoi faire
53
- - Si pass → **STOP** → attend validation
53
+
54
+ #### 3.1 Tests visuels (obligatoire si applicable)
55
+ - **Vérifie** si `.claude/rules/visual-test.md` existe
56
+ - Si oui → exécute les tests visuels
57
+
58
+ - Si tous les tests passent → **STOP** → attend validation
54
59
 
55
60
  ### 4. Review
56
61
  - Review ton propre code
@@ -10,31 +10,27 @@ Tu configures les préférences de travail d'un agent de code (Claude Code, Curs
10
10
 
11
11
  ## Modes
12
12
 
13
- `/mdma` supporte 3 modes selon les arguments :
13
+ `/mdma` supporte 2 modes :
14
14
 
15
15
  ### Mode 1 : `/mdma` (sans argument)
16
- → Lance le Q&A interactif, génère les rules à la fin.
16
+ → Lance le Q&A interactif, génère les rules, puis propose de sauvegarder le profil via dialogue fichier.
17
17
 
18
- ### Mode 2 : `/mdma save <nom>`
19
- Lance le Q&A interactif, sauvegarde le profil dans `.mdma-profiles/<nom>.md`, puis génère les rules.
20
-
21
- ### Mode 3 : `/mdma <nom>`
22
- → Cherche `.mdma-profiles/<nom>.md`. Si trouvé, génère les rules directement sans Q&A. Si non trouvé, propose de lancer le Q&A et sauvegarder sous ce nom.
18
+ ### Mode 2 : `/mdma import`
19
+ Ouvre un dialogue fichier pour sélectionner un profil existant (`.md`), puis génère les rules directement sans Q&A.
23
20
 
24
21
  ## Détection du mode
25
22
 
26
23
  1. Regarde l'argument passé à `/mdma`
27
24
  2. Si pas d'argument → Mode 1
28
- 3. Si argument = "save <nom>" → Mode 2
29
- 4. Si argument = "<nom>" → Mode 3
25
+ 3. Si argument = "import" → Mode 2
30
26
 
31
27
  ---
32
28
 
33
- ## Ta mission (Modes 1 et 2)
29
+ ## Ta mission (Mode 1)
34
30
 
35
31
  Collecter les préférences de travail du développeur : style de réponse, workflow agent, workflow git.
36
32
 
37
- Ensuite, générer les rules files adaptés (et sauvegarder le profil si Mode 2).
33
+ Ensuite, générer les rules files adaptés et proposer de sauvegarder le profil.
38
34
 
39
35
  **Note** : Le contexte projet (stack, structure) est géré par `/init` ou manuellement dans CLAUDE.md. Tu ne génères que les rules.
40
36
 
@@ -121,32 +117,75 @@ Tu passes par 4 phases dans l'ordre. Pour chaque phase, tu as un objectif et des
121
117
 
122
118
  ---
123
119
 
124
- ## Mode 3 : Appliquer un profil
120
+ ## Dialogues fichier natifs
125
121
 
126
- Si l'utilisateur lance `/mdma <nom>` :
122
+ Pour ouvrir un dialogue fichier natif, utilise les commandes suivantes selon l'OS.
127
123
 
128
- 1. Cherche `.mdma-profiles/<nom>.md`
129
- 2. Si trouvé :
130
- - Lis le profil
131
- - Affiche un résumé : "Profil <nom> trouvé : <niveau>, <style>, <git workflow>"
132
- - Génère les 3 rules files directement
133
- - Affiche "Rules générées depuis le profil <nom>."
134
- 3. Si non trouvé :
135
- - Dis : "Profil <nom> non trouvé. Tu veux le créer ?"
136
- - Si oui → passe en Mode 2 (Q&A + save)
137
- - Si non → arrête
124
+ ### Détection de l'OS
138
125
 
139
- ---
126
+ ```bash
127
+ OS=$(uname -s)
128
+ ```
129
+
130
+ | Valeur | OS |
131
+ |--------|-----|
132
+ | `Darwin` | macOS |
133
+ | `Linux` | Linux |
134
+ | `MINGW*` ou `CYGWIN*` | Windows (Git Bash) |
140
135
 
141
- ## Sauvegarde du profil (Mode 2)
136
+ ### Commandes par OS
142
137
 
143
- Après le Q&A et avant de générer les rules, sauvegarde le profil :
138
+ #### macOS (osascript)
139
+
140
+ **Dialogue "Enregistrer sous"** :
141
+ ```bash
142
+ osascript -e 'POSIX path of (choose file name with prompt "Sauvegarder le profil mdma" default name "profil.md")'
143
+ ```
144
+
145
+ **Dialogue "Ouvrir"** :
146
+ ```bash
147
+ osascript -e 'POSIX path of (choose file of type {"md", "public.plain-text"} with prompt "Sélectionner un profil mdma")'
148
+ ```
144
149
 
145
- **Fichier** : `.mdma-profiles/<nom>.md`
150
+ #### Linux (zenity)
151
+
152
+ **Dialogue "Enregistrer sous"** :
153
+ ```bash
154
+ zenity --file-selection --save --filename="profil.md" --title="Sauvegarder le profil mdma" --file-filter="*.md"
155
+ ```
156
+
157
+ **Dialogue "Ouvrir"** :
158
+ ```bash
159
+ zenity --file-selection --title="Sélectionner un profil mdma" --file-filter="*.md"
160
+ ```
161
+
162
+ #### Windows (PowerShell)
163
+
164
+ **Dialogue "Enregistrer sous"** :
165
+ ```bash
166
+ powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$d = New-Object System.Windows.Forms.SaveFileDialog; \$d.Filter = 'Markdown (*.md)|*.md'; \$d.FileName = 'profil.md'; if (\$d.ShowDialog() -eq 'OK') { \$d.FileName }"
167
+ ```
168
+
169
+ **Dialogue "Ouvrir"** :
170
+ ```bash
171
+ powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$d = New-Object System.Windows.Forms.OpenFileDialog; \$d.Filter = 'Markdown (*.md)|*.md'; if (\$d.ShowDialog() -eq 'OK') { \$d.FileName }"
172
+ ```
173
+
174
+ ### Fallback
175
+
176
+ Si la commande échoue (serveur headless, SSH, zenity non installé, etc.) :
177
+ 1. Affiche : "Impossible d'ouvrir le dialogue fichier."
178
+ 2. Demande le chemin manuellement : "Indique le chemin complet du fichier :"
179
+ 3. Valide que le chemin finit par `.md`, sinon ajoute l'extension
180
+
181
+ ---
182
+
183
+ ## Format du profil
184
+
185
+ Le profil sauvegardé/importé utilise ce format :
146
186
 
147
- **Format** :
148
187
  ```markdown
149
- # Profil <nom>
188
+ # Profil
150
189
 
151
190
  ## Personnalité
152
191
  - level: <junior|mid|senior>
@@ -170,7 +209,36 @@ Après le Q&A et avant de générer les rules, sauvegarde le profil :
170
209
  - testRequired: <true|false>
171
210
  ```
172
211
 
173
- Crée le dossier `.mdma-profiles/` s'il n'existe pas.
212
+ ---
213
+
214
+ ## Mode 1 : Workflow complet (`/mdma`)
215
+
216
+ 1. Lance le Q&A interactif (Phases 1-4)
217
+ 2. Génère les 3 rules files
218
+ 3. Demande : "Tu veux sauvegarder ce profil pour le réutiliser ?"
219
+ 4. Si oui :
220
+ - Détecte l'OS avec `uname -s`
221
+ - Exécute la commande "Enregistrer sous" appropriée
222
+ - Si dialogue réussi → écris le profil au chemin retourné
223
+ - Si dialogue échoue → fallback saisie manuelle
224
+ - Assure-toi que le fichier a l'extension `.md`
225
+ - Affiche : "Profil sauvegardé vers <chemin>"
226
+ 5. Propose la suppression du skill (voir Nettoyage)
227
+
228
+ ---
229
+
230
+ ## Mode 2 : Import (`/mdma import`)
231
+
232
+ 1. Détecte l'OS avec `uname -s`
233
+ 2. Exécute la commande "Ouvrir" appropriée
234
+ 3. Si dialogue réussi → récupère le chemin
235
+ 4. Si dialogue échoue → fallback saisie manuelle
236
+ 5. Lis le fichier profil
237
+ 6. Parse les données (format ci-dessus)
238
+ 7. Affiche un résumé : "Profil importé : <niveau>, <style>, <git workflow>"
239
+ 8. Génère les 3 rules files
240
+ 9. Affiche : "Rules générées depuis le profil importé."
241
+ 10. Propose la suppression du skill (voir Nettoyage)
174
242
 
175
243
  ---
176
244
 
@@ -53,8 +53,14 @@ Le workflow de l'agent, étape par étape.
53
53
  - Si le test passe → relance la suite complète
54
54
  - Max {workflow.maxTestIterations} itérations
55
55
  - Si toujours fail → **STOP** → demande quoi faire
56
- - Si `visual-test.md` existe → suivre ses instructions
57
- - Si pass **STOP** attend validation
56
+
57
+ #### 3.1 Tests visuels (obligatoire si applicable)
58
+ - **Vérifie** si `.claude/rules/visual-test.md` existe
59
+ - Si oui → exécute `/screenshot` et compare `current/` vs `baseline/`
60
+ - Différence intentionnelle → mettre à jour `baseline/`
61
+ - Régression détectée → **STOP** → corriger avant de continuer
62
+
63
+ - Si tous les tests passent → **STOP** → attend validation
58
64
 
59
65
  ### 4. Review
60
66
  - Review ton propre code