# 메인플랜 ## 목표 - Export ZIP 무결성 강화(Option2): 자산 무결성 지표와 번들 검증 체계 구축 - CI/CD(Gitea)에서 PR 자동화, 라벨링, 조건부 머지 적용 - 모든 개발은 TDD로 진행하고, 기능 단위 커밋/대브랜치 단위 푸쉬 ## 브랜치 전략 - 대범위 기능 묶음 브랜치: `feat/export-bundle-integrity` - 관련 기능 완료까지 로컬 커밋만 진행, 완료 시점에 일괄 푸쉬 ## 진행 현황 - SHA-256(base64) 무결성 구현 및 `assets.integrity.index.json` 생성 - `assets.index.json` 그룹 정렬/경로 전략(grouped/flat) 커버리지 확장 - `referencedAt` 추적(HTML 내 `rewriteUrl('local:...')`) 매트릭스 테스트 - `verifyIntegrity` 유틸 구현 및 TDD(정상/변조/누락/번들해시 불일치) 통과 - Export Options(폰트 프리커넥트/프리로드, 이미지 로딩/디코딩, robots 메타) UI/문서화 - 브랜치 푸쉬 완료: `feat/export-bundle-integrity` ## TDD 계획 및 상태 - 테스트 선작성 → 최소 구현 → 리팩터/문서화 - 현재 테스트: 110 files / 173 tests 모두 통과 - 무결성 인덱스/검증에 대한 정상/오류 케이스 커버 완료 ## 오류/디버깅 로그 요약 - 그룹 경로(other) 정규식 기대값 수정으로 테스트 안정화 - SHA-256 재계산 불일치 회피: 테스트에서 중복 해시 구현 제거, 산출물 기준 비교 - Node/브라우저 호환 btoa/atob 제거, 안전한 변환 로직 적용 ## 다음 작업 1) PR 생성(템플릿/라벨): `feat/export-bundle-integrity` → `main` 2) CI 무결성 검증 스텝 추가: `verifyIntegrity`로 빌드 산출물 검사 3) PR 라벨 자동화 및 조건부 머지(Gitea Actions/웹훅) 4) README에 사용 가이드 보완(verifyIntegrity 활용 예시) ## CI/CD 계획(초안) - PR 오픈 시: 라벨 자동 지정, 테스트/빌드, 무결성 검증 스텝 실행 - main 머지 조건: 테스트/빌드 통과 + 무결성 검증 통과 + 최소 라벨 셋 충족 ## 커밋/푸쉬 원칙 - 기능 단위 커밋은 한국어 메시지 - 대범위 브랜치 완료 전에 푸쉬 금지(현 단계는 완료되어 푸쉬 수행)