Skip to content

feat(argu,#4960): etape 5 volet B -- catalogue light/standard/full + carnet 08f synthese multidimensionnelle - #20443

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/4960-voletB-workflow-levels
Oct 13, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/4960-voletB-workflow-levels

Conversation

@jsboige

@jsboige jsboige commented Oct 12, 2026

Copy link
Copy Markdown
Owner

Slot: accretion de 08 (f)
Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: MED/docs #20420

Étape 5 du volet B #4960 : « Notebook synthèse multidimensionnelle — fil conducteur = workflows light/standard/full, sortie = restitution 3 actes ». Deux commits :

  1. workflow_levels.py — l'organe : catalogue déterministe de 9 dimensions (emboîtement strict 3/6/9, compteurs dérivés, doctests), port de la recette pédagogique EPITA (orchestration/workflows.py 152-610) sur les organes réels de la série.
  2. Argumentation-08f-Synthese-Multidimensionnelle-Python.ipynb — le carnet (38 cellules, 3 exercices répartis) : banc annoté, lecture du catalogue, exécution des 3 niveaux, preuve d'indisponibilité FOL/modale par inventaire du jar, croisement avec les mesures du sas, conclusion 3 actes.

Organ-first — les 5 questions

  1. Série possédant la sémantique : Argument_Analysis/argumentation_lib (état partagé, init JVM, handlers) + organes de série (fallacy_rules.py Add: distillation 2.3.2 détection symbolique de sophismes — organe fallacy_rules + notebook (sous-grain 1 #4960) #17348, orchestration_modes.py [EPIC] Argument_Analysis v3 — submodule Argumentum (prémerge v0.9.0) + remontées moteur (CsvDiff/DatasetUpdater/Owl) + landing essence multidimensionnelle EPITA-IS #4960 étape 4, renderer 3 actes du carnet 08d).
  2. Modules réels invoqués : argumentation_lib.initialize_jvm + _shared_state.RhetoricalAnalysisState (verbatim partiel EPITA, commit bfff7542) ; fallacy_rules.detect_fallacies (organe symbolique Add: distillation 2.3.2 détection symbolique de sophismes — organe fallacy_rules + notebook (sous-grain 1 #4960) #17348) ; classes Tweety réelles du jar 7a (PlParser, SimplePlReasoner, Simple{Grounded,Preferred,Stable}Reasoner via jpype.imports, pattern Tweety-05 cellule 8).
  3. Export/refactor à demander à la série source : extraction du renderer 3 actes de 08d vers la lib (la synthèse du full produit le FORMAT compact et cite 08d comme porteur — copie pédagogique déclarée) ; remontée FOL/modale = sous-tranches C186f (TweetyInitializer) + C186g (shim), dépendances amont non vendues.
  4. Témoin négatif : la requête duale PL (a && !a => non-derivée : KB cohérente) ; les 2 dimensions OrganUnavailable rendues avec preuve (0 classe logics.fol/logics.ml dans le jar — inventaire zipfile exécuté DANS le carnet, cellule preuve-jar).
  5. Vérification indépendante : les extensions Dung du banc sont recalculées par Tweety (jamais hardcodées) ; l'exercice 2 fait prédire puis mesurer l'effet d'une attaque ajoutée ; le croisement sas relit ModeRun.state_fill_rate depuis orchestration_modes.

Contrat de fidélité (divergences mesurées, en tête de workflow_levels.py)

  1. DAG LLM non portés (aucun appel LLM — rejouable hors ligne ; coût source 0,55-0,95 USD/run dans orchestration_modes.PROVENANCE).
  2. Restitution 3 actes COMPACTE et déclarée (renderer intégral : carnet 08d).
  3. JTMS pas une dimension (brique embarquée du carnet 06).
  4. ASPIC+/ABA/SETAF/weighted/bipolar interdits (body [EPIC] Argument_Analysis v3 — submodule Argumentum (prémerge v0.9.0) + remontées moteur (CsvDiff/DatasetUpdater/Owl) + landing essence multidimensionnelle EPITA-IS #4960 : gap NL→structure non bouché).
  5. FOL et modale déclarées indisponibles — preuve : inventaire zipfile du jar 7a-java8-shade (sous-packages logics/ = commons + pl seulement) ; handlers portés en dépendances non vendues (notes G.9 du __init__ de argumentation_lib). Rendues par run_level comme unavailable avec preuve — jamais un faux résultat, jamais un silence.
  6. Détection symbolique, pas taxonomique : _taxonomy_sophism_detector NOT standalone-importable (notice DEPENDENCY du fichier : plugin SK amont non vendu) ; l'organe réel est fallacy_rules — ses motifs spaCy attrapent les formes canoniques (mesuré sur le corpus du carnet des règles : 4/9 ; banc planté : 4/4 clés).

Validation réelle (H.1)

  • Papermill end-to-end : 38/38 cellules, 0 erreur (25 s, kernel python3, JVM réelle + spaCy fr_core_news_sm).
  • execution_count non null : 16/16 cellules code ; outputs inline (C.2).
  • C.1 : grep raise NotImplementedError|assert False|1/0 → 0 hit ; stubs pass/print/result = None # TODO etudiant.
  • 3 exercices répartis (après light / standard / full), chacun précédé de son markdown d'énoncé (règle 3-exercices).
  • Interps collées aux outputs qu'elles commentent (chaque valeur citée apparaît dans l'output adjacent — cell-interpretation-ordering).
  • Gradation mesurée : fill 0,71 / 0,86 / 1,00 (light/standard/full) ; croisement sas : fill LLM 0,179 / 0,462 / 0,487 (ModeRun.state_fill_rate, n/a jamais fabriqué).

README série

Ligne 08f (présentation fidèle au carnet), entrée mapping hors-arc (transverse synthèse, après 07c et 08e), liste des transverses. Les comptes durs du mapping (34/34, 14/34) sont supprimés au profit du renvoi au catalogue régénéré (règle prose-counts : une ligne de compte se supprime, elle ne se remet pas à jour à la main). Catalogue COURSE_CATALOG.generated.* laissé byte-identique à main.

See #4960 (étape 5 du volet B — l'EPIC reste ouverte : étapes restantes et re-synch README final à l'issue du landing).

🤖 Generated with Claude Code

jsboige and others added 2 commits October 12, 2026 05:58
…e light/standard/full)

Catalogue deterministe de 9 dimensions (emboitement strict 3/6/9), port de la
recette pedagogique EPITA sur les organes reels de la serie :

- 7 dimensions executees : releve, PL (SimplePlReasoner), sophismes
  (fallacy_rules #17348), Dung (Simple{Grounded,Preferred,Stable}Reasoner,
  noms mesures dans le jar 7a-java8-shade), decision (KB complete, derivation
  fermeture_boutiques => True), synthese 3 actes compacte.
- 2 dimensions DECLAREES INDISPONIBLES avec preuve mesuree : FOL et modale
  (0 classe logics.fol / logics.ml dans le jar ; handlers portes en
  dependances non vendues, notes G.9 de argumentation_lib) -- divergence 5
  du contrat de fidelite en tete de module.
- Detection de sophismes : formes canoniques du banc mesurees sur l'organe
  (4/4 cles) -- divergence 6 (taxonomie 1552 non standalone-importable).
- Gradation mesuree : fill 0.71 / 0.86 / 1.00 (light/standard/full),
  comparable au state_fill_rate LLM du sas (0.179/0.462/0.487).
- doctests 0 echec ; bench JVM reelle via junction Tweety/libs.

Le carnet 08f (synthese multidimensionnelle) suit au cycle prochain : ce
commit pose l'organe qu'il consommera.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…onnelle

Argumentation-08f-Synthese-Multidimensionnelle-Python.ipynb (38 cellules,
3 exercices repartis) : fil conducteur = catalogue light/standard/full de
l organe workflow_levels (commit precedent), sortie = synthese 3 actes.

- Execution reelle papermill 38/38, 0 erreur, exec_count 16/16, outputs
  inline (C.2) ; garde C.1 : 0 erreur volontaire (grep 0 hit).
- 7 dimensions reelles executees dans le carnet (PL, sophismes
  fallacy_rules 4/4 cles, Dung Simple*Reasoner, decision derivee,
  synthese) + 2 declarees indisponibles avec preuve d inventaire du jar
  (cellule zipfile live).
- Croisement sas : fill deterministe 0,71/0,86/1,00 vs fill LLM 0,179/
  0,462/0,487 (ModeRun par mode, n/a jamais fabrique) -- asymetrie
  documentee, pas maquillee.
- README serie : ligne 08f (presentation), mapping hors-arc (transverse
  synthese), liste transverses ; comptes durs du mapping supprimes au
  profit du renvoi au catalogue regenere (regle prose-counts).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 12, 2026
@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).

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

[NanoClaw] review protocole v2 — ajout carnet neuf 08f + organe workflow_levels.py (grain DEEP, étape 5 volet B #4960)
VERDICT: LGTM (vérifié: 38 cellules lues intégralement, organe 517 l. lu entier, outputs clés lus texte intégral, Dung + PL re-dérivés à la main)

Vérifié positivement (valeur par valeur)

  • exec_seq propre 1..16 monotone, zéro re-sérialisation (probe single-line = 0), 3 exercices en stubs C.1 tenus (même empreinte 9f2229b1, aucun leak de solution).
  • Fill-rates exacts et re-dérivés : light 5/7 = 0.71, standard 6/7 = 0.86, full 7/7 = 1.00 — cohérents champ par champ avec STATE_FIELDS (7 champs) et la composition du catalogue (3/6/9 dimensions, assert exécuté, compteur dérivé anti-#1019 ✓).
  • PL re-dérivé à la main : fermeture_boutiques dérivable de {fait + règle 1} → True ✓ ; test de cohérence par requête duale ✓.
  • Dung re-dérivé à la main : attaques A4→A1, A2→A4, A5→A3 ⇒ grounded = {A2, A4, A5}, unique, preferred = stable = même extension — les comptes exécutés {'grounded': 1, 'preferred': 1, 'stable': 1} sont exacts.
  • La preuve d'indisponibilité est réelle : inventaire zipfile du jar exécuté (cellule 27) ne liste que logics.commons + logics.pl, fol=0, ml=0 — la sortie committée porte la preuve, pas une allégation. Classe « annonce, prouve, ne prétend pas » tenue de bout en bout (organe divergence 5 ↔ run ↔ prose cohérents).
  • Croisement sas honnête : fills LLM 0.179/0.462/0.487 et DEPTH_PARITY 3/15/17 relevés dans l'output exécuté d'orchestration_modes ; les n/a des runs non terminés sont rendus n/a, jamais fabriqués ; l'asymétrie d'échelle est documentée, pas maquillée.
  • Bench traçable : les 4 extraits de sophismes affichés (ad hominem, autorité, tradition, pente glissante) sont tous présents mot à mot dans BENCH["raw_text"] ✓ ; README 08f référencé (l.89 + l.464 — pas d'orphan).
  • Contrat de fidélité de l'organe (6 divergences) est la pièce maîtresse du port : chaque écart avec la source EPITA est nommé, mesuré et assumé.

Nits (non bloquants)

  1. « les trois formules… c'est toute la chaîne qui porte la dérivation » (lecture full) surestime : la dérivation de fermeture_boutiques n'utilise que fait + règle 1 ; la règle 2 (fermeture_echoppes => protege_proximite) n'est sur aucune chaîne vers la décision. Même laisser-aller dans le docstring _dimension_sat (« fait + regle x2 »). La nuance compte d'autant plus que l'Exercice 3 porte précisément sur cette chaîne.
  2. Exercice 2 présume un changement qui n'a pas lieu : ajouter l'attaque A3→A1 laisse l'extension grounded invariante ({A2,A4,A5} avant et après — A1 est déjà exclu via A4 non défendu). La question « comment l'extension grounded change-t-elle ? » mériterait la forme neutre « change-t-elle ? » — le bon answer est « pas du tout », c'est une belle leçon de prédiction si la question ne la présuppose pas.
  3. Acte III compte 4 requêtes formelles, il y en a 3 distinctes : pl_belief_set et pl_queries exécutent le même runner deux fois (notes identiques dans le run light), chaque requête PL entre donc 2 fois dans query_log. Double-compte cosmétique dans la synthèse, pas dans les fill-rates.

Non re-mesuré (provenance déclarée, externe à la PR) : « 4 formes sur 9 » du corpus de référence fallacy_rules (#17348) ; coûts BYOK 0,55/0,95 USD (PROVENANCE du sas) ; existence des jars 1.28 côté EPITA.

Checks au head 8ea842a au moment de la review (snapshot 04:20Z, PR cr. 04:14Z) : ~13 pass (dont orphan guard, validate outputs, anchored-claims advisory), 0 fail, ~30 pending (queue normale pour une PR de 6 min — PR gate/Twin parity/ratchets non conclus à l'instant du relevé, forme bare exit 8).

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 12, 2026
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

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

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.9s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 11.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 12.7s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.9s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 38.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 4.8s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 22.8s

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

check-nav-chain rendait orphan_entry sur le carnet 08f (aucun lien entrant).
Le lien porte le mot-cle « suivant » (arete reconnue par _looks_nav) ;
edition markdown-only de la cellule conclusion de 08e, aucune cellule code
touchee. Organe rejoue en local : 0 NEW finding vs baseline.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

[stale-guard-red] Static validation (H.1/H.3/C.1) -- rouge date de la base fa94a55d7765, ANTERIEURE au fix 39ee8ef29a64 du garde sur main (garde vert a sa version courante).
Remede : gh pr update-branch 20443 (recalcule la base). NE PAS gh run rerun : gh run rerun rejouerait la base gelee fa94a55 (le fix 39ee8ef n'y est PAS) et rendrait le meme rouge ; seul gh pr update-branch recalcule la base.
Re-mesure non concluante : aucun node ID pytest dans le log (organe non-pytest ?) -- le dating ci-dessus reste la reference.

@github-actions github-actions Bot added stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321) and removed variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Oct 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 29
  • 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 Oct 13, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA
pr: 20443
head: aca6c28
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 639611aa6528c399f5254e8b4637c455f0312255bf6f5c8779cfba0511827bc7
diff-files: 4
diff-additions: 1805
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20443
organ-rc: 0
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA
pr: 20443
head: aca6c28
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 0bd5eb81f1dac84c216a30fa96e4c81e559c07aad610b13cddbb33ea6a47f4a3
diff-files: 4
diff-additions: 1805
diff-deletions: 4
checks: BLOCKED -- jambe 'check_notebook_link_render.py (advisory)' CANCELLEE a la tete
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20443
organ-rc: 3
supersedes: 6149185717
supersedes-why: re-stamp correctif -- le dossier supersedee portait verdict READY contredit par derive-verdict (meme cause que ci-dessus) ; erreur d'assemblage de ma lane, corrigee
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA
pr: 20443
head: aca6c28
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 408c66dd40881c9b650fbdcd270da7aaacafdeb09d470f42ecc72113881fbf8e
diff-files: 4
diff-additions: 1805
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20443
organ-rc: 0
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA
pr: 20443
head: aca6c28
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 8ecd088b11117de63ae6be58731736a75c63639e3df51a47a8961fa0aeb01f0f
diff-files: 4
diff-additions: 1805
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20443
organ-rc: 0
supersedes: 10
supersedes-why: cancelled advisory leg check_notebook_link_render.py replayed (job 114919922847, run 38281599765) then green at the same head aca6c28 -- the BLOCKED dossier stated reason (checks) is extinguished, derive-verdict rc 0
[/ADJOINT PREFLIGHT]

@myia-ai-01 myia-ai-01 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.

APPROVE a la tete exacte aca6c28. Carnet 08f neuf : 38 cellules, introduction, trois niveaux suivis chacun d'une lecture du resultat, conclusion. Trois exercices en stubs propres, sans erreur volontaire ; execution 1-16 sans erreur. Claims verifies contre les sorties : 9 dimensions dont 7 executees et 2 declarees indisponibles ; fill 0,71 / 0,86 / 1,00 (5/7, 6/7, 7/7) ; preuve jar (0 classe logics.fol / logics.ml). Le body repond aux 5 questions organ-first et declare la copie pedagogique du renderer de 08d. Le README renvoie au catalogue au lieu d'un total. LGTM NanoClaw.

@myia-ai-01
myia-ai-01 merged commit 6c3b4e9 into main Oct 13, 2026
98 of 105 checks passed
@jsboige
jsboige deleted the feature/4960-voletB-workflow-levels branch October 16, 2026 12:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants