Recent Posts
Recent Comments
반응형
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

오늘도 공부

UI/UX Pro Max 검색 시스템 분석 문서 본문

AI

UI/UX Pro Max 검색 시스템 분석 문서

행복한 수지아빠 2026. 2. 7. 17:58
반응형

 

 

GitHub - nextlevelbuilder/ui-ux-pro-max-skill: An AI SKILL that provide design intelligence for building professional UI/UX mult

An AI SKILL that provide design intelligence for building professional UI/UX multiple platforms - nextlevelbuilder/ui-ux-pro-max-skill

github.com

 

이 문서는 분석 결과물입니다. 코드 변경 계획이 아닙니다.


1. 시스템 아키텍처 개요

사용자 요청 (자연어)
    │
    ▼
┌────────────────────────────────────────────────┐
│  SKILL.md (description 필드)                    │
│  AI 어시스턴트가 키워드 매칭으로 스킬 활성화      │
│  → "plan, build, create, design, implement..."  │
│  → "website, landing page, dashboard, SaaS..."  │
│  → "glassmorphism, minimalism, brutalism..."    │
└────────────────────────┬───────────────────────┘
                         │
                         ▼
┌────────────────────────────────────────────────┐
│  search.py (CLI 진입점)                         │
│  3가지 모드 분기:                               │
│  ├─ --design-system → design_system.py         │
│  ├─ --stack <name>  → core.search_stack()      │
│  └─ --domain <name> → core.search()            │
└────────────────────────┬───────────────────────┘
                         │
                         ▼
┌────────────────────────────────────────────────┐
│  core.py (BM25 검색 엔진)                       │
│  CSV 로드 → 토큰화 → IDF 계산 → 점수화 → 정렬   │
└────────────────────────────────────────────────┘

2. 스킬 활성화 메커니즘

2.1 트리거 조건

AI 어시스턴트는 SKILL.md의 description 필드에 정의된 키워드를 통해 스킬을 활성화합니다.

파일: .claude/skills/ui-ux-pro-max/SKILL.md:3

description: "UI/UX design intelligence. 50 styles, 21 palettes...
  Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check
  Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app
  Elements: button, modal, navbar, sidebar, card, table, form, chart
  Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode
  Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow"

사용자가 이 키워드 중 하나라도 포함된 요청을 하면, AI가 SKILL.md 전체를 읽고 워크플로우를 따릅니다.

2.2 워크플로우 (AI가 따르는 4단계)

SKILL.md에 정의된 순서:

단계행동필수 여부

Step 1 사용자 요구사항 분석 (제품 타입, 스타일, 산업, 스택 추출) 필수
Step 2 --design-system 으로 통합 디자인 시스템 생성 필수 (REQUIRED)
Step 3 --domain 으로 보충 검색 (필요시) 선택
Step 4 --stack 으로 프레임워크별 가이드 조회 선택

3. 세 가지 검색 모드 상세 분석

3.1 모드 A: 디자인 시스템 생성 (--design-system)

명령 형식:

python3 search.py "<쿼리>" --design-system [-p "프로젝트명"] [-f ascii|markdown] [--persist] [--page "페이지명"]

내부 동작 흐름 (design_system.py의 DesignSystemGenerator.generate()):

Step 1: 제품 분류
  search("쿼리", "product", max_results=1)
  → products.csv에서 제품 타입 매칭 (100개 카테고리)
  → 예: "beauty spa wellness" → "Beauty/Spa/Wellness Service"

Step 2: 추론 규칙 적용
  _find_reasoning_rule(category)
  → ui-reasoning.csv에서 해당 카테고리의 규칙 조회 (100개 규칙)
  → 매칭 방식: 정확 매칭 → 부분 매칭 → 키워드 매칭
  → 반환값:
    {
      "pattern": "Hero-Centric + Social Proof",
      "style_priority": ["Soft UI Evolution", "Neumorphism"],
      "color_mood": "Soft pastels + Gold accents",
      "typography_mood": "Elegant + Calming",
      "key_effects": "Soft shadows + Smooth transitions (200-300ms)",
      "anti_patterns": "Bright neon colors + Harsh animations + Dark mode",
      "decision_rules": {"must_have": "booking-system", ...},
      "severity": "HIGH"
    }

Step 3: 멀티 도메인 검색 (5개 도메인 병렬)
  ┌─ product: max_results=1 (이미 수행, 재사용)
  ├─ style:   max_results=3 (쿼리 + style_priority 키워드 결합)
  ├─ color:   max_results=2
  ├─ landing: max_results=2
  └─ typography: max_results=2

Step 4: 우선순위 기반 최적 매칭 선택
  _select_best_match(style_results, style_priority)
  → 선택 기준 (순서대로):
    1순위: Style Category 이름이 style_priority와 정확 매칭
    2순위: Style Category 이름에 키워드 포함 (가중치 10)
    3순위: Keywords 필드에 키워드 포함 (가중치 3)
    4순위: 기타 필드에 키워드 포함 (가중치 1)
    폴백: BM25 점수가 가장 높은 첫 번째 결과

Step 5: 최종 추천 조합
  → pattern (랜딩 패턴) + style (UI 스타일) + colors (색상 팔레트)
  → typography (폰트 페어링) + effects + anti_patterns

출력 예시 (ASCII 박스):

+-----------------------------------------------------------------------------------------+
|  TARGET: Serenity Spa - RECOMMENDED DESIGN SYSTEM                                        |
+-----------------------------------------------------------------------------------------+
|                                                                                          |
|  PATTERN: Hero-Centric + Social Proof                                                    |
|     Conversion: Use 3-5 testimonials...                                                  |
|     CTA: Hero (sticky) + Post-testimonials                                               |
|     Sections:                                                                            |
|       1. Hero                                                                            |
|       2. Services                                                                        |
|       3. Testimonials                                                                    |
|       4. CTA                                                                             |
|                                                                                          |
|  STYLE: Soft UI Evolution                                                                |
|     Keywords: Evolved soft UI, better contrast, modern aesthetics...                     |
|     Performance: ⚡ Excellent | Accessibility: ✓ WCAG AA+                                |
|                                                                                          |
|  COLORS:                                                                                 |
|     Primary:    #87CEEB                                                                  |
|     Secondary:  #FFB6C1                                                                  |
|     CTA:        #F97316                                                                  |
|     Background: #F8FAFC                                                                  |
|     Text:       #1E293B                                                                  |
|                                                                                          |
|  TYPOGRAPHY: Lora / Raleway                                                              |
|     Mood: Calming + Readable                                                             |
|     Google Fonts: https://fonts.google.com/...                                           |
|                                                                                          |
|  KEY EFFECTS:                                                                            |
|     Soft shadows + Smooth transitions (200-300ms) + Gentle hover                         |
|                                                                                          |
|  AVOID (Anti-patterns):                                                                  |
|     Bright neon colors + Harsh animations + Dark mode                                    |
|                                                                                          |
|  PRE-DELIVERY CHECKLIST:                                                                 |
|     [ ] No emojis as icons (use SVG: Heroicons/Lucide)                                   |
|     [ ] cursor-pointer on all clickable elements                                         |
|     [ ] Hover states with smooth transitions (150-300ms)                                 |
|     ...                                                                                  |
+-----------------------------------------------------------------------------------------+

3.2 모드 B: 도메인 검색 (--domain)

명령 형식:

python3 search.py "<쿼리>" --domain <도메인> [-n <최대결과수>] [--json]

사용 가능한 10개 도메인:

도메인CSV 파일검색 컬럼출력 컬럼 수용도

style styles.csv Style Category, Keywords, Best For, Type, AI Prompt Keywords 14 UI 스타일 조회
color colors.csv Product Type, Notes 7 색상 팔레트 조회
chart charts.csv Data Type, Keywords, Best Chart Type, Accessibility Notes 8 차트 타입 추천
landing landing.csv Pattern Name, Keywords, Conversion Optimization, Section Order 6 랜딩 페이지 패턴
product products.csv Product Type, Keywords, Primary Style Recommendation, Key Considerations 7 제품 타입별 추천
ux ux-guidelines.csv Category, Issue, Description, Platform 9 UX 가이드라인
typography typography.csv Font Pairing Name, Category, Mood/Style Keywords, Best For, Heading Font, Body Font 10 폰트 페어링
icons icons.csv Category, Icon Name, Keywords, Best For 8 아이콘 라이브러리
react react-performance.csv Category, Issue, Keywords, Description 9 React 성능 가이드
web web-interface.csv Category, Issue, Keywords, Description 9 웹 인터페이스 가이드

도메인 자동 감지 (--domain 생략 시):

core.py:190-209에서 쿼리 키워드 매칭으로 자동 판별:

domain_keywords = {
    "color":      ["color", "palette", "hex", "#", "rgb"],
    "chart":      ["chart", "graph", "visualization", "bar", "pie", "scatter", "heatmap"],
    "landing":    ["landing", "page", "cta", "conversion", "hero", "testimonial", "pricing"],
    "product":    ["saas", "ecommerce", "fintech", "healthcare", "gaming", "portfolio", "crypto"],
    "style":      ["style", "design", "ui", "glassmorphism", "neumorphism", "brutalism", "css"],
    "ux":         ["ux", "usability", "accessibility", "wcag", "touch", "scroll", "keyboard"],
    "typography": ["font", "typography", "heading", "serif", "sans"],
    "icons":      ["icon", "icons", "lucide", "heroicons", "symbol", "svg icon"],
    "react":      ["react", "nextjs", "suspense", "memo", "useeffect", "bundle", "server component"],
    "web":        ["aria", "focus", "semantic", "virtualize", "autocomplete", "form"]
}

로직: 쿼리에 포함된 키워드 수를 세어 가장 많이 매칭되는 도메인 선택. 매칭 0이면 기본값 style.

3.3 모드 C: 스택 검색 (--stack)

명령 형식:

python3 search.py "<쿼리>" --stack <스택명> [-n <최대결과수>] [--json]

사용 가능한 13개 스택:

스택CSV 파일초점

html-tailwind stacks/html-tailwind.csv Tailwind 유틸리티, 반응형, a11y (기본값)
react stacks/react.csv State, Hooks, 성능 패턴
nextjs stacks/nextjs.csv SSR, 라우팅, 이미지, API Routes
astro stacks/astro.csv Static + Dynamic, Islands
vue stacks/vue.csv Composition API, Pinia, Vue Router
nuxtjs stacks/nuxtjs.csv SSR, Middleware
nuxt-ui stacks/nuxt-ui.csv UI 컴포넌트
svelte stacks/svelte.csv Runes, Stores, SvelteKit
swiftui stacks/swiftui.csv Views, State, Navigation
react-native stacks/react-native.csv Components, Navigation, Lists
flutter stacks/flutter.csv Widgets, State, Layout
shadcn stacks/shadcn.csv shadcn/ui 컴포넌트, theming
jetpack-compose stacks/jetpack-compose.csv Composables, Modifiers, State

모든 스택의 공통 컬럼 구조:

  • 검색: Category, Guideline, Description, Do, Don't
  • 출력: Category, Guideline, Description, Do, Don't, Code Good, Code Bad, Severity, Docs URL

4. BM25 검색 알고리즘 상세

4.1 토큰화 (core.py:109-112)

def tokenize(self, text):
    text = re.sub(r'[^\w\s]', ' ', str(text).lower())  # 소문자 + 구두점 제거
    return [w for w in text.split() if len(w) > 2]       # 3자 이상만

예시:

입력: "Glassmorphism + Flat Design (UI/UX)"
토큰: ["glassmorphism", "flat", "design"]

4.2 인덱싱 (core.py:114-131)

def fit(self, documents):
    self.corpus = [self.tokenize(doc) for doc in documents]
    self.N = len(self.corpus)                              # 문서 수
    self.doc_lengths = [len(doc) for doc in self.corpus]   # 각 문서 길이
    self.avgdl = sum(self.doc_lengths) / self.N            # 평균 문서 길이

    # 문서 빈도 (DF) 계산: 각 단어가 몇 개의 문서에 나타나는지
    for doc in self.corpus:
        seen = set()
        for word in doc:
            if word not in seen:
                self.doc_freqs[word] += 1
                seen.add(word)

    # IDF 계산: 희귀한 단어일수록 높은 값
    for word, freq in self.doc_freqs.items():
        self.idf[word] = log((N - freq + 0.5) / (freq + 0.5) + 1)

4.3 점수화 (core.py:133-155)

def score(self, query):
    query_tokens = self.tokenize(query)
    scores = []

    for idx, doc in enumerate(self.corpus):
        score = 0
        doc_len = self.doc_lengths[idx]

        # 문서 내 각 단어의 출현 빈도 (TF)
        term_freqs = defaultdict(int)
        for word in doc:
            term_freqs[word] += 1

        for token in query_tokens:
            if token in self.idf:
                tf = term_freqs[token]
                idf = self.idf[token]
                # BM25 공식
                numerator = tf * (k1 + 1)                              # = tf * 2.5
                denominator = tf + k1 * (1 - b + b * doc_len / avgdl)  # 문서 길이 보정
                score += idf * numerator / denominator

        scores.append((idx, score))

    return sorted(scores, key=lambda x: x[1], reverse=True)  # 높은 점수순

BM25 공식 해석:

Score(q, d) = Σ IDF(t) × [tf(t,d) × (k1 + 1)] / [tf(t,d) + k1 × (1 - b + b × |d|/avgdl)]

파라미터:
  k1 = 1.5  → 용어 빈도(TF) 포화 조절 (높을수록 TF 영향 증가)
  b  = 0.75 → 문서 길이 정규화 (0이면 길이 무시, 1이면 완전 정규화)

의미:
  - IDF: "glassmorphism"처럼 소수 문서에만 있는 단어 → 높은 가중치
  - TF 정규화: 같은 단어가 반복되어도 점수 증가폭 감소 (포화)
  - 문서 길이 보정: 긴 문서가 불리하지 않도록 보정

4.4 검색 파이프라인 (core.py:165-187)

def _search_csv(filepath, search_cols, output_cols, query, max_results):
    data = _load_csv(filepath)  # CSV → list[dict]

    # 검색 컬럼들을 하나의 문서로 결합
    documents = [
        " ".join(str(row.get(col, "")) for col in search_cols)
        for row in data
    ]
    # 예: styles.csv의 Glassmorphism 행
    # → "Glassmorphism General Frosted glass transparent blurred... Modern SaaS..."

    bm25 = BM25()
    bm25.fit(documents)         # 인덱싱
    ranked = bm25.score(query)  # 점수화

    # 상위 N개 중 score > 0인 것만 반환
    results = []
    for idx, score in ranked[:max_results]:
        if score > 0:
            row = data[idx]
            results.append({col: row.get(col, "") for col in output_cols if col in row})
    return results

핵심 설계:

  • 검색은 search_cols에서만 (4-6개 핵심 컬럼)
  • 결과는 output_cols 전체 (7-22개 상세 컬럼)
  • score > 0 필터: 관련 없는 결과는 제외
  • 기본 max_results = 3: 토큰 최적화

5. 디자인 시스템 추론 엔진 상세

5.1 추론 규칙 데이터 (ui-reasoning.csv)

100개 제품 카테고리 × 9개 속성:

속성설명예시 (SaaS General)

UI_Category 제품 카테고리 SaaS (General)
Recommended_Pattern 랜딩 패턴 Hero + Features + CTA
Style_Priority 우선 스타일 (+ 구분) Glassmorphism + Flat Design
Color_Mood 색상 분위기 Trust blue + Accent contrast
Typography_Mood 타이포그래피 분위기 Professional + Hierarchy
Key_Effects 핵심 효과 Subtle hover (200-250ms)
Decision_Rules 조건부 규칙 (JSON) {"if_ux_focused": "prioritize-minimalism"}
Anti_Patterns 금지 패턴 Excessive animation + Dark mode by default
Severity 중요도 HIGH

5.2 추론 규칙 매칭 순서 (design_system.py:64-86)

1순위: 정확 매칭     → "SaaS (General)" == "saas (general)"
2순위: 부분 매칭     → "SaaS" in "saas dashboard" 또는 "saas dashboard" in "SaaS"
3순위: 키워드 매칭   → "SaaS".split() → ["saas"] → "saas" in "saas dashboard"
폴백:  기본 규칙     → Minimalism + Flat Design + "Professional"

5.3 스타일 우선순위 매칭 (design_system.py:122-157)

_select_best_match() 함수가 BM25 결과에서 추론 규칙의 style_priority에 가장 부합하는 스타일을 선택:

style_priority = ["Glassmorphism", "Flat Design"]
BM25 결과 = [Minimalism(score=5.2), Glassmorphism(score=4.8), Aurora UI(score=3.1)]

매칭 과정:
  1단계: "Glassmorphism" → Style Category에 정확 매칭? → Glassmorphism 발견 → 즉시 반환

  (1단계 실패 시)
  2단계: 가중 점수 계산
    Minimalism:    Style Category에 "glassmorphism"? NO(0) + Keywords에? NO(0) = 0
    Glassmorphism: Style Category에 "glassmorphism"? YES(10) = 10
    Aurora UI:     Style Category에 "glassmorphism"? NO(0) = 0
    → 최고 점수: Glassmorphism (10점)

  (2단계도 모두 0점이면)
  3단계: BM25 점수 1위 반환 → Minimalism

6. 지속성 시스템 (Master + Overrides)

6.1 파일 구조

python3 search.py "SaaS dashboard" --design-system --persist -p "MyApp" --page "dashboard"

생성 결과:

design-system/
└── myapp/
    ├── MASTER.md              ← 전역 디자인 규칙 (Source of Truth)
    │   ├── Global Rules
    │   │   ├── Color Palette (Hex + CSS Variables)
    │   │   ├── Typography (Heading/Body + Google Fonts)
    │   │   ├── Spacing Variables (xs~3xl)
    │   │   └── Shadow Depths (sm~xl)
    │   ├── Component Specs
    │   │   ├── Buttons (Primary/Secondary CSS)
    │   │   ├── Cards (CSS)
    │   │   ├── Inputs (CSS)
    │   │   └── Modals (CSS)
    │   ├── Style Guidelines
    │   ├── Anti-Patterns (금지 목록)
    │   └── Pre-Delivery Checklist
    └── pages/
        └── dashboard.md       ← 페이지별 오버라이드
            ├── Layout Overrides
            ├── Spacing Overrides
            ├── Typography Overrides
            ├── Color Overrides
            ├── Component Overrides
            ├── Page-Specific Components
            └── Recommendations

6.2 계층적 검색 로직

페이지 빌드 시:
  1. design-system/myapp/pages/dashboard.md 존재 여부 확인
  2. 존재하면 → 페이지 오버라이드 우선 적용 (MASTER.md 규칙 상속)
  3. 미존재 → MASTER.md 규칙만 사용

6.3 페이지 오버라이드 생성 (design_system.py:914-1017)

_generate_intelligent_overrides() 함수가 페이지 이름과 쿼리를 기반으로 3개 도메인 검색 수행:

style_search  = search(page_context, "style", max_results=1)   # 페이지별 스타일
ux_search     = search(page_context, "ux", max_results=3)       # UX 가이드라인
landing_search = search(page_context, "landing", max_results=1) # 레이아웃 패턴

페이지 타입 자동 감지 (_detect_page_type):

page_patterns = [
    (["dashboard", "admin", "analytics", ...], "Dashboard / Data View"),
    (["checkout", "payment", "cart", ...],     "Checkout / Payment"),
    (["settings", "profile", "account", ...],  "Settings / Profile"),
    (["landing", "marketing", "hero", ...],    "Landing / Marketing"),
    (["login", "signin", "signup", ...],       "Authentication"),
    # ... 10개 패턴
]

7. 데이터 계층 구조

7.1 CSV 데이터베이스 규모

파일행 수용도

ui-reasoning.csv 100 제품별 추론 규칙 (핵심)
products.csv 96 제품 타입 분류
styles.csv 67 UI 스타일 정의 (19 General + 랜딩 + BI)
colors.csv 96 색상 팔레트
typography.csv 57 폰트 페어링
landing.csv 30 랜딩 패턴
charts.csv 25 차트 타입
ux-guidelines.csv 99 UX 가이드라인
icons.csv 100 아이콘 라이브러리
react-performance.csv 44 React 최적화
web-interface.csv 30 웹 인터페이스
stacks/*.csv (13개) ~750 프레임워크별 가이드
합계 ~1,400+  

7.2 styles.csv 구조 (핵심 데이터)

67개 스타일 = 19 General + 9 Landing Page + 나머지 BI/Analytics 등

각 스타일의 22개 컬럼:

컬럼설명예시 (Glassmorphism)

Style Category 스타일 이름 Glassmorphism
Type 분류 (General/Landing/BI) General
Keywords 검색 키워드 Frosted glass, transparent, blurred...
Primary Colors 주색상 rgba(255,255,255,0.1-0.3)
Secondary Colors 보조색상 Electric Blue #0080FF, Neon Purple...
Effects & Animation 효과 Backdrop blur (10-20px)...
Best For 적합 분야 Modern SaaS, financial dashboards...
Do Not Use For 부적합 분야 Low-contrast backgrounds...
Performance 성능 등급 ⚠ Good
Accessibility 접근성 ⚠ Ensure 4.5:1
AI Prompt Keywords AI 프롬프트 Design a glassmorphic interface...
CSS/Technical Keywords CSS 코드 backdrop-filter: blur(15px)...
Implementation Checklist 구현 체크리스트 ☐ Backdrop-filter blur 10-20px...
Design System Variables CSS 변수 --blur-amount: 15px...

7.3 ui-reasoning.csv와 다른 CSV의 관계

사용자 쿼리: "beauty spa wellness"
    │
    ▼
products.csv → "Beauty/Spa/Wellness Service" (카테고리 확정)
    │
    ▼
ui-reasoning.csv → 해당 카테고리의 추론 규칙 조회
    │  style_priority: "Soft UI Evolution + Neumorphism"
    │  color_mood: "Soft pastels + Gold accents"
    │  typography_mood: "Elegant + Calming"
    │
    ├─→ styles.csv      → style_priority로 필터된 스타일 조회
    ├─→ colors.csv       → color_mood 기반 팔레트 조회
    ├─→ typography.csv   → typography_mood 기반 폰트 조회
    └─→ landing.csv      → recommended_pattern 기반 패턴 조회

8. 출력 형식

8.1 도메인/스택 검색 출력 (search.py:30-53)

## UI Pro Max Search Results
**Domain:** style | **Query:** glassmorphism dark
**Source:** styles.csv | **Found:** 3 results

### Result 1
- **Style Category:** Glassmorphism
- **Keywords:** Frosted glass, transparent, blurred background...
- **Performance:** ⚠ Good
- **CSS/Technical Keywords:** backdrop-filter: blur(15px)...

300자 초과 값은 잘림 (토큰 최적화):

if len(value_str) > 300:
    value_str = value_str[:300] + "..."

8.2 디자인 시스템 출력 (2가지)

형식플래그용도

ASCII 박스 -f ascii (기본) 터미널 표시
Markdown -f markdown 문서화

8.3 JSON 출력

python3 search.py "glassmorphism" --domain style --json

출력:

{
  "domain": "style",
  "query": "glassmorphism",
  "file": "styles.csv",
  "count": 3,
  "results": [
    {
      "Style Category": "Glassmorphism",
      "Keywords": "Frosted glass...",
      ...
    }
  ]
}

9. 실제 사용 시나리오

시나리오 1: "SaaS 대시보드 랜딩 페이지 만들어줘"

AI의 실행 순서:

# Step 2 (필수): 디자인 시스템 생성
python3 search.py "SaaS dashboard landing page" --design-system -p "MyProject"

# Step 3 (보충): UX 가이드라인 확인
python3 search.py "animation accessibility z-index" --domain ux

# Step 3 (보충): 추가 차트 타입 확인
python3 search.py "real-time dashboard data" --domain chart

# Step 4: React 스택 가이드
python3 search.py "state performance hooks" --stack react

시나리오 2: "뷰티 스파 웹사이트를 Tailwind로"

# Step 2 (필수): 디자인 시스템 생성
python3 search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"

# Step 3 (보충): 럭셔리 폰트 검색
python3 search.py "elegant luxury serif" --domain typography

# Step 4: Tailwind 가이드
python3 search.py "layout responsive form" --stack html-tailwind

시나리오 3: 디자인 시스템 저장 + 페이지별 오버라이드

# 프로젝트 전체 디자인 시스템 저장
python3 search.py "SaaS dashboard" --design-system --persist -p "MyApp"

# 대시보드 페이지 오버라이드 추가
python3 search.py "SaaS dashboard analytics" --design-system --persist -p "MyApp" --page "dashboard"

# 설정 페이지 오버라이드 추가
python3 search.py "SaaS settings profile" --design-system --persist -p "MyApp" --page "settings"

10. 기술적 특징 요약

특징상세

검색 알고리즘 BM25 (k1=1.5, b=0.75) — 표준 정보 검색 파라미터
외부 의존성 없음 (Python 표준 라이브러리만 사용)
토큰화 소문자 + 구두점 제거 + 3자 미만 필터
기본 결과 수 3개 (max_results)
도메인 자동 감지 쿼리 키워드 빈도 기반 (10개 도메인)
추론 엔진 100개 카테고리 × 9개 속성 규칙
우선순위 매칭 정확 매칭 → 키워드 가중 → BM25 점수
출력 형식 ASCII 박스, Markdown, JSON
지속성 Master + Overrides 계층 패턴
인코딩 UTF-8 강제 (Windows 이모지 호환)



반응형