issue-review

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Issue 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

  1. Parse the user's input to extract the issue reference:
    • Issue number:
      #42
    • Full URL:
      https://gitlab.example.com/group/project/-/issues/42
      or
      https://github.com/owner/repo/issues/42
    • If no valid issue reference is found, ask the user to provide one
  2. Detect the remote repository type:
    • Run
      git remote -v
      to determine if the remote is GitLab or GitHub
    • Store this for Step 7 (posting the comment)
  3. Fetch the issue details:
    • GitLab:
      glab issue view <iid>
      — title, description, labels, state
    • GitHub:
      gh issue view <number>
      — title, body, labels, state
  4. Fetch all issue comments:
    • GitLab:
      glab issue note list <iid>
      or
      glab api /projects/:id/issues/:iid/notes
    • GitHub:
      gh issue view <number> --comments
  5. 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
  6. 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
  1. 解析用户输入提取issue引用:
    • Issue编号:
      #42
    • 完整URL:
      https://gitlab.example.com/group/project/-/issues/42
      https://github.com/owner/repo/issues/42
    • 如果未找到有效的issue引用,要求用户提供
  2. 检测远程仓库类型:
    • 运行
      git remote -v
      判断远程仓库是GitLab还是GitHub
    • 存储该信息用于步骤7(发布评论)
  3. 拉取issue详情:
    • GitLab:
      glab issue view <iid>
      — 标题、描述、标签、状态
    • GitHub:
      gh issue view <number>
      — 标题、正文、标签、状态
  4. 拉取所有issue评论:
    • GitLab:
      glab issue note list <iid>
      glab api /projects/:id/issues/:iid/notes
    • GitHub:
      gh issue view <number> --comments
  5. 检查issue状态:
    • 如果issue是已关闭状态,警告用户并在继续前请求确认(见边界情况)
    • 如果issue是开启状态,正常推进
  6. 检查最低内容要求(见边界情况):
    • 如果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

关联分支上下文

  1. Check for linked branches:
    • GitLab: Check the issue for related merge requests via
      glab api /projects/:id/issues/:iid/related_merge_requests
      or look for branch references in the issue/comments
    • GitHub: Check for linked pull requests via
      gh pr list --search "<issue reference>"
  2. If a branch exists:
    • Fetch the diff:
      git diff main...<branch>
      (or the appropriate base branch)
    • Include the diff summary and key file changes in the persona context
  1. 检查关联分支:
    • GitLab: 通过
      glab api /projects/:id/issues/:iid/related_merge_requests
      检查issue关联的合并请求,或者在issue/评论中查找分支引用
    • GitHub: 通过
      gh pr list --search "<issue reference>"
      检查关联的拉取请求
  2. 如果存在关联分支:
    • 拉取diff:
      git diff main...<branch>
      (或对应的基准分支)
    • 将diff摘要和关键文件变更纳入角色上下文

Codebase Context

代码库上下文

  1. 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
  2. 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
  3. Build a context summary for the personas including:
    • Issue content (description + comments)
    • Linked branch diff (if any)
    • Relevant codebase snippets and architecture overview
  1. 分析issue内容识别代码库的相关部分:
    • Issue或评论中提到的文件路径、模块名、函数名或组件
    • 映射到特定目录或文件的领域关键词
  2. 探索代码库——读取相关文件了解当前状态:
    • 使用Glob和Grep查找相关文件
    • 读取最相关的文件(优先读取明确提到的文件,其次是相关模块下的文件)
    • 理解现有模式、架构和约定
  3. 为角色构建上下文摘要,包含:
    • 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éesSOLID Alex (Backend), Whiteboard Damien (Architecte), EXPLAIN PLAN Isabelle (DBA Oracle)
Frontend / UI / UXPixel-Perfect Hugo (Frontend), Figma Fiona (UX/UI), Sprint Zero Sarah (PO), Whiteboard Damien (Architecte)
Sécurité / auth / contrôle d'accèsParanoid Shug (Sécurité), RGPD Raphaël (DPO), SOLID Alex (Backend), Whiteboard Damien (Architecte)
Infrastructure / déploiement / CI-CDPipeline Mo (DevOps), SOLID Alex (Backend), Whiteboard Damien (Architecte)
Données / migration / ETLSchema JB (Data), EXPLAIN PLAN Isabelle (DBA Oracle), Whiteboard Damien (Architecte)
Interopérabilité / HL7 / FHIR / HPKRFC Santiago (PO Interop), HL7 Victor (Dev Interop), SOLID Alex (Backend)
Legacy / Uniface / modernisationLegacy Larry (Uniface), Whiteboard Damien (Architecte), SOLID Alex (Backend)
Tests / qualité / régressionEdge-Case Nico (QA), SOLID Alex (Backend), Pipeline Mo (DevOps)
Produit / fonctionnalité / décision UXSprint Zero Sarah (PO), Pixel-Perfect Hugo (Frontend), Figma Fiona (UX/UI), Whiteboard Damien (Architecte)
Santé / workflows cliniquesDr. 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 transverseWhiteboard 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.
根据issue内容、标签和所属领域自动选择3-4个评审角色,使用以下启发式规则:
若主题涉及...自动选择的角色
后端 / API / 数据库SOLID Alex (后端), Whiteboard Damien (架构师), EXPLAIN PLAN Isabelle (Oracle DBA)
前端 / UI / UXPixel-Perfect Hugo (前端), Figma Fiona (UX/UI), Sprint Zero Sarah (产品负责人), Whiteboard Damien (架构师)
安全 / 认证 / 访问控制Paranoid Shug (安全), RGPD Raphaël (数据保护官), SOLID Alex (后端), Whiteboard Damien (架构师)
基础设施 / 部署 / CI-CDPipeline Mo (DevOps), SOLID Alex (后端), Whiteboard Damien (架构师)
数据 / 迁移 / ETLSchema JB (数据), EXPLAIN PLAN Isabelle (Oracle DBA), Whiteboard Damien (架构师)
互操作性 / HL7 / FHIR / HPKRFC 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:
  1. The issue title and description
  2. All context gathered (comments, branch diff, codebase snippets)
  3. 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
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..."
使用Agent工具并行为每个角色启动一个子Agent,每个子Agent接收以下信息:
  1. issue标题和描述
  2. 收集到的所有上下文(评论、分支diff、代码库片段)
  3. 角色的身份提示词
子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:
  1. Check if all personas converged on the same assessment (same verdict, no meaningful disagreement)
  2. 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
  3. If there is already meaningful disagreement: proceed directly to Round 2
收集完第一轮回复后,评估共识程度:
  1. 检查是否所有角色的评估都趋同(结论一致,无实质性分歧)
  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.
    • 将反对意见纳入分析
  3. 如果已经存在实质性分歧: 直接进入第二轮

Round 2: Debate and Challenges (Parallel Sub-Agents)

第二轮:辩论和质疑(并行子Agent)

Launch a second round of parallel sub-agents — one per persona. Each sub-agent receives:
  1. The issue details
  2. The full set of opening statements from Round 1 (all personas)
  3. 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接收以下信息:
  1. issue详情
  2. 第一轮所有角色的完整开场陈述
  3. 角色的身份提示词
第二轮子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:
  1. 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
  2. Identify consensus and disagreements:
    • Points of agreement across all personas
    • Unresolved disagreements — list them explicitly
    • Key risks and gaps that emerged from the debate
  3. 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
  4. Compile actionable next steps — concrete checklist items the team can act on
收集完所有第二轮回复后,(主持人,不是子Agent)综合讨论内容:
  1. 按领域相关性加权观点:
    • 对每个角色,评估issue属于其专业领域的相关程度
    • 数据库迁移issue:EXPLAIN PLAN Isabelle的观点权重高于Pixel-Perfect Hugo
    • UI重构issue:Pixel-Perfect Hugo的观点权重高于EXPLAIN PLAN Isabelle
  2. 识别共识和分歧:
    • 所有角色一致同意的观点
    • 未解决的分歧——明确列出
    • 辩论中浮现的核心风险和缺口
  3. 评估issue就绪状态:
    • 可实现: 定义清晰、可行、风险可控
    • 需要调整: 可行但缺少细节、验收标准不清晰,或者风险需要缓解
    • 需要大量重构: 存在重大缺口、范围不清晰、架构问题未解决
  4. 整理可执行后续步骤——团队可落地的具体检查项

Step 5: Produce the Review Analysis

步骤5:生成评审分析

Write a structured analysis displayed to the user:
markdown
undefined
编写结构化分析展示给用户:
markdown
undefined

Revue 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]
undefined

Step 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
undefined
markdown
undefined

Revue 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

ExpertRôleVerdict
[Name][Role][Position résumée en 1 ligne orientée impact métier]
.........
ExpertRôleVerdict
[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
undefined

Issue 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]
undefined

Edge Cases

边界情况

Minimal or Empty Issue

内容极少或为空的issue

If the issue has no description or only a one-line title with no meaningful content:
  1. Do NOT run the persona meeting — there is not enough content to review
  2. Post a short comment in French on the issue listing what's missing:
markdown
undefined
如果issue没有描述,或者只有一行标题没有有效内容:
  1. 不要运行角色会议——没有足够内容可供评审
  2. 在issue上发布法语短评论列出缺失的内容:
markdown
undefined

Revue 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:
  1. Warn the user: "Cette issue est fermée. Souhaitez-vous quand même lancer la revue ? (utile pour une rétrospective)"
  2. If the user confirms: proceed normally
  3. If the user declines or does not respond: stop
如果issue已关闭:
  1. 警告用户: "该issue已关闭,你是否仍要启动评审?(适用于回顾场景)"
  2. 如果用户确认: 正常推进流程
  3. 如果用户拒绝或未回复: 停止流程

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 #42
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

Example 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 #15
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

Example 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 #99
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

Example 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 #30
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

Important 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
    gh issue comment
    (GitHub)
  • The skill supports both GitLab and GitHub issues
  • 永远不要在GitLab或GitHub上创建新标签。 仅使用项目中已存在的标签,如果没有合适的标签,跳过打标签操作。
  • 该技能仅做分析——不会实现代码、创建分支、或创建MR/PR
  • 评审评论始终使用法语,面向产品负责人/顾问,必要时展示技术关注点
  • 即使没有关联分支,也始终会探索代码库获取上下文
  • 会议完整运行3轮(开场+辩论+收敛)保证评审深度
  • 如果无法确定远程仓库类型,默认使用
    gh issue comment
    (GitHub)
  • 该技能同时支持GitLab和GitHub issue