refactor: rename MCP tool from qwen3_task to task and update delegation flow

- Rename MCP tool `qwen3_task` → `task` in server.py and all references
- Enforce direct use of `mcp__qwen3__task` (no sub-agents) in docs
- Add bootstrap logic to install.sh/update_crazyclaude.sh for repo self-installation
- Introduce tools-local/ directory for local tool overrides
- Add test suite (test_qwen3.sh, test_qwen3.md) to validate Qwen3 file generation
- Update .gitignore: ignore test_qwen3_output/, add missing .claude/
- Add system prompt to server.py for fs_write enforcement
- Update agent docs (qwen3-worker, code-reviewer, delegation-rules, task-planner) to reflect new tool name and workflow
- Add system instruction: always use fs_write/fs_patch, never display content in response
This commit is contained in:
2026-03-27 17:31:40 +01:00
parent ee625dfe3d
commit 5a0874c3c0
13 changed files with 361 additions and 44 deletions

View File

@@ -1,13 +1,14 @@
---
name: delegation-rules
description: Règles pour décider quand et comment déléguer à qwen3-worker via le MCP qwen3_task
description: Règles pour décider quand et comment déléguer à Qwen3 via mcp__qwen3__task
---
# Règles de Délégation à Qwen3
Qwen3-Coder opère via le MCP tool `qwen3_task`. Il dispose d'outils filesystem, shell
et web (llm-functions) — il peut lire/écrire des fichiers, exécuter des commandes,
faire des recherches web et exécuter du code de façon autonome.
Qwen3-Coder opère via l'outil MCP `mcp__qwen3__task`, appelé **directement** — jamais
via un sous-agent (Agent tool). Il dispose d'outils filesystem, shell et web (llm-functions)
— il peut lire/écrire des fichiers, exécuter des commandes, faire des recherches web et
exécuter du code de façon autonome.
## Critères de délégation (TOUS requis)
@@ -29,8 +30,10 @@ faire des recherches web et exécuter du code de façon autonome.
## Procédure
1. Évalue les critères ci-dessus.
2. Si éligible → utilise le subagent `qwen3-worker` avec une description précise de la tâche.
2. Si éligible → appelle directement `mcp__qwen3__task` avec une description précise de la tâche.
Ne pas pré-charger les fichiers : Qwen3 les lit lui-même si nécessaire.
Pour toute création/modification de fichier, préciser dans le prompt :
"Écris le fichier via fs_write, ne pas afficher le contenu dans ta réponse."
3. Attends le résumé (STATUS / FILES_MODIFIED / SUMMARY).
4. Si `STATUS: failure` → prends en charge toi-même.
5. Si `STATUS: partial` → corrige les points restants directement.
@@ -40,4 +43,4 @@ faire des recherches web et exécuter du code de façon autonome.
- Refactoring impliquant une vision cross-module
- Changement d'architecture ou de design pattern
- Debugging avec stacktrace à analyser sur plusieurs fichiers
- Tâches nécessitant le contexte de la conversation en cours
- Tâches nécessitant le contexte de la conversation en cours

46
skills/test_qwen3.md Normal file
View File

@@ -0,0 +1,46 @@
---
name: test-qwen3
description: Évalue Qwen3 en lui déléguant des tâches via mcp__qwen3__task et en vérifiant les fichiers produits.
---
Exécute les tests suivants dans l'ordre. Pour chaque test :
1. Appelle `mcp__qwen3__task` avec la tâche
2. Vérifie que le fichier attendu existe dans `test_qwen3_output/`
3. Vérifie que le contenu est propre (pas de balises markdown résiduelles, pas de sérialisation JSON)
4. Valide syntaxiquement si applicable
5. Affiche ✓ PASS ou ✗ FAIL avec la raison
Répertoire de sortie : `test_qwen3_output/` à la racine du projet (le créer si absent).
## Tests
**T1 — Python basique**
Tâche : "Crée le fichier test_qwen3_output/hello.py qui affiche Hello, World!"
Vérif : fichier existe, contient `print`, `python3` produit "Hello, World!", pas de balises ``` dans le fichier
**T2 — Bash boucle**
Tâche : "Crée le fichier test_qwen3_output/count.sh, script bash qui affiche les nombres de 1 à 5 un par ligne"
Vérif : fichier existe, `bash -n` passe, exécution produit "5" en dernière ligne, pas de balises ```
**T3 — Python récursion**
Tâche : "Crée le fichier test_qwen3_output/fibonacci.py avec une fonction fib(n) et à la fin print(fib(10))"
Vérif : fichier existe, `python3` retourne 55, pas de balises ```
**T4 — Markdown titre**
Tâche : "Crée le fichier test_qwen3_output/intro.md avec un titre H1 CrazyClaude et un paragraphe de présentation"
Vérif : fichier existe, commence par `#`, plus de 50 caractères, pas de balises ``` englobantes
**T5 — Markdown documentation**
Tâche : "Crée le fichier test_qwen3_output/api.md documentant la fonction process(data, options) avec les sections Description, Paramètres, Retour, Exemple"
Vérif : 4 sections présentes, contenu structuré, pas de balises ```
**T6 — Markdown changelog**
Tâche : "Crée le fichier test_qwen3_output/changelog.md avec 3 entrées au format ## [version] - date avec sous-sections Added/Fixed/Changed"
Vérif : au moins 3 entrées `## [`, sous-sections présentes
## Résumé final
Affiche :
- Le score N/6
- Pour les FAIL : contenu du fichier produit (ou absence) pour diagnostic
- Évaluation qualitative : ce que Qwen3 fait bien/mal (utilisation des outils, qualité du contenu, propreté des fichiers)