Skip to content
Back to skills

Bbucle Road Create

ASecurity

새로운 뿌클로드 페이지를 추가합니다. Figma 디자인 분석, 데이터 추가, 브라우저 렌더링 검증을 포함합니다.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
developmenttypescriptgobashnode

Works with

  • mcp

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill bbucle-road-create --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bbucle Road Create?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bbucle Road Create
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-bbucle-road-create/badge)](https://www.skillsdirectory.com/skills/david-li0406-bbucle-road-create)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bbucle-road-create
description: 새로운 뿌클로드 페이지를 추가합니다. Figma 디자인 분석, 데이터 추가, 브라우저 렌더링 검증을 포함합니다.
---

# 뿌클로드 새 페이지 추가

## 입력 정보

1. **Figma URL** (필수) - 디자인 명세 (node-id 포함)
2. **페이지 ID** (선택) - kebab-case (예: ticketlink-live-arena)
   - 미입력시 Figma 디자인에서 추론

---

## 워크플로우

### Phase 1: 디자인 분석

1. **Figma MCP로 디자인 분석**
   ```
   - get_screenshot: 전체 페이지 스크린샷
   - get_design_context: 각 섹션별 상세 스타일 (nodeId별로 호출)
   - get_metadata: 구조 파악
   ```

2. **기존 데이터 구조 파악**
   - `web/screens/BbucleRoadScreen/config/bbucleRoadData.ts` 읽기
   - 기존 페이지(KSPO DOME, 고척스카이돔 등) 구조 참고

3. **변경 범위 판단**
   - ✅ 데이터만 변경: `bbucleRoadData.ts` 수정
   - ⚠️ 코드 변경 필요: 새 레이아웃/섹션/컴포넌트 추가 시
     - `BbucleRoadScreen/sections/` 컴포넌트 수정
     - 타입 정의 수정
     - 새 섹션 컴포넌트 생성

---

### Phase 2: 데이터 구조 설계

**필수 섹션:**
- `id`: 페이지 고유 ID (kebab-case)
- `title`: 페이지 제목
- `titleImageUrl`, `headerBackgroundImageUrl`: 이미지 (placeholder 가능)
- `wheelchairUserCommentHtml`: 휠체어 사용자 한마디
- `routeSection`: 동선정보 (지하철, 콜택시, 자차, 버스 등)
- `ticketInfoSection`: 매표 및 입장동선
- `seatViewSection`: 좌석 시야
- `nearbyPlacesSection`: 근처 맛집
- `reviewSection`: 후기
- `ctaFooterSection`: CTA 버튼
- `overviewSection`: 한눈에 보기

---

### Phase 3: 데이터 추가

`web/screens/BbucleRoadScreen/config/bbucleRoadData.ts`에 새 항목 추가:

```typescript
'page-id': {
  "id": "page-id",
  "title": "휠체어로 ??? 어때?",
  // ... 전체 데이터 구조
}
```

---

### Phase 4: 디자인 검증 (반복) ⚠️ 가장 중요

#### 4-0. Figma 스크린샷 획득 (시각적 비교용)
```
# 각 섹션별 nodeId로 Figma 스크린샷 획득
get_screenshot(nodeId: "<섹션별 nodeId>")
```
- Claude가 **직접 이미지를 볼 수 있음**
- 브라우저 스크린샷과 **시각적 1:1 비교** 가능

**주요 섹션 nodeId 예시 (Figma URL에서 추출):**
- 교통정보: `node-id=XXX:YYY`
- 매표정보: `node-id=XXX:YYY`
- 시야정보: `node-id=XXX:YYY`
- 근처맛집: `node-id=XXX:YYY`

#### 4-1. 브라우저 스크린샷 캡처
```bash
yarn web  # Dev 서버 실행
cd web/screens/BbucleRoadScreen/scripts
npx tsx capture-screenshots.ts <pageId> desktop
```

#### 4-2. 시각적 비교 (CRITICAL - 반드시 수행!)

**Claude가 두 이미지를 직접 보고 비교:**
1. Figma 스크린샷 (`get_screenshot` 결과)
2. 브라우저 스크린샷 (Playwright 캡처 결과)

**육안으로 확인할 항목:**
- 전체 레이아웃 일치 여부
- 배지/태그 색상 (배경색, 텍스트색, 테두리)
- 박스 중첩 구조 (이중 박스, 중복 제목)
- 텍스트 스타일 (크기, 굵기, 줄간격)
- 간격 (padding, margin, gap)

#### 4-3. 섹션별 상세 스타일 비교 (필수!)

**각 섹션마다 아래 과정 수행:**

1. **Figma 스타일 추출**
   - `get_design_context`로 해당 섹션 nodeId의 상세 스타일 확인
   - 배경색, 테두리, 폰트, 패딩, 마진 등 수치 기록

2. **현재 데이터/컴포넌트 스타일 확인**
   - `bbucleRoadData.ts`의 HTML 인라인 스타일 확인
   - 해당 섹션 컴포넌트(`.tsx`) 스타일 확인

3. **1:1 비교표 작성 (MANDATORY)**
   ```markdown
   | 항목 | Figma | 현재 데이터/컴포넌트 | 일치여부 |
   |------|-------|---------------------|---------|
   | 배지 배경색 | #fff | #0C76F7 | ❌ |
   | 배지 테두리 | 1px solid #D8D8DF | 없음 | ❌ |
   | ... | ... | ... | ... |
   ```

4. **차이점 발견 시 즉시 수정**
5. **스크린샷 재캡처 후 재비교** (4-0부터 반복)

---

## ⚠️ 세부 검증 체크리스트 (CRITICAL)

### 배지/태그 스타일
| 검증 항목 | 확인 방법 |
|----------|----------|
| 배경색 | filled (파란 배경) vs outline (흰 배경+테두리) 구분 |
| 테두리 | border 유무 및 색상 (#D8D8DF 등) |
| 텍스트 색상 | 배경과 대비되는 색상 |
| border-radius | 50px (pill) vs 4px/8px/12px |
| padding | px 또는 em 단위 정확히 |

**⚠️ 흔한 실수: Figma에서 outline 스타일인데 filled로 구현**

### 박스/컨테이너 구조
| 검증 항목 | 확인 방법 |
|----------|----------|
| 중첩 구조 | 컴포넌트가 만드는 박스 + 데이터 HTML의 박스 = 이중 래핑 주의 |
| 배경색 | #F7F8FA (연회색) vs #fff (흰색) |
| border-radius | 4px vs 8px vs 12px |
| padding/gap | 정확한 수치 |

**⚠️ 흔한 실수: 컴포넌트에서 박스+제목 렌더링 + 데이터 HTML에서도 박스+제목 = 중복**

### 텍스트 스타일
| 검증 항목 | 확인 방법 |
|----------|----------|
| font-size | px 또는 em 단위 |
| font-weight | 400 (regular) vs 500 (medium) vs 700 (bold) |
| line-height | px 또는 배수 |
| color | hex 코드 정확히 |
| 줄바꿈 위치 | `<br>` 위치 Figma와 동일 |

### 아이콘
| 검증 항목 | 확인 방법 |
|----------|----------|
| 아이콘 타입 | SUBWAY, CAR, TAXI, BUS 등 |
| 크기 | width, height |
| 색상 | fill color |

---

## ⚠️ 흔히 놓치는 패턴 (MUST CHECK)

### 1. 인라인 스타일 불일치
- **문제**: 새 페이지 HTML에 다른 스타일 적용
- **해결**: 기존 페이지(KSPO DOME, 고척스카이돔)의 동일 요소 스타일 복사 후 수정

### 2. 컴포넌트 래핑 중복
- **문제**: 컴포넌트가 박스/제목 렌더링 + 데이터 HTML도 박스/제목 포함
- **해결**:
  - 컴포넌트 코드 확인 (`sections/*.tsx`)
  - 컴포넌트가 래핑하는 요소와 데이터 HTML 중복 제거
  - 데이터 HTML은 **본문만** 제공

### 3. 배지 스타일 (outline vs filled)
- **문제**: Figma는 흰배경+테두리인데 파란배경으로 구현
- **해결**: Figma에서 배지의 fill/stroke 속성 확인

### 4. 기존 페이지와 패턴 불일치
- **문제**: 같은 요소인데 페이지마다 다른 스타일
- **해결**: 기존 페이지의 동일 요소 HTML 복사 후 내용만 수정

### 5. 링크 URL 검증 ⚠️ NEW
- **문제**: 기존 페이지에서 복사한 HTML의 링크가 다른 페이지/장소 것일 수 있음
- **예시**: 제보 링크가 `scc.page.link/NjHT` (KSPO DOME용)인데 TLA에도 그대로 복사됨
- **해결**:
  - 모든 `<a href="...">` 링크 URL을 Figma 디자인과 대조
  - 새 페이지에 맞는 링크로 교체 (사용자에게 확인 필요)

### 6. 컴포넌트 styled-components 스타일 검증 ⚠️ NEW
- **문제**: 섹션 컴포넌트(`.tsx`)의 styled-components 스타일이 Figma와 다를 수 있음
- **예시**: `NoticeBoxContainer`의 배경색이 `#FFF9E6` (연노랑)인데 Figma는 `#fff` + 테두리
- **해결**:
  - 데이터뿐 아니라 **컴포넌트 스타일**도 Figma와 비교
  - `get_design_context`로 Figma 스타일 추출 후 컴포넌트 스타일과 대조

### 7. HTML 내용 검증 (다른 페이지 내용 복사됨) ⚠️ NEW
- **문제**: 기존 페이지에서 HTML을 복사했을 때 **내용 자체**가 다른 페이지 것일 수 있음
- **예시**: `wheelchairUserTipHtml`이 KSPO DOME 내용("주차장 실시간 혼잡도")인데 TLA에도 그대로 복사됨
- **해결**:
  - Figma에서 **텍스트 내용** 확인 (`get_design_context` 또는 `get_screenshot`)
  - 텍스트 내용이 새 페이지에 맞는지 확인

### 8. gap/margin 정확한 수치 ⚠️ NEW
- **문제**: Figma의 `gap-8px`이 데이터에서 `gap: 4px`로 잘못 적용됨
- **해결**:
  - `get_design_context`로 정확한 gap, padding, margin 수치 확인
  - Tailwind 클래스 (`gap-[8px]`) → 인라인 스타일 (`gap: 8px`) 변환

### 9. bold/강조 텍스트 확인 ⚠️ NEW
- **문제**: Figma에서 **bold** 처리된 텍스트가 일반 텍스트로 구현됨
- **해결**:
  - `get_design_context` 결과에서 `font-weight: 700` 또는 `Bold` 폰트 확인
  - 해당 텍스트에 `<b>` 또는 `font-weight: 700` 적용

---

## 주요 파일

| 파일 | 설명 |
|------|------|
| `web/screens/BbucleRoadScreen/config/bbucleRoadData.ts` | 페이지 데이터 |
| `web/screens/BbucleRoadScreen/index.tsx` | 메인 컴포넌트 |
| `web/screens/BbucleRoadScreen/sections/*.tsx` | 섹션 컴포넌트 |
| `web/screens/BbucleRoadScreen/scripts/capture-screenshots.ts` | 스크린샷 캡처 |

---

## 최종 체크리스트

### 데이터 완성도
- [ ] 모든 필수 섹션 포함
- [ ] HTML 인라인 스타일이 **기존 페이지 패턴과 일치**
- [ ] **링크 URL**이 새 페이지에 맞는지 확인 (다른 페이지 링크 복사 주의)
- [ ] **텍스트 내용**이 새 페이지에 맞는지 확인 (다른 페이지 내용 복사 주의)

### 세부 디자인 검증
- [ ] **배지/태그**: outline vs filled, 테두리, 색상
- [ ] **박스 구조**: 컴포넌트+데이터 HTML 중첩 없음
- [ ] **텍스트**: font-size, weight, line-height, color
- [ ] **bold 처리**: Figma에서 강조된 텍스트 `<b>` 태그 적용
- [ ] **아이콘**: 타입, 크기, 색상
- [ ] **gap/padding/margin**: 정확한 px 수치 (4px vs 8px 등)

### 컴포넌트 스타일 검증
- [ ] **섹션 컴포넌트** styled-components 스타일이 Figma와 일치
- [ ] 배경색, 테두리, border-radius 확인
- [ ] 컴포넌트 수정이 필요하면 다른 페이지에 영향 없는지 확인

### 검증 프로세스
- [ ] 각 섹션별 **Figma vs 브라우저 1:1 비교표** 작성
- [ ] 차이점 **0개**가 될 때까지 반복
- [ ] 데스크톱 뷰 완전 일치
- [ ] 모바일 뷰 완전 일치

### 이미지
- [ ] 이미지 URL placeholder 표시
- [ ] 사용자에게 이미지 등록 안내

### 코드 품질
- [ ] `yarn lint` 통과
- [ ] `yarn tsc --noEmit` 통과

---

## 참고

- 기존 페이지 예시: `gocheok-skydome`, `kspo-dome`
- CLAUDE.md의 Figma Implementation Guidelines 참조

---

## Figma MCP 도구 참조

### 사용 가능한 도구 (figma-dev-mode-mcp-server)

| 도구 | 설명 | 용도 |
|------|------|------|
| `get_screenshot` | 노드의 스크린샷 이미지 반환 | **시각적 비교용** - Claude가 이미지를 직접 볼 수 있음 |
| `get_design_context` | UI 코드/스타일 컨텍스트 | 상세 스타일 수치 추출 (색상, 폰트, 패딩 등) |
| `get_metadata` | 노드 구조 메타데이터 (XML) | 컴포넌트 구조 파악 |
| `get_variable_defs` | 디자인 변수 정의 | 색상/폰트 변수 확인 |

### nodeId 추출 방법
Figma URL에서 `node-id` 파라미터 추출:
```
https://figma.com/design/xxx/yyy?node-id=1038-5703
→ nodeId: "1038:5703" (하이픈을 콜론으로 변환)
```

### 시각적 비교 워크플로우
```
1. get_screenshot(nodeId: "섹션nodeId") → Figma 이미지
2. capture-screenshots.ts 실행 → 브라우저 이미지
3. 두 이미지를 **시각적으로 직접 비교**
4. 차이점 발견 → get_design_context로 상세 스타일 확인 → 수정
5. 반복
```

**⚠️ 중요**: `get_screenshot`은 이미지를 파일로 저장하지 않음. Claude가 메모리에서 직접 확인.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…