Agent skill
request-test
QA 테스트 요청 스킬. Use when (1) 태스크카드 테스트 요청, (2) QA 담당자 할당, (3) 테스트 범위 지정, (4) Slack 알림 전송.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/testing/request-test
SKILL.md
시스템 메시지: 이 Skill이 호출되면
[SEMO] Skill: request-test 호출 - {프로젝트명}시스템 메시지를 첫 줄에 출력하세요.
request-test Skill
QA 담당자에게 테스트 요청을 전달하는 스킬
Purpose
개발 완료된 태스크카드에 대해 QA 테스트를 요청합니다.
- GitHub 이슈 Assignee 할당
- Slack 알림 발송
- 테스트 항목 검증
필수 조건
1. 프로젝트 및 태스크카드 지정
| 필수 정보 | 설명 | 예시 |
|---|---|---|
| 프로젝트 | GitHub 레포지토리 | semicolon-devteam/half-time |
| 태스크카드 | GitHub 이슈 번호 | #123 |
2. QA 테스트 항목 존재 검증
태스크카드 본문에 다음 중 하나 이상 포함 필수:
## QA 테스트 항목섹션## 테스트 항목섹션- [ ]체크박스 형태의 테스트 케이스
검증 실패 시:
markdown
[SEMO] request-test 실패
❌ 태스크카드에 QA 테스트 항목이 없습니다.
**필요 조치**:
이슈 본문에 다음 형식으로 테스트 항목을 추가하세요:
## QA 테스트 항목
- [ ] 테스트 케이스 1
- [ ] 테스트 케이스 2
3. QA 담당자 정보
팀원 정보는 team-members.md 참조
| 역할 | GitHub ID | Slack Display Name |
|---|---|---|
| QA | kokkh | Goni |
기본 설정
| 항목 | 기본값 | 설명 |
|---|---|---|
| 기본 QA 담당자 | Goni (kokkh) | 테스트 요청 시 기본 Assignee |
| 알림 채널 | 프로젝트 채널 (동적 조회) | 협업 채널은 Fallback |
Execution Flow
text
1. 이슈 정보 조회 (gh CLI)
↓
2. QA 테스트 항목 존재 검증
↓
3. GitHub 이슈 Assignee 할당 (gh CLI)
↓
4. Slack Token 획득 (MCP)
↓
5. 프로젝트 채널 동적 조회 (Slack API)
↓
6. Slack 사용자 ID 조회 + 알림 발송 (curl)
Step-by-Step Instructions
Step 1: 이슈 정보 조회 (gh CLI)
bash
gh issue view {이슈번호} --repo semicolon-devteam/{프로젝트} --json title,body,url
Step 2: QA 테스트 항목 검증
이슈 body에서 다음 패턴 확인:
## QA 테스트 항목또는## 테스트 항목- [ ]체크박스 최소 1개 이상
Step 3: Assignee 할당 (gh CLI)
bash
gh issue edit {이슈번호} --repo semicolon-devteam/{프로젝트} --add-assignee kokkh
Step 4: Slack Token 획득
text
mcp__semo-integrations__semo_get_slack_token()
응답에서 token: 접두사 뒤의 토큰 값을 추출합니다.
Step 5: 프로젝트 채널 동적 조회
🔴 NON-NEGOTIABLE: 테스트 요청은 반드시 프로젝트 채널로 전송합니다. 프로젝트 채널을 찾지 못한 경우에만 협업 채널(#_협업)로 Fallback합니다.
bash
# 프로젝트명(레포명)으로 채널 검색
# 1차: #{repo} 검색
# 2차: #_{repo} 검색
# 3차: Fallback → #_협업 (C09KNL91QBZ)
PROJECT_REPO="{프로젝트명}" # 예: cm-labor-union
# 채널 목록에서 프로젝트 채널 검색
CHANNEL_ID=$(curl -s 'https://slack.com/api/conversations.list?types=public_channel&limit=500' \
-H "Authorization: Bearer $TOKEN" | \
jq -r --arg repo "$PROJECT_REPO" '
.channels[] |
select(.name == $repo or .name == ("_" + $repo)) |
.id
' | head -1)
# Fallback: 프로젝트 채널 없으면 협업 채널 사용
if [ -z "$CHANNEL_ID" ]; then
CHANNEL_ID="C09KNL91QBZ" # #_협업
echo "[SEMO] 프로젝트 채널 없음 → #_협업 사용"
fi
Step 6: Slack 사용자 ID 조회 + 알림 발송
bash
# 사용자 ID 조회
curl -s 'https://slack.com/api/users.list' \
-H 'Authorization: Bearer {TOKEN}' | \
jq -r '.members[] | select(.profile.display_name=="Goni") | .id'
# 알림 발송 (heredoc 방식) - 프로젝트 채널로 전송
curl -s -X POST 'https://slack.com/api/chat.postMessage' \
-H 'Authorization: Bearer {TOKEN}' \
-H 'Content-Type: application/json; charset=utf-8' \
-d @- << 'EOF'
{
"channel": "{CHANNEL_ID}",
"text": "QA 테스트 요청",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "🧪 *QA 테스트 요청*\n\n<@{SLACK_ID}> 님, 테스트 요청드립니다.\n\n📋 *이슈*: {이슈 제목}\n🔗 *링크*: {이슈 URL}\n📝 *요청자*: {요청자}\n📁 *프로젝트*: {프로젝트명}\n\n테스트 항목을 확인하고 완료 시 체크해주세요!"
}
}
]
}
EOF
Output
성공 시
markdown
[SEMO] Skill: request-test 완료
✅ QA 테스트 요청 완료
**프로젝트**: semicolon-devteam/{repo}
**이슈**: #{이슈번호} - {이슈제목}
**담당자**: @kokkh (GitHub) / @Goni (Slack)
**Slack 알림**: ✅ 전송됨
> 테스트 완료 시 이슈의 체크박스를 체크하고 상태를 업데이트해주세요.
실패 시 (테스트 항목 누락)
markdown
[SEMO] request-test 실패
❌ 태스크카드에 QA 테스트 항목이 없습니다.
**이슈**: #{이슈번호} - {이슈제목}
**필요 조치**:
이슈 본문에 다음 형식으로 테스트 항목을 추가하세요:
## QA 테스트 항목
- [ ] 테스트 케이스 1
- [ ] 테스트 케이스 2
References
- Team Members - GitHub/Slack ID 매핑
- notify-slack - Slack 알림 스킬
- Project Channels - 프로젝트별 채널 정보
Triggers
| 트리거 | 예시 |
|---|---|
| "테스트 요청" | "테스트 요청해줘" |
| "QA 요청" | "QA 요청 보내줘" |
| "request-test" | "request-test 실행" |
| "테스트 할당" | "이슈에 테스트 할당해줘" |
Didn't find tool you were looking for?