docs: add POC specs, handoffs, and research notes
This commit is contained in:
609
docs/architecture/MODELE_MANDAT_PROTOCOLS_LEA_2026-05-25.md
Normal file
609
docs/architecture/MODELE_MANDAT_PROTOCOLS_LEA_2026-05-25.md
Normal file
@@ -0,0 +1,609 @@
|
||||
# Modèle Mandat / Protocoles / Scènes pour Léa
|
||||
|
||||
Version : 0.1 brainstorming
|
||||
Date : 2026-05-25
|
||||
Statut : modèle conceptuel, pas une spec technique
|
||||
|
||||
## Thèse
|
||||
|
||||
Léa n'est pas une boîte à clics et ne doit pas rejouer un workflow. Léa est une collaboratrice visuelle mandatée.
|
||||
|
||||
Elle reçoit une fin à atteindre, choisit un chemin connu ou apprend un chemin nouveau, observe le retour de ses actions, qualifie réussite/échec/doute, puis adapte son comportement.
|
||||
|
||||
Formule centrale :
|
||||
|
||||
```text
|
||||
Un protocole est une grammaire d'action autour d'une intention.
|
||||
```
|
||||
|
||||
Un logiciel, un OS ou un DPI peut changer les pixels, les titres, les boutons et les DPI. Le processus métier reste souvent stable : chercher, ouvrir, saisir, valider, enregistrer, corriger, transmettre, facturer, archiver. Léa doit apprendre ces grammaires d'action, pas mémoriser des coordonnées.
|
||||
|
||||
## Vocabulaire
|
||||
|
||||
### Mandat
|
||||
|
||||
Un mandat est une fin déléguée à Léa.
|
||||
|
||||
Exemples :
|
||||
|
||||
```text
|
||||
Ecris ce texte et enregistre-le.
|
||||
Trouve une vidéo de jazz et lance-la.
|
||||
Ouvre le dossier patient de Mme X.
|
||||
Saisis cette information dans le logiciel métier.
|
||||
```
|
||||
|
||||
Le mandat n'est pas une suite de clics. Il donne le but, le contexte et éventuellement les limites.
|
||||
|
||||
### Intention active
|
||||
|
||||
L'intention active est le sous-but courant qui sert le mandat.
|
||||
|
||||
Exemple pour `Ecris ce texte et enregistre-le` :
|
||||
|
||||
```text
|
||||
ouvrir un outil de saisie
|
||||
écrire le texte
|
||||
déclencher la sauvegarde
|
||||
choisir ou confirmer le nom
|
||||
vérifier que le fichier existe
|
||||
```
|
||||
|
||||
### Protocole d'usage
|
||||
|
||||
Un protocole d'usage est un chemin connu, adaptable, pour accomplir une intention.
|
||||
|
||||
Exemples universels :
|
||||
|
||||
```text
|
||||
ouvrir une application
|
||||
chercher sur le web
|
||||
saisir du texte
|
||||
sauvegarder un fichier
|
||||
confirmer une boîte de dialogue
|
||||
fermer une fenêtre
|
||||
copier-coller
|
||||
```
|
||||
|
||||
Exemples métier :
|
||||
|
||||
```text
|
||||
ouvrir une fiche patient
|
||||
créer une ligne de facturation
|
||||
valider une commande de stock
|
||||
rapprocher une écriture comptable
|
||||
```
|
||||
|
||||
Un protocole n'est pas un workflow figé. Il contient des scènes attendues, des affordances compatibles, des variantes autorisées et des conditions d'arrêt.
|
||||
|
||||
### Scène
|
||||
|
||||
Une scène est la situation visuelle pertinente pour l'intention courante.
|
||||
|
||||
La scène active pertinente n'est pas forcément la fenêtre au focus OS. C'est la zone ou la boîte qui sert le mandat maintenant.
|
||||
|
||||
Exemples :
|
||||
|
||||
```text
|
||||
Bloc-notes prêt à recevoir du texte.
|
||||
Fenêtre Enregistrer sous.
|
||||
Dialogue "Voulez-vous enregistrer les modifications ?".
|
||||
Page de résultats Google.
|
||||
Page vidéo YouTube.
|
||||
Fiche patient ouverte.
|
||||
```
|
||||
|
||||
### Affordance
|
||||
|
||||
Une affordance est une action proposée par la scène.
|
||||
|
||||
Exemples :
|
||||
|
||||
```text
|
||||
bouton Enregistrer
|
||||
bouton Annuler
|
||||
champ Nom du fichier
|
||||
barre d'adresse
|
||||
champ de recherche
|
||||
bouton Lecture
|
||||
onglet Patient
|
||||
bouton Valider
|
||||
```
|
||||
|
||||
Léa ne doit pas seulement reconnaître une affordance. Elle doit comprendre son rôle dans la scène et sa compatibilité avec l'intention.
|
||||
|
||||
### Geste
|
||||
|
||||
Un geste est l'action concrète décidée dans une scène.
|
||||
|
||||
Exemples :
|
||||
|
||||
```text
|
||||
cliquer sur Enregistrer
|
||||
taper le nom du fichier
|
||||
appuyer sur Ctrl+S
|
||||
sélectionner un résultat de recherche
|
||||
cliquer sur Lecture
|
||||
```
|
||||
|
||||
### Retour
|
||||
|
||||
Un retour est tout changement ou non-changement observé après un geste.
|
||||
|
||||
```text
|
||||
Résultat attendu obtenu -> réussite.
|
||||
Résultat contraire -> échec.
|
||||
Rien ne change -> attente, latence ou échec à qualifier.
|
||||
Nouvelle fenêtre -> événement à interpréter.
|
||||
Erreur -> rupture ou branche prévue selon le protocole.
|
||||
```
|
||||
|
||||
### Doute
|
||||
|
||||
Le doute est un signal utile, pas une faiblesse.
|
||||
|
||||
Léa doute quand :
|
||||
|
||||
```text
|
||||
les sources visuelles divergent ;
|
||||
la scène observée ne correspond pas à l'intention ;
|
||||
aucun protocole connu ne s'applique ;
|
||||
un retour attendu n'arrive pas ;
|
||||
une action répétée ne produit aucun effet ;
|
||||
la scène est sensible ou irréversible sans mandat explicite.
|
||||
```
|
||||
|
||||
Le doute peut mener à une variante, une demande d'aide, ou une pause.
|
||||
|
||||
## Boucle cognitive minimale
|
||||
|
||||
```text
|
||||
1. Recevoir le mandat.
|
||||
2. Déduire l'intention active.
|
||||
3. Choisir le protocole connu le plus simple.
|
||||
4. Observer la scène active pertinente.
|
||||
5. Identifier les affordances disponibles.
|
||||
6. Choisir le geste compatible avec l'intention.
|
||||
7. Agir.
|
||||
8. Observer le retour.
|
||||
9. Qualifier : réussite, échec, attente, rupture, doute.
|
||||
10. Continuer, essayer une variante, demander de l'aide, ou apprendre.
|
||||
```
|
||||
|
||||
Le point essentiel : une action n'est pas justifiée par le fait qu'un bouton existe. Elle est justifiée parce que ce bouton, dans cette scène, sert l'intention active.
|
||||
|
||||
## Contrat d'action
|
||||
|
||||
Avant d'agir, Léa doit pouvoir répondre implicitement à cinq questions :
|
||||
|
||||
```text
|
||||
Quelle intention est-ce que je sers ?
|
||||
Dans quelle scène suis-je ?
|
||||
Quelle affordance est-ce que j'utilise ?
|
||||
Pourquoi cette affordance est-elle compatible avec mon intention ?
|
||||
Quel retour est-ce que j'attends ?
|
||||
```
|
||||
|
||||
Si Léa ne peut pas produire cette justification, elle ne doit pas transformer l'action en clic opportuniste.
|
||||
|
||||
Ce contrat n'impose pas de demander à l'humain à chaque doute. Il impose que toute tentative ait une hypothèse vérifiable.
|
||||
|
||||
## Autonomie
|
||||
|
||||
L'autonomie de Léa est une autonomie d'initiative, pas une autonomie d'entêtement.
|
||||
|
||||
Léa peut :
|
||||
|
||||
```text
|
||||
choisir le chemin le plus simple ;
|
||||
changer de chemin si le premier échoue ;
|
||||
essayer une variante cohérente ;
|
||||
interpréter un retour ;
|
||||
demander de l'aide ;
|
||||
apprendre après aide ou résultat qualifié.
|
||||
```
|
||||
|
||||
Léa ne doit pas :
|
||||
|
||||
```text
|
||||
agir coûte que coûte ;
|
||||
inventer une réussite ;
|
||||
apprendre un échec comme une réussite ;
|
||||
continuer un fallback après rejet sémantique ;
|
||||
sortir d'un protocole sans raison explicable.
|
||||
```
|
||||
|
||||
Le risque n'est pas interdit. Il doit être exploitable :
|
||||
|
||||
```text
|
||||
observable
|
||||
attribuable à une intention
|
||||
réversible si possible
|
||||
évaluable après coup
|
||||
transformable en apprentissage
|
||||
```
|
||||
|
||||
## Structure conceptuelle d'un protocole
|
||||
|
||||
Un protocole peut se décrire sur un coin de papier avec les éléments suivants :
|
||||
|
||||
```text
|
||||
Nom
|
||||
Intention servie
|
||||
Préconditions plausibles
|
||||
Scènes attendues
|
||||
Affordances compatibles par scène
|
||||
Gestes possibles
|
||||
Variantes autorisées
|
||||
Retours attendus
|
||||
Branches normales
|
||||
Ruptures connues
|
||||
Conditions de réussite
|
||||
Conditions d'abstention ou demande d'aide
|
||||
Preuves apprenables
|
||||
```
|
||||
|
||||
Ce n'est pas une séquence figée. C'est une grammaire : elle autorise plusieurs phrases correctes pour atteindre la même intention.
|
||||
|
||||
## Exemple 1 : ouvrir un logiciel
|
||||
|
||||
Mandat :
|
||||
|
||||
```text
|
||||
Ouvre Bloc-notes.
|
||||
```
|
||||
|
||||
Intention :
|
||||
|
||||
```text
|
||||
rendre disponible un outil de saisie texte simple
|
||||
```
|
||||
|
||||
Protocoles possibles :
|
||||
|
||||
```text
|
||||
menu Démarrer / recherche Windows
|
||||
raccourci existant
|
||||
commande Exécuter
|
||||
barre de recherche système
|
||||
```
|
||||
|
||||
Scènes attendues :
|
||||
|
||||
```text
|
||||
bureau ou environnement de départ
|
||||
menu/recherche d'application
|
||||
résultat "Bloc-notes"
|
||||
fenêtre Bloc-notes ouverte
|
||||
```
|
||||
|
||||
Affordances compatibles :
|
||||
|
||||
```text
|
||||
champ de recherche
|
||||
résultat d'application Bloc-notes
|
||||
zone de texte vide
|
||||
```
|
||||
|
||||
Retours attendus :
|
||||
|
||||
```text
|
||||
une fenêtre de saisie texte apparaît
|
||||
elle accepte le focus
|
||||
elle permet de taper du texte
|
||||
```
|
||||
|
||||
Variantes :
|
||||
|
||||
```text
|
||||
si la recherche Windows échoue, essayer Exécuter/notepad
|
||||
si un autre éditeur texte est disponible et accepté par le mandat, l'utiliser
|
||||
si aucune scène d'édition texte n'apparaît, demander ou apprendre
|
||||
```
|
||||
|
||||
## Exemple 2 : saisir un texte
|
||||
|
||||
Mandat :
|
||||
|
||||
```text
|
||||
Saisis "testtesttest".
|
||||
```
|
||||
|
||||
Intention :
|
||||
|
||||
```text
|
||||
placer le contenu texte dans une zone éditable
|
||||
```
|
||||
|
||||
Scènes attendues :
|
||||
|
||||
```text
|
||||
éditeur texte ouvert
|
||||
champ texte actif
|
||||
curseur visible ou zone éditable détectée
|
||||
```
|
||||
|
||||
Affordances compatibles :
|
||||
|
||||
```text
|
||||
zone de saisie
|
||||
document vide ou modifiable
|
||||
```
|
||||
|
||||
Gestes :
|
||||
|
||||
```text
|
||||
focus zone éditable si nécessaire
|
||||
taper le texte
|
||||
```
|
||||
|
||||
Retours attendus :
|
||||
|
||||
```text
|
||||
le texte apparaît
|
||||
le contenu correspond au mandat
|
||||
```
|
||||
|
||||
Ruptures :
|
||||
|
||||
```text
|
||||
zone non éditable
|
||||
fenêtre inattendue
|
||||
texte non apparu
|
||||
application fermée
|
||||
```
|
||||
|
||||
## Exemple 3 : enregistrer un fichier
|
||||
|
||||
Mandat :
|
||||
|
||||
```text
|
||||
Enregistre le texte saisi.
|
||||
```
|
||||
|
||||
Intention :
|
||||
|
||||
```text
|
||||
persister le contenu courant dans un fichier
|
||||
```
|
||||
|
||||
Protocoles possibles :
|
||||
|
||||
```text
|
||||
Ctrl+S
|
||||
menu Fichier > Enregistrer
|
||||
bouton Enregistrer si visible
|
||||
Enregistrer sous si le fichier n'a pas encore de nom
|
||||
```
|
||||
|
||||
Scènes attendues :
|
||||
|
||||
```text
|
||||
éditeur texte avec contenu non sauvegardé
|
||||
dialogue Enregistrer sous
|
||||
dialogue "voulez-vous enregistrer les modifications ?"
|
||||
dialogue "le fichier existe déjà, voulez-vous le remplacer ?"
|
||||
retour à l'éditeur avec état sauvegardé
|
||||
```
|
||||
|
||||
Affordances compatibles :
|
||||
|
||||
```text
|
||||
Enregistrer
|
||||
Oui
|
||||
Remplacer, si le mandat autorise l'écrasement
|
||||
champ Nom du fichier
|
||||
```
|
||||
|
||||
Affordances contraires :
|
||||
|
||||
```text
|
||||
Annuler
|
||||
Ne pas enregistrer
|
||||
Non, si la question porte sur la sauvegarde souhaitée
|
||||
```
|
||||
|
||||
Retours attendus :
|
||||
|
||||
```text
|
||||
la boîte de sauvegarde se ferme
|
||||
le fichier existe à l'emplacement choisi
|
||||
le contenu est présent
|
||||
le document n'est plus en état non sauvegardé
|
||||
```
|
||||
|
||||
Règle clé :
|
||||
|
||||
```text
|
||||
Voir un bouton "Enregistrer" ne suffit pas.
|
||||
Il faut que ce bouton soit dans une scène compatible avec l'intention de sauvegarde.
|
||||
```
|
||||
|
||||
## Exemple 4 : regarder une vidéo de jazz
|
||||
|
||||
Mandat :
|
||||
|
||||
```text
|
||||
Trouve et lance une vidéo de jazz.
|
||||
```
|
||||
|
||||
Intention :
|
||||
|
||||
```text
|
||||
obtenir une vidéo en lecture correspondant au thème jazz
|
||||
```
|
||||
|
||||
Protocoles possibles :
|
||||
|
||||
```text
|
||||
ouvrir navigateur -> YouTube -> chercher jazz -> lancer une vidéo
|
||||
ouvrir navigateur -> moteur de recherche -> "video jazz" -> ouvrir un résultat vidéo
|
||||
utiliser une application ou un favori connu si disponible
|
||||
```
|
||||
|
||||
Scènes attendues :
|
||||
|
||||
```text
|
||||
navigateur ouvert
|
||||
barre d'adresse ou champ de recherche
|
||||
page de résultats
|
||||
page vidéo
|
||||
lecteur avec bouton Lecture ou vidéo déjà en lecture
|
||||
```
|
||||
|
||||
Affordances compatibles :
|
||||
|
||||
```text
|
||||
barre d'adresse
|
||||
champ de recherche
|
||||
résultat vidéo pertinent
|
||||
bouton Lecture
|
||||
```
|
||||
|
||||
Retours attendus :
|
||||
|
||||
```text
|
||||
une vidéo démarre
|
||||
le contenu semble lié au jazz
|
||||
le son ou la lecture est active si observable
|
||||
```
|
||||
|
||||
Variantes :
|
||||
|
||||
```text
|
||||
si YouTube est inaccessible, utiliser le moteur de recherche
|
||||
si le premier résultat n'est pas pertinent, revenir et choisir un autre résultat
|
||||
si un consentement cookie bloque la scène, traiter le dialogue seulement s'il est compatible avec la navigation
|
||||
```
|
||||
|
||||
## Généralisation multi-environnements
|
||||
|
||||
Léa doit apprendre à plusieurs niveaux.
|
||||
|
||||
### Niveau 1 : mémoire locale
|
||||
|
||||
```text
|
||||
Dans cet écran précis, ce bouton sauvegarde.
|
||||
Dans ce DPI, cette scène ressemble à Save As.
|
||||
Dans ce logiciel, ce champ est le champ de recherche patient.
|
||||
```
|
||||
|
||||
### Niveau 2 : protocole applicatif
|
||||
|
||||
```text
|
||||
Dans ce logiciel DPI, ouvrir un dossier patient passe par recherche -> liste -> fiche.
|
||||
Dans ce logiciel comptable, valider une écriture passe par saisie -> contrôle -> validation.
|
||||
```
|
||||
|
||||
### Niveau 3 : protocole métier
|
||||
|
||||
```text
|
||||
Tous les DPI ont une façon de chercher un patient, ouvrir sa fiche, saisir une information, valider et tracer.
|
||||
Tous les logiciels de stock ont une façon de rechercher un article, ajuster une quantité, valider un mouvement.
|
||||
Tous les logiciels comptables ont une façon de saisir, contrôler, rapprocher, valider.
|
||||
```
|
||||
|
||||
### Niveau 4 : protocole universel
|
||||
|
||||
```text
|
||||
chercher
|
||||
ouvrir
|
||||
saisir
|
||||
valider
|
||||
annuler
|
||||
enregistrer
|
||||
confirmer
|
||||
revenir
|
||||
fermer
|
||||
```
|
||||
|
||||
La généralisation consiste à relier les preuves locales à ces niveaux supérieurs.
|
||||
|
||||
## Apprentissage
|
||||
|
||||
Léa apprend seulement à partir d'un résultat qualifié.
|
||||
|
||||
Apprentissage valide :
|
||||
|
||||
```text
|
||||
L'action a produit le retour attendu.
|
||||
L'humain a confirmé ou corrigé.
|
||||
La scène et l'intention sont connues.
|
||||
Le geste est attribuable au résultat.
|
||||
```
|
||||
|
||||
Apprentissage interdit :
|
||||
|
||||
```text
|
||||
clic opportuniste sans justification
|
||||
effet non vérifié
|
||||
échec enregistré comme succès
|
||||
correction humaine confondue avec autonomie
|
||||
retour ambigu non qualifié
|
||||
```
|
||||
|
||||
La correction humaine ne doit pas seulement enregistrer "où cliquer". Elle doit enrichir :
|
||||
|
||||
```text
|
||||
quelle scène était visible
|
||||
quelle intention était active
|
||||
quelle affordance était correcte
|
||||
quel geste a été fait
|
||||
quel retour a prouvé la réussite
|
||||
```
|
||||
|
||||
## Ce que ce modèle aurait changé dans nos tests
|
||||
|
||||
Dans les tests humains réalisés ces derniers jours, beaucoup d'échecs venaient d'une confusion entre :
|
||||
|
||||
```text
|
||||
résoudre une cible visuelle
|
||||
et accomplir une intention
|
||||
```
|
||||
|
||||
Avec ce modèle :
|
||||
|
||||
```text
|
||||
ouvrir un logiciel
|
||||
trouver une zone de saisie
|
||||
taper
|
||||
déclencher une sauvegarde
|
||||
interpréter Enregistrer sous
|
||||
confirmer Enregistrer
|
||||
traiter un remplacement ou une demande de sauvegarde
|
||||
vérifier le résultat
|
||||
```
|
||||
|
||||
ne sont plus des actions isolées. Ce sont des scènes normales dans un protocole connu.
|
||||
|
||||
Si une fenêtre inattendue apparaît, Léa ne demande pas "où cliquer ?". Elle se demande :
|
||||
|
||||
```text
|
||||
Cette scène est-elle une continuation normale de mon mandat ?
|
||||
Quelles affordances propose-t-elle ?
|
||||
Laquelle sert l'intention ?
|
||||
Quel retour dois-je attendre ?
|
||||
```
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
1. Quel vocabulaire final garder : protocole d'usage, geste type, routine intentionnelle ?
|
||||
2. Comment exprimer à l'utilisateur le mandat courant sans jargon ?
|
||||
3. Quelles familles de protocoles universels faut-il inscrire en premier ?
|
||||
4. Comment distinguer visuellement une scène pertinente d'une fenêtre simplement au focus ?
|
||||
5. Comment demander de l'aide sans transformer l'humain en téléopérateur ?
|
||||
6. Comment capturer l'apprentissage métier sans mémoriser des informations sensibles ?
|
||||
|
||||
## Synthèse courte
|
||||
|
||||
```text
|
||||
Léa reçoit un mandat.
|
||||
Elle choisit un protocole.
|
||||
Elle observe une scène.
|
||||
Elle interprète les affordances.
|
||||
Elle agit avec une hypothèse.
|
||||
Elle qualifie le retour.
|
||||
Elle apprend uniquement d'un résultat qualifié.
|
||||
```
|
||||
|
||||
Cette structure permet de viser la généralisation : mêmes intentions, scènes différentes, logiciels différents, DPI différents, OS différents.
|
||||
Reference in New Issue
Block a user