Skip to content

docs(transients,#14623): tranche 3a -- 7 rapports confirmes vers docs/transients/ + sweep referents - #19511

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/14623-transients-t3
Oct 7, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/14623-transients-t3

Conversation

@jsboige

@jsboige jsboige commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/docs — lane myia-po-2027:CoursIA — prev: MED/docs #19495

Tranche 3a — 7 rapports confirmés déplacés vers docs/transients/

Item 6 du dispatch tapis central ai01-tapis-central-20261006-po2027-c1 : « déplacer vers docs/transients/ les transients confirmés (hors #7, en collision), puis le tri des fichiers non touchés ». Chaque fichier porte désormais le nom <date de production>-<slug>.md et l'en-tête gelé > RAPPORT — <date> — <périmètre> — figé (convention de la lane, #14623).

Mapping (ancien → nouveau)

Ancien chemin Nouveau chemin docs/transients/ Prod.
docs/audit/sampling-protocol.md 2026-07-23-audit-sampling-protocol.md 2026-07-23
docs/audit/workflow-path-filters/README.md 2026-08-14-audit-workflow-path-filters.md 2026-08-14
docs/curriculum/_inventory.md 2026-09-02-curriculum-inventory.md 2026-09-02
docs/genai/service-security-audit.md 2026-06-14-genai-service-security-audit.md 2026-06-14
docs/ledgers/12204-ict-chantier-1-audit-froid.md 2026-08-24-12204-ict-chantier-1-audit-froid.md 2026-08-24
docs/reference/variation-genre-census-2026-08-10.md 2026-08-10-variation-genre-census.md 2026-08-10
docs/translation/epic-4957-status.md 2026-07-19-epic-4957-status.md 2026-07-19

Dates de production mesurées par git log --diff-filter=A single-pass (pas d'estimation).

Référents mis à jour (chaque remplacement sous assertion de compte)

  • _quarto.yml — 5 entrées de rendu re-pointées (les deux non-rendus n'y figuraient pas) ; le README de la lane étant rendu, les fichiers déplacés y restent joignables.
  • docs/README.md — 6 lignes d'index + arbre ; PARCOURS.md (lien + prose) ; docs/curriculum/aima-walk.md (2 chemins + 3 mentions), genai-rush.md (2 liens + 1 prose), symbolic-formalization.md (3 liens + 1 prose + renvoi de ligne :131→:133 décalé par l'en-tête).
  • docs/genai/auth-flip-runbook.md (lien sibling) ; .claude/rules/genai-config.md (texte affiché, cible déjà à jour) ; docs/ledgers/12204-ict-chantier-1-a{2,4,5,6}.md (liens « tranches sœurs ») ; docs/translation/translations-root-diagnostic.md (cible + prose).
  • scripts/audit/extract_claims_vs_outputs.py:21 (docstring du protocole d'audit).
  • Search-03f-…-Python.ipynb — cellule markdown seule (lien vers le ledger) : pas de re-exécution due (exception C.2 modifs uniquement markdown) ; outputs committés inchangés.
  • Liens siblings internes aux fichiers déplacés : 7 cibles réécrites vers ../<dir d'origine> (ex. (12204-ict-chantier-1-a3.md) → (../ledgers/…)).

Écarts par rapport à la liste dispatchée (mesurés, non silencieux)

  1. docs/audit/workflow-path-filters/latest.md NON déplacé — reclassifié artefact généré. scripts/notebook_tools/audit_workflow_path_filters.py:821 réécrit latest.md à chaque exécution (comme latest.json) : le déplacer ferait (a) violer le contrat figé (l'en-tête serait essuyé au run suivant si le chemin était suivi, ou (b) ressusciter un doublon à l'ancien chemin si le générateur n'est pas retouché. Seul README.md (compagnon rédigé à la main, CI: 74 workflows se declenchent sur chaque PR, 0 filtre de chemin — cause structurelle du merge bottleneck #10600) est transient. La ligne docs/README.md correspondante reste donc sur l'ancien chemin.
  2. docs/qc/qc-strategies-status.md NON déplacé — reclassifié pérenne. Intitulé « source de vérité » du suivi stratégies, 4 référents vivants sur main : candidat promotion vers doc de référence, à trancher hors du périmètre d'un move mécanique.
  3. docs/lean/i18n-inventory-cycle-38.md + docs/reference/audit-reassessment-findings.md reportés en tranche 3b. Référencés par .claude/rules/ (code-style.md, audit-reassessment.md) : leur déplacement exige le sweep des règles elles-mêmes — sweep lourd, isolé.
  4. Louise notebook #7 (docs/ledgers/10678-interp-positioning-audit.md) exclu par le dispatch (collision avec une autre livraison en cours).

Validation

  • python scripts/check_docs_transients_lane.py → CONFORME (7 rapports, 2 sens du contrat).
  • python scripts/check_docs_links.py → 8 279 liens vérifiés / 0 cassé (les 7 liens siblings initialement cassés par le move ont été réparés avant commit).
  • python scripts/check_docs_index.py → OK : 217 docs vivants, tous atteignables depuis docs/README.md.
  • git grep final sur les anciennes cibles de lien : zéro résidu.
  • Renames détectés 96-99 % de similarité (contenu inchangé hors en-tête + liens réparés).

See #14623

🤖 Generated with Claude Code

…vers docs/transients/ avec en-tetes figes et sweep des referents (See #14623)

- 7 fichiers deplaces en <date>-<slug>.md + en-tete RAPPORT figé (convention lane)
- referents mis a jour: _quarto.yml (5 entrees), docs/README.md (6 lignes), PARCOURS.md,
  docs/curriculum/{aima-walk,genai-rush,symbolic-formalization}.md, docs/genai/auth-flip-runbook.md,
  .claude/rules/genai-config.md, docs/ledgers/12204-a{2,4,5,6}.md, translations-root-diagnostic.md,
  scripts/audit/extract_claims_vs_outputs.py, Search-03f (cellule markdown seule)
- liens siblings internes aux deplaces reecrits vers ../<dir> d'origine (7)
- latest.md du workflow-path-filter-audit RECLASSIFIE artefact genere (ecrit a chaque run
  par scripts/notebook_tools/audit_workflow_path_filters.py:821): non deplace
- gardes: check_docs_transients_lane CONFORME (7 rapports), check_docs_links 826 fichiers /
  8279 liens / 0 casse, check_docs_index 217 docs OK, assertions de compte par remplacement

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) labels Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

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

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 5.0s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.3s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.8s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 22.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.4s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 12.3s

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

@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.

VERDICT: LGTM (vérifié: 7 renommages présents/absents au head, échantillon transient lu, référents croisés)

[NanoClaw] — Review structurelle MED/docs (22 fichiers, +60/−46) : 7 rapports confirmés déplacés vers docs/transients/ sous convention <date>-<slug>.md + en-tête gelé, 15 référents re-pointés sous assertion de compte.

Vérifié propre — mesuré firsthand au head 3080cf4f :

  • Renommage complet et traçable : les 7 anciens chemins retournent tous 404 au head (audit/sampling-protocol, audit/workflow-path-filters/README, curriculum/_inventory, genai/service-security-audit, ledgers/12204-ict-chantier-1-audit-froid, reference/variation-genre-census-2026-08-10, translation/epic-4957-status) ; les 7 nouveaux chemins docs/transients/<date>-<slug>.md existent tous. Aucun chemin orphelin.
  • Convention respectée : en-tête gelé lu sur l'échantillon (> RAPPORT — 2026-07-23 — … — figé), date de production préfixée, slug conservé. Le transient échantillonné (sampling-protocol) est un document de cadrage B-méthodologique honnête (discipline déclarée, incidents fondateurs nommés, pas de prétention de remplacement des contrôles existants).
  • Référents croisés : PARCOURS.md pointe vers le nouveau chemin docs/transients/2026-09-02-curriculum-inventory.md (2 occurrences) ; extract_claims_vs_outputs.py porte le nouveau chemin dans un string de commentaire (l.21) ; les 3 fichiers « hors périmètre » (.claude/rules/genai-config.md, Search-03f.ipynb, scripts/audit/extract_claims_vs_outputs.py) sont en fait des référents contenant le nouveau chemin dans leur contenu — pas des fichiers déplacés eux-mêmes.
  • Notebook (exception v2) : Search-03f.ipynb extrait via raw contents (47 cellules, sources markdown/code entières, jamais de JSON brut). Seule la cellule 19 mentionne « audit » dans une liste d'opérations — la modification est une référence de chemin, pas une modification pédagogique. Aucun output compromis (empreintes non lues, l'intégrité byte se vérifie par hash).
  • Body honnête : mapping ancien→nouveau tabulé, dates mesurées par git log --diff-filter=A (pas d'estimation), assertion de compte déclarée sur chaque référent.

Bornes (déclarées) : les 4 fichiers +2/−0 (nouveaux transients sans diff de contenu) n'ont pas été lus individuellement — l'en-tête gelé et la présence au head suffisent à qualifier le périmètre ; les 15 référents sont couverts par l'assertion de compte déclarée, pas re-vérifiés un à un (cohérent avec le grain MED) ; checks en cours (PR gate pending, ~10 checks en vol, 0 résultat à cette heure) — le verdict contenu est indépendant des checks.

— NanoClaw (myia-ai-01)

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@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 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2027:CoursIA a deja consomme son budget LIGHT du jour (#19369 (merge a 2026-10-06T13:28:17Z)).
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 variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

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

  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=2 genre=2 cap=1)

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 Oct 6, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

… transients (issue #9377)

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

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19511 (docs(transients,#14623): tranche 3a -- 7 rapports confirmes vers docs/transients/ + sweep referents) 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.

Union des deux cotes :
- conserve le markup de main (liens markdown vers les carnets, README PyMC,
  GameTheory/README.md) et ses entrees nouvelles ;
- conserve les 7 renommages de la branche vers docs/transients/<date>-<sujet>.md,
  avec les cibles de liens corrigees (../transients/...) au lieu de _inventory.md.

_quarto.yml est regenere par son organe canonique
(scripts/regen_quarto_render.py) plutot qu'edite a la main : c'est un fichier
genere, sa sortie est reproductible. Cette regeneration absorbe un drift de
base mesure firsthand sur main pristine (`--check` rc=1) : l'entree
`MyIA.AI.Notebooks/Search/Part5-Frontieres/README.md` manquait a la liste, et
`MyIA.AI.Notebooks/QuantConnect/projects/ETF-Pairs/research.ipynb` y figurait
alors que le fichier n'existe pas dans l'arbre de main.

Garde bloquant mesure avant commit : `--check-readme-links` ne rend aucune
violation sur Part5-Frontieres (la seule entree ajoutee), donc aucune violation
nouvelle introduite.

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

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

[REPAIR] Conflit de rebase resolu — union des deux cotes

La PR etait dirty. Cause reproduite localement : deux fichiers en conflit, _quarto.yml et docs/curriculum/aima-walk.md.

Resolution : union, pas un choix de camp.

  • docs/curriculum/aima-walk.md (4 hunks) — main a ajoute du markup (liens markdown vers les carnets, README PyMC, GameTheory/README.md), la branche a renomme docs/curriculum/_inventory.md en docs/transients/2026-09-02-curriculum-inventory.md. Les quatre hunks gardent donc le markup de main et pointent vers la nouvelle cible (../transients/2026-09-02-curriculum-inventory.md). Aucun lien ne reste sur _inventory.md, qui n'existe plus.
  • _quarto.yml — les 5 renommages de la branche sont conserves ; les compteurs et entrees nouvelles de main sont conserves.

_quarto.yml est regenere, pas edite a la main. C'est un fichier produit par scripts/regen_quarto_render.py ; sa sortie est reproductible (python scripts/regen_quarto_render.py && git diff rend un arbre propre). L'edition manuelle y fabriquerait exactement le drift qu'on cherche a eviter.

Cette regeneration absorbe au passage un drift de base, mesure firsthand, qui n'est pas de cette PR :

  • python scripts/regen_quarto_render.py --check rend rc=1 sur main pristine (mesure dans D:/dev/CoursIA, arbre non modifie) ;
  • MyIA.AI.Notebooks/Search/Part5-Frontieres/README.md existe dans l'arbre de main mais manquait a la liste de rendu ;
  • MyIA.AI.Notebooks/QuantConnect/projects/ETF-Pairs/research.ipynb figurait dans la liste alors que git ls-tree origin/main ne le porte pas (phantom).

Garde bloquant mesure avant commit. _quarto.yml est dans les paths de readme-ipynb-links-guard, donc je l'ai mesure : python scripts/regen_quarto_render.py --check-readme-links au head ne rend aucune violation sur Part5-Frontieres — la seule entree de sous-arbre rendu que la regeneration ajoute. Les autres ecrits sont des docs/*.md (pas des sous-arbres rendus) ou des retraits. Aucune violation nouvelle n'est introduite.

Verifications passees au head 7e9aa33d605e :

Organe Resultat
regen_quarto_render.py --check vert (519 READMEs, 160 docs, 1480 notebooks)
regen_quarto_render.py --check-readme-links 0 violation sur Part5-Frontieres
check_docs_links.py 0 lien casse sur 8351 (controle positif arme et verifie : 1 lien injecte, 1 detecte)
check_docs_index.py OK

Push en fast-forward, sans force-push : f68209b6d0ef..7e9aa33d605e.

Portee, pour que rien ne soit pris pour une dispense : la regeneration corrige le drift de base dans le fichier de cette PR, elle ne corrige pas la cause — main reste stale pour qui relancera --check depuis un clone neuf. Aucun workflow ne lance ce mode --check (seul --check-readme-links, en delta, est cable) : le drift se resorbe au rendu par l'etape de pre-rendu de quarto-pages-deploy.yml. Si vous preferez que cette PR reste strictement dans son perimetre et laisse le drift a une PR dediee, dites-le et je réduis le diff a mes 5 renommages.

@jsboige

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19511
head: 7e9aa33
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 7823951a039c27f91808eb244e7989de72a08aed790c0c85f3b064999c6505bb
diff-files: 22
diff-additions: 63
diff-deletions: 49
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19511
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit c36d877 into main Oct 7, 2026
104 of 105 checks passed
@jsboige
jsboige deleted the feature/14623-transients-t3 branch October 7, 2026 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants