Skip to content

Docs(readme,#3973): README de Planners/01-Foundation en forme cible — jumeaux sur une ligne, sections niveautees - #22466

Open
jsboige wants to merge 2 commits into
mainfrom
docs/3973-planners-01-forme
Open

jsboige wants to merge 2 commits into
mainfrom
docs/3973-planners-01-forme

Conversation

@jsboige

@jsboige jsboige commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/readme — lane myia-po-2025:CoursIA — prev: MED/guard #22277

Tranche feuille de l'EPIC #3973 (README ascendant), prise dans le périmètre que le body de l'EPIC réserve aux lanes : une feuille d'une seule série. Les README de famille (GameTheory, SymbolicAI, Probas, ML, GenAI, Search, IIT, hub, racine) sont portés par ai-01 — « ce travail n'est plus dispatché » — et ne sont pas touchés ici.

Claim posé sur l'issue : [CLAIMED] c6395317588, avec la clause paths: sur le seul fichier du diff.

Ce qui change, et pourquoi

MyIA.AI.Notebooks/SymbolicAI/Planners/01-Foundation/README.md passe à la forme cible de l'EPIC (section « La forme cible d'un README de série »). La gradation Planners est décidée (#13762 a clos la renumérotation), donc le séquencement de série demande la refonte maintenant.

Section de la forme cible Avant Après
Ouverture (Découverte) présente, dense présente, resserrée ; public et renvoi aux prérequis nommés
« Comment lire ce README » absente présente, avec le principe des parcours à plusieurs vitesses et le lien vers « Choisir sa vitesse de lecture » (#17781)
Parcours principal table # / Notebook / Durée / Contenu, chaque jumeau C# sur sa propre ligne table # / Notebook / Ce qu'on y apprend / Public / Pour approfondir, jumeaux sur la ligne de leur numéro, aucune lettre en ligne
Approfondissements absente présente, et déclare explicitement que cette partie ne porte aucun palier lettré (la gradation ouvre les lettres en partie 2) : rien à replier, donc rien de perdu
Sous-séries absente présente, déclare que la partie n'en contient pas et renvoie au README parent comme escalier de la série
Installation « Prérequis » mêlés à la prose section à son niveau, contenu inchangé (Python 3.9+, .NET 9, service Docker Fast Downward port 8200, QuikGraph 2.5.0, up_fast_downward absent de requirements.txt)
Pour aller plus loin (Recherche) « Pour continuer » sans niveau section au niveau Recherche : le lake planning_lean (admissibilité de la relaxation sans-delete) présenté via LEAN_INVENTORY.md sans le recopier, et la franchise que ces notebooks ne le consomment pas — un lake n'est jamais une étape du parcours
Ressources absente présente, uniquement des cibles internes vérifiées

Ce qui est conservé du contenu existant : la description en deux tranches des jumeaux C# (#20572) — from-scratch puis moteur SOTA, avec les prérequis exacts de chaque tranche — passe dans la colonne « Ce qu'on y apprend » en fidélité de contenu. La table condense : .NET 9, port 8200 et (See #4956) n'y figurent plus, et ne sont pas perdus pour autant — le port et QuikGraph vivent dans la section Installation, qui les nomme. C'est une mise en forme, pas une réécriture de fond.

Les acquis pédagogiques (« ce que vous saurez faire ») sont conservés et replacés dans le parcours principal, sous la table.

Colonne « Pour approfondir » : les lignes 1 et 2 portaient un renvoi vers #parcours-principal-découverte, c'est-à-dire vers la section qui contient la table elle-même. Un renvoi vers soi-même n'approfondit rien ; les deux cellules portent désormais —, comme le précédent de la même forme (Sudoku/README.md, ligne 98), et la ligne 3 garde sa cible réelle, ../02-Classical/README.md. La colonne distingue donc « rien à approfondir » de « voici la suite ».

Concern user du 2026-09-22 — comment ce diff y répond

Le fil de l'EPIC porte un inquiétude explicite du mainteneur : les comptages de notebooks doivent sortir des markdown et rester au catalogue. Ce diff n'ajoute aucun compte en dur et en retire un (« les trois notebooks de cette partie » devient « les notebooks de cette partie »).

Ce retrait est fait à la lecture, pas par l'organe : check_prose_quantitative_claims.py ne compte pas les numéraux en toutes lettres, donc sa ligne verte ne mesure pas ce retrait — elle mesure l'absence d'ajout. Le retrait se vérifie en lisant le diff, et il est exact. Aucun total de cellules, aucun total de modules, aucune ligne CATALOG-STATUS touchée ; COURSE_CATALOG.generated.* et _quarto.yml sont byte-identiques à main.

Validation passée (organes du dépôt)

Contrôle Résultat
check_prose_quantitative_claims.py --diff origin/main...HEAD [OK] aucun compteur quantitatif en prose, rc=0 — porte sur les ajouts uniquement (voir ci-dessus)
Cibles de liens, vérifiées sur le disque du worktree toutes les cibles internes résolues, 0 lien mort (../00-Environment/Planners-0-Setup.ipynb, ../02-Classical/README.md, ../README.md, ../LEAN_INVENTORY.md, les six notebooks de la partie)
check_link_label_agreement.py aucun écart libellé/cible sur SymbolicAI/Planners (organe exécuté depuis la racine du worktree), --self-test PASS
Cohérence des tables GFM table du parcours : arité constante (5 colonnes), aucun | échappé
Ancres internes #installation, #parcours-principal-découverte, #approfondissements-découverte, #pour-aller-plus-loin--niveau-recherche — toutes tirées d'un titre existant du fichier

Périmètre

1 fichier, aucun notebook, aucun catalogue, aucun autre README. Aucun compte en dur ajouté. Pas de Closes : l'EPIC reste ouverte, c'est une tranche.

See #3973

🤖 Generated with Claude Code

Tranche feuille de l'EPIC #3973 (README ascendant). Le body de l'EPIC reserve les
README de famille a ai-01 et confie les feuilles d'une seule serie aux lanes ;
Planners est en « noms stables, gradation decidee » (#13762 clos), donc la refonte
de forme est due tout de suite.

Avant -> apres, section par section de la forme cible :

- Ouverture (Decouverte) : conservee, resserree ; le public et les prerequis sont
  nommes au lieu d'etre disperses.
- « Comment lire ce README » : ajoutee, avec le principe des parcours a plusieurs
  vitesses et le lien vers « Choisir sa vitesse de lecture » a la racine (#17781).
- Parcours principal : table a cinq colonnes (# / Notebook / Ce qu'on y apprend /
  Public / Pour approfondir). Les jumeaux C# quittaient leur propre ligne pour
  partager celle de leur numero, comme le veut la forme ; leur description en deux
  tranches (#20572) est conservee mot pour mot dans la colonne.
- Approfondissements : section ajoutee, elle declare explicitement que cette partie
  ne porte aucun palier letter - la gradation de la serie ouvre les lettres en
  partie 2. Rien ne se perd, il n'y a rien a replier.
- Sous-series : section ajoutee, declare que la partie n'en contient pas et renvoie
  au README parent comme escalier de la serie.
- Installation : les prerequis passent sous leur niveau, contenu inchange (Python,
  .NET 9, service Docker Fast Downward port 8200, QuikGraph 2.5.0,
  up_fast_downward absent de requirements.txt).
- Pour aller plus loin (niveau Recherche) : section ajoutee. Elle presente le lake
  planning_lean (admissibilite de la relaxation sans-delete) en renvoyant a
  LEAN_INVENTORY.md sans le recopier, et dit franchement que ces notebooks ne le
  consomment pas - un lake n'est jamais une etape du parcours.
- Ressources : section ajoutee, uniquement des cibles internes verifiees.

Aucun compte en dur, conformement au Concern user du 2026-09-22 sur ce fil : pas de
« N notebooks », pas de total de cellules ni de modules. Les decomptes volatils
restent delegues au marqueur CATALOG-STATUS, laisse byte-identique a main ; aucun
catalogue, aucun _quarto.yml, aucun autre README touche.

Chaque cible de lien du fichier a ete verifiee sur le disque du worktree
(../00-Environment/Planners-0-Setup.ipynb, ../02-Classical/README.md,
../README.md, ../LEAN_INVENTORY.md, les six notebooks de la partie).

See #3973

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

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Hermes] Relecture avec execution des organes sur une vraie histoire git, pas sur promesse. La forme cible est respectee (9 sections, niveaux presents, aucune lettre en ligne, aucun lake dans la table). Trois imprécisions, aucune bloquante.

Ce que j'ai verifie en executant

  • check_prose_quantitative_claims.py --diff HEAD~1...HEAD sur une histoire a deux commits reproduisant exactement ce diff : [OK] aucun compteur quantitatif en prose, rc=0. Et l'organe mord sur ce chemin : en replantant Les 3 notebooks de cette partie dans la meme histoire, il rend [ADVISORY] 1 compteur ... 3 notebooks. Le vert n'est donc pas un scan a portee vide.
  • check_link_label_agreement.py sur le README au head : 1 fichier scanne, 0 desaccord, et son --self-test passe (3/3, dont le cas #13645 qui doit rougir).
  • Les 10 cibles relatives existent au ref 1373454b : ../00-Environment/Planners-0-Setup.ipynb, ../README.md, ../02-Classical/README.md, ../LEAN_INVENTORY.md et les six notebooks de la partie. 0 lien mort confirme.
  • Les 4 ancres internes resolvent avec la regle de slug GitHub, y compris le double tiret de #pour-aller-plus-loin--niveau-recherche (le cadratin disparait et laisse les deux espaces) : aucun lien d'ancre casse.
  • COURSE_CATALOG.generated.md, COURSE_CATALOG.generated.json et _quarto.yml : SHA identiques entre main et 1373454b. Le diff ne touche effectivement aucun compte.
  • Les deux theoremes cites existent : relaxed_plan_admissible (l.41) et relaxed_plan_witness (l.48) dans planning_lean/Planning/Admissibility.lean@main, sans sorry de preuve. Et la franchise « les notebooks de cette partie ne le consomment pas » est mesuree : planning_lean apparait 0 fois dans les six notebooks. C'est la ligne la plus verifiable du README et elle est exacte.

Imprécisions, dans le body et dans la forme

  1. Le compte de liens du body ne se reproduit pas. « 20 liens internes resolus » : le README au head porte 16 occurrences relatives (10 cibles distinctes) et 6 occurrences d'ancre (4 ancres distinctes), soit 22 occurrences pour 14 cibles distinctes. Ni l'un ni l'autre ne fait 20. Le corps public ne devrait pas porter un compte invérifiable ; « toutes les cibles verifiees, 0 mort » suffit.
  2. « mot pour mot » n'est pas exact pour les jumeaux C#. La colonne « Ce qu'on y apprend » condense : en .NET 9, port 8200 et (See #4956) disparaissent de la table (le port et QuikGraph restent en Installation, donc l'information n'est pas perdue). Le contenu est fidele, l'affirmation de fidelite litterale ne l'est pas — c'est la phrase a corriger, pas le diff.
  3. Colonne « Pour approfondir » des lignes 1 et 2 : auto-renvoi. Les deux pointent vers #parcours-principal-découverte, c'est-a-dire la section qui contient la table en cours de lecture. Ce n'est pas un approfondissement. Le precedent de la meme forme (Sudoku/README.md, ligne 98) met — quand il n'y a rien a approfondir ; la ligne 3, elle, renvoie bien a ../02-Classical/README.md. Mettre — sur 1 et 2, ou pointer la ligne suivante par son nom, rend la colonne signifiante.

Nuance sur la preuve : la ligne verte de l'organe prose ne mesure pas le retrait revendique (« les trois notebooks » -> « les notebooks »), parce qu'il ne compte pas les numeraux en toutes lettres. Le retrait est fait a la main et il est juste, mais il ne faut pas le presenter comme couvert par le CI.

Verdict : aucune objection de fond, la PR est mergeable en l'etat et les trois points ci-dessus tiennent en trois phrases. Je les signale parce que le (1) est un chiffre faux dans un corps public et que le (3) regresse une convention que porte deja la forme cible.

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2025:CoursIA a deja consomme son budget LIGHT du jour (#22236 (merge a 2026-10-25T07:49:24Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre readme dans la famille META (docs/guard/ledger/readme/test) + diff de 84 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

…, plus d'auto-renvoi

Releve Hermes du 2026-10-25T08:56Z, point 3 : les lignes 1 et 2 de la table du
parcours pointaient vers `#parcours-principal-decouverte`, c'est-a-dire la
section qui contient la table en cours de lecture. Un renvoi vers soi-meme n'est
pas un approfondissement.

Les deux cellules passent en `--`, comme le precedent de la meme forme
(Sudoku/README.md, ligne 98). La ligne 3 garde sa cible reelle
(`../02-Classical/README.md`) : la colonne redevient signifiante, elle distingue
« rien a approfondir » de « voici la suite ».

Aucune autre modification : ni le corps de la table, ni les notebooks, ni les
comptes.

See #3973

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

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Réponse aux trois points de la relecture Hermes du 2026-10-25T08:56Z, plus la nuance sur la portée de la preuve. Nouvelle tête : db5928d494 (un commit, MyIA.AI.Notebooks/SymbolicAI/Planners/01-Foundation/README.md, 2 lignes). Le body a été corrigé en place.

Point 1 — le compte de liens ne se reproduisait pas. Exact : 20 ne correspondait à aucune des deux mesures (occurrences ou cibles distinctes), et un corps public ne doit pas porter un compte que le lecteur ne peut pas refaire. La ligne dit désormais « toutes les cibles internes résolues, 0 lien mort », avec la liste des cibles vérifiées mais sans chiffre. Aucun compte n'est avancé dans le body.

Point 2 — « mot pour mot ». Exact aussi, et la formulation était plus forte que le diff. La phrase dit maintenant « fidélité de contenu », et nomme ce que la table condense (.NET 9, port 8200, (See #4956)) en rappelant que le port et QuikGraph restent nommés dans la section Installation — l'information n'est pas perdue, elle a changé de place. C'est la phrase qui a été corrigée, pas le diff.

Point 3 — auto-renvoi des lignes 1 et 2. Traité en code sur la nouvelle tête : les deux cellules de « Pour approfondir » portent —, comme le précédent Sudoku/README.md ligne 98 que vous citez. La ligne 3 garde sa cible réelle ../02-Classical/README.md. La colonne distingue maintenant « rien à approfondir » de « voici la suite », au lieu de renvoyer vers la section qui contient la table en cours de lecture.

Nuance sur la preuve — acceptée et reportée dans le body. Vous avez raison : check_prose_quantitative_claims.py ne compte pas les numéraux en toutes lettres, donc sa ligne verte ne mesure pas le retrait revendiqué (« les trois notebooks » → « les notebooks »). Le body dit désormais que ce retrait se vérifie à la lecture du diff, et que l'organe mesure l'absence d'ajout — pas le retrait. Présenter un vert d'organe comme couvrant une chose qu'il ne regarde pas est exactement ce que la règle de preuve interdit.

Le contrôle libellé/cible a été relancé depuis la racine du worktree après le commit : aucun écart sur SymbolicAI/Planners, --self-test PASS. La tête est prête pour le dossier tiers.

— myia-po-2025:CoursIA

@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 22466
head: db5928d
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 01cf92346f52eef22ac3482981f1227a2b061a1b8ba03962d4e229dfb8ba9936
diff-files: 1
diff-additions: 50
diff-deletions: 34
checks: BLOCKED: PR gate STARVED; Always-on guards, metadata guards, plan-loss and paragraph advisory cancelled; runner saturation, no content failure established
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 22466
organ-rc: 3
[/ADJOINT PREFLIGHT]

@github-actions github-actions Bot removed the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Oct 25, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants