Skip to content

fix(argument-analysis,#17331): Ontology_Virtues re-ancré sur le owl HEAD — 4 stale-claims (resource-drift) - #17345

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/argan-owl-drift-17331
Sep 23, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/argan-owl-drift-17331

Conversation

@jsboige

@jsboige jsboige commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python -- lane myia-po-2026:CoursIA -- prev: MED/notebook-python #17342

Argument_Analysis_Ontology_Virtues — 4 findings stale-claim réparés à la racine (resource-drift, #17331)

Défaut racine : les outputs committés avaient été exécutés sur le blob argumentum_virtues.owl de 848 820 octets ; le resync verbatim #13554 (30/08) a porté le fichier HEAD à 1 199 984 octets avec 666 nouvelles AnnotationAssertion — toute ré-exécution divergeait des lectures publiées, et les lectures citaient des valeurs que plus personne ne pouvait reproduire.

Fix = re-exécution complète sur les données HEAD + re-ancrage des lectures sur les NOUVELLES sorties (8 cellules markdown, code byte-identique) :

  • F1 (cell 4) : l'arithmétique du fichier passe à 1,199,984 octets / 1,178,524 caractères / 21,460 octets d'écart (sortie mesurée cell 3). Les deux échecs SOTA (rdflib TypeError / owlready2 0 classes) sont inchangés — ils ne dépendaient pas de la version.
  • F2 (cell 9) : l'inventaire se referme sur 3,083 triplets — la table additionnée rend exactement le total : 446+446+410+224+223+222+222+222+222+222+222+1+1 = 3,083, aucun triplet hors inventaire. Narratif ajouté des 444 triplets nouveaux : 666 assertions ajoutées au fichier (222 aifAttackType + 222 aifAttackedNode + 222 aifAttackTypeProvenance, comptage par bloc vérifié firsthand), mais le pont ne charge que les littéraux → 2,639 + 444 = 3,083, mesuré comme annoncé.
  • F3 (cell 12) : la lignée broader réelle est absenceOfInternalContradictions → coherentDemonstration → correctDeductions → inferentialMastery → validArgument — validReasoning n'existe plus dans le blob HEAD (sortie cell 11 ré-exécutée).
  • F4 (5 cellules : intro 0, §6 intro 16, lecture 18, bonus Exercice 3 cell 24, §8 ponts 26) : le mythe badTenorOf éradiqué. Vérifié firsthand : badTenorOf = 0 occurrence dans argumentum_fallacies.owl (et 0 dans les outputs du notebook AIF) ; aucun des 14 noms de schemes des vertus n'apparaît dans le pôle sophismes (les 15 littéraux « Argument from X » y désignent des noms de sophismes : hearsay, blind obedience…) ; le classement côté dérives se fait par inScheme → fallacyScheme. Le bonus de l'Exercice 3 est réécrit exécutable : explorer l'asymétrie des deux pôles (thesaurus SKOS annoté vs ABox relationnelle) — elle est elle-même une leçon de modélisation.

Validation

Preuve Résultat
Papermill end-to-end (--execution-timeout 600) SUCCESS RC=0 — 27 cellules, 9 code, 0 erreur, ec 1–9
Sorties committées = données HEAD graphe 3,083 triplets, chaîne via inferentialMastery, 14 schemes inchangés
Sources code byte-identiques à origin/main vérifié par script
Cellules modifiées 8 markdown (0, 4, 9, 12, 16, 18, 24, 26), aucune cellule code
detect_markdown_rendering.py 0 violation
check_split_reading_cells.py clean
restore_accents_canonical.py --check head 0 cure ≤ base 4 (amélioré)
enrich_quality_ci.py (base blob main) RC=0
H.3 check_null_exec.py Passed (post-scrub hook)

Verdict forensique H.5 : EXEC_PROVED (re-exéc fraîche sur données HEAD).

Résiduel hors scope : le couple aifAttackType/aifAttackedNode décrit un graphe d'attaques AIF sur les vertus que le pont ignore volontairement (IRI non chargés) — si un futur grain veut l'exploiter (§ « vertus attaquées »), il faut étendre le pont, pas cette PR.

See #17331 (contribution partielle : volet Argument_Analysis_Ontology_Virtues ; autres notebooks de la partition à auditer).

🤖 Generated with Claude Code

Diagnostic dérive

  • Cause classifiée : (a) env/kernel. Les sorties de cette PR proviennent d'une
    re-exécution locale sous Python 3.11.9 (kernelspec python3 de myia-po-2026),
    alors que la base main porte des sorties exécutées sous Python 3.13.14 — même
    kernelspec python3, seul language_info.version diffère. Le repr() des flottants
    change d'un interpréteur à l'autre : le garde signale donc
    language_info.version: '3.13.14' -> '3.11.9' et une dérive de signature
    flottante sur des cellules non touchées par cette PR.
  • Verdict : REFRAME. Aucune édition manuelle de sortie, aucun alignement markdown :
    ce sont les valeurs réelles des re-exécutions (kernel local, 0 erreur). Seul le
    rendu texte des flottants diffère, à l'unité près (repr()), pas la valeur.
  • Action : exemption C.4 (acceptance Sendov : alias « Lean-18 (A*) » en cellule code — sa re-exécution exige d'abord les échappements invalides des cellules 19/23 #15650, point 4 — l'écart résiduel est
    expliqué). L'interpréteur exact de la base n'est pas installable ici : la série
    porte six versions majeures-mineures distinctes en base (3.12.13, 3.13.3,
    3.13.7, 3.13.12 x2, 3.13.14), qu'aucune installation locale ne peut satisfaire
    simultanément. Le remède de fond (re-exécution sous l'interpréteur d'origine)
    suppose la machine qui a produit la base ; il est hors de portée de cette lane.

…wl — 4 stale-claims (resource-drift)

Root cause: committed outputs were executed against the pre-resync blob
(848,820 bytes); #13554 updated argumentum_virtues.owl to 1,199,984 bytes
with 666 new AnnotationAssertion — every re-execution diverged from the
published lectures. Fix: full re-exec on HEAD data (0 error, ec 1-9) +
8 markdown cells re-anchored on the NEW outputs:
- F1 arithmetic: 1,199,984 bytes / 1,178,524 chars / 21,460 gap (was 848,820/846,857/1,963)
- F2 inventory: graph 3,083 triplets (was 2,639), table closes exactly;
  narrative of the 444 new literal triplets (aifAttackType 222 +
  aifAttackTypeProvenance 222; aifAttackedNode objects are IRIs -> 0 triplet)
- F3 broader chain: ...correctDeductions -> inferentialMastery -> validArgument
  (validReasoning no longer exists)
- F4 badTenorOf myth removed from 5 cells (intro, S6 intro, lecture 18,
  Exercice 3 bonus, S8 links): verified firsthand badTenorOf = 0 occurrence
  in argumentum_fallacies.owl AND none of the 14 virtue scheme names appears
  there; fallacies classify via inScheme -> fallacyScheme. Bonus rewritten
  executable (explore the asymmetry itself)
Code sources byte-identical to origin/main; outputs = fresh re-exec.

Co-Authored-By: Claude Sonnet 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 commented Sep 22, 2026 •

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 3.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.5s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 21.9s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 8.1s

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

@github-actions github-actions Bot added variation-tag-malformed Tag Grain present mais TIER != DEEP|MED|LIGHT variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Sep 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 9
  • 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)

@github-actions

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

Path-collision (organ #13359/#13615)

Cette PR #17345 (fix(argument-analysis,#17331): Ontology_Virtues re-ancré sur le owl HEAD — 4 stale-claims (resource-drift)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions

Copy link
Copy Markdown
Contributor

Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine.

Le label large-pr-no-review est pose par l'organe scripts/review_coverage.py porte par l'issue #11232. Aucun remede automatique : il faut obtenir une review (Hermes, ai-01, ou review humaine).

Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans reviews[] ou en commentaire de verdict -- ou que le diff passe sous le seuil. Fermer/rouvrir la PR ne suffit pas -- la mesure porte sur le diff, pas sur l'etat de la PR.

Seuil, historique et exceptions : cf. docs/reference/review-coverage-threshold.md.

@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 github-actions Bot removed the variation-tag-malformed Tag Grain present mais TIER != DEEP|MED|LIGHT label Sep 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-23) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

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

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17345
head: a38e228
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: b4343e14f66f0d93eb8c724b9ae8a1d06f6f9c067c89d3d2a4397ef8c87d8a34
diff-files: 1
diff-additions: 347
diff-deletions: 110
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

large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants