SEMO 패키지 피드백 수집 및 이슈 생성 (Supabase DB 기반). Use when (1) /SEMO:feedback 명령어 호출, (2) 사용자가 SEMO 동작 오류 지적, (3) 개선 제안 요청.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: create-feedback-issue
description: |
SEMO 패키지 피드백 수집 및 이슈 생성 (Supabase DB 기반).
Use when (1) /SEMO:feedback 명령어 호출, (2) 사용자가 SEMO 동작 오류 지적, (3) 개선 제안 요청.
tools: [Supabase, Bash, Read]
model: inherit
---
> **시스템 메시지**: 이 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 레포 직접 작업)에서만 직접 수정 허용:
```bash
# 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
```text
1. 피드백 유형 확인 (버그 or 제안)
↓
2. 정보 수집 (질문/결과/기대사항)
↓
3. Supabase issues 테이블에 INSERT
↓
4. 완료 메시지 (이슈 번호 안내)
```
## Execution
### Step 1: 피드백 정보 수집
사용자에게 다음 정보를 수집:
- 피드백 유형 (bug / feature)
- 제목
- 상세 내용 (재현 단계, 기대 결과 등)
### Step 2: Supabase로 이슈 생성
```typescript
// 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)
```sql
-- 버그 피드백 생성
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 함수 사용 (권장)
마이그레이션에 포함된 헬퍼 함수를 사용:
```sql
-- 피드백 이슈 생성 함수 호출
SELECT * FROM create_feedback_issue(
'{office_uuid}'::uuid,
'[Feedback] 스킬 동작 오류',
'## 문제 상황\n\nwrite-code 스킬이 제대로 동작하지 않습니다...',
'bug',
ARRAY['feedback', 'semo-skills']
);
```
## Output
```markdown
[SEMO] Feedback: 이슈 생성 완료
✅ 피드백이 등록되었습니다!
**이슈**: #{이슈번호}
**제목**: {이슈 제목}
**유형**: {버그/기능요청}
**상태**: backlog
```
## GitHub CLI Fallback
Supabase 연결이 불가능한 경우 GitHub CLI로 폴백:
```bash
# 버그 이슈 (Fallback)
gh issue create \
--repo semicolon-devteam/semo \
--title "[Feedback] {제목}" \
--body-file /tmp/issue-body.md \
--label "feedback" \
--label "bug"
```
## Error Handling
### Supabase 연결 오류
```markdown
⚠️ **Supabase 연결 오류**
이슈를 생성할 수 없습니다.
- MCP 서버 설정을 확인해주세요.
- GitHub CLI 폴백을 시도합니다...
```
### 필수 필드 누락
```markdown
⚠️ **입력 오류**
다음 필드가 필요합니다:
- 피드백 유형 (bug / feature)
- 제목
- 상세 내용
```
## References
- [issues 테이블 마이그레이션](../../../semo-repository/supabase/migrations/20260113003_issues_discussions.sql)
- [Issue Templates](references/issue-templates.md)
- [Trigger Detection](references/trigger-detection.md)
No comments yet. Be the first to comment!