qwen-superpowers 1.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.
@@ -0,0 +1,74 @@
1
+ # Systematic Debugging
2
+
3
+ > Approche méthodique en 4 phases pour identifier et résoudre les bugs sans deviner.
4
+
5
+ ## Triggers
6
+ - Un test échoue
7
+ - Un bug est rapporté par l'utilisateur
8
+ - Un comportement inattendu est observé
9
+ - L'agent est tenté de "deviner" la cause d'un problème
10
+
11
+ ## Instructions
12
+
13
+ ### Phase 1 : Comprendre le Symptôme
14
+ 1. Reproduire le bug de manière consistante
15
+ 2. Noter le comportement attendu vs comportement observé
16
+ 3. Identifier les conditions exactes du bug (input, environnement, timing)
17
+ 4. **NE PAS** encore chercher la cause — juste décrire le symptôme
18
+
19
+ ### Phase 2 : Isoler la Cause Racine
20
+ 1. Réduire le scope au minimum (plus petit exemple qui reproduit)
21
+ 2. Utiliser une approche dichotomique (couper le problème en deux)
22
+ 3. Vérifier les hypothèses une par une (pas de suppositions)
23
+ 4. Ajouter des logs/assertions pour confirmer chaque étape
24
+
25
+ ### Phase 3 : Corriger
26
+ 1. Identifier le changement minimal qui corrige le bug
27
+ 2. Écrire un test qui reproduit le bug (il doit échouer)
28
+ 3. Appliquer la correction
29
+ 4. Vérifier que le test passe maintenant (GREEN)
30
+
31
+ ### Phase 4 : Prévenir la Régession
32
+ 1. Ajouter le test au suite permanente
33
+ 2. Vérifier que les tests existants passent toujours
34
+ 3. Documenter le bug et sa cause si nécessaire
35
+ 4. Chercher des patterns similaires dans le codebase
36
+
37
+ ## Règles
38
+
39
+ 1. **Jamais de correction sans test** — le bug doit être reproduit par un test
40
+ 2. **Une hypothèse à la fois** — ne pas changer plusieurs choses simultanément
41
+ 3. **Minimal reproducible** — toujours réduire au plus petit exemple
42
+ 4. **Comprendre avant d'agir** — identifier la cause racine, pas le symptôme
43
+ 5. **Vérifier après correction** — relancer toute la suite de tests
44
+
45
+ ## Sortie Attendue
46
+
47
+ Après un debugging complet :
48
+ - [ ] Symptôme documenté (attendu vs observé)
49
+ - [ ] Cause racine identifiée et expliquée
50
+ - [ ] Test de régression écrit (échouait avant, passe après)
51
+ - [ ] Correction appliquée (changement minimal)
52
+ - [ ] Tous les tests passent
53
+ - [ ] Recherche de patterns similaires effectuée
54
+
55
+ ## Exemple d'Utilisation
56
+
57
+ ```
58
+ // Phase 1: Symptôme
59
+ // "La fonction calculateTotal retourne NaN quand le panier a 1 item à prix 0"
60
+
61
+ // Phase 2: Isolation
62
+ // Plus petit repro: calculateTotal([{price: 0, qty: 1}]) → NaN
63
+ // Cause: la fonction fait items.reduce((sum, i) => sum + i.price * i.qty)
64
+ // mais ne gère pas le cas où price = 0 avec qty = 1
65
+
66
+ // Phase 3: Correction + Test
67
+ it('should handle items with price 0', () => {
68
+ expect(calculateTotal([{price: 0, qty: 1}])).toBe(0);
69
+ });
70
+ // → Échoue → Appliquer correction → Passe ✅
71
+
72
+ // Phase 4: Prévention
73
+ // Vérifier qu'aucune autre fonction n'a le même pattern
74
+ ```
@@ -0,0 +1,88 @@
1
+ # Test-Driven Development (TDD)
2
+
3
+ > Écrire les tests AVANT le code de production. Cycle strict : RED → GREEN → REFACTOR.
4
+
5
+ ## Triggers
6
+ - Toute demande de développement de fonctionnalité ou de correction
7
+ - Quand l'agent s'apprête à écrire du code de production
8
+ - Quand `.qwen-powers.json` a `settings.tddEnforced: true`
9
+
10
+ ## Instructions
11
+
12
+ ### 1. Cycle RED-GREEN-REFACTOR (OBLIGATOIRE)
13
+
14
+ #### 🔴 RED — Écrire un test qui échoue
15
+ 1. Identifier le comportement attendu
16
+ 2. Écrire un test unitaire qui valide ce comportement
17
+ 3. Le test DOIT échouer initialement (vérifier que le test n'est pas trivial)
18
+ 4. Exécuter le test pour confirmer l'échec
19
+
20
+ #### 🟢 GREEN — Faire passer le test
21
+ 1. Écrire le **minimum de code** pour faire passer le test
22
+ 2. Ne pas ajouter de logique non testée
23
+ 3. Exécuter tous les tests pour confirmer que tout passe
24
+ 4. Si un test échoue, corriger avant de continuer
25
+
26
+ #### 🔵 REFACTOR — Améliorer sans casser
27
+ 1. Simplifier le code tout en gardant les tests verts
28
+ 2. Réduire la duplication, améliorer la lisibilité
29
+ 3. Exécuter les tests après chaque micro-changement
30
+ 4. Commiter uniquement si tous les tests passent
31
+
32
+ ### 2. Règle Anti-Pattern
33
+ - **SUPPRIMER** tout code de production écrit avant son test
34
+ - Ne JAMAIS écrire "juste un petit bout de code pour voir"
35
+ - Ne JAMAAS commettre de code avec des tests qui échouent
36
+
37
+ ## Règles
38
+
39
+ 1. **Le test vient TOUJOURS en premier** — sans exception
40
+ 2. **Un seul test à la fois** — ne pas écrire plusieurs tests avant le code
41
+ 3. **Minimum de code** — écrire juste assez de code pour passer le test
42
+ 4. **Tests verts = obligatoire** — aucun commit si un test échoue
43
+ 5. **Refactorer avec filet** — jamais de refactoring sans tests verts
44
+
45
+ ## Anti-Patterns à Éviter
46
+
47
+ | Anti-Pattern | Description | Correction |
48
+ |--------------|-------------|------------|
49
+ | Code avant test | Écrire la fonction avant le test | Supprimer et recommencer par le test |
50
+ | Tests multiples | Écrire 3 tests avant tout code | Un test → code → suivant |
51
+ | Gold plating | Ajouter des fonctionnalités non testées | Supprimer ou écrire un test d'abord |
52
+ | Commit rouge | Committer avec des tests qui échouent | Interdit — corriger d'abord |
53
+ | Test après coup | Écrire le test après le code "pour couvrir" | Recommmencer par le test |
54
+
55
+ ## Sortie Attendue
56
+
57
+ Après chaque cycle TDD complet :
58
+ - [ ] Test écrit et documenté
59
+ - [ ] Test passe (GREEN)
60
+ - [ ] Code refactorisé si nécessaire
61
+ - [ ] Tous les tests du projet passent
62
+ - [ ] Commit avec message descriptif
63
+
64
+ ## Exemple d'Utilisation
65
+
66
+ ```
67
+ // 1. RED — Test qui échoue
68
+ describe('calculateTotal', () => {
69
+ it('should return 0 for empty cart', () => {
70
+ expect(calculateTotal([])).toBe(0);
71
+ });
72
+ });
73
+ // → Exécuter → Échec (fonction n'existe pas) ✅
74
+
75
+ // 2. GREEN — Minimum de code
76
+ function calculateTotal(items) {
77
+ return items.length === 0 ? 0 : null;
78
+ }
79
+ // → Exécuter → Succès ✅
80
+
81
+ // 3. REFACTOR — Améliorer
82
+ function calculateTotal(items) {
83
+ if (!items || items.length === 0) return 0;
84
+ // ... suite du logic
85
+ }
86
+ // → Exécuter → Succès ✅
87
+ // → Commit ✅
88
+ ```
@@ -0,0 +1,109 @@
1
+ # Verification Before Completion
2
+
3
+ > Ne jamais marquer une tâche comme terminée sans vérification systématique.
4
+
5
+ ## Triggers
6
+ - L'agent s'apprête à dire "c'est fini" ou "task complete"
7
+ - Toutes les tâches d'un plan ont été exécutées
8
+ - Avant un commit ou un merge
9
+ - L'utilisateur demande "est-ce que c'est terminé ?"
10
+
11
+ ## Instructions
12
+
13
+ ### 1. Vérification des Tests
14
+ ```bash
15
+ # Exécuter toute la suite de tests
16
+ npm test
17
+
18
+ # Ou le framework spécifique au projet
19
+ # pytest, make test, etc.
20
+ ```
21
+ - [ ] **TOUS** les tests passent (pas seulement les nouveaux)
22
+ - [ ] Pas de tests ignorés/skipped sans raison valable
23
+ - [ ] Coverage n'a pas diminué (si outils de coverage)
24
+
25
+ ### 2. Vérification du Linting
26
+ ```bash
27
+ npm run lint
28
+ # ou l'équivalent du projet
29
+ ```
30
+ - [ ] Pas d'erreurs de lint
31
+ - [ ] Pas de warnings critiques
32
+ - [ ] Formatage correct (prettier, black, etc.)
33
+
34
+ ### 3. Vérification du Build
35
+ ```bash
36
+ npm run build
37
+ # ou compilation du projet
38
+ ```
39
+ - [ ] Le build passe sans erreurs
40
+ - [ ] Pas de warnings de dépréciation critiques
41
+ - [ ] Les types sont corrects (TypeScript, etc.)
42
+
43
+ ### 4. Vérification du Plan
44
+ - [ ] Toutes les tâches du plan sont cochées
45
+ - [ ] Le code produit correspond au plan
46
+ - [ ] Pas de fonctionnalité oubliée ou partiellement implémentée
47
+
48
+ ### 5. Vérification Git
49
+ ```bash
50
+ git status
51
+ git diff --stat
52
+ ```
53
+ - [ ] Tous les fichiers modifiés sont identifiés
54
+ - [ ] Pas de fichiers temporaires ou de debug
55
+ - [ ] Le message de commit est descriptif
56
+
57
+ ## Règles
58
+
59
+ 1. **TOUJOURS tout vérifier** — pas de raccourci
60
+ 2. **Tests = preuve唯一** — "ça devrait marcher" n'est pas acceptable
61
+ 3. **Linting obligatoire** — le code doit être propre
62
+ 3. **Build = non-négociable** — pas de completion si le build échoue
63
+ 4. **Plan = référence** — tout ce qui est dans le plan doit être fait
64
+
65
+ ## Sortie Attendue
66
+
67
+ ```markdown
68
+ ✅ Vérification Before Completion
69
+
70
+ Tests: ✅ 47/47 passent
71
+ Lint: ✅ Aucune erreur
72
+ Build: ✅ Succès
73
+ Plan: ✅ 6/6 tâches complétées
74
+ Git: ✅ 3 fichiers modifiés, 0 temporaire
75
+
76
+ 🎉 TÂCHE TERMINÉE — Prêt pour l'étape suivante
77
+ ```
78
+
79
+ ## Si Quelque Chose Échoue
80
+
81
+ ```markdown
82
+ ❌ Vérification Before Completion — BLOQUÉ
83
+
84
+ Tests: ❌ 2 échecs
85
+ - `cache.test.ts:45` — expected 0 but received undefined
86
+ - `cache.test.ts:52` — timeout after 5000ms
87
+
88
+ Lint: ✅ Aucune erreur
89
+ Build: ✅ Succès
90
+ Plan: ✅ 6/6 tâches complétées
91
+
92
+ 🔧 Action requise: corriger les tests échoués avant de continuer.
93
+ ```
94
+
95
+ ## Exemple d'Utilisation
96
+
97
+ ```
98
+ L'agent: "J'ai terminé l'implémentation du cache."
99
+
100
+ → Trigger automatique: Verification Before Completion
101
+
102
+ 1. $ npm test → 47/47 ✅
103
+ 2. $ npm run lint → Clean ✅
104
+ 3. $ npm run build → Success ✅
105
+ 4. Vérification plan → 6/6 tasks ✅
106
+ 5. $ git status → 3 fichiers modifiés ✅
107
+
108
+ ✅ TOUT EST VÉRIFIÉ — La tâche est réellement terminée.
109
+ ```
@@ -0,0 +1,101 @@
1
+ # Writing Plans
2
+
3
+ > Découper le travail en tâches de 2-5 minutes avec chemins exacts, snippets de code et étapes de vérification.
4
+
5
+ ## Triggers
6
+ - Un design doc a été validé par l'utilisateur
7
+ - L'utilisateur demande de planifier un travail
8
+ - L'agent a compris le scope et est prêt à détailler l'exécution
9
+
10
+ ## Instructions
11
+
12
+ ### 1. Analyser le Design Doc
13
+ - Identifier les composants/entités principaux
14
+ - Lister les dépendances entre les composants
15
+ - Déterminer l'ordre d'implémentation (TDD : tests d'abord)
16
+
17
+ ### 2. Découper en Tâches Atomiques
18
+ Chaque tâche DOIT :
19
+ - Être réalisable en **2-5 minutes**
20
+ - Avoir un **résultat vérifiable** clair
21
+ - Spécifier le **chemin exact** du fichier à créer/modifier
22
+ - Inclure un **snippet de départ** si pertinent
23
+ - Définir les **tests de vérification**
24
+
25
+ ### 3. Formater le Plan
26
+
27
+ ```markdown
28
+ # Plan d'Exécution: [Nom]
29
+
30
+ ## Tâche 1: [Nom de la tâche]
31
+ - **Fichier(s):** `src/path/to/file.ts`
32
+ - **Type:** Test / Implementation / Refactor
33
+ - **Description:** Ce qui doit être fait
34
+ - **Snippet de départ:**
35
+ ```typescript
36
+ // code initial
37
+ ```
38
+ - **Vérification:** `npm test -- --grep "nom du test"`
39
+ - **Dépendances:** Aucune (ou tâche X)
40
+
41
+ ## Tâche 2: [Nom de la tâche]
42
+ ...
43
+ ```
44
+
45
+ ### 4. Ordonnancer
46
+ - Les tests AVANT l'implémentation (TDD)
47
+ - Les dépendances avant les dépendants
48
+ - Les tâches parallélisables identifiées pour subagent dispatch
49
+
50
+ ## Règles
51
+
52
+ 1. **Granularité fine** — 2-5 minutes max par tâche
53
+ 2. **Chemins exacts** — pas de "un fichier quelques part"
54
+ 3. **Vérification explicite** — comment savoir que c'est fini
55
+ 4. **Ordre TDD** — tests avant implementation
56
+ 5. **Identifier le parallélisme** — quelles tâches peuvent être dispatchées
57
+
58
+ ## Sortie Attendue
59
+
60
+ - [ ] Plan complet avec toutes les tâches
61
+ - [ ] Chaque tâche a un fichier, description, snippet et vérification
62
+ - [ ] Ordre d'exécution défini
63
+ - [ ] Tâches parallélisables identifiées
64
+ - [ ] Plan validé par l'utilisateur
65
+
66
+ ## Exemple d'Utilisation
67
+
68
+ ```markdown
69
+ # Plan: Système de Cache API
70
+
71
+ ## Tâche 1: Test - Cache create/empty
72
+ - **Fichier:** `src/cache/__tests__/cache.test.ts`
73
+ - **Type:** Test
74
+ - **Description:** Tester que new Cache() est vide
75
+ - **Snippet:**
76
+ ```typescript
77
+ import { Cache } from '../cache';
78
+ describe('Cache', () => {
79
+ it('should be empty when created', () => {
80
+ const cache = new Cache();
81
+ expect(cache.size()).toBe(0);
82
+ });
83
+ });
84
+ ```
85
+ - **Vérification:** `npm test -- --grep "empty when created"`
86
+ - **Dépendances:** Aucune
87
+
88
+ ## Tâche 2: Implémenter Cache class
89
+ - **Fichier:** `src/cache/cache.ts`
90
+ - **Type:** Implementation
91
+ - **Description:** Classe Cache avec Map interne
92
+ - **Snippet:**
93
+ ```typescript
94
+ export class Cache {
95
+ private store = new Map<string, any>();
96
+ size(): number { return this.store.size; }
97
+ }
98
+ ```
99
+ - **Vérification:** Test de la tâche 1 passe
100
+ - **Dépendances:** Tâche 1
101
+ ```
@@ -0,0 +1,112 @@
1
+ # Writing Skills
2
+
3
+ > Comment créer, tester et documenter un nouveau skill pour Qwen Superpowers.
4
+
5
+ ## Triggers
6
+ - L'utilisateur veut créer un nouveau skill
7
+ - L'agent identifie un comportement réutilisable qui mérite un skill
8
+ - Amélioration ou extension de la librairie de skills
9
+
10
+ ## Instructions
11
+
12
+ ### 1. Identifier le Besoin
13
+ - Quel comportement ou processus veut-on standardiser ?
14
+ - Quand ce skill doit-il être déclenché ?
15
+ - Qu'est-ce qui le distingue des skills existants ?
16
+
17
+ ### 2. Créer la Structure
18
+ ```
19
+ skills/<nom-du-skill>/
20
+ ├── SKILL.md # Description, triggers, instructions, règles
21
+ ├── examples/ # (optionnel) Exemples d'utilisation
22
+ └── tests/ # (optionnel) Tests de validation du skill
23
+ ```
24
+
25
+ Utiliser la CLI : `qwen-powers create <nom-du-skill>`
26
+
27
+ ### 3. Rédiger le SKILL.md
28
+
29
+ ```markdown
30
+ # [Nom du Skill]
31
+
32
+ > Description en une phrase.
33
+
34
+ ## Triggers
35
+ - Quand utiliser ce skill ?
36
+ - Quels motifs ou contextes déclenchent ce skill ?
37
+
38
+ ## Instructions
39
+ 1. Étape 1 — description détaillée
40
+ 2. Étape 2 — description détaillée
41
+ 3. Étape 3 — description détaillée
42
+
43
+ ## Règles
44
+ - Règle 1 — non-négociable
45
+ - Règle 2 — importante
46
+ - Règle 3 — recommandée
47
+
48
+ ## Sortie attendue
49
+ - [ ] Élément vérifiable 1
50
+ - [ ] Élément vérifiable 2
51
+ - [ ] Élément vérifiable 3
52
+
53
+ ## Exemple d'utilisation
54
+ \`\`\`
55
+ Exemple concret avec entrée et sortie attendues.
56
+ \`\`\`
57
+ ```
58
+
59
+ ### 4. Tester le Skill
60
+ 1. Activer le skill: `qwen-powers enable <nom>`
61
+ 2. Demander à l'agent de l'utiliser dans un scénario réel
62
+ 3. Vérifier que les sorties sont conformes
63
+ 4. Ajuster les instructions si nécessaire
64
+
65
+ ### 5. Documenter
66
+ - Ajouter des exemples dans `examples/`
67
+ - Documenter les cas limites connus
68
+ - Lister les dépendances vers d'autres skills
69
+
70
+ ## Règles
71
+
72
+ 1. **Un skill = une responsabilité** — pas de skill fourre-tout
73
+ 2. **Triggers explicites** — quand exactement ce skill doit s'activer
74
+ 3. **Instructions actionnables** — étapes concrètes, pas de théorie
75
+ 4. **Sortie vérifiable** — on doit pouvoir vérifier si le skill a bien été exécuté
76
+ 5. **Compatible TDD** — si le skill touche au code, il doit respecter le TDD
77
+
78
+ ## Sortie Attendue
79
+
80
+ - [ ] SKILL.md complet avec toutes les sections
81
+ - [ ] Triggers clairs et détectables
82
+ - [ ] Instructions étape par étape
83
+ - [ ] Règles non-négociables listées
84
+ - [ ] Sortie vérifiable définie
85
+ - [ ] Exemple d'utilisation documenté
86
+
87
+ ## Exemple : Création du Skill "API-Design"
88
+
89
+ ```bash
90
+ $ qwen-powers create api-design
91
+ ✓ Skill 'api-design' créé dans: skills/api-design
92
+
93
+ # Puis éditer skills/api-design/SKILL.md avec le contenu approprié
94
+ ```
95
+
96
+ ```markdown
97
+ # API Design
98
+
99
+ > Concevoir des APIs RESTful cohérentes et documentées.
100
+
101
+ ## Triggers
102
+ - L'utilisateur demande de créer une nouvelle API
103
+ - Refactoring d'une API existante
104
+ - Discussion sur les endpoints ou le contrat API
105
+
106
+ ## Instructions
107
+ 1. Identifier les ressources et leurs relations
108
+ 2. Définir les endpoints (GET, POST, PUT, DELETE)
109
+ 3. Spécifier les schemas d'entrée/sortie
110
+ 4. Documenter les codes de réponse HTTP
111
+ ...
112
+ ```