QA Session

VerifiedCaution

Interactive QA session for reporting bugs as tracker issues (GitHub or Linear). The agent explores codebase for context and files issues without applying fixes.

Sby Skills Guide Bot
TestingIntermediate
7/22/2026
Claude Code
#qa-session#bug-reporting#issue-tracking#github-issues#linear

Recommended for

Automated summary

Runs an interactive QA session where the user reports bugs conversationally and the agent turns them into GitHub Issues or Linear tickets, either one by one or as a dependency-linked breakdown.

Strengths

  • Deliberately caps clarification at 2-3 short questions per problem, so it files instead of over-interviewing
  • Explores the codebase in the background (Explore agent) to absorb the project's domain language without leaking file names or line numbers into the issue
  • Explicitly decides between a single issue and a breakdown with 'Blocked by' links when symptoms are separable
  • Locks in the tracker choice (Linear or GitHub) once at the start and reuses it for the whole session

Limitations

  • Applies no fixes and skips single-bug triage, deferring those to /triage-issue or /dbg
  • Depends on working integration: the gh CLI or cc-linear / LINEAR_TEAM_ID configuration must already be set up
  • Issue quality rests on the user's own description, since follow-up questioning is intentionally kept minimal
When to use it

Use it when you are working through a QA pass with several problems to report and want durable tickets written in the project's domain vocabulary.

When not to use it

Avoid it for triaging a single bug, for interactive debugging, or when you expect the agent to fix the problem rather than file it.

Security analysis

Caution
Quality score85/100

The skill is a well-scoped QA workflow with no destructive commands, no secret handling, and no obfuscated payloads. Its only meaningful risk is the explicit instruction to create external tracker issues via Bash/gh/cc-linear without prior user review, which yields irreversible public side effects — legitimate for its stated purpose but warranting a caution rating rather than fully safe.

Findings
  • •Instructs the agent to file tracker issues without asking the user to review first ("Do NOT ask the user to review first — file and share URLs"), producing irreversible external side effects such as public GitHub/Linear issues before confirmation.
  • •Relies on Bash plus network-backed CLIs (`gh issue create`, `/cc-linear`) to write to external systems, expanding the skill's blast radius beyond read-only exploration.
  • •Delegates context gathering to a background Explore subagent and reads repo docs such as UBIQUITOUS_LANGUAGE.md; read-only but broadens the sweep of repository content processed.
  • •References an external upstream URL (mattpocock/skills) for attribution only; no fetch or execution of remote content is requested.
How this analysis is made

Examples

Multi-bug QA pass
I want to do a QA pass on the checkout flow. First problem: when I apply a discount code the total doesn't update until I reload. Second: the confirmation email arrives with the wrong order number.
Breakdown with dependencies
Report bugs from this QA session: the signup form validation is wrong, the success message never shows, and the redirect after submit goes to a 404. File them as separate linked issues.
Choose tracker explicitly
Start a QA session for the Docker deployment layer — file everything via GitHub Issues, not Linear.

name: qa description: >- Interactive QA session where the user reports bugs conversationally and the agent files them as tracker issues (GitHub or Linear) one by one or as a dependency-linked breakdown. Explores the codebase in the background for context and domain language. Use when user wants to "do QA", "report bugs", "file issues from a QA pass", or runs through multiple problems at once. NOT for single-bug triage (use /triage-issue) or interactive debug (/dbg). allowed-tools: [Read, Grep, Glob, Bash, Task, Skill, AskUserQuestion]

QA Session

Upstream: Adapted from mattpocock/skills/qa. Adapted to use this repo's Explore agent, cc-linear/gh integration, and UBIQUITOUS_LANGUAGE.md convention.

Run an interactive QA session. The user describes problems they're encountering. You clarify lightly, explore the codebase for context, and file tracker issues that are durable, user-focused, and use the project's domain language. No fixes applied.

Pick the tracker once, at the start

Detect Linear (look for cc-linear config / LINEAR_TEAM_ID / Linear references in recent issues) vs GitHub Issues. If ambiguous, ask once: AskUserQuestion: "File via Linear or GitHub Issues for this session?" — then keep that choice for the whole session.

For each issue the user raises

1. Listen and lightly clarify

Let the user describe the problem in their own words. Ask at most 2-3 short clarifying questions:

  • What they expected vs what actually happened
  • Steps to reproduce (if not obvious)
  • Whether it's consistent or intermittent

Do NOT over-interview. If the description is clear enough to file, move on.

2. Explore the codebase in the background

While the user describes the next issue, kick off an Agent (subagent_type=Explore) for the previous one. Goal is not to fix — it's to:

  • Learn the domain language used in that area (cross-check with product-docs/UBIQUITOUS_LANGUAGE.md if it exists)
  • Understand what the feature is supposed to do
  • Identify the user-facing behavior boundary

Context helps you write a better issue. The issue itself must NOT reference specific files, line numbers, or internal implementation details.

3. Assess scope: single issue or breakdown?

Before filing, decide whether this is a single issue or a breakdown into multiple issues.

Break down when:

  • The fix spans multiple independent areas (e.g., "form validation is wrong AND success message is missing AND redirect is broken")
  • There are clearly separable concerns that different people/agents could work on in parallel
  • The user describes multiple distinct failure modes or symptoms

Keep as a single issue when:

  • It's one behavior wrong in one place
  • The symptoms all stem from the same root behavior

4. File the issue(s)

Use gh issue create or invoke /cc-linear (whichever was picked at the start). Do NOT ask the user to review first — file and share URLs.

Single-issue template

## What happened

[Actual behavior the user experienced, in plain language]

## What I expected

[Expected behavior]

## Steps to reproduce

1. [Concrete numbered steps a developer can follow]
2. [Use domain terms from UBIQUITOUS_LANGUAGE.md, not internal module names]
3. [Include relevant inputs, flags, or configuration]

## Additional context

[Extra observations from the user or from background exploration —
e.g. "this only happens in the Docker layer, not the filesystem layer".
Use domain language; do not cite files.]

Breakdown template (per sub-issue)

## Parent

#<parent-issue-number> (if a tracking issue was created) or "Reported during QA session"

## What's wrong

[This specific behavior problem — just this slice, not the whole report]

## What I expected

[Expected behavior for this slice]

## Steps to reproduce

1. [Steps specific to THIS issue]

## Blocked by

- #<issue-number> (if this issue can't be fixed until another is resolved)

Or "None — can start immediately" if no blockers.

## Additional context

[Observations relevant to this slice]

When creating a breakdown:

  • Prefer many thin issues over few thick ones — each independently fixable and verifiable
  • Mark blocking relationships honestly — if B genuinely can't be tested until A is fixed, say so. If they're independent, mark both as "None — can start immediately"
  • Create issues in dependency order so you can reference real issue numbers in "Blocked by"
  • Maximize parallelism — multiple people / /si runs should be able to grab different issues simultaneously

5. Rules for all issue bodies

  • No file paths or line numbers — they go stale
  • Use the project's domain language (check product-docs/UBIQUITOUS_LANGUAGE.md if it exists)
  • Describe behaviors, not code — "the sync service fails to apply the patch", not "applyPatch() throws on line 42"
  • Reproduction steps are mandatory — if you can't determine them, ask the user once
  • Keep it concise — a developer should be able to read the issue in 30 seconds

After filing, print all issue URLs (with blocker relationships summarized) and ask: "Next issue, or are we done?"

6. Continue the session

Keep going until the user says they're done. Each issue is independent — don't batch them.

Distinction from sibling skills

| Skill | Mode | Output | |---|---|---| | /dbg | Interactive single-bug debug, may fix | Fixed bug or hypothesis | | /triage-issue | Single bug → root cause + TDD plan, no fix | One tracker issue | | /qa | Multiple bugs reported conversationally, no fix | Multiple tracker issues, possibly with blocker links |

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/qa-session-mrwak8zt/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/qa-session-mrwak8zt' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/qa-session-mrwak8zt/download' --output '.skill-downloads/qa-session-mrwak8zt/SKILL.md.part' && mv '.skill-downloads/qa-session-mrwak8zt/SKILL.md.part' '.skill-downloads/qa-session-mrwak8zt/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/qa-session-mrwak8zt/SKILL.md' && test -s '.skill-downloads/qa-session-mrwak8zt/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/qa-session-mrwak8zt' '.claude/skills/qa'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/qa-session-mrwak8zt'

openskills read 'qa-session-mrwak8zt'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/qa-session-mrwak8zt/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills