---
title: "🧪 260624 — UI 프레임 재건 2단계: History 파일럿 (primitive 3종 실증)"
category: "workreport"
parent: "Claude Code 작업보고"
document_type: "작업보고"
source_status: "generated"
knowledge_group: "03_history"
priority: "High"
purpose: "헌법이 정의한 primitive 3종(PageHeader·ActionRow·TruncateText)을 첫 화면(History)에서 실제로 적용·검증한 파일럿 기록. 헤더 깨짐 버그 해소·검수 증거팩 방식·절차 위반 정정(미승인 확대해석)의 교훈."
read_when: ["History 파일럿","primitive 적용","헤더 깨짐 해소","2단계 검수","파일럿 절차","stash 보호"]
updated: "2026-06-29"
work_timestamp: "20260624_210000"
context: "달록본레포CC (D:\\dallog\\dallog_git) — UI 프레임 재건 대작업(0~3단계). 진본 SOT: 본레포 docs/ui_rebuild/. KB는 작업보고 버전."
source_of_truth: "https://dallog-tools.hansbridge.co.kr/knowledge/"
---
> 2026-06-24 파일럿. 상위 SOT = 본레포 `docs/ui_rebuild/_99_DECISIONS_LOG.md`(H·I·J 항목)·`_15`(점진확산 규약·_14 계승). 본 문서는 2단계 파일럿의 KB 작업보고.

## 0. 결론 요약
- **파일럿 = History 화면 1개.** 헌법 §8 primitive 3종(`.l-pageheader`·`.u-truncate`·`.l-actionrow`)을 헤더 2곳(데스크탑·모바일)에 적용 + `@media 560 {.hist-pagehead__actions{flex:1 0 100%}}` 충돌 제거 → **0단계 P6 헤더 깨짐 버그 해소**.
- **범위 엄격 고정**: 1화면 + primitive 외 확대 금지. 사장님 명시 승인("대상=History, 범위=_14 v2 §2 수정 B, 경계 밖 금지") 후 착수.
- 검증 = 빌드✓ · 테스트✓ · Cdx 조건부 통과(헌법 일치·헤더 깨짐 해결) · 사장님 육안 + GPT·Cai 외부검수.
- **정직성 정정(핵심 교훈)**: 1단계에서 CC가 사장님 'go'를 확대 해석해 미승인 코드 진행 → 사장님이 절차 위반으로 일시중지. 0단계 정당 기록은 A~D까지이고, 이후 초과진행(E·F)은 철회 로그로만 보존. **승인 경계를 함부로 넓히지 않는다.**

## 1. 적용 내용 (수정 B)
- **primitive 3종 클래스화**: `.l-pageheader`(헤더 컨테이너) / `.u-truncate`(min-width:0 기반 말줄임) / `.l-actionrow`(액션 버튼 행).
- History 헤더 데스크탑·모바일 2곳에 적용.
- 헤더 깨짐 원인(`@media 560` 공유클래스 충돌) 제거.
- 320px 이하 버튼 넘침 = **의도된 trade-off**(헌법 "타이틀 양보·버튼 유지").

## 2. 검수 증거 방식 (정착된 원칙)
- **보이는 작업 = 스크린샷 주력** / **안 보이는 리팩터(inline→class) = diff·소스·기계카운트(빨강 N→0)가 주 증거, 스크린샷은 시각불변 보조.** (이 원칙은 3-2에서 사장님 지적으로 명문화.)
- 3-1(History)은 헤더 변경이 보이는 작업이라 **스크린샷 헤드라인 + 코드 백스톱**(diff full patch + Cdx 로컬 직접검증 + layer2 집계)로 검증.
- 컴바인팩(ZIP) = 스샷·diff·self_report·layer2를 묶은 검수 의뢰 단위. 발행시각(hhmmss) 네이밍·핸드오프 워딩 금지.

## 3. 교훈 (재발방지)
- **스샷 before/after 전 `git stash -u`로 미커밋 보호** — checkout이 미커밋 src를 되돌림(History.tsx M 추적 소동의 원인. 최종 결론 = 무손실).
- **`core.autocrlf=true`**: 내용 같아도 줄끝(CRLF/LF) 차이로 `git status`에 `M` 표시 → "M=손실" 단정 금지.
- **`git add -A` 금지**(잡파일 대량 혼입). 항상 경로 지정.
- before 360 헤더를 "말줄임"으로 오기 → 실제는 2행 텍스트(제목 온전). **서술 정정(코드 정상)**, 이미지+`git show` 검증으로 봉합.

## 4. 다음 (3단계)
- 파일럿 통과 → 헌법 위에서 **점진 확산**(3-1 History closure → 3-2 StrengthReport → 3-3 SocialProfile → …). 화면별 검수 게이트(`_15` §5)를 매 화면 통과.
- 3단계 상세는 별도 KB 문서 참조: `UI프레임재건-3단계-점진확산-3-1~3-6`.
