Skip to content

enrich(#13934): administrer-les-formulaires 642 -> 1249 c/cell (tranche 5/19) - #14536

Merged
myia-ai-01 merged 2 commits into
mainfrom
enrich/13934t5-formulaires-api
Sep 4, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
enrich/13934t5-formulaires-api

Conversation

@jsboige

@jsboige jsboige commented Sep 3, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python -- lane myia-po-2023:CoursIA -- prev: MED/genai #14455

#13934 tranche 5/19 — administrer-les-formulaires-par-l-api : 642 -> 1249 c/cell

Enrichissement markdown-only pattern #13410 sur le 5e notebook le plus déficitaire de la queue #13934.

Diff

  • 1 fichier : MyIA.AI.Notebooks/GenAI/Plateformes-Conversationnelles/AI-Engine-WordPress/03-Functional/03-2-Forms/administrer-les-formulaires-par-l-api.ipynb — +234/-13 lignes JSON (les 13 « délétions » sont des artefacts de virgule : dernier élément d'une liste source qui gagne un successeur — preuve d'additivité fournie, toutes réapparaissent identiques).

Méthode

  • Aucune cellule ajoutée : extension pure des 13 cellules markdown existantes (dénominateur préservé), insertion médiane avant sous-titre pour la cellule 11 (deux sections).
  • Code byte-identique : les 9 cellules code (source + outputs + execution_count) sont identiques à origin/main, vérifié par comparaison JSON cellule à cellule. Zéro ré-exécution, aucun output touché.
  • Ancrage aux outputs committés : id alloué 9 vs existant 5 (ids WordPress globaux, jamais consécutifs), champs de création silencieusement ignorés (« seul title est lu »), contenu persisté en blocs Gutenberg (<!-- wp:paragraph -->), page publique réutilisée par slug (id 6), HTTP 200 sans authentification, mesure du rendu 0 <input> / 3 <p>, retour à l'état initial [(5, 'Soumission de manuscrit', 'publish')].
  • Style de la série respecté : français sans accents (série volontairement désaccentuée), guillemets « » et tiret — uniquement.

Acceptance #13934

  • Densité finale 1249 >= 1200 c/cell (mesure : somme des source / 22 cellules)
  • Code byte-identique (diff automatique par cellule contre origin/main)
  • Markdown uniquement, ancré aux outputs committés, zéro code dans le markdown ajouté
  • validate_pr_notebooks.py 1/1 PASS local
  • Scan sur lignes ajoutées : ASCII + « » — seulement (0 emoji, 0 homoglyphe, 0 secret, 0 terme client)
  • Aucune ré-exécution, aucun output touché

See #13934 (tranche 5 sur 19 ; contribution partielle)

…he 5/19

Enrichissement markdown-only (pattern #13410) : extension des 13
cellules markdown existantes (aucune cellule ajoutee), code et
outputs byte-identiques, zero re-execution. Interpretations ancrees
aux outputs committes : allocation d'id WordPress (9 vs 5, ids globaux
non consecutifs), champs de creation silencieusement ignores,
serialization Gutenberg (<!-- wp:paragraph -->) comme preuve
"contenu", mesure du rendu public (page 6 reutilisee par slug, HTTP
200 anonyme, 0 <input> / 3 <p>), retour a l'etat initial (idempotence
du notebook). Preuve d'additivite : les 13 lignes JSON "supprimees"
sont des artefacts de virgule (dernier element d'une liste qui gagne
un successeur), toutes reaparaissent identiques.

Acceptance #13934 : densite 1249 >= 1200 ; code byte-identique ;
validate_pr_notebooks 1/1 PASS ; scan ASCII+guillemets uniquement.

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

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

⚠️ Detector abstained (merge-base introuvable, shallow fetch or unanchored branch).

c.415 (#11873): scope = notebooks CHANGED in this PR, not the whole corpus.
See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 pathologie.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

prev: genre mots-clé fermant -- bloquant (#10093).

prev: reference(s) fail invariant(s) (prev-not-merged -> [14485]) -> point prev: at a MERGED PR of the same lane, distinct from the current PR. See #13475.

Une prev: dont le genre est fix/close/resolve (ou une inflexion) fait que GitHub interprète <genre> #N comme un ordre de fermeture automatique dès que le texte atterrit dans un message de commit -- c'est exactement ce qui a fermé #10067 (sans la merger) au squash-merge de #10063. Les 14 genres canoniques ne contiennent AUCUN mot-clé fermant : utilisez refactor, guard, ou tooling à la place.

Pour passer ce gate, réécrivez le champ prev: (dans le body ET dans chaque commit concerné) avec un genre non-fermant :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<refactor|guard|tooling|...> #<PR>

@github-actions

github-actions Bot commented Sep 3, 2026

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

github-actions Bot commented Sep 3, 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 8.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.9s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 14.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 10.5s
Search-1-StateSpace.ipynb ✅ SUCCESS 10.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 54.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 9.8s

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

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

prev: genre mots-clé fermant -- bloquant (#10093).

prev: reference(s) fail invariant(s) (prev-not-merged -> [14485]) -> point prev: at a MERGED PR of the same lane, distinct from the current PR. See #13475.

Une prev: dont le genre est fix/close/resolve (ou une inflexion) fait que GitHub interprète <genre> #N comme un ordre de fermeture automatique dès que le texte atterrit dans un message de commit -- c'est exactement ce qui a fermé #10067 (sans la merger) au squash-merge de #10063. Les 14 genres canoniques ne contiennent AUCUN mot-clé fermant : utilisez refactor, guard, ou tooling à la place.

Pour passer ce gate, réécrivez le champ prev: (dans le body ET dans chaque commit concerné) avec un genre non-fermant :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<refactor|guard|tooling|...> #<PR>

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] review po-2026 — #14536 enrich administrer-les-formulaires (tranche 5/19), head e6d51fac83 (contrainte token : COMMENT only)

Vérifié contre le notebook au head SHA (fetch + recomputation) :

  • Densité : 27 499 c / 22 cellules = 1250 c/cell — claim 1249 ✓ (à l'arrondi de division près).
  • Dénominateur préservé : 22 cellules (13 md + 9 code) ✓ ; execution_count 1–9 contigus, non-null ✓.
  • Code byte-identique : le diff ne touche que des lignes source de cellules markdown (les contextes code sont inchangés) ✓.
  • Ancrage aux outputs committés — chaque fait cité par le markdown ajouté est présent dans les outputs : « id alloué : 9 » ✓, Formulaires existants : [(5, 'Soumission de manuscrit', 'publish')] ✓, « Page existante réutilisée : 6 » ✓, « HTTP 200 » ✓, « Balises <input> : 0 / Blocs <p> : 3 » ✓, blocs Gutenberg wp:paragraph ✓. Aucun chiffre fabriqué (pattern #14123 : dérivation inline re-calculée → RAS ici).
  • Additivité des 13 délétions : vérifiée en fuzzy-match — toutes réapparaissent (artefacts de virgule JSON, aucune perte de contenu) ✓.
  • Security scan : 1 match secret = faux positif (ligne markdown « pas de secret, pas d'IP de provider » — prose de frontières, pas une assignation).

RAS — tranche propre, ancrage exhaustif. See #13934.

@myia-ai-01
myia-ai-01 merged commit 9d38550 into main Sep 4, 2026
60 checks passed
Repository owner deleted a comment from github-actions Bot Sep 4, 2026
jsboige added a commit that referenced this pull request Sep 4, 2026
jsboige added a commit that referenced this pull request Sep 4, 2026
…un zero

check_pr_perimeter confrontait les comptes du body a une liste effective
vide et rendait FAIL sur une non-mesure (repro firsthand : #14536
post-merge, run 33849858765 « l'assertion pretend 1 fichier(s), la
liste effective en compte 0 » ; mesure originale : #11956).

Predicat pur unmeasurable_perimeter(files, carried) distinguant les deux
causes que _classify_carried separe deja (liste API vide vs tout charrie
de main / STALE-BASE extreme). Dans main() : si non mesurable, les
problemes de compte passent en signals et le rapport imprime PERIMETRE
NON MESURABLE — la detection reste visible, seul le code de sortie bouge
(meme ordre de surete que #11985/#11712).

Co-Authored-By: Claude-Code <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Sep 4, 2026
…in ae84c91c (#14578)

Resync verbatim des deux taxonomies Argumentum sur le pin `ae84c91c`. Le claim porteur de cette PR est « re-copie byte-verbatim des blobs upstream » — c'est celui que j'ai verifie, et il se verifie au niveau du byte, pas de la prose.

Preuve d'identite, cote CoursIA et cote amont, independamment :

```
blob ecrit par la PR                          blob upstream au pin ae84c91c
4ac3f12  ==  Cards/Fallacies/Argumentum Fallacies - Taxonomy.csv
9ff35b5  ==  Cards/Fallacies/Argumentum Virtues - Taxonomy.csv
```

Le SHA1 de blob git est une empreinte du contenu : l'egalite prouve l'identite byte a byte, BOM et EOL compris. Le detour importe — comparer le SHA1 declare en NOTICE au fichier ecrit n'aurait rien prouve (les deux viennent de la meme source), c'est la confrontation au `git ls-tree` du sous-module au pin qui verifie ce que la prose AFFIRME.

Au passage, un detail contre-intuitif de la NOTICE qui est correct : le fichier des VERTUS vit bien upstream sous `Cards/Fallacies/`, pas sous un repertoire `Virtues`. Je l'ai verifie avant de le prendre pour une coquille de copier-coller.

Comptes de lignes base -> tete, confrontes au claim « aucun ajout ni retrait » : fallacies 1548 -> 1548, virtues 224 -> 224. Le diff est bien du contenu seul, cohérent avec le 74+/74- et 152+/152- de l'API.

Aucun bump de pointeur de sous-module dans cette PR (4 fichiers, aucun gitlink) : le resync suit un pin deja pose par #14418, il ne le deplace pas.

Requalification de tag appliquee dans le BODY : `MED/data` -> `MED/ledger`, la table d'alias du protocole normalisant `data` vers `ledger`. Verification faite avant d'editer : l'organe resolvait deja `data` correctement (`canonicalize_genre('data') -> 'ledger'`), donc la correction rend le tag canonique sans rien changer au comptage. Le label `variation-tag-genre-offlist` est tombe apres l'edition.

Signal a la lane, non bloquant pour cette tranche : `vein_exceeded` sur l'umbrella #13934, saturee a 2 aujourd'hui (#14536 et #14472). Cette PR n'y touche pas — elle porte #4960 — donc elle varie deja dans le bon sens ; c'est la PR SUIVANTE de la lane qui ne doit pas y revenir sans passer par `pick_idle_grain.py --lane myia-po-2023:CoursIA`.
myia-ai-01 pushed a commit that referenced this pull request Sep 4, 2026
…es + retrait VALIDATION_SUMMARY stale (#14483)

* fix(genai,#13581): T3d -- clarifier archive EPF + confusion CaseStudies + retrait VALIDATION_SUMMARY stale

Tranche T3d du chantier #13581 reorganisation GenAI : rallonge AC3 (VALIDATION_SUMMARY.md
supprime, 2026-02-25 obsolete), AC6 (structure tree GenAI/README.md alignee sur l'arborescence
reelle : ajout Aspire, FallacyDetection, Integrations-DotNet, EPF/archive), AC7 (clarification
mutuelle de la confusion cran CaseStudies top-level vs GenAI/CaseStudies/).

EPF/ est un repertoire d'archive (sorties etudiantes EPF alimentant GenAI/CaseStudies/, pas un
parcours actif) ; README ajoute pour documenter la distinction avec MyIA.AI.Notebooks/CaseStudies/
top-level (interdisciplinaire fin de cycle, owner po-2025). Ne pas confondre avec la serie
GenAI/CaseStudies/ (4 cas agentiques GenAI, owner po-2023).

Tranches anterieures livrees : T1 (#13601 FallacyDetection git mv), T3a (#14162 INDEX/DEPLOYMENT
vers Image), T3c (#14196 temp/ vide). T2 Integrations-DotNet (#14431) reste OPEN, traite AC2
cote EFCore+CopilotSDK ; le present T3d ne chevauche pas son scope.

Body PR utilise See #13581 (pas Closes) parce que la cloture finale de l'epic depend du merge
de #14431 par ai-01. Catalog-CRON non touche (volumes inchanges). Pas de regen manuelle du
bloc CATALOG-STATUS.

* fix(genai,#13581,#14483): retire table Contenu fantome + ordre alpha + note Integrations-DotNet

Reponse aux 3 points de la review Hermes (CHANGES_REQUESTED) sur #14483 :
mesure firsthand au SHA 'dc874107' via git/trees recursive + cross-check
sur origin/main et tree suivant le rebase.

1. Table « Contenu » fantome de GenAI/EPF/README.md (bloquant)
   - 0 hit verifie pour receipe_maker_output.ipynb,
     medical_chatbot_output.ipynb, Dorian, Louise, Bastien, Jeanne sur
     l'arbre dc87410 (recursive) ET sur origin/main
   - « Dorian & Bastien/cuisine/ » et « Louise et Jeanne Céline/ » :
     repertoires-absents, jamais crees dans git (renommage #888 Phase 2
     a supprime les READMs EPF sans preserver les sorties brutes)
   - Table remplacee par un nota bene explicite : « Aucune entree
     materielle pour le moment », verifie sur disque au SHA de la PR.
     Mention « migration hors-ligne en attente » pour ne pas fermer la
     porte a une future restauration depuis une source externe.

2. Integrations-DotNet/ 404 sur main (tranchage ordre de merges)
   - Note d'arborescence dans GenAI/README.md reformulee :
     « seront absorbes » (futur, conditionnel) au lieu de « sont absorbes »
     (present, faux) ; ajout du Nota Bene explicite « pas encore cree
     sur main a la redaction de cette note (en attente du merge de
     #14431) » — le lecteur ne sera plus trompe.

3. Nits ancre-slug + ordre alphabetique (mineurs)
   - Bloc insere (CaseStudies, FallacyDetection, Aspire,
     Integrations-DotNet, EPF) reordonne alphabetiquement :
     Aspire, CaseStudies, EPF, FallacyDetection, Integrations-DotNet.
   - Note « cette section n'insere aucun contre-Ancre supplementaire » :
     les ancres du sommaire GenAI/README.md qui pointent vers les
     sections integrees ne sont pas modifiees (les headings des sections
     elles-memes n'ont pas change), donc la nit ancre-slug levee
     d'office.

Verification post-fix :
  git ls-tree -r dc87410 --name-only | grep -iE 'EPF/|receipe_maker_output'
  -> 1 hit : 'MyIA.AI.Notebooks/GenAI/EPF/README.md' (uniquement)
  git ls-tree -r origin/main --name-only | grep 'Integrations-DotNet'
  -> 0 hit (confirme toujours absent sur main post-pull)

Acceptance #13581 AC2 partial fix : la table « Contenu » qui eteignait
la vigilance du lecteur suivant est retiree. AC7 complete.
See #13581 (pas Closes -- livraison partielle d'epic, AC2 final
dependent toujours de #14431).

See #14483 -- levee des 3 points de la review Hermes sur commit suivant.

* ci(prev_guard,wake): retag prev to MED/notebook-python #14536 (c.235 REPAIR)

* fix(genai,#14483): nit ancre slug clarification-cran (Hermes follow-up)

Hermes follow-up sur dc87410 (COMMENT, non bloquant) a signale que le
fragment '#clarification-cran-genai-casestudies-vs-myiaainotebookscasestudies'
dans GenAI/README.md ne matche pas l'ancre reelle rendue par GitHub. Le
clic ne sautait pas.

Fix : ajouter un heading explicite 'Clarification du cran GenAI/CaseStudies
vs MyIA.AI.Notebooks/CaseStudies' dans GenAI/CaseStudies/README.md (slug
GitHub = 'clarification-du-cran-genai-casestudies-vs-myia-ai-notebooks-casestudies')
et mettre a jour le lien dans GenAI/README.md pour pointer dessus.

Cf CHANGES_REQUESTED originel sur dc87410 leve par c.231 + ce nit
complementaire.

* fix(genai,#14483): corrige EPF cran manquant + ancre github-slugger

Per ai-01 dispatch msg-20260904T085047-s50c0d + commentaire PR 5538051939,
deux defauts d'une ligne bloquaient le PR gate (les deux invisibles ou
mal percues par check_docs_links) :

1. MyIA.AI.Notebooks/GenAI/EPF/README.md:9 -- ../../ -> ../../
   Le fichier est a TROIS crans de la racine, donc ../../ s'arrete a
   MyIA.AI.Notebooks/. Le voisin GenAI/README.md a raison avec ../../
   (deux crans), mais EPF/README.md est descendu d'un cran (le hub a
   change sa profondeur). Geste isole, pas un motif a reprendre partout
   (les 4 autres liens du fichier sont OK).

2. MyIA.AI.Notebooks/GenAI/README.md:202 -- ancre github-slugger
   Heading reel : GenAI/CaseStudies/README.md:23 = "### Clarification
   du cran GenAI/CaseStudies vs MyIA.AI.Notebooks/CaseStudies"
   Slug github-slugger recalcule : clarification-du-cran-genaicasestudies-
   vs-myiaainotebookscasestudies (suppression stricte des / et . au lieu
   de conversion en tirets)
   Ancre posee avant : -genai-casestudies-vs-myia-ai-notebooks-casestudies
                          (tirets la ou le slug n'en met aucun)
   Ancre posee apres : -genaicasestudies-vs-myiaainotebookscasestudies

   check_docs_links verifie l'EXISTENCE des cibles, pas la RESOLUTION
   des ancres -- rc=0 ne certifierait pas la correction. Verification
   par recalcul Python du slug dans le meme commit (cf commentaire PR).

3 controles OK post-correction :
- check_docs_links.py --check : rc=0 (0 new broken, 5431 total)
- heading source present CaseStudies/README.md:23 : OK
- ancre posee = slug github-slugger : OK

Note : VALIDATION_SUMMARY.md (le -150 dans le body PR) est deja sur main
via PR #14543 (e6a89d0), pas dans cette PR. Le contenu REEL qui
atterrit est +76/-3 sur quatre README, pas +76/-153 sur cinq.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: myia-po-2023 <jsboige@gmail.com>
Co-authored-by: myia-po-2023 <noreply@anthropic.com>
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