Améliorations robustesse MCP et script de mise à jour

- Augmente MAX_TOOL_ITERATIONS à 20 et timeout HTTP à 300s pour tolérer les erreurs/temps d'attente
- Ajoute des directives de gestion d'erreurs dans CLAUDE.md pour les appels MCP
- Introduit un mode bootstrap (`CRAZYCLAUDE_BOOTSTRAP=1`) pour éviter les git pull en boucle
- Découpe les tâches longues et préconise des corrections ciblées pour les artefacts mineurs
This commit is contained in:
2026-03-29 20:34:29 +02:00
parent 7c44ebd766
commit c7773a3692
3 changed files with 21 additions and 8 deletions

View File

@@ -54,6 +54,15 @@ Traite toi-même **uniquement si** :
En cas de doute : délègue. En cas de doute : délègue.
Si `mcp__qwen3__task` retourne une erreur ou timeout :
1. Lire les fichiers concernés — vérifier si le travail a quand même été effectué.
2. Ne reprendre soi-même que si le fichier est absent ou manifestement incorrect.
3. Ne jamais supposer l'échec sans vérification.
4. Les artefacts mineurs (ligne parasite, commentaire résiduel) se corrigent avec
un second appel ciblé — pas besoin de tout réécrire.
Pour les tâches longues : découper en plusieurs appels successifs plutôt qu'un seul gros appel.
## Garde-fous absolus ## Garde-fous absolus
- Ne jamais passer `rm -rf` sans confirmation explicite - Ne jamais passer `rm -rf` sans confirmation explicite
- Ne jamais committer sans que les tests passent - Ne jamais committer sans que les tests passent

View File

@@ -19,7 +19,7 @@ from pathlib import Path
import requests import requests
QWEN3_MODEL = "LMStudio:qwen/qwen3-coder-next" QWEN3_MODEL = "LMStudio:qwen/qwen3-coder-next"
MAX_TOOL_ITERATIONS = 10 MAX_TOOL_ITERATIONS = 20
# Répertoire llm-functions relatif à ce script # Répertoire llm-functions relatif à ce script
_HERE = Path(__file__).parent _HERE = Path(__file__).parent
@@ -192,7 +192,7 @@ def call_qwen3(task: str, files: list[str]) -> str:
resp = requests.post( resp = requests.post(
f"{_aichat_url}/v1/chat/completions", f"{_aichat_url}/v1/chat/completions",
json=payload, json=payload,
timeout=120, timeout=300,
) )
resp.raise_for_status() resp.raise_for_status()
data = resp.json() data = resp.json()

View File

@@ -17,7 +17,7 @@ if [[ "$(basename "$CLAUDE_DIR")" != ".claude" ]]; then
rsync -a --exclude='.git' --exclude='llm-functions' --exclude='venv' \ rsync -a --exclude='.git' --exclude='llm-functions' --exclude='venv' \
"$CLAUDE_DIR/" "$TARGET/" "$CLAUDE_DIR/" "$TARGET/"
echo "==> Rebuild des outils" echo "==> Rebuild des outils"
exec bash "$TARGET/update_crazyclaude.sh" "${@:2}" exec env CRAZYCLAUDE_BOOTSTRAP=1 bash "$TARGET/update_crazyclaude.sh" "${@:2}"
fi fi
# On est maintenant dans .claude/, on peut continuer normalement # On est maintenant dans .claude/, on peut continuer normalement
@@ -43,12 +43,16 @@ require git
require argc require argc
require jq require jq
if [[ "${CRAZYCLAUDE_BOOTSTRAP:-0}" == "1" ]]; then
echo "=== Mode bootstrap — git pull ignoré ==="
else
echo "=== Mise à jour de .claude (CrazyClaude) ===" echo "=== Mise à jour de .claude (CrazyClaude) ==="
run git -C "$CLAUDE_DIR" pull --ff-only run git -C "$CLAUDE_DIR" pull --ff-only
echo "" echo ""
echo "=== Mise à jour de .claude/llm-functions ===" echo "=== Mise à jour de .claude/llm-functions ==="
run git -C "$LLM_DIR" pull --ff-only run git -C "$LLM_DIR" pull --ff-only
fi
echo "" echo ""
echo "=== Reconstruction des outils llm-functions ===" echo "=== Reconstruction des outils llm-functions ==="