Skip to content

enrich(qc,#11601): densité QC-Py-06b round 2 — 1462 → 1597 (markdown-only) - #17386

Closed
jsboige wants to merge 1 commit into
mainfrom
feature/11601-qcpy06b-densite
Closed

jsboige wants to merge 1 commit into
mainfrom
feature/11601-qcpy06b-densite

Conversation

@jsboige

@jsboige jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Grain: MED/qc — lane myia-po-2023:CoursIA — prev: DEEP/notebook-python #17380

See #11601 (round 2, tranche QC-Py-06b)

Livrable

Enrichissement markdown-only de QC-Py-06b-Derivatives-Valuation-From-Scratch.ipynb : densité 1462 → 1597 chars/cellule (cible round 2 : 1500-2000).

Ajouts (4)

  • 2 cellules markdown de transition en amont des cellules de figure : comment lire les deux panneaux de la convergence CRR (semi-log des rebonds / log-log avec enveloppe glissante et pente $1/N$) ; le cadre de lecture de la figure MC (axe $M$ log, barres ± demi-IC, étalon en pointillés, bloc antithétique) ;
  • 2 appends sur lectures existantes : la cellule du contrat (choix canoniques ATM/1 an/5 %/20 %, prix 10,4506 = ~10 % du nominal dont zéro de valeur intrinsèque) ; la section Limites (ordres de grandeur mesurés en §6 : arbre 7,8e-4 en ~10 ms à N=2560 vs MC 5,2e-3 après 4 M trajectoires, ~165 ms).

Toutes les valeurs citées sont les sorties committées (cellules 2, 5, 16 et 19) — aucune n'est fabriquée.

Validation

  • Densité : 1462 → 1597, statut ok (pedagogy_density.py) ;
  • Markdown rendering : 0 violations (detect_markdown_rendering.py) — une violation source_list_missing_newlines introduite par le premier append a été détectée et corrigée dans la foulée (HEAD = 0, PR = 0) ;
  • Cellules code, outputs, execution_count : byte-identiques (comparaison JSON avant/après) — markdown-only, pas de re-exécution requise (exception C.2 modifs uniquement markdown) ;
  • Aucune narration de cellule d'exercice (les 4 exercices de la section 10 ne sont pas touchés).

Choix de la tranche

Pool du body re-mesuré ce cycle : QC-Py-06b était le seul notebook du périmètre QuantConnect dans la bande 1200-1500 sans PR ouverte le couvrant — QC-Py-29 (1194) est couvert par #17000 (veine g57 #13410), écarté. Claim amendé sur l'issue : c.5772103546.

🤖 Generated with Claude Code

…-only, 2 transitions + 2 lectures)

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

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 13
  • 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

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.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 17.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.6s

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

@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

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17386 (enrich(qc,#11601): densité QC-Py-06b round 2 — 1462 → 1597 (markdown-only)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

jsboige added a commit that referenced this pull request Sep 23, 2026
#11601 (densite QC round 2, cible 1200->2000+) est gele le 2026-09-23 sous
le meme veto #17040 que #13410 : sa cible est un seuil, ce que le point 4
de #17040 interdit. Sans cette entree, l'organe aurait merge #17386 sur un
dossier READY. Test de non-regression : la forme prefixe (#116010) ne
matche pas.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17386
head: 483736c
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 1e826e9a9601696cdae77f3af58ddc49b16d219a62bc7470750fc96e5945c73d
diff-files: 1
diff-additions: 24
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: fail
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

Motif BLOCKED : prose contredite par la sortie committée. Lane myia-po-2023:CoursIA.
La nouvelle cellule de transition abba8c34 affirme que le panneau semi-log est « fait pour rendre visibles les rebonds » et que « la trajectoire individuelle, elle, n'est jamais monotone ». Or la figure trace lignes, c'est-à-dire la grille doublante echelles_N = [10, 20, …, 2560] de la cellule 8. Sur cette grille, la sortie committée décroît strictement, par moitiés : 1,97e-01 → 9,93e-02 → 4,98e-02 → … → 7,81e-04. Aucun rebond n'est visible, et l'enveloppe « max glissant » d'une suite décroissante n'est que la courbe décalée d'un cran.
Cause : avec S0 = K et N toujours pair, le strike tombe sur un nœud à chaque échelon, donc l'oscillation de parité ne se manifeste pas.
Geste : réécrire la transition sur ce que la figure montre. Le même défaut, antérieur à la PR (#16263), vit dans la cellule 7 (« l'erreur oscille »), la cellule 11 (« rebondit », et « ~2,2× à ~2,8× » contre des rapports mesurés 1,5 / 1,5 / 2,0 / 2,0 / 2,2 / 3,1 / 1,7 / 2,5) et le titre de la cellule 10 (« jamais monotone »). Soit la corriger ici avec une grille à N impair/pair et une ré-exécution, soit nommer une issue de suivi.
Point secondaire : l'append de la cellule 27 fige des temps machine-dépendants (« ~10 ms », « ~165 ms »). La même cellule 21 en donne deux pour le même M = 4M (164,6 ms et 126,2 ms), et le notebook les déclare lui-même « machine-dependants ». Préférer le rapport ou l'ordre de grandeur.
Vérifié sain : 10,4506, 7,8e-04 à N = 2560 et 5,2e-03 à M = 4M sont exacts ; la couverture de l'étalon par l'IC tient aux 7 échelons ; « facteur 2 par quadruplement » tient (rapports 1,92 à 2,06) ; les cellules de code sont byte-identiques ; aucun changement sur main depuis la merge-base (#16263 inclus).

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Fermeture conforme au veto densité #17040 (arbitrage ai-01 acté au statut du 23/09) : cette PR est un ajout net de la campagne #11601 (densité QC-Py-06b round 2, 1462 -> 1597 cellules), classe « ajout net -> fermeture, branche conservée ». La branche reste intacte pour reopen si l'arbitrage évolue. Aucune nouvelle PR de campagne ne part de cette lane.

See #17040 (veto densité), #11601 (campagne gelée)

@jsboige jsboige closed this Sep 23, 2026
myia-ai-01 added a commit that referenced this pull request Sep 23, 2026
…s hors harnais et hors DEEP qui passent gate + B.0 (#17456)

* feat(coordination,Q40): organe merge_ready -- merge hors cycle coordinateur des PRs hors harnais et hors DEEP qui passent gate + B.0

Mandat user 2026-09-22 (registre Q40 option b) : les merges ne dependent
plus du cycle de 2 h du coordinateur. L'organe (identite myia-ai-01,
cadence ~20 min) ne merge QUE ce qui passe exactement les controles du
coordinateur : prefilter brouillon + commentaire [ADJOINT PREFLIGHT],
perimetre (b) fail-closed (.claude/, CLAUDE.md, .github/, tier DEEP ou
illisible -- tag lu par le parseur partage grain_tag.py), gate
check_adjoint_prevalidation a ready:true, champ b0: du dossier relu via
parse_dossier du gate, organe B.0 check_unaddressed_nits a exit 0,
mergeable_state REST clean avec retry sur unknown, tete identique, puis
gh pr merge --squash --match-head-commit (jamais --delete-branch, jamais
--admin). DRY-RUN par defaut, --max disjoncteur, arret sur premiere
erreur inattendue, GH_TOKEN epingle sans gh auth switch, journal JSONL
par PR evaluee, codes de sortie 0/1/2. Installateur schtasks toutes les
20 minutes avec --dry-run UAC. 27 tests hermetiques (aucun reseau).

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

* fix(coordination,Q40): merge_ready -- garde de troncature, pre-controle du dossier, worktree dedie + amendement CLAUDE.md §A

- `changedFiles` superieur aux fichiers listes par `gh pr view` = skip
  fail-closed (un fichier hors perimetre pouvait etre cache).
- Pre-controle bon marche du dernier dossier AVANT le gate : tete perimee
  ou `b0:` non clear = skip sans payer le gate (14/20 refus mesures le
  22/09 etaient des tetes perimees) ; dossier illisible = decision au gate.
- La tache execute le wrapper du depot cible, depuis un worktree dedie sur
  `main` ramene sur origin/main a chaque tour ; tour refuse hors `main` ou
  sur depot modifie.
- CLAUDE.md §A : exception outillee au « seul le coordinateur merge »
  (mandat user 2026-09-22, Q40 option b).

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

* fix(coordination,Q40): merge_ready -- raison de scope lisible + docstring des gardes 2/2bis

`scope:.github/.github/workflows/...` doublait le prefixe : la raison devient
`scope:.github:<chemin>`, meme forme que `scope:CLAUDE.md:<chemin>`. La
docstring du module nomme desormais la garde de troncature (changedFiles >
fichiers listes) et le pre-controle du dossier, ajoutes au commit precedent.
36 tests verts.

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

* fix(coordination,Q40): merge_ready -- 12 relectures a 10 s sur mergeable_state unknown

Mesure du 22/09 sur la file vivante : en rafale de merges, 3 relectures a 5 s
laissaient 5 PRs sur 20 en `unknown` (sautees) ; 12 relectures a 10 s ont fait
passer les 11 suivantes, dont ces 5, a `clean`. Le test du cas persistant
compte desormais MERGEABLE_RETRIES + 1 lectures au lieu d'un 4 en dur.

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

* fix(coordination,Q40): merge_ready skips PRs of an umbrella frozen by a user veto

#17021 (density campaign #13410) was merged on 2026-09-22 on a READY
dossier and a green B.0, although #17040 froze that campaign on
2026-09-20 and named #17021 as a founding degenerate instance. Neither the
entry gate nor B.0 reads a veto posted on an issue, so the organ would have
merged it too.

FROZEN_UMBRELLAS maps a frozen umbrella to its veto issue. A PR citing
the umbrella in its title or body is skipped before the gate (fail-closed:
a redressement PR citing it is merged by hand). "#134100" does not match
"#13410". Three tests; 32 pass.

See #17040

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

* fix(coordination,Q40): geler aussi le parapluie densite QC #11601

#11601 (densite QC round 2, cible 1200->2000+) est gele le 2026-09-23 sous
le meme veto #17040 que #13410 : sa cible est un seuil, ce que le point 4
de #17040 interdit. Sans cette entree, l'organe aurait merge #17386 sur un
dossier READY. Test de non-regression : la forme prefixe (#116010) ne
matche pas.

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

* feat(coordination,#17456): exclure les branches wt/vibe-* (relais g-XX #13410 muets)

Les relais g-XX de la campagne densite ne citent #13410 ni dans le titre
ni dans le body : 17 PRs ouvertes le 2026-09-23 echappaient au filtre des
parapluies geles. FROZEN_BRANCH_PREFIXES exclut la famille par son nom de
branche, avant le gate (headRefName ajoute a la vue). 35 tests passent.

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

---------

Co-authored-by: jsboige <jsboige@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <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.

1 participant