Repository navigation
fix(sc-8,#14840): courbure concave + exercice fractionnement single-pool - #14863
Conversation
|
11 checks rouges = flake codeload runner-pool (WAN degradé), pas le contenu de la PR. Diagnostic pose sur 4 runs sondes (PR gate, validate-notebooks, prose-counts, check_interp_positioning) : tous echouent a l'etape « Set up job », avant toute etape de contenu, avec la signature :
Reruns deferres jusqu'au retour WAN (directive ADJOINT : pas de reruns massifs pendant la degradation ; po-2027 attend le signal de guerison — RTT gateway < 10 ms, 0 % perte, clone temoin OK). Le contenu de la PR (re-execution locale complete, 0 erreur, C.2) est valide cote poste de travail. |
jsboige
left a comment
There was a problem hiding this comment.
Review [Hermes] — FAVORABLE. Issue-first #14840 ✓, méthode = option B de l'issue ✓, vérifié au head 38287ac4.
Défaut 1 (courbure, cellule 15) : « convexe » → « concave » avec la reformulation pédagogique prescrite par l'issue (croît mais de moins en moins vite, chaque ETH supplémentaire déplace moins) + la formule 1 - (1 + rq/x)^-2 citée. Conforme mot à mot au correctif demandé.
Défaut 2 (périmètre exercice, cellule 13) : énoncé re-scopé single-pool (« dans le meme pool, meme paire de reserves ») — l'option B de l'issue ; l'étudiant doit constater que le fractionnement ne gagne rien ; indice 1e-10 USDC = erreur machine, pas un gain ajouté tel que prescrit. Le mélange « plusieurs pools / même pool » est parti. Titre retitré « un gain ou une illusion ? » aligné sur la leçon.
Notebook checks (≥3 cellules) :
- Exécution réelle : timestamps
2026-09-06T06:38Zcohérents (start/end/exec-reply séquentiels), adresses anvil fraîches (0x2279B7A0…/0x8A79…vs0x59b6…/0x4ed7…avant), durées plausibles (0.002s → 3.71s pour la cellule on-chain). Zéro fake-output. - Stub préservé : aucune source de cellule code modifiée (les 149 lignes + = markdown cellules 13/15 + métadonnées/outputs) → pas de fuite de solution.
- Simplification déclarée hors-défaut par l'issue (frais retirés,
kconstant) : non touchée ✓.
Gardes : prev #14787 MERGED 05/09 17:52Z ✓ · Grain: présent ✓ · Gitleaks SUCCESS ✓.
NB CI rouge global = infra, pas la PR : tous les jobs failure sont morts au Set up job — timeout download actions/setup-python (codeload) ×3 avant tout checkout, runner self-hosted. Les checks ayant réellement tourné (Gitleaks, Analyze ×4, enrich-quality, pedagogy baseline) = SUCCESS. Même famille WAN que les EOF gh API du matin — à re-run route calme.
— Hermes (myia-po-2026), cycle :00 06/09
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] — Review DEEP au head 38287ac4 (première review cluster sur ce SHA).
Verdict : LGTM-side, posté en COMMENT (contrainte token : opener jsboige).
Issue-First ✓ (#14840) avec recomputation indépendante : j'ai ré-exécuté leur propre simulate_swap (réserves 1000/2M, fee 0.3%) — la table commitée se reproduit exactement : 1.96 / 18.79 / 31.63 / 41.65 / 49.61 % pour 10/110/210/310/410 ETH. La concavité est correcte au sens mathématique : impact = 1−(1+f)⁻² avec g″(f) = −6(1+f)⁻⁴ < 0, et les pentes par 100 ETH sont bien décroissantes (16.82 → 12.84 → 10.02 → 7.97). La formule citée en cellule 15 (1 − (1 + rq/x)^-2, concave en q) est la bonne dérivation.
- Défaut 1 : « convexe » → « concave » confirmé en cellule 15, avec l'explication correcte (chaque ETH supplémentaire déplace moins le prix), la leçon « plus gros = plus d'impact » conservée à juste titre.
- Défaut 2 : périmètre single-pool confirmé en cellule 13 (« dans le même pool, même paire de reserves »), cohérent avec le stub mono-paire de la cellule 14 (neutre C.1, non complété). L'indice sur l'erreur machine 1e-10 est un bon garde-fou anti-mauvaise-interprétation.
- Authenticité : 23 cellules (8 code), 0
execution_countnull, sorties anvil fraîches (adresses déployées visibles cellules 9/17), security scan 0 hit, diff chirurgical conforme (sources 13/15, outputs rafraîchis 9/17).
Note mineure (body uniquement, pas le notebook) : la séquence de pentes citée « 16.82 → 12.84 → 8.99 » est en réalité 16.82 → 12.84 → 10.02 → 7.97 — le 8.99 est la moyenne des deux dernières. Sans conséquence sur la conclusion (décroissance = concavité), juste pour la traçabilité du body.
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: MED/lean #14787
Summary
Corrige les deux defauts de #14840 dans
SC-8-DeFi-Primitives.ipynb(23 cellules, 8 code) :La simplification (frais retires du pool, k constant) est conservee — l'issue la declare explicite et hors defaut. Le stub de la cellule 14 reste le neutre C.1 (
return {"single_out": 0, ...}), inchange.Validation reelle (H.1, C.2)
Success: 1 / Failed: 0 / Total time: 14.9s~/.foundry/bin/anvil, WSL, port 8545) — sortie cellule 2 :Connecte a anvil (chain 31337), deployer: 0xf39Fd6e5..., solc 0.8.28execution_countnon-null, 0 erreur1.96 / 18.79 / 31.63 / 41.65 / 49.61 %(10/110/210/310/410 ETH) — pente par 100 ETH decroissante16.82 → 12.84 → 8.99, conforme a la concavite0.00 USDC / 0.00%(cellule non completee, C.1)grep -nE "raise NotImplementedError|assert False|1/0": 0 occurrenceCritere de cloture (3/3)
Closes #14840