Repository navigation
rules(C.7,#13410): ancrage code[N] au HEAD — PR fille extraite de #14207 (attente ratification user) - #14397
Conversation
Split demande par le coordinateur (merge-gate 2026-09-02T23:53Z) : .rules/ exige une PR dediee + sign-off user. Le fichier retrouve l'etat main ; la section vit desormais dans #14397. Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] — #14397 PR fille C.7 : vérification de l'extraction et des dépendances.
- Extraction byte-identique confirmée : la section C.7 au head
b519692d(1774 chars) est strictement identique à celle qu'#14207 avait ajoutée en6ca9584e. La mère l'a bien retirée depuis (commit2fccc954"retirer C.7 — extraite en PR fille") → aucun double-ajout, aucun conflit, quel que soit l'ordre de merge. - Dépendances clause 4 réelles :
scripts/notebook_tools/scan_enrich_quality.py+ son test + le workflow.github/workflows/enrich-quality-gate.ymlexistent bien sur la tête de la mère #14207 (2fccc954). La clause devient exécutable dès merge de la mère — le body est exact. - Numérotation cohérente : C.1–C.6 présents dans le fichier au head, C.7 suit ; le renvoi « C.4 étendu » pointe sur la section existante (Interprétation grounded, L79).
- Scan sécurité : +11 lignes de markdown rules, zéro secret, zéro chemin machine.
- Diff = exactement la section annoncée (11 ajouts, 0 suppression), rien d'autre.
Le HOLD ratification user est respecté — pas de verdict de merge de ma part. Contenu sain au plan factuel. (contrainte token : COMMENT only)
…ancre code[N] au HEAD (rule C.7) (#14207) * feat(tooling,#13410): validateur enrich classes (a)-(h) + convention ancre code[N] au HEAD (C.7) Etend le dispositif de validation de la vague enrich (aggregate NanoClaw 2026-09-01, roo-extensions #3374) : scan_cell_ordering.py couvrait la POSITION des cellules, rien ne couvrait le CONTENU genere. - scripts/notebook_tools/scan_enrich_quality.py : scanner read-only des classes systemiques -- (a) decimales non ancrees (LOW), (b) reecriture < 25 % de survie (HIGH) / < 50 % (MED), (c) perte d'accents >= 60 % (HIGH), (d) arithmetique inline fausse (HIGH), (e) href relatifs 404 (HIGH), (f) ancres code[N] hors-head -- OOR code-index (HIGH) + absolue-sur-markdown/adjacence (MED), (g) entites fantomes dans les fences (HIGH, base64 exclu), (h) solution complete avant un exercice TODO (HIGH). Calibre sur les tetes reelles #14161 (11 HIGH), #14164 (9), #14166 (11) ; familles SymbolicLearning/Part2-CSP/Part4 clean. - enrich_quality_ci.py + .github/workflows/enrich-quality-gate.yml : gate per-PR regression (nouveaux HIGH seulement, pattern #3240). - 28 tests (reproduction des classes + durcissement FP : accents regagnes, ancres code-index correctes, scaffolding de donnees, commentaires francais Lean, queues de sommes longues, base64 PNG). - rule C.7 notebook-conventions.md + notebook-enricher.md + skill enrich-notebooks : convention unique code[N] = N-ieme cellule CODE 0-based AU HEAD, rebasage post-insertion, validation pre-commit. Refs: #13410 (19:36Z, 20:19Z), roo-extensions #3374, #14161, #14164, #14166. Co-Authored-By: Claude-Code <noreply@anthropic.com> * fix(ci,#13410): enrich-quality-gate -- invocation errexit-safe Sous bash -e, out=$(cmd) avorte avant rc=$? : les branches rc=1/rc=2 etaient du code mort et le resume d'echec etait perdu. Pattern out=$(...) && rc=0 || rc=$? (pinned par test_detector_gate_errexit_safety). Co-Authored-By: Claude-Code <noreply@anthropic.com> * chore(#13410): retirer C.7 de la branche -- extraite en PR fille #14397 Split demande par le coordinateur (merge-gate 2026-09-02T23:53Z) : .rules/ exige une PR dediee + sign-off user. Le fichier retrouve l'etat main ; la section vit desormais dans #14397. Co-Authored-By: Claude-Code <noreply@anthropic.com> --------- Co-authored-by: Claude-Code <noreply@anthropic.com>
Grain: LIGHT/rules -- lane myia-po-2023:CoursIA -- prev: LIGHT/refactor #14260
Summary
PR fille demandee par le coordinateur (merge-gate DM 2026-09-02T23:53Z) : la section C.7 (ancrage
code[N]au HEAD) est extraite de #14207 pour ratification user separee — tout ajout a.claude/rules/passe par une PR dediee + sign-off user (CLAUDE.md section A), le coordinateur ne peut pas donner ce sign-off en mergeant.Contenu : +11 lignes, byte-identique a la section extraite de #14207.
La convention C.7 en une ligne
Un pointeur
code[N]ecrit dans le markdown designe la N-ieme cellule CODE (base 0) au HEAD de la branche, jamais le layout demaindepuis lequel le generateur a travaille.Les 4 incidents mesures qui la fondent
code[N](index de cellule CODE vs index absolu de cellule) — la convention n'existait pas, chacun reinventaitClauses
code[N]= N-ieme cellule CODE, base 0, au HEAD.scan_enrich_quality.py <nb> --base <base.ipynb>— 0 finding HIGH.Dependances
scan_enrich_quality.py) et le gate CI (Enrich-quality gate) sont livres par feat(tooling,#13410): validateur enrich classes (a)-(h) + convention ancre code[N] au HEAD (rule C.7) #14207 (la mere) — cette fille attend la ratification user ; l'ordre de merge naturel est mere d'abord (organe), fille ensuite (legislation), sans dependance bloquante dans l'autre sens : la clause 4 devient executable des que la mere est mergee.Statut
HOLD ratification user — ne pas merger sans sign-off explicite (CLAUDE.md section A). Le coordinateur porte la demande au user.
See #13410
See #14207