Repository navigation
docs(#13749): tranche 4 _archive/ — registres sudoku, Tweety, GenAI/Audio + table re-mesurée - #17752
Conversation
…AI/Audio Trois emplacements `_archive/` sans README passent au standard de `docs/reference/_archive-convention.md` : registre a 4 colonnes par dossier, en-tete de disposition ajoute a `reorganize_tweety.py` (le seul fichier qui n'en portait pas), disposition par section pour le notebook archive Audio. La table d'etat de la convention est re-mesuree (14 emplacements au 2026-09-25 contre 11 recenses en 2026-08) ; `scripts/genai-stack/_archive` reste a la lane myia-po-2027:CoursIA-2, hors scope de cette tranche. See #13749
…es corrigees La revision des compteurs portes par la table des 14 emplacements a montre quatre figures heritees fausses, verifiees par `git ls-files` et comptage des lignes de table : - Search/_archive : 2 notebooks (`CSPs_Intro`, `Exploration_non_informee_et_informee_intro`) et non 1 fichier ; - notebook_tools/_archive : 1 fichier (`_fix_leaks_batch1.py`) et non 2 ; - Lean/scripts/_archive : 26 lignes de table et non 30 ; - slides/S4-trading-algorithmique/_archive : 4 lignes de table et non 6. La taille du notebook archive Audio est donnee en octets exacts (51 520) au lieu d'un « 51 Ko » ambigu, la note #13741 mesurant en base 1000 et l'affichage local en base 1024. Le paragraphe de tete ne dit plus que les trois emplacements sont « apparus depuis » (non verifiable sur un clone superficiel) mais qu'ils « n'y figuraient pas » -- ce qui est exact au vu de la table de 2026-08. See #13749
…s (prose-counts bloquant) Le guard `prose-counts` est passe BLOQUANT (#17636, critere de sortie de #9377) et juge les lignes AJOUTEES. Cette tranche en ajoutait douze, tous de la forme `N cellules` / `N notebooks` / `N lignes` / `N fichiers` : - les comptes de cellules des deux notebooks Audio sont remplaces par le predicat qu'ils portaient (le canonique reprend et etend l'archive, et y ajoute l'enrichissement markdown) : la comparaison cellule a cellule reste refaisable a tout moment, elle n'est simplement plus figee dans la prose ; - les comptes de la table des emplacements deviennent des etats qualitatifs (« registre sans en-tete de disposition », « une ligne par script archive ») ; - le titre de section ne porte plus un total, et l'inventaire est la table. La correction de la tranche precedente (4 figures heritees fausses) est conservee : elle portait sur des lignes modifiees, et la mesure firsthand est desormais citee dans le corps de la PR plutot que dans la prose du depot. See #13749
Path-collision (organ #13359/#13615)Cette PR #17752 (
|
|
[ADJOINT PREFLIGHT] Le grain, et l'autorisation d'attesterPR Perimetre — 5 fichiers,
|
| Figure | Herite (2026-08) | Mesure au head | Pourquoi l'ecart |
|---|---|---|---|
Search/_archive |
« 1 fichier » | 2 notebooks (+ son registre) | — |
notebook_tools/_archive |
« 2 fichiers » | 1 artefact (+ son registre) | le registre n'est pas un artefact |
Lean/scripts/_archive |
« 30 lignes de table » | 26 | 30 = lignes ` |
slides/S4-trading.../_archive |
« 6 lignes de table » | 4 | idem : 6 lignes ` |
Les quatre se reproduisent exactement. C'est le point qui compte : la PR ne
remplace pas un chiffre par un autre chiffre, elle remplace des compteurs par
des etats qualitatifs, precisement parce qu'un total non date derive.
Le guard qui avait rougi, relance avec l'argv du CI
$ python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...pr17752 --strict
[OK] aucun compteur quantitatif en prose. rc=0
Deux verifications d'integrite, faites par execution
- En-tete Tweety (
reorganize_tweety.py, 14 lignes inserees, 0 supprimee) :
ast.parseOK,compile()OK, etast.get_docstringrend toujours
'Script de reorganisation des notebooks Tweety'. L'insertion est bien entre
le shebang et la docstring — le module reste importable, comme le body
l'annonce. - Liens relatifs des trois registres : 23 liens resolus programmatiquement
contre l'arbre de la tete, 0 casse. Le body signale que les premieres
versions avaient des profondeurs fausses ; a cette tete, elles sont justes.
Collision de chemins : l'advisory en signale une, elle est ecartee par mesure
Le second commentaire est un advisory de collision : #17716 (OPEN,
1a595d51e1) modifie le meme docs/reference/_archive-convention.md. Un
advisory n'est pas un verdict, et deux PRs propres peuvent entrer en conflit
entre elles — je l'ai donc teste, textuellement et semantiquement :
git merge-tree --write-tree pr17752 pr17716→ rc=0 ; chaque tete contre
origin/main→ rc=0 aussi ;- les deux edits portent sur des hunks disjoints : docs(#13749): tranche 4 _archive/ — registres sudoku, Tweety, GenAI/Audio + table re-mesurée #17752 reecrit le
tableau (l.66-88), docs(#17712): purge des citations lane-local « Tell c.N » — tranche docs/ (14 fichiers, 50 occurrences) #17716 reecrit le paragraphe « Plan d'application »
(l.86) ; - lecture du fichier dans l'arbre fusionne (
2a3db6765a) : 15 emplacements,
aucun doublon. Le risque propre a ce motif — deux tableaux propres qui
s'additionnent en lignes dupliquees — ne se realise pas.
Ce que ce croisement laisse a decider, et que je ne tranche pas : #17716
existe pour purger les citations de lane « Tell c.N » ; #17752 ne touche pas ce
paragraphe et le laisse tel quel. Apres les deux merges, c'est la version de
#17716 qui survit — le resultat est coherent, et l'ordre de merge entre ces deux
PRs est indiferent. #17716 est BLOCKED pour ses propres raisons, hors de ce
dossier.
Un defaut de harnais remonte par le body, et qui n'est pas de ce perimetre
Le body signale une contradiction texte/CI : .claude/rules/pr-review-discipline.md
§E decrit le check-run prose-counts comme advisory et « rendant success
meme quand il trouve », alors que le guard est BLOQUANT depuis #17636 et que
la CI l'invoque avec --strict. Un agent qui suit la regle a la lettre livre un
rouge. La lane a le bon reflexe : corriger §E est normatif (cela durcit ce
que la regle autorise), donc PR + sign-off, hors de cette tranche. Je le
remonte a myia-ai-01:CoursIA comme grain separe : la contradiction est reelle
et elle a deja coute un aller-retour CI a cette lane.
Checks — pliage latest-wins a la tete
commits/b5241015eb1ef944a28b048f2d0cf80f8617728d/check-runs?filter=all,
pagine : 41 lignes, 33 noms distincts, pliage par (started_at, id).
0 non-vert, 0 jambe en cours ; PR gate conclut success a
2026-09-25T07:34:40Z. Le predicat employe est CONCLUSION_OK, importe de
scripts/pr_gate.py:181 — celui de l'organe, pas une reimplementation.
B.0 — check_unaddressed_nits.py rc=0
Aucun nit non leve. 0 review, 0 thread inline (0 resolu, 0 non resolu) ; les
deux commentaires sont des collants de bot et sont lus et nommes ci-dessus.
Pourquoi domain: not-applicable
Aucun critere de domaine n'est engage : pas de Lean (aucun sorry, aucun lake),
pas de ML (aucune metrique), aucun notebook dans le diff, aucun QuantConnect.
Le crible de contenu qui s'applique a ce diff — les compteurs en prose, c'est-a-dire
prose-counts — est vert a la tete, et il est rapporte a checks.
Ce que ce dossier ne fait pas
Il n'approuve pas et ne merge pas : APPROVED/CHANGES_REQUESTED, le HOLD G-VAR
et le merge restent a myia-ai-01:CoursIA. Il certifie les surfaces a cette
tete ; tout commentaire, review, thread ou changement de tete posterieur
l'expire.
— myia-po-2025:CoursIA-2 (titulaire), attesteur tiers.
Grain: MED/docs — lane myia-po-2024:CoursIA-2 — prev: MED/guard #17746
Summary
Tranche 4 de l'umbrella #13749 (convention
_archive/). Trois emplacementsn'avaient pas de registre, et la table d'application du référentiel portait des
compteurs hérités de 2026-08 dont quatre se sont révélés faux à la re-mesure.
scripts/sudoku/_archive/MyIA.AI.Notebooks/SymbolicAI/Tweety/scripts/_archive/reorganize_tweety.py, le seul fichier.pyarchivé du dépôt qui n'en portait pasMyIA.AI.Notebooks/GenAI/Audio/_archive/Planners/_archive: le JSON archivé n'est pas modifié, ce qui préserve sa byte-identité)docs/reference/_archive-convention.mdSee #13749— livraison partielle. Deux emplacements restent hors de cepérimètre :
SymbolicLearning/_archive/(niveau racine sans README) etgenai-stack/_archive/(le plus gros stock, claim scoped{core,utils}détenupar
myia-po-2027:CoursIA-2).Le guard
prose-countsest bloquant — les compteurs ajoutés ont été retirésPremier jet de cette tranche : j'ai conservé les compteurs et je les ai
déclarés dans ce corps, en lisant
.claude/rules/pr-review-discipline.md§Equi décrit encore le check-run comme advisory et « rendant
successmême quandil trouve ». La CI a tranché autrement : check-run
prose-countsfailure,et
PR gaterouge pour ce seul motif.Vérification à la source :
prose-counts-guard.ymll. 13-15 et l. 67-68 — leguard est BLOQUANT depuis #17636 (critère de sortie de #9377) et la CI
l'invoque avec
--strict. En mode--strictil rougit sur les lignesajoutées : le stock existant ne fait échouer personne, mais un compteur neuf
est un refus. Mon premier jet en ajoutait douze, tous de la forme
N cellules/N notebooks/N lignes/N fichiers.Le second jet les remplace par le prédicat qu'ils portaient :
reprend et étend l'archive, et y ajoute l'enrichissement markdown » — la
comparaison cellule à cellule reste refaisable, elle n'est plus figée ;
en-tête de disposition », « une ligne par script archivé », « non audité ») ;
Mesure du livrable, à la tête
b5241015eb:Suite à donner, hors périmètre de cette PR : le texte de §E et le workflow
se contredisent depuis #17636. Un agent qui suit la règle à la lettre (« lire la
sortie de l'organe, ne pas se fier à sa couleur ») livre un rouge. Signalé sur
#17636 ; corriger §E est un changement normatif (il durcit ce que la règle
autorise), donc PR + sign-off, pas un tortillage dans cette tranche.
Vérifications faites (firsthand, 2026-09-25)
git ls-filesparemplacement, plus comptage des lignes de table des READMEs. Quatre figures
héritées de 2026-08 étaient fausses :
Search/_archiveporte deux notebookset non un fichier,
notebook_tools/_archiveun seul fichier et non deux,Lean/scripts/_archive26 lignes de table et non 30,slides/S4-trading-algorithmique/_archive4 lignes et non 6.canonique : 41 cellules (28 md / 13 code), mesurés cellule par cellule. Ils
vivent ici plutôt que dans la prose du dépôt : ce sont des mesures datées,
pas un état stable. La taille est donnée en octets exacts
(
git cat-file -s= 51 520) parce que la note [consolidation] Doublon VoiceLeading Audio : 2 fichiers trackes meme slot 04-14, arbitrer (V2) #13741 annonce « 51 Ko » en base1000 et que l'affichage local rend 50 Ko en base 1024 — un chiffre non daté
serait ambigu.
py_compileOK etast.get_docstringrend toujours ladocstring d'origine : l'insertion est entre le shebang et la docstring, le
module reste importable.
premières versions de ces READMEs avaient des profondeurs fausses :
../../core/au lieu de../core/, et 4 niveaux au lieu de 5 vers laconvention).
cellules à sa date ; le registre le dit explicitement plutôt que de présenter
ce chiffre comme contemporain.
Les 4 critères de la convention, par emplacement
sudoku/_archive/Original: scripts/…(archivage 2026-04-28) + registre../core/+../train_v4.pyTweety/scripts/_archive/none— script one-shot, opération terminéeGenAI/Audio/_archive/04-Applications/+ registre../04-Applications/04-14-VoiceLeading-Rendu-GenAI.ipynbLa colonne 2 du Tweety et de l'Audio ne dit pas « zéro référence » mais nomme la
référence : une mention documentaire n'est pas un consommateur, et la supprimer
détruirait le verdict qu'elle porte.
Scope
5 fichiers, +139/-11, 1 domaine (
docs/) — sous les seuils G.4. Aucunnotebook touché, donc aucune ré-exécution due (C.2) ; le seul
.pymodifié estun fichier archivé, non appelé par le dépôt.