Synthèse
- Repos découverts : 32
- Repos avec commits dans les dernières 24h : 1
- Repo reviewé :
impeccable(/home/ubuntu/.claude/plugins/marketplaces/impeccable) - Total commits reviewés : 28
- Validation effectuée par le subagent : tests Node ciblés live passés (
81 tests OK) - Limite de validation :
bunabsent, doncbun run testet testsbun:testnon exécutés.
Commits reviewés
sous-section9a5d0e7fix(live): switch live-poll to execFileSync, validate ids strictly (#124)7e0ce5eci: add Tessl skill review on SKILL.md changes (#74)18fa503fix: normalize quoted user-invocable frontmatter (#87)04709easecurity: use JSON.stringify for selector escaping in devtools panel (#93)efedf2dMerge pull request #97 from Gujiassh/fix/community-sectionf67add2Merge pull request #120 from vinaypokharkar/feature/qoder-support6b507e0Release impeccable skill v3.0.5c1e1104Merge pull request #118 from pbakaus/feat/live-jsx-wrap-and-carbonize1f760affix(live): expandReplaceRange handles multi-line self-closing JSX<div />8660d3afix(live): wrap shape-of-output bugs from second Bugbot review11dfad8fix(live): CSP-meta patch+revert preserves space before self-closing/a701ee6fix(live): wrap preserves relative indent of multi-line picked elements99e6837fix(live): JSX accept/discard restores at original indent (Bugbot review)fdb9e7cfix(live): screenshot overlay no longer flashes solid black during loading9ec9043fix(live): textContent disambiguation handles missing inter-element whitespace54d9f05fix(live): land valid TSX through wrap → preview → accept → carbonize638af20Document the release workflow in CLAUDE.md and AGENTS.md5881a08Thank @dergachoff for #113 in v3.0.4 changelog27af49fStrip leading whitespace in release-notes markdown extractionbf2bc55Fold v3.0.3 changelog into v3.0.4a923346Add release tooling and bump CLI to 2.1.8c812d76feat: wire qoder into the download API allowlist7cfa775fix: parseFrontmatter handles CRLF line endings9a76c7bfix: include qoder in normalizeForHash provider regexc6ca721docs: add Qoder to README install and supported-tools sections4f66eb9feat: add Qoder harness support (closes #76)5f5e2b0Release impeccable skill v3.0.454f6ccfcodex in auto-review became way too autonomous - significantly harden craft/shape flows
Points critiques / risques principaux
sous-section- Sécurité CI — critique moyen/haut :
7e0ce5eajoutetesslio/skill-review@mainavecpull-requests: write. Action tierce non pinée à un SHA/tag immuable → risque supply-chain. Recommandation : pinner à un SHA + Dependabot/Renovate. - Sécurité release tooling — moyen :
a923346construit plusieurs commandes shell via interpolation (git tag,gh release, branches/tags). Recommandation : valider strictement la version semver/tag et préférerexecFileSync/argv. - Supply-chain / régression lockfile — moyen :
9a5d0e7mélange un fix sécurité live avec une grosse régénérationpnpm-lock.yamlajoutant/actualisant beaucoup de dépendances. À séparer et auditer. - Live wrap — risque fonctionnel restant : les fallbacks “first match” quand
--textest trop court/dynamique peuvent encore modifier le mauvais sibling, surtout sur composants répétés dynamiques.
`54f6ccf` — harden craft/shape flows
sous-section- Positif : renforce fortement les gates produit/shape/image avant mutation, limite l’autonomie excessive des agents.
- Risque : instructions très strictes peuvent bloquer des harness sans outil question structuré ou image-gen.
- Suggestion : ajouter tests snapshot de transformation provider pour éviter divergence de wording entre harnesses.
`5f5e2b0` — release skill v3.0.4
sous-section- Positif : release cohérente avec versions/changelog.
- Risque faible : beaucoup de fichiers générés ; vérifier reproductibilité via
bun run build. - Tests manquants : non vérifiable ici sans Bun.
`4f66eb9` — add Qoder harness support
sous-section- Positif : intégration large : provider config, placeholders, CLI detection, docs, artefacts
.qoder. - Risque : énorme ajout généré (
.qoder) difficile à reviewer manuellement ; leconfig_file: AGENTS.mdmérite validation avec Qoder. - Suggestion : ajouter test explicite provider Qoder + build snapshot minimal.
`c6ca721` — docs Qoder README
sous-section- Positif : docs alignées avec provider.
- Risque faible : uniquement documentation.
`9a76c7b` — normalizeForHash inclut qoder
sous-section- Positif : corrige faux positifs “update available”.
- Amélioration : centraliser la liste providers pour éviter oublis entre
PROVIDER_DIRS, regex hash, API download.
`7cfa775` — parseFrontmatter CRLF
sous-section- Positif : vrai fix Windows ; évite double frontmatter.
- Risque : parser YAML maison reste limité.
- Tests : semble couvert par utils, mais non exécuté ici car Bun absent.
`c812d76` — Qoder download allowlist
sous-section- Positif : API alignée avec nouveau provider + tests.
- Risque faible : mapping simple
.qoder.
`a923346` — release tooling + CLI 2.1.8
sous-section- Positif : release script utile : dirty tree, pushed HEAD, changelog, artifacts.
- Problème sécurité/robustesse : commandes shell interpolées depuis version/branch/tag. Même si usage maintainer, valider semver et utiliser
execFileSync. - Suggestion : tests unitaires
htmlToMarkdown, dry-run, cas changelog absent, tag existant.
`bf2bc55` — fold changelog v3.0.3 into v3.0.4
sous-section- Positif : simplifie changelog.
- Risque faible : docs uniquement.
`27af49f` — strip leading whitespace in release notes
sous-section- Positif : corrige rendu GitHub Release.
- Suggestion : ajouter test
htmlToMarkdownpour éviter régression.
`5881a08` — thank contributor in changelog
sous-section- Positif : attribution.
- Risque nul : contenu public uniquement.
`638af20` — document release workflow
sous-section- Positif : workflow release clarifié dans
CLAUDE.md/AGENTS.md. - Risque faible : docs seulement.
`54d9f05` — valid TSX wrap → preview → accept → carbonize
sous-section- Positif : gros fix structurel JSX/TSX : wrapper single-root, CSS template stripping, disambiguation
--text, fixture E2E. - Bonnes pratiques : tests unitaires + fixture Vite TSX.
- Risque : logique regex/ligne fragile pour JSX complexe ; fallback first-match peut encore toucher mauvais élément dynamique.
- Suggestion : envisager parse AST JSX à moyen terme.
`9ec9043` — textContent disambiguation sans whitespace
sous-section- Positif : corrige cas réel
textContentconcaténé sans espace. - Risque : comparaison compacte peut créer faux positifs sur textes proches.
- Tests : bon test ciblé.
`fdb9e7c` — overlay screenshot black flash
sous-section- Positif : corrige piège
rgba(0,0,0,0)truthy ; amélioration UX visible. - Tests : static-source guard pragmatique.
- Amélioration : idéalement exposer helper testable plutôt que test regex source.
`99e6837` — JSX accept/discard indent
sous-section- Positif : corrige dérive d’indentation introduite par wrapper JSX interne.
- Tests : bons tests accept/discard.
- Risque faible : dépend toujours de regex ligne.
`a701ee6` — preserve relative indent
sous-section- Positif : fix complémentaire important ; évite corruption esthétique/syntaxique des sous-éléments.
- Qualité : bonne extraction
minLeadingSpaces. - Suggestion : couvrir tabs/mixed indentation si projets concernés.
`11dfad8` — CSP meta patch/revert whitespace
sous-section- Positif : round-trip byte-for-byte préservé, important pour fichiers utilisateur.
- Tests : bons tests insertAfter + CSP self-closing.
- Risque faible : regex meta reste simple, mais suffisante pour cas ciblé.
`8660d3a` — wrap output shape bugs
sous-section- Positif : corrige sentinel short-text et
endLinemulti-ligne. - Tests : deux tests bien ciblés.
- Risque : short-text fallback first-match reste dangereux mais volontaire.
`1f760af` — multi-line self-closing JSX `<div />`
sous-section- Positif : corrige bug de corruption sérieux dans
expandReplaceRange. - Tests : couvre sibling adjacent + self-closing multiline.
- Suggestion : parser JSX/HTML réel serait plus robuste que regex.
`c1e1104` — merge PR #118 live JSX/carbonize
sous-section- Positif : merge cohérent des fixes live précédents.
- Risque : gros volume généré multi-provider ; vérifier build reproductible.
- Note : logique détaillée couverte dans
54d9f05→1f760af.
`6b507e0` — release skill v3.0.5
sous-section- Positif : release après fixes live, version/changelog.
- Risque faible : release générée ; dépend de build non vérifié ici faute de Bun.
`f67add2` — merge Qoder support
sous-section- Positif : intègre Qoder après fixes allowlist/hash/CRLF.
- Risque : très gros ajout généré ; préférer review source + build artifact diff.
- Note : détails dans
4f66eb9,9a76c7b,7cfa775,c812d76.
`efedf2d` — community section
sous-section- Positif : README enrichi.
- Risque faible : lien Twitter non cliquable si pas URL complète ; mineur.
`04709ea` — selector escaping via JSON.stringify
sous-section- Positif sécurité : très bon fix contre injection JS via
chrome.devtools.inspectedWindow.eval. - Manque : aucun test ajouté pour selector malveillant.
- Suggestion : test statique ou unitaire garantissant usage
document.querySelector(${JSON.stringify(...)}).
`18fa503` — quoted user-invocable frontmatter
sous-section- Positif : corrige coercition booléenne ciblée sans casser les strings quotées.
- Risque faible : parser YAML maison ne gère pas tous les cas d’échappement.
- Tests : ajout pertinent, mais non exécutable ici sans Bun.
`7e0ce5e` — Tessl skill review workflow
sous-section- Positif : améliore qualité PR sur
SKILL.md. - Problème critique : action tierce
tesslio/skill-review@mainnon pinée avec permissionpull-requests: write. - Suggestion : pinner à un SHA/version, limiter permissions si possible, documenter confiance/action.
`9a5d0e7` — live-poll execFileSync + strict ids
sous-section- Positif sécurité : remplace
execSync(string)parexecFileSync(argv), valideidetvariantId. Très bonne correction. - Tests : régressions shell metachar couvertes dans
live-server.test.mjs. - Risque : lockfile massif dans même commit brouille la review et modifie la surface supply-chain.
- Suggestion : utiliser
process.execPathau lieu de'node'; séparer lockfile en commit dédié.
Validation et limites
node --test tests/live-wrap.test.mjs tests/live-accept.test.mjs tests/live-inject.test.mjs tests/live-server.test.mjs tests/live-browser-regression.test.mjs→ 81 tests OK.bun run testimpossible :bun: command not found.tests/lib/utils.test.jsnon exécutable sous Node car dépend debun:test.
Fichiers modifiés pendant la review
Aucun fichier du repo reviewé n’a été modifié. Le présent rapport a été sauvegardé dans Obsidian.