triage-issue

通过探索代码库对 Bug/Issue 进行排查归因,并基于 TDD 方式生成修复计划,同时创建对应的 GitHub issue。适用于用户报告了 bug、希望创建 issue、提到“triage”,或想调查并规划某个问题的修复方案。

Best use case

triage-issue is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

通过探索代码库对 Bug/Issue 进行排查归因,并基于 TDD 方式生成修复计划,同时创建对应的 GitHub issue。适用于用户报告了 bug、希望创建 issue、提到“triage”,或想调查并规划某个问题的修复方案。

Teams using triage-issue should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/triage-issue/SKILL.md --create-dirs "https://raw.githubusercontent.com/ProgrammerAnthony/Anything-Extract/main/.agents/skills/triage-issue/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/triage-issue/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How triage-issue Compares

Feature / Agenttriage-issueStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

通过探索代码库对 Bug/Issue 进行排查归因,并基于 TDD 方式生成修复计划,同时创建对应的 GitHub issue。适用于用户报告了 bug、希望创建 issue、提到“triage”,或想调查并规划某个问题的修复方案。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 问题排查(Triage Issue)

对用户报告的问题进行调查、定位根因,并创建一个包含 TDD 修复计划的 GitHub issue。该工作流尽量“半自动化”(hands-off):在调查阶段尽量减少向用户追问。

## 过程

### 1. 捕捉问题

从用户处获取该 issue 的简要描述。如果用户还没有提供,请只问一个问题:`你现在看到的问题是什么?`

在问出这些信息之后,不要再做进一步追问:立刻开始调查。

### 2. 探索并诊断

使用 Agent 工具(subagent_type=Explore)对代码库进行深入调查。你的目标是找到:

- **哪里**表现出问题(入口点、UI、API 响应等)
- **涉及什么**代码路径(追踪调用流程)
- **为什么会失败**(根因,而不仅仅是表象)
- **有哪些相关**代码存在(类似模式、测试、相邻模块)

重点查看:

- 相关源文件及其依赖关系
- 现有测试(哪些被覆盖、哪些缺失)
- 影响文件的近期改动(对相关文件运行 `git log`)
- 该代码路径中的错误处理逻辑
- 在仓库其他地方是否存在能正常工作的相似模式

### 3. 确定修复思路

基于你的调查结果,确定:

- 修复根因所需的最小改动
- 受影响的模块/接口
- 需要通过测试验证哪些行为
- 这属于回归(regression)、缺失功能(missing feature)还是设计缺陷(design flaw)

### 4. 设计 TDD 修复计划

创建一个具体的、按顺序排列的 RED-GREEN 循环列表。每个循环都是一个“竖向切片”(vertical slice):一次只覆盖一个小的行为修复步骤。

- **RED**:描述一个捕获“当前行为缺失/错误”的具体测试
- **GREEN**:描述为让该测试通过所需的最小代码变更

规则:

- 测试应通过**公共接口**验证行为,而不是依赖实现细节
- 一次一个测试、按竖向切片推进(不要先写完所有测试再一次性写代码)
- 每个测试都应能在内部重构后保持稳定
- 如有需要,最后包含一个重构步骤
- **耐久性(Durability)**:只建议能经得起“仓库大幅改动”的修复方式。用“行为/契约(contract)”而不是“内部结构”。对测试断言的是可观察结果(API 响应、UI 状态、用户可见效果),而不是内部状态。
  - 一个好的建议读起来像规范(spec),而不好的建议读起来像 diff(差异补丁)。

### 5. 创建 GitHub issue

在创建 issue 时使用 `gh issue create` 并遵循下方模板。不要在创建 issue 之前先让用户审核:直接创建并把 URL 贴给用户。

<issue-template>
## 问题(Problem)

清晰描述 bug 或 issue,包括:

- 发生了什么(实际行为)
- 应当发生什么(期望行为)
- 如何复现(如适用)

## 根因分析(Root Cause Analysis)

描述你调查过程中发现的内容:

- 涉及的代码路径(以模块/行为为单位描述即可)
- 为什么当前实现会失败
- 任何可能的促成因素(contributing factors)

**不要**在 issue 中写死当前代码布局耦合到具体的文件路径、行号或实现细节。请以“模块、行为与契约”为粒度描述,让 issue 即使在大规模重构后依然可用。

## TDD 修复计划(TDD Fix Plan)

用一个按序的数字列表写出 RED-GREEN 循环:

1. **RED**:写一个测试,来[描述期望行为]
   **GREEN**:让该测试通过所需的[最小改动]

2. **RED**:写一个测试,来[描述下一个期望行为]
   **GREEN**:让该测试通过所需的[最小改动]

...

**REFACTOR**:所有测试通过后,是否还需要进行任何清理(cleanup)?

## 验收标准(Acceptance Criteria)

- [ ] 验收点 1
- [ ] 验收点 2
- [ ] 所有新增测试都通过
- [ ] 现有测试仍然通过

</issue-template>

在创建 issue 后,打印 issue 的 URL,并输出一行总结(root cause 的一句话概括)。

Related Skills

prd-to-issues

135
from ProgrammerAnthony/Anything-Extract

使用 tracer-bullet 竖向切片法,把 PRD 拆分成彼此独立、可以直接认领的 GitHub issues(并形成对应的实现工单)。适用于用户想把 PRD 转成 issues、创建实现任务,或把 PRD 拆成工作项。

write-a-skill

135
from ProgrammerAnthony/Anything-Extract

以正确的技能结构、渐进式披露与打包资源来创建新的 agent 技能。适用于用户希望创建、编写或构建新的技能。

write-a-prd

135
from ProgrammerAnthony/Anything-Extract

通过用户访谈、代码库探索与模块设计来编写 PRD(产品需求文档),然后以 GitHub issue 的形式提交。适用于用户希望编写 PRD、创建产品需求文档,或规划一个新功能。

ubiquitous-language

135
from ProgrammerAnthony/Anything-Extract

从当前对话中抽取 DDD 风格的“统一语言”术语表(ubiquitous language glossary),标记歧义,并提出规范的术语选择。保存为 `UBIQUITOUS_LANGUAGE.md`。适用于用户希望定义领域术语、构建术语表、固化用词并强化术语一致性,或提到 “domain model” / “DDD”(领域模型与 DDD)。

tdd

135
from ProgrammerAnthony/Anything-Extract

使用 RED-GREEN-重构(red-green-refactor)循环进行测试驱动开发。适用于用户希望用 TDD 构建新功能或修复 bug,提到 “red-green-refactor”,希望使用集成测试,或询问“test-first development(先写测试)”。

request-refactor-plan

135
from ProgrammerAnthony/Anything-Extract

通过用户访谈创建一个详细的重构计划,并将其拆分成很小的提交(tiny commits),最后以 GitHub issue 的形式归档。适用于用户希望规划一次重构、创建重构 RFC,或把重构拆成安全的渐进步骤。

prd-to-plan

135
from ProgrammerAnthony/Anything-Extract

使用 tracer-bullet 竖向切片方法把 PRD 转换成多阶段的落地实施计划,并保存为本地 Markdown 文件(存放在 `./plans/`)。适用于用户希望把 PRD 拆分为多个阶段、生成实施计划、从 PRD 推导阶段计划,或提到 “tracer bullets”。

improve-codebase-architecture

135
from ProgrammerAnthony/Anything-Extract

探索代码库以发现架构改进机会,重点让代码库更容易测试:通过“加深浅模块(deepening shallow modules)”的方式重构模块结构。适用于用户想改善架构、寻找可重构机会、整合强耦合模块、或让代码库更便于 AI 导航与理解。

grill-me

135
from ProgrammerAnthony/Anything-Extract

对用户在计划或设计方面进行“无情的质询”,直到形成共同理解,并逐一解决决策树中每个分支的依赖关系。适用于用户希望对某个计划进行压力测试、希望被严格追问他们的设计,或提到 “grill me(来烤我/质问我)”。

frontend-code-review

135
from ProgrammerAnthony/Anything-Extract

指导在项目中对前端代码(Next.js/React/TypeScript/Tailwind 等)进行结构、可维护性、性能与一致性审查,基于既定规则清单。适用于用户请求审查 .tsx/.ts/.js/.jsx 等前端文件或前端目录下的页面与组件。不用于后端代码(如 .py)。

edit-article

135
from ProgrammerAnthony/Anything-Extract

通过重组文章的段落结构、提升表达清晰度,并收紧措辞来编辑与改进文章。适用于用户希望编辑、修订或完善一份文章草稿。

design-an-interface

135
from ProgrammerAnthony/Anything-Extract

使用并行子 agent 为某个模块生成多个根本不同的接口设计。适用于用户希望设计某个 API、探索接口选项、对比模块形状(module shapes),或提到“design it twice(把它设计两遍)”。