Révison double de PR

VérifiéPrudence

Exécute pr-review deux fois en parallèle (Claude + Codex), puis fusionne les résultats en catégories : uniques à chaque outil et accordés.

Spar Skills Guide Bot
DeveloppementAvancé
23/07/2026
Claude Code
#code-review#pull-requests#multi-agent#codex-cli#parallel-execution

Recommandé pour

Synthèse automatique

Exécute la skill pr-review deux fois en parallèle — une fois dans la session Claude, une fois via le CLI OpenAI Codex — puis fusionne les constats en trois catégories : propres à Claude, propres à Codex, et partagés, suivies des deux rapports bruts.

Points forts

  • Lance réellement les deux revues en parallèle (Codex en tâche de fond) plutôt que de les enchaîner, ce qui évite une double attente.
  • Conserve mot pour mot le texte et l'étiquette de sévérité de chaque constat, ce qui permet de voir précisément ce qu'un seul agent a repéré.
  • Affiche systématiquement les trois sections (avec `_None._` si vide) et garde les rapports bruts comme piste d'audit de la fusion.
  • Contourne les pièges concrets de `codex exec` : prompt transmis via stdin, `--full-auto` pour le mode non interactif, `--sandbox read-only` pour ne pas toucher à l'arbre de travail.

Limites

  • Suppose que le CLI `codex` est installé et authentifié ; la préflight interrompt la skill sinon, sans repli sur une revue simple.
  • Dépend du chemin exact `.claude/skills/pr-review/SKILL.md` et du format de sortie de cette skill.
  • La fusion des constats correspondants repose sur une appréciation manuelle des fichiers/lignes, donc des doublons partiels peuvent passer entre les mailles.
Quand l'utiliser

À utiliser quand vous voulez un second avis indépendant sur une pull request avant de la merger.

Quand l'éviter

À éviter si le CLI Codex n'est pas installé ou authentifié, ou si une seule revue suffit et que le coût d'un second passage complet n'est pas justifié.

Analyse de sécurité

Prudence
Score qualité84/100

No destructive, obfuscated, or exfiltrating-by-design commands: it pipes a prompt into a read-only sandboxed agent and merges outputs. But it does invoke an external network-connected CLI with auto-approval flags, inherits shell credentials, and stages PR content in world-readable /tmp files, so a caution rating with data-egress caveats is appropriate rather than 'safe'.

Points d'attention
  • •Sends the repository's PR review context (prompt file derived from the local skill plus PR number, and whatever Codex reads from the repo) to OpenAI's Codex CLI — third-party data egress, so private code leaves the machine.
  • •Launches `codex exec --full-auto`, which suppresses interactive approval prompts; blast radius is limited only by the accompanying `--sandbox read-only`, so correctness of that flag matters a lot.
  • •The caveat itself notes Codex 'inherits cwd and shell env', meaning any ambient credentials (GH_TOKEN, cloud keys) are visible to a third-party agent process.
  • •Writes the combined prompt and Codex output to predictable /tmp paths (`/tmp/dual-review-prompt-<N>.md`, `/tmp/dual-review-codex-<N>.md`) that may contain sensitive source/PR content and are readable by other local users on many systems.
  • •Installs/relies on a globally-installed third-party npm package (`@openai/codex`) not declared in allowed-tools.
Comment cette analyse est faite

Exemples

Basic dual review
dual-review PR #142
Second opinion before merge
Run a dual review of PR 87 — I want a second opinion from Codex before I merge this.
Focus on divergent findings
dual-review #301 and tell me which findings only Codex caught that Claude missed.

name: dual-review description: Run pr-review twice in parallel — once in this Claude session, once via OpenAI's Codex CLI — then merge the findings into unique-to-each / agreed-by-both buckets followed by both raw reports. Use when the user says "dual-review PR #N" or wants a second-opinion review. effort: max

You are running the pr-review skill twice — locally as Claude, and remotely via the codex CLI — and merging the results. Be terse. The user wants the union of findings, not two separate reports.

ARGUMENTS: <PR number> (with or without leading #).

Steps

  1. Preflight. Run command -v codex via Bash. If it errors, stop and tell the user to install the OpenAI Codex CLI (npm i -g @openai/codex or equivalent) and authenticate.

  2. Resolve PR number. Strip a leading # if present. Call it <N>.

  3. Build the Codex prompt. Read .claude/skills/pr-review/SKILL.md and append a final line ARGUMENTS: #<N>. Write the combined text to /tmp/dual-review-prompt-<N>.md.

  4. Launch Codex in the background. Use Bash with run_in_background: true. Pipe the prompt via stdin — the pr-review skill starts with --- (YAML frontmatter), which codex's arg parser treats as a flag separator and rejects with exit 2 if passed positionally:

    cat /tmp/dual-review-prompt-<N>.md | \
      codex exec --skip-git-repo-check --sandbox read-only --full-auto - \
      > /tmp/dual-review-codex-<N>.md 2>&1
    

    --full-auto is required for non-interactive background use (otherwise codex blocks on approval prompts). --sandbox read-only keeps codex from touching the working tree. You'll be notified when it finishes. Do not poll.

  5. In parallel, run pr-review yourself by following .claude/skills/pr-review/SKILL.md for PR <N>. Produce the full report (template and all). Hold it in memory; do not print it yet.

  6. When the background task completes, read /tmp/dual-review-codex-<N>.md. If it's empty or errored, skip to step 8 and note the dual leg failed — don't suppress your own findings to fit the template.

  7. Merge. Walk both reports finding-by-finding. Two findings match if they cite the same file.go:line (±a few lines) or describe the same root cause in different words. Preserve each finding's original severity tag ([blocker]/[nit]/[question]) and original wording — do not paraphrase. For agreed-by-both findings, prefer the more specific phrasing of the two and cite both severities if they disagree (e.g. [blocker — Claude] / [nit — Codex]).

  8. Print the merged report in this exact order:

    ## PR #<N> — Dual review
    
    ### Findings unique to Claude
    - **[blocker]** `file.go:42` — …
    
    ### Findings unique to Codex
    - **[blocker]** `file.go:99` — …
    
    ### Findings agreed by both
    - **[blocker]** `file.go:123` — …
    
    ### Description vs. diff
    <one line: union of both reports' findings>
    
    ### Recommendation
    <one short paragraph merging both recommendations>
    
    ---
    
    ### Raw — Claude
    
    <verbatim Claude pr-review output>
    
    ### Raw — Codex
    
    <verbatim Codex pr-review output>
    

    If a bucket is empty, write _None._ rather than omitting the header — the user wants to see at a glance whether each agent found something the other missed.

Don'ts

  • Don't drop a finding because the other side missed it. Bucketing exists precisely to surface those.
  • Don't paraphrase severity tags or finding text in the buckets — copy them verbatim. Only the trailing Description vs. diff and Recommendation are synthesized.
  • Don't post the review (no gh pr review, no comments). Just print.
  • Don't strip the raw reports — they're the audit trail for the merge.
  • Don't run codex exec in the foreground; it blocks long enough that running pr-review yourself in parallel is the whole point.

Caveats

  • Codex inherits cwd and shell env, so gh and git auth carry over. If gh auth status fails for Claude, it'll fail for Codex too.
  • Codex output is whatever its model decides to produce; it may not follow the pr-review template exactly. Bucket what's there; don't try to rewrite it.
  • If the two reports disagree on a fact (e.g. one claims a line panics, the other claims it's safe), put it in unique to <agent> rather than agreed-by-both. Don't arbitrate — that's the user's job.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/dual-pr-review-mrx3xzsg' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/dual-pr-review-mrx3xzsg/download' --output '.skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md.part' && mv '.skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md.part' '.skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md' && test -s '.skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/dual-review' && cp -R '.skill-downloads/dual-pr-review-mrx3xzsg' '.claude/skills/dual-review'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/dual-pr-review-mrx3xzsg'

openskills read 'dual-pr-review-mrx3xzsg'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/dual-pr-review-mrx3xzsg/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires