chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합

- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ahnyongjooandClaude Sonnet 5.5 committed 2026-10-28 11:20:18 +09:00
commit 964a841de1
3978 files changed
+58013356

No files matched your search

@@ -0,0 +1,149 @@
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Prism M5 샘플 — A3 설명자료 (패턴 P3 프로세스)</title>
<style>
/* ══════════════════════════════════════════════════════════════
Prism Design System v0.1.1 — M5 a3-explainer 샘플
근거: A3/module.a3-explainer.md · design.tokens.json (SSOT)
아래 :root 블록이 토큰 정의부다. 본문 규칙에는 var()만 쓴다.
인쇄: A3 가로(420×297mm), 여백 0으로 출력 (브라우저 인쇄 → PDF)
══════════════════════════════════════════════════════════════ */
:root {
/* color (brand saman — 등록 페어만 사용) */
--sand: #F4F3F0; /* G4 캔버스 (순백 전면 금지) */
--white: #FFFFFF; /* G0 카드 면 */
--brown: #474235; /* G72 본문 — on sand 9.02 AAA */
--green: #1F524B; /* G69 제목·구조 — on sand 8.00 AAA */
--orange: #D05C26; /* G47 악센트 — 대형 전용, 1면당 ≤2 */
--obsidian: #111111; /* G95 반전 면 */
/* type (base 10pt · 행간 = 베이스라인 6mm) */
--t-caption: 7.9pt; --t-body-sm: 8.9pt; --t-body: 10pt; --t-body-lg: 11.3pt;
--t-title-sm: 12.7pt; --t-title: 16pt; --t-title-lg: 20.3pt; --t-display: 28.9pt;
--lh-body: 6mm; /* 10pt × 1.70 = 17pt = 5.997mm ≈ 6mm */
/* space (base 6mm) */
--sp-050: 3mm; --sp-100: 6mm; --sp-150: 9mm; --sp-200: 12mm; --sp-300: 18mm; --sp-400: 24mm;
/* stroke · radius */
--hairline: 0.2mm; --regular: 0.4mm; --connector: 1mm; --r-md: 3mm;
}
@page { size: 420mm 297mm; margin: 0; }
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { background: #888; }
.page {
position: relative; width: 420mm; height: 297mm; margin: 0 auto;
background: var(--sand); overflow: hidden;
font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
color: var(--brown); font-size: var(--t-body); line-height: var(--lh-body);
}
@media print { html, body { background: none; } .page { margin: 0; } }
/* ── 헤더 존 (21~51mm) ── */
.header { position: absolute; left: 24mm; right: 24mm; top: 21mm; height: 30mm; }
.eyebrow { display: flex; align-items: center; gap: 2mm; font-size: var(--t-caption); letter-spacing: 0.18em; color: var(--brown); line-height: 6mm; }
.eyebrow .tick { width: 2.5mm; height: 2.5mm; background: var(--orange); } /* 악센트 1/2 */
.header h1 { font-size: var(--t-title-lg); font-weight: 700; color: var(--green); line-height: 12mm; }
.meta { position: absolute; right: 0; top: 0; text-align: right; font-size: var(--t-caption); line-height: 4.5mm; color: var(--brown); }
.meta b { font-weight: 500; color: var(--green); }
.header .rule { position: absolute; left: 0; right: 0; bottom: 0; border-bottom: var(--regular) solid var(--green); }
/* ── scope 블록 (57mm) ── */
.scope { position: absolute; left: 24mm; right: 24mm; top: 57mm; height: 24mm;
background: var(--white); border: var(--hairline) solid var(--brown); border-radius: var(--r-md);
padding: var(--sp-050) var(--sp-200); display: flex; gap: var(--sp-400); align-items: center; }
.scope dl { font-size: var(--t-body-sm); line-height: 5mm; }
.scope dt { font-weight: 700; color: var(--green); font-size: var(--t-caption); letter-spacing: 0.12em; }
/* ── 스테이지 카드 4열 (3:3:3:3 — 존 폭 88.5mm) ── */
.stage { position: absolute; top: 93mm; width: 88.5mm; height: 84mm;
background: var(--white); border: var(--hairline) solid var(--brown); border-radius: var(--r-md);
padding: var(--sp-100); }
.stage .no { font-size: var(--t-title); font-weight: 700; color: var(--orange); line-height: 12mm; }
.stage h2 { font-size: var(--t-title-sm); font-weight: 500; color: var(--green); line-height: 6mm; margin-bottom: var(--sp-050); }
.stage p { font-size: var(--t-body-sm); line-height: 5mm; }
.stage.hl { background: var(--green); border-color: var(--green); } /* 면 반전 — white/green 8.87 AAA */
.stage.hl .no, .stage.hl h2 { color: var(--white); }
.stage.hl p { color: var(--sand); }
.s1 { left: 24mm; } .s2 { left: 118.5mm; } .s3 { left: 213mm; } .s4 { left: 307.5mm; }
.conn { position: absolute; top: 133mm; width: 6mm; height: 0; border-top: var(--connector) solid var(--brown); }
.conn::after { content: ""; position: absolute; right: -0.5mm; top: -1.7mm; border-left: 2mm solid var(--brown); border-top: 1.2mm solid transparent; border-bottom: 1.2mm solid transparent; }
.c1 { left: 112.5mm; } .c2 { left: 207mm; }
.c3 { left: 301.5mm; border-top-color: var(--orange); } /* 귀결 커넥터 — 악센트 2/2 */
.c3::after { border-left-color: var(--orange); }
/* ── principle (결론 존, 195mm) ── */
.principle { position: absolute; left: 24mm; right: 24mm; top: 195mm; height: 36mm;
border-left: 1.5mm solid var(--orange); padding-left: var(--sp-100); }
/* 주: principle 악센트 바는 결론 존 전용 표지로, 본 면에서는 아이브로 틱과 합산해 상한(2)을 넘지 않도록
아이브로 틱을 무채 표기로 강등할 수 있다. 본 샘플은 틱·귀결 커넥터 2건을 카운트하고 바는 green으로 대체한다. */
.principle { border-left-color: var(--green); }
.principle .kicker { font-size: var(--t-caption); letter-spacing: 0.18em; color: var(--brown); line-height: 6mm; }
.principle h3 { font-size: var(--t-title); font-weight: 700; color: var(--green); line-height: 9mm; margin-top: 1.5mm; }
.principle p { font-size: var(--t-body); line-height: var(--lh-body); margin-top: 1.5mm; }
/* ── 푸터 존 (255~273mm 불가침) ── */
.footer { position: absolute; left: 24mm; right: 24mm; top: 255mm; height: 18mm;
border-top: var(--hairline) solid var(--brown); padding-top: 2mm;
display: flex; justify-content: space-between; font-size: var(--t-caption); line-height: 4.5mm; }
</style>
</head>
<body>
<div class="page">
<header class="header">
<div class="eyebrow"><span class="tick"></span>PRISM DESIGN SYSTEM · 설명자료</div>
<h1>산출물은 4단계로 결정된다 — Prism 파생 프로세스</h1>
<div class="meta">
<b>분류</b> 시스템 안내 &nbsp;·&nbsp; <b>개정</b> v0.1.1<br>
<b>대상</b> 전 매체 공통 &nbsp;·&nbsp; <b>상태</b> 승인
</div>
<div class="rule"></div>
</header>
<section class="scope">
<dl><dt>적용 조건</dt><dd>Prism v0.1.1 기반의 신규 산출물(인쇄·슬라이드·화면)을 제작하는 경우</dd></dl>
<dl><dt>제외 조건</dt><dd>없음</dd></dl>
<dl><dt>선행 요건</dt><dd>해당 매체의 실행 명세(모듈) 확인</dd></dl>
</section>
<article class="stage s1">
<div class="no">①</div>
<h2>브랜드 선언</h2>
<p>활성 인스턴스를 확인한다 — 철학·가치축·팔레트·서체·보이스·금지 목록.
브랜드가 바뀌면 이 계층(L0)만 바뀐다. 하위 계층에 색상 리터럴이 0건이어야 교체가 격리된다.</p>
</article>
<article class="stage s2">
<div class="no">②</div>
<h2>파운데이션 적용</h2>
<p>비율·단계·관계만 적용한다 — GRADE 색 척도, 타입 생성식 1.125ⁿ, 공간 백분율 스케일, 12컬럼 그리드.
이 계층(L1)에는 절대 치수가 존재하지 않는다.</p>
</article>
<article class="stage s3">
<div class="no">③</div>
<h2>매체 바인딩</h2>
<p>base 하나로 절대값을 실체화한다 — print 10pt, presentation 24px, screen 1rem.
같은 토큰명이 매체별 값셋을 갖는다. 본 자료의 본문 10pt·행간 6mm가 그 결과다.</p>
</article>
<article class="stage s4 hl">
<div class="no">④</div>
<h2>모듈 고정</h2>
<p>남은 자유도를 없앤다 — 패턴 배정, 컴포넌트 선별, 분량 예산.
규칙 완화는 불가능하며 강화만 가능하다. 검증 게이트를 통과하지 못한 산출물은 확정하지 않는다.</p>
</article>
<span class="conn c1"></span><span class="conn c2"></span><span class="conn c3"></span>
<section class="principle">
<div class="kicker">원칙</div>
<h3>어느 단계도 생략하지 않는다.</h3>
<p>본 자료 자체가 M5 실행 명세(A3 가로 · 3:3:3:3 패턴 · 등록 색 페어 · 베이스라인 6mm)의 산출물이다.
[출처: Prism Design System v0.1.1 — A3/module.a3-explainer.md]</p>
</section>
<footer class="footer">
<span>Prism Design System — M5 A3 설명자료 샘플</span>
<span>1 / 1 · v0.1.1 · 2026-07-29</span>
</footer>
</div>
</body>
</html>
@@ -0,0 +1,104 @@
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Prism M6 샘플 — A4 보고서 (single 변형 · 1단 통독형)</title>
<style>
/* ══════════════════════════════════════════════════════════════
Prism Design System v0.1.1 — M6 a4-document 샘플 (single 변형)
근거: A4/module.a4-document.md · design.tokens.json (SSOT)
판형: A4 세로 210×297 · 여백 좌우 39 / 상 21 / 하 24
콘텐츠 132×252mm → 본문 1단 measure 37.4em ✓ (표준 여백 1단 금지 규칙 준수)
인쇄: 브라우저 인쇄 → A4, 여백 0
══════════════════════════════════════════════════════════════ */
:root {
--sand: #F4F3F0; --white: #FFFFFF; --brown: #474235; --green: #1F524B; --orange: #D05C26;
--t-caption: 7.9pt; --t-body-sm: 8.9pt; --t-body: 10pt; --t-title-sm: 12.7pt; --t-title: 16pt; --t-title-lg: 20.3pt;
--lh-body: 6mm; --sp-050: 3mm; --sp-100: 6mm; --sp-150: 9mm; --sp-300: 18mm;
--hairline: 0.2mm; --regular: 0.4mm; --r-md: 3mm;
}
@page { size: 210mm 297mm; margin: 0; }
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { background: #888; }
.page { position: relative; width: 210mm; height: 297mm; margin: 0 auto; background: var(--sand); overflow: hidden;
font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
color: var(--brown); font-size: var(--t-body); line-height: var(--lh-body);
padding: 21mm 39mm 24mm 39mm; }
@media print { html, body { background: none; } .page { margin: 0; } }
.eyebrow { display: flex; align-items: center; gap: 2mm; font-size: var(--t-caption); letter-spacing: 0.18em; line-height: 6mm; }
.eyebrow .tick { width: 2.5mm; height: 2.5mm; background: var(--orange); } /* 악센트 1/2 */
h1 { font-size: var(--t-title-lg); font-weight: 700; color: var(--green); line-height: 9mm; margin: var(--sp-050) 0; }
.meta { width: 100%; border-collapse: collapse; margin: var(--sp-050) 0 var(--sp-100) 0; font-size: var(--t-body-sm); line-height: 5mm; }
.meta th, .meta td { border: var(--hairline) solid var(--brown); padding: 1mm 2.5mm; text-align: left; }
.meta th { background: var(--white); font-weight: 500; color: var(--green); width: 18mm; }
.docrule { border-bottom: var(--regular) solid var(--green); margin-bottom: var(--sp-100); }
h2 { font-size: var(--t-title-sm); font-weight: 700; color: var(--green); line-height: 6mm; margin: var(--sp-100) 0 var(--sp-050) 0; }
p { margin-bottom: var(--sp-050); }
p.lead { font-size: var(--t-body); }
table.data { width: 100%; border-collapse: collapse; font-size: var(--t-body-sm); line-height: 5mm; margin: var(--sp-050) 0;
font-variant-numeric: tabular-nums; }
table.data caption { text-align: left; font-size: var(--t-caption); color: var(--brown); letter-spacing: 0.12em; padding-bottom: 1mm; }
table.data th { background: var(--white); color: var(--green); font-weight: 500; border: var(--hairline) solid var(--brown); padding: 1.2mm 2.5mm; text-align: left; }
table.data td { border: var(--hairline) solid var(--brown); padding: 1.2mm 2.5mm; }
table.data td.num { text-align: right; }
.directive { display: flex; gap: 2.5mm; background: var(--white); border: var(--hairline) solid var(--brown);
border-radius: var(--r-md); padding: var(--sp-050) var(--sp-100); margin: var(--sp-050) 0; font-size: var(--t-body-sm); line-height: 5mm; }
.directive .sym { font-weight: 700; color: #005A4E; } /* 상태색 do — 기호 병기 필수 */
.footer { position: absolute; left: 39mm; right: 39mm; bottom: 9mm; display: flex; justify-content: space-between;
font-size: var(--t-caption); line-height: 4.5mm; border-top: var(--hairline) solid var(--brown); padding-top: 1.5mm; }
</style>
</head>
<body>
<div class="page">
<div class="eyebrow"><span class="tick"></span>CM기획팀 · 업무 보고</div>
<h1>디자인 시스템 v0.1.1 개정 결과 보고</h1>
<table class="meta">
<tr><th>문서번호</th><td>HMCM-DS-2026-001</td><th>버전</th><td>v1.0.0</td></tr>
<tr><th>작성</th><td>CM기획팀 HMCM</td><th>작성일</th><td>2026-07-29</td></tr>
</table>
<div class="docrule"></div>
<h2>1 개요</h2>
<p class="lead">Prism 통합 디자인 시스템 v0.1.0(9파일 6,061행)을 전수 진단하고 v0.1.1로 개정하였다.
전 수치를 프로그램으로 재검산한 결과 색·대비·타입 체계는 전량 정확하였으며,
수치 오계산과 토큰 무결성 위반이 확인되어 보정하였다. 개정판과 매체별 실행 명세 6종은
"DOC/design system_v0.1.1" 폴더에 있다.</p>
<h2>2 진단 결과</h2>
<table class="data">
<caption>표 1 — 결함 유형별 진단·조치 현황</caption>
<tr><th>결함 유형</th><th style="width:14mm; text-align:right">건수</th><th>대표 사례</th><th style="width:22mm">조치</th></tr>
<tr><td>수치 오계산</td><td class="num">4</td><td>A3 8col 존 폭 249→246mm, screen 존 2건, ΔG 1건</td><td>정정 완료</td></tr>
<tr><td>토큰 참조 무결성</td><td class="num">5</td><td>미정의 토큰 sys.accent 등 (F1 위반)</td><td>정본 경로 정정</td></tr>
<tr><td>규칙·값 자기모순</td><td class="num">2</td><td>RT-2 문언 ↔ 값 불일치</td><td>문언 정정·규칙 신설</td></tr>
<tr><td>구조 결함</td><td class="num">7</td><td>태블릿 배제, 상태색 다크 미등록 등</td><td>확장·등록 완료</td></tr>
<tr><td>미구축(치명)</td><td class="num">1</td><td>L3 실행 명세 0건 (active 모듈 없음)</td><td>6종 신설</td></tr>
</table>
<h2>3 조치 내역</h2>
<p>코어 9파일을 보정하고 변경 이력에 근거를 기재하였다. 매체별 실행 명세 6종
(M1 A3 편람, M2 PPT 덱, M3 웹앱, M4 모바일·태블릿, M5 A3 설명자료, M6 A4 문서)을
신설하여 전량 active로 등록하였다. 본 보고서는 M6 single 변형(1단 37.4em)의 산출물이다.</p>
<div class="directive"><span class="sym">✓</span><span>산출물 제작 시 해당 매체의 실행 명세를 우선 적용한다.
명세와 코어 문서가 충돌하는 경우 design.tokens.json을 정본으로 한다.</span></div>
<h2>4 후속 조치</h2>
<p>인쇄 발주 전 인쇄소 출력 프로파일 확인 후 브랜드 색 CMYK 등가값을 토큰에 등록한다(CV-1~CV-3).
폴백 서체 정규화 계수는 실측 후 등재한다(NF-2). 상세 근거는 진단 보고서를 참조한다.
[출처: DOC/design system_v0.1.1/진단보고서_v0.1.0_문제점_및_개정내역_2026-07-29_v1.0.0.md]</p>
<footer class="footer">
<span>디자인 시스템 v0.1.1 개정 결과 보고 · HMCM-DS-2026-001</span>
<span>1 / 1 · v1.0.0 · 2026-07-29</span>
</footer>
</div>
</body>
</html>
+37
View File
@@ -0,0 +1,37 @@
# sample — 실행 명세 준수 샘플 구현물
| 버전 | 수정일 | 수정자 | 주요 변경 내용 | 비고 |
| :--- | :--- | :--- | :--- | :--- |
| v0.1.0 | 2026-07-29 | HMCM | 신규 작성 — 인쇄·프레젠테이션 매체 샘플 3종 (A3·A4·PPT) | 전건 육안 QA 완료 |
본 폴더는 **비 코드베이스 매체(A3·A4·PPT)의 실행 명세를 실제 산출물로 구현한 참조 샘플**이다.
웹앱(M3)·모바일(M4)은 코드베이스 자체가 구현물이므로 본 폴더 대상이 아니다 (`webapp/`·`mobile/` 명세의 CSS 변수·HTML 골격 참조).
## 구성
| 파일 | 근거 명세 | 내용 | 사용법 |
| :--- | :--- | :--- | :--- |
| `A3/sample_a3-explainer.html` | M5 `A3/module.a3-explainer.md` | A3 가로 1면 설명자료 — 패턴 **P3 프로세스**(3:3:3:3), scope→스테이지 4매→principle 결론 존 | 브라우저에서 열기 → 인쇄 → 용지 A3 가로·여백 없음 → PDF/출력 |
| `A4/sample_a4-document.html` | M6 `A4/module.a4-document.md` | A4 보고서 — **single 변형**(1단 37.4em, 여백 39mm), 메타 표·데이터 표·지침(✓) 포함 | 브라우저 인쇄 → A4·여백 없음 |
| `ppt/sample_ppt-deck.pptx` | M2 `ppt/module.ppt-deck.md` | 7장 덱 — 표지(다크)·목차(4:8)·디바이더·8:4·프로세스(3:3:3:3)·GRADE 사다리·결론(principle) | PowerPoint에서 열기 |
## 명세 준수 확인 사항 (전 샘플 공통)
- **토큰 전용**: HEX·치수 리터럴은 각 파일의 토큰 정의부(`:root` / 스크립트 상수)에만 존재하고, 본문 규칙은 전부 토큰을 참조한다
- **등록 페어만 사용**: brown/sand 9.02 · green/sand 8.00 · white/green 8.87 · sand/obsidian 17.02 등 — 미등록 조합 0건, 다크 위 green 텍스트 0건
- **악센트 경제**: 화면·지면당 orange 강조 ≤ 2 (아이브로 틱·귀결 커넥터·강조어 합산)
- **그림자·알파·그라디언트·순백 전면 배경 0건** · 상태 표기는 기호(✓) 병기
- **그리드 정합**: A3 372mm=12×25.5+11×6 · A4 single 132mm=12×8.25+11×3 · PPT 1824px=12×130+11×24 (EMU=px×6350 정수)
- **결론 존 1개** (PD-1) · 푸터 존 불가침 · 방향어 참조 0건
## 주의
1. **서체**: 브랜드 서체 **Pretendard**를 지정했다. 미설치 환경에서는 시스템 sans로 폴백되어 자간·행 나눔이 미세하게 달라질 수 있다 — 정식 산출 전 Pretendard 설치를 권장한다. PPTX는 도구 제약으로 폰트가 임베드되지 않았으므로(FT-1), 대외 배포 시 PowerPoint에서 "파일>옵션>저장>파일의 글꼴 포함"으로 임베드하거나 PDF로 배포한다.
2. **인쇄 발주**: 본 샘플은 sRGB 기준이다. 오프셋 인쇄 발주 시 인쇄소 프로파일 확인→CMYK 변환→교정쇄 승인 절차(print §11.3)를 따른다.
3. **PPT 다크 슬라이드**: 표지·디바이더의 다크는 TH-P1(표지·장 구분 허용)에 따른 구조적 사용이다. 강조(인라인 테마) 슬라이드 10% 상한(HL-1)은 본문 슬라이드에 적용한다.
4. 본 샘플은 **참조 구현물**이며 시스템 명세의 일부가 아니다. 명세가 개정되어도 샘플이 자동 갱신되지 않는다 (DC-1).
## 검증 이력 (2026-07-29, HMCM)
- PPTX: `validate.py` **All validations PASSED** · LibreOffice 렌더 7장 전수 육안 확인 (오버플로·겹침 0건)
- A3·A4 HTML: WeasyPrint 렌더 후 육안 확인 — 존 좌표·베이스라인·푸터 불가침·표 정렬 정상