diff --git a/common/skills-concurrents-pdf-docx-pptx-xlsx.md b/common/skills-concurrents-pdf-docx-pptx-xlsx.md new file mode 100644 index 0000000..0a31fa2 --- /dev/null +++ b/common/skills-concurrents-pdf-docx-pptx-xlsx.md @@ -0,0 +1,71 @@ +# Skills locaux concurrents à nyora-doc-api — PDF/DOCX/PPTX/XLSX + +**Date** : 2026-07-02 +**Sphères concernées** : hermes-tt, hermes-nyora, hermes-perso (les 3) + +## Problème + +Chaque instance Hermes embarque des skills locaux génériques (python-docx, +python-pptx, reportlab/pdfplumber, openpyxl, ou pire : Pandoc/Gotenberg côté TT) +dont la description recoupe un besoin déjà couvert par le service centralisé +**nyora-doc-api** (port 3050). Un skill local bien décrit gagne quasi toujours +la sélection face à un appel API explicite → documents produits hors charte +Nyora (palette non-Or-Bruni, pas de footer obligatoire, police/mise en page +non maîtrisées), ou pire, skill cassé référençant des outils retirés du stack. + +Découvert et confirmé le même jour sur 3 documents réels : +- PPTX (hermes-perso) : titre 34pt sur bandeau à hauteur fixe → chevauchement. +- DOCX (hermes-perso) : `PMI_Infinity_Formation_PMP.docx` généré via python-docx + brut (metadata `dc:creator=python-docx`), palette bleu/ambre au lieu d'Or Bruni, + aucun footer Nyora. +- PPTX (hermes-perso, 2e cas) : `MacBookPro_64Go_Prix_Comparatif` — défaut + visuel non lié au moteur mais révélant l'absence de boucle QA + render→image→inspection avant livraison. + +## Skills désactivés (déplacés vers `.archive/document-skills-desactive-20260702/`, pas supprimés) + +**hermes-perso** (`data/skills/`) : +- `productivity/document-processing/` — PDF (nano-pdf/reportlab), PPTX (python-pptx), DOCX (python-docx) en un seul skill générique +- `excel-python-skill.md` — génération XLSX via openpyxl +- `productivity/document-skills/pptx-presentation/` (déjà désactivé le matin même, pour mémoire) + +**hermes-tt** (`data/skills/`) — sprawl le plus important, plusieurs skills obsolètes/cassés : +- `docx/` — copie du skill public Anthropic docx (générique) +- `docx-generation/` — générateur docx-js +- `excel-automation/` — Claude Office Skill Excel générique +- `pdf/` — génération PDF (reportlab/pdfplumber/pypdf) +- `excel-python-skill.md` — génération XLSX via openpyxl +- `generation-pptx.md` — routait PPTX/DOCX/tableau directement vers MiniMax M2.5, sans passer par nyora-doc-api +- `produire-docx.md` — **cassé** : référence Pandoc, retiré du stack le 29/06 +- `produire-pdf.md` — **cassé** : référence Pandoc + Gotenberg, tous deux retirés du stack + +**hermes-nyora** (`data/skills/`) : +- `productivity/powerpoint/` — génération PPTX générique +- `excel-python-skill.md` — génération XLSX via openpyxl +- `production-document.md` — **cassé** : pipeline veille référençant Pandoc (PANDOC_URL) + Gotenberg (GOTENBERG_URL), tous deux retirés du stack ; bypassait nyora-doc-api par conception + +## Ce qui a été conservé (pas des concurrents) + +- `hermes-tt/data/skills/pdf-extraction/` — lecture seule (pdfplumber), pas de génération +- `hermes-tt/data/skills/style-mail-xlsx.md` — spécification de style (palette, règles de mise en forme XLSX/mail HTML Zone Sud), aucun code de génération : c'est une référence de charte, pas un moteur. À terme, ces règles devraient être lues par nyora-doc-api plutôt que dupliquées ailleurs. +- `.agents/skills/ppt-visual` (hermes-tt) — conseil de design visuel, pas un générateur de fichier. + +## Méthode appliquée (identique au fix pptx du matin) + +1. `mkdir -p data/skills/.archive/document-skills-desactive-20260702/` +2. `mv ` vers ce dossier (déplacé, jamais supprimé) +3. Suppression du cache `.skills_prompt_snapshot.json` (racine `data/` et `data/.hermes/`) pour forcer la régénération de l'index au redémarrage +4. **Reste à faire manuellement** : redémarrer les 3 containers `hermes-agent-tt`, `hermes-agent-nyora`, `hermes-agent-perso` (via Portainer ou n8n Execute Command — le CLI docker n'est pas installé dans le conteneur mcp-nas, donc impossible de le faire depuis cette session) + +## Règle générale (déjà actée, reconfirmée) + +Avant tout diagnostic "l'IA n'utilise pas le bon outil" sur une tâche documentaire : +vérifier en priorité l'existence d'un skill local concurrent sur l'instance concernée +(mots-clés à chercher : docx, pptx, xlsx, pdf, python-docx, python-pptx, openpyxl, +reportlab, pandoc, gotenberg). Un skill générique bien décrit gagne quasi toujours +la sélection face à un appel API qu'il faut connaître explicitement. + +## Prévention + +Après toute résolution de ce type, capitaliser immédiatement (mémoire + ce runbook + +NyoraNotes) — ne pas attendre une 3e récidive pour généraliser.