feat(design-harness): UI overhaul harness + /design bot command

Agents:
- ui-scout: Playwright MCP + Variant(variant.com/community) visual capture
- design-system-architect: unified design tokens (CSS vars / RN StyleSheet)
- component-refactor-engineer: per-system component refactoring
- visual-qa-tester: before/after screenshot comparison

Skills:
- ui-overhaul-orchestrator: E2E pipeline (capture->tokens->refactor->QA)
- playwright-visual-capture: Playwright MCP + Variant workflow
- design-token-system: tokens.css with Pretendard, 4px grid, brand colors
- component-refactor: Button/Card/Badge patterns for 4 systems

Bot: /design capture|variant|tokens|homepage|itsm|manager|app|qa|ab

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
DESKTOP-TKLFCPRython 2026-05-31 18:15:13 +09:00
parent 60e619a132
commit f3857e1a2c

View File

@ -600,6 +600,46 @@ async def handle_bot_command(
reply = await _cmd_gitea_status(repo, action) reply = await _cmd_gitea_status(repo, action)
return BotReply(room=cmd.room, text=reply) return BotReply(room=cmd.room, text=reply)
# ── /design ─── 디자인 리뉴얼 봇 ────────────────────────────────────────
elif keyword in ("/design", "!design"):
sub = parts[1].lower() if len(parts) >= 2 else "help"
design_cmds = {
"capture": "Playwright MCP로 현재 UI Before 스크린샷 캡처",
"tokens": "통합 디자인 토큰(tokens.css) 생성 → 4개 시스템 적용",
"qa": "Before/After 시각적 QA + 반응형 검증",
"homepage": "홈페이지 컴포넌트 리팩토링 시작",
"itsm": "ITSM UI 현대화 시작",
"manager": "Manager 디자인 개편 시작",
"app": "Messenger 앱 디자인 개편 시작",
}
if sub == "variant":
query = " ".join(parts[2:]) if len(parts) >= 3 else "enterprise dashboard"
return BotReply(room=cmd.room,
text=f"[디자인 봇] Variant 탐색: '{query}'\n"
f"→ playwright-visual-capture 스킬로 variant.com/community 탐색")
elif sub == "ab":
comp = parts[2] if len(parts) >= 3 else "button"
return BotReply(room=cmd.room,
text=f"[디자인 봇] {comp} A/B 테스트 컴포넌트 → component-refactor 스킬 실행")
elif sub in design_cmds:
return BotReply(room=cmd.room,
text=f"[디자인 봇] {design_cmds[sub]}\n"
f"→ ui-overhaul-orchestrator 스킬 Phase: {sub}")
else:
return BotReply(room=cmd.room, text=(
"[디자인 리뉴얼 봇] 명령어 목록\n"
"━━━━━━━━━━━━━━━━━━━━━\n"
"/design capture → 현재 UI Before 스크린샷\n"
"/design variant <검색어> → Variant 디자인 탐색\n"
"/design tokens → 통합 디자인 토큰 생성\n"
"/design homepage → 홈페이지 컴포넌트 개편\n"
"/design itsm → ITSM UI 현대화\n"
"/design manager → Manager 디자인 개편\n"
"/design app → Messenger 앱 개편\n"
"/design qa → Before/After 시각적 QA\n"
"/design ab <컴포넌트> → A/B 테스트 버전 생성"
))
# ── /release <project> [version] ─── 릴리즈 배포 트리거 ───────────────── # ── /release <project> [version] ─── 릴리즈 배포 트리거 ─────────────────
elif keyword in ("/release", "!release"): elif keyword in ("/release", "!release"):
if len(parts) < 2: if len(parts) < 2:
@ -1944,6 +1984,17 @@ SM 스크립트 키: system, tomcat, jboss, jeus,
weblogic, postgresql, oracle, mysql, tibero, weblogic, postgresql, oracle, mysql, tibero,
esb, elasticsearch, solr, pinpoint, scouter esb, elasticsearch, solr, pinpoint, scouter
[디자인 리뉴얼 ]
/design capture 현재 UI Before 스크린샷 (Playwright MCP)
/design variant <검색어> Variant 디자인 레퍼런스 탐색
/design tokens 통합 디자인 토큰 생성
/design homepage 홈페이지 컴포넌트 개편
/design itsm ITSM UI 현대화
/design manager Manager 디자인 개편
/design app Messenger 개편
/design qa Before/After 시각적 QA
/design ab <컴포넌트> A/B 테스트 버전 생성
[스크랩핑 ] [스크랩핑 ]
!scrap <url> URL 즉시 스크랩 !scrap <url> URL 즉시 스크랩
!scrap list [n] 최근 n개 결과 목록 !scrap list [n] 최근 n개 결과 목록