V1.22.23 Passage à Claude Code et création du BackOffice

This commit is contained in:
2026-09-11 13:38:34 +00:00
parent a9af2a5213
commit 05df1c5a28
28 changed files with 2660 additions and 670 deletions
+13 -1
View File
@@ -21,6 +21,8 @@ Pour les trois documents de ce projet (ce journal — résumé/index —, les R
- `<conception>` : reprend le numéro de la dernière section **créée** dans les Réflexions stratégiques — jamais un simple complément apporté à une section déjà existante. Critère de Jean-Marc pour ouvrir une nouvelle section plutôt qu'un addendum : le jugement qu'une évolution de la conception est **majeure**, y compris sur un sujet déjà effleuré auparavant (auquel cas la nouvelle section peut reprendre l'ancien titre suivi de *"[Évolutions majeures]"*) — une évolution mineure ou un abandon reste un addendum dans la section existante, sans faire avancer ce compteur. Les "trous" de numérotation que ça peut produire (ex. de 10 à 28) sont acceptés sciemment par Jean-Marc, ce n'est pas une anomalie à corriger.
- `<majeur>` : change uniquement quand Jean-Marc juge qu'ASPIC franchit un cap de maturité important — décision, pas calcul. À cette occasion, `<code>` repart à 1 (V1.58 → V2.1, jamais V2.59) tandis que `<conception>` continue sa suite normale sans saut ni retour à 1 (V1.58.67 → V2.1.68), puisque franchir ce cap est lui-même consigné comme une nouvelle section des Réflexions stratégiques.
**Consigne du 11 septembre 2026 — hygiène des sessions Claude Code, indépendante d'ASPIC.** En discutant d'une consommation inattendue sur la clé API (voir journal, section 32), Jean-Marc a réalisé que cette conversation même (Claude Code) tourne sur le même forfait que l'application, et coûte pour la même raison structurelle qu'un appel Anthropic classique : l'API est sans état, donc chaque nouvelle réponse renvoie (et refacture) tout l'historique du fil depuis le début — plus un fil est long, plus chaque tour coûte cher, quel que soit le sujet traité. Décision de Jean-Marc : fermer une session Claude Code dès qu'un sujet aboutit (un chantier de code livré, une décision stratégique actée) plutôt que de laisser un même fil grossir indéfiniment sur plusieurs sujets — un aller-retour de recherche web a par exemple consommé plus de 400 000 tokens à lui seul le 11 septembre 2026.
**Partage de responsabilité pour signaler un changement de version, en début ou en fin de session :** si Jean-Marc sait dès le début d'une session que le code va évoluer, il peut demander à Claude de faire évoluer `<code>` immédiatement plutôt que d'attendre la fin de session. Pour `<conception>`, par défaut c'est à Claude de juger et de signaler en fin de session si l'évolution a été assez majeure pour justifier une nouvelle section — sauf si Jean-Marc sait déjà en début de session que ce sera le cas, auquel cas il le dit d'emblée (c'est par exemple déjà acté pour la session suivant celle du 6 septembre 2026).
**Sur la pérennité des trois documents, précisé le 6 septembre 2026 :** Jean-Marc prévoit qu'un jour ce journal de développement (résumé/index, et les sections détaillées de `/journal`) sera repris et expurgé de ce qui sera devenu inutile — en conservant les anciennes versions via l'historique Git, projet non commencé et pas à l'ordre du jour. **Les Réflexions stratégiques, en revanche, ne seront jamais expurgées** : la méthode d'écriture qu'on vient d'adopter (addendum sur une évolution mineure, nouvelle section sur une évolution majeure, jamais de réécriture de l'existant) fait de ce document une trace chronologique complète et volontairement définitive de l'évolution de la pensée stratégique — utile en particulier pour retrouver, en relecture, des pistes un moment abordées puis laissées de côté qui mériteraient d'être reprises.
@@ -58,6 +60,8 @@ Pour les trois documents de ce projet (ce journal — résumé/index —, les R
- 28. Écran de fond
- 29. Interprétation vocale des contacts par LLM
- 30. Chantier des consignes — moteur générique
- 31. Compétences, Missions et premier chantier agentique — Sophia et les sites web
- 32. BackOffice — Collaborateurs, Compétences, Espaces disque et coût IA
*(Numérotation et titres repris du découpage fait par Jean-Marc le 31 août 2026, légèrement reformulés par lui à cette occasion — se référer aux fichiers eux-mêmes pour le libellé exact. Section 27 (Pilotage vocal) validée de bout en bout et son fichier définitif déposé dans `/journal` le 2 septembre 2026. Section 28 (Écran de fond) ouverte le 2 septembre 2026, toujours **en cours** — passée d'une maquette graphique exploratoire à un premier essai fonctionnel réel, puis (soirée du 2 au 3 septembre) à une pastille de comptage sur le classeur Contacts et à un premier affichage réel des post-its personnels sur le tableau de liège, puis (8 septembre 2026, matin) à un bureau à trois fonds interchangeables (liège actuel, futur écran assistants, futur tableau de bord) navigables par deux flèches, avant-plan désormais séparé du code des fonds, puis (9-10 septembre 2026) à un écran 2 ("assistants") réellement présenté (portraits, couleurs, rôles) et à une nouvelle répartition des 9 classeurs suivant le cycle de vie d'une affaire, puis (10 septembre 2026, soir) au renommage "collaborateurs" et à deux outils plein écran intégrés à cet écran 2 pour construire et tester l'identité de chaque collaborateur, avec un premier dialogue réel dans ASPIC via l'API Anthropic — fichier de section mis à jour ce jour-là, à déposer par Jean-Marc, voir Statut actuel. Section 29 (Interprétation vocale des contacts par LLM) ouverte et son fichier définitif déposé le 4 septembre 2026 après validation de bout en bout sur un premier corpus réel ; fichiers de section à déposer par Jean-Marc, voir Statut actuel. Section 30 (Chantier des consignes — moteur générique) ouverte le 6 septembre 2026, fichier définitif rédigé le soir même après validation de bout en bout du mécanisme sur des cas réels ; **substantiellement complétée le 7 septembre 2026** (hiérarchisation cohérence/Tests/IA, traçabilité de l'agent, `REA_NomAffiche`, premier appel IA réel dans une consigne avec avertissement bloquant) ; **complétée à nouveau le 8 septembre 2026** (unicité mail/portable, retrait des points sur les numéros, échecs de `consigne_completer_code_postal()` rendus non-silencieux) — fichier de section mis à jour à déposer par Jean-Marc, voir Statut actuel.)*
@@ -123,6 +127,10 @@ Version incrémentée une seule fois pour l'ensemble de cette session (uniquemen
**10 septembre 2026 (soir) : "collaborateurs" — construire et tester l'identité de chaque assistant, premier dialogue réel avec l'API Anthropic (V1.19.21).** Détail technique complet en section 28 du journal ; fil stratégique en Réflexions stratégiques, sections 20 (identité des collaborateurs) et 21 (stockage de documents PDF, discussion architecturale indépendante, non codée). Résumé : dernière étape terminologique "assistants" → "collaborateurs" (habillage seul, `ASP_Agents`/`AGN_*`/`agents.php` inchangés) ; deux outils plein écran ajoutés sous le panneau des collaborateurs — "Construire une identité" (terminal de saisie sur un nouveau champ `AGN_Identite`, endpoint `collaborateurs_identite.php`) et "Tester l'identité" (vraie fenêtre de dialogue, premier appel réel à l'API Anthropic dans ASPIC via le nouvel endpoint `collaborateur_dialogue.php`, modèle `claude-sonnet-5`, prompt système construit à partir de l'identité du collaborateur avec garde-fous explicites — jamais de récitation verbatim de l'identité, avis pouvant diverger de ceux de Jean-Marc). Un bug critique de cascade CSS (`[hidden]` toujours perdant face à une règle d'auteur `display:flex`, quelle que soit la spécificité) a été détecté par test automatisé avant toute livraison — l'overlay serait resté en permanence visible et aurait intercepté tous les clics du bureau dès le chargement de la page — et corrigé par deux règles `[hidden]{display:none}` explicites. Incident de production réel diagnostiqué et résolu le soir même : clé API Anthropic non scopée à un espace de travail (HTTP 400), résolu en recréant la clé correctement scopée. Après validation en conditions réelles par Jean-Marc, resserrement de mise en page demandé point par point (titre remonté, boutons descendus, zone de dialogue agrandie à deux lignes, boutons Envoyer/Fermer côte à côte). Discussion sur la capacité du champ `AGN_Identite` : colonne élargie de `TEXT` à `MEDIUMTEXT` en base par Jean-Marc, l'intention étant que l'identité d'un collaborateur s'enrichisse avec l'usage réel de l'application (missions, réunions) plutôt que de rester figée — indicateur d'occupation en octets réels (UTF-8) ajouté à l'écran de saisie, avec seuil d'avertissement et blocage à l'approche de la limite. `<code>` avancé en tout début de session (V1.18.19 → V1.19.20) ; `<conception>` avancé deux fois au cours de la même session (19 → 21) pour l'ouverture des sections 20 et 21 des Réflexions stratégiques — nouvelle version **V1.19.21**.
**10-11 septembre 2026 : compétences, Missions et premier chantier agentique — Sophia dote de la capacité réelle de créer des sites web (V1.21.22).** Détail technique complet en section 31 du journal ; fil stratégique en Réflexions stratégiques, section 22. Origine : Sophia, en session "Tester l'identité", s'est mise à réclamer des fichiers/infos pour "créer des sites web" sans avoir aucune capacité réelle — Jean-Marc a saisi l'occasion pour reprendre le concept de Mission resté en suspens depuis le 8 septembre (réflexions stratégiques, section 18) et le rendre concret via un mécanisme de **compétences** attribuées à chaque collaborateur. Périmètre tranché explicitement par Jean-Marc : Sophia ne produit un site que pour l'entreprise exploitant ASPIC elle-même (jamais pour un client tiers), à partir des seuls contenus fournis en conversation (Catalogue/Documents restent des classeurs vides à ce stade, section 19), avec mise à jour possible et publication toujours déclenchée par un humain. Cinq tables créées dans `MS-DEV` (`ASP_Competences`, `ASP_AgentsCompetences`, `ASP_Missions`, `ASP_SitesWeb`, `ASP_SitesWebFichiers`, convention de nommage stricte imposée par Jean-Marc : chaque champ préfixé par sa propre table, jamais celle référencée). Nouvel endpoint `mission_agent.php` (boucle agentique avec vrais outils Anthropic — écrire/lire/lister des fichiers de site, sandbox stricte, historique persisté côté serveur pour rester indépendant de l'ordinateur utilisé), séparé de `collaborateur_dialogue.php` qui reste sans effet de bord. `sites_web.php` (liste + publication, jamais un outil du modèle) et `missions.php` (ouverture/liste des missions). Nouveau volume Docker (`sites_brouillons`, hors racine servie) et premier incident de permissions du projet (première fois qu'un fichier PHP écrit réellement sur disque). Compétence `SITE_WEB` attribuée à Sophia, premier essai réel concluant (réactive, mémoire d'expérience bien réinjectée) — détail des fichiers réellement écrits pas encore vérifié par Jean-Marc. Clarification actée au passage : c'est `AGN_Experience` (pas `AGN_Identite`) qui s'enrichit à la clôture d'une Mission. `<code>` et `<conception>` avancent tous les deux au cours de cette session — nouvelle version **V1.21.22**.
**11 septembre 2026 (après-midi) : le BackOffice — Collaborateurs, Compétences, Espaces disque, coût IA (V1.22.23).** Détail technique complet en section 32 du journal ; fil stratégique en Réflexions stratégiques, section 23. Jean-Marc a réalisé qu'ASPIC a désormais deux univers distincts — l'écran utilisateur final, et la mécanique interne (identités, compétences, missions-types) — et a demandé un vrai BackOffice ("BO", terme repris de Prestashop) pour héberger cette mécanique : esthétique terminal minimale, menu à gauche, Échap pour en sortir uniquement depuis le menu. Accès piloté par `MIR_Users.MIR_BO`, bouton "BO" discret sur le bureau. Les outils "Construire une identité"/"Tester l'identité" ont été débranchés d'`ecran_fond.html` (718 lignes retirées) et migrés dans le BO ; nouvelle page Compétences (catalogue + attribution, `AGN_Competences` pas encore câblé). Espaces disque privés automatisés : la proposition initiale de Jean-Marc (SHA256 tronqué) a été remplacée par un HMAC à clé secrète pour le dossier de chaque base de travail et un jeton aléatoire pour chaque utilisateur (bug trouvé au passage : `MIR_Code` n'est pas unique dans `MIR_Users`, corrigé en utilisant `MIR_Email`). Enfin, après la découverte de plus de 20€ de consommation Anthropic inexpliquée, mise en place d'un cache de prompt (`cache_control`) et d'une journalisation réelle du coût de chaque appel (nouvelle page BO "Coût IA") — non prévu au départ, ajouté à la demande de Jean-Marc en cours de session.
**Prochain chantier annoncé par Jean-Marc : gérer les attributions de tâches des assistants.** L'écran 2 ("assistants"/"collaborateurs") est désormais présenté (portraits, couleurs, rôles, identité) mais ne porte encore aucune action réelle de répartition de tâches — à rapprocher des points déjà notés plus bas dans "Reste à faire" (discriminant humain/agent sur `ASP_ToDoList`, répartition dynamique des 70% par charge de tâches, exploitation réelle d'`AGN_Couleur`) — rien de plus précisé à ce stade sur le périmètre exact.
**Reste à faire, noté au passage :**
@@ -159,5 +167,9 @@ Version incrémentée une seule fois pour l'ensemble de cette session (uniquemen
- **Ménage dans la structure de `ASP_Consignes`** (8 septembre 2026) : Jean-Marc a repéré des champs qui lui semblent redondants (`CNS_TexteDefinition`/`CNS_TexteAffiche` en particulier) — à examiner ensemble avant de toucher au schéma, pour ne pas supprimer un champ qui sert ailleurs sans qu'on l'ait vérifié.
- Contenu réel des classeurs Missions, Propositions, Livraisons et Gestion (nouvelle classification du 9-10 septembre, voir réflexions stratégiques section 19) — aucun écran ni donnée derrière à ce stade, seule la classification cible est fixée.
- Rédaction des cinq textes d'identité des collaborateurs — Jean-Marc les écrit lui-même, à la première personne (Matilda déjà saisie via l'outil réel du 10 septembre) — à intégrer aux `EBAUCHES_IDENTITE` de secours dans `ecran_fond.html` une fois reçus, si besoin.
- Lien concret entre une Mission close et l'enrichissement réel de `AGN_Identite` au fil du temps (réflexions stratégiques, section 20) — intention actée, rien conçu ni codé à ce stade.
- Lien concret entre une Mission close et l'enrichissement réel de `AGN_Experience` (pas `AGN_Identite`, voir réflexions stratégiques section 22 qui corrige la section 20) au fil du temps — intention actée, rien conçu ni codé à ce stade (`MIS_Statut`/`MIS_BilanCloture` existent en base, mais aucun endpoint de clôture n'a encore été écrit).
- Stockage de documents utilisateur (PDF) — architecture actée par anticipation (réflexions stratégiques, section 21 : stockage hors racine servie par le serveur web, endpoint PHP dédié, sous-dossier opaque par client en défense en profondeur), aucun développement engagé, pas de besoin immédiat.
- **Compétence "sites web" de Sophia (section 31, 10-11 septembre 2026), points laissés ouverts :** lecture réelle du catalogue/documents de l'entreprise (dépend de classeurs encore vides, section 19) ; support des images/fichiers binaires dans un site (texte seul pour l'instant) ; rattachement d'un site publié à un vrai nom de domaine (vhost Apache ou `npm-app-1`, étape manuelle) ; synchronisation du schéma des 5 nouvelles tables vers `MS-TST` (pas encore faite) ; vérification détaillée par Jean-Marc de ce que Sophia a réellement écrit lors du premier essai réel.
- **BackOffice (section 32, 11 septembre 2026), points laissés ouverts :** `ASP_Agents.AGN_Competences` (champ dénormalisé, écrasé/recalculé à chaque modification des compétences d'un collaborateur, lu par `mission_agent.php` ET par le dialogue de test de `bo_collaborateurs.html` en plus d'`AGN_Identite`/`AGN_Experience`) — décrit et validé avec Jean-Marc, pas encore codé. Endpoint de téléchargement de fichier depuis un espace disque utilisateur (`telecharger_fichier.php` ou équivalent) — architecture posée (section 32), rien construit. Comportement réel du cache de prompt et de la journalisation du coût IA à confirmer sur un premier vrai appel après ce soir (aucun appel réseau réel déclenché depuis l'environnement de développement).
- **Travail non poussé sur GitHub, découvert le 11 septembre 2026, toujours en attente :** les chantiers des 10 et 11 septembre (collaborateurs, compétences/missions, BackOffice) n'ont jamais été committés/poussés — `git status` montre tout en attente. Décision de Jean-Marc à prendre sur le commit/push groupé.
- **Services externes pour les futurs chantiers (prospection, réseaux sociaux) — réflexions stratégiques section 23 (11 septembre 2026) :** décision de méthode actée (préférer un service externe existant au cas par cas, internaliser ensuite si besoin réel constaté), mais aucun service concret encore choisi ni intégré — recherche à reprendre spécifiquement pour ces deux chantiers quand ils s'ouvriront.