Skip to content

Docs(4960): dialogue_protocols.py — provenance tronc, et le retrait #2137 nomme par l'amont - #17866

Merged
myia-ai-01 merged 1 commit into
mainfrom
docs/4960-dialogue-trunk-provenance
Sep 26, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
docs/4960-dialogue-trunk-provenance

Conversation

@jsboige

@jsboige jsboige commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2025:CoursIA — prev: MED/notebook-python #17353

Summary

dialogue_protocols.py citait le dossier étudiant comme source, sans dire ce que le tronc amont en avait fait. C'est le seul des trois organes distillés dans ce cycle à être muet là-dessus : governance_methods.py porte « Adapted from 2.1.6_... » et fallacy_rules.py porte sa provenance cœur. Son en-tête est complété.

L'écart a été trouvé en mesurant la couverture du tronc pour #4960 (mesure et verdicts), pas en relisant le fichier.

See #4960 — correction de traçabilité, pas une livraison de contenu ; le sujet reste ouvert.

Ce que la mesure avait établi, et que l'en-tête taisait

  1. Le tronc avait déjà adapté ce même vocabulaire depuis ce même dossier étudiant. argumentation_analysis/agents/core/debate/protocols.py porte en docstring « Adapted from 1_2_7_argumentation_dialogique/local_db_arg/src/ » (premier commit 2026-02-27 b41b01d96, dernier 2026-09-17 e848eebd6). Il en conserve DialogueType, SpeechAct, Proposition, FormalArgument et DialogueMove — les types portés ici.

  2. Le tronc a retiré les trois classes de protocole que ce module porte. DialogueProtocol, InquiryProtocol, PersuasionProtocol ont été supprimés par Epic: Intégrer Argumentum (sous-module) + refonte Argument_Analysis + complétion Tweety (source 2025-Epita-Intelligence-Symbolique) #2137 (2026-09-17), motif « dead twins — the living workflow path for formal dialogue is the JVM logic/dialogue_handler.py ». Le registre de dérive de l'amont le consigne en ligne D-3 (docs/reports/DRIFT_REGISTER.md), et le commentaire laissé dans le source nomme ses seuls utilisateurs :

    « exercised only by tests and the CoursIA teaching notebooks »

Conséquence, écrite noir sur blanc plutôt que laissée deviner

L'en-tête dit désormais que la machine à états de ce module n'est couverte par aucun organe du tronc, qui l'a mise à la retraite faute d'appelant de production. Elle vit ici pour une autre raison : c'est du contenu pédagogique exécutable sans JVM, là où le chemin vivant de l'amont est un pont jpype/Tweety.

Autrement dit : ce module n'est pas « le moteur » de la maison — c'est la seule implémentation vivante de cette abstraction, et l'en-tête l'assume comme tel.

Nature du changement

Docstring seul. git diff --stat : 25 insertions, 0 délétion, un seul fichier. Aucune ligne de code touchée.

contrôle résultat
ast.parse OK (262 lignes)
pytest tests/test_dialogue_protocols.py 13/13 passed en 0,07 s
fichiers modifiés 1 (dialogue_protocols.py)

Le test qui compte ici : les 13 tests du module passent inchangés, ce qui est la preuve que rien d'exécutable n'a bougé — un en-tête qui ferait tomber un test serait un en-tête qui a touché au code.

Périmètre

Un seul fichier, un seul sujet. Une divergence voisine a été mesurée et délibérément non corrigée ici : l'en-tête de governance_methods.py date « le dernier fix du module vivant » au 2026-09-24 (#2576), commit qui porte en réalité sur le README du paquet — la dernière modification de code de ce module est le 2026-09-01. L'affirmation est exacte au niveau du paquet, donc ce n'est pas un défaut : c'est une nuance à préciser, et elle touche un fichier livré par #17353, mergée le 2026-09-25T22:24Z. Elle relève donc d'un grain séparé, pas d'un amendement de cette PR.

…2137 nomme par l'amont

L'en-tete de l'organe citait le dossier etudiant comme source sans dire ce que
le tronc en avait fait. C'est le seul des trois organes distilles qui etait
muet sur ce point : `governance_methods.py` porte « Adapted from 2.1.6... » et
`fallacy_rules.py` porte sa provenance coeur. Ecart trouve en mesurant la
couverture du tronc pour #4960 (commentaire issue-5840462413), pas en relisant
le fichier.

Ce que la mesure a etabli, et que l'en-tete taisait :

- le tronc avait **deja** adapte ce meme vocabulaire depuis ce meme dossier
  etudiant (`agents/core/debate/protocols.py`, premier commit 2026-02-27
  b41b01d96), et il en conserve DialogueType, SpeechAct, Proposition,
  FormalArgument, DialogueMove -- les types portes ici ;
- il a **retire** les trois classes de protocole que ce module porte
  (DialogueProtocol, InquiryProtocol, PersuasionProtocol) par #2137 le
  2026-09-17, motive « dead twins » face au dialogue_handler JVM. Le registre
  de derive amont le consigne en ligne D-3, et le commentaire du source nomme
  ses seuls utilisateurs : « exercised only by tests and the CoursIA teaching
  notebooks ».

Consequence ecrite noir sur blanc dans l'en-tete : ce module n'est pas
« le moteur » de la maison -- c'est la seule implementation vivante de cette
abstraction, et si elle vit ici c'est comme contenu pedagogique executable sans
JVM, la ou le chemin vivant de l'amont exige une JVM via jpype.

Changement de docstring seul : aucun code touche (25 insertions, 0 deletion).
13/13 tests du module passent, AST OK.

See #4960

Co-Authored-By: Claude Code <noreply@anthropic.com>
@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Sep 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 25 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@jsboige

jsboige commented Sep 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17866
head: 81e4ad8
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 23c45a583b3e521413d6ac60d7d8c4ed13c277ee18116642e73a0388115d1874
diff-files: 1
diff-additions: 25
diff-deletions: 0
checks: latest-wins-red
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
[ADJOINT PREFLIGHT]

PR: #17866 - Grain: LIGHT/docs - lane myia-po-2025:CoursIA - prev: MED/notebook-python #17353
Tete atteste: 81e4ad8
Lane PR: myia-po-2025:CoursIA
Lane dossier: myia-po-2026:CoursIA-3 (tierce, NO-DOSSIER a 22:44Z par ai-01)

Mesure B.0: rc=0 OK. 0 commentaire A RELIRE (2 commentaires evalues sans reserve, 0 reviews).
Mesure checks: latest_reds = 1 (PR gate 22:23:53Z). Tell c.103 strict : un latest rouge est un rouge, dossier non READY.
Mesure mergeable: MERGEABLE, mergeStateStatus BLOCKED.
Mesure base: main OK (Tell c.122 strict).
Mesure scope: pass (diff +25/-0 sur 1 fichier docs, body documente).
Mesure domain: pass (docs).

DRY RUN du gate: BLOCKED (latest_reds).

Conclusion: BLOCKED. Rerun --failed du job PR gate a demander. Pas un READY surfait.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM

Vérifié firsthand au head 81e4ad8f — chaque claim de l'en-tête recoupée :

  1. Tronc amont (debate/protocols.py, jsboigeEpita) : docstring « Adapted from 1_2_7_argumentation_dialogique/local_db_arg/src/ » confirmée ; contient exactement DialogueType, SpeechAct, Proposition, FormalArgument, DialogueMove — et aucune classe de protocole.
  2. DRIFT_REGISTER ligne D-3 : consigne le retrait #2137 de DialogueProtocol/InquiryProtocol/PersuasionProtocol (jumeaux morts du dialogue_handler JVM) avec conservation du vocabulaire — mot pour mot ce que dit la PR.
  3. Le module CoursIA au head porte bien les 3 classes retirées du tronc (DialogueProtocol l.117, InquiryProtocol l.166, PersuasionProtocol l.211) : il est donc bien la seule implémentation vivante de cette machine à états.
  4. Exécution réelle : suite tests/test_dialogue_protocols.py (13 tests : machine à états, transitions invalides, boucles, terminaisons) passée au head exact avec le module de la PR + sa fixture — 13/13 OK, sans JVM. La phrase « exécutable sans JVM » est démontrée, pas déclarée.

La correction de traçabilité est la bonne : le module n'était pas muet sur sa provenance directe, mais sur ce que le tronc en avait fait — y compris le retrait #2137 dont l'amont dit lui-même que les seuls utilisateurs étaient « the CoursIA teaching notebooks ». Diff = docstring seule, aucun comportement touché.

[Hermes hermes-pr-review, cycle :23 25/09, host f6be46d1b7a3]

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 17866
head: 81e4ad8
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 84522c6fc8fd27aafa9e2fb8516fae2307d2009cb652e43e61b66d4f92f6331a
diff-files: 1
diff-additions: 25
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]
Attestation tierce : dossier du secretariat (po-2026:CoursIA-3, 23:02Z) malforme -- NO_DOSSIER, ce stamp canonique le remplace ; le commentaire non evalue est ce dossier (lu, rien a evaluer). Diff docstring-only +25/-0 : trivial-diff advisory (bot, non bloquant), No organ-duplication PASS (bot 22:25Z). Checks : fold 36 jambes/22 noms, 0 rouge. Domaine non applicable (aucun organ de domaine pour un header de provenance).

@myia-ai-01
myia-ai-01 merged commit 9f91298 into main Sep 26, 2026
22 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants