PluginBench
Skill
Pass
Audit score 90

qa

vinvcn/mattpocock-skills-zh-cn

Interactive QA sessions that convert user-reported bugs into well-structured GitHub issues with codebase context.

What is qa?

Conduct interactive QA sessions where users describe bugs or problems conversationally, and the agent creates durable, user-focused GitHub issues. The agent explores the codebase in the background to understand context and domain language, ensuring issues remain meaningful across refactors.

  • Listen to user bug reports with light clarification (2-3 questions max)
  • Explore codebase in background to learn domain language and feature intent
  • Assess whether to file single issue or break into multiple independent issues
  • Create GitHub issues using templates that avoid file paths and internal details
  • Mark blocking relationships between issues to maximize parallel work
  • Continue session iteratively until user indicates completion

How to install qa

npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill qa
Claude Code
Cursor
Windsurf
Cline

How to use qa

  1. 1.Start a QA session and let the user describe a problem in their own words
  2. 2.Ask 2-3 clarifying questions if needed (expected vs. actual behavior, reproduction steps)
  3. 3.The agent explores the codebase in background to understand domain language and context
  4. 4.Review the proposed issue structure (single issue or breakdown into multiple)
  5. 5.The agent files GitHub issues directly using gh issue create and shares URLs
  6. 6.Review filed issues and continue with next problem, or end the session

Use cases

Good for
  • QA team conducting bug triage sessions and filing issues directly to GitHub
  • Developers gathering user-reported problems in conversation and converting them to actionable issues
  • Teams breaking down complex bug reports into independent, parallelizable work items
  • Projects needing durable issue descriptions that survive major refactors
Who it's for
  • QA engineers and testers
  • Development teams doing bug triage
  • Project maintainers managing user-reported issues
  • Agents conducting interactive problem-gathering sessions

qa FAQ

Should I ask the user to review the issue before filing?

No. File the issue directly and share the URLs. The user can provide feedback on the next issue if needed.

When should I break a bug report into multiple issues?

Break it when the fix spans multiple independent areas, involves clearly separable concerns, or describes multiple distinct failure modes. Keep single issues focused on one behavior in one place.

What should I include in reproduction steps?

Concrete, numbered steps a developer can execute using the codebase's domain terms (not internal module names). Include relevant inputs, flags, or configuration.

Can I reference file paths or line numbers in issues?

No. File paths and line numbers become stale after refactors. Describe behaviors and use domain language instead.

How do I handle blocking relationships between issues?

Create issues in dependency order so you can reference real issue numbers. Mark blockers honestly—if issue B must wait for A, say so; if independent, write 'None — can start immediately'.

Full instructions (SKILL.md)

Source of truth, from vinvcn/mattpocock-skills-zh-cn.


name: qa description: 交互式 QA 会话,用户以对话方式报告缺陷或问题,代理创建 GitHub issues。后台探索代码库以获取上下文和领域语言。适用于用户想报告缺陷、执行 QA、以对话方式提交 issues,或提到 “QA session” 时。

QA Session

运行交互式 QA session。用户描述遇到的问题。你负责澄清、探索 codebase 获取 context,并创建 durable、user-focused 且使用项目 domain language 的 GitHub issues。

For each issue the user raises

1. Listen and lightly clarify

让用户用自己的话描述问题。最多问 2-3 个简短 clarifying questions,聚焦:

  • 他们期望什么,实际发生了什么
  • Steps to reproduce(如果不明显)
  • 是否稳定复现,还是 intermittent

不要过度访谈。如果描述足够清楚,可以直接 file。

2. Explore the codebase in the background

与用户对话时,在后台启动 Agent(subagent_type=Explore)理解相关区域。目标不是找 fix,而是:

  • 学习该区域使用的 domain language(检查 UBIQUITOUS_LANGUAGE.md)
  • 理解 feature 本应做什么
  • 识别 user-facing behavior boundary

这些 context 帮助你写出更好的 issue,但 issue 本身不应引用具体 files、line numbers 或 internal implementation details。

3. Assess scope: single issue or breakdown?

file 前判断这是单个 issue,还是需要拆成多个 issues。

拆分条件:

  • fix 跨多个 independent areas(例如 “form validation is wrong AND success message is missing AND redirect is broken”)
  • 存在清晰可分离 concerns,不同人可以并行处理
  • 用户描述了多个不同 failure modes 或 symptoms

保持单个 issue 的条件:

  • 一个地方的一个 behavior 错了
  • symptoms 都来自同一个 root behavior

4. File the GitHub issue(s)

使用 gh issue create 创建 issues。不要先要求用户 review;直接 file 并分享 URLs。

Issues 必须 durable,即 major refactors 后仍有意义。从用户视角写。

For a single issue

使用这个模板:

## What happened

[用普通语言描述用户经历的实际行为]

## What I expected

[描述期望行为]

## Steps to reproduce

1. [developer 可执行的具体编号步骤]
2. [使用 codebase 的 domain terms,不用 internal module names]
3. [包含相关 inputs、flags 或 configuration]

## Additional context

[来自用户或 codebase exploration 的额外观察,用来帮助 framing — 例如 “this only happens when using the Docker layer, not the filesystem layer” — 使用 domain language,但不引用 files]

For a breakdown (multiple issues)

按 dependency order 创建 issues(blockers first),这样可以引用真实 issue numbers。

每个 sub-issue 使用这个模板:

## Parent issue

#<parent-issue-number>(如果你创建了 tracking issue)或 "Reported during QA session"

## What's wrong

[描述这个 specific behavior problem — 只描述这个 slice,而非整个 report]

## What I expected

[这个 slice 的 expected behavior]

## Steps to reproduce

1. [只针对这个 issue 的步骤]

## Blocked by

- #<issue-number>(如果必须等另一个 issue 解决)

如果没有 blockers,写 "None — can start immediately"。

## Additional context

[与这个 slice 相关的额外观察]

创建 breakdown 时:

  • Prefer many thin issues over few thick ones — 每个都应能独立 fix 和 verify
  • Mark blocking relationships honestly — 如果 B 确实必须等 A 才能测试,就说明。如果独立,两个都写 “None — can start immediately”
  • Create issues in dependency order,这样可以在 “Blocked by” 中引用真实 issue numbers
  • Maximize parallelism — 目标是让多人(或 agents)能同时领取不同 issues

Rules for all issue bodies

  • No file paths or line numbers — 它们会过时
  • Use the project's domain language(如果存在,检查 UBIQUITOUS_LANGUAGE.md)
  • Describe behaviors, not code — 写 “the sync service fails to apply the patch”,不要写 “applyPatch() throws on line 42”
  • Reproduction steps are mandatory — 如果无法确定,询问用户
  • Keep it concise — developer 应能 30 秒内读完 issue

file 后,打印所有 issue URLs(并总结 blocking relationships),然后问:“Next issue, or are we done?”

5. Continue the session

持续进行,直到用户说结束。每个 issue 都独立处理,不要 batch。