요청: ays-clean-플랫폼복제
- 날짜: 2026-07-30 15:43:58
- 작업 경로: /Users/ef
요청 본문
clean.crowny.org 서비스를 그대로 AYS.crowny.org 로 가져오기. 고객들이 열차단필름시공, 인테리어필름시공, 창호시공 작업을 문의하고 공사 과정도 볼 수 있고, 결과보고도 받을 수 있게 하는 크라우니 '고객님 말씀하신대로'(As you said -> AYS) 서비스. 소넷 에이전트 10기 수준 적극 활용, clean 개선 시 AYS도 따라 개선되는 플랫폼 서비스화
관련 산출
(클로드가 작업 결과를 이어 기록)
완료 결과 (2026-07-30)
- 아키텍처: ays.crowny.org 루트=시공 플랫폼(clean 엔진 플랫폼화 이식, :9929), /landing=기존 필름 사이트(크라우니디자인 적용). server.js(:9920)=프론트 프록시.
- 플랫폼화: crowny-clean 서버.한선을 설정.psv 구동형 코어로 리팩토링(SSOT). AYS 인스턴스=시공/설정.psv(AYS·"고객님 말씀하신대로(As You Said)"·열차단필름시공/인테리어필름시공/창호시공), 데이터 완전 격리.
- 상속(clean 개선→AYS 전파): 시공/동기화.sh + 동기화.한선(4상: 티/옴/타, 충돌 시 덮어쓰기 거부·백업 복원·스모크 200 게이트).
- 검증: 종단 20항목 PASS(공개 HTTPS 4경로 200, 견적→예약→사진→리포트 API 종단, 재기동 데이터 복원, clean 회귀 0). 잔여 이슈 5건 전부 수리 완료(경로 15줄 정본 병합, /home·title·역할바·"Crowny Clean" 브랜딩, 동기화 스모크 라벨 교정) 후 동기화 옴(변경없음) 확인.
- 뒷정리: clean 운영 quote.psv 테스트 오염 2행 제거(백업 보존), 잔여 ays-plat plist/gateway 9953 항목 제거.
- 소넷 에이전트 8기(워크플로우 7 + 수리 1), 상세 문서 5본(동일자 플랫폼화/인스턴스/동기화도구/프론트라우팅/정본병합).
2차 개선 (2026-07-30 사용자 지시 3건 — 완료)
- 폰트 CSS 이중 덮음 제거: 시공 앱(clean 정본) 로컬 Pretendard @font-face 삭제 → 중앙 'Crowny Gothic' 스택. landing.html도 인라인 재선언으로 중앙 폰트 우선(공유 style.css 무수정, 기존 index 무영향).
- 구역 프리셋: 주거(집)+열차단필름=창호마다 구역(창호1..N), 상가/기업=위치 1~5 순번+각 위치 이름 지정. /admin/zones/create·rename + 관리자 화면 생성 UI(이름 입력→create+rename 연쇄)·인라인 이름수정. 견적에 건물유형 필드(idx14 append, 구행 호환).
- 사진 3단계: 시공전/시공중(작업사진)/시공후 — config(photo_stages) 구동, 고객 "공사 과정" 화면 단계 그룹+구역명 표기, 비포애프터와이퍼=전vs후 유지.
- 전부 clean 정본 수정→동기화.sh 전파(티→옴 멱등), clean 회귀 0, AYS 쓰기 종단(상가 위치3 생성→rename→시공중 업로드→게시→고객조회) PASS. /api/config 최종: zone_preset·photo_stages·building_types 노출.
- 대표 연락처 반영: 010-4466-7838(기존)+yoobigo77@mail.com 신규 — landing/index 각 3지점, CLAUDE.md 정본 기록.
- 잔여(비긴급): 관리자 사진분류 카드에 수동 단계 드롭다운 없음(스태프 태그 suggest_stage 의존)·구역 개수 상한(20/5) 프론트만 강제.
3차: 루트 스왑 + 헤드라인 config화 + 폰트 얇음 수리 (2026-07-30, 사용자 지시 3건 — 완료)
- 기본 페이지 스왑:
/Users/ef/crowny-ays/server.js"프론트 라우팅 재편" 블록 수정 —/(루트)=public/landing.html(기존 필름 사이트) 서빙으로 복귀,/work·/work/*=시공 플랫폼(:9929) 프록시(경로 접두/work제거 후 전달,proxyToPlatform(req,res,overridePath)로 확장)./landing유지. 기존/api/*화이트리스트·public 실존파일 fallthrough 프록시 로직 무변경. 동반/Users/ef/crowny-ays/프록시라우팅.한선판정 로직 동반 갱신(work접두인가()추가) + 재컴파일·셀프테스트 통과.public/landing.htmlCTA 배너 href/→/work로 수정(index.html 무수정). - 플랫폼 헤드라인 config화: clean 정본
서버.한선에 전역_홈헤드라인("한국은 왜 깨끗할까." 기본)·_홈부제("" 기본) 추가, 설정.psv 열10·11(_필드(첫줄,10/11))로 오버라이드./home응답과/api/config(_처리설정) 둘 다에headline·sub_headline노출.앱.html헤드라인 렌더 아래d.sub_headline있으면 12px 흐린색(--잉크희미) 보조문구 추가. AYS시공/설정.psv열10·11에고객님 말씀하신대로|As you saidappend. clean설정.psv는 무수정(누락 열은_필드가""반환 → 기존 기본값 유지, 회귀 0 확인). - 폰트 얇음 수리: 진단 —
Crowny Gothic가변폰트(@font-face font-weight:100 900)는 정상 선언돼 있으나landing.html/앱.htmlbody 규칙에font-weight미지정(브라우저 초기값 normal=400에 의존, 실제 렌더는 얇게 보임). 저가중치(100~300) 명시 선언은 발견되지 않음. 수리:landing.htmlbody에font-weight:500, h1~h6에font-weight:700명시 추가. clean앱.htmlbody에font-weight:500추가(제목류.세리프(700)·.골드버튼(800) 등 기존 700~900 유지 확인). 공유style.css무수정.
배포·검증 결과
- clean(:9624) 재컴파일(
hanseonc_high 서버.한선 → 서버.toau)+launchctl kickstart -k gui/501/org.crowny.clean→/200,/homeheadline="한국은 왜 깨끗할까." 유지(회귀 0). 시공/동기화.sh실행 → 판정 티(SRC≠MIR)·재컴파일·스모크 200 통과·확정.:9929/home·/api/configheadline="고객님 말씀하신대로" / sub_headline="As you said" 확인.- AYS server.js(:9920) 재기동(
lsof -tiTCP:9920 -sTCP:LISTEN→ kill →launchctl kickstart -k gui/501/com.crowny.ays). 로컬:/200(AYS 필름 랜딩,ays-cta-banner포함) ·/work200(플랫폼, "고객님 말씀하신대로") ·/work/homeAPI 정상 ·/landing200 ·/api/stats200 ·/join.html200. - 공개 HTTPS:
https://ays.crowny.org/200(AYS 랜딩) ·/work200(플랫폼) ·/landing200(AYS 랜딩) ·https://clean.crowny.org/200. 전부 curl -sk 실측 확인. - 폰트: 정적 CSS 검토로
font-weight:500(body)/700(h1~h6, .세리프)반영 확인(브라우저 헤드리스 컴퓨티드스타일 측정 도구는 CrownyBrowser 전용 탭바 규격 대조기라 이 페이지엔 해당 항목 전부 SKIP — 별도 렌더 스크린샷 대조는 미실시, 잔여 이슈로 기록).
관련 파일
/Users/ef/crowny-ays/server.js(프론트 라우팅),/Users/ef/crowny-ays/프록시라우팅.한선(동반 판정)/Users/ef/crowny-ays/public/landing.html(CTA href, font-weight)/Users/ef/crowny-clean/서버.한선(헤드라인 config),/Users/ef/crowny-clean/앱.html(sub_headline 렌더 + font-weight)/Users/ef/crowny-ays/시공/설정.psv(append),/Users/ef/crowny-clean/설정.psv(무수정)
잔여 이슈
- 폰트 웨이트 수리를 실제 스크린샷 헤드리스 렌더로 시각 대조하지 않음(정적 CSS 검토만) — 필요 시
mcp__claude-in-chrome등으로 재확인 권장. /work하위 상대경로 자산(있다면)이 플랫폼 응답 내 절대경로/xxx를 참조하는 경우 프론트 프록시 경유라 정상 작동하지만, 플랫폼이/work접두를 모르는 상대 링크를 생성하면 별도 재작업 필요할 수 있음(현재 확인된 API는 전부 절대경로라 문제 없음).
4차: 이미지 생성 도구 (2026-07-30 완료)
- 이미지생성기.한선(SVG 코어: 4사업부 모티프×3색조·4상 자체판정) + server.js 라우트 3종(생성/부착/목록, x-admin-pass) + public/imagegen.html 관리 UI(admin.html 링크·크라우니디자인 적용) + 히어로/사업부 카드 이미지 소비 배선(app.js·style.css).
- Gemini 승격 경로 배선(프롬프트 입력 시 시도→429 폴백 실증, backend 필드로 표시). 결제 활성화 즉시 실사 생성 자동 승격.
- 검증: 401/200 인증, SVG 생성·division 부착·복원, 회귀 4경로 200, 헤드리스 렌더 확인. 잔여=RPN 미러·generated 정리정책.
5차: 폰트 얇음 근본수리 (2026-07-30 완료 — 스크린샷 실측)
- 증상 "굵게 나왔다가 얇아짐"=FOUT 후 Crowny Gothic VF가 헤어라인 렌더. 원인 실측: 이 VF는 font-weight→wght축 매핑이 안 되고 @font-face 구간분할 디스크립터도 무시 — 요소 레벨 font-variation-settings만 유효(A/B/C 대조 스크린샷).
- 수리: 중앙 크라우니디자인.css에 매핑 블록(body 'wght' 500, h1~h6/b/strong/th/button 800 — data-crowny 전 서비스 일괄) + landing.html 세부(히어로 900·네비/버튼 700·섹션제목 800) + clean 정본 앱.html 칩/머리류 700 → 동기화 전파.
- 검증: before/after 스크린샷 대조(히어로·네비·스탯 굵게), /work 텍스트 렌더+홈 콘텐츠 정상, clean 회귀 무영향(중앙 매핑은 원래 의도 웨이트 복원). 메모리 feedback_크라우니고딕VF_wght매핑안됨 기록.
- 잔여: 폰트 파일 자체 fvar/STAT 재빌드(근본), 타 서비스 div류 커스텀 웨이트는 각 서비스에서 요소 레벨 추가 필요.
6차: 관리자 콘솔 재정비 — 크라우니 통합회원 SSO (2026-07-30 완료)
- 통합회원 ays 계정(ays@crowny.org) + AYS 조직(그룹) 생성(auth.crowny.org, org ORGc2993146ff5d3663).
- admin.html 3탭 콘솔 재작성: ①웹페이지 관리(공사실적 게시/삭제·히어로 교체·이미지생성 링크) ②공사진행보고/채팅(/work 관리자 딥링크+inbox+간이채팅) ③고객 후속관리(문의/후기/거래+후속 메모 후속관리.psv).
- 인가=SSO 토큰검증+AYS그룹 소속(5분 캐시, 그룹인가.한선 진리표)+패스코드 폴백. 실측: 멤버 200/무토큰 401/비소속 403, 사례·후속 종단, 회귀 200, 메인세션 재검수(sso-login→session 200) 통과.