rtk-triage
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese/rtk-triage
/rtk-triage
Orchestrateur de triage RTK. Fusionne issue-triage + pr-triage et produit une analyse croisée.
RTK分类处理协调器。整合issue-triage与pr-triage并生成交叉分析报告。
Quand utiliser
适用场景
- Hebdomadaire ou avant chaque sprint
- Quand le backlog PR/issues grossit rapidement
- Pour identifier les doublons avant de reviewer
- 每周执行或每个sprint前
- PR/issue待办列表快速增长时
- 评审前识别重复内容时
Workflow en 4 phases
四阶段工作流程
Phase 0 — Préconditions
阶段0 — 前置条件
bash
git rev-parse --is-inside-work-tree
gh auth statusVérifier que la date actuelle est connue (utiliser ).
date +%Y-%m-%dbash
git rev-parse --is-inside-work-tree
gh auth status确认当前日期已知(使用)。
date +%Y-%m-%dPhase 1 — Data gathering (parallèle)
阶段1 — 数据收集(并行)
Lancer les deux collectes simultanément :
Issues :
bash
gh repo view --json nameWithOwner -q .nameWithOwner
gh issue list --state open --limit 150 \
--json number,title,author,createdAt,updatedAt,labels,assignees,body
gh issue list --state closed --limit 20 \
--json number,title,labels,closedAt
gh api "repos/{owner}/{repo}/collaborators" --jq '.[].login'PRs :
bash
undefined同时启动两项数据收集任务:
Issues :
bash
gh repo view --json nameWithOwner -q .nameWithOwner
gh issue list --state open --limit 150 \
--json number,title,author,createdAt,updatedAt,labels,assignees,body
gh issue list --state closed --limit 20 \
--json number,title,labels,closedAt
gh api "repos/{owner}/{repo}/collaborators" --jq '.[].login'PRs :
bash
undefinedFetcher toutes les PRs ouvertes — paginer si nécessaire (gh limite à 200 par appel)
获取所有开放状态的PR — 必要时分页(gh单次调用限制为200条)
gh pr list --state open --limit 200
--json number,title,author,createdAt,updatedAt,additions,deletions,changedFiles,isDraft,mergeable,reviewDecision,statusCheckRollup,body
--json number,title,author,createdAt,updatedAt,additions,deletions,changedFiles,isDraft,mergeable,reviewDecision,statusCheckRollup,body
gh pr list --state open --limit 200
--json number,title,author,createdAt,updatedAt,additions,deletions,changedFiles,isDraft,mergeable,reviewDecision,statusCheckRollup,body
--json number,title,author,createdAt,updatedAt,additions,deletions,changedFiles,isDraft,mergeable,reviewDecision,statusCheckRollup,body
Si le repo a >200 PRs ouvertes, relancer avec --search pour paginer :
如果仓库开放PR数量>200,使用--search参数重新启动以分页:
gh pr list --state open --limit 200 --search "is:pr is:open sort:updated-desc" ...
gh pr list --state open --limit 200 --search "is:pr is:open sort:updated-desc" ...
Pour chaque PR, récupérer les fichiers modifiés (nécessaire pour overlap detection)
为每个PR获取修改的文件(用于重复覆盖检测)
Prioriser les PRs candidates (même domaine, même auteur)
优先处理候选PR(相同领域、同一作者)
gh pr view {num} --json files --jq '[.files[].path] | join(",")'
---gh pr view {num} --json files --jq '[.files[].path] | join(",")'
---Phase 2 — Triage individuel
阶段2 — 单独分类处理
Exécuter les analyses de et séparément (même logique que les skills individuels) pour produire :
/issue-triage/pr-triageIssues :
- Catégorisation (Bug/Feature/Enhancement/Question/Duplicate)
- Risque (Rouge/Jaune/Vert)
- Staleness (>30j)
- Map via scan
issue_number → [PR numbers],fixes #N,closes #Nresolves #N
PRs :
- Taille (XS/S/M/L/XL)
- CI status (clean/dirty)
- Nos PRs vs externes
- Overlaps (>50% fichiers communs entre 2 PRs)
- Clusters (auteur avec 3+ PRs)
Afficher les tableaux standards de chaque skill (voir SKILL.md de issue-triage et pr-triage pour le format exact).
分别执行与的分析逻辑(与单独技能逻辑一致),生成以下结果:
/issue-triage/pr-triageIssues :
- 分类(Bug/Feature/Enhancement/Question/Duplicate)
- 风险等级(红/黄/绿)
- 停滞状态(超过30天)
- 通过扫描、
fixes #N、closes #N映射resolves #Nissue_number → [PR numbers]
PRs :
- 规模(XS/S/M/L/XL)
- CI状态(clean/dirty)
- 内部PR vs 外部PR
- 重复覆盖(两个PR间文件重叠>50%)
- 集群(同一作者拥有3个及以上PR)
显示各技能对应的标准表格(详见issue-triage与pr-triage的SKILL.md获取精确格式)。
Phase 3 — Analyse croisée (cœur de ce skill)
阶段3 — 交叉分析(本技能核心价值)
C'est ici que ce skill apporte de la valeur au-delà des deux skills individuels.
此阶段是本技能区别于两个单独技能的增值环节。
3.1 Double couverture — 2 PRs pour 1 issue
3.1 重复覆盖 — 1个Issue对应2个PR
Pour chaque issue liée à ≥2 PRs (via scan des bodies + overlap fichiers) :
| Issue | PR1 (infos) | PR2 (infos) | Verdict recommandé |
|---|---|---|---|
| #N (titre) | PR#X — auteur, taille, CI | PR#Y — auteur, taille, CI | Garder la plus ciblée. Fermer/coordonner l'autre |
Règle de verdict :
- Préférer la plus petite (XS < S < M) si même scope
- Préférer CI clean sur CI dirty
- Préférer "nos PRs" si l'une est interne
- Si overlap de fichiers >80% → conflit quasi-certain, signaler
针对每个关联≥2个PR的Issue(通过扫描内容+文件重叠):
| Issue | PR1(信息) | PR2(信息) | 推荐结论 |
|---|---|---|---|
| #N(标题) | PR#X — 作者、规模、CI状态 | PR#Y — 作者、规模、CI状态 | 保留针对性更强的PR,关闭/协调另一个 |
结论规则:
- 若范围相同,优先选择规模更小的PR(XS < S < M)
- 优先选择CI状态为clean的PR
- 若其中一个是内部PR,优先选择内部PR
- 若文件重叠>80% → 几乎必然存在冲突,需标记
3.2 Trous de couverture sécurité
3.2 安全覆盖漏洞
Pour chaque issue rouge (#640-type security review) :
- Lister les sous-findings mentionnés dans le body
- Croiser avec les PRs existantes (mots-clés dans titre/body)
- Identifier les findings sans PR
Format :
undefined针对每个红色等级的Issue(#640类型安全评审):
- 列出内容中提及的子发现项
- 与现有PR交叉比对(标题/内容中的关键词)
- 识别无对应PR的发现项
格式:
undefinedIssue #N — security review (finding par finding)
Issue #N — 安全评审(按发现项逐一列出)
| Finding | PR associée | Status |
|---|---|---|
| Description finding 1 | PR#X | En review |
| Description finding critique | AUCUNE | ⚠️ Trou |
undefined| 发现项 | 关联PR | 状态 |
|---|---|---|
| 发现项1描述 | PR#X | 评审中 |
| 关键发现项描述 | 无 | ⚠️ 漏洞 |
undefined3.3 P0/P1 bugs sans PR
3.3 无PR的P0/P1级Bug
Issues labelisées P0 ou P1 (ou mots-clés : "crash", "truncat", "cap", "hardcoded") sans aucune PR liée.
Format :
undefined标记为P0或P0级的Issue(或包含关键词:"crash"、"truncat"、"cap"、"hardcoded")且无任何关联PR。
格式:
undefinedBugs critiques sans PR
无PR的关键Bug
| Issue | Titre | Pattern commun | Effort estimé |
|---|
Chercher un pattern commun (ex: "cap hardcodé", "exit code perdu") — si 3+ bugs partagent un pattern, suggérer un sprint groupé.| Issue | 标题 | 共性模式 | 预估工作量 |
|---|
查找共性模式(例如:"硬编码cap"、"丢失退出码")—— 若3个及以上Bug存在相同模式,建议集中安排sprint处理。3.4 Nos PRs dirty — causes probables
3.4 内部脏PR — 可能原因
Pour chaque PR interne avec CI dirty ou CONFLICTING :
- Vérifier si un autre PR touche les mêmes fichiers
- Vérifier si un merge récent sur develop peut expliquer le conflit
- Recommander : rebase, fermeture, ou attente
Format :
undefined针对每个CI状态为dirty或CONFLICTING的内部PR:
- 检查是否有其他PR修改相同文件
- 检查develop分支近期的合并是否导致冲突
- 建议操作:rebase、关闭或等待
格式:
undefinedNos PRs dirty
内部脏PR
| PR | Issue(s) | Cause probable | Action |
|---|
undefined| PR | 关联Issue(s) | 可能原因 | 操作建议 |
|---|
undefined3.5 PRs sans issue trackée
3.5 无追踪Issue的PR
PRs internes sans dans le body — signaler pour traçabilité.
fixes #N内容中无标记的内部PR — 标记以确保可追溯性。
fixes #NPhase 4 — Output final
阶段4 — 最终输出
Afficher l'analyse croisée complète (sections 3.1 → 3.5)
显示完整交叉分析报告(3.1 → 3.5章节)
Puis afficher le résumé chiffré :
undefined随后显示数据摘要:
undefinedRésumé chiffré — YYYY-MM-DD
数据摘要 — YYYY-MM-DD
| Catégorie | Count |
|---|---|
| PRs prêtes à merger (nos) | N |
| Quick wins externes | N |
| Double couverture (conflicts) | N paires |
| P0/P1 bugs sans PR | N |
| Security findings sans PR | N |
| Nos PRs dirty à rebaser | N |
| PRs à fermer (recommandé) | N |
undefined| 分类 | 数量 |
|---|---|
| 可合并的内部PR | N |
| 外部快速处理项 | N |
| 重复覆盖(冲突) | N 组 |
| 无PR的P0/P1级Bug | N |
| 无PR的安全发现项 | N |
| 需要rebase的内部脏PR | N |
| 建议关闭的PR | N |
undefinedSauvegarder dans claudedocs
保存至claudedocs
bash
date +%Y-%m-%d # Pour construire le nom de fichierSauvegarder dans avec :
claudedocs/RTK-YYYY-MM-DD.md- Les tableaux de triage issues + PRs (Phase 2)
- L'analyse croisée complète (Phase 3)
- Le résumé chiffré
Confirmer :
Sauvegardé dans claudedocs/RTK-YYYY-MM-DD.mdbash
date +%Y-%m-%d # 用于生成文件名将以下内容保存至:
claudedocs/RTK-YYYY-MM-DD.md- Issue与PR分类处理表格(阶段2)
- 完整交叉分析报告(阶段3)
- 数据摘要
确认提示:
已保存至claudedocs/RTK-YYYY-MM-DD.mdFormat du fichier sauvegardé
保存文件格式
markdown
undefinedmarkdown
undefinedRTK Triage — YYYY-MM-DD
RTK Triage — YYYY-MM-DD
Croisement issues × PRs. {N} PRs ouvertes, {N} issues ouvertes.
Issue × PR交叉分析。{N} 个开放PR,{N} 个开放Issue。
1. Double couverture
1. 重复覆盖
...
...
2. Trous sécurité
2. 安全漏洞
...
...
3. P0/P1 sans PR
3. 无PR的P0/P1级问题
...
...
4. Nos PRs dirty
4. 内部脏PR
...
...
5. Nos PRs prêtes à merger
5. 可合并的内部PR
...
...
6. Quick wins externes
6. 外部快速处理项
...
...
7. Actions prioritaires
7. 优先操作项
(liste ordonnée par impact/urgence)
(按影响/紧急程度排序)
Résumé chiffré
数据摘要
...
---...
---Règles
规则
- Langue : argument /
en. Défaut :fr. Les commentaires GitHub restent toujours en anglais.fr - Ne jamais poster de commentaires GitHub sans validation utilisateur (AskUserQuestion).
- Si >200 issues ou >200 PRs : prévenir l'utilisateur et paginer (relancer avec ou
--searchavec pagination).gh api - L'analyse croisée (Phase 3) est toujours exécutée — c'est la valeur ajoutée de ce skill.
- Le fichier claudedocs est sauvegardé automatiquement sauf si l'utilisateur dit "no save".
- 语言:参数/
en,默认:fr。GitHub评论始终使用英文。fr - 未经用户确认,不得发布任何GitHub评论(需调用AskUserQuestion)。
- 若开放Issue>200或开放PR>200:告知用户并分页(使用或带分页的
--search重新启动)。gh api - 交叉分析(阶段3)始终执行 — 这是本技能的核心价值。
- 除非用户明确表示"no save",否则自动保存至claudedocs文件。