# task-744.1 완료 보고서: frontend-design / canvas-design "poster" 키워드 충돌 해결

## SCQA

**S**: frontend-design(588줄)과 canvas-design 두 스킬이 운영 중이며, task-743.1에서 UI UX Pro Max 병합 완료 후 "poster" 키워드 충돌이 미해결 건으로 남아있었다.

**C**: 사용자가 "poster 만들어줘"라고 요청 시 frontend-design(코드 기반 웹 UI)과 canvas-design(정적 PNG/PDF 이미지)이 동시에 트리거되어 의도하지 않은 스킬이 활성화될 수 있었다. 추가로 "design", "artifacts" 등 다른 키워드에서도 경합이 발생했다.

**Q**: 두 스킬의 description을 수정하여 "poster" 요청 시 canvas-design만 트리거되고, 웹 UI 요청 시 frontend-design만 트리거되도록 분리할 수 있는가?

**A**: description 수정으로 충돌 해결 완료. frontend-design에서 "posters", "artifacts" 제거하고 "(code-based web UI, NOT static image/poster generation)" 명시, canvas-design에서 "design" → "graphic design, illustration"으로 한정하고 "(image output, NOT code-based web UI)" 명시. 전체 47개 스킬 충돌 스캔도 수행하여 HIGH 4건, LOW 10건, 완전 중복 1쌍을 식별했다.

---

## 작업 내용

### 1. 충돌 분석
- **겹치는 키워드**: "poster/posters", "design", "artifacts/art", "create"
- **frontend-design 본래 의도**: 코드 기반 웹 UI 생성 (HTML/CSS/JS, React 등)
- **canvas-design 본래 의도**: 정적 시각물 PNG/PDF 생성 (디자인 철학 기반 아트워크)

### 2. 트리거 분리 적용

**frontend-design description 변경:**
- 변경 전: `"...build web components, pages, artifacts, posters, or applications..."`
- 변경 후: `"...build web components, pages, or applications (code-based web UI, NOT static image/poster generation)..."`
- "artifacts", "posters" 제거, 상호 배제 조건 명시

**canvas-design description 변경:**
- 변경 전: `"...create a poster, piece of art, design, or other static piece..."`
- 변경 후: `"...create a poster, piece of art, graphic design, illustration, or other static visual piece (image output, NOT code-based web UI)..."`
- "design" → "graphic design, illustration" 한정, 상호 배제 조건 명시

### 3. 수정 파일 (5개)

- `/home/jay/.claude/skills/frontend-design/SKILL.md` (하드링크 inode 1218069)
- `/home/jay/.agents/skills/frontend-design/SKILL.md` (하드링크 inode 1218069, 자동 반영)
- `/home/jay/.claude/.agents/skills/frontend-design/SKILL.md` (별도 파일 inode 575547)
- `/home/jay/.claude/skills/canvas-design/SKILL.md` (하드링크)
- `/home/jay/.agents/skills/canvas-design/SKILL.md` (하드링크, 자동 반영)

### 4. 검증 결과

- YAML frontmatter `yaml.safe_load()`: 5개 파일 전부 PASS
- 하드링크 동기화: frontend-design 2쌍, canvas-design 1쌍 모두 정상
- 트리거 키워드 테스트:
  - "poster" → canvas-design 트리거 (frontend-design은 "NOT poster" 부정 맥락)
  - "design" → 양쪽 일반어이나, "graphic design" vs "web UI design"으로 맥락 구분
  - "web component" → frontend-design만 트리거
  - "create art" → canvas-design만 트리거

### 5. 전체 스킬 충돌 스캔 (47개)

**HIGH 충돌 (4건):**
1. **conversion-copywriter vs copywriting-prompt** — "카피라이팅", "CTA", "전환율" 중복. 통합 또는 트리거 명확화 필요
2. **book-writer vs human-writer** — "집필", "챕터", "원고" 중복. human-writer를 보조 스킬로 명시 필요
3. **blog-dominance vs seo-audit vs programmatic-seo** — "SEO" 3중 경합. blog-dominance에 YAML 프론트매터 추가 필요
4. **copywriting vs copywriting-prompt vs conversion-copywriter** — "카피라이팅", "랜딩 페이지" 3중 경합

**LOW 충돌 (10건):**
seo-audit/programmatic-seo, content-strategy/programmatic-seo, canvas-design/frontend-design(수정 완료), pdf/docx, deep-dive-analyzer/insight-extractor, cross-verified-research/research-prompt, playwright-generate-test/webapp-testing, pdp-agent/swing-mortem, fullstack-builder/frontend-design, competitor-analyst/insight-extractor

**완전 중복 (1건):**
- conversion-copywriter ≈ copywriting-prompt — 통합 강력 권장

**구조적 문제:**
- YAML 프론트매터 없는 스킬 11개 → 일괄 추가 권장

---

## 발견 이슈 및 해결

### 자체 해결 (3건)
1. **frontend-design "artifacts" 키워드도 충돌 유발** — "artifacts"가 canvas-design의 "piece of art"와 혼동 가능하여 함께 제거
2. **canvas-design "design" 단독 키워드 과도한 범위** — "graphic design, illustration"으로 범위 한정하여 웹 UI "design"과 구분
3. **`.claude/.agents/` 경로 별도 파일 존재 확인** — inode 확인으로 하드링크와 별도 파일 구분 후 각각 수정 적용

### 범위 외 미해결 (4건)
1. **conversion-copywriter + copywriting-prompt 통합** — 범위 외 사유: 별도 스킬 구조 변경은 본 작업 범위 초과
2. **human-writer 독립 트리거 정리** — 범위 외 사유: book-writer 연동 구조 변경 필요
3. **blog-dominance YAML 프론트매터 추가** — 범위 외 사유: 본문 트리거 방식 스킬 전체 일괄 처리 필요
4. **YAML 프론트매터 없는 11개 스킬 일괄 정비** — 범위 외 사유: 전체 스킬 구조 리팩토링 작업

---

## QC 자동 검증

- **overall**: PASS
- **verified_at**: 2026-03-20T20:25:06
- **summary**: 3 PASS, 7 SKIP
- file_check: PASS (보고서 5431 bytes)
- data_integrity: PASS
- critical_gap: PASS
- test_runner: SKIP (관련 테스트 파일 0개 — Lv.1 설정 작업)
- tdd_check: SKIP (SKILL.md는 코드가 아닌 설정 파일)
- pyright_check/style_check: SKIP (Python 파일 변경 없음)
- .done 파일: qc_verify.py --gate가 자동 생성
