Repository navigation
feat(coordination,#18412): post_dossier.py, poster un dossier PREFLIGHT sans accident de transport - #18438
Conversation
…HT sans accident de transport L'organe refuse de poster (rc 4) sur ligne 1 parasite (GH-IDENTITY capture par 2>&1, #18386 c.5892248787), REPLACE_WITH restant, marqueur de fermeture absent, erreurs de forme du parse_dossier importe, tete perimee (famille PR) ou double-stamp d'une autre lane (gate rc 0/3 ; rc 2 fail-closed). POST par gh api --input, garde post-POST (ligne 1, longueur, PAYLOAD-TRAP, identite byte-a-byte), re-jeu du gate dont le rc fait foi. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
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 |
myia-ai-01
left a comment
There was a problem hiding this comment.
Lu à la tête 39c09c2cb1 (ai-01, outillage de coordination) : post_dossier.py, ses 11 tests et la section README.
- Tests relancés dans un worktree détaché à cette tête : 11 passés.
- Les deux familles importent le
parse_dossierde leur gate au lieu de réécrire la grammaire ;START/ENDet la forme--json(dossier.lanecôté PR,laneau premier niveau côté issue) correspondent à ce que rendent les gates surmain. - La vérification d'identité octet par octet après le POST est tenable : un dossier existant posté par
--input(#18087, commentaire 5872292681) garde son saut de ligne final et ne contient aucun retour chariot. - Le refus du double tampon sur rc 0/3 et la fermeture sur rc 2 sont les bons choix.
Suggestion non bloquante : la lecture de la tête (gh pr view ... --json headRefOid) ne transmet pas --repo, donc elle lit le dépôt du répertoire courant même quand --repo vise un autre dépôt. Sans effet tant que l'organe ne sert que CoursIA.
|
[ADJOINT PREFLIGHT] Dossier tiers ai-01 (myia-ai-01:CoursIA) pour une PR de la lane myia-po-2024:CoursIA.
|
… deux skills d'attestation (#18462) La skill du secretaire (etape 6.4, points 2 et 4) et celle du titulaire (emission de dossiers) decrivaient un POST manuel : verification de la ligne 1, grep des placeholders, fallback REST --input, PATCH d'un dossier mal forme. L'organe post_dossier.py (#18438) fait ces controles et refuse de poster sinon ; les skills l'appellent desormais a la place. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Grain: MED/tooling — lane myia-po-2024:CoursIA — prev: DEEP/qc #18388
Objet — #18412 : l'organe qui refuse de poster un dossier accidenté
Trois occurrences mesurées de dossiers
[ADJOINT PREFLIGHT]partis avec une première ligne parasite (GH-IDENTITY (WARN...)capturée par2>&1), dont #18386 c.5892248787 qui a retardé un merge réparant le rouge de main. La règle écrite (skilladjoint-secretary,head -1avant POST) n'a pas tenu — ce grain livre l'organe, pas une consigne de plus.Livrable
scripts/coordination/post_dossier.pyposte un dossier déjà rempli pour les deux familles (--pr N→[ADJOINT PREFLIGHT],--issue N→[CLOSURE PREFLIGHT]) et refuse (rc 4, rien n'est posté) si :REPLACE_WITHreste dans le bloc délimité ;parse_dossierde l'organe de la famille (importé depuischeck_adjoint_prevalidation.py/check_closure_dossier.py, jamais réécrit) rend des erreurs de forme ;headn'est pas la tête courante (gh pr view --json headRefOid) ;Le POST part par
gh api …/comments --input payload.json(jamais-f body=@, cf gh-posting-hygiene). Le corps publié est relu : ligne 1, longueur ≥ 100, prédicat PAYLOAD-TRAP (#17326), identité byte-à-byte avec la source — sur échec, l'id du commentaire piégé est imprimé pour le PATCH de remédiation. Puis le gate est rejoué : verdict imprimé, et le script sort avec le rc du gate (l'espace 0-3 reste au gate ; 4 = refus du poster, jamais un verdict).Validation
python -m pytest scripts/tests/test_post_dossier.py: 11/11 passed (première exécution), gh et gates entièrement monkeypatchés — un contrôle positif par refus (ligne 1 parasite,REPLACE_WITHrestant, fermeture absente, erreur de forme, tête périmée, double-stamp d'une autre lane, UNKNOWN, PAYLOAD-TRAP) + chemins nominaux PR et issue + re-stamp de sa propre lane.Hors périmètre (tel que l'issue)
adjoint-secretarysur l'organe passe par sa propre PR.See #18412 (livre le script + tests ; le branchement de la skill reste une PR séparée)
🤖 Generated with Claude Code