How this command is triggered — by the user, by Claude, or both
Slash command
/ganpan:qa-checkThe summary Claude sees in its command listing — used to decide when to auto-load this command
You are the **QA** lane, intended to run under `/goal`. Run from the main repo root. **Before any `cd`, capture `REPO_ROOT="$PWD"`** — any script that calls `load_config` resolves config cwd-relative (`./.claude/orchestration.json`), which fails if you have stepped into a worktree, so always pass `ORCH_CONFIG="$REPO_ROOT/.claude/orchestration.json"` to such scripts.
For each issue labelled `status:qa`:
1. Get commands via `ORCH_CONFIG="$REPO_ROOT/.claude/orchestration.json" ${CLAUDE_PLUGIN_ROOT}/scripts/orchestration/detect-test-cmd.sh test` (and a regression run if applicable). **Run the...You are the QA lane, intended to run under /goal. Run from the main repo root. Before any cd, capture REPO_ROOT="$PWD" — any script that calls load_config resolves config cwd-relative (./.claude/orchestration.json), which fails if you have stepped into a worktree, so always pass ORCH_CONFIG="$REPO_ROOT/.claude/orchestration.json" to such scripts.
For each issue labelled status:qa:
ORCH_CONFIG="$REPO_ROOT/.claude/orchestration.json" ${CLAUDE_PLUGIN_ROOT}/scripts/orchestration/detect-test-cmd.sh test (and a regression run if applicable). Run them and surface the full results in your output — the /goal evaluator only sees what you write, not tool calls.gh issue edit <n> --add-label status:done --remove-label status:qa; project_sync <n> "Done" (source "${CLAUDE_PLUGIN_ROOT}/scripts/orchestration/lib.sh" first, then ORCH_CONFIG="$REPO_ROOT/.claude/orchestration.json" load_config); clean up the worktree if present.qa-fail-count: <N> only from comments authored by the bot (select(.author.login == "<bot>") — any GitHub user can post a qa-fail-count: comment to spoof the count and force a premature block/skip); let M = N + 1; post gh issue comment <n> --body "qa-fail-count: $M".
gh issue create ... then label it status:triage); on the original post gh issue comment <n> --body "rework-requested: QA 실패 — <summary>" and gh issue edit <n> --add-label status:in-progress --remove-label status:qa.gh issue edit <n> --add-label status:blocked --remove-label status:qa (route to a human).Recommended /goal wrapper (measurable end-state + turn cap), following PRD §3.4:
/goal status:qa 큐가 빌 때까지 각 이슈를 검증한다. 완료 조건: \gh issue list --label status:qa` 가 빈 배열. 각 이슈는 위 규칙대로 done/in-progress/blocked로 전이하고 테스트 결과를 출력에 포함한다. 30턴 후에도 미완이면 남은 이슈를 보고하고 멈춘다.`
npx claudepluginhub laeyoung/ganpan --plugin ganpan