Mesurer si un graphe de code vaut le coup : le protocole complet – AutomationBoost
◈ Protocole reproductible · Édition 2026

Est-ce qu'un graphe de code vaut le coup chez toi ?

10 questions figées·Dépôt de 38 320 nœuds ·Résultat négatif assumé·Niveau intermédiaire

Un outil de cartographie promet de faire économiser des tokens à ton agent. Sur mon dépôt, il m'en a fait consommer 71 % de plus, pour une seule bonne réponse sur dix.

Ce n'est pas un argument contre l'outil : c'est un argument pour mesurer avant d'adopter. Voici le protocole exact, avec les questions, les scripts et les chiffres. Reproduis-le sur ton projet — tu obtiendras peut-être l'inverse, et c'est tout l'intérêt.

⚡ La règle qui rend la mesure honnête

Les questions se figent avant l'installation. Sinon on écrit, sans le vouloir, les questions auxquelles l'outil sait répondre.

1 · Les dix questions, figées avant installation

Huit portent sur des relations entre fichiers, le terrain annoncé de ce type d'outil. Deux sont de simples questions de localisation, gardées volontairement : la documentation admet qu'une recherche directe peut y coûter moins cher. Les retirer aurait truqué le résultat.

#TypeQuestion
Q1relationQuel workflow n8n publie sur Blotato, et par quel chemin (déclencheur → publication) ?
Q2relationQuels skills dépendent de HyperFrames ?
Q3relationOù est défini le mot-clé du CTA du Journal IA, et qui le consomme ?
Q4relationQuels fichiers écrivent dans un Google Sheet (suivi vidéos / leads) ?
Q5relationQuels fichiers référencent la banque d'avatars `_shared/avatar-bank` ?
Q6relationQuelle chaîne relie l'agent `social-analytics` à la production d'une vidéo ?
Q7relationQui utilise le webhook `tts-gen` (voix clonée) ?
Q8relationQu'est-ce qui déploie sur Coolify, et qu'est-ce qui touche `previsualisation` ?
Q9**simple**Où est le script `render-publish` du Journal IA ?
Q10**simple**Où est le `Dockerfile` de `previsualisation` ?

2 · Le protocole

  1. Fige les questions. Écris-les dans un fichier, avant tout.
  2. Joue-les sans le graphe. Note pour chacune : nombre d'appels d'outils, durée, tokens.
  3. Installe et génère la carte. Ne touche à rien d'autre.
  4. Rejoue les mêmes questions, à l'identique. Même formulation, même ordre.
  5. Compte les réponses justes. C'est la colonne que tout le monde oublie — et c'est la seule qui compte vraiment.
⚠ Le piège de la mesure

Les compteurs d'avant et d'après viennent souvent d'outils différents. Le sens de l'écart est fiable, la décimale ne l'est pas. Dis-le au lieu de publier trois chiffres après la virgule.

3 · Mes résultats, question par question

#Appels avantAppels aprèsTokens avantTokens après
Q1318696088
Q2314652406
Q3316401652
Q43110481632
Q531128294
Q63155981654
Q731897919
Q831791070
Q9415541653
Q10113231
Total291010 28117 599

En résumé : -66 % d'appels d'outils, -82 % de temps — et +71 % de tokens. Huit réponses justes sur dix avant, une seule après.

4 · Comment lire un résultat pareil

La question qui perd : « où est le Dockerfile ». Trois tokens en recherche directe, 231 avec le graphe — pour une réponse fausse. Un Dockerfile n'a pas d'arbre syntaxique : il n'est nulle part dans la carte.

La question qui gagne : reconstituer une chaîne d'appels entre agents. −70 %. C'est exactement le cas d'usage annoncé, et il le tient.

Un outil qui gagne sur une question sur dix n'est pas un mauvais outil. C'est un outil dont le terrain ne correspond pas au tien.

Les trois raisons de l'échec, chez moi

  1. La composition du dépôt. 38 320 nœuds, mais le cœur du système ne pèse que 15 %. Le reste est du code tiers qui noie chaque requête.
  2. La logique n'est pas dans le code. Elle est écrite en markdown et en shell. Un graphe d'appels de fonctions ne la voit pas.
  3. Le vrai système est ailleurs. 529 workflows vivent sur un serveur, pas dans le dépôt. Aucun n'est dans la carte.

5 · Les deux scripts de mesure

À adapter à ton projet : ce sont ceux qui ont produit les chiffres ci-dessus.

run-avant.sh
#!/bin/bash
# Benchmark "AVANT" — répond aux 10 questions sans graphe, en mesurant le coût réel.
# Les tokens sont comptés par rtk (compteur réel, pas une estimation).
export PATH=/home/claude/.local/bin:/home/claude/tools/node/bin:$PATH
cd /work

OUT=/work/graphify-benchmark/_raw
mkdir -p "$OUT"
RES=/work/graphify-benchmark/avant.tsv
echo -e "q\tcalls\tbytes\tms\ttok_in\ttok_out" > "$RES"

snap(){ rtk gain -f json 2>/dev/null | node -e 'let s="";process.stdin.on("data",d=>s+=d).on("end",()=>{const j=JSON.parse(s).summary;console.log(j.total_commands,j.total_input,j.total_output)})'; }

run_q(){
  local q="$1"; shift
  local log="$OUT/$q.txt"; : > "$log"
  read c0 i0 o0 <<< "$(snap)"
  local t0=$(date +%s%3N)
  local n=0
  while IFS= read -r cmd; do
    [ -z "$cmd" ] && continue
    n=$((n+1))
    { echo "### \$ $cmd"; eval "$cmd" 2>&1; echo; } >> "$log"
  done
  local t1=$(date +%s%3N)
  read c1 i1 o1 <<< "$(snap)"
  local bytes=$(wc -c < "$log")
  echo -e "$q\t$n\t$bytes\t$((t1-t0))\t$((i1-i0))\t$((o1-o0))" >> "$RES"
  echo "$q: calls=$n bytes=$bytes ms=$((t1-t0)) tok_in=$((i1-i0)) tok_out=$((o1-o0))"
}

# ---------- Q1 : quel workflow publie sur Blotato, par quel chemin ----------
run_q Q1 <<'EOF'
rtk grep -ril "blotato" --include=*.md --include=*.json --include=*.sh .
rtk grep -rn "blotato" .claude/skills/veille-to-video/SKILL.md
rtk grep -rn "Validation Sheet\|programme TikTok\|soNcMKsz" -r . --include=*.md
EOF

# ---------- Q2 : quels skills dépendent de HyperFrames ----------
run_q Q2 <<'EOF'
rtk grep -rl "hyperframes" .claude/skills/
rtk grep -rl "hyperframes" .agents/skills/
rtk grep -rn "hyperframes" .claude/skills/veille-to-video/SKILL.md
EOF

# ---------- Q3 : mot-clé CTA du Journal IA, défini où, consommé par qui ----------
run_q Q3 <<'EOF'
rtk grep -rn "VEILLE" .claude/skills/veille-journal-ia/
rtk grep -rl "journal-ia\|Journal IA" . --include=*.md --include=*.sh
rtk grep -rn "CTA" .claude/skills/veille-journal-ia/SKILL.md
EOF

# ---------- Q4 : qui écrit dans un Google Sheet ----------
run_q Q4 <<'EOF'
rtk grep -rl "docs.google.com/spreadsheets\|googleSheets\|Google Sheet" . --include=*.md --include=*.json --include=*.sh --include=*.mjs
rtk grep -rn "Sheet" .claude/agents/script-writer.md
rtk grep -rn "Sheet" .claude/agents/social-analytics.md
EOF

# ---------- Q5 : qui référence la banque d'avatars ----------
run_q Q5 <<'EOF'
rtk grep -rl "avatar-bank" .
rtk grep -rn "avatar-bank" .claude/skills/veille-to-video-v3/SKILL.md
rtk find autoboost-neon-videos/_shared/avatar-bank -maxdepth 1
EOF

# ---------- Q6 : chaîne social-analytics -> vidéo ----------
run_q Q6 <<'EOF'
rtk read .claude/agents/social-analytics.md
rtk read .claude/agents/script-writer.md
rtk grep -rn "STRATEGIE.md" . --include=*.md
EOF

# ---------- Q7 : qui utilise le webhook tts-gen ----------
run_q Q7 <<'EOF'
rtk grep -rl "tts-gen" .
rtk grep -rn "tts-gen" CLAUDE.md
rtk grep -rn "voixUrl" . --include=*.md
EOF

# ---------- Q8 : qui déploie sur Coolify / qui touche previsualisation ----------
run_q Q8 <<'EOF'
rtk grep -rl "coolify" . --include=*.md --include=*.sh --include=*.json
rtk grep -rl "previsualisation" . --include=*.md --include=*.sh
rtk read .claude/hooks/publish-previsualisation.sh
EOF

# ---------- Q9 (SIMPLE) : où est render-publish ----------
run_q Q9 <<'EOF'
rtk find . -name "render-publish*"
EOF

# ---------- Q10 (SIMPLE) : où est le Dockerfile de previsualisation ----------
run_q Q10 <<'EOF'
rtk find previsualisation -maxdepth 1 -name Dockerfile
EOF

echo "--- TOTAL ---"
node -e '
const fs=require("fs");
const L=fs.readFileSync("'"$RES"'","utf8").trim().split("\n").slice(1).map(l=>l.split("\t"));
const s=(i)=>L.reduce((a,r)=>a+ +r[i],0);
console.log("calls",s(1),"bytes",s(2),"ms",s(3),"tok_in",s(4),"tok_out",s(5));
'
run-apres.sh
#!/bin/bash
# Benchmark "APRES" — mêmes 10 questions, via le graphe Graphify.
export PATH=/home/claude/.local/bin:/home/claude/tools/node/bin:$PATH
cd /work
OUT=/work/graphify-benchmark/_raw_apres
mkdir -p "$OUT"
RES=/work/graphify-benchmark/apres.tsv
echo -e "q\tcalls\tbytes\tms\ttok_graphify" > "$RES"

run_q(){
  local q="$1"; shift
  local log="$OUT/$q.txt"; : > "$log"
  local t0=$(date +%s%3N); local n=0
  while IFS= read -r cmd; do
    [ -z "$cmd" ] && continue
    n=$((n+1))
    { echo "### \$ $cmd"; eval "$cmd" 2>&1; echo; } >> "$log"
  done
  local t1=$(date +%s%3N)
  local bytes=$(wc -c < "$log")
  # graphify annonce lui-meme le cout en tokens de sa reponse ; on le recupere
  local tok=$(grep -o '~[0-9]\+ tokens' "$log" | head -1 | tr -dc '0-9')
  [ -z "$tok" ] && tok=$((bytes/4))
  echo -e "$q\t$n\t$bytes\t$((t1-t0))\t$tok" >> "$RES"
  echo "$q: calls=$n bytes=$bytes ms=$((t1-t0)) tok=$tok"
}

run_q Q1 <<'EOF'
graphify query "quel workflow publie sur Blotato"
EOF

run_q Q2 <<'EOF'
graphify query "quels skills dependent de hyperframes"
EOF

run_q Q3 <<'EOF'
graphify query "mot cle CTA VEILLE journal IA"
EOF

run_q Q4 <<'EOF'
graphify query "qui ecrit dans google sheet"
EOF

run_q Q5 <<'EOF'
graphify query "avatar-bank banque avatar"
EOF

run_q Q6 <<'EOF'
graphify query "social analytics vers production video"
EOF

run_q Q7 <<'EOF'
graphify query "tts-gen voix clonee"
EOF

run_q Q8 <<'EOF'
graphify query "deploiement coolify previsualisation"
EOF

run_q Q9 <<'EOF'
graphify query "render-publish journal IA"
EOF

run_q Q10 <<'EOF'
graphify query "Dockerfile previsualisation"
EOF

echo "--- TOTAL ---"
node -e '
const fs=require("fs");
const L=fs.readFileSync("'"$RES"'","utf8").trim().split("\n").slice(1).map(l=>l.split("\t"));
const s=i=>L.reduce((a,r)=>a+ +r[i],0);
console.log("calls",s(1),"bytes",s(2),"ms",s(3),"tok",s(4));
'

6 · Pour qui c'est, pour qui ce ne l'est pas

Si ton projet tient en cinq fichiers, passe ton chemin. Si tu as une grosse base de code avec beaucoup de documents, c'est probablement pour toi. Entre les deux — comme moi — mesure, c'est une demi-heure.

Si tu préfères qu'on regarde ensemble

Ce protocole te dit si un outil vaut le coup. Il ne te dit pas quoi construire ensuite. Si tu veux qu'on regarde ce que ton système coûte réellement et où l'automatiser change quelque chose, on commence par un audit — et si le calcul ne tombe pas en ta faveur, je te le dis.

Recevoir mon audit

BENCHMARK GRAPHE DE CODE | TONY PAYET / AUTOMATION BOOST | 2026 EDITION

← Toutes les ressources