| name | check-feedback |
| description | SEMO 패키지 피드백 이슈 수집 및 리스트업. Use when (1) "피드백 확인", "피드백 있는지", (2) "유저 피드백 체크", (3) SEMO 관련 open 이슈 조회. |
| tools | Bash |
🔔 시스템 메시지: 이 Skill이 호출되면
[SEMO] Skill: check-feedback 호출시스템 메시지를 첫 줄에 출력하세요.
check-feedback Skill
SEMO 패키지 관련 피드백 이슈 수집 및 리포트
Purpose
semicolon-devteam/semo 레포지토리에서 open 상태인 이슈를 수집하여 리스트업합니다.
Workflow
1. semo 레포지토리 Open 이슈 수집
gh api repos/semicolon-devteam/semo/issues --jq '.[] | select(.state == "open") | "- #\(.number) | \(.title) | [\(.labels | map(.name) | join(\", \"))] | \(.created_at | split(\"T\")[0])"'
Output Format
## 📋 SEMO 피드백 현황
### 📦 semo
| # | 제목 | 라벨 | 생성일 |
|---|------|------|--------|
| #1 | 이슈 제목 | bug, feedback | 2024-12-01 |
---
**총 {N}개의 Open 이슈**
No Issues Case
## 📋 SEMO 피드백 현황
✅ semo 레포에 open 이슈가 없습니다.
🔴 피드백 수정 완료 후 슬랙 알림 (NON-NEGOTIABLE)
⚠️ 피드백 이슈 수정 완료 후, 문의자에게 반드시 슬랙 알림을 전송합니다.
트리거
- 피드백 이슈 수정 후 이슈 종료 시
- 이슈에 코멘트 작성 후 종료 시
프로세스
이슈 작성자 확인
# 이슈 작성자 GitHub ID 조회 AUTHOR=$(gh api repos/semicolon-devteam/{repo}/issues/{number} --jq '.user.login')GitHub → Slack 사용자 매칭
📖 팀원 매핑: semo-core/_shared/team-members.md 참조
🔴 Slack ID는 하드코딩하지 마세요! 반드시 Slack API를 통해 동적으로 조회합니다.
# GitHub ID → Slack Display Name 변환 함수 # 매핑 정보는 semo-core/_shared/team-members.md 참조 # 🔴 이 함수는 Display Name만 반환합니다. Slack ID는 Step 3에서 동적 조회! get_slack_name() { local github_id="$1" case "$github_id" in "reus-jeon") echo "Reus" ;; "garden92") echo "Garden" ;; "kokkh") echo "Goni" ;; "kyago") echo "kyago" ;; "Roki-Noh") echo "Roki" ;; "Brightbong92") echo "bon" ;; "gtod8010") echo "dwight.k" ;; "Yeomsoyam") echo "Yeomso" ;; *) echo "$github_id" ;; esac } SLACK_NAME=$(get_slack_name "$AUTHOR")Slack 사용자 ID 조회
📖 Slack 설정: semo-core/_shared/slack-config.md 참조
# 토큰은 semo-core/_shared/slack-config.md 참조 SLACK_ID=$(curl -s "https://slack.com/api/users.list" \ -H "Authorization: Bearer $SLACK_BOT_TOKEN" \ | jq -r --arg name "$SLACK_NAME" ' .members[] | select(.deleted == false and .is_bot == false) | select( (.profile.display_name | ascii_downcase) == ($name | ascii_downcase) or (.name | ascii_downcase) == ($name | ascii_downcase) ) | .id ' | head -1)슬랙 알림 전송
# 토큰은 semo-core/_shared/slack-config.md 참조 curl -s -X POST https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer $SLACK_BOT_TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "channel": "#_협업", "text": "SEMO 피드백 수정 완료", "blocks": [ { "type": "header", "text": { "type": "plain_text", "text": "✅ SEMO 피드백 수정 완료" } }, { "type": "section", "fields": [ { "type": "mrkdwn", "text": "*패키지*\n{repo}" }, { "type": "mrkdwn", "text": "*이슈*\n<{issue_url}|#{number}>" } ] }, { "type": "section", "text": { "type": "mrkdwn", "text": "*제목*\n{issue_title}" } }, { "type": "section", "text": { "type": "mrkdwn", "text": "*문의자*\n<@'"$SLACK_ID"'>" } }, { "type": "section", "text": { "type": "mrkdwn", "text": "*수정 내용*\n{fix_summary}" } }, { "type": "context", "elements": [ { "type": "mrkdwn", "text": "🔗 <{issue_url}|GitHub 이슈 확인>" } ] } ] }'
알림 메시지 형식
✅ SEMO 피드백 수정 완료
패키지 이슈
semo-po #12
제목
[Bug] Epic 생성 시 GitHub Issue Type 미설정
문의자
@Reus
수정 내용
• v0.23.0에서 이미 수정됨
• create-epic 스킬에 Issue Type 설정 추가
🔗 GitHub 이슈 확인
완료 출력
[SEMO] Skill: check-feedback → 피드백 수정 알림 완료
✅ 슬랙 알림 전송 완료
- **채널**: #_협업
- **문의자**: @{slack_name}
- **이슈**: {repo}#{number}
알림 생략 조건
- 이슈 작성자가 본인인 경우 (자기 자신에게 알림 불필요)
- Slack 사용자 매칭 실패 시 (경고 메시지만 출력)
🔴 스킬 체이닝: process-feedback 호출
피드백 확인 후 사용자가 "처리해줘"라고 요청하면 자동으로
process-feedback스킬을 호출합니다.
트리거 키워드
- "처리해줘", "이슈 처리해줘"
- "반영해줘", "수정해줘"
- "해결해줘", "고쳐줘"
체이닝 흐름
[check-feedback] Open 이슈 리스트 출력
↓
사용자: "처리해줘" / "#{number} 반영해줘"
↓
[자동] skill:process-feedback 호출
↓
피드백 분석 → 설계 → 구현 → 버저닝 → 배포 → Slack 알림
호출 형식
[SEMO] Skill: check-feedback → process-feedback 체이닝
→ skill:process-feedback 호출 - #{issue_number}
References
- process-feedback Skill - 피드백 처리 (체이닝 대상)
- Slack 설정 (토큰, 채널)
- 팀원 정보 (GitHub ↔ Slack 매핑)
- notify-slack Skill