Files
ASPIC/journal/ASPIC - Journal. Index.md
T

69 lines
11 KiB
Markdown

# ASPIC — Journal de développement (index)
*CRM sur mesure — PHP + MySQL + JavaScript vanilla*
**Le détail complet du journal est désormais tenu dans le dépôt GitHub `JMP-MS/ASPIC`, dossier `/journal`** (28 fichiers `.md`, un par grande section, protégés en accès web direct par un `.htaccess`). Ce document ne garde plus qu'un sommaire et l'état actuel, pour une vue d'ensemble rapide sans avoir à cloner le dépôt. Pour toute question qui touche à l'historique détaillé d'une section, demander sa lecture — Claude ira la chercher sur GitHub avec le token transmis en session (jamais stocké).
## Consigne de travail (Claude) — à partir du 2 septembre 2026
Pour les trois documents de ce projet (ce journal — résumé/index —, les Réflexions stratégiques, la Documentation utilisateur), **ainsi que pour les fichiers de section individuels du journal détaillé** (`/journal` sur GitHub, 28 sections numérotées 00 à 27 au 2 septembre 2026) : les mises à jour de contenu ne sont faites qu'**en toute fin de session**, jamais au fil de l'eau pendant les essais — pour éviter d'enregistrer un état intermédiaire ou instable. À ce moment-là, en plus d'écrire la mise à jour dans le document du projet le cas échéant, Claude fournit systématiquement une **copie téléchargeable** (fichier `.md`) de chaque document ou section modifié(e), pour que Jean-Marc puisse la sauvegarder de son côté et la déposer dans le dépôt GitHub. Pour une section du journal détaillé, le fichier téléchargeable reprend le nom exact utilisé dans `/journal` sur GitHub, pour un dépôt direct sans renommage.
**Cas particulier des fichiers de code livrés en session (2 septembre 2026) :** un fichier `.js` n'est pas téléchargeable tel quel depuis le client utilisé par Jean-Marc. Pour tout fichier JavaScript livré (`micro.js` et les suivants), fournir systématiquement, en plus du fichier `.js` normal, une copie strictement identique au format `.txt` (même nom, extension changée — ex. `micro.js.txt`), pour qu'elle soit récupérable.
**Précision du 2 septembre 2026 (fin de session) sur les exports SQL transmis par Jean-Marc :** un `CREATE TABLE`/`INSERT` envoyé par Jean-Marc est le compte-rendu d'une modification déjà faite à la main côté base (il travaille en éditant directement, puis exporte pour informer Claude) — jamais une commande à exécuter côté Claude. Claude peut donc lire ces exports comme l'état réel de la base au moment de l'envoi, sans jamais chercher à les "lancer".
## Sommaire des sections (`/journal` sur GitHub)
- 00. Présentation
- 01. Contexte et décision d'architecture
- 02. Modèle de données
- 03. Architecture technique
- 04. Fichiers de l'application
- 05. Points de friction
- 06. Pistes pour la suite
- 07. Statut actuel
- 08. Écran d'identification
- 09. Écran liste des contacts
- 10. Écran détail du contact
- 11. Traitements de données de l'écran détail
- 12. Notion de session utilisateur
- 13. Prochaines étapes côté frontend
- 14. Pivot sur le modèle de prospection
- 15. Implémentation session utilisateur
- 16. Panneau de détail du contact — création/suppression
- 17. Panneau détail redimensionnable
- 18. Formulaire de prospect externe
- 19. Navigation entre contacts en panneau détail
- 20. Dépôt GitHub et mirroir Gitea
- 21. MIRADOR — base d'authentification centralisée
- 22. Badge société et avatar utilisateur
- 23. Push GitHub en SSH depuis le VPS
- 24. MIRADOR branché
- 25. MIRADOR validé à deux utilisateurs
- 26. ToDoList
- 27. Pilotage vocal
- 28. Écran de fond
*(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 — le nom "(Lilou)" porté un temps par cette section a été abandonné le même jour, l'assistante n'étant plus qu'un des agents disponibles parmi d'autres, voir Statut actuel ci-dessous. Section 28 (Écran de fond) ouverte le 2 septembre 2026 mais **non validée** — maquette graphique exploratoire en pause, voir Statut actuel.)*
## Statut actuel (2 septembre 2026)
**Écrans "Identification" et "Liste des contacts"** (avec panneau détail intégré) : aboutis depuis le 25 août 2026, testés en production. **Prospection** (formulaire externe, vérification mail, envoi de doc) : livrée et testée en conditions réelles le 26 août 2026 (section 18). **Dépôt Git** en place depuis le 27-28 août (section 20), avec circuit de livraison FileZilla → SSH VPS → `git push` (section 23) — l'écriture directe par Claude reste bloquée côté proxy Anthropic, contournement adopté sans gêne. **MIRADOR** (authentification centralisée multi-bases, identifiant = email) branché et validé à deux utilisateurs le 30 août 2026, déployé sur `aspic.mvl-tls.fr` (développement) et `crm.aspic.bzh` (test), chacun avec son propre environnement Docker (sections 21, 24, 25).
**31 août 2026 : ToDoList.** Nouvel écran, devenu l'écran d'accueil post-connexion (la liste des contacts passe dans le menu hamburger). Table `ASP_ToDoList`, trois indicateurs d'urgence par pastille (rouge = à faire sans date ou en retard, orange = à faire dans les temps, vert = réalisé), tri par urgence calculé côté PHP. Nouveaux endpoints `todolist.php` et `utilisateurs.php`, nouvel écran `liste_todolist.html`. Livré, testé (Playwright) et déployé — version **V1.004**.
**1er septembre 2026 : migration du sous-domaine de bêta test.** L'environnement de test bascule de `aspic.bzh` vers `crm.aspic.bzh`, pour libérer la racine du domaine en vue d'un futur site de promotion de la solution (voir réflexions stratégiques, section 7). Aucun changement fonctionnel côté application.
**1er-2 septembre 2026 : pilotage vocal — de "Lilou" à un système multi-agents (V1.005 puis V1.006).** Détail complet en section 27 du journal (`/journal` sur GitHub), fichier définitif déposé le 2 septembre après validation de bout en bout. Résumé : nouveau bouton micro dans le bandeau, comportement centralisé dans `micro.js`, reconnaissance vocale réelle (API Web Speech, écoute continue). Un "mode notation" capture une dictée libre entre une phrase d'ouverture et une phrase de clôture/annulation, sans interprétation à ce stade (corpus brut, interprétation prévue plus tard via n8n). Stockage pivoté d'un fichier texte défaillant vers une table `ASP_ConsignesVoix`, avec un type par ligne (`CVX_Type` : ouverture/contenu/cloture/annulation) pour qu'un futur automatisme sache exploiter un lot sans ré-analyser le texte brut.
Le système, initialement à agent unique ("Lilou"), a été généralisé le 2 septembre à plusieurs assistants IA nommés (table `ASP_Agents`, endpoint `agents.php`, `lilou_notes.php` renommé `agent_notes.php`) — chaque agent portant ses propres graphies alternatives tolérées (`AGN_Variantes`, pilotable en base sans code) et un agent par défaut (`AGN_Defaut`) pour ne plus jamais figer un nom précis dans le code. Un incident de confidentialité (bribes d'un appel téléphonique captées par un traçage de débogage resté actif) a conduit au retrait immédiat de ce traçage et à l'ajout d'une coupure automatique du micro après quelques minutes d'inactivité. Après plusieurs essais réels montrant des confusions de reconnaissance récurrentes, Jean-Marc a retiré deux agents (Lilou, Karl) plutôt que d'empiler des tolérances risquant de créer de faux déclenchements ou de mal vieillir face à la diversité des accents/prononciations — liste active : Viktor, Matilda (par défaut), Léon, Nikita. Version incrémentée une fois pour cette session, **V1.006**.
**2 septembre 2026 (suite) : écran de fond — nouvel écran d'accueil "bureau à l'ancienne" (maquette graphique uniquement, pas de code).** Détail complet en section 28 du journal (`/journal` sur GitHub, fichier à déposer par Jean-Marc). Résumé : dans le prolongement de la réflexion "bureau à l'ancienne" (Réflexions stratégiques, section 11), Jean-Marc a engagé la conception visuelle du futur écran d'accueil d'ASPIC, appelé à remplacer la ToDoList/liste des contacts comme premier écran après connexion. Composition retenue à ce stade : un tableau en liège en arrière-plan avec un post-it par agent IA nommé (Viktor, Matilda, Léon, Nikita — couleur destinée à correspondre au futur champ couleur que Jean-Marc ajoute à `ASP_Agents` en parallèle), et un bureau au premier plan portant les objets/raccourcis fonctionnels : boîte à archives, enveloppes (logo Gmail), agenda (logo Google Agenda), téléphone portable écran éteint (explicitement **sans écran d'ordinateur représenté**), un micro physique avec voyant d'activité pulsé (pour matérialiser le pilotage vocal déjà fonctionnel), et une rangée de classeurs à levier (trou de préhension, pochette d'étiquette) portant les grandes sections de l'application — "Contacts", "Catalogue", "Affaires en cours" et un 4ᵉ "À faire" proposé par Claude à confirmer. Plusieurs itérations réalisées avec l'outil de canevas de design de Claude (maquette éditable, publiée en Artifact privé) à partir de croquis papier et de photos de référence fournis par Jean-Marc. **Mis en pause à la demande de Jean-Marc** : les allers-retours par description ont montré leurs limites pour ce type de rendu graphique — il va faire réaliser une meilleure représentation visuelle par une connaissance, à apporter dans une prochaine session pour reprendre le travail à partir de ce nouveau support. Aucun impact sur l'écran d'accueil actuellement en production.
**Reste à faire, noté au passage :**
- Vérifier concrètement que le `.htaccess` du dossier `/journal` bloque bien l'accès direct (`curl -I` sur un fichier du dossier doit répondre `403`, pas `200` — point en suspens depuis le 31 août).
- Pilotage vocal, étape 2 : définir les règles d'interprétation du contenu dicté (aujourd'hui stocké tel quel), envisagée via n8n avec des règles modifiables par l'utilisateur.
- Continuer à observer les agents actifs (Viktor, Matilda, Léon, Nikita) en usage réel ; ajuster `AGN_Variantes` en base si de nouvelles confusions apparaissent.
- Documentation utilisateur du pilotage vocal : pas encore rédigée, fonctionnalité encore en phase d'essais techniques.
- Écran de fond (nouvel écran d'accueil "bureau à l'ancienne") : maquette en pause, en attente d'une meilleure représentation visuelle fournie par une connaissance de Jean-Marc — reprendre à partir de ce nouveau support dans une prochaine session (voir section 28).