Finding V02+A9 de la passe d'audit GenAI, re-verifie firsthand le 2026-09-12 sur origin/main = 162779ec06. Confirme comme residuel du correctif de See #15285 : le paragraphe canonique a ete ecrit, mais les deux blocs copiables du chemin canonique Linux le contredisent toujours. Priorite : cette fiche est lue le jour de la seance (installation des postes en debut de session).
Le defaut (1) — blocs copiables du chemin CANONIQUE contredisent le paragraphe canonique du meme document
INSTALLATION-CLAUDE-CODE.md porte deux affirmations incompatibles a 40 lignes d'ecart :
- L14 (encadre « Chemin canonique ») : « le binaire vit sous
~/.local/bin et se met a jour via claude update », source citee code.claude.com/docs/en/quickstart.
- L53-L56 (section « ### Chemin canonique : Installation Native » → Linux/WSL) :
curl -fsSL https://install.claude.com | sh
echo 'export PATH="$HOME/.claude/bin:$PATH"' >> ~/.bashrc
Deux ecarts, verifies contre la doc officielle consultee le jour de la re-verification (2026-09-12, https://code.claude.com/docs/en/quickstart) : la commande canonique officielle est curl -fsSL https://claude.ai/install.sh | bash (pas install.claude.com pipe vers sh), et le binaire natif ne vit pas sous ~/.claude/bin — c'est le chemin de l'ere npm/legacy, contredit par le L14 du meme document. Un etudiant Linux/WSL qui suit le chemin canonique ajoute une entree PATH inutile ; si l'installateur n'a pas deja mis ~/.local/bin au PATH de son shell, claude --version echoue sans aucun indice.
Le defaut (2) — le test compagnon test_claude_cli.py L79-81 echoue en l'etat (verifie par execution)
Le cadre a change depuis le finding original : l'implementation verify_installation() / installation_status() (claude_cli.py L43-105) teste desormais l'executabilite REELLE (appel claude --version via subprocess) — le diagnostic lui-meme est sain. Le defaut vivant est le test :
def test_verify_installation_true_when_in_path(monkeypatch):
monkeypatch.setattr(claude_cli.shutil, "which", lambda cmd: "/usr/local/bin/claude")
assert claude_cli.verify_installation() is True
Il ne mocke que shutil.which : installation_status() enchaine sur un appel subprocess REEL vers /usr/local/bin/claude --version. Sur toute machine sans binaire a exactement ce chemin, l'appel leve FileNotFoundError → etat « non-executable » → verify_installation() rend False → le test ECHOUE. Verifie par execution locale le 2026-09-12 :
$ python -m pytest test_claude_cli.py -k "verify_installation" -q
test_claude_cli.py:81: in test_verify_installation_true_when_in_path
assert claude_cli.verify_installation() is True
E assert False is True
================= 1 failed, 2 passed, 27 deselected in 0.73s ==================
Le test contredit en outre le docstring de sa propre suite (« CPU-only, no network, no real claude CLI invocation... deterministic ») : il n'est deterministe que sur une machine qui a une CLI Claude reellement installee.
Localisation
MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/docs/INSTALLATION-CLAUDE-CODE.md L14 / L51-57.
MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/notebooks/helpers/test_claude_cli.py L79-81 (et le module claude_cli.py L43-105 pour la lecture).
Sortie de re-verification (origin/main, 2026-09-12)
$ git show origin/main:...INSTALLATION-CLAUDE-CODE.md | grep -n 'install.claude.com\|claude/bin\|local/bin'
14:... le binaire vit sous `~/.local/bin` et se met a jour via `claude update` ...
53:curl -fsSL https://install.claude.com | sh
56:echo 'export PATH="$HOME/.claude/bin:$PATH"' >> ~/.bashrc
(doc officielle quickstart, consultee 2026-09-12 : curl -fsSL https://claude.ai/install.sh | bash)
Ce qu'un correctif devrait faire (sans l'ecrire)
- Aligner les deux blocs copiables Linux/WSL sur la commande officielle du jour et sur le chemin reel du binaire natif — ou, si
install.claude.com est le nouvel endpoint officiel a une date donnee, le sourcer avec date de consultation comme le fait deja L14 (l'incoherence interne L14 vs L56 est le defaut, quelle que soit la valeur de verite externe).
- Rendre le test hermetique : mocker aussi la couche subprocess (ou
installation_status) pour que le verdict True ne depende pas d'une CLI reellement installee sur la machine qui execute la suite.
Coordination
La PR #15656 (OPEN) touche ce document mais uniquement la section OpenRouter/proxy (L97+) — pas cette zone. Le correctif de #15285 a etabli le paragraphe canonique ; ce residuel est precisement l'acceptance 1 de See #15285 (« coherents avec la documentation officielle du fournisseur au jour de la PR ») honoree par la prose mais pas par le bloc copiable.
Reassessed by audit-issue-opener: CONFIRMED pedagogy (blocs copiables du chemin canonique incoherents avec le paragraphe canonique et la doc officielle) + CONFIRMED bug (test non hermetique, echoue en l'etat)
Finding V02+A9 de la passe d'audit GenAI, re-verifie firsthand le 2026-09-12 sur
origin/main=162779ec06. Confirme comme residuel du correctif de See #15285 : le paragraphe canonique a ete ecrit, mais les deux blocs copiables du chemin canonique Linux le contredisent toujours. Priorite : cette fiche est lue le jour de la seance (installation des postes en debut de session).Le defaut (1) — blocs copiables du chemin CANONIQUE contredisent le paragraphe canonique du meme document
INSTALLATION-CLAUDE-CODE.mdporte deux affirmations incompatibles a 40 lignes d'ecart :~/.local/binet se met a jour viaclaude update», source citee code.claude.com/docs/en/quickstart.Deux ecarts, verifies contre la doc officielle consultee le jour de la re-verification (2026-09-12, https://code.claude.com/docs/en/quickstart) : la commande canonique officielle est
curl -fsSL https://claude.ai/install.sh | bash(pasinstall.claude.compipe verssh), et le binaire natif ne vit pas sous~/.claude/bin— c'est le chemin de l'ere npm/legacy, contredit par le L14 du meme document. Un etudiant Linux/WSL qui suit le chemin canonique ajoute une entree PATH inutile ; si l'installateur n'a pas deja mis~/.local/binau PATH de son shell,claude --versionechoue sans aucun indice.Le defaut (2) — le test compagnon
test_claude_cli.pyL79-81 echoue en l'etat (verifie par execution)Le cadre a change depuis le finding original : l'implementation
verify_installation()/installation_status()(claude_cli.pyL43-105) teste desormais l'executabilite REELLE (appelclaude --versionvia subprocess) — le diagnostic lui-meme est sain. Le defaut vivant est le test :Il ne mocke que
shutil.which:installation_status()enchaine sur un appel subprocess REEL vers/usr/local/bin/claude --version. Sur toute machine sans binaire a exactement ce chemin, l'appel leveFileNotFoundError→ etat « non-executable » →verify_installation()rend False → le test ECHOUE. Verifie par execution locale le 2026-09-12 :Le test contredit en outre le docstring de sa propre suite (« CPU-only, no network, no real
claudeCLI invocation... deterministic ») : il n'est deterministe que sur une machine qui a une CLI Claude reellement installee.Localisation
MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/docs/INSTALLATION-CLAUDE-CODE.mdL14 / L51-57.MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/notebooks/helpers/test_claude_cli.pyL79-81 (et le moduleclaude_cli.pyL43-105 pour la lecture).Sortie de re-verification (origin/main, 2026-09-12)
Ce qu'un correctif devrait faire (sans l'ecrire)
install.claude.comest le nouvel endpoint officiel a une date donnee, le sourcer avec date de consultation comme le fait deja L14 (l'incoherence interne L14 vs L56 est le defaut, quelle que soit la valeur de verite externe).installation_status) pour que le verdict True ne depende pas d'une CLI reellement installee sur la machine qui execute la suite.Coordination
La PR #15656 (OPEN) touche ce document mais uniquement la section OpenRouter/proxy (L97+) — pas cette zone. Le correctif de #15285 a etabli le paragraphe canonique ; ce residuel est precisement l'acceptance 1 de See #15285 (« coherents avec la documentation officielle du fournisseur au jour de la PR ») honoree par la prose mais pas par le bloc copiable.
Reassessed by audit-issue-opener: CONFIRMED pedagogy (blocs copiables du chemin canonique incoherents avec le paragraphe canonique et la doc officielle) + CONFIRMED bug (test non hermetique, echoue en l'etat)