DASH CREATOR — 개발 대시보드

대화 한 마디로
Dash를 만드는 플랫폼

6-Layer 파이프라인 · 9개 도메인 · 6개 skin · LLM 코드 생성 · Kotlin 자동 생성

📅 설계 완료 2026-04-03
🏗️ 구현 상태 스켈레톤 완성
🎯 타겟 Android Dash (Phase 1)
🤖 LLM Claude → Gemini → GPT (구현 순서)
7
Python 파일 생성됨
9
도메인 지원
6
Skin 정의
3
미결 사항 (LLM 연동 등)
Architecture
6-Layer 파이프라인
Layer 1
💬 Intent Engine
자연어 → DashIntent { domain, size, skin, features, constraints }
✅ 스켈레톤 완성
engine/creator_intent.py · 키워드 매핑 9개 도메인 + LLM fallback
Layer 2a
🧭 UX Blueprint
도메인별 구조 규칙
required_features · interaction
✅ 완성
Layer 2b
🎨 Design Style
skin 연동 CSS 토큰
색상 · 배지 · 차트 stroke
✅ 완성
Layer 3
🔌 Data Layer
도메인별 API 설정 · Android 권한 · 필드 매핑 · Kotlin 데이터클래스
✅ 완성
engine/data_registry.py · iNaturalist, Yahoo Finance, OpenWeather 등 9개
Layer 4
⚙️ Code Generator
Blueprint + Style + Data → LLM 호출 → {Name}Dash.kt + {Name}Repository.kt + DASH.md 생성
⚡ LLM 연동 필요
engine/creator_codegen.py · LLM 없으면 시뮬레이션 폴백 자동 동작
Layer 5
🛡️ Validator
Blueprint 필수 요소 검사 · DASH.md 스키마 검사 · 실패 시 1회 재생성
✅ 스켈레톤 완성
engine/creator_validator.py · 10개 검사 규칙 정의됨
Layer 6
📱 Runtime
DashInstaller → SpaceRepository → SpaceScreen (기존 Android 런처 통합)
⬜ Phase 2
apps/android-launcher/ · BirdDash가 레퍼런스 구현
Architecture
구조 다이어그램

자연어 요청이 Kotlin 코드로 변환되는 전체 데이터 흐름입니다. 각 레이어의 입출력 타입과 담당 파일을 한눈에 확인할 수 있습니다.

API Entry Point
POST /api/creator/generate
src/api/creator_api.py
IN  GenerateRequest { text, size?, skin?, model? }
OUT GenerateResponse { status, intent, files, validation, meta }
→ L1~L5 순차 실행 · confidence < 0.5 시 needs_clarification · 검증 실패 시 1회 재생성
Claude API
model: claude-sonnet
Phase 1 기본 (코드 생성)
claude-haiku (빠른 작업)
text: str
Layer 1
Intent Engine
src/engine/creator_intent.py
✅ Done
IN  str "탐조 대시 만들어줘"
OUT DashIntent { domain, subcategory, size, skin, features[], constraints[], confidence, raw_input }
DOMAIN_KEYWORDS 키워드 매핑 → confidence 계산 → LLM fallback (confidence < 0.5) → target_asset 추출
DOMAIN_KEYWORDS
9개 도메인 키워드 테이블
NATURE · FINANCE · WEATHER
HEALTH · PRODUCTIVITY · COMMUTE
MEDIA · BUSINESS · LIFESTYLE
DashIntent
Layer 2a
UX Blueprint
blueprint_registry.py
IN domain
OUT BlueprintRule
required_features[]
layout_type
suggested_components[]
interaction_patterns[]
Layer 2b
Design Style
style_registry.py
IN domain + skin?
OUT StyleRule
background_from/to
accent · text_primary
ComponentTokens
finance_up/down
9 Blueprint Rules
DOMAIN → required_features
e.g. NATURE:
images, location_aware
tap_to_expand
6 Skin Tokens
dark-ocean · neon-city
warm-paper · forest-green
pure-light · sunset-warm
BlueprintRule + StyleRule
Layer 3
Data Registry
src/engine/data_registry.py
✅ Done
IN  domain
OUT DataContext { api(ApiConfig), permissions[], field_map{}, kotlin_data_class, sample_data }
ApiConfig: name · base_url · endpoint · auth · rate_limit
9 API Sources
NATURE: iNaturalist (무인증)
FINANCE: Yahoo Finance
WEATHER: OpenWeatherMap
HEALTH: Health Connect
COMMUTE: TransitAPI ...
GeneratorInput { intent + blueprint + style + data }
Layer 4
Code Generator
src/engine/creator_codegen.py
✅ Done
IN  GeneratorInput
OUT GeneratedFiles { dash_name, dash_composable_kt, repository_kt, dash_md }
system_prompt = _system.md + {domain}.md + components/*.md
user_prompt = Blueprint + Style + Data + sizes/{size}.md + DO/DON'T 피드백
LLM 없으면 시뮬레이션 Kotlin 스켈레톤 반환
LLM Router claude-sonnet llm_router.py · task="creator_codegen"
Prompt Assets
prompts/_system.md
prompts/{domain}.md
prompts/components/
prompts/sizes/{size}.md
Feedback DB
design-feedback.json
DO / DON'T 패턴 자동 주입
GeneratedFiles
Layer 5
Validator
src/engine/creator_validator.py
✅ Done
IN  GeneratedFiles + BlueprintRule + StyleRule
OUT ValidationResult { passed, score(1-10), failed_rules[], warnings[] }
10개 Blueprint 검사 (AsyncImage, AnimatedVisibility, Canvas ...) + accent/bg 색상 검사 + DASH.md 스키마 검사
점수: max(1, 10 − failed×3 − warnings)
passed = true
→ 응답 반환
passed = false
→ L4 재호출 1회
DASH.md Schema
DASH-schema-v1.json
필수 섹션: meta, trigger
skin, dash, protocol
+ meta.id 존재 여부
ValidationResult
📦 GenerateResponse
dash_composable_kt repository_kt dash_md validation { passed, score }
Development Status
레이어별 개발 현황
레이어
파일 & 역할
완료 기준
상태
L1
Intent Engine
src/engine/creator_intent.py
NATURE→domain, 엑스트라라지→size 반환
✅ 스켈레톤
L2a
Blueprint Registry
src/engine/blueprint_registry.py
9개 도메인 · required_features 정의
✅ 완성
L2b
Style Registry
src/engine/style_registry.py
6개 skin · CSS 토큰 · domain default
✅ 완성
L3
Data Registry
src/engine/data_registry.py
9개 도메인 API · 권한 · 필드매핑
✅ 완성
L4
Code Generator
src/engine/creator_codegen.py
LLM 호출 → 3파일 JSON 파싱
⚡ LLM 연동
L5
Validator
src/engine/creator_validator.py
10개 검사 규칙 · DASH.md 스키마
✅ 스켈레톤
L6
Runtime 통합
apps/android-launcher/ (기존)
DashInstaller 연동
⬜ Phase 2
API
REST Endpoint
src/api/creator_api.py
POST /api/creator/generate 연동 테스트
⚡ 통합 테스트
Models
타입 정의
src/engine/creator_models.py
DashIntent · BlueprintRule · StyleRule 등
✅ 완성
⚡ 미결 사항 — 개발팀 착수 전 확인 필요
LLM 라우터 동기 래퍼 (call_sync()) 구현
size 미지정 기본값 확정 (현재 MEDIUM)
creator_api.py → playground.py 또는 main.py 등록
Validator 재생성 최대 횟수 확정 (현재 1회)
Policy
도메인 × 스킨 매트릭스
도메인 Blueprint 핵심 규칙 기본 Skin 데이터 소스 prompt 파일
🌿 NATURE
탐조·식물·자연
사진 REQUIRED · GPS · tap-expand dark-ocean iNaturalist (무료) nature.md ✅
💹 FINANCE
주식·코인·환율
H1숫자 · 등락 · 차트 REQUIRED pure-light Yahoo Finance finance.md ✅
🌤️ WEATHER
날씨·기온·미세먼지
온도 · 아이콘 · detail_grid pure-light OpenWeatherMap weather.md ✅
💪 HEALTH
운동·수면·심박
프로그레스 · 목표치 forest-green Samsung Health SDK health.md ✅
✅ PRODUCTIVITY
할일·타이머·메모
progress REQUIRED warm-paper Room DB (local) productivity.md ✅
🚇 COMMUTE
지하철·버스·교통
도착시간 · 타임라인 dark-ocean 서울 열린데이터광장 commute.md ✅
🎵 MEDIA
음악·뉴스·팟캐스트
progress_bar REQUIRED neon-city MediaSession API media.md ✅
📊 BUSINESS
매출·재고·B2B
KPI카드 · 차트 pure-light Room DB (local) business.md ✅
🌸 LIFESTYLE
취미·반려동물·습관
primary_metric REQUIRED warm-paper Room DB (local) lifestyle.md ✅
Structure
파일 구조
skills/dash-creator/ ├── README.md ← 전체 인덱스 (진입점) │ ├── harness/design-docs/architecture/ ← 설계 문서 │ ├── overview.md 6-Layer 전체 구조 │ ├── ux-blueprint-policy.md Layer 2a 도메인 규칙 │ ├── design-style-policy.md Layer 2b skin 토큰 │ ├── simulation-guide.md 시나리오 트레이싱 │ └── dev-handoff.md 개발팀 전달 스펙 │ ├── prompts/ ← LLM 프롬프트 자산 │ ├── _system.md 공통 시스템 프롬프트 (16KB) │ ├── nature.md ← NEW 탐조·자연 도메인 │ ├── finance.md / weather.md … 9개 도메인 프롬프트 │ ├── components/atoms/ 6종 원자 컴포넌트 │ ├── components/molecules/ 8종 분자 컴포넌트 │ └── sizes/ 6종 사이즈 규칙 │ └── src/ ├── engine/ ← Creator 파이프라인 │ ├── creator_models.py 타입 정의 (DashIntent, ...) │ ├── creator_intent.py Layer 1: 자연어 파싱 │ ├── blueprint_registry.py Layer 2a: UX 규칙 │ ├── style_registry.py Layer 2b: skin 토큰 │ ├── data_registry.py Layer 3: API 설정 │ ├── creator_codegen.py Layer 4: LLM 코드 생성 │ └── creator_validator.py Layer 5: 정책 검사 └── api/ └── creator_api.py POST /api/creator/generate
이번 세션 신규 생성 핵심 진입점 기존 파일
Handoff
개발팀 전달 파일 목록

아래 파일들을 개발팀에 전달합니다. 설계 문서는 구현 스펙 기준, 스켈레톤 코드는 즉시 실행 가능한 시작점, 프롬프트 자산은 LLM 연동 시 사용합니다.

설계 문서 (MD) — 구현 스펙 기준
harness/design-docs/architecture/overview.md
6-Layer 전체 구조 · ASCII 다이어그램 · 레이어별 역할/입출력
harness/design-docs/architecture/ux-blueprint-policy.md
Layer 2a · 9개 도메인별 BlueprintRule · 컴포넌트 사이즈 제약
harness/design-docs/architecture/design-style-policy.md
Layer 2b · 6개 skin 색상 토큰 · 도메인→기본 skin 매핑
harness/design-docs/architecture/simulation-guide.md
3개 시나리오 Layer별 트레이싱 · 기대 출력 JSON · 미결 사항
harness/design-docs/architecture/dev-handoff.md
Python 데이터클래스 정의 · API 계약 (Request/Response JSON) · 주차별 구현 순서 · 5개 테스트 케이스 · PM 확인 필요 6개 결정 사항
harness/product-specs/DASH-schema-v1.json
DASH.md YAML frontmatter JSON Schema · Validator에서 사용
prompts/README.md
프롬프트 폴더 맵 · 조합 로직 · 파일별 역할 · 새 도메인 추가 3단계
스켈레톤 코드 (Python) — 즉시 실행 가능
파일 경로레이어역할
프롬프트 자산 (MD) — LLM 연동 시 사용
시스템 프롬프트
prompts/_system.md
공통 Kotlin 코드 생성 규칙
도메인 프롬프트
prompts/{domain}.md
9개 도메인별 전문 지식 · API 사용법
컴포넌트 스펙
prompts/components/**/*.md
atoms 6종 · molecules 8종
사이즈 규칙
prompts/sizes/{size}.md
6종 (TINY ~ EXTRALARGE)
학습 피드백
harness/generated/design-feedback.json
DO / DON'T 패턴 DB
유저 프롬프트 조합
creator_codegen.py → build_user_prompt()
Blueprint + Style + Data + 피드백 자동 조합
Dev Guide
개발팀 AI 규칙 정의 프롬프트

개발팀 AI(Cursor, Claude, Copilot 등)에게 Dash Creator 맥락을 이해시키기 위한 시스템 프롬프트입니다. CLAUDE.md 또는 .cursorrules에 붙여 넣으세요.

✅ CLAUDE.md 또는 .cursorrules에 추가
📋 복사 후 그대로 사용 가능
# ═══════════════════════════════════════════════════════════ # Dash Creator — 개발팀 AI 규칙 정의 # 이 파일을 CLAUDE.md 또는 .cursorrules에 붙여 넣으세요. # ═══════════════════════════════════════════════════════════ ## 프로젝트 개요 Dash Creator는 자연어 한 마디로 Android Kotlin Dash 위젯을 생성하는 6-Layer 파이프라인입니다. - 백엔드: Python 3.11 + FastAPI - 위젯 출력: Jetpack Compose (Kotlin) - LLM: Gemini Pro (primary) → Claude → GPT-4o (fallback) - 설계 문서: skills/dash-creator/harness/design-docs/architecture/ ## 6-Layer 구조 (절대 변경 금지) L1: creator_intent.py → 자연어 파싱, DashIntent 반환 L2a: blueprint_registry → 도메인별 UX 규칙 (required_features, layout_type) L2b: style_registry → skin 토큰 (색상, 폰트, 컴포넌트 토큰) L3: data_registry → API 설정, kotlin_data_class, 샘플 데이터 L4: creator_codegen → LLM 프롬프트 조합 + 호출 + Kotlin 3파일 생성 L5: creator_validator → Blueprint/Style 정책 준수 검사, 점수 산출 API: creator_api.py → POST /api/creator/generate (L1→L5 실행) ## 데이터 흐름 (변경 금지) text → DashIntent → (BlueprintRule, StyleRule, DataContext) → GeneratorInput → GeneratedFiles → ValidationResult ## 핵심 타입 (creator_models.py) - DashIntent: domain, subcategory, size, skin, features, confidence, raw_input - BlueprintRule: required_features[], layout_type, suggested_components[], interaction_patterns[] - StyleRule: skin, background_from/to, accent, text_primary, component_tokens(ComponentTokens) - GeneratedFiles: dash_name, dash_composable_kt, repository_kt, dash_md - ValidationResult: passed, score, failed_rules[], warnings[] ## 지원 도메인 (9개 — creator_intent.py DOMAIN_KEYWORDS) NATURE, FINANCE, WEATHER, HEALTH, PRODUCTIVITY, COMMUTE, MEDIA, BUSINESS, LIFESTYLE ## 지원 Skin (6개 — style_registry.py) dark-ocean, neon-city, warm-paper, forest-green, pure-light, sunset-warm ## LLM 구현 순서 # Phase 1 (현재): Claude Haiku (빠른 작업) + Claude Sonnet (코드 생성) # Phase 2: Gemini 추가 (intent_parse, question_gen, ocr 최적화) # Phase 3: GPT 추가 (modification, chat) ## LLM 라우터 주입 방식 (싱글톤 패턴) # main.py 또는 orchestrator.py에서 반드시 호출: from engine import creator_codegen, creator_intent creator_codegen.set_router(llm_router) # call_sync(task, prompt, system_prompt, model) 필요 creator_intent.set_router(llm_router) # LLM fallback 분류용 ## 프롬프트 파일 위치 (절대 경로 변경 금지) skills/dash-creator/prompts/_system.md → 공통 시스템 프롬프트 skills/dash-creator/prompts/{domain}.md → 도메인 전문 지식 (소문자) skills/dash-creator/prompts/components/atoms/ → 원자 컴포넌트 스펙 skills/dash-creator/prompts/components/molecules/ → 분자 컴포넌트 스펙 skills/dash-creator/prompts/sizes/{size}.md → 사이즈별 레이아웃 규칙 (소문자) ## Validator 검사 규칙 (FEATURE_CHECKS 매핑) images → AsyncImage 또는 Image() 포함 여부 location_aware → LocationManager 또는 FusedLocationProviderClient 포함 여부 tap_to_expand → AnimatedVisibility 또는 expanded/clickable 포함 여부 chart → Canvas, Path, drawPath, drawLine, Chart 포함 여부 primary_value → fontSize = {숫자}.sp (2자리 이상) 또는 H1 포함 여부 change_indicator → changePercent, change, ▲, ▼ 포함 여부 progress → CircularProgressIndicator, LinearProgressIndicator, Canvas 포함 여부 timeline → LazyColumn, Column 포함 여부 condition_icon → Icon(), painterResource, Icons. 포함 여부 kpi_cards → Row(), Grid, LazyVerticalGrid 포함 여부 ## DASH.md 필수 섹션 (스키마: harness/product-specs/DASH-schema-v1.json) meta:, trigger:, skin:, dash:, protocol: + meta.id 필수 ## 코딩 규칙 1. creator_models.py의 데이터클래스를 임의로 변경하지 않는다. 2. 새 도메인 추가 시 creator_intent.py, blueprint_registry.py, style_registry.py, data_registry.py, prompts/{domain}.md 모두 수정. 3. 새 Validator 규칙 추가 시 FEATURE_CHECKS dict와 check 메서드를 동시에 추가. 4. LLM 없이도 시뮬레이션 모드(_simulation_response)가 동작해야 한다. 5. API 응답 형식(GenerateResponse)은 변경하지 않는다. 6. 점수 계산: max(1, 10 - failed*3 - warnings) ## 시뮬레이션 테스트 (LLM 키 없이) curl -X POST http://localhost:8000/api/creator/generate \ -H "Content-Type: application/json" \ -d '{"text": "탐조 대시 만들어줘", "size": "EXTRALARGE"}' # 기대: status=success, intent.domain=NATURE, validation.passed=true ## 참조 문서 - 전체 아키텍처: harness/design-docs/architecture/overview.md - 시나리오 트레이싱: harness/design-docs/architecture/simulation-guide.md - 개발팀 스펙: harness/design-docs/architecture/dev-handoff.md - 도메인 프롬프트 작성법: prompts/README.md
💡 사용법: 위 내용을 복사하여 skills/dash-creator/CLAUDE.md 또는 skills/dash-creator/.cursorrules에 저장하세요. AI가 Dash Creator 6-Layer 구조, 데이터 흐름, 타입 정의를 세션 시작부터 인지합니다.
Dev Guide
빠른 시작
1
API 서버 실행
기존 playground.py가 실행 중이라면 creator_api.py의 라우터를 등록해야 합니다.
# src/api/playground.py 또는 main.py에 추가 from api.creator_api import router as creator_router app.include_router(creator_router) # 서버 시작 uvicorn api.playground:app --reload --port 8000
2
시뮬레이션 테스트 (LLM 없이)
LLM 키 없어도 동작합니다. creator_codegen.py가 시뮬레이션 스켈레톤을 반환합니다.
curl -X POST http://localhost:8000/api/creator/generate \ -H "Content-Type: application/json" \ -d '{"text": "탐조 대시 만들어줘", "size": "EXTRALARGE"}' # 기대 응답: { "status": "success", "intent": { "domain": "NATURE", "size": "EXTRALARGE", ... }, "validation": { "passed": true, "score": 7 } }
3
LLM 연동 (실제 코드 생성)
creator_codegen.pyset_router(llm_router)를 호출해 기존 LLM 라우터를 주입합니다. call_sync() 래퍼만 추가하면 됩니다.
# orchestrator.py 또는 main.py에서 from engine import creator_codegen, creator_intent creator_codegen.set_router(llm_router) creator_intent.set_router(llm_router)
4
헬스체크 확인
지원 도메인과 skin이 모두 로드됐는지 확인합니다.
curl http://localhost:8000/api/creator/health # 기대 응답: { "status": "ok", "supported_domains": ["NATURE", "FINANCE", ...], ← 9개 "supported_skins": ["dark-ocean", "pure-light", ...] ← 6개 }
Dev Guide
새 도메인 추가 방법
1️⃣
프롬프트 파일 생성
prompts/{domain}.md 생성.
포함 내용: 필수 컴포넌트, 액센트 컬러, 현실적 샘플 데이터, 차트 패턴.
nature.md를 템플릿으로 사용.
2️⃣
Blueprint 규칙 추가
blueprint_registry.pyBLUEPRINT_RULES dict에
BlueprintRule(…) 항목 추가.
required_features가 Validator와 직결.
3️⃣
Data Context 추가
data_registry.py_DATA_CONTEXTS dict에
ApiConfig + field_map + kotlin_data_class 추가.
4️⃣
Design Style 매핑
style_registry.pyDOMAIN_DEFAULT_SKIN
새 도메인 → skin 매핑 추가.
Intent 키워드도 creator_intent.py에 추가.
Dev Guide
새 Skin 추가 방법
style_registry.py_STYLE_RULES dict에 새 StyleRule(…) 추가.
필수 필드: background_from, accent, text_primary, component_tokens.
선택: background_to (단색이면 None), finance_up/finance_down.

예시 (coral-reef 추가):
"coral-reef": StyleRule( skin="coral-reef", background_from="#1A0808", background_to="#2D1010", background_direction="top-to-bottom", accent="#FF6B6B", text_primary="#FFF5F5", text_secondary_opacity=0.55, finance_up=None, finance_down=None, component_tokens=ComponentTokens(...) ),
Dev Guide
핵심 테스트 케이스
# 5개 핵심 테스트 — dev-handoff.md §4 참조 test_bird_dash_generation() # NATURE → AsyncImage 포함 test_stock_dash_generation() # FINANCE → tabular-nums 포함 test_unclear_domain() # 도메인 불명확 → needs_clarification test_validation_catches_issue() # NATURE에 이미지 없음 → passed: False test_dash_md_schema_valid() # 생성 DASH.md → 스키마 통과
UX 설계 협업
UX Designer 역할

UX Designer는 단순히 화면을 그리는 역할이 아닙니다.
작성한 Blueprint·Style·Validator 기준이 LLM에게 주입되는 법칙이 됩니다. 설계 의도가 곧 AI의 행동 기준입니다.

Core Philosophy
❌ 기존 방식
기술팀이 추측으로 UX 규칙 작성
"FINANCE엔 차트가 있어야 할 것 같다"
→ 사용자 관점 없는 임의 기준
✅ 새로운 방식
UX Designer가 사용자 시나리오 분석 후 기준 정의
"주식 사용자가 가장 먼저 보는 건 현재가와 등락률"
→ 사용자 행동에 근거한 기준
소유 영역 (Ownership)
LAYER 2a
UX Blueprint Policy
도메인별 정보 위계 정의
사용자 시나리오 → 필수 컴포넌트 목록
required_features[] 결정
layout_type · interaction_patterns
→ ux-blueprint-policy.md
LAYER 2b
Design Style Policy
skin별 감성 의도 + 색상 시스템
배경 · accent · 텍스트 토큰 결정
컴포넌트 토큰 6종 정의
도메인 → 기본 skin 매핑
→ design-style-policy.md
LAYER 5 기준
Validator 기준 정의
"올바른 UX"의 기준을 항목으로 정의
Failed(재생성) vs Warning(기록) 구분
feature별 pass 조건 + 실패 사유
Coder는 기준을 코드로 구현만 함
→ validator-criteria.md
검수 기준
시뮬레이션 시나리오
도메인별 기대 출력 와이어프레임
레이어별 기대값 명시
생성 결과 검수 기준 제시
AI Tester에게 테스트 기준 전달
→ simulation-guide.md
도메인 프롬프트 공동 작성 분담
🎨 UI Designer 작성
컴포넌트 배치 지침
색상·타이포 적용 규칙
인터랙션 구현 방법
정보 위계 기술
⚙️ Coder 보완
API 연동 코드
Kotlin 데이터클래스
권한 설정
기술 구현 세부 사항
역할 경계 — AI Architect와 구분
AI Architect 소유 (기술 구조)
6-Layer 기술 구조 설계
레이어 간 데이터 타입 계약
API 엔드포인트 계약
creator_models.py 구조
UI Designer 소유 (내용)
Blueprint 안의 UX 규칙 내용
Style 안의 색상·감성 내용
Validator 기준의 UX 판단
시뮬레이션 기대값
UX 설계 협업
개발팀 워크플로우

UX Designer의 설계 산출물이 개발팀으로 전달되고 파이프라인에 반영되는 전체 흐름입니다.

전체 협업 흐름
PM — 도메인·기능 요구사항 정의
🎨 UX Designer
1. 사용자 시나리오 분석
2. 정보 위계 + 와이어프레임
3. required_features 결정
4. Blueprint Policy 초안
5. skin 감성 + 색상 토큰
6. Design Style 문서 작성
7. Validator 기준 항목 정의
8. 시뮬레이션 시나리오 작성
🏗 AI Architect
1. 6-Layer 기술 구조 확정
2. 데이터 타입 계약 정의
3. creator_models.py 구조
4. API 엔드포인트 계약
5. 레이어 간 인터페이스
6. LLM 라우터 전략

← UX 내용은 관여 안 함
핸드오프 — 설계 문서 전달
⚙️ Coder — 구현
Blueprint 구현
blueprint_registry.py
9개 BlueprintRule 작성
Style 구현
style_registry.py
6개 StyleRule 작성
Validator 구현
creator_validator.py
FEATURE_CHECKS 코딩
프롬프트 보완
prompts/{domain}.md
API·기술 섹션 추가
시뮬레이션 실행 — LLM 없이 테스트 가능
🎨 UX Designer — 검수
시뮬레이션 결과 vs 시나리오 비교
의도한 와이어프레임과 일치하는가?
Validator 기준이 올바르게 작동하는가?
→ 수정 피드백 제공
🧪 AI Tester — 검증
시나리오 기반 E2E 테스트
Validator 통과율 측정
엣지 케이스 (모호한 입력) 검증
→ 결과 보고
✅ PM 최종 승인 → 완료
UX Designer → Coder 핸드오프 체크리스트
검수 결과 피드백 루프
Validator 오탐 발생
UX Designer가 기준 재검토
→ validator-criteria.md 수정
→ Coder가 코드 업데이트
생성 결과가 의도와 다름
UX Designer가 Blueprint 수정
→ ux-blueprint-policy.md 업데이트
→ LLM 프롬프트 재조합
신규 도메인 추가
UX Designer 먼저 시나리오 작성
→ Blueprint + Style 문서 추가
→ Coder가 4개 파일 구현
Documents
설계 문서 & 보고서
코드 내 설계 문서 경로
overview.md → skills/dash-creator/harness/design-docs/architecture/
ux-blueprint-policy.md → skills/dash-creator/harness/design-docs/architecture/
design-style-policy.md → skills/dash-creator/harness/design-docs/architecture/
simulation-guide.md → skills/dash-creator/harness/design-docs/architecture/
dev-handoff.md → skills/dash-creator/harness/design-docs/architecture/
prompts/README.md → skills/dash-creator/prompts/
DASH-schema-v1.json → skills/dash-creator/harness/product-specs/