Repository navigation
fix(notebooks,#17066): Lab12b/Lab12c — fusion des paires de lectures, markdown seul - #17564
Conversation
…b12c
Chaque sortie lue deux fois ("Lire ..." puis "Lecture du resultat") est
fusionnee en une seule lecture : la cellule "Lire ..." garde son id et
absorbe les faits propres a l'autre, puis celle-ci est retiree. Les deux
lectures uniques sont retitrees. Markdown seul, code/outputs/metadonnees
identiques octet pour octet.
See #17066
See #17040
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
|
[ADJOINT PREFLIGHT] |
Path-collision (organ #13359/#13615)Cette PR #17564 (
|
|
[ADJOINT PREFLIGHT] |
…-> ratchet (#17611) Le garde passe de per-notebook advisory a un ratchet base vs PR : rouge seulement si la PR AUGMENTE les lectures scindees sur un carnet touche (lecture ajoutee OU compte de paires qui monte) -- les 272 findings herites de main restent grandfathered. Quatre mecanismes de faux positif corriges et epingles par mutation (3/11 PR mergees rouges avant, 0/11 apres ; controle positif #17028 : 8 empilements reels, ses 2 revisions en place exemptees) : - id reconnu ou qu'il soit en base (decalage d'index, #17564) - encart sans code execute au-dessus (_reads_code_above, #17484) - renommage resolu a l'ancien chemin (--name-status -M) - revision en place d'une lecture, meme sans id (signal topologique) Guard.name == job.name renommes ensemble ; self-test 5/5 en pre-contrôle ; check_17464_positive_control 26+16 intact ; suites 164 passed. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: MED/notebook-python — lane myia-po-2025:CoursIA-2 — prev: MED/notebook-python #17053
fix(notebooks,#17066): Lab12b/Lab12c — les paires de lectures sont fusionnées, rien n'est supprimé au hasard
Régime #17066. Cette PR reprend, découpée, la partie Lab12b/Lab12c de #17053, passée en brouillon (auto-mesure : 44 des 54 cellules que #17053 supprimait portent une analyse chiffrée). Markdown seul. Les cellules de code, leurs sorties et les métadonnées sont identiques octet pour octet.
Défaut sur
mainDans les deux notebooks, trois sorties de code sont lues deux fois de suite : d'abord une cellule « Lire … » ajoutée par #16408, puis une cellule « Lecture du résultat » qui existait avant. L'organe
check_duplicate_sectionscompte 4 « Lecture du résultat » par notebook. Une quatrième lecture de chaque notebook (Lab12b cellule 6, Lab12c cellule 18) est seule sous son code : elle avait seulement le titre générique.(b) Par doublon : ce que portait chaque lecture, ce qui est gardé
Geste : dans chaque paire, la cellule « Lire … », plus précise, garde son id et son titre. Elle absorbe les faits propres à « Lecture du résultat », puis cette dernière est retirée. Chaque affirmation retenue a été relue contre la sortie de la cellule de code.
Lab12b-Sequential-Orchestration
e94cc1c8802c08d1: verdict, outil, dernier désigné972f711e:agent_hands= planagent_hands=('planner', 'coder', 'executor', 'verifier'). Non repris : « ses chiffres dans la réponse finale viennent de l'outil ». La sortie ne réimprime aucun chiffre (VERDICT : COHÉRENT+ une phrase), et802c08d1le dit déjà.f4661380183d6975af39bdbd6f912ec4Lab12c-Agent-Handoff
71916c5398d9afead306970b: avertissement de cache3ae24fe5: compteursAgent final : verificateur).341f468405373620tracesde la liste, « par décision du modèle »33ca4d98(a) Plan ordonné des notebooks réparés
Lab12b-Sequential-Orchestration.ipynb (25 cellules)
Lab 12b : Désignation séquentielle — le contrat C4, l'orchestrateur explicite au-dessus d'ADK
1. Configuration
code— import sysLire la configuration attestée : quel moteur a produit ces sorties
2. La chaîne déclarée : quatre spécialistes, un plan explicite
code— from utils.adk_runtime import build_agent, dataset_profileLire le plan imprimé avant l'exécution : la stratégie est une donnée
3. La chaîne en action : chaque spécialiste prend le relais
code— import asyncioLire le verdict final : une vérification affichée, pas réimprimée
4. Désignation C4 vs handoff C5 : l'ordre posé avant, pas décidé pendant
code— async def plan_reduit():Lire le plan réduit en chiffres : deux mains, zéro outil, quatre agents
5. Mémoire commune intra-chaîne, isolation inter-chaînes
code— async def memoire_et_isolation():Lire l'historique : sept messages, un agent qui triple, aucune fuite
6. Exercices
Exercice 1 — Vérificateur en tête
code— # Exercice 1 : a completerExercice 2 — Le plan n'appartient pas aux agents
code— # Exercice 2 : a completerExercice 3 — Compteur de désignation
code— # Exercice 3 : a completerLire les trois exercices : l'échelle des contre-contrats
7. Conclusion
Lab12c-Agent-Handoff.ipynb (25 cellules)
Lab 12c : Handoff entre agents — le contrat C5, le transfert natif câblé et observable
1. Configuration
code— import sysLire la configuration attestée : le même moteur que la chaîne, pour comparer
2. L'arbre d'agents : un codeur assisté par un vérificateur
code— from utils.adk_runtime import build_agentLire l'injection native : l'outil de transfert que nous n'avons pas écrit
3. Le handoff en action : la main passe au vérificateur
code— import asyncioLire le tour de handoff : un transfert décidé par le LLM, et son coût caché
4. Handoff C5 vs désignation C4 : deux contrats distincts
code— from utils.adk_runtime import build_agentLire la séquence côté appelant : deux conversations mono-main
5. Le transfert, tour à tour
code— async def mains_tour_par_tour():Lire les trois tours : un handoff durable, pas un écart d'un tour
6. Exercices
Exercice 1 — Détecteur de handoff manquant
code— # Exercice 1 : a completerExercice 2 — Chaîne à trois agents
code— # Exercice 2 : a completerExercice 3 — Isolement des hiérarchies
code— # Exercice 3 : a completerLire les trois exercices : détecter, étendre, isoler
7. Conclusion
(c) Verdict de séquence
Chaque cellule de code d'expérience est suivie d'une seule lecture, titrée par ce qu'elle lit. Les sections 1 à 7 sont dans le même ordre qu'avant, et les exercices ainsi que leur lecture (
8c667a0e,c60ff957) ne sont pas touchés. Aucune cellule n'est déplacée.(d) Organes, à la tête contre
origin/maincheck_duplicate_sectionsdetect_md_content_loss --checkdetect_notebook_plan_lossSUBSTANCE_FOUND×4SUBSTANCE_FOUND×4check_split_reading_cellsdetect_consecutive_code_cellsCes comptes sont nécessaires, pas suffisants (
not_an_acceptance_criterion). La preuve de lecture, ce sont les tableaux (b).(e) Code intact
Comparaison JSON des cellules
codeet des métadonnées, baseorigin/maincontre la tête : identiques dans les deux notebooks, 8 cellules de code chacun, sorties etexecution_countcompris. Aucune re-exécution n'est due (exception C.2, modifications markdown seules).git diff --stat: 2 fichiers, +11/−121.Rapport à #17053
#17053, de la même lane, touche aussi ces deux fichiers, mais elle est en brouillon et ne sera pas mergée en l'état. Sa partie Lab12b/Lab12c supprimait les cellules « Lire … » et gardait les « Lecture du résultat » retitrées, ce qui perdait le contenu propre à chacune. Cette PR la remplace pour ces deux fichiers.
See #17066 · See #17040 · See #17053
🤖 Generated with Claude Code