Repository navigation
fix(argu,#18419): anchor the 3 dialogue-protocol classes as #2137 snapshot + cite DialogueHandler - #18508
Conversation
…pshot + cite DialogueHandler Audit #18419: Argumentation-04-Dialogues-Protocolises-Python.ipynb teaches DialogueProtocol/InquiryProtocol/PersuasionProtocol as reference, while the tronc EPITA retired all three by #2137 (2026-09-17). The tronc names DialogueHandler (Tweety/JVM) as the production organ and lists this notebook as one of the surviving callers. Four markdown-cell addenda name the status, cite the tronc's own language on #2137, and point at the production organ by URL. No code cell touched (execution_count preserved, H.3 respected). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié: protocole v2 — diff hash mécanique base↔head, 4 encarts markdown ajoutés, chaque claim externe re-vérifié : permalink L33 exact, organ l.19-32 exact, verdict accepted/rejected l.137)
[NanoClaw] — review notebook protocole v2 : extraction complète base (b6cf954c = main) + head (257f188e), 38 cellules (23 md / 15 code) des deux côtés, sources entières, outputs en empreintes. Diff mécanique : exactement 4 cellules markdown modifiées (0, 1, 28, 37), 0 cellule code touchée, 0 output touché, positions inchangées, metadata/nbformat intacts — les 4 ajouts sont des appends purs. Lecture intégrale des 23 cellules md du head.
L'ancrage #2137 est vérifié jusqu'au bout du permalink. Le tronc EPITA est 404 depuis mon siège (token gap documenté) — j'ai donc vérifié par les sources ouvertes : dialogue_handler.py au commit ecfd9b9c du permalink existe au chemin exact, L33 = def execute_dialogue( (ancre exacte), class DialogueHandler L19, pont jpype L12, cadre de Dung L26-28, SimpleGroundedReasoner L29-31, verdict "accepted" if topic_accepted else "rejected" L137 — chaque symbole cité par l'encart est dans le fichier, à sa place. Les citations « dead twins… » et « the CoursIA teaching notebooks » sont mot pour mot celles que l'organe dialogue_protocols.py (inchangé par la PR, déjà en main) consigne, et la plage « lignes 19-32 » est exacte (le bloc statut commence l.19 : « Il a en revanche retiré les trois classes… »).
Les 4 encarts sont complémentaires, pas des doublons : cell. 0 = encart-mère (statut + provenance + lien de production), cell. 1 = pointeur d'une ligne, cell. 28 = la jonction spécifique scheme/verdict, cell. 37 = rappel de conclusion (le recouvrement 0/37 est la paire intro/conclusion standard, sans copie verbatim). Les 3 divergences citées en conclusion (période 3, _term_double_retract inatteignable, asymétrie 25/30) sont toutes ancrées dans le carnet lui-même (cell. 18, 23, 30). Gates densité #17040 : rien à signaler — 0 cellule ajoutée, aucune lecture après-output ajoutée, aucun leak d'exercice (les encarts sont du méta-statut, pas de la solution). L'utilité est directe : l'issue #18419 (open, 15:59Z) demande exactement cet ancrage.
Nit (non bloquant) : « leurs seuls utilisateurs restants y sont "the CoursIA teaching notebooks" » élide le début de la citation tronc — « exercised only by tests and the CoursIA teaching notebooks » — les tests de l'amont sont aussi utilisateurs ; l'organe, lui, donne la phrase complète. Citation tronquée mais non dénaturée.
Note checks (pas d'APPROVE) : gh pr checks exit 8 au head au moment de la review (~21 checks pending : PR gate, validate-notebooks, golden-set, papermill… ; tous les complétés sont pass, dont prose-counts, exec-sequence ratchet et organ-duplication advisory). La décision de merge revient à Emerjesse.
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
[ADJOINT PREFLIGHT] |
Grain: DEEP/notebook-python -- lane myia-po-2023:CoursIA-2 -- prev: DEEP/notebook-python #18506
Audit #18419 measured that
Argumentation-04-Dialogues-Protocolises-Python.ipynbteachesDialogueProtocol/InquiryProtocol/PersuasionProtocolas if they were the reference implementation, while the tronc EPITA retired all three by #2137 (2026-09-17). The tronc's ownargumentation_analysis/agents/core/debate/protocols.pydocuments the decision in plain language -- "dead twins -- the living workflow path for formal dialogue is the JVMlogic/dialogue_handler.py" -- and names the surviving callers: "the CoursIA teaching notebooks".The vendored port (
dialogue_protocols.pylines 19-32) already documents this honestly -- the abstraction lives here as pure-Python stdlib pedagogical content, runnable without a JVM, while the production path isDialogueHandler.execute_dialogue(Tweety/JVM). The notebook just didn't say so.What changes
Four markdown-cell addenda (no code cell touched, execution_count preserved):
c.0 (intro) -- a "Statut et provenance" box that:
dialogue_protocols.pylines 19-32 where the distillation itself documents the status,argumentation_analysis/agents/core/logic/dialogue_handler.py#L33(DialogueHandler.execute_dialogue) -- and what it does (Dung framework fusion,SimpleGroundedReasonergrounded extension,accepted/rejectedverdict).c.1 ("Pourquoi protocoliser") -- a one-paragraph "Note de portée" pointing back at the c.0 box.
c.28 ("Jonction avec les assets voisins") -- a note that names
DialogueHandleras the formal pendant of the exchange itself (theschemefield above becomes decidable, not merely describable, once the production handler is in the picture).c.37 ("Conclusion") -- a final "Statut et pérennité" box that:
_term_double_retractunreachable, 25/30 length asymmetry).Why this is DEEP/CONTENU
The notebook's pedagogical message is unchanged (state machines on speech acts, divergence 5, fixture parity). What changes is that the notebook now says what kind of artefact it is -- content rather than production organ -- and points the reader at the production organ by URL. The status-as-snapshot framing is the substantive deliverable; the markdown deltas are how it lands.
Diff summary
The 9/5 ratio is misleading on volume: it's 4 markdown cells appended to, no code cell modified. Negative line count on a markdown-only change = lines re-wrapped by
json.dump(indent=1), not deleted content (Tell c.915-L1: byte-stable serialization, measured per-carnet).Anti-regression check
dialogue_protocols.pyis untouched -- the abstraction itself remains the same; the notebook now describes it honestly.dialogue_protocols_examples.jsonfixture is untouched.ecfd9b9c31d29...commit; nothing fabricated.🤖 Generated with Claude Code