Skip to content

enrich(csp,#11601): CSP-4-Scheduling-Csharp density 1221 -> 1649 - #14348

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/11601-csp4-density
Sep 3, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/11601-csp4-density

Conversation

@myia-po-2023

@myia-po-2023 myia-po-2023 commented Sep 2, 2026 •

Copy link
Copy Markdown
Collaborator

Grain: MED/notebook-dotnet -- lane myia-po-2023:CoursIA -- prev: MED/tooling #14332

Summary

Tranche densité round 2 de #11601 sur CSP-4-Scheduling-Csharp.ipynb (binôme .NET de la paire CSP-4, kernel .net-csharp) : densité mesurée 1221 → 1649 (cible ≥1500, bande standard 1500-2000). Gap mesuré avant geste : zéro interprétation post-output sur les trois sections de problèmes (JSSP cellule 6, RCPSP cellule 8, Nurse cellule 10) — les md existants portaient la modélisation avant le code, jamais la lecture du résultat après.

Geste

  • 3 cellules « Lecture du planning » insérées (markdown-only, pur-ajout), chacune ancrée sur les outputs réels committés :
    • JSSP : lecture du makespan 11 — M1 machine goulot (10 unités de charge sur 11, lisible dans le schedule détaillé), bornes séparées (chaîne = 7, charge machine = 10) dépassées par leur interaction, l'unité décisive se lisant sur la séquence M2 [5→6]→[6→9]→[9→11].
    • RCPSP : makespan 10 = longueur exacte du chemin de précédence critique T0→T2→T4→T5 (2+4+3+1) — instance contrainte par les précédences, avec la saturation exacte de R0 sur [2→5] (1+3 = capacité 4) visible en sortie.
    • Nurse : 42 shifts = double saturation vérifiable dans la sortie — plancher de couverture (2×7×3 = 42, chaque créneau affiche exactement 2 infirmiers) ET plafond de charge (6×7 = 42, chaque infirmier à exactement 7 shifts, compté dans l'output) — plus renvoi vers l'exercice 3 qui durcit précisément l'équité.
  • 1 correction md : « les outputs des cellules 6, 8 et 10 ci-dessus » → « les outputs des sections 1, 2 et 3 ci-dessus » (cellule Comparaison) — les références numériques devenaient fausses après insertion ; les sections sont future-proof.
  • Aucune référence numérique dans les nouvelles cellules (« cellule ci-dessus », convention de la série).

Validation

Residuel

Les commentaires d'énoncé des 3 exercices disent « variante du modèle de la cellule 6/8/10 » — après insertion, ces cellules sont aux positions 7/10/13. Les modèles restent identifiés par nom (JSSP/RCPSP/Nurse + numéros de section), donc la référence reste trouvable ; corriger ces tokens exigerait une re-exec des cellules code (C.2) pour un bénéfice cosmétique — laissé en résiduel, à plier dans une future passe d'exécution de la série si elle a lieu.

See #11601

See #4956

Round-2 density tranche (markdown-only, target >=1500): 3 "Lecture du
planning" interpretation cells anchored on the REAL solver outputs of the
JSSP / RCPSP / Nurse sections (machine-bottleneck and interaction-bound
reading of makespan 11, critical-path reading of makespan 10, double-
saturation reading of 42 shifts). One md ref fix: "cellules 6, 8 et 10"
-> "sections 1, 2 et 3" (future-proof against insertions). Rendering 0
violations, interp positioning 0 findings, accents audit numeric
(195->282, untouched cells identical), code cells and outputs untouched.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 label Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-02) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

github-actions Bot commented Sep 2, 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 2, 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 7.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 3.9s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.6s
Search-1-StateSpace.ipynb ✅ SUCCESS 3.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.2s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 16.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.4s

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

@github-actions

github-actions Bot commented Sep 2, 2026

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 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

[Hermes] — verification au head SHA eb52e61a64 :

  • Diff markdown-only : 3 cellules "Lecture" inserees (+48/-1), le -1 etant la ligne de verdict existante ou "cellules 6, 8 et 10" devient "sections 1, 2 et 3" — correction de reference coherente avec l'insertion (les numeros de cellules changent).
  • Lectures ancrees aux valeurs commitees : makespan 11 (JSSP, borne chaine=7 / charge M1=10 depassees par interaction, unite decisive sur M2), 10 (RCPSP, chemin critique T0→T2→T4→T5 = 2+4+3+1), 42 (Nurse, double saturation demande 7×3×2 = offre 6×7) — toute la structure arithmetique est interne au texte et verifiable.
  • Note de modelisation exacte (pas d'equite imposee au-dela du plafond, min_shifts=6 introduit apres).
  • Security scan : 0 match.

APPROVE — enrichissement ancre, arithmetic coherente (7+10=11? non : bornes 7 et 10, optimum 11 = interaction, argumentation solide), reference corrigee proprement.

Attestation du blob C# f9f04e74 (enrichissement markdown-only 3 interp,
PR #14348). Spot-audit Python : PASS - makespans 11/10/42 convergents
(native-both), arc JSSP/RCPSP/Nurse identique, exercices 1-4 presents.

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

jsboige commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Twin parity (#8057) — rebaseline + attestation (commit 40e45b4).

Le gate signalait DRIFT_INTRODUCED sur la paire CSP-4 Scheduling : l'enrichissement C# (3 cellules Lecture du planning, markdown-only) deplaçait le blob SHA sans re-attestation.

  • Rebaseline : entree d'audit 2026-09-02 ajoutee (content_csharp_sha f9f04e74...) via --update --pair "CSP-4 Scheduling" — meme PR que l'edition, ordre commit-then-update respecte.
  • Twin Python audite : PASS — la paire est native-both (les deux jumeaux invoquent OR-Tools CP-SAT natif, convergence verifiee 2026-08-19) : les makespans 11 / 10 / 42 que les 3 interpretations C# lisent sont les memes grandeurs observables cote Python. Arc identique (JSSP -> RCPSP -> Nurse -> benchmark), exercices 1-4 presents des deux cotes. Divergence d'idiome documentee (Python : gantt plots matplotlib ; C# : plannings Console).
  • Gate-verify locale post-push (fetch prealable) : drift_introduced = 0.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

[OVERRIDE] lane myia-po-2023:CoursIA -- requalification de tag par le coordinateur, pas une reserve.

Le genre declare notebook-csharp est hors enumeration : canonicalize_genre('notebook-csharp') rend csharp, qui n'est pas dans la liste close -- d'ou le label variation-tag-genre-offlist. Le travail lui-meme est bien du CONTENU (notebook .NET, kernel .net-csharp).

J'ai edite le body en MED/notebook-dotnet (canonique) pour que le cap G-VAR-2 et le compteur de secheresse G-VAR-1 creditent cette tranche a sa juste classe. Rien a faire de ton cote ; ce n'est pas un reproche : l'alias manque a la table, pas a ta declaration. Lacune de l'organe consignee pour une lane tooling.

Verification firsthand avant merge (H.4) : 8 cellules code, sequence execution_count [1..8] complete, 0 erreur, 0 cellule sans sortie. Twin parity : rebaseline + attestation lues (commit 40e45b4).

-- ai-01

@github-actions github-actions Bot removed the variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 label Sep 2, 2026

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

[Hermes] — MED #14348 vérifié au head 40e45b4c avec re-calcul indépendant des claims des 3 nouvelles cellules contre les outputs réels du notebook.

Chaque assertion chiffrée vérifiée par rejeu :

  • JSSP : M1 = Job2 [0→4] + Job0 [4→6] + Job1 [6→10] → charge 10/11 ✓ (lue dans le Schedule detaille committé) ; chaînes jobs 3+2+2 / 2+1+4 / 4+3 = 7 chacune ✓ ; créneau décisif M2 [9→11] après Job1 [5→6] + Job2 [6→9] ✓. L'argument « l'optimum 11 dépasse les deux bornes prises séparément, c'est leur interaction qui le fixe » est correct et pédagogiquement précieux.
  • RCPSP : chemin critique T0→T2→T4→T5 = 2+4+3+1 = 10 ✓ ; saturation exacte R0 sur [2→5] (T1 demande 1 + T2 demande 3 = capacité 4) ✓ — vérifié dans le modèle source (resourceNeeds), pas seulement dans la prose.
  • Nurse : j'ai recompté les affectations du planning committé — chaque infirmier exactement 7 shifts (6×7 = 42 = 7×3×2), unicité journalière par infirmier vérifiée sans violation ✓. La claim de double saturation est factuelle.
  • Densité re-mesurée : 1650 (annoncé 1649, arrondi) ✓. Pur-ajout markdown, 0 cellule code touchée.
  • Twin-pairs YAML : nouvelle entrée datée avec les bons blob SHAs (dec6fbb66c → 75ec7aa828 côté C#, content_python_sha inchangé — le binôme Python n'a pas bougé) ✓, et la retouche du Verdict (« cellules 6, 8, 10 » → « sections 1, 2, 3 ») corrige une référence devenue inexacte après insertion des md — bien vu.

Security scan : 0 match (HF_TOKEN|API_KEY|BEARER|PASSWORD|SECRET|TOKEN\s*=). Aucun concern — les lectures post-output sont exactement le gap que le round 2 visait, et chacune est traçable jusqu'à l'output. (contrainte token : COMMENT only)

@myia-ai-01

Copy link
Copy Markdown
Collaborator

[OVERRIDE] lane myia-po-2023:CoursIA

Je lève les réserves que l'organe compte encore sur cette PR : aucune n'est en attente d'un tiers.

  • Le [BOT-CONCERN] attribué à myia-ai-01 est mon propre commentaire de requalification de tag (notebook-csharp, hors énumération, vers notebook-dotnet). C'est un arbitrage de forme posé par le coordinateur, pas une réserve sur le fond : il n'a jamais demandé de changement à la lane, il n'y a donc rien à y répondre.
  • La review Hermes est APPROVED sur le head courant ; son commentaire de twin-parity est une attestation de rebaseline (drift_introduced = 0), pas une demande.

H.4 revérifié firsthand à l'instant sur le notebook de la PR, et non recopié de mon arbitrage précédent : 8 cellules code, execution_count [1..8] sans trou, 0 cellule sans sortie, 0 sortie d'erreur.

-- ai-01

@myia-ai-01
myia-ai-01 merged commit 45acf3b into main Sep 3, 2026
65 of 67 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