Code Guardian 17.16 : terminé seulement avec preuve, et une faille dans les verrous

Quand une tâche est-elle terminée ? Depuis la 17.15, les nouveaux dossiers de tâche ne se ferment que lorsque chaque critère obligatoire est prouvé. Deuxième raison de lire cette mise à jour : les verrous pour la suppression, le déploiement et la migration présentent une faille, et la 17.16 a corrigé la note à ce sujet. Ce tour d'horizon des versions 17.14 à 17.16 indique quand une tâche est considérée comme terminée, ce que les verrous interceptent désormais, quelle faille subsiste et ce que vous devriez faire au préalable.
L'article consacré à la version précédente se trouve ici : Code Guardian 17.13 : nouveautés.
Ce que vous devriez faire maintenant
- Exécutez l'installateur. Lors de la mise à jour, il signale une par une chaque fichier d'un skill d'accompagnement modifié ou complété en local.
- Vérifiez que Python 3.9 ou une version plus récente est installé. Si python3 est absent, une ligne
[toolchain]avec la correction apparaît à chaque modification de code. - Créez votre prochaine tâche avec
aufgabe.py neu. Le nouveau dossier porte des critères d'acceptation. - Faites passer par
beleg-lauf.pyles exécutions de tests qui doivent servir de preuve. Le journal est alors scellé. - Écrivez les commandes de suppression, de déploiement et de migration sans bloc redirigeant, ou vérifiez-les vous-même. Les formes concernées figurent dans la section « Quelles limites restent ouvertes ? ».
Quand une tâche se ferme-t-elle désormais ?
Depuis la 17.15, les nouveaux dossiers de tâche (aufgabe.py neu) portent des critères d'acceptation. Ils sont figés et scellés avant votre premier commit. aufgabe.py abschliessen ne ferme la tâche que lorsque chaque critère obligatoire est prouvé.
| Situation | Règle applicable |
|---|---|
| Un critère s'ajoute plus tard | Seulement sous forme d'ajout visible avec une nouvelle revue |
| Vous travaillez volontairement sans critères | --kriterien-entfaellt "<grund>" |
| Le dépôt n'a pas encore de premier commit | --ohne-basis |
Verdict de revue REVIEW: CHANGES sans constat critique | Vaut comme preuve |
| Verdict de revue « NICHT GEPRÜFT » (non vérifié) | Ne vaut jamais comme preuve, quelle que soit l'orthographe |
| Dossiers de tâche existants | Non concernés |
Ce que cela signifie pour vous : « terminé » exige une preuve pour chaque critère obligatoire. Une simple affirmation ne suffit pas.
Comment un journal de tests devient-il une preuve ?
Le nouvel outil beleg-lauf.py scelle un journal de tests avec l'état du contenu de votre arbre de travail. Si l'arbre change pendant l'exécution, la preuve est considérée comme périmée. Les tests ignorés (SKIP) ne prouvent rien. Si HEAD pointe entre-temps sur un autre commit, par exemple après un rebase, le refus nomme précisément ce cas.
S'y ajoutent des cas d'acceptation cachés. Un critère de type review · holdout ne vaut que par des cas qu'un sous-agent tout neuf écrit après le figement et qui ne sont pas visibles pendant le développement. Chaque cas exige un journal scellé.
Ce que cela signifie pour vous : lancez l'exécution de tests qui doit servir de preuve via beleg-lauf.py et ne modifiez rien dans l'arbre de travail pendant ce temps. Ne comptez pas sur des tests ignorés.
Que peuvent faire les deux nouveaux skills ?
Le paquet Claude compte désormais 31 skills, contre 29 auparavant. Les deux nouveaux ne démarrent que sur votre appel et figurent sur la liste de blocage du verrou d'écriture. Lors d'une exécution sans surveillance, ils ne peuvent pas être outrepassés.
goalengine
- Ce qu'il fait : il transforme une intention d'objectif en contrat d'objectif aux versions fixes. Un contrat n'est valable qu'après validation explicite d'une version nommée et il est ensuite figé. Un critère n'est considéré comme rempli qu'avec une preuve : un commit, un journal avec
exit=0, une URL ou une vérification manuelle nommée. Lors de la validation, il fournit un prompt/goalprêt à copier. - Ce qu'il ne fait pas : aucun hook n'impose le contrat.
- Où le voir : le poste de pilotage dispose des nouveaux onglets « Goal Engineering » et « Todos » pour chaque projet. Vos objectifs se trouvent dans le dossier
.goals/du projet concerné ; sous~/.claude/goals/ne figure que la liste des projets ayant des objectifs.
codeguard-master
- Ce qu'il fait : il observe les projets de votre machine que vous lui indiquez (sans liste, ceux qui ont des objectifs
goalengine). À intervalle fixe, il recueille l'état de la situation sans modèle. - Ce qu'il ne fait pas : il n'intervient pas sur un simple soupçon. Seulement lorsqu'un déclencheur fixe se rallume, un modèle sans outils choisit quelques mesures, avec un écart minimal et un budget quotidien. Les textes sortants proviennent uniquement de modèles fixes. S'il se trompe trop souvent, il passe en mode signalement seul.
- Ce que cela coûte : la cadence via launchd, vous la configurez vous-même, et chaque exécution de modèle coûte des tokens.
Ce que cela signifie pour vous : les deux skills sont des offres. Sans votre appel, il ne se passe rien.
Qu'est-ce qui change dans la vérification après chaque modification de fichier ?
Depuis la 17.14, elle s'exécute dans un seul processus python3, le module hooks/_cg_reminder.py. Auparavant, elle lançait environ 115 processus auxiliaires. Les textes et l'ordre des avertissements restent identiques. Vous n'avez rien à faire : la vérification s'exécute d'elle-même après chaque modification, elle n'a besoin que de python3 (voir l'étape 2 ci-dessus).
Résultat sous Windows : dans le cas typique (médiane), la vérification est de 2,4 à 7,7 fois plus rapide qu'auparavant. Seuls les fichiers Markdown restent inchangés.
Objectif et état : sous Windows, la vérification ne doit guère durer plus longtemps que sous Linux et macOS. Concrètement : sur 100 appels, 95 durent au plus 1,25 fois la durée du plus lent des deux autres systèmes. Pour les scripts shell et Markdown, c'est le cas d'après la mesure provisoire. L'état des autres langages figure dans la section « Quelles limites restent ouvertes ? ».
Autres changements de la 17.14 que vous remarquerez :
[security-shape]ne signale plus les formes sensibles pour la sécurité que dans les lignes écrites par la modification. L'avertissement ne s'applique qu'à PHP, Python, JavaScript, TypeScript et Vue.- Le nouvel avertissement
[plan-abweichung]signale, une fois par fichier et par session, lorsque vous modifiez un fichier de code qui ne figure dans aucune TRACE ouverte. Il ne bloque jamais. log-inventur.py inventurtrouve les sources de journaux et indique quel fichier estAKTUELL(à jour) et lequel estVERALTET(périmé).
Un verrou m'arrête-t-il désormais plus souvent ?
Là où quelque chose passait jusqu'ici entre les mailles, oui. Là où il arrêtait à tort, moins souvent.
Plus strict depuis la 17.15 :
- Les verrous de suppression et de migration examinent un programme transmis par pipe à un interpréteur comme un programme passé après
-c. - Un commentaire d'échappatoire ne libère plus rien lorsqu'il est suivi d'une ligne exécutable.
- Un rapport de déploiement ne vaut plus que pour les cibles de sa ligne
Target:.
Les verrous reconnaissent désormais :
rsync,scpetsftpvers une adresse IPv6,- un script de déploiement via stdin ou précédé d'une option de shell,
- un interpréteur avec un fichier
.sql.
Deux conséquences de cette rigueur, le linter SQL et env -S, figurent dans la liste des limites ouvertes plus bas.
Moins de fausses alertes : la simple lecture et les fichiers de configuration ne comptent plus comme « écrit et lancé ». Les commandes de lecture de npm et de composer ne comptent plus comme écrivantes, et des mots comme « form » ou « platform » ne comptent plus comme commande de suppression. Un message de commit contenant un guillemet échappé ne déclenche plus de fausse alerte non plus.
Nouveau : lorsque le même refus de verrou ou la même erreur d'outil survient pour la troisième fois, Code Guardian indique une fois l'issue prévue. L'avertissement ne bloque jamais.
Par ailleurs, les agents de vérification disposant d'un accès au shell n'écrivent plus dans votre arbre de travail. Les essais git en écriture ne s'exécutent plus que dans un dépôt jetable.
Ce que cela signifie pour vous : davantage de refus pour les formes nouvellement reconnues, moins pour la simple lecture. À la troisième interruption identique, Code Guardian indique l'issue.
Quelles corrections sont incluses ?
Ce sont des corrections et non de nouvelles capacités :
- Lors de la mise à jour, le bytecode Python ne compte plus comme fichier modifié en local d'un skill d'accompagnement.
aufgabe.pytrouve aussi le dossier de tâche depuis une copie de travail git (signalement d'un client).- Rappel d'audit : il n'apparaît plus pour les fichiers du scratchpad ou de
$TMPDIR. - Le démarrage de session arrive de nouveau en entier : l'ancrage, le nombre de todos et l'avertissement de dérive figurent de nouveau dans le contexte.
- L'affichage du quota dans le poste de pilotage montre aussi une mesure récente lorsque Claude Code ne fournit que la valeur hebdomadaire.
- Code Guardian n'affiche plus l'indication sur
/clearaprèsabschliessenque si la session ne détient plus de tâche ouverte.
Nouveau en outre : avec aufgabe.py uebergabe, vous écrivez un fichier de passation à la fin de la session.
Qu'est-ce qui change pour les utilisateurs de Codex ?
La version Codex reçoit les critères d'acceptation, beleg-lauf.py, les verrous plus stricts et la vérification en un seul processus. Les skills goalengine et codeguard-master n'y existent pas. Autres différences :
- Un appel PowerShell en lecture avec
$env:ouSelect-Stringn'est plus arrêté commeenv -S. - Les essais git en écriture des agents de vérification disparaissent et sont signalés dans le rapport comme non exécutés.
- L'installateur rejette un
CODEX_HOMErelatif, y compris avec--probe, et ce avant le premier accès en écriture. Définissez-le sur un chemin absolu, par exemple$HOME/.codex, ou laissez-le vide.
Quelles limites restent ouvertes ?
Cette liste est l'endroit complet de toutes les réserves de cet article.
- Commandes dans un bloc avec redirection derrière : la note de la 17.15 ne mentionnait ici qu'une écriture rare pour le verrou de migration. C'était trop restreint, et la 17.16 corrige les textes ; le comportement des verrous est resté le même. Les verrous de suppression, de déploiement et de migration ne voient pas les commandes dans un bloc dont l'entrée n'est redirigée qu'après le bloc. La même instruction sans bloc, ils la reconnaissent. Sont concernées ces formes :
La correction arrive dans la version suivante. D'ici là, écrivez les commandes risquées sans bloc redirigeant ou vérifiez vous-même la suppression, le déploiement et la migration dans un tel bloc.{ befehl; } < eingabe ( befehl ) < eingabe while read zeile; do befehl; done < eingabe if bedingung; then befehl; fi < eingabe - Linter SQL : même un simple linter avec un fichier
.sqlest arrêté. La version n'indique aucune issue. env -S: avec d'autres mots, il provoque une demande de confirmation dans le paquet Claude et un blocage sous Codex. Là encore, la version n'indique aucune issue.- Temps d'exécution sous Windows : pour PHP, Python, JavaScript et CSS, l'objectif n'est pas encore atteint. La base macOS de la mesure provisoire a été mesurée sous charge ; une nouvelle mesure sur une machine au repos est prévue pour la prochaine version. La validation de l'objectif est planifiée de façon ferme pour la prochaine version et n'est pas comptée comme terminée.
- Codex : les cas d'acceptation cachés (
review · holdout) n'y sont pas disponibles.
Ce que cela signifie pour vous : la validation est devenue démontrable, les verrous sont plus étanches. Une faille subsiste jusqu'à la version suivante, et nous la nommons.
Vous trouverez plus d'informations sur le produit sur la page produit.
Sources
- Changelog Code Guardian 17.14–17.16 (paquet Claude et paquet Codex), dans le portail client
État au : 04.11.2026
Partager l’article
Restez informé
Recevez les derniers articles, analyses et actualités du secteur directement dans votre boîte mail.
Décidez vous-même ce que Google vous montre
Google vous laisse choisir quelles sources apparaissent en priorité dans vos résultats de recherche : dans les actualités et dans les réponses IA. Deux clics, et vous voyez les sites auxquels vous faites confiance.
Ajouter provimedia.de à mes sources préféréesArticles similaires
D’autres articles susceptibles de vous intéresser.
Claude Code Security et revue de code : comment vérifier le code IA avant sa mise en ligne
Ce que Claude Security et /security-review d’Anthropic vérifient, ce qu’ils ne vérifient pas, et comment faire relire automatiquement chaque diff de Claude Code et bloquer les commandes dangereuses.
Code Guardian 17.17 : « terminé » signifie désormais : objectif mesuré
Qu'apporte Code Guardian 17.17 ? Une preuve centrale bloque la clôture, l'agent s'arrête après chaque ajustement, les petites modifications demandent moins de contrôle. Une limite reste ouverte.
Code Guardian 17.13 : est terminé ce qui est prouvé
L'agent annonce « tests au vert », mais l'exécution des tests n'a jamais eu lieu. Code Guardian 17.13 ne clôt plus une telle tâche, et montre à quoi vous reconnaissez un résultat prouvé.
Des contrôles impossibles à contourner
Le pack de skills pour Claude Code et OpenAI Codex : sept gates avant le déploiement, la migration, une nouvelle dépendance, un jugement sur les données, un constat, une question d'options et un texte juridique. Licence d'entreprise, nombre illimité de développeurs au sein de l'entreprise.