2026 OpenClaw front sur Mac distant :
fusionner ESLint JSON et Stylelint en un seul récit de porte, puis renvoyer un commentaire PR lisible
Public : équipes front qui unifient CI et digest IA autour d’une porte lint unique. Mots-clés : OpenClaw, ESLint JSON, Stylelint, Mac distant, synthèse PR. Node 22+ et passerelle OpenClaw : ingérer deux JSON, appliquer seuils, renvoyer un Markdown lisible dans le fil. Liens : correctifs ESLint et Stylelint, tokens E2E, Playwright shard.
00 HowTo : fil reproductible de bout en bout
Frictions : 1) chemins absolus différents entre postes ; 2) deux commentaires PR qui divergent ; 3) prompts IA nourris par des schémas hétérogènes.
Même procédure sur poste local, CI et Mac distant :
- Node 22+ aligné ;
enginesdanspackage.json. - ESLint JSON et Stylelint vers fichiers sous
.openclaw/reports/, jamais TTY seul. - CI envoie les JSON à OpenClaw avec
GIT_SHA,PR_NUMBER,BASE_REFoptionnel. - Passerelle : fusion →
pr_lint_gate_summary.md+ code sortie + appel API Git. - Jobs IA aval : lire uniquement le digest fusionné.
Journalisez commande et hash des JSON pour relecture distante.
01 Format de sortie local et CI unifié
Contrat explicite : pas de double comptage dans la synthèse PR. Retirez la racine du dépôt côté passerelle sur filePath ESLint et source Stylelint. Toujours -f json / --formatter json et -o fichier ; stdout libre.
Extrait package.json :
"lint:json:all": "mkdir -p .openclaw/reports && eslint . -f json -o .openclaw/reports/eslint.json && stylelint \"**/*.{css,scss}\" --formatter json -o .openclaw/reports/stylelint.json"
Même ligne sur portable et Mac distant loué.
Les équipes gagnent à figer une convention sous .openclaw/reports/, par exemple un dossier par SHA court : tickets, logs et synthèse PR partagent alors la même empreinte sans ambiguïté.
02 Agrégation côté passerelle et seuils
La passerelle fusionne ESLint JSON et Stylelint en lint_gate versionné (totaux, top règles, attribution outil) pour Markdown et machines.
Seuils : sévérité deux ESLint et erreurs Stylelint = bloquant ; budget d’avertissements en YAML par branche.
Matrice décisionnelle rapide :
| Signal | Deux commentaires séparés | Digest unique passerelle |
|---|---|---|
| Lisibilité revue | Fil long, risque de noyer l’équipe design. | Un seul bloc avec totaux et top règles. |
| Porte CI plus IA | Deux schémas JSON à aligner dans les prompts. | Un schéma lint_gate stable pour OpenClaw. |
| Audit et rétention | Corrélations manuelles entre outils. | Artefacts nommés plus empreinte de fusion. |
La passerelle OpenClaw transforme des JSON déjà produits ; le dépôt reste la référence pour les règles. Consignez dans « README.openclaw.md » les chemins d’artefacts et la commande exacte afin qu’un pair rejoue la fusion sur le Mac distant sans chemins implicites.
Extrait fusion (Node 22 ESM) :
const strip = (p) => p.startsWith(root) ? p.slice(root.length + 1) : p;
// parcourir eslint[] puis stylelint[], pousser { tool, file: strip(...), rule, sev }
await writeFile(".openclaw/reports/lint_gate.json", JSON.stringify(gate, null, 2));
Versionnez le schéma lint_gate ; complétez topRules côté passerelle OpenClaw.
03 Échecs, nouvelles tentatives et stratégie de troncature
Transport et quotas : backoff avec jitter depuis le Mac distant. Lint rouge : pas de boucle aveugle ; re-lancer seulement si JSON incomplet après crash.
Troncature : bornez fichiers par règle et lignes Markdown de synthèse PR ; une ligne « tronqué, voir artefacts CI » suffit.
Faits utiles à citer en revue :
- Cent vingt lignes de prose de commentaire constituent souvent un plafond confortable avant saturation cognitive.
- Quatre tentatives espacées suffisent en pratique pour absorber les erreurs transitoires sans masquer un quota API réel.
- Réservez un code de sortie dédié pour « erreur fournisseur réessayable » afin de ne jamais confondre limitation réseau et arbre de lint réellement rouge.
Extrait — enveloppe shell bornée :
#!/usr/bin/env bash
set -euo pipefail
n=0
until node tools/post-pr-lint-summary.mjs; do
c=$?; ((n++)); [[ $c -eq 77 ]] && [[ $n -lt 4 ]] || exit $c
sleep $((2**n+RANDOM%3))
done
Code 77 = erreur fournisseur réessayable uniquement.
04 API de commentaires du fournisseur Git (sans URL privée derrière login)
REST « commentaire issue/PR » ou commentaires de revue sur diff ; jeton scope minimal côté passerelle.
Idempotence : marqueur HTML caché + mise à jour du même commentaire bot.
Sans URL privée : pas de preview derrière login dans le fil ; préférez référence job CI ou doc publique. POST JSON { "body": "…markdown…" } ; autres hôtes via adaptateur OpenClaw.
ESLint JSON + Stylelint + passerelle OpenClaw = une synthèse PR unique pour humains, CI et IA sur Mac distant homogène.
Pour poursuivre sur le site : accueil, centre d’aide et index du blog.
Exécutez la même porte lint OpenClaw sur un Mac distant dédié
Workers Node 22+ et fumées Safari : louez un Mac distant Apple Silicon. achat.html sans compte pour aligner OpenClaw, ESLint JSON et Stylelint.