issue-review
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseIssue Review
Issue评审
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.
使用专家角色对GitLab或GitHub issue进行全自动多角度评审。该技能会拉取issue上下文,探索相关代码库,运行3轮角色会议(开场陈述、辩论、加权收敛),并直接在issue上发布结构化评审评论——全程无需向用户申请确认。
When to Use This Skill
何时使用该技能
Activate when the user:
- Demande une « revue d'issue » ou « issue review » sur une issue
- Dit « issue-review #42 » ou « issue-review <URL> »
- Veut analyser une issue sous plusieurs angles avant implémentation
- Veut un avis structuré sur la faisabilité, la complétude et les risques d'une issue
当用户出现以下行为时触发:
- 针对某条issue提出「issue评审」需求
- 发送「issue-review #42」或「issue-review <URL>」指令
- 希望在实现前从多个角度分析issue
- 需要关于issue可行性、完整性和风险的结构化意见
Core Principles
核心原则
1. Full Autonomy
1. 完全自主
- The entire pipeline runs without asking any user questions (except for closed issues — see Edge Cases)
- Persona selection is automatic based on issue content analysis
- The review comment is posted directly on the issue
- 整个流程运行无需向用户询问任何问题(已关闭的issue除外,见边界情况)
- 基于issue内容分析自动选择评审角色
- 评审评论直接发布到对应issue上
2. Multi-Angle Analysis
2. 多角度分析
- Personas review feasibility, completeness, risks, and architecture
- 3 full rounds ensure genuine debate and richer analysis
- Each persona brings a genuinely different viewpoint
- 角色从可行性、完整性、风险和架构四个维度评审
- 完整3轮评审确保真实辩论和更丰富的分析结果
- 每个角色都提供完全不同的视角
3. Contextual Depth
3. 上下文深度
- The skill reads the full issue: description, all comments, labels
- If a branch is linked, the branch diff is analyzed
- The existing codebase is explored automatically to give personas informed context
- 技能读取完整issue内容:描述、所有评论、标签
- 如果关联了分支,会分析分支diff
- 自动探索现有代码库,为角色提供信息充分的上下文
4. Analytical Only
4. 仅做分析
- This skill does NOT implement anything
- It produces a review with actionable next steps
- The team reads the analysis and decides what to do
- 该技能不会实现任何功能
- 它输出包含可执行后续步骤的评审报告
- 团队参考分析结果自行决策后续动作
Workflow
工作流程
Step 1: Identify and Fetch the Issue
步骤1:识别并拉取issue
-
Parse the user's input to extract the issue reference:
- Issue number:
#42 - Full URL: or
https://gitlab.example.com/group/project/-/issues/42https://github.com/owner/repo/issues/42 - If no valid issue reference is found, ask the user to provide one
- Issue number:
-
Detect the remote repository type:
- Run to determine if the remote is GitLab or GitHub
git remote -v - Store this for Step 7 (posting the comment)
- Run
-
Fetch the issue details:
- GitLab: — title, description, labels, state
glab issue view <iid> - GitHub: — title, body, labels, state
gh issue view <number>
- GitLab:
-
Fetch all issue comments:
- GitLab: or
glab issue note list <iid>glab api /projects/:id/issues/:iid/notes - GitHub:
gh issue view <number> --comments
- GitLab:
-
Check issue state:
- If the issue is closed, warn the user and ask for confirmation before proceeding (see Edge Cases)
- If the issue is open, proceed normally
-
Check for minimal content (see Edge Cases):
- If the issue has no description or only a one-line title with no meaningful content, skip the meeting and post a short comment listing what's missing
-
解析用户输入提取issue引用:
- Issue编号:
#42 - 完整URL:或
https://gitlab.example.com/group/project/-/issues/42https://github.com/owner/repo/issues/42 - 如果未找到有效的issue引用,要求用户提供
- Issue编号:
-
检测远程仓库类型:
- 运行判断远程仓库是GitLab还是GitHub
git remote -v - 存储该信息用于步骤7(发布评论)
- 运行
-
拉取issue详情:
- GitLab: — 标题、描述、标签、状态
glab issue view <iid> - GitHub: — 标题、正文、标签、状态
gh issue view <number>
- GitLab:
-
拉取所有issue评论:
- GitLab: 或
glab issue note list <iid>glab api /projects/:id/issues/:iid/notes - GitHub:
gh issue view <number> --comments
- GitLab:
-
检查issue状态:
- 如果issue是已关闭状态,警告用户并在继续前请求确认(见边界情况)
- 如果issue是开启状态,正常推进
-
检查最低内容要求(见边界情况):
- 如果issue没有描述,或者只有一行标题没有有效内容,跳过会议,发布简短评论列出缺失的内容
Step 2: Gather Full Context
步骤2:收集完整上下文
Issue Context
Issue上下文
- Issue title, description, and all comments (collected in Step 1)
- Labels and milestones (for domain detection)
- Issue标题、描述和所有评论(步骤1中已收集)
- 标签和里程碑(用于领域识别)
Linked Branch Context
关联分支上下文
- Check for linked branches:
- GitLab: Check the issue for related merge requests via or look for branch references in the issue/comments
glab api /projects/:id/issues/:iid/related_merge_requests - GitHub: Check for linked pull requests via
gh pr list --search "<issue reference>"
- GitLab: Check the issue for related merge requests via
- If a branch exists:
- Fetch the diff: (or the appropriate base branch)
git diff main...<branch> - Include the diff summary and key file changes in the persona context
- Fetch the diff:
- 检查关联分支:
- GitLab: 通过检查issue关联的合并请求,或者在issue/评论中查找分支引用
glab api /projects/:id/issues/:iid/related_merge_requests - GitHub: 通过检查关联的拉取请求
gh pr list --search "<issue reference>"
- GitLab: 通过
- 如果存在关联分支:
- 拉取diff:(或对应的基准分支)
git diff main...<branch> - 将diff摘要和关键文件变更纳入角色上下文
- 拉取diff:
Codebase Context
代码库上下文
- Analyze the issue content to identify which parts of the codebase are relevant:
- File paths, module names, function names, or components mentioned in the issue or comments
- Domain keywords that map to specific directories or files
- Explore the codebase — read relevant files to understand the current state:
- Use Glob and Grep to find related files
- Read the most relevant files (prioritize files explicitly mentioned, then files in related modules)
- Understand existing patterns, architecture, and conventions
- Build a context summary for the personas including:
- Issue content (description + comments)
- Linked branch diff (if any)
- Relevant codebase snippets and architecture overview
- 分析issue内容识别代码库的相关部分:
- Issue或评论中提到的文件路径、模块名、函数名或组件
- 映射到特定目录或文件的领域关键词
- 探索代码库——读取相关文件了解当前状态:
- 使用Glob和Grep查找相关文件
- 读取最相关的文件(优先读取明确提到的文件,其次是相关模块下的文件)
- 理解现有模式、架构和约定
- 为角色构建上下文摘要,包含:
- Issue内容(描述+评论)
- 关联分支diff(如果有)
- 相关代码库片段和架构概览
Step 3: Auto-Select Personas
步骤3:自动选择评审角色
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.mdAnnounce the selected personas and their roles before starting the meeting.
根据issue内容、标签和所属领域自动选择3-4个评审角色,使用以下启发式规则:
| 若主题涉及... | 自动选择的角色 |
|---|---|
| 后端 / API / 数据库 | SOLID Alex (后端), Whiteboard Damien (架构师), EXPLAIN PLAN Isabelle (Oracle DBA) |
| 前端 / UI / UX | Pixel-Perfect Hugo (前端), Figma Fiona (UX/UI), Sprint Zero Sarah (产品负责人), Whiteboard Damien (架构师) |
| 安全 / 认证 / 访问控制 | Paranoid Shug (安全), RGPD Raphaël (数据保护官), SOLID Alex (后端), Whiteboard Damien (架构师) |
| 基础设施 / 部署 / CI-CD | Pipeline Mo (DevOps), SOLID Alex (后端), Whiteboard Damien (架构师) |
| 数据 / 迁移 / ETL | Schema JB (数据), EXPLAIN PLAN Isabelle (Oracle DBA), Whiteboard Damien (架构师) |
| 互操作性 / HL7 / FHIR / HPK | RFC Santiago (互操作性产品负责人), HL7 Victor (互操作性开发), SOLID Alex (后端) |
| 遗留系统 / Uniface / 现代化改造 | Legacy Larry (Uniface), Whiteboard Damien (架构师), SOLID Alex (后端) |
| 测试 / 质量 / 回归 | Edge-Case Nico (QA), SOLID Alex (后端), Pipeline Mo (DevOps) |
| 产品 / 功能 / UX决策 | Sprint Zero Sarah (产品负责人), Pixel-Perfect Hugo (前端), Figma Fiona (UX/UI), Whiteboard Damien (架构师) |
| 医疗 / 临床工作流 | Dr. Workflow Wendy (医疗), Sprint Zero Sarah (产品负责人), RGPD Raphaël (数据保护官) |
| GDPR / 个人数据 / 合规 | RGPD Raphaël (数据保护官), Paranoid Shug (安全), Whiteboard Damien (架构师) |
| BI / 仪表盘 / 报表 / 财务 / 会计 | Dashboard Estelle (财务BI), Pixel-Perfect Hugo (前端), EXPLAIN PLAN Isabelle (Oracle DBA), Whiteboard Damien (架构师) |
| 全栈 / 跨领域主题 | Whiteboard Damien (架构师), SOLID Alex (后端), Sprint Zero Sarah (产品负责人), Edge-Case Nico (QA) |
如果主题覆盖多个领域,选择最相关的3-4个角色。
包含角色、视角和倾向的完整角色库: 参考。
reference/personas.md会议开始前先公布选中的角色及其职责。
Step 4: Run the Review Meeting
步骤4:运行评审会议
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.
会议使用子Agent独立并行运行每个角色,完整运行3轮评审保证深度。
重要提示:使用Agent工具将每个角色作为独立子Agent启动。
Round 1: Opening Statements (Parallel Sub-Agents)
第一轮:开场陈述(并行子Agent)
Launch one sub-agent per persona in parallel using the Agent tool. Each sub-agent receives:
- The issue title and description
- All context gathered (comments, branch diff, codebase snippets)
- The persona's identity prompt
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 and a short description like .
subagent_type: "general-purpose""Review persona: {name}"Collect all positions and present them as quotes:
SOLID Alex (Senior Backend Engineer): "I think..."
使用Agent工具并行为每个角色启动一个子Agent,每个子Agent接收以下信息:
- issue标题和描述
- 收集到的所有上下文(评论、分支diff、代码库片段)
- 角色的身份提示词
子Agent提示词模板:
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.在单条消息中启动所有角色子Agent保证并行运行,使用和类似的简短描述。
subagent_type: "general-purpose""Review persona: {name}"收集所有观点并以引用形式展示:
SOLID Alex (高级后端工程师): "我认为..."
Anti-Groupthink Check
反群体思维检查
After collecting Round 1 responses, evaluate the consensus level:
- Check if all personas converged on the same assessment (same verdict, no meaningful disagreement)
- If consensus is too high (all personas agree with no pushback):
- Launch one additional sub-agent as a devil's advocate:
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. - Include the dissenting view in the analysis
- Launch one additional sub-agent as a devil's advocate:
- If there is already meaningful disagreement: proceed directly to Round 2
收集完第一轮回复后,评估共识程度:
- 检查是否所有角色的评估都趋同(结论一致,无实质性分歧)
- 如果共识度过高(所有角色都同意,没有反对意见):
- 额外启动一个唱反调的子Agent:
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. - 将反对意见纳入分析
- 额外启动一个唱反调的子Agent:
- 如果已经存在实质性分歧: 直接进入第二轮
Round 2: Debate and Challenges (Parallel Sub-Agents)
第二轮:辩论和质疑(并行子Agent)
Launch a second round of parallel sub-agents — one per persona. Each sub-agent receives:
- The issue details
- The full set of opening statements from Round 1 (all personas)
- The persona's identity prompt
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.
启动第二轮并行子Agent——每个角色对应一个,每个子Agent接收以下信息:
- issue详情
- 第一轮所有角色的完整开场陈述
- 角色的身份提示词
第二轮子Agent提示词模板:
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.在单条消息中启动第二轮所有角色子Agent。
本轮需要产生真实的观点碰撞。 如果子Agent全部达成一致,向其中一个Agent追加提示词,要求它对多数观点唱反调。
Round 3: Weighted Convergence
第三轮:加权收敛
After collecting all Round 2 responses, you (the facilitator, not a sub-agent) synthesize the discussion:
-
Weight positions by domain relevance:
- For each persona, assess how central the issue is to their expertise
- A database migration issue: EXPLAIN PLAN Isabelle's position carries more weight than Pixel-Perfect Hugo's
- A UI redesign issue: Pixel-Perfect Hugo's position carries more weight than EXPLAIN PLAN Isabelle's
-
Identify consensus and disagreements:
- Points of agreement across all personas
- Unresolved disagreements — list them explicitly
- Key risks and gaps that emerged from the debate
-
Assess the issue readiness:
- Ready for implementation: Well-defined, feasible, risks are manageable
- Needs adjustments: Feasible but missing details, unclear acceptance criteria, or risks need mitigation
- Needs significant rework: Major gaps, unclear scope, architectural concerns unresolved
-
Compile actionable next steps — concrete checklist items the team can act on
收集完所有第二轮回复后,你(主持人,不是子Agent)综合讨论内容:
-
按领域相关性加权观点:
- 对每个角色,评估issue属于其专业领域的相关程度
- 数据库迁移issue:EXPLAIN PLAN Isabelle的观点权重高于Pixel-Perfect Hugo
- UI重构issue:Pixel-Perfect Hugo的观点权重高于EXPLAIN PLAN Isabelle
-
识别共识和分歧:
- 所有角色一致同意的观点
- 未解决的分歧——明确列出
- 辩论中浮现的核心风险和缺口
-
评估issue就绪状态:
- 可实现: 定义清晰、可行、风险可控
- 需要调整: 可行但缺少细节、验收标准不清晰,或者风险需要缓解
- 需要大量重构: 存在重大缺口、范围不清晰、架构问题未解决
-
整理可执行后续步骤——团队可落地的具体检查项
Step 5: Produce the Review Analysis
步骤5:生成评审分析
Write a structured analysis displayed to the user:
markdown
undefined编写结构化分析展示给用户:
markdown
undefinedRevue d'issue par personas IA
Revue d'issue par personas IA
Issue : #XX — [titre de l'issue]
Participants : [Name (Role)] | [Name (Role)] | [Name (Role)]
Issue : #XX — [titre de l'issue]
Participants : [Name (Role)] | [Name (Role)] | [Name (Role)]
Contexte
Contexte
[Résumé métier de l'issue — ce que l'utilisateur/patient/équipe gagne]
[Résumé métier de l'issue — ce que l'utilisateur/patient/équipe gagne]
Synthèse de la revue
Synthèse de la revue
Faisabilité
Faisabilité
[Assessment: faisable en l'état / faisable avec réserves / nécessite clarification]
[Assessment: faisable en l'état / faisable avec réserves / nécessite clarification]
Complétude
Complétude
[Are acceptance criteria clear? What's missing from the spec?]
[Are acceptance criteria clear? What's missing from the spec?]
Risques identifiés
Risques identifiés
- [Risque 1 en impact métier → Mitigation]
- [Risque 2 en impact métier → Mitigation]
- [Risque 1 en impact métier → Mitigation]
- [Risque 2 en impact métier → Mitigation]
Points techniques à considérer
Points techniques à considérer
[Only when personas surfaced architecture/security/performance concerns — omit section if none]
[Only when personas surfaced architecture/security/performance concerns — omit section if none]
Prochaines étapes recommandées
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]
- [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
Verdict
[One of: ✅ Prête pour implémentation / ⚠️ Nécessite des ajustements avant implémentation / ❌ Nécessite une refonte significative]
undefined[One of: ✅ Prête pour implémentation / ⚠️ Nécessite des ajustements avant implémentation / ❌ Nécessite une refonte significative]
undefinedStep 6: Post to Issue
步骤6:发布到issue
Post the review analysis as a comment on the issue. The comment uses the same structure as Step 5, with a footer.
将评审分析作为评论发布到issue上,评论使用和步骤5相同的结构,加上页脚。
Comment Template (French — PO / Consultant Oriented with Technical Concerns)
评论模板(法语——面向产品负责人/顾问,包含技术关注点)
markdown
undefinedmarkdown
undefinedRevue d'issue par personas IA
Revue d'issue par personas IA
Contexte
Contexte
[Résumé métier de l'issue — ce que l'utilisateur/patient/équipe gagne]
[Résumé métier de l'issue — ce que l'utilisateur/patient/équipe gagne]
Participants
Participants
| Expert | Rôle | Verdict |
|---|---|---|
| [Name] | [Role] | [Position résumée en 1 ligne orientée impact métier] |
| ... | ... | ... |
| Expert | Rôle | Verdict |
|---|---|---|
| [Name] | [Role] | [Position résumée en 1 ligne orientée impact métier] |
| ... | ... | ... |
Synthèse de la revue
Synthèse de la revue
Faisabilité
Faisabilité
[Assessment formulé en termes d'impact métier et de faisabilité technique]
[Assessment formulé en termes d'impact métier et de faisabilité technique]
Complétude
Complétude
[Analyse de la complétude des critères d'acceptation et des cas d'usage décrits]
[Analyse de la complétude des critères d'acceptation et des cas d'usage décrits]
Risques identifiés
Risques identifiés
- [Risque 1 en impact métier → Mitigation proposée]
- [Risque 2 en impact métier → Mitigation proposée]
- [Risque 1 en impact métier → Mitigation proposée]
- [Risque 2 en impact métier → Mitigation proposée]
Points techniques à considérer
Points techniques à considérer
[Uniquement si des préoccupations architecture/sécurité/performance ont émergé — omettre cette section si aucun point technique notable]
[Uniquement si des préoccupations architecture/sécurité/performance ont émergé — omettre cette section si aucun point technique notable]
Prochaines étapes recommandées
Prochaines étapes recommandées
- [Action 1]
- [Action 2]
- [Action 3]
- [Action 1]
- [Action 2]
- [Action 3]
Verdict
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:
- **GitLab:** `glab issue note <iid> --message "<comment>"`
- **GitHub:** `gh issue comment <number> --body "<comment>"`
If posting fails (API error, permission denied):
- Output the full review comment in the conversation so nothing is lost
- Provide a manual command the user can paste to post the comment themselves
- Record the failure in the Run Summary[✅ 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
使用对应工具发布评论:
- **GitLab:** `glab issue note <iid> --message "<comment>"`
- **GitHub:** `gh issue comment <number> --body "<comment>"`
如果发布失败(API错误、权限不足):
- 在对话中输出完整评审评论,避免内容丢失
- 提供用户可以粘贴的手动发布命令
- 在运行摘要中记录失败情况Step 7: Run Summary
步骤7:运行摘要
Always output a structured run summary at the end, regardless of whether the pipeline succeeded or failed.
markdown
undefined无论流程成功或失败,最后始终输出结构化运行摘要。
markdown
undefinedIssue Review — Run Summary
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]
undefined- 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]
undefinedEdge Cases
边界情况
Minimal or Empty Issue
内容极少或为空的issue
If the issue has no description or only a one-line title with no meaningful content:
- Do NOT run the persona meeting — there is not enough content to review
- Post a short comment in French on the issue listing what's missing:
markdown
undefined如果issue没有描述,或者只有一行标题没有有效内容:
- 不要运行角色会议——没有足够内容可供评审
- 在issue上发布法语短评论列出缺失的内容:
markdown
undefinedRevue d'issue — Contenu insuffisant
Revue d'issue — Contenu insuffisant
Cette issue ne contient pas assez d'informations pour réaliser une revue pertinente.
Cette issue ne contient pas assez d'informations pour réaliser une revue pertinente.
Éléments manquants
É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
3. Output the same message in the conversation and stop- 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
3. 在对话中输出相同信息并停止流程Closed Issue
已关闭的issue
If the issue is closed:
- Warn the user: "Cette issue est fermée. Souhaitez-vous quand même lancer la revue ? (utile pour une rétrospective)"
- If the user confirms: proceed normally
- If the user declines or does not respond: stop
如果issue已关闭:
- 警告用户: "该issue已关闭,你是否仍要启动评审?(适用于回顾场景)"
- 如果用户确认: 正常推进流程
- 如果用户拒绝或未回复: 停止流程
Posting Failure
发布失败
If the comment cannot be posted to the issue:
- Output the full review in the conversation
- Provide a pre-formatted manual command
- Record the failure in the Run Summary
如果评论无法发布到issue:
- 在对话中输出完整评审内容
- 提供预格式化的手动命令
- 在运行摘要中记录失败情况
Meeting Quality Rules
会议质量规则
Persona Authenticity
角色真实性
- Each persona speaks consistently with their role and bias
- Personas use concrete examples, not abstract platitudes
- A security engineer talks about attack vectors, not vague "security concerns"
- A product owner talks about user impact and delivery timelines, not code patterns
- 每个角色的发言都符合其角色和倾向
- 角色使用具体示例,而非空泛的套话
- 安全工程师讨论攻击向量,而非模糊的「安全问题」
- 产品负责人讨论用户影响和交付 timeline,而非代码模式
Debate Quality
辩论质量
- At least one persona must disagree with the majority
- Arguments must reference specific trade-offs (performance vs. maintainability, speed vs. safety)
- Avoid false consensus — if everyone agrees too quickly, the anti-groupthink check triggers a devil's advocate
- Personas can change their mind during the debate if convinced
- 至少有一个角色反对多数观点
- 论点必须参考具体的权衡(性能 vs 可维护性,速度 vs 安全性)
- 避免虚假共识——如果所有人过快达成一致,反群体思维检查会触发唱反调角色
- 角色如果被说服,可以在辩论中改变观点
Review Quality
评审质量
- The review must be actionable, not vague
- Risks must include mitigation strategies
- Next steps must be concrete and checkboxable
- The verdict must be one of the three defined levels (ready / needs adjustments / needs rework)
- The analysis is written in French (natural, professional, using "nous")
- 评审内容必须可落地,不能模糊
- 风险必须包含缓解策略
- 后续步骤必须具体,可勾选完成
- 结论必须是三个定义好的级别之一(可实现/需要调整/需要重构)
- 分析使用法语编写(自然、专业,使用第一人称复数「nous」)
Examples
示例
Example 1: Well-Defined Feature Issue
示例1:定义清晰的功能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 #42User: 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 #42Example 2: Issue with Linked Branch
示例2:有关联分支的issue
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 #15User: 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 #15Example 3: Incomplete Issue
示例3:不完整的issue
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 #99User: 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 #99Example 4: Closed Issue (Retrospective)
示例4:已关闭的issue(回顾场景)
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 #30User: 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 #30Important Notes
重要提示
- Never create new labels on GitLab or GitHub. Only use labels that already exist in the project. If no suitable label exists, skip labeling.
- This skill is analytical only — it does NOT implement code, create branches, or create MRs/PRs
- The review comment is always in French, PO/consultant oriented, with technical concerns surfaced when needed
- The codebase is always explored for context, even when no branch is linked
- The meeting runs 3 full rounds (opening + debate + convergence) for review depth
- If the remote type cannot be determined, default to (GitHub)
gh issue comment - The skill supports both GitLab and GitHub issues
- 永远不要在GitLab或GitHub上创建新标签。 仅使用项目中已存在的标签,如果没有合适的标签,跳过打标签操作。
- 该技能仅做分析——不会实现代码、创建分支、或创建MR/PR
- 评审评论始终使用法语,面向产品负责人/顾问,必要时展示技术关注点
- 即使没有关联分支,也始终会探索代码库获取上下文
- 会议完整运行3轮(开场+辩论+收敛)保证评审深度
- 如果无法确定远程仓库类型,默认使用(GitHub)
gh issue comment - 该技能同时支持GitLab和GitHub issue