Skip to content

docs(guard,#17071): forme sûre de réponse à une réserve B.0 — table de vérité mesurée - #17163

Merged
myia-ai-01 merged 1 commit into
mainfrom
docs/17071-b0-answer-form
Sep 22, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
docs/17071-b0-answer-form

Conversation

@jsboige

@jsboige jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs -- lane myia-po-2023:CoursIA -- prev: LIGHT/tooling #17018

Objet

Documenter la forme sûre de réponse à une réserve B.0 — la face symétrique du contrat d'émission (#14682), non documentée jusqu'ici. Savoir poser un verdict ne dit pas comment y répondre sans en créer un : une réponse d'auteur qui cite le token redevient elle-même une réserve, et la PR reste bloquée à fond réparé. C'est la piste 2 de #17071, prise dans sa version la plus faible — de la documentation, zéro changement d'organe.

Fichiers : .claude/rules/pr-review-discipline.md (bloc succinct sous le contrat d'émission, qui possède déjà ce contrat) et docs/reference/pr-review-context.md (la mesure complète).

See #17071 — pas Closes : l'issue demande d'arbitrer trois pistes, celle-ci n'en documente qu'une.

Mesure (firsthand, sur l'organe lui-même)

Table de vérité passée sur classify(author, body) + _strip_quoted + _strip_mentioned_verdicts, auteur = login de lane non-bot :

Forme répondue classify() Mécanisme
token nu en prose BOT-CONCERN marqueur vivant (CONCERN_MARKERS)
token en gras BOT-CONCERN BLOCK_VERDICTS — le gras est la forme d'émission, pas une cage
Verdict : <token> BOT-CONCERN les deux-points font du méta-nom un label d'émission
token encagé (backticks, « », apostrophes, bloc de code) None _strip_quoted (_QUOTED_RANGES)
verdict <token> sans deux-points None position de mention (_MENTION_VERDICT_INLINE)
narration de levée None registre LIFT_MARKERS
token de blocage nu None résidu assumé de l'organe (il éviterait le tag de protocole de lane et la négation)

Corollaire le plus raté, et c'est ce qui a produit les instances : encager un mot voisin ne protège rien. Dans la forme réellement mesurée, le seul backtick de la phrase portait sur un autre mot et le token en gras nu restait classé BOT-CONCERN.

Contrôle positif de la recommandation (4/4)

Les formes conseillées sont mesurées muettes, pas réputées telles : la phrase que citait la piste 2 de l'issue rend None, la variante à token encagé rend None, la position de mention rend None. Le contrôle négatif tient aussi : une réponse qui réitère la réserve rend BOT-CONCERN — la forme sûre ne rend donc pas l'organe aveugle à une réserve réaffirmée, ce qui est précisément le risque invoqué pour écarter la piste 1 (élargir le scanner aux formes d'adresse).

Correction apportée en passant (mesurée)

_strip_adjoint_dossier a changé avec #17065 : un commentaire qui ouvre sur un bloc bien délimité est un dossier dans son intégralité, prose postérieure comprise ; seuls la prose précédant le bloc et un bloc malformé restent lus. La doc décrit désormais ce comportement-là, pas l'ancien. Mesuré 3/3 (bloc seul → None ; bloc ouvrant + prose citante après fermeture → None ; prose citante avant le bloc → BOT-CONCERN).

Ce que cette PR ne tranche pas

Elle ne modifie aucune ligne d'organe. Les trois pistes de #17071 restent ouvertes — (1) étendre CITERS aux formes d'adresse, (2) cette documentation, (3) la résolution par thread inline — et le choix entre elles n'est pas fait ici. La piste 1 reste l'arbitrage le plus lourd, et le contrôle négatif ci-dessus en mesure la borne.

Vérification

  • Grain tag lu par l'extracteur du dépôt (scripts/grain_tag.py) et par le helper bloquant scripts/ci/variation_tag_required.py — contrôle local, avant push.
  • Diff : 51 insertions, 0 suppression, 2 fichiers docs/rules — au-dessus du seuil §E « docs-only < 50 lignes » ; aucun lien ajouté hors un chemin relatif déjà utilisé par le fichier.
  • git diff --check : aucune erreur d'espace.
  • Chaque affirmation du texte est adossée à une sortie de commande de ce cycle, pas à une paraphrase de la doc existante.

🤖 Generated with Claude Code

…e vérité mesurée

La face symétrique du contrat d'émission (#14682) n'était pas documentée :
une réponse d'auteur qui cite le token redevient elle-même une réserve B.0,
et la PR reste bloquée à fond réparé.

Mesure firsthand sur l'organe lui-même (classify + _strip_quoted +
_strip_mentioned_verdicts, auteur = login de lane non-bot) : formes
émettrices (token nu en prose, gras, « Verdict : token ») vs muettes
(token encagé, position de mention, narration de levée). Contrôle positif
4/4 des formes conseillées, dont le contrôle négatif — une réponse qui
réitère la réserve reste classée BOT-CONCERN, ce qui borne la piste 1.

Corrige au passage la description de _strip_adjoint_dossier, changée par
#17065 : un bloc ouvrant rend le commentaire entier inerte (prose
postérieure comprise).

Zéro changement d'organe : documentation seule (piste 2 de #17071).

See #17071

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@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 51 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.

@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17163 (docs(guard,#17071): forme sûre de réponse à une réserve B.0 — table de vérité mesurée) 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.

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

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

@jsboige

jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

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

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