Commit Graph
3629 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5.5 184d79cbdf feat(ui_template): B08 · B09 공용 많은 자료 표 양식(70-1)
- createDataTable — 묶음 머리 여러 줄 · 머리 · 앞 열 · 합계 줄 고정 스크롤
- 숫자 오른쪽 맞춤 · 고정폭 숫자 · 천 단위 쉼표 · 열마다 소수 자리 · 빈 값 「—」
- 줄 번갈아 색 · 올린 줄 강조 · 테마 토큰만 · 보이는 줄 근처만 그림(1,000줄 64~118ms)
- 견본(머리 3줄 · 30열 · 66줄 · 합계) 시험

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
2026-10-06 23:06:23 +09:00
eomsangdon 175cbd85ab Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-06 18:35:13 +09:00
eomsangdonandClaude Opus 5.5 aefcb23dd2 feat(b08): 3탭 토적표 — 옛 평균단면적법 엔진 복사 · 서버 읽기 전용 길 · 측점별 표 + 합계 줄(PLAN 61-3)
- 엔진 = old_code B08_Quantity_Engine_EarthworkTable.py 복사(B08_Quantity_Engine_Earthwork.py) · 계산식 그대로
- 고친 곳 = 입력부(암 종류 없으면 암 지반 유형) · 줄 cut_rock_kind · 합계 리핑암 · 발파암 칸
- 길 = GET /quantity/earthwork — B06 횡단 설계 저장 단면적(확정 노선 · 없으면 최신) · 환산계수 = 유토곡선과 같은 mixed_conversion_factors · 아무것도 안 씀
- 화면 = 측점 · 거리 · 절토(토사 · 리핑암 · 발파암) · 측구터파기(토사 · 암) 각 단면적 · 입적 · 보정량 · 보정량계 · 성토 · 유용토 · 차인토량 · 누가토량 · 합계 줄
- 옛 시험 test_b08_earthwork_table.py 는 가져오는 경로만 새 엔진으로 · 새 시험 test_61_3_b08_earthwork_kinds.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-06 18:26:17 +09:00
eomsangdonandClaude Opus 5.5 ebdb0610a6 feat(B05): 노선 추천 후보마다 균형 종단 — 횡단 ㎥ 절성토 균형 점수 · 편집 창 미리 보기
- 균형 계획선 함수(서버 단독) — 종단기울기 상한 · 종단곡선(대수차) 지키며 B06 횡단 단면적으로 절 · 성토 균형
- 토공 최소 · 공사비 어림 점수를 균형 종단 토공(절 + 성 + 반입 + 사토)으로
- 추천 창에 균형 종단 한 줄 · 종단 그림 · 셈한 후보 표 · 지난 초 표시
- 균형 종단은 캐시에 안 적음 · 확정 체인 종단 규칙은 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-06 18:26:00 +09:00
eomsangdon 62b522ffa9 Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1
# Conflicts:
#	B08_Quantity/B08_Quantity_UI_Page.ts
2026-10-06 18:18:47 +09:00
eomsangdonandClaude Opus 5.5 0cc7ff67eb feat(B08): 2탭 구조물도 — 집계표 조합마다 보조 탭 · M02 도면(도각) + 면적산출 카드 보기 전용
- 새 B08_Quantity_UI_Drawing.ts · .css — 조합 목록 · 차례 = 집계표와 같음(B08_Quantity_Summary_Data.summaryColumns)
- 한 장 = M02 항목 카드(createItemCards) 그대로 · 조합 원본 층 readTemplate 읽기만 · editable false · [저장] · [수정] 없음
- 안내 글 — 조합 없음 · M02 에 없는 조합 · 도번 없는 조합
- B08_Quantity_UI_Page.ts 2탭에 붙이는 두 줄 · locale_b4 글 넷
- 시험 test_61_2_b08_structure_sheets(탭 붙음 · 읽기만 · 같은 열 · 글 키)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
2026-10-06 18:17:41 +09:00
eomsangdon 9778b754b5 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-06 18:16:13 +09:00
eomsangdonandClaude Opus 5.5 5f056ec661 feat(b08): 4탭 홍수량 계산서 — 배수지점 측점 보조 탭 · 견본 모양 한 장 · 서버 계산(PLAN 62-2 · 62-3)
- 측점 보조 탭 = 저장된 pipe_points 측점만 읽음 · 입력은 이 탭 자기 기본값(B05/B06 · 배수유역 값과 안 이음)
- 1-1 합리식(Qd = Q × 할증) · 1-2 Kirpich 도달시간(최소 5분) · 1-3 rt = (R24/24)·(24/T)^0.557
- 2 단면검토 — 관 단면 그림 · 단면적 · 윤변 · 경심 · 경사 · n · Manning 유속 · Q = A·V · OK/NG 점선 상자 · 유출율
- 선택지(할증 2.0/1.5/1.2 · 만관/240°/유효 70 % · 관 종류별 n) · 기본값 한 파일(B08_Quantity_Hydro_Defaults.py)
- 계산 = 서버 단독(B08_Quantity_Engine_Hydro · /quantity/hydro · /quantity/hydro/calc · 최신 응답만) · 입력은 캐시만 · 어떤 파일에도 안 씀
- 흰 종이 계산서(입력 빨강 · 계산 파랑 · 주요 입력 노랑) · 쪽 표시 · 시험 test_62_2_b08_hydro_engine.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-06 18:15:29 +09:00
eomsangdon 9653662a10 Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-10-06 18:07:39 +09:00
eomsangdonandClaude Opus 5.5 d4cbe6bdf3 feat(B07): 용지도 필지마다 지번·지목·면적·소유자 표시
- 연속지적도 속성(jibun·jimok·parea·owner_nm) 네 줄 · 빈 값은 그 줄만 비움
- 도곽에 잘려 조각이 여럿인 필지도 정보는 한 번만(가장 큰 조각 가운데) · 작은 필지 솎기 없앰
- 검증_sub4 용지도: 구역 안 필지 1 = 라벨 묶음 1(산77-15임 / 임야 / 10,640,598㎡ / 국유지)
- 같은 지적도 전체(176필지 · 조각 198)를 한 구역으로: 필지 176 = 라벨 묶음 176

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 18:06:29 +09:00
eomsangdon 2a3ef43710 Merge remote-tracking branch 'origin/sub_laptop_6' into main_laptop_1 2026-10-06 18:00:15 +09:00
eomsangdonandClaude Opus 5.5 97940baa8e fix(B07): 배수유역도 풍선 숫자 흰·검은 바탕 모두 읽히게
- 원판 #ffffff(CAD 자동색 — 흰 바탕에서 검정으로 뒤집혀 #111111 숫자 묻힘) → #909090 회색(테마가 안 바꾸는 밝기)
- 화면 픽셀 실측: 밝은 테마 대비 약 1.1:1 → 5.9:1 · 어두운 테마 5.9:1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 17:59:21 +09:00
eomsangdonandClaude Opus 5.5 719455ae2b fix(B07): 배수유역도 메모리 부족 — 배경선 솎기 · 배열 캐시 · 해칭 선분 재사용
- 등고선·세류선: 종이 0.1 mm(펜 굵기) 아래 굴곡 점 제거 — 294,339점 → 약 95,600점
- 배경선 캐시: 파이썬 튜플 → numpy 배열 + 선마다 범위 · 도곽 밖 선은 자르기 전에 거름 · 투영 한 줄씩 묶어 처리
- HatchEntity: 경계·무늬가 그대로면 줌·이동 때 패턴 선분 다시 계산 안 함
- 검증_sub4 유역도: 응답 75 MB → 24 MB · 서버 최고 1,304 MB → 595 MB · 끝 489 MB → 288 MB
- 브라우저: 전 = 힙 289 MB 넘다 페이지 죽음 · 후 = 최고 203 MB 열림 · 줌 20번 275~281 MB 고정

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 17:55:32 +09:00
eomsangdon 25d69b0b16 Merge remote-tracking branch 'origin/sub_laptop_5' into main_laptop_1 2026-10-06 17:53:37 +09:00
eomsangdon f12d12999d Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1 2026-10-06 17:52:52 +09:00
eomsangdonandClaude Opus 5.5 ab39bcf986 feat(M02): 구조물 도면 상세 · 카드 미리보기에 도각 얹음 — 외곽 좌하단 (0,0) · 보여주기 층
- 서버 GET /api/m02/structure-frame — B07 시스템 양식 00_template_A1 을 frame_entities(fit=False)로 1:1 배치 · 외곽 좌하단 (0,0) 으로 옮김 · 잠금 층 m02-structure-frame「도각(보기)」(마스터 양식 json 그대로)
- 화면 mountDrawingTemplate frame 갈래 — 실을 때 도각 엔티티 · 층 덧붙임 · getDoc 에서 그 층 통째로 뺌(구조물 엔티티 · 저장 본문에 안 섞임)
- 층 없는 빈 구조물 문서는 기본 층을 채움 — 잠금 도각 층만 남아 새 그림이 도각 층에 떨어지는 것 막음
- 불러온 DXF 층(b08-frame)과 층 id 갈라 둠
- 시험 test_m02_router_drawing 도각 원점 · 층 · 원본 양식 불변

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
2026-10-06 17:52:13 +09:00
eomsangdonandClaude Opus 5.5 138e80c79f feat(B07): 계획평면도 종류 · 정보 조각 서버 (PLAN 60-1 · 60-2)
- 정보 조각(등고선 · 계류 · 중심선 · 성토사면 외곽선 · 비탈 눈금 · IP · R · 측점 NO · 시종점 · 대피소/사토장 · 라이다 배경)마다 장별 파일(plan_pieces/{장}/{조각}.json)
- 외곽선 = 노견 끝 + 설계선이 지반에 닿는 자리(B06 횡단 설계 결과) · 측점 자리는 횡단 파일 중심 · 좌축
- 종류 = 조각 고르기 목록(plan_kinds/{id}.json) · 기본 넷(지형 · 노선배치도 · 대피소 · 라이다) · 더하기 · 지우기 API
- 대피소 · 사토장 = 구조물 정본 refuge · spoil_bank + 사용자 지정 자리(plan_marks.json)
- 도면 목록 · 단건 조회를 종류 × 장으로 · 옛 plan_* id 그대로 이어짐

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-06 17:51:40 +09:00
eomsangdonandClaude Opus 5.5 1405d02296 feat(b08): 수량산출 위 탭 틀 + 1탭 구조물 집계표(줄 측점 · 열 저장 조합 · 칸 비움)
- 탭 넷(구조물 집계표 · 구조물도 · 토적표 · 수리집수면적표) — 1탭만 내용 · 나머지 빈 탭
- 줄 = 구조물 · 배관이 놓인 측점(같은 측점 한 줄 · 정렬) · 열 = 저장된 summary_item + group_items(같은 층 · 주인 · 키 한 열)
- 머리 두 줄 = 조합 구분(M02 경로 첫 칸) · 조합 이름(나머지 경로) · M02 에 없으면 빨강 「M02 에 없음」
- 읽기만 — structures.json · pipe_points.json GET · 옛 B08 코드 안 가져옴
- 항목 고르기 목록 읽기(loadRows) 내보냄 · 시험 test_61_1_b08_summary_table.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-06 17:47:17 +09:00
eomsangdonandClaude Opus 5.5 0fb1af7e1d fix(B07): 종단도 장마다 그림 좌하단을 작도영역 좌하단에 맞춤 · 넘치면 장 더 나눔
- frame_entities bottom_left 선택 — 종단도만 좌하단 맞춤(나머지 중심 맞춤 그대로)
- longitudinal_chunks: 30측점 묶음이 A1 작도영역을 넘으면 측점을 줄여 장을 더 나눔 · 축척 H 1/1,000 · V 1/200 고정
- 원·호 엔티티 헬퍼를 Engine_Cad.py 로 옮김(Long.py 700줄 아래)
- 검증_sub4 종단 3장 그림 좌하단(도각 기준) 180,132 · 180,193 · 363,220 → 모두 47.05,52.04

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 17:44:51 +09:00
eomsangdonandClaude Opus 5.5 1eb43a790d fix(B07): 횡단면도 단면 블록 테두리 간격 1 mm — 한 장에 더 담음
- 테두리 여유 4 mm · 위아래 덧 여백 5 mm 제거 → 테두리 ↔ 그림 1 mm(CROSS_BORDER_PAD_MM)
- 장 배치(Sheet.py)와 단독 도면(Engine_Cad.py) 같은 상수
- 검증_sub4 첫 장 칸 168×172 → 162×156 mm · 담을 수 8 → 12

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 17:38:14 +09:00
eomsangdon 6eb124b08e Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-10-06 16:59:35 +09:00
eomsangdonandClaude Opus 5.5 844fd3bea9 chore(M02): 사용자 편집(데스크탑) — 마스터 템플릿 · tsconfig Old 제외
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:59:34 +09:00
eomsangdonandClaude Opus 5.5 8d5b0de51a test(B05): 52-17 시험 기대값 — 배관 도수로/돌붙임 하나만(54-48)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FJqWQpoB1RE7hiaQ2wH8qV
2026-10-06 16:46:49 +09:00
eomsangdon 4cc3c805e7 Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-06 16:45:02 +09:00
eomsangdonandClaude Opus 5.5 bfad293c66 fix(section): 높이 제약 풀기 — 흙막이 · 집수정 · 옹벽 · 관 보호공 높이 입력 그대로(54-51)
- 관 흙막이 관경 기준 최소(관경 + 1.0) · 벽 최저(근입 + 0.1) 하한 걷음 — 관경 기준값은 빈 칸 기본값만
- 하한은 그림이 서는 0.1 하나(WALL_MIN_PURE_HEIGHT_M) · 0 이하는 토스트 없이 0.1 에서 멈춤
- 좌측 칸 최소 높이 토스트 · 조정창 「최소 높이」 토스트 뺌
- 높이 · 지형이 벽 자리를 옮긴 것은 자리 한계 토스트 안 띄움 — 자리 버튼이 막혔을 때만
- 집수정 내공 폭 · 높이 1~2m 한도 걷음 · 옹벽 0 입력도 0.1 에서 멈춤
- 근입보다 낮은 관 벽도 그림(노출 높이 음수 허용) · 서버 번들 다시 빌드
- 시험 test_b06_height_unlock

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-06 16:22:53 +09:00
eomsangdon d53dfcd139 Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-10-06 16:08:12 +09:00
eomsangdonandClaude Opus 5.5 c75925ae77 fix(structure): 종단 알약 글 = 종류 칸 이름 · 우클릭 메뉴 클릭이 그래프 선택 해제로 새지 않음(54-49)
- 알약 글 = 좌측 「종류」 칸 · 목록 · 정보 창 1행과 같은 이름(약호 · 기타 머리 자르기 뺌) · 같은 이름 여럿이면 번호
- 알약 겹침 판정 = 이름 글 폭 어림(고정 52px 뺌)
- 공용 우클릭 메뉴 안 click 은 메뉴에서 멈춤 — 배관 고른 채 군 머리를 누르면 그래프 빈 곳 클릭으로 새어 폼 리셋 · 메뉴 사라짐
- 시험: test_54_9_etc_pill 새 규칙 · 헬퍼 json 불러오기

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 16:06:24 +09:00
eomsangdon 47db8f7df1 Merge remote-tracking branches 'origin/CODEX' and 'origin/main_laptop_1' into sub_laptop_5 2026-10-06 16:03:14 +09:00
eomsangdon 7e6aebeb76 fix: distinguish Gemini timeout 2026-10-06 15:55:01 +09:00
eomsangdon 5b0c2434bd fix: report Gemini model overload 2026-10-06 15:43:34 +09:00
eomsangdon c44693bdc2 Merge remote-tracking branches 'origin/CODEX' and 'origin/main_laptop_1' into sub_laptop_7 2026-10-06 15:42:25 +09:00
eomsangdon bddec26531 Merge remote-tracking branch 'origin/dev' into sub_laptop_7 2026-10-06 15:42:23 +09:00
eomsangdon 5234077ff1 Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-06 15:42:05 +09:00
eomsangdonandClaude Opus 5.5 8823499e69 fix(section): 원지반 잠금 풀기 — 흙막이 자리 · 다단 · 높이 입력 그대로(54-45)
- 관 유출 흙막이 · 독립 기슭막이 매몰 자리 되돌림 삭제(placePipeWall requireCrossing)
- 유입 흙막이 유출 수용 가드 삭제(outletReceivable · placeInletWall)
- 사면안정 흙막이 · 옹벽 매몰 자리 되돌림 삭제
- 추가 흙막이 매몰 자리 되돌림 · 다단 끊기(시작점 매몰 · 성토 0.7m 미만 · 앉을 지형 없음) 삭제
- 남김: 벽 윗면 노면 위 금지 · 관 m 단위 길이
- 시험 test_b06_ground_unlock 추가(화면 계산 · 서버 번들 같은 판)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-06 15:40:55 +09:00
eomsangdon 0bb50f2b00 fix: answer natural knowledge questions 2026-10-06 15:38:33 +09:00
eomsangdon 8ddbc04e6f Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-10-06 15:35:43 +09:00
eomsangdonandClaude Opus 5.5 131271e9ae fix(structure): 종단 알약 정보 창 2행 — 1행 이름 + 기준 측점 · 2행 컨테이너 첫 값만 「 · 」 이음 · 제목 · 빈 값 뺌(54-46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 15:35:05 +09:00
eomsangdon 8ea597a40b fix(chat): answer greetings without search 2026-10-06 15:31:42 +09:00
eomsangdon af407aee59 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-06 15:29:34 +09:00
eomsangdon bb76089068 Merge remote-tracking branch 'origin/CODEX' into sub_laptop_8 2026-10-06 15:29:28 +09:00
eomsangdon bbdaaafb37 Merge remote-tracking branch 'origin/dev' into sub_laptop_8 2026-10-06 15:29:26 +09:00
eomsangdonandClaude Opus 5.5 222a3cb1ff fix(dashboard): 54-44c 화면 취향 저장 때 지워진 프로젝트 id 키 버림 — 브라우저 옛 사본의 재오염 막음 · 시험 1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-06 15:27:32 +09:00
eomsangdon 7e8396db1c fix(chat): exclude technical info 2026-10-06 15:17:49 +09:00
eomsangdon 9b0a139ae5 Merge remote-tracking branch 'origin/CODEX' into main_laptop_1 2026-10-06 15:15:22 +09:00
eomsangdon e92111a641 fix(chat): search full knowledge database 2026-10-06 15:14:17 +09:00
eomsangdon c7936c9a06 Merge remote-tracking branch 'origin/CODEX' into main_laptop_1 2026-10-06 15:09:50 +09:00
eomsangdon 213afaafa8 feat(dashboard): add sourced knowledge chat 2026-10-06 15:07:19 +09:00
eomsangdon 6827f9898c Merge remote-tracking branch 'origin/dev' into sub_laptop_7 2026-10-06 14:56:31 +09:00
eomsangdonandClaude Opus 5.5 6eab9f1a94 merge(section): main_laptop_1 합류 · 배관 벽 충돌 풂(54-42m)
- 빈 값 · 기본값 규칙(구조 · 형태 안 고름 = 안 그림)은 메인 쪽
- 벽 한 벌 그리기 · 형태별 높이 한도 삭제 · 노면 위 금지는 sub7 쪽
- 유입 집수정 판정을 Basin 의 decideInletBasin 으로 옮김(700줄 제한)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-06 14:54:19 +09:00
eomsangdonandClaude Opus 5.5 d02f7033e1 feat(structure): 54-43 빈 칸 = 그냥 빈 칸 · 필수 칸 빈 보기 없음 · 빈 옛 값 = 기본값
- 공용 명세 폼: 필수 상자 고르기 칸 빈 보기 없음 · 빈 옛 값 = 정의 기본값(없으면 첫 보기)을 실제 값으로(저장도 그 값) · 선택 상자 빈 보기 = 빈 글 · 숫자 칸 자리표시 글 걷음
- 시설 폼: 배관 · BOX · 세월교 · 물넘이 포장에 정의 기본값 전달 · 독립 기슭막이 설치 측 · 형태 빈 보기 없음 · 높이 · 추가 흙막이(단) · 월류 높이 자리표시 글 걷음
- 일반 구조물 칸: 필수 · 기본값 있는 고르기 칸 빈 보기 없음 · 그 밖 빈 보기 = 빈 글 · 「필수 입력」 자리표시 걷음 · 규칙 선택지 좁힘이 빈 보기 없는 칸도 다룸
- 기준 측점 이름표 「(비우면 시작)」 걷음
- 시험: 기슭막이 높이 칸 = 자리표시 없음 · 화면 점검 ui_checks/54-43

화면 확인(sub5_검증 · B05 구조물 20개): 「선택 안 함」 · 「안 정함」 · 「비우면」 · 「기본」 0 · 필수 칸 빈 보기 0 · 필수 칸 빈 값 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-06 14:51:42 +09:00