Skip to content

restore(genai,#17066): fort-boyard-csharp — restaurer l'analyse retiree a tort a la passe #17040 - #17113

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/17066-restore-fort-boyard-csharp
Sep 22, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/17066-restore-fort-boyard-csharp

Conversation

@jsboige

@jsboige jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-dotnet — lane myia-po-2025:CoursIA-2 — prev: MED/guard #17070

Mission (#17066)

Restauration post-densification : une PR de densification a ete mergee sans passage d'organe (passe #17040) et a supprime 1 cellule markdown de ce notebook. Decision par cellule : contenu distinct -> restauration ; redondant -> non-restaure documente. Cellules code byte-identiques (aucune retouchee).

(a) Plan ordonne du notebook repare (preuve de lecture)

  1. Navigation + #r "nuget: Microsoft.SemanticKernel"
  2. Lecture NuGet (2 packages, 1 requis) -> using System; + lecture warning CS1701
  3. Exercice « Verifier la configuration du Kernel » (stub C.1) + Lecture du stub C.1
  4. ## Definition des prompts systeme (Pere Fouras / Laurent Jalabert)
  5. ## Creation des agents ChatCompletionAgent + Lecture des 3 decisions d'architecture (kernel partage, ApprovalTerminationStrategy, MaximumIterations = 10)
  6. Exercice prompts faciles + Lecture du stub des prompts faciles
  7. ## Boucle de conversation (pourquoi InvokeAsync decide seule) -> code de la boucle -> [RESTAURE + CONSOLIDE] Lecture — l'orchestrateur alterne les agents tout seul -> Exercice CompterTours + Lecture du piege du return 0

(b) Decisions par cellule

Restauree (1) — consolidation regle 3 du mandat

### Lecture — l'orchestrateur alterne les agents tout seul (cellule base idx 18, 1427 chars, reinserree a sa position d'origine : juste apres le code de la boucle).

  • Ce qu'elle portait : la lecture exacte de l'output committe — les 3 tours reels (charade « contraire de pro / milieu d'un livre / synonyme de loi / -ment », proposition « amendement » fausse mais proche, encouragement « Tu t'approches »), verificables mot pour mot dans la sortie de la cellule code ; plus la mecanique code-vs-output : chat.ResetAsync() + IsComplete = false (partie fraiche au rejeu), await foreach InvokeAsync() (selection/terminaison decidees a chaque tour), content.AuthorName (trace lisible grace au Name pose a la creation des agents), terminaison non declenchee + MaximumIterations = 10.
  • Pourquoi distincte : la cellule conservee « Lecture de la conversation » decrivait une AUTRE partie (charade « preposition/graine/regles d'un texte fondamental », essais 'a'/'dans'/'de') qui ne correspond PAS a l'output committe — la cellule supprimee etait la seule lecture exacte de la sortie reelle. Aucune cellule conservee ne couvrait ResetAsync, AuthorName, ni la lecture des 3 tours reels (MaximumIterations etait deja couvert par la Lecture architecture, conservee).
  • Consolidation (regle 3 : jamais deux cellules pour la meme lecture) : restauree et conservee lisaient la meme sortie avec deux lectures partagees (alternance/selection, charade improvisee). Fusion en UNE cellule : contenu base [18] mot pour mot + le paragraphe distinct de la conservee (« Notez aussi que les agents improvisent... propriete emergente... », conserve quasi verbatim). La 1re phrase de la conservee (narratif d'une partie non committee + lecture d'alternance dupliquee avec la puce 2 restauree) est retiree comme lecture dupliquee/perimee. Net : 14 cellules md (base 15, head 14) — la fusion absorbe la cellule conservee.

Non-restaurees (0)

La seule suppression de ce notebook est restauree.

(c) Verdict de sequence (honnête)

La sequence redevient « code de la boucle -> lecture de ce que l'output demontre -> exercice » : la lecture consolidate suit immediatement la cellule interpretee. La description perimee (partie « preposition/graine ») n'est plus en tete : elle lisait une execution qui n'est pas celle committee — son retrait du notebook fait partie de la consolidation, pas de la densification. Residu assume : le renvoi « cell 9 » du texte restaure (d'origine, mot pour mot) pointe la cellule des prompts systeme alors que le Name est pose a la cellule 11 — imprecision heritee de l'etat d'avant, laissee telle quelle (mandat : mot pour mot).

(d) Comptes organes (avant = origin/main vs base d412b5a ; apres = worktree vs base)

Organe Avant Apres
detect_notebook_plan_loss --check rc=0 ; headings 13->12 ; candidat « Lecture — l'orchestrateur alterne... » SUBSTANCE_FOUND ; STRUCTURE_DRIFT rc=0 ; headings 13->13 ; 0 candidat perdu ; STRUCTURE_DRIFT (15->14 md, fusion assumee)
detect_md_content_loss --check rc=0 ; findings 0 ; chars 10178->8977 (-1201) rc=0 ; findings 0 ; chars 10178->9670 (-508)
check_duplicate_sections --json (base + head + restaure) — rc=0 ; carriers 0

L'organe md-loss ne rougissait pas avant la reparation : c'est la mesure post-hoc du coordinateur (#17066) qui a detecte la perte — d'ou cette PR.

(e) Preuve code intact

8 cellules code origin/main vs worktree : BYTE-IDENTICAL (comparaison JSON cell-by-cell des cellules code, exit 0).

🤖 Generated with Claude Code

…ee a tort a la passe #17040

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

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

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 8.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.8s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.8s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 39.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 4.2s

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 8
  • 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 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17113
head: d4abd79
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: c253d53c511d1fe25a5bb5be5cd2d514fd1e4b527fdca78d6c962614643cf522
diff-files: 1
diff-additions: 14
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2024:CoursIA-2
pr: 17113
head: d4abd79
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 82e5505ff58682ea7b29f8ce73e618bb748fa24e708460708eef6f0f6e77270d
diff-files: 1
diff-additions: 14
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17113
head: d4abd79
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: d29a57f006be9b74bd71613c2f09452296bb6dc60019ea5bcc1f7de47b4080a8
diff-files: 1
diff-additions: 14
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Dossier Secrétaire cat. 2 mini-cost cycle 5, exact-head d4abd79, +14/-2, 1 fichier(s).
Mesures firsthand 2026-09-22T01:5xZ.
Tell c.59 respecté : 1 dossier par PR par cycle (pas de rejeu).
SHA gate live N/A....

— secrétaire myia-po-2026:CoursIA-3

@myia-ai-01
myia-ai-01 merged commit 7d4ff00 into main Sep 22, 2026
81 of 82 checks passed
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