CrownyAI 시작페이지 — game.crowny.org 8종 서비스 타일 추가 (I4)
개요
bundle/start 시작페이지(.tiles 블록)에 game.crowny.org 8종 서비스(아카데미/광고스튜디오/코드생태계/세일즈/커머스/자동화/카피/뉴스레터) 타일을 추가하고, 학습 매니페스트 기반 "지능 N" 배지를 배선했다.
드리프트 검사 결과
- SSOT:
/Users/ef/CrownyBrowser/bundle/start/index.한선
- 작업 전
hanseonc_high index.한선 → crownyc run 재생성물과 현행 index.html을 diff → 완전 일치 (diff exit 0). index.html에 수동 편집으로 인한 드리프트 없음.
index.html.bak(mtime 17:32, index.html·index.한선보다 늦음)은 diff 결과 전혀 다른 구조(구버전 "premium-v1" 카드 디자인 — Crowny<span>Browser</span> 헤더, Bank/INT/Market/Play/Mind/Security 카드형 빠른링크)임을 확인. 이는 2026-07-12 확정된 새 디자인(무엇을 도와드릴까요 히어로 + .tiles) 이전의 스테일 백업으로 판단, 현재 index.html(신규 승인 디자인과 일치)에 병합할 내용 없음 → 그대로 보존, 건드리지 않음.
무엇을 했는지
.tiles CSS를 display:flex; gap:20px(줄바꿈 없음, 12+ 타일 시 잘림) → width:min(640px,92%); flex-wrap:wrap; justify-content:center; gap:20px 16px로 교체(모바일 92%뷰포트에서도 자동 줄바꿈, 미디어쿼리 불필요).
.tile-item에 width:64px 고정(줄바꿈 정렬), .tile에 position:relative(배지 절대배치 기준) 추가.
- 신규
.svc-badge(작은 골드 필 배지, top:-6px right:-6px) 스타일 추가.
.tiles 블록에 8개 <a class="tile-item" data-svc="..."> 타일 추가 — 기존 4타일(크라우니집사/프렌즈/라이프/비즈) + "+" 추가 타일은 그대로 유지, 새 8타일은 그 사이에 삽입:
- data-svc=academy → https://game.crowny.org/academy (제목=아카데미, title 속성=AI·금융 아카데미)
- data-svc=ad → /ad (광고스튜디오, UGC 광고 제작)
- data-svc=build → /build (코드생태계, 한선씨 개발 생태계)
- data-svc=sales → /sales (세일즈, 세일즈 훈련·보상)
- data-svc=commerce → /commerce (커머스, 원스탑 커머스)
- data-svc=auto → /auto (자동화, AI 워크플로 자동화)
- data-svc=copy → /copy (카피, AI 카피라이팅)
- data-svc=letter → /letter (뉴스레터, 뉴스레터 발행·구독)
- 제목(서비스명)은
.lb 라벨로 시각 표시, 부제(설명)는
title 속성(호버 툴팁)으로 배선 — 기존 64px 타일 디자인 규격을 깨지 않는 선택.
- 페이지 하단
<script>에 새 IIFE 추가: fetch('https://game.crowny.org/api/ai/manifest') → 실패 시 http://127.0.0.1:9775/api/ai/manifest 폴백 → 그것도 실패하면 조용히 무시(catch 빈 블록). services[].route("/academy" 등)를 data-svc 값과 매칭해 learn_stats.records가 있으면 해당 타일에 "지능 N" 배지 주입. NodeList 순회는 .forEach 대신 for 루프로 작성(엔진 호환 안전).
재생성 및 검증 (실측)
cd /Users/ef/CrownyOS/crownyc
./hanseonc_high /Users/ef/CrownyBrowser/bundle/start/index.한선 > /tmp/index_final.toau
./crownyc run /tmp/index_final.toau > /Users/ef/CrownyBrowser/bundle/start/index.html
- 컴파일:
1011 토큰 파싱, 44161 큐브 생성, exit 0
- 실행:
로드: 44161 cubes, exit 0, 출력 219줄
grep -c 'href="https://game.crowny.org/' index.html → 8
grep -o 'class="tile-item' 카운트 → 13 (기존4 + 신규8 + 추가1)
<script> 블록 추출 후 node --check → exit 0 (개행 풀림 함정 없음 확인)
tools/디자인대조.sh index.html → 대조: PASS 4 / FAIL 0
관련 파일
/Users/ef/CrownyBrowser/bundle/start/index.한선 (SSOT, 수정)
/Users/ef/CrownyBrowser/bundle/start/index.html (재생성물, 커밋 대상)
/Users/ef/CrownyBrowser/bundle/start/index.html.bak (스테일 구버전 백업, 미변경·미삭제)
/Users/ef/CrownyBrowser/tools/디자인대조.sh (게이트, PASS)
잔여 이슈
- 배지 매칭은
services[].route가 정확히 "/academy" 등 8종 경로와 1:1이어야 동작 — 매니페스트 스키마 변경 시 재확인 필요.
- 앱 재기동(빌드 반영 확인)은 이 작업 범위 밖(메인 세션 통합검증에서 수행) — 본 서브에이전트는 재기동하지 않음.
- index.html.bak 정리 여부는 미결정(요청 범위 밖) — 다음 세션이 필요시 삭제 판단.