check-feedback

SEMO 피드백 이슈 수집, 분석 및 우선순위 추천 (Supabase DB 기반). Use when (1) "피드백 확인", "피드백 있는지", (2) "유저 피드백 체크", (3) SEMO 관련 open 이슈 조회.

$ Installer

git clone https://github.com/semicolon-devteam/semo /tmp/semo && cp -r /tmp/semo/semo-system/semo-skills/check-feedback ~/.claude/skills/semo

// tip: Run this command in your terminal to install the skill


name: check-feedback description: | SEMO 피드백 이슈 수집, 분석 및 우선순위 추천 (Supabase DB 기반). Use when (1) "피드백 확인", "피드백 있는지", (2) "유저 피드백 체크", (3) SEMO 관련 open 이슈 조회. tools: [Supabase, Bash, Read, Grep, Glob]

시스템 메시지: 이 Skill이 호출되면 [SEMO] Skill: check-feedback 호출 시스템 메시지를 첫 줄에 출력하세요.

check-feedback Skill

SEMO 패키지 피드백 이슈 수집, 분석 및 우선순위 추천 (Supabase DB 기반)


🔴 데이터 소스 변경 (v2.0.0)

버전데이터 소스방식
v1.xGitHub Issuesgh api CLI
v2.0Supabaseissues 테이블 조회

Purpose

Supabase issues 테이블에서 labelsfeedback이 포함된 open 상태 이슈를 수집하고, 각 피드백을 분석하여 처리 우선순위를 추천합니다.


🔴 Phase 1: 이슈 수집

1.1 Supabase로 피드백 이슈 조회

// Supabase 클라이언트를 사용한 피드백 조회
const { data: feedbacks, error } = await supabase
  .from('issues')
  .select(`
    number,
    title,
    body,
    type,
    status,
    labels,
    created_at,
    assignee:agent_personas(name)
  `)
  .eq('state', 'open')
  .contains('labels', ['feedback'])
  .order('created_at', { ascending: false });

1.2 SQL 직접 조회 (MCP Server)

-- feedback 라벨이 포함된 open 이슈 조회
SELECT
  i.number,
  i.title,
  i.type,
  i.status,
  i.labels,
  TO_CHAR(i.created_at, 'YYYY-MM-DD') AS created_at,
  ap.name AS assignee_name
FROM issues i
LEFT JOIN agent_personas ap ON i.assignee_id = ap.id
WHERE i.state = 'open'
  AND 'feedback' = ANY(i.labels)
ORDER BY i.created_at DESC;

1.3 리스트 출력

## 📋 SEMO 피드백 현황

| # | 제목 | 유형 | 상태 | 생성일 |
|---|------|------|------|--------|
| #104 | [Feature] 기능 요청 | feature | backlog | 2024-12-29 |

🔴 Phase 2: 피드백 분석

각 이슈를 분석하여 유효성, 중복 여부, 반영 위치를 파악합니다.

2.1 분석 기준

항목확인 내용
유효성요청이 명확하고 실현 가능한가?
중복 여부기존 이슈와 중복되는가? 이미 반영된 기능인가?
반영 위치어떤 패키지/스킬을 수정해야 하는가?
난이도수정 범위와 복잡도는 어느 정도인가?
영향도다른 기능에 미치는 영향은?

2.2 패키지 구조 참조

semo/
├── semo-system/
│   ├── semo-core/          # 원칙, 오케스트레이터, 커맨드
│   ├── semo-skills/        # 통합 스킬
│   ├── semo-hooks/         # Claude Code Hooks
│   └── meta/               # Meta 패키지
├── packages/
│   ├── cli/                # semo CLI
│   └── mcp-server/         # MCP 서버
└── semo-repository/        # Supabase 스키마

2.3 중복/무효 판별

-- 유사 제목의 closed 이슈 확인
SELECT number, title, state
FROM issues
WHERE title ILIKE '%{keyword}%'
  AND state = 'closed'
ORDER BY created_at DESC
LIMIT 5;
# 기존 스킬에서 유사 기능 검색
grep -r "{keyword}" --include="*.md" semo-system/semo-skills/

2.4 분석 결과 형식

### 📊 피드백 분석

#### #104 [Feature] draft-task-creator 스킬이 프로젝트 레포에 Task 생성

| 항목 | 결과 |
|------|------|
| **유효성** | ✅ 유효 |
| **중복** | ❌ 중복 없음 |
| **반영 위치** | `semo-skills/draft-task-creator/` |
| **난이도** | 🟡 중간 (레포 설정 로직 추가) |
| **영향도** | 🟢 낮음 (draft-task-creator만 수정) |
| **버전 타입** | MINOR |

**구현 방향**:
- project-channels.md에서 프로젝트별 레포 매핑 활용
- 기본 레포(semo) 대신 프로젝트 레포에 Task 생성

🔴 Phase 3: 우선순위 추천

3.1 우선순위 기준

우선순위기준예시
🔴 높음버그, 사용자 경험 저하, 빠른 수정 가능오류 수정, 중요 기능 누락
🟡 중간기능 개선, 적절한 난이도워크플로우 개선, 새 옵션 추가
🟢 낮음선택적 개선, 높은 난이도대규모 리팩토링, 선택적 기능
보류추가 논의 필요, 불명확한 요구사항요구사항 불명확, 기술적 제약

3.2 추천 순서 결정

## 🎯 처리 우선순위 추천

| 순위 | 이슈 | 이유 |
|------|------|------|
| 1️⃣ | #101 | 🔴 사용자 경험 개선, 낮은 난이도 |
| 2️⃣ | #103 | 🟡 문서 개선, 빠른 반영 가능 |
| 3️⃣ | #104 | 🟡 기능 추가, 중간 난이도 |
| 4️⃣ | #102 | 🟢 새 패키지, 높은 난이도 |

3.3 무효/보류 이슈 안내

### ⚠️ 검토 필요 이슈

| 이슈 | 상태 | 사유 |
|------|------|------|
| #99 | ⚪ 보류 | 이미 v1.2.0에서 반영됨 (중복) |
| #100 | ⚪ 보류 | 요구사항 불명확, 추가 논의 필요 |

🔴 Phase 4: 처리 권유

분석 완료 후 사용자에게 처리 여부를 확인합니다.

4.1 권유 메시지

---

## 💡 다음 단계

위 분석 결과를 바탕으로 피드백을 처리할 수 있습니다.

**처리 옵션**:
1. `"전체 처리해줘"` - 우선순위 순서대로 전체 처리
2. `"#104 처리해줘"` - 특정 이슈만 처리
3. `"#101, #103 처리해줘"` - 여러 이슈 선택 처리

**처리 시 자동 실행**:
- `process-feedback` 스킬 호출
- 분석 → 설계 → 구현 → 버저닝 → 배포 → Slack 알림

4.2 체이닝: process-feedback 호출

[check-feedback] 분석 및 우선순위 추천
    ↓
사용자: "처리해줘" / "#104 반영해줘"
    ↓
[자동] skill:process-feedback 호출
    ↓
피드백 처리 완료

Output Format

전체 출력 예시

[SEMO] Skill: check-feedback 호출

## 📋 SEMO 피드백 현황

| # | 제목 | 유형 | 상태 | 생성일 |
|---|------|------|------|--------|
| #104 | [Feature] draft-task-creator 스킬이 프로젝트 레포에 Task 생성 | feature | backlog | 2024-12-29 |
| #103 | [Feature] Supabase 작업 시 CLI 우선 사용 가이드 추가 | feature | backlog | 2024-12-29 |
| #102 | [Feature] semo-remote 패키지에 remote-summary 스킬 추가 | feature | backlog | 2024-12-29 |
| #101 | [Feature] request-test 스킬: 협업채널 대신 프로젝트 채널로 요청 | feature | backlog | 2024-12-29 |

---

### 📊 피드백 분석

#### #104 draft-task-creator 프로젝트 레포 생성
- **유효성**: ✅ | **중복**: ❌ | **난이도**: 🟡 중간
- **반영 위치**: `semo-skills/draft-task-creator/`

#### #101 request-test 프로젝트 채널 전송
- **유효성**: ✅ | **중복**: ❌ | **난이도**: 🟢 낮음
- **반영 위치**: `semo-skills/request-test/`

---

## 🎯 처리 우선순위 추천

| 순위 | 이슈 | 난이도 | 이유 |
|------|------|--------|------|
| 1️⃣ | #101 | 🟢 낮음 | 사용자 경험 개선, 기존 인프라 활용 |
| 2️⃣ | #103 | 🟢 낮음 | 문서 개선, 즉시 반영 가능 |
| 3️⃣ | #104 | 🟡 중간 | 기능 추가, 명확한 요구사항 |
| 4️⃣ | #102 | 🔴 높음 | 새 패키지 필요, 설계 검토 필요 |

---

## 💡 다음 단계

피드백을 처리하시겠습니까?

- `"전체 처리해줘"` - 우선순위대로 전체 처리
- `"#101 처리해줘"` - 특정 이슈만 처리

**총 4개의 Open 피드백 이슈**

이슈 없음

[SEMO] Skill: check-feedback 호출

## 📋 SEMO 피드백 현황

✅ Open 상태의 피드백 이슈가 없습니다.

모든 피드백이 처리되었습니다! 🎉

GitHub CLI Fallback

Supabase 연결이 불가능한 경우 GitHub CLI로 폴백:

# Fallback: GitHub API로 이슈 조회
gh api repos/semicolon-devteam/semo/issues \
  --jq '.[] | select(.state == "open") | select(.labels | any(.name == "feedback"))'

🔴 피드백 수정 완료 후 슬랙 알림 (NON-NEGOTIABLE)

피드백 이슈 수정 완료 후, 문의자에게 반드시 슬랙 알림을 전송합니다.

상세 프로세스는 process-feedback Skill 참조


References