11 KiB
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)
-
- Présentation
-
- Contexte et décision d'architecture
-
- Modèle de données
-
- Architecture technique
-
- Fichiers de l'application
-
- Points de friction
-
- Pistes pour la suite
-
- Statut actuel
-
- Écran d'identification
-
- Écran liste des contacts
-
- Écran détail du contact
-
- Traitements de données de l'écran détail
-
- Notion de session utilisateur
-
- Prochaines étapes côté frontend
-
- Pivot sur le modèle de prospection
-
- Implémentation session utilisateur
-
- Panneau de détail du contact — création/suppression
-
- Panneau détail redimensionnable
-
- Formulaire de prospect externe
-
- Navigation entre contacts en panneau détail
-
- Dépôt GitHub et mirroir Gitea
-
- MIRADOR — base d'authentification centralisée
-
- Badge société et avatar utilisateur
-
- Push GitHub en SSH depuis le VPS
-
- MIRADOR branché
-
- MIRADOR validé à deux utilisateurs
-
- ToDoList
-
- Pilotage vocal
-
- É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
.htaccessdu dossier/journalbloque bien l'accès direct (curl -Isur un fichier du dossier doit répondre403, pas200— 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_Variantesen 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).