mdma-cli 2.0.2 → 3.0.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/.claude/rules/mdma/models.md +19 -0
- package/README.md +22 -12
- package/bin/init.js +85 -29
- package/package.json +3 -2
- package/project-templates/ARTE-Video-Player/git.md +42 -0
- package/project-templates/ARTE-Video-Player/workflow.md +47 -0
- package/project-templates/arte-player/git.md +42 -0
- package/project-templates/arte-player/workflow.md +65 -0
- package/project-templates/developpement.ai/git.md +47 -0
- package/project-templates/developpement.ai/workflow.md +65 -0
- package/project-templates/patria/git.md +47 -0
- package/project-templates/patria/workflow.md +65 -0
- /package/.claude/rules/{git.md → mdma/default/git.md} +0 -0
- /package/.claude/rules/{workflow.md → mdma/default/workflow.md} +0 -0
- /package/.claude/rules/{style.md → mdma/style.md} +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Sélection des modèles
|
|
2
|
+
|
|
3
|
+
Utiliser le modèle approprié selon la complexité de la tâche pour optimiser coûts et rapidité.
|
|
4
|
+
|
|
5
|
+
## Correspondance tâche/modèle
|
|
6
|
+
|
|
7
|
+
| Tâche | Modèle | Justification |
|
|
8
|
+
|-------|--------|---------------|
|
|
9
|
+
| Tests, build, lint | `haiku` | Exécution simple, pas de raisonnement |
|
|
10
|
+
| Exploration de code, recherche | `sonnet` | Bon équilibre |
|
|
11
|
+
| Implémentation, review, architecture | `opus` | Raisonnement complexe |
|
|
12
|
+
|
|
13
|
+
## Syntaxe
|
|
14
|
+
|
|
15
|
+
Spécifier le modèle dans la demande si besoin :
|
|
16
|
+
- "Lance les tests avec haiku"
|
|
17
|
+
- "Explore le code avec sonnet"
|
|
18
|
+
|
|
19
|
+
Par défaut, l'agent choisit le modèle selon le tableau ci-dessus.
|
package/README.md
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# mdma
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
3 fichiers de rules best practice pour Claude Code. Pas de Q&A, pas de config. Ca juste marche.
|
|
3
|
+
Opinionated rules for Claude Code agents.
|
|
6
4
|
|
|
7
5
|
## Installation
|
|
8
6
|
|
|
@@ -10,19 +8,31 @@
|
|
|
10
8
|
npx mdma-cli add
|
|
11
9
|
```
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
- `workflow.md` -
|
|
15
|
-
- `git.md` -
|
|
16
|
-
- `style.md` - style
|
|
11
|
+
Installs default rules to `.claude/rules/mdma/`:
|
|
12
|
+
- `workflow.md` - agent workflow
|
|
13
|
+
- `git.md` - git conventions
|
|
14
|
+
- `style.md` - response style
|
|
15
|
+
- `models.md` - model selection by task complexity
|
|
16
|
+
|
|
17
|
+
## Commands
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx mdma-cli add # Install default rules
|
|
21
|
+
npx mdma-cli add <template> # Install a specific template
|
|
22
|
+
npx mdma-cli list # List available templates
|
|
23
|
+
npx mdma-cli help # Show help
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Templates
|
|
17
27
|
|
|
18
|
-
|
|
28
|
+
Templates are project-specific rule sets. Use `npx mdma-cli list` to see available templates.
|
|
19
29
|
|
|
20
|
-
|
|
30
|
+
Common rules (`models.md`, `style.md`) are always included. Template-specific rules (`workflow.md`, `git.md`) can override defaults.
|
|
21
31
|
|
|
22
|
-
##
|
|
32
|
+
## Update
|
|
23
33
|
|
|
24
|
-
|
|
34
|
+
Run `npx mdma-cli add` again. The `mdma/` folder is replaced with the latest rules. Your custom rules outside this folder are preserved.
|
|
25
35
|
|
|
26
|
-
##
|
|
36
|
+
## License
|
|
27
37
|
|
|
28
38
|
MIT
|
package/bin/init.js
CHANGED
|
@@ -1,56 +1,112 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { copyFileSync, mkdirSync, existsSync } from 'fs';
|
|
3
|
+
import { copyFileSync, mkdirSync, rmSync, readdirSync, existsSync } from 'fs';
|
|
4
4
|
import { join, dirname } from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
6
|
|
|
7
7
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
const
|
|
8
|
+
const PKG_ROOT = join(__dirname, '..');
|
|
9
|
+
const RULES_COMMON = join(PKG_ROOT, '.claude', 'rules', 'mdma');
|
|
10
|
+
const RULES_DEFAULT = join(RULES_COMMON, 'default');
|
|
11
|
+
const TEMPLATES_DIR = join(PKG_ROOT, 'project-templates');
|
|
12
|
+
const RULES_DEST = join(process.cwd(), '.claude', 'rules', 'mdma');
|
|
12
13
|
|
|
13
14
|
function showHelp() {
|
|
14
|
-
console.log('mdma-cli -
|
|
15
|
+
console.log('mdma-cli - Opinionated rules for code agents\n');
|
|
15
16
|
console.log('Usage:');
|
|
16
|
-
console.log(' npx mdma-cli add
|
|
17
|
-
console.log(' npx mdma-cli
|
|
17
|
+
console.log(' npx mdma-cli add [template] Install rules to .claude/rules/mdma/');
|
|
18
|
+
console.log(' npx mdma-cli list List available templates');
|
|
19
|
+
console.log(' npx mdma-cli help Show this help\n');
|
|
20
|
+
console.log('Examples:');
|
|
21
|
+
console.log(' npx mdma-cli add Install default rules');
|
|
22
|
+
console.log(' npx mdma-cli add arte-player Install arte-player template\n');
|
|
18
23
|
}
|
|
19
24
|
|
|
20
|
-
function
|
|
21
|
-
console.log('mdma-cli -
|
|
25
|
+
function listTemplates() {
|
|
26
|
+
console.log('mdma-cli - Available templates\n');
|
|
22
27
|
|
|
23
|
-
|
|
28
|
+
if (!existsSync(TEMPLATES_DIR)) {
|
|
29
|
+
console.log(' (no templates found)\n');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const templates = readdirSync(TEMPLATES_DIR, { withFileTypes: true })
|
|
34
|
+
.filter(d => d.isDirectory())
|
|
35
|
+
.map(d => d.name);
|
|
36
|
+
|
|
37
|
+
if (templates.length === 0) {
|
|
38
|
+
console.log(' (no templates found)\n');
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
24
41
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
copied++;
|
|
37
|
-
}
|
|
42
|
+
console.log(' default (built-in)');
|
|
43
|
+
for (const template of templates) {
|
|
44
|
+
console.log(` ${template}`);
|
|
45
|
+
}
|
|
46
|
+
console.log(`\nUsage: npx mdma-cli add <template>\n`);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function copyMdFiles(srcDir, destDir, label) {
|
|
50
|
+
if (!existsSync(srcDir)) {
|
|
51
|
+
console.log(` [skip] ${label} (not found)`);
|
|
52
|
+
return 0;
|
|
38
53
|
}
|
|
39
54
|
|
|
40
|
-
|
|
55
|
+
const files = readdirSync(srcDir).filter(f => f.endsWith('.md'));
|
|
41
56
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
console.log(
|
|
57
|
+
for (const file of files) {
|
|
58
|
+
copyFileSync(join(srcDir, file), join(destDir, file));
|
|
59
|
+
console.log(` [ok] ${file}`);
|
|
45
60
|
}
|
|
61
|
+
|
|
62
|
+
return files.length;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function add(templateName) {
|
|
66
|
+
const isDefault = !templateName || templateName === 'default';
|
|
67
|
+
const templateDir = isDefault ? RULES_DEFAULT : join(TEMPLATES_DIR, templateName);
|
|
68
|
+
|
|
69
|
+
// Validate template exists
|
|
70
|
+
if (!isDefault && !existsSync(templateDir)) {
|
|
71
|
+
console.error(`Error: Template "${templateName}" not found.\n`);
|
|
72
|
+
console.log('Available templates:');
|
|
73
|
+
listTemplates();
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
console.log(`mdma-cli - Installing ${isDefault ? 'default' : templateName} rules\n`);
|
|
78
|
+
|
|
79
|
+
// Remove existing mdma rules folder
|
|
80
|
+
rmSync(RULES_DEST, { recursive: true, force: true });
|
|
81
|
+
mkdirSync(RULES_DEST, { recursive: true });
|
|
82
|
+
|
|
83
|
+
let total = 0;
|
|
84
|
+
|
|
85
|
+
// Copy common rules (models.md, style.md)
|
|
86
|
+
const commonFiles = readdirSync(RULES_COMMON).filter(f => f.endsWith('.md'));
|
|
87
|
+
for (const file of commonFiles) {
|
|
88
|
+
copyFileSync(join(RULES_COMMON, file), join(RULES_DEST, file));
|
|
89
|
+
console.log(` [ok] ${file}`);
|
|
90
|
+
total++;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Copy template-specific rules (may override common)
|
|
94
|
+
total += copyMdFiles(templateDir, RULES_DEST, templateName || 'default');
|
|
95
|
+
|
|
96
|
+
console.log(`\n${total} file(s) installed to .claude/rules/mdma/`);
|
|
97
|
+
console.log('Edit them as needed.\n');
|
|
46
98
|
}
|
|
47
99
|
|
|
48
100
|
function main() {
|
|
49
101
|
const command = process.argv[2];
|
|
102
|
+
const arg = process.argv[3];
|
|
50
103
|
|
|
51
104
|
switch (command) {
|
|
52
105
|
case 'add':
|
|
53
|
-
add();
|
|
106
|
+
add(arg);
|
|
107
|
+
break;
|
|
108
|
+
case 'list':
|
|
109
|
+
listTemplates();
|
|
54
110
|
break;
|
|
55
111
|
case 'help':
|
|
56
112
|
case '--help':
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mdma-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Rules opinionated pour agents de code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"bin",
|
|
20
|
-
".claude/rules"
|
|
20
|
+
".claude/rules",
|
|
21
|
+
"project-templates"
|
|
21
22
|
],
|
|
22
23
|
"keywords": [
|
|
23
24
|
"claude",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Workflow Git
|
|
2
|
+
|
|
3
|
+
## Règles absolues
|
|
4
|
+
|
|
5
|
+
> **Anti-rationalisation** : Ces règles n'ont AUCUNE exception. "JAMAIS" signifie jamais.
|
|
6
|
+
> "C'est juste du gitignore" ou "c'est un petit fix" ne justifie PAS de contourner les règles.
|
|
7
|
+
|
|
8
|
+
1. **JAMAIS push sur main**
|
|
9
|
+
2. **JAMAIS commit sans branche** `feature/` ou `fix/`
|
|
10
|
+
3. **JAMAIS merge sans PR**
|
|
11
|
+
4. **JAMAIS `git add -A`** : commiter uniquement les fichiers modifiés intentionnellement
|
|
12
|
+
5. **JAMAIS tu ne seras cité, ni dans les descriptions, les titres, les descriptions ou en tant qu'auteur. Jamais nul part, tout est de privaloops.
|
|
13
|
+
|
|
14
|
+
Si tu envisages de transgresser une règle → **STOP** → demande à l'utilisateur.
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
### Avant de coder
|
|
19
|
+
1. Synchroniser avec le remote :
|
|
20
|
+
- Si sur `main` : `git pull origin main`
|
|
21
|
+
- Si sur une feature branch : `git fetch && git rebase origin/main`
|
|
22
|
+
2. Créer une branche depuis main : `feature/xxx` ou `fix/xxx`
|
|
23
|
+
3. `git checkout -b feature/ma-feature`
|
|
24
|
+
|
|
25
|
+
### Commits
|
|
26
|
+
- Convention : **conventional commits**
|
|
27
|
+
- `feat:` nouvelle fonctionnalité
|
|
28
|
+
- `fix:` correction de bug
|
|
29
|
+
- `docs:` documentation
|
|
30
|
+
- `refactor:` refactoring
|
|
31
|
+
- `chore:` maintenance
|
|
32
|
+
- `test:` ajout/modification de tests
|
|
33
|
+
- Messages clairs et concis
|
|
34
|
+
- Un commit = un changement logique
|
|
35
|
+
|
|
36
|
+
### Après validation
|
|
37
|
+
1. `git add <fichiers>` (pas -A)
|
|
38
|
+
2. `git commit -m "feat: description"`
|
|
39
|
+
3. `git push -u origin <branche>`
|
|
40
|
+
4. `gh pr create --fill` en assignant le milestone correspondant à la version corrigé du ticket initial. Si ce milestone n'existe pas, crée le.
|
|
41
|
+
5. Attendre validation utilisateur
|
|
42
|
+
6. `git checkout main && git pull`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Workflow Agent
|
|
2
|
+
|
|
3
|
+
> **Note** : Ce workflow est agnostique. Pour les commandes spécifiques (test, build, lint), consulte `CLAUDE.md` qui fait référence pour ce projet.
|
|
4
|
+
|
|
5
|
+
> **Règle de conformité** : Les règles définies ici et dans `git.md` sont ABSOLUES.
|
|
6
|
+
> - Ne jamais rationaliser ("c'est juste un petit fix", "c'est mineur")
|
|
7
|
+
> - Ne jamais faire d'exception, quelle que soit la taille ou nature du changement
|
|
8
|
+
> - En cas de doute → STOP → demander à l'utilisateur
|
|
9
|
+
|
|
10
|
+
## Étapes obligatoires
|
|
11
|
+
|
|
12
|
+
### 0. Setup Git
|
|
13
|
+
- Vérifie que tu n'es PAS sur `main` : `git branch --show-current`
|
|
14
|
+
- Si sur `main` → créer une branche AVANT toute modification
|
|
15
|
+
- Ne jamais rationaliser ("c'est juste un petit fix")
|
|
16
|
+
|
|
17
|
+
### 1. Plan
|
|
18
|
+
- Cherche dans .zshrc pour le token JIRA afin de l'utiliser en REST API avec CURL. Attention le token peut contenir des caractères spéciaux tiens en compte dans le CURL.
|
|
19
|
+
- Cherche le contenu du ticket JIRA à traiter avec l'id donné dans le prompt https://artetv.atlassian.net/browse/XXXXXX
|
|
20
|
+
- Passe le statut du ticket JIRA à "In progress"
|
|
21
|
+
- Attribut le à moi-même
|
|
22
|
+
- Explore le codebase (structure documentée dans `CLAUDE.md`)
|
|
23
|
+
- Propose un plan d'implémentation
|
|
24
|
+
- **STOP** → attend validation avant de coder
|
|
25
|
+
|
|
26
|
+
### 2. Code
|
|
27
|
+
- Implémente selon le plan validé
|
|
28
|
+
- Petits commits logiques (conventions dans `git.md`)
|
|
29
|
+
- **STOP** → montre les modifications, attend validation
|
|
30
|
+
|
|
31
|
+
### 3. Test
|
|
32
|
+
- Lance les tests(commande dans `CLAUDE.md`)
|
|
33
|
+
- Si fail → arrête et fixe CE test uniquement
|
|
34
|
+
- Si le test passe → relance la suite complète
|
|
35
|
+
- Max 5 itérations
|
|
36
|
+
- Si toujours fail → **STOP** → demande quoi faire
|
|
37
|
+
|
|
38
|
+
### 4. Review
|
|
39
|
+
- Review ton propre code
|
|
40
|
+
- Vérifie : sécurité, performance, lisibilité
|
|
41
|
+
- Propose des améliorations si pertinent
|
|
42
|
+
- **STOP** → attend validation
|
|
43
|
+
|
|
44
|
+
### 5. Git
|
|
45
|
+
- Exécute le workflow défini dans `git.md`
|
|
46
|
+
- **STOP** → attend validation avant de commiter
|
|
47
|
+
- Passe le statut du ticket JIRA à "Testing"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Workflow Git
|
|
2
|
+
|
|
3
|
+
## Règles absolues
|
|
4
|
+
|
|
5
|
+
> **Anti-rationalisation** : Ces règles n'ont AUCUNE exception. "JAMAIS" signifie jamais.
|
|
6
|
+
> "C'est juste du gitignore" ou "c'est un petit fix" ne justifie PAS de contourner les règles.
|
|
7
|
+
|
|
8
|
+
1. **JAMAIS push sur main**
|
|
9
|
+
2. **JAMAIS commit sans branche** `feature/` ou `fix/`
|
|
10
|
+
4. **JAMAIS merge sans PR**
|
|
11
|
+
5. **JAMAIS `git add -A`** : commiter uniquement les fichiers modifiés intentionnellement
|
|
12
|
+
|
|
13
|
+
Si tu envisages de transgresser une règle → **STOP** → demande à l'utilisateur.
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
### Avant de coder
|
|
18
|
+
1. Demander à l'utilisateur s'il souhaite se baser sur `main/master` ou `develop/dev`
|
|
19
|
+
2. Synchroniser la branche de base choisie avec le remote :
|
|
20
|
+
3. Créer une branche depuis la base choisie et la nommer : `feature/xxx` ou `fix/xxx`
|
|
21
|
+
4. Checkout la nouvelle branche
|
|
22
|
+
|
|
23
|
+
### Commits
|
|
24
|
+
- Convention : **conventional commits**
|
|
25
|
+
- `feat:` nouvelle fonctionnalité
|
|
26
|
+
- `fix:` correction de bug
|
|
27
|
+
- `docs:` documentation
|
|
28
|
+
- `refactor:` refactoring
|
|
29
|
+
- `chore:` maintenance
|
|
30
|
+
- `test:` ajout/modification de tests
|
|
31
|
+
- Messages clairs et concis
|
|
32
|
+
- Un commit = un changement logique
|
|
33
|
+
|
|
34
|
+
### Après validation
|
|
35
|
+
1. `git add <fichiers>` (pas -A)
|
|
36
|
+
2. `git commit -m "XXX: description"`. Remplacer XXX par le prefix de conventionnal commits qui correspond le mieux (voir ### Commits)
|
|
37
|
+
3. `git push -u origin <branche>`
|
|
38
|
+
4. `gh pr create --fill`
|
|
39
|
+
7. `git checkout main && git pull`
|
|
40
|
+
|
|
41
|
+
### Tests
|
|
42
|
+
Les tests **DOIVENT** passer avant merge.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Workflow Agent
|
|
2
|
+
|
|
3
|
+
> **Note** : Ce workflow est agnostique. Pour les commandes spécifiques (test, build, lint), consulte `CLAUDE.md` qui fait référence pour ce projet.
|
|
4
|
+
|
|
5
|
+
> **Règle de conformité** : Les règles définies ici et dans `git.md` sont ABSOLUES.
|
|
6
|
+
> - Ne jamais rationaliser ("c'est juste un petit fix", "c'est mineur")
|
|
7
|
+
> - Ne jamais faire d'exception, quelle que soit la taille ou nature du changement
|
|
8
|
+
> - En cas de doute → STOP → demander à l'utilisateur
|
|
9
|
+
|
|
10
|
+
## Étapes obligatoires
|
|
11
|
+
|
|
12
|
+
### 0. Setup Git
|
|
13
|
+
- Vérifie que tu n'es PAS sur `main` : `git branch --show-current`
|
|
14
|
+
- Si sur `main` → créer une branche AVANT toute modification
|
|
15
|
+
- Ne jamais rationaliser ("c'est juste un petit fix")
|
|
16
|
+
|
|
17
|
+
### 1. Plan
|
|
18
|
+
- Explore le codebase (structure documentée dans `CLAUDE.md`)
|
|
19
|
+
- Propose un plan d'implémentation
|
|
20
|
+
- **STOP** → attend validation avant de coder
|
|
21
|
+
|
|
22
|
+
### 2. Code
|
|
23
|
+
- Implémente selon le plan validé
|
|
24
|
+
- Petits commits logiques (conventions dans `git.md`)
|
|
25
|
+
- **STOP** → montre les modifications, attend validation
|
|
26
|
+
|
|
27
|
+
### 3. Test
|
|
28
|
+
- Lance les tests (commande dans `CLAUDE.md`)
|
|
29
|
+
- Si fail → arrête et fixe CE test uniquement
|
|
30
|
+
- Si le test passe → relance la suite complète
|
|
31
|
+
- Max 5 itérations
|
|
32
|
+
- Si toujours fail → **STOP** → demande quoi faire
|
|
33
|
+
|
|
34
|
+
#### 3.1 Tests visuels (obligatoire si applicable)
|
|
35
|
+
- **Vérifie** si `.claude/rules/visual-test.md` existe
|
|
36
|
+
- Si oui → exécute `/screenshot` et compare `current/` vs `baseline/`
|
|
37
|
+
- Différence intentionnelle → mettre à jour `baseline/`
|
|
38
|
+
- Régression détectée → **STOP** → corriger avant de continuer
|
|
39
|
+
|
|
40
|
+
- Si tous les tests passent → **STOP** → attend validation
|
|
41
|
+
|
|
42
|
+
### 4. Review
|
|
43
|
+
- Review ton propre code
|
|
44
|
+
- Vérifie : sécurité, performance, lisibilité
|
|
45
|
+
- Propose des améliorations si pertinent
|
|
46
|
+
- **STOP** → attend validation
|
|
47
|
+
|
|
48
|
+
### 5. Compound
|
|
49
|
+
- Consulte `CHANGELOG.md`, `DECISIONS.md`, `LEARNINGS.md` pour contexte
|
|
50
|
+
- Apprends des feedbacks de cette session
|
|
51
|
+
- Note les préférences exprimées pour les appliquer ensuite
|
|
52
|
+
|
|
53
|
+
### 6. Document
|
|
54
|
+
- Met à jour `CHANGELOG.md` pour chaque feature/fix (obligatoire)
|
|
55
|
+
- Met à jour `LEARNINGS.md` si apprentissage important
|
|
56
|
+
- Met à jour `DECISIONS.md` si décision structurante
|
|
57
|
+
- Si ces fichiers n'existent pas → les créer avec les formats standards :
|
|
58
|
+
- CHANGELOG.md : [Keep a Changelog](https://keepachangelog.com/)
|
|
59
|
+
- DECISIONS.md : format ADR (Architecture Decision Records)
|
|
60
|
+
- LEARNINGS.md : format session avec contexte, décisions, leçons
|
|
61
|
+
- **STOP** → attend validation
|
|
62
|
+
|
|
63
|
+
### 7. Git
|
|
64
|
+
- Exécute le workflow défini dans `git.md`
|
|
65
|
+
- **STOP** → attend validation avant de commiter
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Workflow Git
|
|
2
|
+
|
|
3
|
+
## Règles absolues
|
|
4
|
+
|
|
5
|
+
> **Anti-rationalisation** : Ces règles n'ont AUCUNE exception. "JAMAIS" signifie jamais.
|
|
6
|
+
> "C'est juste du gitignore" ou "c'est un petit fix" ne justifie PAS de contourner les règles.
|
|
7
|
+
|
|
8
|
+
1. **JAMAIS push sur main**
|
|
9
|
+
2. **JAMAIS commit sans branche** `feature/` ou `fix/`
|
|
10
|
+
3. **JAMAIS branche sans issue GitHub**
|
|
11
|
+
4. **JAMAIS merge sans PR**
|
|
12
|
+
5. **JAMAIS `git add -A`** : commiter uniquement les fichiers modifiés intentionnellement
|
|
13
|
+
|
|
14
|
+
Si tu envisages de transgresser une règle → **STOP** → demande à l'utilisateur.
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
### Avant de coder
|
|
19
|
+
1. Synchroniser avec le remote :
|
|
20
|
+
- Si sur `main` : `git pull origin main`
|
|
21
|
+
- Si sur une feature branch : `git fetch && git rebase origin/main`
|
|
22
|
+
2. Créer une issue GitHub (titre + description)
|
|
23
|
+
3. Créer une branche depuis main : `feature/xxx` ou `fix/xxx`
|
|
24
|
+
4. `git checkout -b feature/ma-feature`
|
|
25
|
+
|
|
26
|
+
### Commits
|
|
27
|
+
- Convention : **conventional commits**
|
|
28
|
+
- `feat:` nouvelle fonctionnalité
|
|
29
|
+
- `fix:` correction de bug
|
|
30
|
+
- `docs:` documentation
|
|
31
|
+
- `refactor:` refactoring
|
|
32
|
+
- `chore:` maintenance
|
|
33
|
+
- `test:` ajout/modification de tests
|
|
34
|
+
- Messages clairs et concis
|
|
35
|
+
- Un commit = un changement logique
|
|
36
|
+
|
|
37
|
+
### Après validation
|
|
38
|
+
1. `git add <fichiers>` (pas -A)
|
|
39
|
+
2. `git commit -m "feat: description"`
|
|
40
|
+
3. `git push -u origin <branche>`
|
|
41
|
+
4. `gh pr create --fill`
|
|
42
|
+
5. Attendre validation utilisateur
|
|
43
|
+
6. `gh pr merge --merge --delete-branch`
|
|
44
|
+
7. `git checkout main && git pull`
|
|
45
|
+
|
|
46
|
+
### Tests
|
|
47
|
+
Les tests **DOIVENT** passer avant merge.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Workflow Agent
|
|
2
|
+
|
|
3
|
+
> **Note** : Ce workflow est agnostique. Pour les commandes spécifiques (test, build, lint), consulte `CLAUDE.md` qui fait référence pour ce projet.
|
|
4
|
+
|
|
5
|
+
> **Règle de conformité** : Les règles définies ici et dans `git.md` sont ABSOLUES.
|
|
6
|
+
> - Ne jamais rationaliser ("c'est juste un petit fix", "c'est mineur")
|
|
7
|
+
> - Ne jamais faire d'exception, quelle que soit la taille ou nature du changement
|
|
8
|
+
> - En cas de doute → STOP → demander à l'utilisateur
|
|
9
|
+
|
|
10
|
+
## Étapes obligatoires
|
|
11
|
+
|
|
12
|
+
### 0. Setup Git
|
|
13
|
+
- Vérifie que tu n'es PAS sur `main` : `git branch --show-current`
|
|
14
|
+
- Si sur `main` → créer une branche AVANT toute modification
|
|
15
|
+
- Ne jamais rationaliser ("c'est juste un petit fix")
|
|
16
|
+
|
|
17
|
+
### 1. Plan
|
|
18
|
+
- Explore le codebase (structure documentée dans `CLAUDE.md`)
|
|
19
|
+
- Propose un plan d'implémentation
|
|
20
|
+
- **STOP** → attend validation avant de coder
|
|
21
|
+
|
|
22
|
+
### 2. Code
|
|
23
|
+
- Implémente selon le plan validé
|
|
24
|
+
- Petits commits logiques (conventions dans `git.md`)
|
|
25
|
+
- **STOP** → montre les modifications, attend validation
|
|
26
|
+
|
|
27
|
+
### 3. Test
|
|
28
|
+
- Lance les tests (commande dans `CLAUDE.md`)
|
|
29
|
+
- Si fail → arrête et fixe CE test uniquement
|
|
30
|
+
- Si le test passe → relance la suite complète
|
|
31
|
+
- Max 5 itérations
|
|
32
|
+
- Si toujours fail → **STOP** → demande quoi faire
|
|
33
|
+
|
|
34
|
+
#### 3.1 Tests visuels (obligatoire si applicable)
|
|
35
|
+
- **Vérifie** si `.claude/rules/visual-test.md` existe
|
|
36
|
+
- Si oui → exécute `/screenshot` et compare `current/` vs `baseline/`
|
|
37
|
+
- Différence intentionnelle → mettre à jour `baseline/`
|
|
38
|
+
- Régression détectée → **STOP** → corriger avant de continuer
|
|
39
|
+
|
|
40
|
+
- Si tous les tests passent → **STOP** → attend validation
|
|
41
|
+
|
|
42
|
+
### 4. Review
|
|
43
|
+
- Review ton propre code
|
|
44
|
+
- Vérifie : sécurité, performance, lisibilité
|
|
45
|
+
- Propose des améliorations si pertinent
|
|
46
|
+
- **STOP** → attend validation
|
|
47
|
+
|
|
48
|
+
### 5. Compound
|
|
49
|
+
- Consulte `CHANGELOG.md`, `DECISIONS.md`, `LEARNINGS.md` pour contexte
|
|
50
|
+
- Apprends des feedbacks de cette session
|
|
51
|
+
- Note les préférences exprimées pour les appliquer ensuite
|
|
52
|
+
|
|
53
|
+
### 6. Document
|
|
54
|
+
- Met à jour `CHANGELOG.md` pour chaque feature/fix (obligatoire)
|
|
55
|
+
- Met à jour `LEARNINGS.md` si apprentissage important
|
|
56
|
+
- Met à jour `DECISIONS.md` si décision structurante
|
|
57
|
+
- Si ces fichiers n'existent pas → les créer avec les formats standards :
|
|
58
|
+
- CHANGELOG.md : [Keep a Changelog](https://keepachangelog.com/)
|
|
59
|
+
- DECISIONS.md : format ADR (Architecture Decision Records)
|
|
60
|
+
- LEARNINGS.md : format session avec contexte, décisions, leçons
|
|
61
|
+
- **STOP** → attend validation
|
|
62
|
+
|
|
63
|
+
### 7. Git
|
|
64
|
+
- Exécute le workflow défini dans `git.md`
|
|
65
|
+
- **STOP** → attend validation avant de commiter
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Workflow Git
|
|
2
|
+
|
|
3
|
+
## Règles absolues
|
|
4
|
+
|
|
5
|
+
> **Anti-rationalisation** : Ces règles n'ont AUCUNE exception. "JAMAIS" signifie jamais.
|
|
6
|
+
> "C'est juste du gitignore" ou "c'est un petit fix" ne justifie PAS de contourner les règles.
|
|
7
|
+
|
|
8
|
+
1. **JAMAIS push sur main**
|
|
9
|
+
2. **JAMAIS commit sans branche** `feature/` ou `fix/`
|
|
10
|
+
3. **JAMAIS branche sans issue GitHub**
|
|
11
|
+
4. **JAMAIS merge sans PR**
|
|
12
|
+
5. **JAMAIS `git add -A`** : commiter uniquement les fichiers modifiés intentionnellement
|
|
13
|
+
|
|
14
|
+
Si tu envisages de transgresser une règle → **STOP** → demande à l'utilisateur.
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
### Avant de coder
|
|
19
|
+
1. Synchroniser avec le remote :
|
|
20
|
+
- Si sur `main` : `git pull origin main`
|
|
21
|
+
- Si sur une feature branch : `git fetch && git rebase origin/main`
|
|
22
|
+
2. Créer une issue GitHub (titre + description)
|
|
23
|
+
3. Créer une branche depuis main : `feature/xxx` ou `fix/xxx`
|
|
24
|
+
4. `git checkout -b feature/ma-feature`
|
|
25
|
+
|
|
26
|
+
### Commits
|
|
27
|
+
- Convention : **conventional commits**
|
|
28
|
+
- `feat:` nouvelle fonctionnalité
|
|
29
|
+
- `fix:` correction de bug
|
|
30
|
+
- `docs:` documentation
|
|
31
|
+
- `refactor:` refactoring
|
|
32
|
+
- `chore:` maintenance
|
|
33
|
+
- `test:` ajout/modification de tests
|
|
34
|
+
- Messages clairs et concis
|
|
35
|
+
- Un commit = un changement logique
|
|
36
|
+
|
|
37
|
+
### Après validation
|
|
38
|
+
1. `git add <fichiers>` (pas -A)
|
|
39
|
+
2. `git commit -m "feat: description"`
|
|
40
|
+
3. `git push -u origin <branche>`
|
|
41
|
+
4. `gh pr create --fill`
|
|
42
|
+
5. Attendre validation utilisateur
|
|
43
|
+
6. `gh pr merge --merge --delete-branch`
|
|
44
|
+
7. `git checkout main && git pull`
|
|
45
|
+
|
|
46
|
+
### Tests
|
|
47
|
+
Les tests **DOIVENT** passer avant merge.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Workflow Agent
|
|
2
|
+
|
|
3
|
+
> **Note** : Ce workflow est agnostique. Pour les commandes spécifiques (test, build, lint), consulte `CLAUDE.md` qui fait référence pour ce projet.
|
|
4
|
+
|
|
5
|
+
> **Règle de conformité** : Les règles définies ici et dans `git.md` sont ABSOLUES.
|
|
6
|
+
> - Ne jamais rationaliser ("c'est juste un petit fix", "c'est mineur")
|
|
7
|
+
> - Ne jamais faire d'exception, quelle que soit la taille ou nature du changement
|
|
8
|
+
> - En cas de doute → STOP → demander à l'utilisateur
|
|
9
|
+
|
|
10
|
+
## Étapes obligatoires
|
|
11
|
+
|
|
12
|
+
### 0. Setup Git
|
|
13
|
+
- Vérifie que tu n'es PAS sur `main` : `git branch --show-current`
|
|
14
|
+
- Si sur `main` → créer une branche AVANT toute modification
|
|
15
|
+
- Ne jamais rationaliser ("c'est juste un petit fix")
|
|
16
|
+
|
|
17
|
+
### 1. Plan
|
|
18
|
+
- Explore le codebase (structure documentée dans `CLAUDE.md`)
|
|
19
|
+
- Propose un plan d'implémentation
|
|
20
|
+
- **STOP** → attend validation avant de coder
|
|
21
|
+
|
|
22
|
+
### 2. Code
|
|
23
|
+
- Implémente selon le plan validé
|
|
24
|
+
- Petits commits logiques (conventions dans `git.md`)
|
|
25
|
+
- **STOP** → montre les modifications, attend validation
|
|
26
|
+
|
|
27
|
+
### 3. Test
|
|
28
|
+
- Lance les tests (commande dans `CLAUDE.md`)
|
|
29
|
+
- Si fail → arrête et fixe CE test uniquement
|
|
30
|
+
- Si le test passe → relance la suite complète
|
|
31
|
+
- Max 5 itérations
|
|
32
|
+
- Si toujours fail → **STOP** → demande quoi faire
|
|
33
|
+
|
|
34
|
+
#### 3.1 Tests visuels (obligatoire si applicable)
|
|
35
|
+
- **Vérifie** si `.claude/rules/visual-test.md` existe
|
|
36
|
+
- Si oui → exécute `/screenshot` et compare `current/` vs `baseline/`
|
|
37
|
+
- Différence intentionnelle → mettre à jour `baseline/`
|
|
38
|
+
- Régression détectée → **STOP** → corriger avant de continuer
|
|
39
|
+
|
|
40
|
+
- Si tous les tests passent → **STOP** → attend validation
|
|
41
|
+
|
|
42
|
+
### 4. Review
|
|
43
|
+
- Review ton propre code
|
|
44
|
+
- Vérifie : sécurité, performance, lisibilité
|
|
45
|
+
- Propose des améliorations si pertinent
|
|
46
|
+
- **STOP** → attend validation
|
|
47
|
+
|
|
48
|
+
### 5. Compound
|
|
49
|
+
- Consulte `CHANGELOG.md`, `DECISIONS.md`, `LEARNINGS.md` pour contexte
|
|
50
|
+
- Apprends des feedbacks de cette session
|
|
51
|
+
- Note les préférences exprimées pour les appliquer ensuite
|
|
52
|
+
|
|
53
|
+
### 6. Document
|
|
54
|
+
- Met à jour `CHANGELOG.md` pour chaque feature/fix (obligatoire)
|
|
55
|
+
- Met à jour `LEARNINGS.md` si apprentissage important
|
|
56
|
+
- Met à jour `DECISIONS.md` si décision structurante
|
|
57
|
+
- Si ces fichiers n'existent pas → les créer avec les formats standards :
|
|
58
|
+
- CHANGELOG.md : [Keep a Changelog](https://keepachangelog.com/)
|
|
59
|
+
- DECISIONS.md : format ADR (Architecture Decision Records)
|
|
60
|
+
- LEARNINGS.md : format session avec contexte, décisions, leçons
|
|
61
|
+
- **STOP** → attend validation
|
|
62
|
+
|
|
63
|
+
### 7. Git
|
|
64
|
+
- Exécute le workflow défini dans `git.md`
|
|
65
|
+
- **STOP** → attend validation avant de commiter
|
|
File without changes
|
|
File without changes
|
|
File without changes
|