시스템 메시지: 이 Skill이 호출되면
[SEMO] Skill: create-feedback-issue 호출 - {피드백 유형}시스템 메시지를 첫 줄에 출력하세요.
create-feedback-issue Skill
SEMO 패키지에 대한 사용자 피드백을 Supabase issues 테이블에 저장 (SEMO 공통 Skill)
Purpose
모든 SEMO 패키지에서 공통으로 사용하는 피드백 수집 Skill입니다.
🔴 데이터 소스 변경 (v2.0.0)
| 버전 | 데이터 소스 | 방식 |
|------|------------|------|
| v1.x | GitHub Issues | gh issue create CLI |
| v2.0 | Supabase | issues 테이블 INSERT |
🔴 NON-NEGOTIABLE RULES
로컬 수정 금지
feedback 스킬은 절대로 로컬 스킬 파일을 직접 수정하지 않습니다.
| 동작 | 허용 여부 | 설명 | |------|----------|------| | Supabase issues 테이블에 INSERT | ✅ 허용 | DB에 피드백 등록 | | 로컬 스킬 파일 수정 | ❌ 금지 | semo-system/ 내 파일 수정 불가 | | 로컬 CLAUDE.md 수정 | ❌ 금지 | .claude/ 내 파일 수정 불가 |
이유
- 로컬 수정은 npm 패키지 업데이트 시 덮어씌워짐
- SEMO 팀에 피드백이 전달되지 않음
- 다른 사용자에게 개선사항이 공유되지 않음
Meta 환경 예외
Meta 환경(semo 레포 직접 작업)에서만 직접 수정 허용:
# Meta 환경 확인 방법
git remote -v | grep "semicolon-devteam/semo"
# 또는
[ -d "semo-system/meta" ] && echo "Meta 환경"
| 환경 | 동작 | |------|------| | 일반 환경 (semo init 설치) | 이슈 생성만 허용 | | Meta 환경 (semo 레포) | 직접 수정 허용 (process-feedback 스킬 사용) |
Feedback Types
| 유형 | 설명 | issues.type |
|------|------|-------------|
| bug | 의도한 대로 동작하지 않음 | bug |
| feature | 개선 아이디어, 새 기능 요청 | feature |
Note: labels 컬럼에
feedback값이 필수로 포함됩니다.
Workflow
1. 피드백 유형 확인 (버그 or 제안)
↓
2. 정보 수집 (질문/결과/기대사항)
↓
3. Supabase issues 테이블에 INSERT
↓
4. 완료 메시지 (이슈 번호 안내)
Execution
Step 1: 피드백 정보 수집
사용자에게 다음 정보를 수집:
- 피드백 유형 (bug / feature)
- 제목
- 상세 내용 (재현 단계, 기대 결과 등)
Step 2: Supabase로 이슈 생성
// Supabase 클라이언트를 사용한 이슈 생성
const { data, error } = await supabase
.from('issues')
.insert({
office_id: officeId, // 현재 Office ID
title: `[Feedback] ${title}`,
body: body,
type: feedbackType, // 'bug' or 'feature'
state: 'open',
status: 'backlog',
labels: ['feedback', packageName]
})
.select('number')
.single();
Step 2-1: SQL 직접 사용 (MCP Server)
-- 버그 피드백 생성
INSERT INTO issues (office_id, title, body, type, state, status, labels)
VALUES (
'{office_uuid}',
'[Feedback] {제목}',
'{본문}',
'bug',
'open',
'backlog',
ARRAY['feedback', 'semo-skills']
)
RETURNING number;
-- 개선 제안 생성
INSERT INTO issues (office_id, title, body, type, state, status, labels)
VALUES (
'{office_uuid}',
'[Enhancement] {제목}',
'{본문}',
'feature',
'open',
'backlog',
ARRAY['feedback', 'semo-skills']
)
RETURNING number;
Step 3: create_feedback_issue 함수 사용 (권장)
마이그레이션에 포함된 헬퍼 함수를 사용:
-- 피드백 이슈 생성 함수 호출
SELECT * FROM create_feedback_issue(
'{office_uuid}'::uuid,
'[Feedback] 스킬 동작 오류',
'## 문제 상황\n\nwrite-code 스킬이 제대로 동작하지 않습니다...',
'bug',
ARRAY['feedback', 'semo-skills']
);
Output
[SEMO] Feedback: 이슈 생성 완료
✅ 피드백이 등록되었습니다!
**이슈**: #{이슈번호}
**제목**: {이슈 제목}
**유형**: {버그/기능요청}
**상태**: backlog
GitHub CLI Fallback
Supabase 연결이 불가능한 경우 GitHub CLI로 폴백:
# 버그 이슈 (Fallback)
gh issue create \
--repo semicolon-devteam/semo \
--title "[Feedback] {제목}" \
--body-file /tmp/issue-body.md \
--label "feedback" \
--label "bug"
Error Handling
Supabase 연결 오류
⚠️ **Supabase 연결 오류**
이슈를 생성할 수 없습니다.
- MCP 서버 설정을 확인해주세요.
- GitHub CLI 폴백을 시도합니다...
필수 필드 누락
⚠️ **입력 오류**
다음 필드가 필요합니다:
- 피드백 유형 (bug / feature)
- 제목
- 상세 내용