Files
HMDesign/docs/guidelines/gitea-source-transfer-preparation-2026-10-10.md
T

71 lines
6.1 KiB
Markdown

# 월요일 공식 Gitea 소스 반영 준비
이번 작업은 준비 문서만 작성했다. 공식 Gitea는 NOT ACCESSED / NOT MODIFIED. GitHub 원격을 유지하며 ZIP을 만들지 않았다. 월요일 작업은 별도 지시에 따라 실행한다.
GitHub 임시 이력을 공식 Gitea에 merge/cherry-pick/import하지 않는다. 공식 저장소의 현재 main과 이력을 보존한 상태에서 승인된 최신 소스 파일을 비교·반영하고 공식 저장소에 별도 commit한다. 삭제/충돌/기존 사용자 변경은 자동 덮어쓰기하지 말고 별도 확인할 대상이다.
## 필수 파일
현재 기준은 BASE `0b2bc376aa8b6af9d2492b5620d8ae776391508d`부터 GitHub 최종 main까지다. 월요일 최신 SHA를 새로 확인해야 한다. 정확한 경로 목록은 다음 명령으로 생성한다.
```sh
git diff --name-status 0b2bc376aa8b6af9d2492b5620d8ae776391508d HEAD
```
이번 변경 묶음은 아래와 같다. 이전 시 변경 묶음만 복사하면 기존 의존 파일이 누락될 수 있으므로 전체 최신 추적 소스를 기준으로 공식 소스와 비교한다.
- `AGENTS.md`, `docs/guidelines/ai-generation-guard.md`, `ai-implementation-details.md`, `ai-screen-contract.md`, `component-pattern-reference.md`
- `docs/patterns/filter-bar.md`, 이번 결과/준비 문서·요약 JSON
- `packages/ui/src/index.ts`, `packages/ui/src/patterns/filter-bar/filter-bar.tsx`, `packages/ui/src/theme/filter-bar.css`, `dashboard-layout.css`
- `src/patterns/filter-bar.stories.tsx`
- `scripts/ai-generation-guard.mjs`, `ai-generation-guard.test.mjs`, `guard-theme-analysis.mjs`, `guard-evidence.mjs`, `guard-evidence.test.mjs`, `public-theme-tokens.mjs`, `publisher-components.test.mjs`
- `scripts/prepare-quality-experiments.mjs`, `verify-quality-runtime.mjs`, `verify-quality-reference.mjs`, `verify-quality-regression.mjs`, `serve-quality-reference.mjs`, `audit-quality-contracts.mjs`, `summarize-quality-evidence.mjs`
- `examples/ai-quality/01..10`의 `index.html/main.tsx/requirements.json`, `shared/**`, `README.md`, `tsconfig.json`, `vite.config.ts`
필수 기반 파일은 기존 `package.json`, `package-lock.json`, workspace packages, `.storybook`, Vite/TS 설정, scripts, public/theme/font assets다. 이번 작업은 dependency manifest/lock을 변경하지 않았다. `.git`, `node_modules`, `_local`, 생성 dist/Storybook output은 소스 이전 대상이 아니다. 이전 실험의 원본 증거는 소스와 별도로 보존한다.
## 의존성·검증 환경
실제 실행: Node 20.20.1, React/ReactDOM 19.3.0, TypeScript 7.0.2, Vite 8.3.0, Tailwind/@tailwindcss/vite 4.3.3, Storybook 10.6.1. 설치 버전의 단일 기준은 lockfile이며 공식 환경의 Node/npm 가용성은 월요일 확인해야 한다.
`@hm-design/ui`, `@hm-design/center-graphic`은 npm workspace build가 필요하다. public Theme CSS는 HM source/vendor CSS/font/status asset 연결을 유지한다. 소비 앱은 public export를 사용한다. 패키지 단독 소비는 npm pack 후 별도 앱에 설치해 typecheck/build/runtime를 확인했다.
브라우저 검증에는 Playwright 모듈·Chrome 실행 파일이 별도로 필요하다. 이번 환경에서는 Codex bundled Playwright와 설치된 Chrome을 사용했고 이를 root 의존성에 추가하지 않았다. `HM_PLAYWRIGHT_DIR`, `HM_CHROME_PATH`를 해당 환경 경로로 지정한다. 제품 소스에 로컬 절대 경로를 넣지 않는다.
## 검증 명령
```sh
npm ci --ignore-scripts --no-audit --no-fund
npm run check:theme-defaults
npm run build:packages
npm run typecheck
npm run test:guard
npm run test:components
node --test scripts/guard-evidence.test.mjs scripts/theme-verification.test.mjs
npm run build
npm run build-storybook
npm run build:publisher-example
npm run build:dashboard-export
node node_modules/vite/bin/vite.js build --config vite.recruit-export.config.ts
node scripts/check-doc-links.mjs
node scripts/public-theme-tokens.mjs
node node_modules/typescript/bin/tsc -p examples/ai-quality/tsconfig.json
node node_modules/vite/bin/vite.js build --config examples/ai-quality/vite.config.ts
```
`verify-quality-regression.mjs`는 작업 완료 뒤 관련 build/typecheck/test/Guard를 묶어 실행하는 대안이다. 이미 실행한 같은 검사를 별도로 중복하지 않는다. UI build 산출물이 먼저 준비되어야 한다.
브라우저: preview 6321에서 `verify-quality-runtime.mjs`, reference server 6322에서 `verify-quality-reference.mjs`. 실제 배포와 다른 localhost 경로이므로 공식 경로/assets도 월요일 확인한다. 각 화면 `--result index.html` FULL_SCREEN·Navigation 모드와 PARTIAL/Storybook Profile을 확인하고 static/runtime 상태를 구분한다. 생성 화면 증거 집계는 `node scripts/summarize-quality-evidence.mjs`다.
`audit-quality-contracts.mjs`는 이전 로컬 Storybook/실험 증거의 절대 경로와 BASE commit이 필요하다. 공식 Git 이력에 임시 BASE를 가져오지 않는다. 월요일에는 보존된 baseline JSON·소스 hash를 별도 입력으로 비교하거나 공식 baseline으로 수정한 뒤 사용한다. 동일 경로의 이전 증거가 없으면 그 부분을 NOT VERIFIED로 남긴다.
## 남은 위험
- 기존 공식 저장소와 GitHub의 차이·충돌·추가 파일은 아직 확인하지 않았다. 소스 이전 준비 PASS는 공식 이전 완료를 뜻하지 않는다.
- 모든 source가 이전되어도 ignored build/package dist와 외부 evidence는 다시 생성/별도 보존해야 한다.
- native/CSS intent/computed Token의 기존 Guard NOT VERIFIED와 과거 contrast 잔여 문제는 그대로 남는다. 근거 없는 예외 등록·Theme 변경을 하지 않는다.
- cross-model/낮은 추론 재생성·디자인 점수·스크린리더/실기기는 NOT VERIFIED다.
- source 또는 public Component/Guard 계약이 변경되면 기존 Runtime hash 증거는 stale이다. 변경 화면만 새 증거로 검사한다.
필수 실패가 있으면 공식 push를 보류한다. GitHub 연결 해제는 공식 소스 반영·검증·commit/push·연결 확인 후 별도 지시에 따라 수행한다.