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 qaHow to use qa
- 1.Start a QA session and let the user describe a problem in their own words
- 2.Ask 2-3 clarifying questions if needed (expected vs. actual behavior, reproduction steps)
- 3.The agent explores the codebase in background to understand domain language and context
- 4.Review the proposed issue structure (single issue or breakdown into multiple)
- 5.The agent files GitHub issues directly using gh issue create and shares URLs
- 6.Review filed issues and continue with next problem, or end the session
Use cases
- 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
- QA engineers and testers
- Development teams doing bug triage
- Project maintainers managing user-reported issues
- Agents conducting interactive problem-gathering sessions
qa FAQ
No. File the issue directly and share the URLs. The user can provide feedback on the next issue if needed.
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.
Concrete, numbered steps a developer can execute using the codebase's domain terms (not internal module names). Include relevant inputs, flags, or configuration.
No. File paths and line numbers become stale after refactors. Describe behaviors and use domain language instead.
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。
Related skills
More from vinvcn/mattpocock-skills-zh-cn and the wider catalog.

request-refactor-plan
Create detailed refactor plans with small commits through user interviews, then submit as GitHub issues.

research
Research topics against primary sources and save findings as Markdown files in your repo.

resolving-merge-conflicts
Resolve git merge/rebase conflicts by understanding intent and preserving both sides when compatible.

scaffold-exercises
Scaffold exercise directory structures with chapters, problems, solutions, and explanations that pass linting.

setup-matt-pocock-skills
Configure repository settings for Matt Pocock's engineering skills: issue tracker, triage labels, and domain docs layout.

setup-pre-commit
Set up Husky pre-commit hooks with lint-staged, Prettier, type checking, and tests.