| name | qa-swarm |
| description | Parallel QA using agent teams for comprehensive multi-type testing.
Spawns specialized QA agents that simultaneously run different test categories
(unit, integration, lint, security scan) and consolidate results.
Triggers on: "QA ์ค์", "์ ์ฒด QA", "qa-swarm", "๋ณ๋ ฌ ํ
์คํธ", "์ข
ํฉ ํ
์คํธ",
or when comprehensive multi-category testing is needed for a project.
|
| argument-hint | <ํ๋ก์ ํธ ๊ฒฝ๋ก ๋๋ ํ
์คํธ ๋์ ์ค๋ช
> |
| user-invocable | true |
| context | fork |
| agent | coder |
QA Swarm Skill
๊ฐ์
์์ด์ ํธํ์ ํ์ฉํ์ฌ ์ฌ๋ฌ ์ ํ์ QA๋ฅผ ๋ณ๋ ฌ๋ก ๋์ ์คํํ๋ค.
๊ฐ QA ์์ญ์ ์ ๋ฌธ ํ์์ด ๋์์ ์์
ํ์ฌ ์ ์ฒด QA ์์ ์๊ฐ์ ๋จ์ถํ๋ค.
์ ์ฉ ๊ธฐ์ค
- ์ฌ์ฉ: ๋๊ท๋ชจ ํ๋ก์ ํธ (ํ
์คํธ ์ค์ํธ๊ฐ ๋ค์), ์ ํ๋ก์ ํธ์ QA ๋จ๊ณ, ๋ฆด๋ฆฌ์ฆ ์ ์ข
ํฉ ๊ฒ์ฆ
- ๋ฏธ์ฌ์ฉ: ๋จ์ ํ
์คํธ๋ง ์๋ ์๊ท๋ชจ ํ๋ก์ ํธ โ ๊ธฐ์กด /test ์คํฌ ์ฌ์ฉ
ํ๋ก์ธ์ค
1. ํ๋ก์ ํธ ๋ถ์
$ARGUMENTS์์ ํ๋ก์ ํธ ๊ฒฝ๋ก/๋์์ ํ์
ํ๋ค.
ํ๋ก์ ํธ ๋ฃจํธ์ ์ค์ ํ์ผ(package.json, Cargo.toml, pyproject.toml, go.mod, Makefile ๋ฑ)์ ์ฝ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ํ
์คํธ/๋ฆฐํธ/๋น๋/๊ฐ์ฌ ๋๊ตฌ๋ฅผ ๊ฐ์งํ๋ค.
2. QAํ ์์ฑ ๋ฐ ํ์คํฌ ๋์ ๋ฐฐ์
TeamCreate("qa-team")
๊ฐ์ง๋ ๋๊ตฌ์ ๋ฐ๋ผ ์๋ 4๊ฐ ์นดํ
๊ณ ๋ฆฌ ์ค ํด๋นํ๋ ๊ฒ๋ง ํ์คํฌ๋ก ์์ฑํ๋ค:
| ์นดํ
๊ณ ๋ฆฌ | ํ์ ์ด๋ฆ | ์ญํ |
|---|
| ๋จ์/ํตํฉ ํ
์คํธ | qa-tester | ํ
์คํธ ํ๋ ์์ํฌ ๊ฐ์ง โ ์ ์ฒด ํ
์คํธ ์คํ โ ์คํจ ์ ์๋ฌ/์คํ ํธ๋ ์ด์ค ๋ณด๊ณ |
| ๋ฆฐํธ/์ ์ ๋ถ์ | qa-linter | ํ๋ก์ ํธ ๋ฆฐํฐ ์ ์ฒด ์คํ โ ์๋ ์์ ์ ์ฉ โ ์๋ ์์ ํญ๋ชฉ ๋ณด๊ณ |
| ๋น๋ ๊ฒ์ฆ | qa-builder | ๋น๋ ๋ช
๋ น ์คํ โ ์ปดํ์ผ/ํ์
์๋ฌ, ๊ฒฝ๊ณ ๋ณด๊ณ |
| ๋ณด์ ์ค์บ | qa-security | ํจํค์ง ๋งค๋์ ๊ฐ์ฌ ๋๊ตฌ ์คํ โ ์ทจ์ฝ์ ์ฌ๊ฐ๋๋ณ ๋ถ๋ฅ ๋ณด๊ณ |
๊ฐ ์นดํ
๊ณ ๋ฆฌ์ ๋ํด ๋์ผ ํจํด์ผ๋ก ํ์คํฌ ์์ฑ ๋ฐ ํ์ ์คํฐ:
# ๊ฐ์ง๋ ๊ฐ ์นดํ
๊ณ ๋ฆฌ์ ๋ํด ๋ฐ๋ณต:
TaskCreate({
subject: "<์นดํ
๊ณ ๋ฆฌ๋ช
>",
description: "<์ ํ์ ์ญํ ์ค๋ช
>",
activeForm: "<์นดํ
๊ณ ๋ฆฌ๋ช
> ์คํ ์ค"
})
Task(team_name="qa-team", name="<ํ์ ์ด๋ฆ>"):
"<์นดํ
๊ณ ๋ฆฌ๋ช
>์ ์คํํ์ธ์. ํ๋ก์ ํธ ๊ฒฝ๋ก: [๊ฒฝ๋ก].
๊ฒฐ๊ณผ๋ ์ค์ ๋ช
๋ น์ด์ exit code๋ก ํ๋จํ์ธ์.
์๋ฃ ํ TaskUpdate๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ์ธ์."
3. ๊ฒฐ๊ณผ ์ข
ํฉ
๋ชจ๋ ํ์คํฌ๊ฐ completed ์ํ๊ฐ ๋๋ฉด:
- ๊ฐ ํ์์ ๊ฒฐ๊ณผ๋ฅผ ์์ง
- ์คํจ ํญ๋ชฉ์ ์ฌ๊ฐ๋๋ณ๋ก ๋ถ๋ฅ
- ์๋ ์์ ์ด ์ ์ฉ๋ ํญ๋ชฉ ์ ๋ฆฌ
- ์๋ ์์ ์ด ํ์ํ ํญ๋ชฉ ๋ชฉ๋ก ์์ฑ
4. ์ ๋ฆฌ
SendMessage(type="shutdown_request")๋ก ๋ชจ๋ ํ์ ์ข
๋ฃ
TeamDelete()
๊ฒ์ฆ ๊ท์น
๋น๋/ํ
์คํธ ๊ฒฐ๊ณผ๋ ์ค์ ๋ช
๋ น์ด์ exit code๋ก๋ง ํ๋จํ๋ค.
ํ
์คํธ ๋ณด๊ณ ("ํต๊ณผํ์ต๋๋ค")๋ฅผ ์ ๋ขฐํ์ง ์๋๋ค.
TaskCompleted ํ
(task-quality-gate.sh)์ด ๊ตฌํ ํ์คํฌ์ ๋น๋/ํ
์คํธ๋ฅผ ์๋ ๊ฒ์ฆํ๋ค.
์ถ๋ ฅ
@output-template.md ์ฐธ์กฐ
Orchestrator ํตํฉ
Orchestrator๊ฐ ์ ํ๋ก์ ํธ ๋๋ ๋๊ท๋ชจ ๋ณ๊ฒฝ์ QA ๋จ๊ณ์์ qa-swarm์ ์ ํํ ์ ์๋ค:
- ํ
์คํธ ์ค์ํธ๊ฐ ๋ค์ํ ํ๋ก์ ํธ โ
Skill("qa-swarm", "<ํ๋ก์ ํธ ๊ฒฝ๋ก>")
- ๋จ์ ํ๋ก์ ํธ โ
Skill("test", "<์ ์ฒด ๋๋ ๋ณ๊ฒฝ๋ ๋ชจ๋>")
๋น์ฉ ์ฃผ์
์ต๋ 4๊ฐ์ ๋ณ๋ Claude ์ธ์คํด์ค๋ฅผ ์คํฐํ๋ฏ๋ก, ๋จ์ผ ํ
์คํธ ๋๋น ์ต๋ 4๋ฐฐ์ ํ ํฐ์ ์ฌ์ฉํ๋ค.
ํ
์คํธ ์ค์ํธ๊ฐ ํ๋๋ฟ์ธ ํ๋ก์ ํธ์๋ ๊ธฐ์กด /test ์คํฌ์ ์ฌ์ฉํ๋ผ.