Code Reviews

5 reviews · 63 sections · 0 positifs, 0 améliorations

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 : bun absent, donc bun run test et tests bun:test non exécutés.

Commits reviewés

sous-section
  • 9a5d0e7 fix(live): switch live-poll to execFileSync, validate ids strictly (#124)
  • 7e0ce5e ci: add Tessl skill review on SKILL.md changes (#74)
  • 18fa503 fix: normalize quoted user-invocable frontmatter (#87)
  • 04709ea security: use JSON.stringify for selector escaping in devtools panel (#93)
  • efedf2d Merge pull request #97 from Gujiassh/fix/community-section
  • f67add2 Merge pull request #120 from vinaypokharkar/feature/qoder-support
  • 6b507e0 Release impeccable skill v3.0.5
  • c1e1104 Merge pull request #118 from pbakaus/feat/live-jsx-wrap-and-carbonize
  • 1f760af fix(live): expandReplaceRange handles multi-line self-closing JSX <div />
  • 8660d3a fix(live): wrap shape-of-output bugs from second Bugbot review
  • 11dfad8 fix(live): CSP-meta patch+revert preserves space before self-closing /
  • a701ee6 fix(live): wrap preserves relative indent of multi-line picked elements
  • 99e6837 fix(live): JSX accept/discard restores at original indent (Bugbot review)
  • fdb9e7c fix(live): screenshot overlay no longer flashes solid black during loading
  • 9ec9043 fix(live): textContent disambiguation handles missing inter-element whitespace
  • 54d9f05 fix(live): land valid TSX through wrap → preview → accept → carbonize
  • 638af20 Document the release workflow in CLAUDE.md and AGENTS.md
  • 5881a08 Thank @dergachoff for #113 in v3.0.4 changelog
  • 27af49f Strip leading whitespace in release-notes markdown extraction
  • bf2bc55 Fold v3.0.3 changelog into v3.0.4
  • a923346 Add release tooling and bump CLI to 2.1.8
  • c812d76 feat: wire qoder into the download API allowlist
  • 7cfa775 fix: parseFrontmatter handles CRLF line endings
  • 9a76c7b fix: include qoder in normalizeForHash provider regex
  • c6ca721 docs: add Qoder to README install and supported-tools sections
  • 4f66eb9 feat: add Qoder harness support (closes #76)
  • 5f5e2b0 Release impeccable skill v3.0.4
  • 54f6ccf codex in auto-review became way too autonomous - significantly harden craft/shape flows

Points critiques / risques principaux

sous-section
  1. Sécurité CI — critique moyen/haut : 7e0ce5e ajoute tesslio/skill-review@main avec pull-requests: write. Action tierce non pinée à un SHA/tag immuable → risque supply-chain. Recommandation : pinner à un SHA + Dependabot/Renovate.
  2. Sécurité release tooling — moyen : a923346 construit plusieurs commandes shell via interpolation (git tag, gh release, branches/tags). Recommandation : valider strictement la version semver/tag et préférer execFileSync/argv.
  3. Supply-chain / régression lockfile — moyen : 9a5d0e7 mélange un fix sécurité live avec une grosse régénération pnpm-lock.yaml ajoutant/actualisant beaucoup de dépendances. À séparer et auditer.
  4. Live wrap — risque fonctionnel restant : les fallbacks “first match” quand --text est 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 ; le config_file: AGENTS.md mé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 htmlToMarkdown pour é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 textContent concaté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 endLine multi-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 54d9f051f760af.

`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@main non pinée avec permission pull-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) par execFileSync(argv), valide id et variantId. 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.execPath au 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.mjs81 tests OK.
  • bun run test impossible : bun: command not found.
  • tests/lib/utils.test.js non exécutable sous Node car dépend de bun: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.