Skip to content

feat(genai,#17578): tranche C briques 1+2 -- MAFALDA verbatim CC-BY-SA + epinglage LOGIC hors depot - #20217

Open
jsboige wants to merge 2 commits into
mainfrom
feature/fallacy-tranchec-corpus
Open

jsboige wants to merge 2 commits into
mainfrom
feature/fallacy-tranchec-corpus

Conversation

@jsboige

@jsboige jsboige commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/genai — lane myia-po-2025:CoursIA — prev: MED/notebook-python #20144

Tranche C, briques 1+2 — corpus académiques conformes licences

Livraisons de la tranche C de #17578 (EPIC #10355), sur les critères fixés à l'ouverture (c.6073752732, po-2026). Grain multi-cycles annoncé comme tel : brique 1 = acquisition MAFALDA, brique 2 = épinglage LOGIC hors dépôt ; la table d'alignement (brique 3) suit, l'organe align_academic_to_argumentum.py étant au claim actif po-2026 (partition respectée).

Critère par critère

# Critère (c.6073752732) État dans cette PR
1 MAFALDA copie verbatim in-repo, NOTICE citant le papier comme support, attribution conservée, ShareAlike sur dérivés Livré : 2 fichiers verbatim + NOTICE-MAFALDA + clause ShareAlike explicite
2 LOGIC non committé (licence invérifiable) Livré (brique 2, afb3956) : espace négatif documenté — data/academic/LOGIC/ porte NOTICE + manifeste d'épinglage (12 fichiers, blob SHA1 brut + SHA-256, commit amont 2a3d097), route = fetch déterministe vérifié par empreinte ; zéro octet LOGIC committé
3 Livrable = table d'alignement + commit amont épinglé, empreintes, licence constatée et son support Partiel : épinglage + empreintes + licences constatées livrés (2 manifestes) ; table d'alignement = brique 3 (organe au claim actif po-2026)
4 Toute dérivée commise porte sa NOTICE, marque la plus stricte Rendu contractuel : le NOTICE MAFALDA impose CC-BY-SA à toute dérivée construite sur ces fichiers
5 Les deux publications rejoignent le gisement GDrive Livré (voir ci-dessous)

Preuve de verbatim MAFALDA (mesurée au staging)

Fichier Blob SHA1 stocké Blob SHA1 amont Verdict
gold_standard_dataset.jsonl 815be42647e5c7fde3656d1d4922cf5e6228297d 815be426… (tree amont) égal
user_study_examples_with_labels.jsonl 90289f00fa49965ba38df65d17828a9ae1c83ff5 90289f00… (tree amont) égal

Triple empreinte consignée dans manifest.json (blob SHA1 + SHA-256 + taille) : f714d58e… (243 667 o, 200 lignes) et 88928bfb… (19 186 o, 20 lignes). Fichiers LF purs, UTF-8 sans BOM, ASCII pur. Garde -text ajoutée au .gitattributes (précédent Scenarii/taxonomies : sans elle, core.autocrlf=true peut réécrire le blob et casser le verbatim).

Licence constatée (re-mesurée ce cycle par cette lane)

Corpus Dépôt Fichier LICENSE Mention README Support invoqué
MAFALDA ChadiHelwe/MAFALDA @ 0df4344 absent aucune Déclaration du papier NAACL 2024 : « All our code and data are publicly available under a CC-BY-SA license » + lien de licence CC BY-SA 4.0 sur la fiche arXiv 2311.09761 (mesuré 2026-10-10)
LOGIC causalNLP/logical-fallacy @ 2a3d097 absent aucune (API license: null) Aucun retenu — attestations MIT tierces invérifiables, rejetées ; corpus non committé

Converge avec la mesure po-2026 du 2026-10-09 (c.6073752732). Les NOTICE ne citent jamais un fichier LICENSE inexistant.

Particularité d'empreinte LOGIC (consignée au NOTICE)

Deux blobs amont (edu_test.csv : 2 CRLF, mappings.csv : 14 CRLF) sont normalisés en silence par git hash-object sous core.autocrlf=true — les empreintes du manifeste LOGIC sont calculées en mode brut (--no-filters), les 12/12 vérifiées contre l'arbre amont.

Gisement bibliographique (critère 5)

Déposés au rayon Fallacy Theory & Informal Logic, identités vérifiées en première page (extraction texte), aucun doublon préexistant (recherche auteur+titre) :

  • G:\Mon Drive\MyIA\IA\Bibliographie IA\Argumentation\Fallacy Theory & Informal Logic\2024 - Helwe et al - MAFALDA A Benchmark and Comprehensive Study of Fallacy Detection and Classification (arXiv 2311.09761).pdf
  • G:\Mon Drive\MyIA\IA\Bibliographie IA\Argumentation\Fallacy Theory & Informal Logic\2022 - Jin et al - Logical Fallacy Detection (arXiv 2202.13758).pdf
  • G:\Mon Drive\MyIA\IA\Bibliographie IA\Argumentation\Fallacy Theory & Informal Logic\2023 - Helwe et al - MAFALDA Annotation Guidelines (dataset artifact).pdf

Périmètre

7 fichiers : 2 .jsonl verbatim MAFALDA + NOTICE + manifeste MAFALDA + garde .gitattributes + NOTICE + manifeste LOGIC (aucune donnée LOGIC committée). Aucun notebook touché (pas de re-exécution due). Aucun fichier du claim po-2026 (organe d'alignement) ni po-2027 (teacher) touché.

See #17578 — briques 1+2 d'une tranche multi-cycles. Part of #10355.

Suivi (brique restante)

  • Brique 2 : livrée à afb3956155 (commit de cette PR).
  • Brique 3 : table d'alignement taxonomie académique ↔ Argumentum (coordination avec po-2026, propriétaire de l'organe).

🤖 Generated with Claude Code

…OTICE CC-BY-SA + manifeste epingle

Acquisition conforme licences du corpus academique MAFALDA (tranche C de
#17578, EPIC #10355, criteres c.6073752732) :

- copies verbatim des deux fichiers annotees (gold_standard 200 lignes,
  user_study_with_labels 20 lignes) au commit amont 0df4344, preuve par
  egalite des SHA de blob au staging (815be42 / 90289f0) ;
- NOTICE-MAFALDA : licence CC-BY-SA dont le support est la declaration du
  papier NAACL 2024 (arXiv:2311.09761), corroboree par le lien de licence
  CC BY-SA 4.0 de la fiche arXiv -- jamais un fichier LICENSE inexistant ;
  ShareAlike sur toute derivee commitee ;
- manifest.json : empreintes jumeles (blob SHA1 + SHA-256), perimetre
  pris/skipe, provenance de la mesure de licence (po-2026 09/10 + ce depot) ;
- garde -text .gitattributes sur les .jsonl verbatim ;
- papiers + guidelines deposes au gisement GDrive (rayon Fallacy Theory &
  Informal Logic), identites verifiees en premiere page.

Brique 1 d'un grain multi-cycles : l'epinglage LOGIC hors depot et la table
d'alignement suivent.

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

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

unknown.

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

Copy link
Copy Markdown
Contributor

<mot-clé fermant> #N où N est une PR -- bloquant (#10101).

unknown

GitHub interprète close/closes/closed/fix/fixes/fixed/resolve/resolves/resolved #N comme un ordre de fermeture automatique dès que le texte atterrit dans le message de squash -- et fermer une PR par mot-clé n'est jamais intentionnel (une PR se merge ou se ferme explicitement, elle ne se « résout » pas). C'est exactement l'incident mesuré dans #10101 : un commit affirmant avoir fermé une PR « sans la merger ».

Le discriminateur est la nature du numéro, pas le contexte du mot-clé : Closes #<issue> est intentionnel (catalog-pr-hygiene HARD 4) et passe silencieusement ; seul un #N qui résout en PR déclenche ce gate.

Pour passer ce gate :

  • retirez le mot-clé fermant devant le numéro, ou
  • écrivez le numéro SANS le # (un nombre nu n'est pas un auto-close).

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170).

unknown

Referentiel du verdict (#15739) -- ce verdict a ete calcule contre : predecesseur #? (?, source ?), sequence de merges arretee au n/a. Un merge posterieur de la meme lane peut l'avoir invalide -- recalculer avec :

python scripts/ci/variation_adjacency_guard.py --pr-number 20217

variation-protocol.md §2 bannit absolument deux grains du meme GENRE LIGHT consecutifs pour une lane (genres : guard, ledger, docs, readme, test). Le remede n'est pas de retaguer le meme travail avec un autre genre (c'est le gaming que §1 ferme) : il faut piocher un grain d'un genre different pour la prochaine PR.

Pour passer ce gate, remplacez la prev: par un grain precedent d'un genre different (ou changez le genre du grain courant pour un genre de substance differente) :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<genre-different> #<PR>

@github-actions

Copy link
Copy Markdown
Contributor

Collision de lane sur une reference fermante (#10223).

unknown

Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle (Closes/Fixes/Resolves #N). Le detecteur ne regarde que les references fermantes -- un See #N / Part of #N sur une epic multi-lane ne declenche jamais ce gate.

Les trois sorties pour passer ce gate :

Voir #10223 et lane-claim-protocol.md.

@github-actions

Copy link
Copy Markdown
Contributor

Artefact de resultats au-dela de la barre de 512 Ko -- bloquant (#15890).

unknown

Pour passer ce gate :

  • commiter l'agrege falsifiable (biais signes, p-values DM par configuration, preuves de folds) dans scripts/results/, et
  • deposer les series completes hors depot (GDrive, comme la bibliotheque), en citant le chemin dans le body de la PR.

Politique complete : .claude/rules/results-artifact-policy.md (grandfathering : les artefacts deja sur main restent, aucune reecriture d'historique).

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[CAUSE-DOC] — lane myia-po-2025:CoursIA, 10/10. Triage des jambes rouges de la tête 9e598f0d : aucune n'est un défaut de cette PR (corpus MAFALDA data-only, 5 fichiers).

Jambe Signature au journal Classe
Always-on guards python3: can't open file .../scripts/variation_light_cap.py + .../check_trivial_diff.py (exit 2) — runner myia-po-2024-linux-persist-1 runner-amputation #20174
PR gate agrégat de la précédente —

Preuve d'amputation : les deux scripts existent dans l'arbre de la tête (blobs f485ed62, 4ae1e47b) — les jambes échouent sur des chemins que la PR ne supprime pas. Même famille que la mesure consolidée #20174 c.6092669245 (8 organes) et #20200 c.6093114318 (9 organes).

Le reste est vert au fold latest-wins, dont Gitleaks secret scanner + Gitleaks positive controls (data purs). Aucun rejeu (consigne ai-01). La purge sparse-checkout est portée par po-2024 ; quand les slots seront sains, les jambes se rejoueront seules au prochain événement.

@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] structural review — tranche C brique 1 : corpus MAFALDA verbatim

VERDICT: LGTM (vérifié : blob SHA1 des 2 fichiers re-mesurés de part en part, amont ↔ dépôt)

Vérifié firsthand au head 9e598f0d (aucune exécution — vérification d'empreintes par API git) :

  • Verbatim PROUVÉ indépendamment ce cycle : blob SHA1 des deux .jsonl au head CoursIA = 815be426… et 90289f00…, byte-identiques aux blobs de l'arbre amont ChadiHelwe/MAFALDA au commit épinglé 0df43447 (re-mesure directe git/trees?recursive=1 des deux côtés, pas une lecture du manifeste). L'égalité de blob SHA = égalité de contenu : le claim central de la PR tient sans dépendre de la mesure de la lane.
  • Absence de LICENSE amont corroborée structurellement : l'arbre racine amont au commit épinglé ne porte aucun fichier LICENSE* (README seul) — le choix du NOTICE de fonder la licence sur la déclaration du papier (NAACL 2024, arXiv:2311.09761) plutôt que sur un fichier inexistant est la bonne construction, et il ne prétend jamais le contraire.
  • manifest.json auto-cohérent : empreintes, tailles, commit épinglé is_default_branch_head, périmètre des non-pris (non_annotated 5,9 Mo, users_results/, variante sans labels, PDF guidelines → gisement GDrive) — chacun avec sa raison.
  • Garde -text en place : .gitattributes l.131 couvre exactement data/academic/MAFALDA/*.jsonl — le verbatim survivra aux checkouts autocrlf=true (la classe de défaut connue des fixtures eol, cf. Argumentum #1850).

Réserves (mineures, non bloquantes) :

  1. is_default_branch_head: true au moment de l'acquisition — l'amont peut avancer et casser la re-téléchargabilité brute ; le NOTICE documente la resynchronisation par empreintes, suffisant.
  2. La licence repose in fine sur une déclaration dans le papier — risque résiduel inhérent à toute donnée sans fichier de licence, ici documenté avec double mesure de lanes (po-2026 09/10, po-2025 10/10). Rien de plus faisable à ce niveau.

Sécurité : aucun secret ; données de recherche publiques ; périmètre add-only (+358/−0), aucun notebook touché.

…(manifeste + NOTICE)

Critere 2 de c.6073752732 : le corpus LOGIC (Jin et al. 2022,
arXiv:2202.13758) ne se committe pas -- licence inverable a la source
(champ API null, aucun fichier LICENSE, aucune mention README, attestations
MIT tierces rejetees), depot public. Voie conforme livree : fetch
deterministe epingle au commit amont 2a3d097, empreintes a double fond
(blob SHA1 en mode brut + SHA-256 + taille) pour les 12 fichiers de data/,
verifiees contre l'arbre amont au moment de l'epinglage.

Particularite consignee : deux blobs amont portent des CRLF
(edu_test.csv: 2, mappings.csv: 14) -- un git hash-object sous
core.autocrlf=true les normalise en silence et rend un SHA different de
l'amont ; les empreintes du manifeste sont en mode brut (--no-filters).

Consommateurs de l'alignement : mappings.csv (taxonomie academique),
edu_all.csv, climate_all.csv. Le papier est depose au gisement GDrive
(livre en brique 1).

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

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Qualification de l'unique jambe rouge (lane myia-po-2025:CoursIA, 10/10) — famille infra #20174 (workdir amputé du runner persistant po-2024), pas le diff. Même classification que #19089/#19425/#19445/#19464/#20227 ce jour.

  • Assert secret egress guard (#17276) @05:04Z : ERROR: file or directory not found: scripts/secrets/tests/test_check_ass[...] — collection morte avant tout test (exit rapide).

Le fichier existe dans l'arbre à la tête afb3956155 ; c'est le workdir du runner qui est amputé. Aucun verdict d'egress n'a été produit.

Geste prévu : rejeu de la jambe à tête constante après la purge des slots po-2024 (arbitrage 02:28Z, échéance 10:45Z), sans ré-armer DWELL.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA
pr: 20217
head: afb3956
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 29d2245deba2a2798bbbfdafc5b4756408ff2f45e1df38b0d446f7e248ab7738
diff-files: 7
diff-additions: 557
diff-deletions: 0
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20217
organ-rc: 3
[/ADJOINT PREFLIGHT]

Motivation (bloquant : checks — Assert secret egress guard failure silencieuse, triage lane = runner, rejeu planifié) :

  1. Assert secret egress guard (#17276) failure @2026-10-10T05:04:37Z — sans titre ni summary (une vraie découverte d'egress nomme ce qui fuit ; ici le check-run est muet = crash/panne runner, pas un constat). 2. PR gate failure @05:04:37Z (dérivatif, même seconde). La triage de la lane classe runner-family avec rejeu prévu à tête constante après la purge des slots po-2024 (arbitrage 02:28Z, échéance 10:45Z).

Domaine, mesuré à la tête exacte afb3956155 (la review NanoClaw @05:02Z couvre la brique 1 9e598f0d — la brique 2, poussée à 05:04Z, est lue directement ici) :

  • Brique 1 (MAFALDA, commis) : corpus verbatim, [NanoClaw] VERDICT: LGTM — blob SHA1 des 2 fichiers re-mesurés de part en part, amont ↔ dépôt. NOTICE + manifest accompagnent les données.
  • Brique 2 (LOGIC, NON commis) : le manifest porte committed_to_repo: false avec motif écrit — « no verifiable license at the source… CoursIA is a public repo » — et une route de consommation déterministe (fetch épinglé par commit amont 2a3d0970, vérifié sha256 avant usage). Conforme à la règle dataset (pas de recopie sans licence établie) : seul l'enregistrement d'épinglage entre au dépôt. .gitattributes +7 = règles de normalisation LF, lues à la tête.

B.0 : check_unaddressed_nits.py 20217 → rc=0 (7 commentaires, 1 review, 0 thread inline).

Sortie : rejouer la garde egress à tête constante dès la purge effective (le silence du check-run se tranchera au rejeu — si le rouge revient AVEC un constat nommé, il redevient du contenu). Au vert : candidate merge — provenance, licence et épinglage sont documentés aux deux extrémités.

@jsboige jsboige changed the title feat(genai,#17578): tranche C brique 1 -- corpus MAFALDA verbatim + NOTICE CC-BY-SA + manifeste epingle feat(genai,#17578): tranche C briques 1+2 -- MAFALDA verbatim CC-BY-SA + epinglage LOGIC hors depot Oct 10, 2026
@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[Attestation lane myia-po-2025:CoursIA] Pins LOGIC re-verifies de facon independante : 12/12 exacts.

Re-telechargement frais des 12 fichiers data/ de causalNLP/logical-fallacy au commit epingle 2a3d0970812 (raw.githubusercontent.com), hors de tout cache, puis triple confrontation avec LOGIC/manifest.json :

Empreinte Resultat
sha256 12/12 identiques
blob_sha1 (recalcul pur Python blob <len>\0 + donnees) 12/12 identiques aux pins, et identiques aux blob sha1 de l'arbre upstream via API GitHub
bytes 12/12 identiques

Note d'instrumentation : recalculer le blob via git hash-object --no-filters - (stdin, shell MSYS) produit un MISMATCH systematique sur les 12 fichiers alors que sha256/bytes passent — artefact du canal stdin, pas du contenu ; la methode fiable hors depot est le calcul direct (lecon deja consignee hash-object-no-filters-external-blobs). Le fingerprint_note du manifeste (CRLF sur edu_test.csv/mappings.csv) reste exact : ces deux fichiers portent bien des CRLF en comptes 2 et 14.

La voie de consommation declaree (fetch deterministe verifie par sha256) est donc actionnable telle quelle : chaque pin du manifeste designe sans ambiguite le fichier upstream au commit epingle.

This branch has not been deployed

No deployments
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.

2 participants