guard-destructive.sh : faux positif « clé privée age » sur un grep -nE anodin #24
Labels
No labels
Compat/Breaking
Décommissions et revue d'usage
Garde-fous
Harnais d'évaluation
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Outillage agent
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Sauvegarde hors site
Skills
Status
Abandoned
Status
Blocked
Status
Need More Info
code
fix
needs-info
ready-for-agent
ready-for-human
review
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
mathieu/essai-actions#24
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Constaté le 2026-10-07 dans une session
kb-mathieu(plugin atelier 0.6.0,hooks/guard-destructive.sh). Deux commandes de lecture ont été refusées avec le motif « clé privée age copiée, déplacée ou affichée » :grep -nE "^#|sensitivity|frontmatter|front matter|wikilink|\[\[" CONVENTIONS.md | head -50; find . -name '*.md' -not -path './genealogie/*' -not -path './inbox/*' | wc -l; ls .claude/hooks— le hook a d'abord affiché une erreur awk :
nonterminated character class ^[[$(source line 8), puis a bloqué.\[\[nils .claude/hooks: bloquée aussi, sans erreur awk.Aucune ne touche à une clé age. Deux défauts probables, à confirmer en lisant le hook :
[;-nE,^#,| headoufind … -not -path?). Le message dit « ne pas relancer ni contourner » : un faux positif fréquent pousse donc à renoncer à des lectures légitimes.Critères d'acceptation
[Migré de Kaneo le 2026-10-11 : ATE-21 du projet « Atelier », créée le 2026-10-07.
Commentaire Kaneo du 2026-10-07 06:54 UTC
Nouveau cas le 2026-10-07, dans une session
infrastructure(même plugin atelier 0.6.0). Deux lectures en SSH surpveont été refusées avec le même motif, « clé privée age copiée, déplacée ou affichée » :ssh -o ConnectTimeout=10 pve 'df -h /mnt/pve/backup-ssd; echo ---; cat /etc/pve/jobs.cfg; echo ---; grep -A8 "backup-ssd" /etc/pve/storage.cfg; echo ---; ls -la --time-style=long-iso /mnt/pve/backup-ssd/dump/ | grep -v "\.log$"; echo ---; du -sh /mnt/pve/backup-ssd/* 2>/dev/null'grep … storage.cfg: bloquée aussi.Ce cas écarte une hypothèse : la sous-chaîne « age » de
storage.cfgn'est pas en cause, puisque la commande 2 ne la contient pas. Éléments communs avec les cas dekb-mathieu: uncatou unlssuivi d'un| grep/| head, et2>/dev/null. Le handoff précédent signalait aussi des faux positifs sur| headetgit branch -d.Effet concret : la vérification de la rétention de
backup-ssd(pve à 84,9 %) a dû être renvoyée à Mathieu.Critère d'acceptation à ajouter : les deux commandes ci-dessus passent et rejoignent les cas négatifs.
Commentaire Kaneo du 2026-10-08 22:41 UTC
2026-10-09, veille ADR-0014 de
kb-mathieu: le faux positif est plus large que legrep -nE. Bloqués aussi :cat package.json, desls/catsur un chemin contenantA-agents, et uncpavec glob (cp $S/rapports/*.md …). Piste relevée par un agent : vers les lignes 474-490 deguard-destructive.sh, toute regex ou tout glob étoilé est pris pour une désignation possible d'une clé age. Une session dédiée dans atelier a été lancée le même jour pour corriger, avec tests de non-régression.Copie de l'essai de migration Kaneo → Forgejo du 2026-10-11 (rendu validé avant la vraie migration). Le ticket réel est mathieu/atelier#18. Fermé comme doublon.