From f33e00bce4f6268bba83fd0a902fae302b73d5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=98=A4=EB=AC=B8=EC=84=B1?= Date: Tue, 27 Oct 2026 15:58:28 +0900 Subject: [PATCH] =?UTF-8?q?KIT:=20F13=20=EB=8F=84=EB=A9=B4=20=EC=BB=A4?= =?UTF-8?q?=EB=B0=8B=20=EA=B8=B0=EC=A4=80=EC=9D=84=20=EC=A0=95=EB=A6=AC?= =?UTF-8?q?=EB=B3=B8=203=EA=B0=9C=20=ED=97=88=EC=9A=A9=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20(SPEC=2034=EC=9E=A5=20=EB=B3=B4=EC=99=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 첫 공개 커밋 9068b6c 뒤 F13 의 「도면 파일 커밋 금지」 항목이 FAIL 이던 기준 누락(코치 결함)을 리허설에서 발견해 보완. 커밋된 도면은 정리본 3개(drawing.dxf, drawing.svg, drawing_gen.svg)만 허용하도록 check.sh 와 SPEC 34장을 함께 고쳤다. check.sh 결과: PASS 151 / FAIL 0 / SKIP 3 (검사 범위 F01~F46) Co-Authored-By: Claude Haiku 5.5 --- SPEC.md | 2 +- check.sh | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/SPEC.md b/SPEC.md index fcdd978..9179f27 100644 --- a/SPEC.md +++ b/SPEC.md @@ -612,4 +612,4 @@ - 이 저장소는 1차 제출본(커밋 81개, 로컬 보존)을 **공개용으로 정리해 새 이력으로 시작**한 것이다. 옛 이력에는 도면 실제 좌표가 들어 있어 그대로 올리지 않았다. 옛 커밋 기록(메시지)은 `evidence/gitlog_v1.txt`. - 도면 정리(코치, 저장소 밖 도구): 우리가 쓰는 그림 객체와 거기 딸린 블록·레이어·선종류만 남기고, 과업명·지명·외부 참조 이름·저장자·XDATA·OBJECTS 를 지웠다. **모든 좌표를 같은 양만큼 평행이동**해 실제 위치를 알 수 없게 했다(옮긴 양은 기록하지 않는다). - 같은 양을 `tools/views.json`(그림 상자·배치)과 `check.sh`(채점기만 아는 기준점·변조 시험 좌표)에도 적용했다. 추출 결과(3D 데이터 95부재)·도면 연결 11개·생성 SVG 는 옮기기 전과 같다(SVG 바이트 동일, 부재는 1e-9 mm 잡음 하나). -- `private/` 에 올리는 것: `drawing.dxf`(정리본), `drawing.svg`(정답지 화면용 그림), `drawing_gen.svg`(첫 화면 그림). 원본 DWG 는 올리지 않으므로 F42 의 DWG 재변환 검사 3건은 SKIP(32장). `.gitignore` 는 `private/` 전체 대신 `private/*.dwg`·`private/full.dxf` 등을 뺀다 — F13 의 「.gitignore 에 private/」 기준을 이것으로 바꾼다. +- `private/` 에 올리는 것: `drawing.dxf`(정리본), `drawing.svg`(정답지 화면용 그림), `drawing_gen.svg`(첫 화면 그림). 원본 DWG 는 올리지 않으므로 F42 의 DWG 재변환 검사 3건은 SKIP(32장). `.gitignore` 는 `private/` 전체 대신 `private/*.dwg`·`private/full.dxf` 등을 뺀다 — F13 의 「.gitignore 에 private/」 기준을 이것으로 바꾼다. F13 의 「도면 파일 커밋 금지」 항목도 「커밋된 도면은 정리본 3개뿐」으로 바꾼다(처음 바꿀 때 빠뜨림 — 첫 커밋 뒤 이 항목이 FAIL 이었다). diff --git a/check.sh b/check.sh index 8cac58e..70e8310 100644 --- a/check.sh +++ b/check.sh @@ -210,8 +210,9 @@ try: tracked = subprocess.run(["git", "ls-files"], capture_output=True, text=True).stdout.split("\n") except OSError: tracked = ["?"] -leak = [t for t in tracked if t.startswith("private/") or t.lower().endswith((".svg", ".pdf", ".dwg"))] -report("F13", tracked != ["?"] and not leak, "도면 파일이 커밋되지 않음 (private/, .svg, .pdf, .dwg)" + (f" — 있음: {leak}" if leak else "")) +PUB13 = {"private/drawing.dxf", "private/drawing.svg", "private/drawing_gen.svg"} +leak = [t for t in tracked if t and t not in PUB13 and (t.startswith("private/") or t.lower().endswith((".svg", ".pdf", ".dwg")))] +report("F13", tracked != ["?"] and not leak, "커밋된 도면은 공개용 정리본 3개뿐 (SPEC 34장: private/drawing.dxf·drawing.svg·drawing_gen.svg, DWG·그 밖의 private 파일 없음)" + (f" — 있음: {leak}" if leak else "")) report("F14", all(has_id(i) for i in ("drawStage", "drawing", "hotspots")) and "private/drawing.svg" in ((html or "") + (viewer or "") + (model_txt or "")), "#drawStage, img#drawing, svg#hotspots, private/drawing.svg 참조") d = MODEL.get("drawing", {}) if isinstance(MODEL, dict) else {}