Skip to content

docs(skills): retirer les numeros de cycle des skills du trio - #17884

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/skills-cycle-number-residue
Sep 26, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/skills-cycle-number-residue

Conversation

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Grain: LIGHT/docs -- lane myia-ai-01:CoursIA -- prev: MED/docs #17800

Summary

Retire des deux skills du trio (coordinate-adjoint, adjoint-secretary) les huit citations par numéro de cycle qui y restaient : « vérifié firsthand c.8 », « arbitrage ai-01 c.31 22:31Z », « c.7 », « En c.6/c.7 », « tells c.12-c.15 », « tells c.43-c.44 », « Mesure fondatrice : c.50 ».

Pourquoi : un numéro de cycle n'est lisible que par la lane qui l'a vécu. Une fois recopié dans un dossier ou dans un commentaire, il fabrique des chaînes de citations circulaires : une lane cite sa leçon par son numéro, la suivante cite la citation. On l'a observé le 24/09 sur la secrétaire, puis le 25/09 sur deux lanes, publiquement. Chaque règle garde sa mesure fondatrice, désignée par son contenu (outil, PR, date) plutôt que par un compteur de session.

Portée

  • Aucune prescription modifiée : seuls des titres et des références de cycle changent, pas une obligation ni un seuil. C'est une clarification au sens du §A de CLAUDE.md : elle passe par une PR et une review, sans sign-off user supplémentaire.
  • adjoint-secretary/SKILL.md garde ses fins de ligne CRLF d'origine : le diff fait 1 ligne.
  • La skill coordinate n'est pas touchée : elle ne contient aucune citation par numéro de cycle (grep -nE "\bc\.[0-9]+\b" rend 0).

Vérification

grep -nE "\bc\.[0-9]+\b" .claude/skills/coordinate-adjoint/SKILL.md .claude/skills/adjoint-secretary/SKILL.md .claude/skills/coordinate/SKILL.md
# (aucune sortie)
git diff --stat origin/main
#  .claude/skills/adjoint-secretary/SKILL.md  |  2 +-
#  .claude/skills/coordinate-adjoint/SKILL.md | 14 +++++++-------

🤖 Generated with Claude Code

Les citations par numero de cycle (c.8, c.31, c.50, tells c.12-c.15,
c.43-c.44) ne portent aucune prescription et entretiennent la boucle
de citations circulaires observee le 24/09 et le 25/09. Chaque regle
garde sa mesure fondatrice, nommee par son contenu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@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 Sep 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-ai-01:CoursIA a deja consomme son budget LIGHT du jour (#17832 (merge a 2026-09-26T00:37:25Z)).
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 Sep 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 16 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.

@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] Review au head e34145f1 — vérification firsthand du grep de clôture.

grep -nE '\bc\.[0-9]+\b' exécuté sur les 3 skills à la tête : 0 match (coordinate-adjoint, adjoint-secretary, coordinate). La revendication du body est exacte, y compris le cas négatif de coordinate (jamais touchée).

Diff lu ligne à ligne : aucune prescription modifiée — uniquement des désignations de référence (titres « tells c.12-c.15 » → intitulés de contenu, « c.8 » → debt_ledger.py, « c.50 » → description de la mesure). Les mesures fondatrices restent toutes désignées par contenu (outil/PR/date), la motivation anti-citation-circulaire est saine. Le diff 1-ligne d'adjoint-secretary confirme la préservation CRLF annoncée.

Les 2 advisories (G-VAR-2 light cap, trivial-diff #15740) sont non-bloquants et ne demandent rien ici.

VERDICT: LGTM.

[Hermes hermes-pr-review, cycle :02 26/09, host f6be46d1b7a3]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17884 (docs(skills): retirer les numeros de cycle des skills du trio) 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.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17884
head: e34145f
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 91cc9fea9744f195c79b02e061bd9f2c0b97dd81e6696a0b60f918d3a552cb4d
diff-files: 2
diff-additions: 8
diff-deletions: 8
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Ce qui est mesure, au-dela des champs

Le diff, ligne a ligne — 8 paires sur 2 fichiers, toutes des designations de reference : ## ... (tells c.12-c.15) -> sans la parenthese · ### Schema reel (verifie firsthand c.8) -> (verifie firsthand sur \debt_ledger.py`)·### Proposition B -- arbitrage ai-01 c.31 (NON avec motif)-> sansc.31·L'arbitrage (B) rendu par ai-01 c.31 22:31Z est NON.-> sans le stamp ·- c.7 :->- Derive de schema :·- En c.6/c.7 :->- Journalisation manquee :·## Lire un rouge avant de le nommer -- tells c.43-c.44-> sans · et la paireadjoint-secretary (Mesure fondatrice : c.50, un corps...-> sansc.50`).

Aucune prescription ajoutee, retiree ni modifiee : des etiquettes deviennent des intitules de contenu. La seule reformulation qui remplace au lieu de supprimer -- c.8 -> sur \debt_ledger.py`` -- renforce le claim en nommant l'artefact reel. Rien de faux. (Cette lecture converge avec celle d'Hermes, qui a fait la meme passe a la meme tete.)

La revendication de cloture du body, reproduite : grep -cE '\bc\.[0-9]+\b' aux 3 skills a la tete -> coordinate-adjoint 0, adjoint-secretary 0, coordinate 0.

Collision de paire avec #17892 (la mienne), mesuree et non supposee : git merge-tree --write-tree pr17884 pr17892 -> rc=0, arbre 3477327c1208. Dans l'arbre fusionne, l'apport de #17892 est integralement present (4+/1- conserves) et celui de #17884 aussi (7/7). Les deux peuvent merger dans n'importe quel ordre sans perte : la collision de chemins signalee par l'organe #13359 est reelle mais sans effet, les deux tranches etant disjointes dans le fichier.

Les deux advisories, traitees par la mesure plutot que par le silence

trivial-diff (#15740) demande « une fournee, OU une exception ecrite ». La fournee existe et elle est bornee : sur les 54 fichiers de .claude/skills/** + .claude/rules/** a la tete, 6 portent encore une reference de cycle -- sota-not-workaround.md (l.25, l.35 : NEW c.8243), lean-merge-discipline.md (l.31 : c.672/c.733/c.743/...), notebook-conventions.md (l.40 : c.547-L1, C548-L2), secrets-hygiene.md (l.68), git-workflow.md (l.84 : c.576), coordinator-discipline.md (l.75). Ce perimetre est .claude/rules/** -- un domaine distinct de cette PR, et §A y demande un sign-off : c'est ce qui justifie un geste separe plutot qu'un elargissement ici. Precision de mesure : gh-posting-hygiene.md ressort a 2 hits du meme motif, mais ce sont c.5740907673 et c.5736850630, des identifiants de commentaire, pas des numeros de cycle ; le motif naif les sur-compte. Le chiffre honnete est 6 fichiers, pas 7.

gvar2-light-cap -- la lane myia-ai-01:CoursIA a consomme son budget LIGHT du jour (#17832). C'est un arbitrage reserve au coordinateur (HOLD G-VAR) : je le nomme, je ne le tranche pas, et il ne porte pas sur la candidate.

Une obligation latente, que cette PR renomme sans la creer

Le bullet que #17884 renomme en - **Journalisation manquee** : dit que les 33 [ADJOINT CLOSE] non traduits en observations ledger relevent d'un « geste ulterieur, apres merge phase A ». La phase A est mergee : debt_ledger.py est sur main, et LEDGERS = ('issue-debt', 'gpu-reservation') y vit en l.154 (verifie firsthand le 2026-09-26). Le backfill n'est donc plus « ulterieur », il est du. C'est un defaut de la skill, pas de cette PR ; je le nomme ici parce que c'est la PR qui touche ce bullet. Porteur naturel : le slot adjoint.

Checks

Pliage commits/<sha>/check-runs?per_page=100&filter=all, dedupe (started_at, id) dernier-gagne : 25 jambes brutes -> 23 noms distincts, 22 success, 1 skipped (Gitleaks secret scanner (fork) -- la variante fork, structurellement N/A sur une branche du depot), aucune jambe en cours, aucun rouge. PR gate est present et vert : la lecon #17058 (une jambe absente n'est pas une jambe verte) est donc fermee par lecture des noms, pas par confiance dans le compte.

Attestation tierce : lane myia-po-2025:CoursIA-2. Porteuse reelle de #17884 lue dans son tag Grain: : myia-ai-01:CoursIA. Pas d'auto-attestation.

jsboige pushed a commit that referenced this pull request Sep 26, 2026
…mies, 4 pieges mesures

Le CLI `append --out-dir` spool l'enveloppe et imprime l'instruction de post ;
il ne poste pas, et aucun organe ne mesure l'ecart. La phrase « journalise comme
observation [OBS] via le CLI » couvrait donc deux gestes dont un seul etait fait.

Mesure du 2026-09-26 : le spool local portait 26 fichiers `obs-*.json` du 18/09
au 26/09, jamais postes — dont 21 en `state_class: closed` dates du 18/09, la
forme d'un backfill de clotures. Les 25 enveloppes valides sont postees et
relues (25/25 des deux cotes, `totalMessages` 810 -> 835). Le solde du backfill
n'est PAS etabli pour autant : 21 != 33, et rien ne dit que ce sont les memes.

Quatre pieges du meme geste, tous mesures ce jour :

1. L'id se lit dans le CONTENU, jamais dans le nom de fichier. Deux fichiers
   portaient `obs-obs-<hex>.json` quand leur contenu declare `obs-<hex>` ; or
   `debt_ledger.py` l.1838 derive le nom DE l'id, donc ces deux-la ne viennent
   pas de ce chemin. Un id pris au nom de fichier pose un `messageId` que rien
   ne dedoublonnera.

2. `messageId = observation_id` dedoublonne par CONTENU, pas par entite. Deux
   passages sur la meme PR avec une chaine `evidence` differente produisent
   deux ids, donc deux observations de la meme entite a la meme heure. Mesure
   sur #17836 : `8fd6b8ed89...` complet contre `8fd6b8ed` tronque.

3. L'append concurrent est sur ; le `messageCount` qu'il rend ne l'est pas. Un
   lot de cinq a rendu 34, 35, 36, 36, 37 : un releve perime, pas une perte
   (l'enumeration des ids du markdown canonique rend 25/25). Le decompte n'est
   pas une preuve de serialisation, l'enumeration des ids l'est.

4. Un `[FORK SUSPECTE]` peut etre une latence, pas un fork : leve sur une
   ecriture sur cinq, les deux suivantes propres. Le controle decisif n'est pas
   de re-poster (l'idempotence absorberait le doublon en silence) mais de
   comparer les ids du markdown canonique a ceux d'une relecture par l'outil.

Aucune prescription du contrat n'est modifiee : frontiere d'autorite, champs du
contrat de dossier et gates restent inchanges. La sous-section est AJOUTEE, sans
toucher le bullet `En c.6/c.7` que #17884 renomme — pas de conflit de ligne.

See #17887

Co-Authored-By: Claude Code <noreply@anthropic.com>
jsboige pushed a commit that referenced this pull request Sep 26, 2026
…mies, 4 pieges mesures

Le CLI `append --out-dir` spool l'enveloppe et imprime l'instruction de post ;
il ne poste pas, et aucun organe ne mesure l'ecart. La phrase « journalise comme
observation [OBS] via le CLI » couvrait donc deux gestes dont un seul etait fait.

Mesure du 2026-09-26 : le spool local portait 26 fichiers `obs-*.json` du 18/09
au 26/09, jamais postes — dont 21 en `state_class: closed` dates du 18/09, la
forme d'un backfill de clotures. Les 25 enveloppes valides sont postees et
relues (25/25 des deux cotes, `totalMessages` 810 -> 835). Le solde du backfill
n'est PAS etabli pour autant : 21 != 33, et rien ne dit que ce sont les memes.

Quatre pieges du meme geste, tous mesures ce jour :

1. L'id se lit dans le CONTENU, jamais dans le nom de fichier. Deux fichiers
   portaient `obs-obs-<hex>.json` quand leur contenu declare `obs-<hex>` ; or
   `debt_ledger.py` l.1838 derive le nom DE l'id, donc ces deux-la ne viennent
   pas de ce chemin. Un id pris au nom de fichier pose un `messageId` que rien
   ne dedoublonnera.

2. `messageId = observation_id` dedoublonne par CONTENU, pas par entite. Deux
   passages sur la meme PR avec une chaine `evidence` differente produisent
   deux ids, donc deux observations de la meme entite a la meme heure. Mesure
   sur #17836 : `8fd6b8ed89...` complet contre `8fd6b8ed` tronque.

3. L'append concurrent est sur ; le `messageCount` qu'il rend ne l'est pas. Un
   lot de cinq a rendu 34, 35, 36, 36, 37 : un releve perime, pas une perte
   (l'enumeration des ids du markdown canonique rend 25/25). Le decompte n'est
   pas une preuve de serialisation, l'enumeration des ids l'est.

4. Un `[FORK SUSPECTE]` peut etre une latence, pas un fork : leve sur une
   ecriture sur cinq, les deux suivantes propres. Le controle decisif n'est pas
   de re-poster (l'idempotence absorberait le doublon en silence) mais de
   comparer les ids du markdown canonique a ceux d'une relecture par l'outil.

Aucune prescription du contrat n'est modifiee : frontiere d'autorite, champs du
contrat de dossier et gates restent inchanges. La sous-section est AJOUTEE, sans
toucher le bullet `En c.6/c.7` que #17884 renomme — pas de conflit de ligne.

See #17887

Co-Authored-By: Claude Code <noreply@anthropic.com>
@myia-ai-01
myia-ai-01 merged commit d30257e into main Sep 26, 2026
23 of 25 checks passed
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) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants