skills/issue-review/SKILL.md
Lance une revue d'issue automatique avec des personas experts sélectionnés automatiquement, analyse la faisabilité, la complétude, les risques et l'architecture, puis publie un rapport structuré directement sur l'issue — le tout sans intervention de l'utilisateur.
npx skillsauth add dedalus-erp-pas/foundation-skills issue-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a fully autonomous multi-angle review of a GitLab or GitHub issue using expert personas. The skill fetches issue context, explores the relevant codebase, runs a 3-round persona meeting (opening statements, debate, weighted convergence), and posts a structured review comment directly on the issue — all without asking the user for confirmation.
brew install ghbrew install glabActivate when the user:
Parse the user's input to extract the issue reference:
#42https://gitlab.example.com/group/project/-/issues/42 or https://github.com/owner/repo/issues/42Detect the remote repository type:
git remote -v to determine if the remote is GitLab or GitHubFetch the issue details:
glab issue view <iid> — title, description, labels, stategh issue view <number> — title, body, labels, stateFetch all issue comments:
glab issue note list <iid> or glab api /projects/:id/issues/:iid/notesgh issue view <number> --commentsCheck issue state:
Check for minimal content (see Edge Cases):
glab api /projects/:id/issues/:iid/related_merge_requests or look for branch references in the issue/commentsgh pr list --search "<issue reference>"git diff main...<branch> (or the appropriate base branch)Automatically select 3-4 personas based on the issue content, labels, and domain. Use these heuristics:
| Le sujet concerne... | Personas auto-sélectionnés | |---------------------|---------------------| | Backend / API / base de données | SOLID Alex (Backend), Whiteboard Damien (Architecte), EXPLAIN PLAN Isabelle (DBA Oracle) | | Frontend / UI / UX | Pixel-Perfect Hugo (Frontend), Figma Fiona (UX/UI), Sprint Zero Sarah (PO), Whiteboard Damien (Architecte) | | Sécurité / auth / contrôle d'accès | Paranoid Shug (Sécurité), RGPD Raphaël (DPO), SOLID Alex (Backend), Whiteboard Damien (Architecte) | | Infrastructure / déploiement / CI-CD | Pipeline Mo (DevOps), SOLID Alex (Backend), Whiteboard Damien (Architecte) | | Données / migration / ETL | Schema JB (Data), EXPLAIN PLAN Isabelle (DBA Oracle), Whiteboard Damien (Architecte) | | Interopérabilité / HL7 / FHIR / HPK | RFC Santiago (PO Interop), HL7 Victor (Dev Interop), SOLID Alex (Backend) | | Legacy / Uniface / modernisation | Legacy Larry (Uniface), Whiteboard Damien (Architecte), SOLID Alex (Backend) | | Tests / qualité / régression | Edge-Case Nico (QA), SOLID Alex (Backend), Pipeline Mo (DevOps) | | Produit / fonctionnalité / décision UX | Sprint Zero Sarah (PO), Pixel-Perfect Hugo (Frontend), Figma Fiona (UX/UI), Whiteboard Damien (Architecte) | | Santé / workflows cliniques | Dr. Workflow Wendy (Santé), Sprint Zero Sarah (PO), RGPD Raphaël (DPO) | | RGPD / données personnelles / conformité | RGPD Raphaël (DPO), Paranoid Shug (Sécurité), Whiteboard Damien (Architecte) | | BI / tableaux de bord / reporting / finance / comptabilité | Dashboard Estelle (BI Finance), Pixel-Perfect Hugo (Frontend), EXPLAIN PLAN Isabelle (DBA Oracle), Whiteboard Damien (Architecte) | | Full-stack / sujet transverse | Whiteboard Damien (Architecte), SOLID Alex (Backend), Sprint Zero Sarah (PO), Edge-Case Nico (QA) |
Si le sujet couvre plusieurs domaines, choisir les 3-4 personas les plus pertinents.
Pool complet des personas avec rôles, perspectives et biais : see reference/personas.md.
Announce the selected personas and their roles before starting the meeting.
The meeting uses sub-agents to run each persona independently and in parallel. The review meeting runs 3 full rounds for depth.
IMPORTANT: Use the Agent tool to launch each persona as a separate sub-agent.
Launch one sub-agent per persona in parallel using the Agent tool. Each sub-agent receives:
Sub-agent prompt template:
You are {name}, a {role}.
Your perspective: {perspective}
Your natural bias: {bias}
You are reviewing an issue before implementation. Here is the issue:
**Title:** {issue_title}
**Description:** {issue_description}
**Comments:** {issue_comments}
Codebase context:
{codebase_context}
{branch_diff_context_if_any}
As {name}, provide your review:
1. **Feasibility:** Is this issue feasible as described? What's missing or unclear?
2. **Risks:** What are the top 2-3 risks? Be specific about failure scenarios from your domain.
3. **Completeness:** Are acceptance criteria clear enough to implement? What questions would you ask the PO?
4. **Architecture/Design:** How should this be approached technically? What patterns or constraints apply?
5. **Pushback:** What would you challenge from other typical perspectives?
Stay fully in character. Be concise and actionable. Use concrete examples, not abstract platitudes.
This is a research task — do NOT write or edit any files.
Launch ALL persona sub-agents in a single message so they run in parallel. Use subagent_type: "general-purpose" and a short description like "Review persona: {name}".
Collect all positions and present them as quotes:
SOLID Alex (Senior Backend Engineer): "I think..."
After collecting Round 1 responses, evaluate the consensus level:
You are a devil's advocate reviewing an issue.
All reviewers agreed on this assessment: {consensus_summary}
Your job: find the strongest possible argument AGAINST this consensus.
- What risk did nobody mention?
- What assumption are they all making that might be false?
- What edge case or failure mode was dismissed too quickly?
Be specific and concrete. Reference real failure scenarios.
This is a research task — do NOT write or edit any files.
Launch a second round of parallel sub-agents — one per persona. Each sub-agent receives:
Sub-agent prompt template for Round 2:
You are {name}, a {role}.
Your perspective: {perspective}
Your natural bias: {bias}
You are in a review meeting about this issue:
**Title:** {issue_title}
Here are the opening statements from all reviewers:
{all_opening_statements}
As {name}, react to the other reviewers' positions:
1. Which assessments do you agree with and why?
2. Which assessments do you challenge? Be specific about what's wrong or missing.
3. What risks or gaps have the others missed?
4. Have any of the other statements changed your assessment? If so, how?
5. State your updated verdict: is this issue ready for implementation, needs adjustments, or needs a rethink?
Be direct and create genuine debate. Challenge assumptions. Reference specific points from the other statements. It's OK to disagree strongly. It's also OK to change your mind if convinced.
This is a research task — do NOT write or edit any files.
Launch ALL persona sub-agents in a single message for Round 2.
This round should produce genuine tension. If the sub-agents all agree, add a follow-up prompt to one agent asking it to play devil's advocate on the majority position.
After collecting all Round 2 responses, you (the facilitator, not a sub-agent) synthesize the discussion:
Weight positions by domain relevance:
Identify consensus and disagreements:
Assess the issue readiness:
Compile actionable next steps — concrete checklist items the team can act on
Write a structured analysis displayed to the user:
## Revue d'issue par personas IA
**Issue :** #XX — [titre de l'issue]
**Participants :** [Name (Role)] | [Name (Role)] | [Name (Role)]
### Contexte
[Résumé métier de l'issue — ce que l'utilisateur/patient/équipe gagne]
### Synthèse de la revue
#### Faisabilité
[Assessment: faisable en l'état / faisable avec réserves / nécessite clarification]
#### Complétude
[Are acceptance criteria clear? What's missing from the spec?]
#### Risques identifiés
- [Risque 1 en impact métier → Mitigation]
- [Risque 2 en impact métier → Mitigation]
#### Points techniques à considérer
[Only when personas surfaced architecture/security/performance concerns — omit section if none]
### Prochaines étapes recommandées
- [ ] [Action 1 — e.g., "Préciser les critères d'acceptation pour le cas X"]
- [ ] [Action 2 — e.g., "Valider l'impact sur le module Y avec l'équipe"]
- [ ] [Action 3]
### Verdict
[One of: ✅ Prête pour implémentation / ⚠️ Nécessite des ajustements avant implémentation / ❌ Nécessite une refonte significative]
Post the review analysis as a comment on the issue. The comment uses the same structure as Step 5, with a footer.
## Revue d'issue par personas IA
### Contexte
[Résumé métier de l'issue — ce que l'utilisateur/patient/équipe gagne]
### Participants
| Expert | Rôle | Verdict |
|--------|------|---------|
| [Name] | [Role] | [Position résumée en 1 ligne orientée impact métier] |
| ... | ... | ... |
### Synthèse de la revue
#### Faisabilité
[Assessment formulé en termes d'impact métier et de faisabilité technique]
#### Complétude
[Analyse de la complétude des critères d'acceptation et des cas d'usage décrits]
#### Risques identifiés
- [Risque 1 en impact métier → Mitigation proposée]
- [Risque 2 en impact métier → Mitigation proposée]
#### Points techniques à considérer
[Uniquement si des préoccupations architecture/sécurité/performance ont émergé — omettre cette section si aucun point technique notable]
### Prochaines étapes recommandées
- [ ] [Action 1]
- [ ] [Action 2]
- [ ] [Action 3]
### Verdict
[✅ Prête pour implémentation / ⚠️ Nécessite des ajustements avant implémentation / ❌ Nécessite une refonte significative]
---
_Revue générée automatiquement par IA_
Post the comment using the appropriate tool:
glab issue note <iid> --message "<comment>"gh issue comment <number> --body "<comment>"If posting fails (API error, permission denied):
Always output a structured run summary at the end, regardless of whether the pipeline succeeded or failed.
### Issue Review — Run Summary
- **Issue :** #XX — [titre]
- **Remote :** GitLab / GitHub
- **Personas :** [Name (Role)] | [Name (Role)] | [Name (Role)]
- **Rounds :** 3 (ouverture + débat + convergence)
- **Anti-groupthink :** déclenché / non nécessaire
- **Verdict :** ✅ Prête / ⚠️ Ajustements / ❌ Refonte
- **Commentaire :** publié (#XX) / échec ([raison])
- **Durée totale :** [durée wall-clock]
If the issue has no description or only a one-line title with no meaningful content:
## Revue d'issue — Contenu insuffisant
Cette issue ne contient pas assez d'informations pour réaliser une revue pertinente.
### Éléments manquants
- [ ] Description détaillée du besoin ou du problème
- [ ] Critères d'acceptation
- [ ] Contexte métier (qui est impacté, quel workflow)
- [ ] [Any other specific gaps detected]
Merci de compléter l'issue puis de relancer la revue.
---
_Revue générée automatiquement par IA_
If the issue is closed:
If the comment cannot be posted to the issue:
User: issue-review #42
→ Fetch issue #42 (feature: add patient notification system)
→ Fetch all comments (3 comments with PO clarifications)
→ No linked branch
→ Explore codebase: notification module, patient service, event system
→ Auto-select: SOLID Alex (Backend), Whiteboard Damien (Architecte), Sprint Zero Sarah (PO), Paranoid Shug (Sécurité)
→ Run 3-round review meeting
→ Verdict: ⚠️ Nécessite des ajustements (missing acceptance criteria for notification preferences)
→ Post review comment on issue #42
User: issue-review https://github.com/org/repo/issues/15
→ Fetch issue #15 (bug: patient search returns duplicates)
→ Fetch comments (1 comment with reproduction steps)
→ Linked branch: fix/patient-search-duplicates — fetch diff
→ Explore codebase: search service, patient repository, index configuration
→ Auto-select: SOLID Alex (Backend), EXPLAIN PLAN Isabelle (DBA), Edge-Case Nico (QA)
→ Run 3-round review meeting
→ Verdict: ✅ Prête pour implémentation
→ Post review comment on issue #15
User: issue-review #99
→ Fetch issue #99 (title only: "Fix the thing")
→ No description, no comments
→ Skip meeting — post "contenu insuffisant" comment
→ List missing elements on issue #99
User: issue-review #30
→ Fetch issue #30 (closed)
→ Warn user: "Cette issue est fermée. Souhaitez-vous quand même lancer la revue ?"
→ User confirms
→ Proceed with full review pipeline
→ Post review comment on issue #30
gh issue comment (GitHub)databases
Exécute des requêtes SQL en lecture seule sur plusieurs bases de données PostgreSQL. À utiliser pour : (1) interroger des bases PostgreSQL, (2) explorer les schémas/tables, (3) exécuter des requêtes SELECT pour l'analyse de données, (4) vérifier le contenu des bases. Supporte plusieurs connexions avec descriptions pour une sélection automatique intelligente. Bloque toutes les opérations d'écriture (INSERT, UPDATE, DELETE, DROP, etc.) par sécurité.
development
Automatisation complète du navigateur et tests web avec Playwright. Détecte automatiquement les serveurs de développement, gère le cycle de vie des serveurs, écrit des scripts de test propres dans /tmp. Tester des pages, remplir des formulaires, capturer des screenshots, vérifier le responsive design, valider l'UX, tester les flux de connexion, vérifier les liens, déboguer des webapps dynamiques, automatiser toute tâche navigateur. À utiliser quand l'utilisateur veut tester des sites web, automatiser des interactions navigateur, valider des fonctionnalités web ou effectuer tout test basé sur le navigateur.
documentation
Boîte à outils complète pour la manipulation de PDF : extraction de texte et tableaux, création de nouveaux PDF, fusion/découpage de documents et gestion de formulaires. Quand Claude doit remplir un formulaire PDF ou traiter, générer ou analyser des documents PDF de manière programmatique et à grande échelle.
testing
Lance une réunion simulée avec plusieurs personas experts pour analyser un sujet sous des perspectives diverses, prendre une décision et proposer une solution avant implémentation. Peut optionnellement publier l'analyse de la réunion sur une issue GitLab ou GitHub liée.