- 네이티브 element props 상속 + className 병합(무의존 cn 헬퍼)
- Button: variant(primary/secondary/outline/ghost/destructive)/size, hover 톤다운(brand-700)
- React 19 기준 forwardRef 없이 ref 전달
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Vite 8 은 'local' 을 모드 이름으로 허용하지 않음(.env.local 접미사 충돌)
- dev 스크립트를 'vite --mode local' → 'vite' 로 변경 (.env.local 은 자동 로드)
- README 환경 변수/실행 안내를 실제 동작에 맞게 갱신
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- index.css 를 shadcn 스타일 토큰 시스템(Tailwind v4 @theme inline)으로 교체
- 다크모드/차트 토큰 제외 (프로젝트 미사용), light 전용
- 브랜드 블루 숫자 스케일 추가: --brand-500/600/700 (hover=톤다운 700)
- --primary=brand-600, --ring/--sidebar-ring=brand-500 로 통일
- 폰트: Pretendard CDN(@import, dynamic-subset, 버전 고정)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- .env.sample 추가, 실제 env(local/dev/prod)는 .gitignore 처리
- package.json: mode 별 실행/빌드 스크립트(dev/dev:dev/build:dev/build:prod) 추가
- README: 기술 스택·로컬 세팅·환경 변수·실행 방법 정리, 템플릿 boilerplate 제거
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Vite(react-ts) 스캐폴딩, @/* -> src 경로 alias 설정
- 라이브러리 추가: TanStack Query, axios, zustand, slate(react/history), tailwindcss v4
- core/provider.tsx 로 QueryClientProvider 분리 및 main 연결
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 단일 negosium_db 안에 company/supplier/partner/card/quotation/negotiation 6개 schema 로 18개 테이블 구성
- FK 미사용(앱 레이어 무결성) + 조인/자연키 인덱스 명시 생성
- enum 코드값은 SMALLINT(1부터), 시각 TIMESTAMPTZ(UTC 고정), 금액 BIGINT, 비율 NUMERIC
- chats: session 1:N + (session_id, seq) 부분 유니크
- CREATE DATABASE 는 \gexec 가드로 멱등 처리, 그 외 전부 IF NOT EXISTS
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>