FCfeno-canvas · DEC-292
Session Report · 2026-07-01

디자인 시스템 트랙, 라이브까지 완료

3개 PRO 리서치를 하나의 결정 시스템으로 종합하고 5개 커밋으로 박제했습니다. 결과물이 "내용 무관 하나의 얼굴"에서 "brief마다 다른 아트 디렉션"으로 바뀌었고, 파워데모까지 라이브 반영했습니다.

A–D
전 단계 merge+push
70
tests (55→70, 회귀 0)
17/17
적대 검증 방어
LIVE
CF 반영 완료
Decision

온라인 lane을 1급 검증 경로로 채택 — CDN 라이브러리를 화이트리스트 + SRI + crossorigin 3중 조건에서만 허용, offline 기본 경로는 바이트 불변. 이 문서 자체가 그 online lane으로 배포된 첫 산출물입니다.

무엇을 했나

TYPE × FAMILY × LANE 호환성 매트릭스를 SKILL·템플릿·validator에 단계적으로 반영

A

SKILL 디자인 프로세스

generic Design Rules → Design Process·Type-aware·Pre-Ship Gate 4섹션 + reference

dfd8cd0cc
B

템플릿 type-aware 컴포넌트

evidence rail · review 판정 · reduce-motion 게이트 (실브라우저 검증)

95207f658
C1

design-smoke + 사이드카

경고 전용 lint · design.json · manifest 불변

f7500bf70
C2

online lane validator

화이트리스트+SRI+crossorigin · 파티클 fix (14,400)

c5754d058
D

favicon PNG-only 채널

surgical // 마스킹 · SVG는 차단 유지

41839c348

품질은 흔들리지 않았다

단계마다 테스트가 늘고, 적대 검증을 통과했으며, 기존 동작은 회귀 0

테스트 55 → 70 (+15) · 전 구간 단조 증가

LEFT(Claude)가 직접 공격을 만들어 17/17 전부 거부됨을 확인했습니다 — 도메인 suffix·userinfo·protocol-relative·위조 integrity 포함. favicon은 base64에 //가 있어도 통과하되 같은 문서의 실제 //evil은 계속 거부(surgical mask).

핵심: 온라인 완화는 --lane online에만, 기본 offline은 바이트 단위로 그대로.

이렇게 달라졌다

같은 도구, 완전히 다른 결과물

Before

  • 내용이 뭐든 하나의 얼굴
  • 흰 배경 + 파란 accent + 시스템 폰트
  • "기본 LLM 보고서"로 읽힘

After

  • TYPE·FAMILY·LANE로 매번 다른 얼굴
  • 리뷰=판정 큐, 리포트=결정 스트립
  • 검증된 온라인 CDN lane까지