Skip to content

fix(argu,#18419): anchor the 3 dialogue-protocol classes as #2137 snapshot + cite DialogueHandler - #18508

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/18419-argu04-dialogue-handler
Sep 30, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/18419-argu04-dialogue-handler

Conversation

@jsboige

@jsboige jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python -- lane myia-po-2023:CoursIA-2 -- prev: DEEP/notebook-python #18506

Audit #18419 measured that Argumentation-04-Dialogues-Protocolises-Python.ipynb teaches DialogueProtocol / InquiryProtocol / PersuasionProtocol as if they were the reference implementation, while the tronc EPITA retired all three by #2137 (2026-09-17). The tronc's own argumentation_analysis/agents/core/debate/protocols.py documents the decision in plain language -- "dead twins -- the living workflow path for formal dialogue is the JVM logic/dialogue_handler.py" -- and names the surviving callers: "the CoursIA teaching notebooks".

The vendored port (dialogue_protocols.py lines 19-32) already documents this honestly -- the abstraction lives here as pure-Python stdlib pedagogical content, runnable without a JVM, while the production path is DialogueHandler.execute_dialogue (Tweety/JVM). The notebook just didn't say so.

What changes

Four markdown-cell addenda (no code cell touched, execution_count preserved):

  1. c.0 (intro) -- a "Statut et provenance" box that:

  2. c.1 ("Pourquoi protocoliser") -- a one-paragraph "Note de portée" pointing back at the c.0 box.

  3. c.28 ("Jonction avec les assets voisins") -- a note that names DialogueHandler as the formal pendant of the exchange itself (the scheme field above becomes decidable, not merely describable, once the production handler is in the picture).

  4. c.37 ("Conclusion") -- a final "Statut et pérennité" box that:

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

Argumentation-04-Dialogues-Protocolises-Python.ipynb | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

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

  • No code cell modified -> no execution_count drift, no output drift, H.3 untouched.
  • dialogue_protocols.py is untouched -- the abstraction itself remains the same; the notebook now describes it honestly.
  • The dialogue_protocols_examples.json fixture is untouched.
  • The four addenda cite tronc file paths that already exist on the tronc's ecfd9b9c31d29... commit; nothing fabricated.

🤖 Generated with Claude Code

…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>
@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).

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 10.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 8.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 16.8s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 14.7s
Search-01-StateSpace.ipynb ✅ SUCCESS 6.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 43.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 5.3s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@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é: 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.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 15
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18508
head: 257f188
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: e77f9bf62091015895d09dc8df825bfb7858161f4d6e7a9b8c37a9420cb12f54
diff-files: 1
diff-additions: 9
diff-deletions: 5
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants