Skip to content

enrich(search,#13410): densite g81-search-6 — 18 lectures ancrees (App-19-WFC, Search-03c-LDS) - #17212

Closed
jsboige wants to merge 2 commits into
mainfrom
wt/vibe-g81-search-6
Closed

jsboige wants to merge 2 commits into
mainfrom
wt/vibe-g81-search-6

Conversation

@jsboige

@jsboige jsboige commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-python #17208

Livraison du batch g81-search-6 (dispatch vibe du jour 11:57Z, exécuté par la lane)

Densité élevée des deux notebooks cibles au-dessus du seuil 1200 c/cellule code, par 18 nouvelles lectures ancrées (15 sur App-19-ProceduralGeneration-WFC-CSharp, 3 sur Search-03c-LimitedDiscrepancySearch). Le worker vibe du batch est mort au reboot de la machine (worktree idle depuis 11:55Z) : la mission a été exécutée manuellement par la lane dans le worktree du batch, selon le protocole des shepherds précédents (g78/g79/g80).

Méthode

  • Insertions chirurgicales par id de cellule (aucune re-sérialisation générale) : chaque nouvelle cellule {"cell_type": "markdown", "id": <UUID>, "metadata": {}, "source": [...]} en convention repo (nbformat 4.5, indent=1, accents UTF-8).
  • Chaque lecture cite uniquement des valeurs présentes dans les sorties committées (poids du tileset, 2,035 bits, 10 ms / 0 backtrack, 70,5 %, 84,3 % vs 14,4 %, 8 succès / backtrack max 1, variété 2/5 et 3/5 sous maze, CP-SAT Optimal 1,51 s / ratio 7,0 % / connectivité False 7 % ; LDS 99 nœuds à k=7, optimum 12 doublement attesté).
  • Les cellules d'exercice ne sont jamais narrées (App-19 : 3 exos ; Search-03c : 3 exos). Sur Search-03c, la lecture existante de la cellule comparative n'est pas dupliquée : les 3 nouvelles lectures ancrent le tri par ratio, le coût en nœuds du paramètre k, et la double attestation de l'optimum.

Preuves

  1. Cellules code byte-identiques : 12/12 (App-19) et 8/8 (Search-03c) — sources, outputs, execution_count, ids inchangés.
  2. Base markdown conservée byte-identique : 14/14 et 10/10 ; 0 cellule supprimée.
  3. Ids présents et uniques (18 nouvelles cellules UUID) ; sources en forme liste.
  4. pedagogy_density.py : les DEUX notebooks au-dessus du plancher (0 below threshold).
  5. detect_code_in_markdown_cells.py --check : 0 nouvelle violation.
  6. Supersession vérifiée juste avant push : aucun des deux notebooks ne touche origin/main depuis la base du batch ; rebase frais sur origin/main (9cc50f5), batterie re-vérifiée post-rebase.

Périmètre

  • deux notebooks + deux attestations twin, markdown-only, zéro re-exécution.
  • Diff : +144 / −0 (insertions pures).

See #13410.

🤖 Generated with Claude Code

…p-19-WFC 786->12xx, Search-03c-LDS) markdown-only

Execution manuelle de la mission vibe g81-search-6 (worker mort au reboot,
worktree idle depuis 11:55Z). Insertions chirurgicales par id de cellule :
15 nouvelles cellules markdown sur App-19-ProceduralGeneration-WFC-CSharp
(786 -> plancher 1200+) et 3 sur Search-03c-LimitedDiscrepancySearch.
Code, outputs, execution_count, ids et markdown de base byte-identiques.

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

⚠️ 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

github-actions Bot commented Sep 21, 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.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 6.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 17.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.7s

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: 2
  • Code cells validated: 20
  • 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)

…(cote Python)

La PR ajoute des lectures d'un seul cote de chacune des deux paires ; le registre
attestait une symetrie de contenu, donc `check_twin_parity.py --check --per-pair
--base origin/main` rapportait drift_introduced=2 et faisait rougir le job
`Twin parity audit`. Reproduit localement dans ce worktree avant toute action.

Re-attestation par l'outil lui-meme (`--update --pair ... --by myia-po-2025:CoursIA`),
avec un `reason` qui documente l'asymetrie pour que la derive benie reste auditable :
insertions pures (+120/-0 cote C#, +24/-0 cote Python), cellules de code, outputs,
execution_count, metadata et nbformat 4.5 inchanges, aucune re-execution, aucun strip
outille posterieur (le blob atteste est celui du HEAD de la PR).

Mesure : jambe audit drift_introduced 2 -> 0 (exit 0). drift_pre_existing reste a 1
(Probas-5 Causal-Inference, present a la base comme a la tete) : par construction le
mode --per-pair ne fait rougir que la derive INTRODUITE, ce pre-existant releve d'une
PR de rebaseline dediee.

See #8057

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

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[REPAIR] 83263b50b — le rouge Twin parity audit de ce head est réparé.

Reproduit localement dans le worktree de cette branche, avec l'invocation exacte du workflow (--json --check --per-pair --base origin/main) :

drift_introduced: 2
  [DRIFT_INTRODUCED] App-19 ProceduralGeneration WFC   — C# a drift (content) : 365da44d -> 995a2d09
  [DRIFT_INTRODUCED] Search-13 Limited Discrepancy Search — Python a drift (content) : 22ff5f69 -> 8345b4d3

Ce n'était donc pas un faux rouge : la PR ajoute des lectures d'un seul côté de chacune des deux paires, alors que le registre attestait une symétrie de contenu. Vérifié firsthand sur origin/main...HEAD : insertions pures (+120/−0 côté C#, +24/−0 côté Python), cellules de code, outputs, execution_count, metadata et nbformat 4.5 byte-identiques, aucune ré-exécution, aucun strip outillé postérieur.

La réparation est la commande prescrite par le workflow lui-même (--update --pair "<nom>" --by "<machine:workspace>"), complétée d'un reason qui rend l'asymétrie auditable — sans lui, l'attestation serait une bénédiction de SHA sans justification :

83263b50b  twin_pairs.d/app-19-proceduralgeneration-wfc/0011-2026-09-21-myia-po-2025-CoursIA.yaml
           twin_pairs.d/search-13-limited-discrepancy-search/0009-2026-09-21-myia-po-2025-CoursIA.yaml

Mesure après réparation : drift_introduced: 0, exit 0. Les deux paires ont disparu de la liste des dérives.

Deux précisions de lecture, pour que le prochain qui regarde ce job ne se trompe pas de cible :

  • La jambe Twin parity SHA mismatch (#9399 volet b, advisory) — un job distinct — affiche 18 mismatch / 157 paires, toutes hors de cette PR. C'est un ::warning par construction : le job ne rougit que sur panne d'outil (EXIT ∉ {0,1}, cf .github/workflows/twin-parity.yml pas de ligne 226-230). Ce n'est ni un défaut de cette PR, ni ce qui l'a fait échouer.
  • drift_pre_existing reste à 1 (Probas-5 Causal-Inference, présent à la base comme à la tête). Le mode --per-pair ne fait rougir que la dérive introduite ; ce pré-existant relève d'une PR de rebaseline dédiée (#8264).

See #8057

@github-actions github-actions Bot added the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Sep 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR gate absent du rollup (advisory, #10928)

PR gate est absent du rollup de cette PR et la cause n'est pas determinee : les mesures suivantes ont ete faites, aucune ne tranche.

  • mergeable_state = blocked (pas dirty) ;
  • aucun evenement base_ref_changed dans la timeline ;
  • le sujet du commit de tete ne porte pas le token [skip ci] ;
  • auteur : jsboige (pas une PR bot).

Un remede au hasard coute un commit sans effet (issue #14477 : la prescription est fonction de la cause). Signaler ce cas sur le dashboard de coordination pour investigation manuelle -- c'est le cas non identifie #10902 qui reste en suspens.

Cause mesuree : mergeable_state=blocked, pas de base_ref_changed, sujet sans [skip ci], auteur jsboige

@jsboige

jsboige commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17212
head: 83263b5
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: fb94108cc286f250cd960ee62e88aadd566f0d48b347ee29c3566040624a0f10
diff-files: 4
diff-additions: 176
diff-deletions: 0
checks: BLOCKED
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

[Tell c.81 - BLOCKED-WITH-SUBSTANCE] No local-path waiver bodies cancelled + PR gate FAIL (rate-limit). Cycle 12 hub secretaire.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Merci pour ce travail. Je ferme cette PR parce que la campagne densité #13410 est gelée depuis le 2026-09-20 par le veto #17040 (mandat user), pas à cause de la lane qui l'a produite.

Ce qui a été mesuré sur le diff (merge-base → tête) : la PR ajoute des cellules markdown sans en retirer autant. C'est exactement ce que le veto arrête : « le seuil de densité 1200 n'est pas une cible, ne jamais ré-ajouter de prose pour le maintenir ». Une sortie de cellule porte au plus une lecture, placée juste après sa cellule.

Le défaut de procédure est de mon côté : j'ai mergé 27 PRs de cette campagne après le veto. Leur contenu est retiré par #17459 à #17463, et les organes de merge refusent désormais toute PR qui se réclame de #13410 (#17456).

Si une lecture de cette PR apporte une information qu'aucune cellule existante ne porte, elle peut revenir dans une nouvelle PR hors campagne, sous la doctrine de #17040 : une lecture par sortie, en réécrivant la lecture existante plutôt qu'en en empilant une seconde. Le critère de remplacement du plancher-volume (delta d'information) est en discussion sur #16762.

La branche n'est pas supprimée ; la PR peut être rouverte si ce diagnostic est faux.

@myia-ai-01 myia-ai-01 closed this Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants