사용자가 "탐조 대시 만들어줘" 한마디로 좋은 대시를 만들려면 LLM이 두 가지 정책을 동시에 알아야 한다.
사용자 자연어를 구조화된 DashIntent로 변환. LLM이 Blueprint/Style/Data 레이어를 올바르게 선택할 수 있는 기반 정보를 추출.
Blueprint = 도메인이 "좋은 UX"가 되기 위해 반드시 지켜야 할 구조 규칙. 코드 생성 전에 LLM의 context에 주입된다.
| 도메인 | primaryMedia | layoutPattern | 핵심 interaction | riskFields |
|---|---|---|---|---|
| NATURE | REQUIRED | MEDIA_LIST | tap-expand + large photo | photo, location |
| FITNESS | NONE | STAT_GRID | progress ring | current_value, goal |
| FINANCE | NONE | STAT_GRID | sparkline trend | price, change_pct |
| NEWS | PREFERRED | HEADLINE_LIST | tap-to-open | headline, source |
| WEATHER | PREFERRED | HERO_STAT | hourly swipe | temp, condition |
| MUSIC | REQUIRED | FULL_BLEED | playback controls | album_art, track |
| CALENDAR | NONE | TIMELINE | event tap | title, time |
기존 DashManifest의 skin 태그와 직접 연결. 도메인별 기본 스킨 자동 선택.
도메인별 공개 API 지식 내장. 인증 키 불필요 API 우선 선택.
| 도메인 | API | 인증 | 주요 데이터 |
|---|---|---|---|
| NATURE | iNaturalist | 불필요 | species, photo, location, date |
| WEATHER | Open-Meteo | 불필요 | temp, condition, forecast |
| NEWS | HackerNews / RSS | 불필요 | title, url, score |
| FINANCE | Yahoo Finance | 불필요 | price, change, chart |
| MUSIC | Last.fm / MediaSession | 선택 | track, artist, album_art |
Blueprint + Style + Data가 모두 LLM context에 주입된 상태에서 3개 파일을 동시 생성.
생성된 코드가 Blueprint·Style 정책을 준수하는지 자동 검사. 위반 시 자동 수정 제안.
이 아키텍처는 BirdDash 실제 구현을 통해 검증되었다. 오늘(2026-04-03) 서울 GPS 기준 35,430건 iNaturalist 실시간 데이터 + 시민과학자 실제 사진 표시 확인.
| 정책 | BirdDash 적용 결과 |
|---|---|
| UX Blueprint: images REQUIRED | ✅ 48dp 썸네일 + 180dp 확장 사진 |
| UX Blueprint: tap-to-expand | ✅ AnimatedVisibility 상세 펼침 |
| UX Blueprint: location-aware | ✅ GPS requestLocationUpdates (최대 6초) |
| UX Blueprint: manual refresh | ✅ 헤더 🔄 버튼 |
| Design Style: dark-ocean skin | ✅ #0D1B2A→#1A3040 + #4FC3F7 액센트 |
| Data: iNaturalist (no key) | ✅ 서울 35,430건 실시간 조류 데이터 |
| Data: photo URL → HTTPS | ✅ /square.→/medium. + https:// 강제 |
RPT-024 위젯 생성 프롬프트 고도화 전략은 Dash Creator 아키텍처의 Layer 2a (UX Blueprint)와 Layer 4 (Code Generator)에 직접 연결된다.
RPT-024의 8대 도메인 분류 × 컴포넌트 풀이 UX Blueprint Policy의 규칙 소스다.
| RPT-024 산출물 | Blueprint 적용 | 예시 |
|---|---|---|
| 8대 도메인 분류 체계 | domain 키 → Blueprint 규칙 선택 | NATURE → images REQUIRED, tap-to-expand |
| 컴포넌트 풀 (14종) | features 목록 → 필수 컴포넌트 지정 | Finance → area_chart + badge + detail_grid |
| 사이즈 × 컴포넌트 매트릭스 | size 제약 → 허용 컴포넌트 필터 | Tiny: icon + number만 허용 |
| S1.5 컴포넌트 자동 선정 | Blueprint의 suggested_components 필드로 흡수 | LLM이 도메인×사이즈 기준으로 5개 선정 |
RPT-024 TO-BE 워크플로우(S1~S5)가 Code Generator의 LLM 프롬프트 조합 방식을 정의한다.
| RPT-024 단계 | Generator 프롬프트 레이어 |
|---|---|
S3: 기반 — widget_prompt.md | 공통 디자인 시스템 컨텍스트 |
S3: 추가 — domain_prompts/{category}.md | 도메인 전문 지식 (Finance=차트패턴·색상규칙, Nature=사진필수 등) |
| S3: 추가 — 컴포넌트 CSS/SVG 가이드 | Blueprint에서 선정된 컴포넌트 구현 스펙 |
| S3: 추가 — 현실적 샘플 데이터 | 도메인별 실제 범위 값 (삼성전자 72,000~85,000원) |
| S5: 품질 검증 | Layer 5 (Validator) — DOM 파싱 + overflow 검사 + 1회 재생성 |
연결 요약 — RPT-024가 정의한 "도메인 분류 × 컴포넌트 풀 × 프롬프트 조합" 3요소가 이 아키텍처에서 Blueprint Registry + Generator 프롬프트 엔진으로 구현된다. RPT-024는 Dash Creator의 프롬프트 레이어 설계 근거 문서다.
| Phase | 내용 | 핵심 컴포넌트 | 담당 |
|---|---|---|---|
| P1 | 정책 정의 | UXBlueprintRegistry, StyleRegistry | CTL + DD |
| P2 | Intent Engine | LLM 연동 + DashIntent 파서 | AIE + CTL |
| P3 | Code Generator | 프롬프트 엔진 + 3-파일 생성 | CTL + PME |
| P4 | Validator | Policy compliance 체커 | QA + CTL |
| P5 | Telegram UI | "대시 만들어줘" 대화형 플로우 | CV + CTL |
Blueprint = 구조 지식 — 도메인을 아는 사람이라면 당연히 알아야 할 것들. "탐조면 사진", "주식이면 숫자".
Style = 시각 지식 — skin 태그로 이미 선언된 것의 구현 규칙. 동일한 컴포넌트가 도메인별로 다른 색/크기로 렌더링.
이 둘이 모두 LLM context에 주입될 때, 사용자가 "탐조 대시" 한마디만 해도 BirdDash 수준의 결과가 자동 생성되는 것이 목표.