측구 토글이 화면에서 도는 자리 이음 + 되받기분 #15

Open
eomsangdon wants to merge 651 commits from main_laptop_1 into main
651 Commits
Author SHA1 Message Date
eomsangdon a3950a189b Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-15 03:31:10 +09:00
eomsangdonandClaude Opus 5 387af3d888 chore(plan): 임시 창별 계획서 — 랩탑 메인(PLAN.md 가 시놀로지로 세 번 덮여 1장 줄을 잃음 · 사용자 확인 전)
· PLAN.md 는 읽기만 · 1장 랩탑 메인 몫(남은 것 · 검증완료 줄 · 커밋 해시)을 이 파일로 옮김
· git 에 두는 까닭 — PC 사이를 건너가고 이력이 남아 덮여도 되살릴 수 있음(브레인 지시)
· ⚠ 사용자 지침 「PLAN.md 는 git 밖 · 한 파일로만」 과 어긋나는 임시 조치 — 사용자가 확인한 뒤 브레인이 합쳐 PLAN.md 한 벌로 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 03:30:58 +09:00
eomsangdonandClaude Opus 5 42e8b4f0a9 feat(b09): ㉡-3 시간 줄 판정표 — 14-1 입목뿌리 밑막이 · 14-2 근주이식이 섬 · 막힌 셋(물푸기·모노레일·케이블크레인)은 옛 값이 왜 틀렸는지 사유
· 판정표 모양 hour_rows — 장비 h 그대로 · 인력 h ÷ 8(총칙 「일일 작업시간 8시간」) · ÷ 10본
· 원문 「0.8㎥ 굴착기」 가 형식을 안 적어 무한궤도 0201-0080 · 타이어 0211-0080 두 갈래 · 제안 없음(브레인 판정 ①)
· 14-1 우드그랩 ↔ 카탈로그 부착용 집게 7206-0070(규격 0.6∼0.8) — 이름이 다름을 사유에(②) · 조합이라 본체 #조합
· 옛 14-2 11,356원은 0.66h 를 인으로 셈(8배) + 굴착기 빠짐 → 무한궤도 4,431 · 타이어 4,631원/본 · 14-1 8,603 → 3,192 · 3,316
· 막힌 셋 사유(③): 12-26 가동시간 원문 없음 · 옛 값 보통인부 1인뿐 / 10-7-4 운전 단가표 보통인부 2 는 적재·짐부리기 2인과 같은 사람 · 옛 값 두 번 센 4인 / 10-8-3 ℓ/kWh 원문 없음 · 옛 값 특별인부 1인뿐
· 마스터 재생성 — 14-1 · 14-2 갈래 키만

잴 시험 넷 빨강→초록 · 끄기 둘 빨강 · 전체 시험 1721 + 392 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 03:29:21 +09:00
eomsangdon d64becb12c Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-15 03:19:47 +09:00
eomsangdonandClaude Opus 5 e0c5e36433 refactor(b09): 700줄 넘은 모듈 둘 쪼갬 — 순수 분리, 그 김에 아무것도 안 고침
· BillOfQuantities.py 733 → 597 · 새 _BillOfQuantities_Input.py 162
  (인계 자료형 HandoffWorkItem·HandoffMaterial · parse_handoff · _decimal · BillError ·
   공급구분·미확정 상수)
· Engine_Cost.py 725 → 609 · 새 _Engine_Cost_Input.py 136 (CostInput 한 벌 · DEFAULT_ITEMS)
  반올림 두 함수(floor_won·ceil_thousand)는 엔진 것이라 도로 옮겨 둠
· 쓰던 이름은 그대로 — 본 모듈이 다시 내보내(noqa: E402,F401)
  from …BillOfQuantities import HandoffWorkItem · from …Engine_Cost import CostInput 가 종전대로 돎
· ruff — 새 파일 둘 다 깨끗 · 본 모듈 둘은 HEAD 와 같은 수(옮기며 안 늘음)

⚠ UnitPrice.py 1403 은 아직 남음 — 따로 배정 필요.

전체 시험 2102 통과 · 28 건너뜀 · 1 xfail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-15 03:19:40 +09:00
eomsangdon ea81b7644e Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-15 03:02:39 +09:00
eomsangdonandClaude Opus 5 e40f4c9fd3 feat(b05·b08): BOX암거 구체 터파기 — 평균 터파기고 칸 하나 · 토공 축으로만 · 기초잡석 사유(브레인 판정 ①③)
- 등록부 trench_depth_m(평균 터파기고 · 기본값 없음 · 비면 사유)
- 터파기 = (밑폭 버림 폭 + 여유 0.5×2 + 윗폭 1:0.5) ÷ 2 × 깊이 × 연장(울진 「암거구체 토공(2×2)」) · 되메우기 = 터파기 − 든 것(잡석·버림·구체) · 잔토처리 = 든 것 — destination earthwork(묶음에 안 듦 · 토공집계로만)
- 울진 원문은 잔토에 구체 전체 · 되메우기 한쪽만 — 옹벽 식(터파기 − 든 것)으로 맞추고 사유에 적음
- 기초잡석 사유 「근거 둘(예제·울진 집계표)에는 잡석 줄이 없음 — 사용자 확정 3차 ② 로 세움」

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-15 02:59:51 +09:00
eomsangdon b9df49d1dd Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-15 02:48:55 +09:00
eomsangdonandClaude Opus 5 9563d0604a feat(b09): ㉡ 유인헬기방제 8-6-1 소요재료·양수기 손료 — 2장 표 읽는 한 벌에 면적·일 꼴(AreaSet) 더함 · 지상방제는 막힌 채 사유
· 양수기 1대 1일 호표 = 휘발유 10ℓ(2-1-8) + 잡품 주재료비 95% + 손료 0.0084(2-2-6) × 구입가(칸)
· 갈래 「(160ha당)」·「(400ha당)」 = 1일 작업량으로 나눔([주]① 대형도 휘발유 10ℓ) · 깃발은 표의 「20ha당 1개」 를 읽어 ha당 · 헬기 임차료는 견적 칸
· [주]② 소방관서 급수 지원이면 휘발유 미반영 — 사유 한 줄
· 연료값 읽기를 「ℓ 은 첫 수 · % 는 % 가 붙은 칸」 으로 넓힘(체인톱 값 그대로)
· 자원 목록 이름을 「유인헬기방제 양수기·깃발」 로 — 「양수기」 로 두면 12-26 물푸기 양수기 줄 풀이가 바뀌는 것을 잰 뒤 피함
· 8-6-3 지상방제는 밑수 없음으로 막힌 채 사유 둘(1일 작업량이 원문에 없음 · 15ha 는 연료 설명 / 1톤 방제차량은 카탈로그에 1톤 트럭이 없음)

오른 제목: 8-6-1 소형 +227원/ha · 대형 +90 · 나머지 그대로 · 잴 시험 다섯 빨강→초록 · 끄기 넷 빨강 · 전체 시험 1712 + 388 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 02:47:59 +09:00
eomsangdonandClaude Opus 5 e15e9fc223 fix(b09): 2단 머리 표가 밑수로 안 나누던 것 — 갈래 이름의 「(Nha당)」 밑수로 나눔(8-6-1 유인헬기 160배·400배 부풂)
· _match_two_row_table 이 표 밑수로 아예 안 나눠 제목 단위 ha 에 160ha·400ha 몫이 그대로 앉아 있었음
· 표 밑수가 한 벌뿐이라 갈래마다 다른 밑수(소형 160ha · 대형 400ha)도 못 가르던 병 → 갈래 이름이 제 밑수를 적으면 그것으로, 없으면 표 밑수로
· 그 길을 지나는 표 다섯 중 밑수가 1 이 아닌 것 8-6-1 하나 · 전체에서 갈래마다 밑수가 다른 표도 8-6-1 하나

8-6-1 소형 1,591,855 → 9,949원/ha · 대형 2,780,567 → 6,951 · 나머지 제목 그대로 · 잴 시험 빨강→초록 · 끄기 빨강 · 전체 시험 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 02:47:59 +09:00
eomsangdon 957d727a24 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-15 02:39:43 +09:00
eomsangdonandClaude Opus 5 a314ac12fd feat(b05·b06·b08): BOX암거 수량식 — 등록부 두께·연장 칸 + m당 × 연장 전개식 · 세월교·날개벽은 근거 없음 사유로 닫음(12장 D · 브레인 판정 ①~⑥)
- 등록부 box_culvert: 연장(기본값 없음) · 측벽 0.3 · 상·저판 0.25 · 헌치 0.2 · 버림 0.1 — 제안값 = 산림과임업기술(임도) 5장 수량산출 예제 · KDS 44 90 00 300㎜ 병기(판 0.25 는 못 미침을 나란히)
- B06 BOX 세트(파이썬·TS 짝)가 두께 칸을 읽음 — 종전 「세월교 값 승계」(벽 0.2·판 0.3) 걷음 · 그림 따라감
- B08 전개식 `_UnitQuantity_Box`: 콘크리트 · 버림 · 유로폼(외벽·내벽·상판 밑·귀면) · 버림 옆 합판 · 동바리 · 비계(시종점 두 면은 개소당 한 번) · 철근은 울진 2×2 관측(D13 179·D16 157kg/m)만, 나머지 크기는 「크기별 식 없음」
- 울진 기번3 「암거수량집계표(2×2)」 m당과 맞음: 레미콘 2.84 · 버림 0.28 · 유로폼 11.131 · 합판 0.2 · 동바리 3.92 · 비계 벽체 5.2
- 치수 칸을 안 적은 BOX 는 제안값으로 서되 미확정(금액 밖) · 연장이 비면 안 섬
- 묶음 조각 12-01-01·12-38·12-04(6회)·12-03·12-20·12-19·12-25 · 동바리 대상 표시 · 세월교 「수량 근거 없음」

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-15 02:36:25 +09:00
eomsangdonandClaude Opus 5 852ad6c7d8 feat(b09): ㉡ 2장 소요재료·기계손료 표를 읽는 한 벌 — 체인톱부터(4-2-2 단목베기 · 6-5 어린나무가꾸기)
· 장비 한 벌(Equipment)에 「어느 표 줄을 읽을지」 만 적고 값은 2장 표에서 읽음 — 나머지 소형 장비도 같은 길로 더함
· 체인톱 1대 1일 호표 = 휘발유 5.6ℓ(2-1-1) + 잡품 주연료비 40% + 손료 0.0084(2-2-1) × 구입가(「자재 단가」 칸 · 없으면 사유)
· 쓰는 공종에 표가 이름으로 밝힌 인원 줄 수량만큼(4-2-2 「벌목부」 · 6-5 「특별인부 (체인톱 사용)」 · 넓히지 않음)
· 체인오일 일반/친환경은 「자재 단가」 에 넣은 쪽 × 인원 × 2.1ℓ · 둘 다면 사유(브레인 판정 ①②③)

오른 제목: 4-2-2 +31·+41·+53원(+3.6%) · 6-5 +43,821원(+4.29%) · 나머지 그대로 · 프로젝트 내역 지장목제거 잡관목제거 +548,652(본체 109,122,948 → 109,671,600) · 잴 시험 넷 빨강→초록 · 끄기 넷 빨강 · 전체 시험 1712 + 381 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 02:15:48 +09:00
eomsangdon 6152437113 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-15 01:49:15 +09:00
eomsangdonandClaude Opus 5 2f9d42ac35 fix(b09): ㉠ 자원 축 줄 읽기가 말없이 버리던 기계·연료 줄을 「못 맞춤 + 일부만」 으로 — 인력만으로 싸게 서던 공종 막기
· 버리던 세 자리: 규격이 이름 앞인 장비 칸(「0.8㎥ 굴착기 | h」 가 머리글로 걸러짐) · 값·이름 둘 다 못 읽은 줄(「디젤엔진(15HP) | 11.19kW」 · 「연료비 | ps × 0.253ℓ × 6h」) · 수량 빈 연료 줄(「연료비 | 경유 | L」)
· 연료·휘발유·경유·엔진·기관·양수기·발전기 이름이거나 시간·대·kW·HP 단위인 줄만 — 머리 줄·설명 줄은 그대로
· 사유 「기계·연료 줄이 안 붙음」 · 파쇄 모듈은 제가 쓰는 파쇄기 줄의 사유를 걷음
· ⚠ 처음 승인받은 「_names_a_machine 을 모든 공종으로」 는 재어 보니 0 을 막아 정정 보고 뒤 이 자리로

새로 사유가 붙은 줄 8 · 사라진 줄 0 · 새로 막힌 공종 5(12-26 물푸기 · 14-1 · 14-2 근주이식 · 10-8-3 케이블크레인 운전 · 10-7-4 모노레일) · 제목 금액 변화 0 · 프로젝트 내역 그대로 · 끄기 둘 빨강 · 전체 시험 1712 + 374 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 01:48:34 +09:00
eomsangdon 80b2669638 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-15 01:37:44 +09:00
eomsangdonandClaude Opus 5 7dd5dda98b fix(b08·b09): 내역 표시 흠 묶음 — 운반 줄 장비 키 · 덤프 거리 14자리 · 규격 갈래 두 번(㉰㉵)
- 운반 줄 이름: 「dozer 운반」 → 「불도저 운반」(매핑 master_name) · 「dump_truck 운반」 → 「덤프 운반」 · 「free_haul 운반」 → 「무대(종방향유용토)」(토공집계 이름)
- 덤프 규격·호표 규격 L: 「L=137.13474461798225m」 → 「L=137.13m」 — 보이기만 둘째 자리 · 호표 열쇠·운반 식은 받은 거리 그대로
- 규격 칸 갈래: 이미 적힌 갈래는 한 번만(`spec_with_variant` · 숫자 경계) — 「Ø800 800」 → 「Ø800」
- 936be972 내역: 흠 줄 6 → 0 · 금액 불변 161,514,889

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-15 01:34:52 +09:00
eomsangdon f672c5bee6 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-15 01:10:13 +09:00
eomsangdonandClaude Opus 5 0fc64fa704 feat(b09): ㉰ 이동식 임목 파쇄 8-11 일위대가 — 운전경비표에 값이 없던 파쇄기 기계 층을 8-11 [주]⑤·비고로 세움
· 건설 8-4 운전경비표 7205-0125 93.25㎾ 줄은 연료·잡품 칸이 「-」 → 레코드가 없어 기계 층도 일위대가도 조용히 없었음
· 8-11 [주]⑤ 연료 13.5ℓ(경유) · 비고 잡재료 주연료비 16% · [주]② 기계운전자 1인이 유일한 값이라 그대로(브레인 판정)
· B-FP-08-11 ㎥당 = 파쇄기 1/Q(3.5) + 보통인부 2인 ÷ 8시간 ÷ Q · 기계운전자는 기계 층 조종원으로 한 번만
· 파쇄기날(자원 목록 새 칸) — 「자재 단가」 에 넣으면 0.00125개/hr ÷ Q, 아니면 사유 · [주]③ 운반비·④ 우드그랩·⑥ 규격 외 견적은 사유 한 줄
· 영월 호표는 옛 판(8-2-35 Q=6)이라 대조 대상 아님

새 제목 B 51,029원/㎥ · 바뀐 제목 0 · 프로젝트 내역 그대로(파쇄 기본 끔) · 잴 시험 넷 빨강→초록 · 끄기 넷 빨강 · 전체 시험 1711 + 371 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 01:08:56 +09:00
eomsangdonandClaude Opus 5 490cfe1d08 feat(b08): 품셈 공종 없는 부대시설 셋째 상태 「품셈 공종 없음 — 단가를 직접 넣어야 함」 · 「자재 단가」 탭 통로(브레인 판정)
- 개소를 넣어도 공종이 없어 단가가 안 서는 줄(국가지점번호판·안내판·차단기·수방대책 자재) — 「입력이 필요함」이면 넣고 기다려도 안 섬
- 개소가 선 줄은 자재총괄 사급 줄로 감 → 「자재 단가」 탭에 칸이 섬(화약류·치즐과 같은 통로) · 인계 공종 줄은 막힘 아님(두 번 안 셈)
- 개소 안 넣은 줄은 종전대로 「입력이 필요함」
- 936be972: 국가지점번호판 3개소 넣음 → 셋째 상태 · 자재 단가 탭 「국가지점번호판 개소 3.0」 · 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-15 01:08:43 +09:00
eomsangdon 08ff9458ea Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-15 00:46:45 +09:00
eomsangdon c73654be66 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-15 00:45:59 +09:00
eomsangdonandClaude Opus 5 16d3461573 fix(b09): ㉱ 조립(묶음) 줄이 조각의 「일부만」·「밑수 없음」 을 올림 — 조각 제목만 있으면 온전한 금액처럼 서던 구조 결함
· 조각마다 보통 줄과 같은 두 검사 — 단가가 일부 몫만 섰거나(붙은 몫 N%) 밑수를 모르는 표면 묶음 금액을 안 세우고 어느 조각이 왜인지 사유
· 700줄 넘던 줄 만들기 파일에서 자재 줄(_material_row)을 자재 모듈로 그대로 옮김(순수 나누기 · 부르는 쪽 한 줄)

프로젝트 내역 그대로 · 잴 시험 둘 빨강→초록(온전한 조각 시험은 처음부터 초록) · 전체 시험 1705 + 367 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 00:45:40 +09:00
eomsangdonandClaude Opus 5 364c28a700 fix(b08): 준비공 상태 칸 「입력이 필요함」과 「값을 낼 근거가 없음」을 가름 · 인계 막힘 갈래도 상태를 따름(㉴)
- 입력이면 서는 줄(표토 두께·거리 · 임목폐기물 조사값 · 부대시설 개소 · 임목파쇄 부피 · 앞 단계 횡단·사면표) → 「입력이 필요함」 · 인계 input_missing
- 자료·산식이 없는 줄(뿌리 운반 부피 · 사방 원단위 · 사면표에 성토고 칸 없음) → 「근거 없음」 · 인계 unit_data_missing(종전 input_missing = 반대 방향 거짓 사유)
- 사면표가 섰는데 비탈 규준틀 0 개소 → 「해당 없음」
- 품셈 공종이 없는 부대시설은 개소를 넣어도 인계 input_missing 그대로(별도 단가)
- 표 머리 「입력이 필요한 줄 N · 근거 없는 줄 M」 · 700줄 — 규준틀 재료를 `_Preparation_FrameMaterial` 로 뗌(719 → 651)
- 936be972: 15줄 중 입력 7 · 근거 없음 1(뿌리 운반) · 내역 「원단위가 없습니다(우리가 만들 것)」 · 금액 불변 155,207,971

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-15 00:44:33 +09:00
eomsangdon 4d33f8d61c Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-15 00:24:08 +09:00
eomsangdonandClaude Opus 5 ac66a25cc7 feat(b09): ㉰ 표토제거 답외구간 9-15-2 일위대가 — 계수표를 불도저 식 + T 로 · 영월 호표 어긋남(E 자리에 e) 기록
· 계수표(T·L·E·q0·e·f·V1·V2·t) 칸을 기호로 읽어 불도저 식(8-2-1 · dozer_hourly_output) 그대로 Q1 47.92 ㎥/hr · Q = Q1 ÷ T 0.2 = 239.60 ㎡/hr
· 기종은 q0 3.2 · V1 40 · V2 46(1단)로 8-2-1 표에서 되짚음 → 무한궤도 19ton([주]① 과 맞음) · D 줄 1/Q hr/㎡
· 원문 대 실무 어긋남 기록 — 영월 호표 Q=576.95 는 E 자리에 e(0.96)를 넣은 값으로 정확히 역산됨 · 다른 실무엔 이 호표 없음 → 원문이 또렷해 원문 E=0.4 로 셈(공종 사유 한 줄)

새 제목 B·D 618원/㎡ · 바뀐 제목 0 · 프로젝트 내역 표토제거 9,954.32㎡ 가 금액으로 섬(+6,151,768) · 잴 시험 둘 빨강→초록 · 끄기 셋 빨강 · 전체 시험 1703 + 364 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 00:23:33 +09:00
eomsangdon cd6c7f3fed Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-15 00:16:45 +09:00
eomsangdonandClaude Opus 5 b34eb546f9 feat(b06): 성토사면 길이 5m 초과 경고 줄 — 요약 한 줄 + 측점 목록 · 벽 선 쪽만 뺌(좌·우 갈라) · 경고만(㉳ (나) · 브레인 승인 문구)
- 판정 `_Cross_FillSlope_Warn` — 길이는 카드 머리 「성토사면」 칸과 같은 fillSlopeLengths · 5m 를 넘는 쪽만
- 벽 = 배관 유입(상단측)·유출 기슭막이(집수정은 아님) · 독립 기슭막이 설치 측 · 세월교·BOX암거 양쪽
- 카드 목록 위 <details> — 펼치면 측점 단추, 누르면 그 카드로 · 구조물 자동 배치 없음
- 700줄 — 뷰 조종기 타입을 `_Section_View_Types` 로 뗌(706 → 669)
- 936be972: 37측점 경고 · 5m 넘는 48측점 중 벽 선 11곳 빠짐(80·258.1·260·320·352.1 세월교·440·534·620·720·804.2·982.6)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-15 00:15:11 +09:00
eomsangdon 2ad20e5d02 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-15 00:04:52 +09:00
eomsangdonandClaude Opus 5 9deaf479d0 feat(b09): 판정표가 안 읽은 줄을 자동으로 「못 붙은 줄」 목록에 — 표를 넣을 때마다 손 사유를 안 달아도 안 샘
· 판정표 공통 한 곳(_unread_rows) — 읽힌 줄 밖의 줄을 올림
· 넘치지 않게: 읽힌 줄 · 이미 못 맞춤 이름 · 다른 갈래가 쓴 기계 줄 · 자원 머리(첫 줄 머리 모양 · 횟수별) · 빈 줄은 뺌 · 분류 딱지 줄(자재·인력·기계)은 이름 칸으로 · 비고는 글 앞머리와 함께
· 손 사유와 안 겹치게: 공종 사유 한 줄에 이미 적힌 이름은 안 올림 · 오늘 손으로 단 날개벽·면벽·맨홀 줄 목록 사유는 걷고 [주] 30% 할증만 남김
· 새던 셋이 함께 닫힘 — 12-15 거푸집·철근·뚜껑·설치비 · 12-04 비고(수직고 7m 할증) · 12-34-1 레미콘 별도계상

판정표 9표 늘어난 줄: 9-19-1 0 · 12-04 +1 · 12-15 +4 · 12-12 +8 · 12-13 +6 · 12-16 +7 · 12-34-1 +1 · 제목 금액·막힘·일부만 그대로 · 잴 시험 넷 빨강→초록 · 끄기 넷 빨강 · 전체 시험 1702 + 362 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-15 00:04:41 +09:00
eomsangdonandClaude Opus 5 419148901b fix(b07): 횡단도 [확정]은 설계 상태만 올림 — 입력 셋으로 다시 계산한 값으로 정본을 덮던 것 걷음(브레인 ②)
- 옛 길: 지반·단면·측구 쪽 셋만으로 compute_cross_design 을 돌려 설계를 통째로 update
  → 암선·절토경사·표준 횡단·구조물 트림·사용자 입력(측구 끔)이 사라짐
- 936be972 실측(읽기만): 62측점 전부 단면적 바뀜 · 절토 5,868.92 → 4,650.76㎥(−20.8%) · 성토 +5.8% · 종점 1078.01 측구 끔→켬
- 지금: patch = {status: confirmed} 뿐 · 응답 설계는 저장값 그대로 · _recompute_confirmed_design 지움
- 확인: 실제 라우터로 23장 전부 [확정] → 62측점 상태 뺀 값 차이 0 · 상태 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 23:43:58 +09:00
eomsangdon b516ffed66 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 23:34:02 +09:00
eomsangdonandClaude Opus 5 15d91be7b0 feat(b09): 봉상후렉시블 셋(12-12 날개벽 · 12-13 면벽 · 12-16 맨홀) + 12-34-1 — 같은 진동기 줄 하나가 막던 네 공종을 판정표로 세움
· 12-12·12-13·12-16 — 12-15 집수정과 같은 모양(㎥ 줄 비고 인력 + 다짐기 줄) · 판정표 한 벌에 더함 · 맨홀은 비고가 끝 칸이 아니라 단위 뒤 칸 전체에서 찾음
· 비고가 인/㎥ 인 판정표는 밑수 없음 목록을 안 봄(12-12 는 「개소당」 머리조차 없음)
· 12-34-1 — 형태 판정 참조→소요량(「별도계상」 은 레미콘 줄 비고일 뿐) · 새 모양 per_m3_rows · 진동기(3.5HP) 대 2 → 4611-0350 × 2/5.4 · 봉상후렉시블 대 2 는 엔진식 진동기의 봉이라 안 셈 · 머리 개소당 ↔ 인력 0.17·0.29(12-16 ㎥당과 같음)·Q ㎥/hr ⇒ ㎥당으로 읽고 고른 쪽·버린 쪽을 사유에 나란히(브레인 판정)
· 범위 별칭 넷 → 엔진식 4611-0350 · 표의 나머지 줄(거푸집·철근·기초잡석·원형거푸집·설치비 등)은 원문 그대로 사유 한 줄(조용히 안 사라지게)
· 실무 영월 「콘크리트타설(임도품셈 5-5)」 호표가 같은 모양 — 인력 인/㎥ + 진동기 엔진식 1/Q · 손료 252천원×0.5101 · 노무 0
· 마스터 재생성 — 네 공종 갈래 키 · F0385 형태만

새 제목 다섯 · 바뀐 제목 0 · 프로젝트 내역 그대로 · 잴 시험 넷 빨강→초록 · 끄기 다섯 빨강 · 전체 시험 1699 + 337 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 23:33:47 +09:00
eomsangdon 0fa6cd0898 Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_1 2026-09-14 23:16:10 +09:00
eomsangdon 0989471901 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 23:16:09 +09:00
eomsangdonandClaude Opus 5 6ea73956e5 chore(tester): 잘못 올라간 pytest 임시 폴더 걷어냄(auto 커밋 8ed4be85 에 섞임 · 시험 산출물)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 23:14:42 +09:00
eomsangdon 8ed4be855b auto: 2026-09-14 23:13 (ESD_LAPTOP) 2026-09-14 23:13:49 +09:00
eomsangdonandClaude Opus 5 20597071bd fix(b06): 유토 배분 수량은 거르지 않은 계획 · 잔진동 거르기는 그림에만(브레인 ①)
- computeHaulPlan 기본 = 거르지 않음, drawing: true 일 때만 진폭 2% 거르기
- 서버 정본 두 벌 — haul_plan(수량·B08) · haul_plan_drawing(토적도) · 화면 선반입은 그림용
- B07 토적도는 그림용 먼저, 옛 저장분은 haul_plan
- 936be972 실측: 운반 0 → 245.81㎥(7블록 15띠) · 토취 11,100.86 그대로 · 내역 154,857,626 → 155,207,971

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 23:13:48 +09:00
eomsangdonandClaude Opus 5 47196780b2 fix(b09): 절사 자동보정을 이분으로 앉힘 — 못 밟는 끝자리에서 999 가 남던 자리
까닭 — 이윤 1원을 깎으면 총공사비는 1원이나 2원 준다(부가세가 버림). ÷1.1 어림이 한 칸
아래로 지나치고 3걸음 안에 못 돌아와 거창 꼴 40 자리 중 16 이 끝자리 999 로 남았음.

고친 법 — 노릴 배수를 못 박고 목표 이하로 내려가는 **가장 작은 보정액을 이분으로** 찾는다
(총공사비는 보정액에 대해 비증가). 못 밟는 배수면 한 칸 아래로 내려 다시 찾는다(뒷받침 —
실측에서는 한 칸도 안 내려감). _CUT_MAX_PASSES → _CUT_DESCENT_MAX 로 뜻이 바뀜.

판정 — 거창 꼴 40/40 앉음 · 깎인 몫 356~423원으로 늘 한 칸 안쪽 ·
실무 6건 자동보정액 그대로(봉화 339 · 영월 632, 골든셋이 지킴).

잴 시험 먼저 빨강 10 자리 확인한 뒤 고침. 전체 시험 2043 통과 · 28 건너뜀 · 1 xfail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 23:04:31 +09:00
eomsangdon fd0ea82975 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 22:56:28 +09:00
eomsangdonandClaude Opus 5 8dddc76839 feat(b09): 672 품 할증 여럿 고르면 합산 — 근거를 건설 공통 1-4-2 「W = 기본품 × (1 + a1 + … + an)」 로(교차 참조)
· 산림품셈 1-4 에 겹침 규정이 없어 건설 공통 1-4-2 「할증의 중복가산요령」 을 따름 — 「우리가 둔 합산 · 확정 대기」 문구를 원문 근거로 바꿈
· 같은 조 단서 「동일성격의 품할증요소의 이중적용은 불가」 — 어느 계열끼리 동일성격인지 원문이 안 정해 막지 않고 화면 근거에 단서로 보임
· 셈법(합산) 자체는 그대로라 금액 변화 없음

잴 시험 둘 빨강→초록 · 전체 시험 1695 + 332 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 22:55:45 +09:00
eomsangdon edc8148515 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-14 22:43:55 +09:00
eomsangdonandClaude Opus 5 8bf24c268f fix(b06): 미교차 측점 지반 샘플을 지표면 끝까지 넓힘(㉳ (가) · 브레인 판정 「+5m 씩 · 상한 = 지표면 끝」 · 716 「+5m 한 번」 갈음)
- 서버 재계산([저장]·[확정]·자동설계 체인) 맨 앞에서 미교차 측점만 열린 쪽을 +5m 씩 확정 지표면에서 다시 떠 계산 · 닫히면 멈춤 · 지표면 밖 샘플이 섞이면 그 걸음은 안 붙이고 미교차로 남김
- 넓힌 샘플은 횡단 파일에 남겨 화면·Node·B08 이 같은 지반을 봄 · 계산식은 안 바뀜(입력만 넓어짐) · 뒤 보정(포장·세월교·사토장)은 넓힌 지반 위에서
- 종전엔 반폭 20m 끝에서 잘려 성토가 작게 섰음
- 936be972 서버 재계산 전→후: 미교차 12 → 1(840 지표면 끝) · 성토 단면 460 19.87→35.11 · 480 48.04→84.35 · 500 37.15→52.47 · 700 24.74→54.84 · 1000 56.30→80.40 · 840 41.60→110.35 · 258.12 25.11→31.44 · 유토곡선 성토 13,350.64 → 17,248.52㎥ · 토취 7,259.84 → 11,100.86㎥ · 내역 본체 129,498,518 → 154,857,626원

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 22:43:10 +09:00
eomsangdonandClaude Opus 5 7ea2598263 fix(b09): 휘발유 기계에 경유값이 붙던 것 — 운전경비표 연료 종류대로 유가 · 콘크리트 진동기(4611) 원문값 되살려 집수정 구체콘크리트 갈래를 세움
· 연료 — `fuel_kind` 를 조립이 안 읽어 휘발유 기계 10종(래머·플레이트 콤팩터·믹서·커터·진동기)이 경유값이었음 → `M-FUEL-휘발유` · 시도 판도 종류대로 · 기계 하나 사용료·중기경비 장도 같은 값
· 진동기 — 건설품셈 8-3 (4611) 두 줄이 한 칸에 뭉쳐 규격·손료계수가 비었음 → 원문값 되살림(전기식 ø45 0.75㎾ 4,935 · 엔진식 ø45 2.6㎾ 5,101 · 판정 없음)
· 12-15 「봉상후렉시블(45mm)」 → 엔진식 4611-0350 범위 별칭 — 12-15 는 전기·엔진을 안 적음 · 12-34-1 「3.5HP」 = 2.6㎾ · 운전경비표에 엔진식만(브레인 승인) → 구체콘크리트 갈래가 진동기 1/5.4 hr/㎥ 와 함께 섬
· 661 뒤처리 — 중기경비 장의 `#암석` 이 조합 16%·비암석 계수로 보이던 것을 보정 상각·정비·계와 본 잡품률로
· 마스터 재생성 — 12-15 갈래 키만(구체콘크리트 더함)

휘발유 기계 전수 대조: 재료비 +13~113원/hr · 조립에 선 것은 플레이트 콤팩터(+20원/hr → 9-14-02 +5원)와 진동기 · 나머지 제목 그대로 · 프로젝트 내역 그대로 · 잴 시험 일곱 빨강→초록 · 끄기 다섯 빨강 · 전체 시험 1695 + 330 통과
(시험 파일은 앞선 autopush 가 먼저 쓸어 올린 빨강본 — 이 커밋이 초록으로 맞춤)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 22:40:49 +09:00
eomsangdon 142b100a09 auto: 2026-09-14 22:18 (ESD_LAPTOP) 2026-09-14 22:18:38 +09:00
eomsangdon c51722ae8b Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 22:07:59 +09:00
eomsangdonandClaude Opus 5 a842766658 feat(b09): 661 암석 작업 기계손료 보정(건설품셈 8-1-7 1) — 암 공종의 굴착기(무한궤도)·로더·불도저·덤프 줄을 「암석」 호표로
· 암석 손료계수 = (상각 + 정비) × (1 + 가산) + 관리 · 1e-7 정수 아래 버림 · 가산율은 mach_rock_adj(원문 파싱) 한 벌
· 실무 봉화 2024 암석 계수 셋 재현 — 굴착기 1.0 0.2405 · 덤프 2.5 0.3533 · 덤프 15 0.2679
· 거는 자리 — 자기·부모 이름이나 갈래가 연암·보통암·경암·발파암·파쇄암·암절취·암석인 일위대가의 대상 기계 줄
· 안 거는 것 — [주]① 19톤 이상 불도저·18톤 이상 덤프(줄 비고에 까닭) · 브레이커 조합 본체(봉화 조합 손료가 비암석) · 풍화암·호박돌 · 전석섞인토사(혼입율 입력 없음 · 칸 안 만듦)
· 손료율 원천은 이미 8-3 원천표(387건) — 봉화 25 중 보통 조건 16종 전부 일치라 「실측을 기본으로」 물음은 닫힘

바뀐 제목 17(암 집토·암 면고르기·암 덤프 운반/적재 · 2~3.4% 오름) · 나머지 458 그대로 · 프로젝트 내역 그대로 · 잴 시험 넷 빨강→초록 · 끄기 넷 빨강 · 전체 시험 1691 + 323 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 22:07:48 +09:00
eomsangdon eb1a78f9e1 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 21:53:28 +09:00
eomsangdonandClaude Opus 5 05d542add3 feat(b08): 토취(반입토) 줄 — 유토곡선이 낸 성토 부족분을 수량만 세우고 금액은 사유(브레인 ①)
- B06 운반계획의 borrow_m3·구간(residuals)을 운반표에 싣고 토공집계에 「토취(반입토)」 줄 · 인계는 코드 없이 수량만 · 막힘 사유 「토취장 거리·재료 미정」(집계 비고 그대로) · 다짐상태 그대로(반입 재료를 몰라 되돌리지 않음)
- 종전엔 어느 탭·인계에도 안 옮겨 수량이 통째로 빠졌음
- 936be972: 토공집계 7,259.84㎥(246.54~529.33m 3,494.69 · 720~1,078.01m 3,765.15) · 내역 「금액을 못 세운 줄」 · 본체 금액 변화 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 21:38:53 +09:00
eomsangdonandClaude Opus 5 d57e97a1cd fix(b08): 산출 조건 [저장]이 운반계획을 다시 세움(브레인 ② · 지침 5장 「[저장]·[확정]은 서버가 정본으로 다시 계산」)
- 운반계획 밑수 칸(암 갈래 세트·구성비·시공법·계수·도쟈 한계거리)이 바뀐 저장만 B06 [저장]과 같은 서버 재계산을 부름 · 다른 칸 저장은 안 부름 · 못 하면 저장은 살리고 haul_plan_recomputed 거짓
- 종전엔 B06 을 다시 저장하기 전까지 토적표(새 계수) ↔ 운반표(옛 계획)가 갈렸음 — 계수 고르기 칸의 옛 틈도 함께 닫힘
- 936be972 화면에서 연암 60 리핑/보통암 40 발파 [저장](2.0초) → 유토곡선 깎기 6,296.8 = 토적표 6,296.81 · 토취 7,259.84 → 7,053.83 · 되돌림(설정 파일 · 재계산 원래 값)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 21:32:21 +09:00
eomsangdon ac68232d28 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 21:29:14 +09:00
eomsangdonandClaude Opus 5 efaf2403a0 feat(b09): 301 유로폼 사용수량 12-38-2 — 임대료 또는 손료를 「자재 단가」 탭에서 설계자가 넣은 쪽으로 세움
· 손료 = 자재가 × 표 수량 곧장(패널 0.089 · 내부 패널 0.003매/㎡) + 부자재 24/52/79% · 소모자재 5%(주자재비 = 패널 + 내부 패널) — 봉화 2024 호표 재료비 보통 4,500 · 간단 3,697 과 일치
· 임대료 = 「유로폼 임대료 ㎡당」 한 줄 · 부자재 % 는 원문이 안 적어 안 걺
· 둘 다 · 한쪽만 반쯤 · 아무것도 — 안 세우고 사유(부모 12-38 까지 그대로)
· 12-38-1 잔존율은 안 곱함 — 표 수량이 이미 12회·25% 몫으로 보임(우리 역산 · 차 2.5% 는 추정이라 비고에 밝힘)
· 이중계상 ③ 가드에서 12-38-02 만 뺌(패널이 자재총괄에 줄 없음) · 유로폼이 자재총괄로 가면 빨강 시험
· 합산형 부모 — 갈래 벌이 같으면 여러 단계 갈래끼리 합산(12-38 = 사용수량 + 설치·해체)
· 작업조 표 7 은 밑수 없음 목록에서 뺌(1단위당 = 인원 ÷ 시공량) — 12-38-3 설치·해체가 막혀 있던 자리
· 마스터 재생성 — 12-38 · 12-38-02 갈래 키만 바뀜

기본 조립 제목 금액 변화 0 · 프로젝트 내역 변화 0 · 잴 시험 일곱 빨강→초록 · 끄기 넷 빨강 · 전체 시험 1677 + 318 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 21:29:04 +09:00
eomsangdonandClaude Opus 5 8f4ec48759 feat(b06·b08): ㉱ (나) 암 환산계수를 구성비 가중으로 — 토적표·유토곡선·운반표가 한 함수(mixed_conversion_factors)
- B06 암은 한 종류 자리표시라 토적표 보정량·유토곡선이 리핑암 C 하나로 쌓았음 · 구성비·갈래별 시공법이 다 서면 암 두 칸을 Σ몫×C(시공법)로 · 비면 종전 값(인계가 막힘 사유)
- 계수를 내는 곳 넷(B06 서버 재계산·곡선 문맥 · B08 토적표·사토 계수)이 같은 함수 · 화면 「무엇을 골랐나」는 갈래별 값 그대로
- 936be972 연암 60 리핑/보통암 40 발파 · 서버 재계산: 토적표 깎기 보정량 6,296.81 = 유토곡선 6,296.8 · 암 보정량 4,167.31 → 4,384.74 · 토취 7,259.84 → 7,053.83 · 사토 55.31 → 58.2 · 운반 검산 0 · 되돌려 재계산 원래 값 그대로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 21:11:44 +09:00
eomsangdonandClaude Opus 5 27e068aa12 feat(b08): ㉱ (가) 암 운반량을 구성비로 가름 — B06 리핑암은 자리표시(8-1 사용자 확정 · 브레인 판정 「구성비가 정본」)
- 운반표를 만든 한 곳(Router_Earthwork)에서 암 줄을 흙깎기와 같은 구성비(_split_by_rock)·갈래별 시공법으로 가름 → 운반거리·토공집계 운반 줄·인계·사토가 한 값
- 구성비가 비면 「암」 한 줄로 막음(깎기와 같은 사유) · 시공법 안 고른 갈래만 막음 · 무대(내역 밖) 줄은 안 막음
- 유토곡선 거리·다짐 부피는 그대로(몫대로 나눔 · 검산 차이 0) — C 까지 구성비로 맞추는 것은 (나) 차례
- 936be972: 구성비 없음 → 운반·적재·사토 암 전부 입력 사유(종전 리핑암 금액 섬) · 연암 60 리핑/보통암 40 발파 → 흙깎기 2,060.043/1,373.362 · 도자 38.123/25.416 · 덤프 112.195/74.797 · 사토 28.858/19.238 같은 몫 · 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 20:54:28 +09:00
eomsangdon b6d5c9acc8 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 20:47:02 +09:00
eomsangdon 1e791b487d Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 20:32:32 +09:00
eomsangdonandClaude Opus 5 09247fd16f feat(b09): 300 발파 9-5-1 — 화약류(폭약·뇌관·비트) 자재 단가 칸 · 설계자 단가가 들면 표 수량으로 붙고 아니면 「규격 미정」 사유 · 착암기는 공기압축기 부수물(건설품셈 8-3-6 (5205) [주]① 「부수물은 별도 계상」)이라 압축기 손료에 안 들고 래그해머 손료 고시 없음 사유 · 잡재료 5% 사유(브레인 판정)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 20:32:30 +09:00
eomsangdonandClaude Opus 5 3ecc23ac93 feat(b08): 초류종자살포 잎 고르기 칸(브레인 ㉮) — 매핑이 부모 5-24(갈래 고르기형)라 고를 칸이 없어 금액이 영영 안 서던 자리
- 산출 조건 「초류종자살포 비탈면 토질」(5-24-1 기계/일반 · 5-24-2 기계/마사토 · 서버 선택지 · 제안값 없음) · 비면 금액 없이 입력 사유
- 매핑 `leaf_from`·`leaf_codes` 가 설정값으로 잎 코드를 고름(인계 한 곳 · 갈래 없는 매핑은 종전과 같음)
- 936be972 일반 고름 → 인계 FP-05-24-01 막힘 풀림 · B09 는 다음 막힘 「트럭 4.5ton(장비 줄) 카탈로그에 없음 · 종자 규격 미정」으로 아직 금액 없음 · 면고르기 성토면 12,350.32㎡ 40,373,196원 · 절토면 3,087.51㎡ 7,731,123원(파종 면적 그대로 따라감) · 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 20:25:41 +09:00
eomsangdon 2799cad714 Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_1 2026-09-14 20:15:55 +09:00
eomsangdonandClaude Opus 5 1400b7b761 feat(b09): 기계 수송비 회수(대수 × 왕복) 설계 입력 칸 — 원문에 공식이 없어 사유와 함께 엶
산림품셈 10-4 · 건설품셈 8-1-3 은 회당 단가 산출식만 주고 대수·횟수를 정하지 않음(전수 확인).
지어내지 않고 설계 입력으로 닫음.

· parse_trips — 비거나 0 이면 없음. 기본값을 두지 않음(1 회로 안 때움)
· transport_amount — 회수 × 회당 단가. 회수가 없으면 None(0 원으로 안 채움)
· TRIPS_NOTE — 「원문에 공식 없음 · 설계 입력 · 비우면 금액이 안 섬」 사유
· 도는 자리 넷 — 저장(PUT estimation/factors) · 산출 조건 ② · 산출 조건 화면(회당 N원 × M회) ·
  비면 transport_notes 에 사유가 붙어 못 채운 자리로 뜸
· 화면에 있던 「회수는 여기서 안 정합니다」 안내는 칸으로 바뀌어 걷음

잴 시험 먼저 빨강 확인한 뒤 고침. 전체 시험 1976 통과 · 28 건너뜀 · 1 xfail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 20:13:25 +09:00
eomsangdonandClaude Opus 5 c7f34b8c4b feat(b09): 사람이 가른 표 형태 66표 까닭을 화면에 — 일위대가 상세 회색 한 줄(form_basis_note) · 일위대가 없는 공종은 내역 비고 곁 · 판정표 한 벌(_Forms.FORM_JUDGMENTS)을 읽음(10-A ⑭ · 원문 근거 없는 SW 규칙)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 20:12:09 +09:00
eomsangdon 027c305e16 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 19:44:57 +09:00
eomsangdonandClaude Opus 5 475ad7875e feat(b08·b05·b09): 10-A 우리가 정한 SW 규칙을 화면에 드러냄 — 훑기 21건 중 안 보이거나 반만 보이던 13건 채움 + 9-21 제근 굴착기 크기 칸
- 문구 못박음 셋: ① 옹벽 높이 칸 밑 「기본값 · 소광리 도면 H=2.0 · 바꿀 수 있음」(등록부 default_basis 를 모든 칸 밑 회색 한 줄로) · ② 일반관리비 「임도가 어느 쪽인지 규정이 없어 (주)공사 기본 · 칸에서 바꿀 수 있음」 · ③ 모르타르 배합 「산림품셈에 배합 절이 없어 건설품셈 [건축] 9-1-1 을 씀(교차 참조)」
- B08: 막자갈 비고 「칸을 새로 두는 것은 B05 등록부 몫」 · 일위대가 머리 5단 한도 · 야면석 계수 칸 밑 「돌 종류는 그대로」 · 식 저장 전 상태 줄 「제원을 바꿔도 따라감」 · 양식 장 머리 「반올림은 m당 값에 걸고 수량 = m당 × 연장」
- 산출 조건 제근 굴착기 크기 칸(임목축적 등급 밑 · 「안 정함」 · 회색 제안 0.7㎥ + 근거 + [제안값 넣기] 누른 때만) — 936be972 소림 + 0.7 → 뿌리뽑기 55원/㎡ × 17,873.80㎡ = 983,057원(되돌림)
- 라이브러리 이름표: [내 라이브러리에 저장]·[발행] 창이 장 이름(종류 + 제원 요약)을 채워 묻고 고친 이름으로 저장 · 취소면 안 씀 · 비우면 양식 이름
- B05 계곡 통과 시설 폼 머리 「[저장]은 이 폼에 있는 칸만 바꿈 — 폼에 없는 칸은 그대로 둠」 · B09 폐기물처리비 자리 칸 밑 「법정경비 밑수에는 안 넣음」 · 내역서 「금액을 못 세운 줄」 첫 줄 「사유는 아래 단계가 낸 것을 그대로 옮김」
- 남은 하나(표 형태 66표 까닭 form_basis 화면)는 자원 축 파일을 거쳐야 해 브레인 물음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 19:44:18 +09:00
eomsangdon af609a381e Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-14 19:38:29 +09:00
eomsangdonandClaude Opus 5 7c9f75ca12 feat(b08,b09): 12-15 집수정 조립 — 콘크리트 집수정만 묶음(when) · 조각 구체콘크리트 ㎥ · 버림콘크리트(성분 없음 막힘) · 합판거푸집 #4회 · 철근 #보통(12-15 표 정본 · 간단 추정 걷음) · 판정표 비고 칸 인력으로 #버림콘크리트(87,489원/㎥) · 구체는 다짐기 없어 안 세우고 사유 · 뚜껑·설치비 사유 · 돌집수정 종전대로 · 묶음은 타설·잡석 줄이 또 안 셈 · 마스터 재생성(바뀐 공종 12-15 하나)
금액은 아직 안 서고 막힌 까닭이 드러나는 일감(브레인 ㉯ ⑴~⑸) · 배정 프로젝트 변화 0 · 전체 1962 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 19:38:27 +09:00
eomsangdonandClaude Opus 5 5a016979c4 fix(b09): 안전관리비 제3조 적용 하한을 엔진이 읽게 함 · 1.2배 차례와 관급 ÷1.1 사유 명기
3. 제3조(적용범위) 「총공사금액 2천만 원 이상」 — 요율 데이터의
   minimum_total_construction_amount_krw 를 규모 기준액과 견주고 미달이면 줄 자체를 안 만듦
   (A·B 곁줄도 안 섬 · 0 원으로 안 채움). 잴 시험 먼저 빨강 확인한 뒤 고침.
   ⚠ 견주는 값은 규모 기준액(추정가격 · 없으면 수렴한 총원가) — 고시의 「총공사금액」과 딱 같은
     말은 아니나 계산 차례상 안전관리비 앞에 설 수 있는 값이 그것뿐. 보건관리자 문턱과 같은 축.

1. 1.2배 차례 = STmate 쪽 확정(브레인 판정) — 안 고른 갈래의 사유를 코드에 남김.
   거창 2025 원본은 버림(밑수 × 율 × 1.2) 로 1원 위지만 STmate 출력이 아니라 채택하지 않음.

4. 관급 ÷1.1 = 실무 따름 — 근거를 정확히 적음. 고시 제4조① 단서는 「해당 재료비를 대상액에
   포함」까지만이고 부가세를 말하지 않음 · ÷1.1 은 부가세 제외 환산으로 실무 6건 공통.

전체 시험 1952 통과 · 28 건너뜀 · 1 xfail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 19:22:08 +09:00
eomsangdonandClaude Opus 5 b23db36c78 feat(b08): 옹벽 조립 조각 합판거푸집이 사용횟수 갈래로(「FP-12-04#3회」 · 성분의 reuse_count 그대로) · 집수정 거푸집 6회 → 4회(12-15 표 「합판4회」 정본 · 사유 문구도 그 표) — 화면 자재 표·인계 성분 한 벌(브레인 ㉯ ①②)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 19:05:55 +09:00
eomsangdon 3ca1a45b2b Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 18:37:03 +09:00
eomsangdonandClaude Opus 5 72ec6c2135 feat(b09): 12-4 합판거푸집 사용횟수 1~6회 갈래 — 기준수량(1회) × 원문 비율(재료 줄 재료 % · 인력 줄 노무비 %) · 설계로 막아 둔 표 풀림 · 사용고재 23%·동바리·소형구조물 할증은 값 안 짓고 사유 · 재료는 카탈로그 없음/규격 미정으로 못 붙은 줄(인력 품만) · 마스터 갈래 키 재생성(바뀐 공종 12-04 하나)
일위대가 새 제목 6(1회 81,321 → 4회 32,528 → 6회 26,023원/㎡) · 나머지 462 변화 0 (브레인 ㉮)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 18:27:36 +09:00
eomsangdonandClaude Opus 5 0bb14ce2b3 feat(b08): 라이브러리 공유 — [동료에게 보내기] 같은 회사 동료의 「받음」 단으로 복사(개인 단을 안 덮음 · 보낸 사람 기록 · 출처 공사명 그대로) · 받음 단 항목도 가져오기·복제 가능 · 회사 밖·나에게·내 것 아닌 항목은 막음(브레인 판정 ①)
화면: 복제로 만든 개인 항목 선택 → 동료 목록 받음 → 확인창 「받는 쪽 목록에 받음으로 뜸 · 그 사람 것은 안 덮음」 · 공용 storage 라 취소(동료 폴더 안 생김 확인) · 개인 항목 지워 되돌림 · 쓰기는 임시 storage 시험

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 18:25:22 +09:00
eomsangdonandClaude Opus 5 ecd25ae9ee fix(b08): 프로그램 기본 발행본엔 원문 공사명·파일명을 안 실음(브레인 ②) — 출처에 「원문에서 뽑음 — 공사명은 발행 시 가림」 · 원본(개인 단)·회사 단 발행은 그대로(③) · 발행 확인창에 「이 항목은 「○○」에서 뽑은 것 — 공사명은 빼고 발행됩니다」
화면(936be972 · 봉화 호표 가져온 장): 확인창 문구 확인 · 공용 storage 라 취소(쓰기 없음) · 가림은 임시 storage 시험 · 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 18:21:24 +09:00
eomsangdon 1550c7caf6 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 18:18:07 +09:00
eomsangdonandClaude Opus 5 99a79e8e0b feat(b08): 라이브러리 관리자 발행 — 프로그램 기본도 storage 작업본(git resources 는 씨앗 · 없는 코드만 · 덮어쓰기 금지) · [회사 라이브러리에 발행](마스터·시스템 관리자) · [프로그램 기본으로 발행](시스템 관리자) — [내 라이브러리에 저장]과 같은 모양 · 권한은 서버가 can_publish 로 내리고 화면은 그대로만 보임
화면(시스템 관리자 계정): 두 단추 보임 · 확인창 「모든 회사가 쓰는 프로그램 기본에 발행 — 같은 종류가 있으면 덮어씀」 · 공용 storage 라 취소로 멈춤(쓰기 없음 확인) · 쓰기는 시험(임시 storage)으로 잼

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 18:06:11 +09:00
eomsangdon 60d7c005bd Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 18:01:36 +09:00
eomsangdonandClaude Opus 5 26d9092a9b fix(b09): 원가계산 나머지 세 형식 사유를 요율표 셋 결론으로 — 실적형 「임도 미적용 — 100억 미만(예정가격작성기준 §37②)」 · 수공 세부 경비 「법정 요율 없음 — 값을 넣어 주십시오(§34①)」 · 실적 안전표는 고시 편입이나 실적형 미적용 · 탭 말풍선도 같은 말
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 18:01:34 +09:00
eomsangdon 29a0e64b30 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 17:57:43 +09:00
eomsangdonandClaude Opus 5 64e43463f4 feat(b08): 라이브러리 [복제해서 내 것으로] — 기본·회사 항목을 개인 단에 베낌(출처 cloned_from 기록 · 새 코드 · 프로젝트 작업본 안 바꿈 · 개인 단 항목에선 안 눌림 · 같은 종류 내 것은 덮어씀을 먼저 물음)
화면(936be972 돌쌓기(찰) 장): 기본 항목 복제 → 목록 「개인 · [양식형] 돌쌓기(찰)」 + 「내 라이브러리에 베낌 — 가져와 고친 뒤 [내 라이브러리에 저장]」 · 프로젝트 라이브러리 폴더 안 생김 · [내 것 지우기]로 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 17:45:46 +09:00
eomsangdon 254007573f Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 17:42:51 +09:00
eomsangdonandClaude Opus 5 64a52df680 feat(b08): 9-21 제근 굴착기 크기 칸 — 크기(0.2·0.7)·임목축적 등급을 매핑 variant_template 로 한 갈래 값(「0.7·소림」)으로 엮고 범위 별칭(FP-09-21)이 B09 갈래로 이음 · 제안 0.7㎥(산림품셈 10-12-1 [주]①)은 칸 곁에만 · 비면 금액 없이 입력 사유(브레인 판정)
배정 프로젝트: 뿌리뽑기 줄만 사유가 「하위 후보 6건」→「입력이 필요합니다」 · 소림·0.7 넣으면 55원/㎡ × 17,698㎡ = 973,414(되돌림) · 전체 1935 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 17:42:49 +09:00
eomsangdonandClaude Opus 5 a744388276 fix(b08): 고르개 후보 0 이면 다음 길을 적음 — 「낱말·갈래를 바꿔 찾거나 수동 단가(미확정)」 · 조용히 「없음」으로 막히지 않게(936be972 PVC파이프는 단가표에 품셈·자원 모두 0)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 17:42:04 +09:00
eomsangdon 70d9329fb6 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 17:39:54 +09:00
eomsangdonandClaude Opus 5 42909a01b9 feat(b08): 고정형 장 사유(㉰) · 규격 다름(㉱) — 전개 사유를 걷고 항목 사유를 띄움(남긴 전개 줄에 걸린 사유만 머리 달아 둠) · 항목 제목 H 와 장 제원 H 가 다르면 빨간 테두리 + 「규격 다름」 배지 + 「벽 수량은 항목 박힌 값 · 토공·사토 공제는 장 제원으로 셈」 사유(금액은 섬 · 막지 않음)
936be972 화면: 돌쌓기(찰) H=2.5 장에 H=2.0 호표 → 배지 「규격 다름 H2 ↔ H2.5」 · 테두리 · 사유 첫 줄 규격 다름 + 원문 시점 수량 · 뒷길이·돌 종류 사유 걷힘 · 되돌려 전부 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 17:27:53 +09:00
eomsangdon 5d2e1edbde Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 17:25:36 +09:00
eomsangdonandClaude Opus 5 8dd452d8f4 fix(b08): 관 벽·돌쌓기 줄 인계에 실제로 쓴 뒷길이 + 출처 — 안 고른 벽도 [주]⑩ 표준표 하한 값으로 13-04-02/05 갈래를 고름 · 고른 값은 원본 그대로(출처 저장 제원)
배정 프로젝트: 인계 줄 18(관 유입·유출부 기슭막이) 갈래 값·판정 근거만 바뀜 · 본체 105,512,060 그대로(모두 미확정) · 전체 1928 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 17:24:32 +09:00
eomsangdonandClaude Opus 5 31decd1558 feat(b08): 남길 성분 목록에 기초잡석·채집석 더함(②) — 실무 벽·돌쌓기 호표 57 전수: 기초잡석 0/57 · 채집석(사토 공제 부피)은 호표 채집 줄(품 · 41/57)과 다른 것
936be972 실측: 고정형 가져오기 → 기초잡석이 호표 밖 몫으로 따로 섬(내역 6-3 3.5 → 7.7㎥ · +515,466) · 채집석 17.76㎥ 사토 공제 그대로 · 되돌려 전부 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 17:10:26 +09:00
eomsangdonandClaude Opus 5 9e240d886d fix(b08): 고르개 후보를 두 글자 이상 겹친 조각으로 넓힘(①) — 낱말 전부 든 항목 먼저, 그다음 겹친 글자 수 순 · 조각 비교는 글자·숫자만(괄호 안 셈) · 고르는 것은 사람(별칭표로 안 맞춤)
실측(936be972 단가표): 고정형 줄 이름 그대로 찾기 — 종전 8줄 전부 후보 0 → 깬잡석채집 50건(야면석 채집…) · 고임돌채집 14(막돌 채집…) · 레미콘타설(장비) 22(레디믹스트콘크리트 타설 먼저) · 기초다짐 및 뒤채움 16 · PVC파이프 0(자재라 자원 갈래) · 두 번째부터 40~80ms

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 17:08:14 +09:00
eomsangdon 9022640b5f Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-14 17:01:15 +09:00
eomsangdonandClaude Opus 5 00919e86e2 fix(b09): 안전관리비 B 절사 자리를 STmate 실증본 쪽으로 · SA 안전관리비 별도내역 확정
④ 1.2배의 대상을 「호별 산정이 끝난 금액」으로 바꿈 — evaluate 가
   버림(밑수 × 율 + 기초액) 을 먼저 맺고 배수를 곱함(종전엔 곱한 뒤 한 번만 버림).
   근거 둘이 같은 쪽 — 고시 제4조① 단서 문언 · 골든셋 실증(영월 2024 B 20,330,639 → 20,330,638).
   A(배수 1)는 어느 차례로 해도 같은 값.
   ⚠ 두 실증본이 갈림 — 거창 2025 원본(STmate 출력 아님)은 옛 규칙이라 B 가 1원 위.
     목표가 STmate 골든셋 재현이라 STmate 쪽으로 맞춤. 고정값 벌에 갈림을 적어 둠.

⑤ SA(실적수공) 안전관리비 「확인 대기」 → 별도내역. TA 와 같은 자리가 됨.
   PENDING_SAFETY 상수를 걷고 파일 머리 문구도 고침. 금액엔 안 닿음.

⑥ 고시 대조를 상시 벌로 세움 — test_b09_safety_notice.py 여덟 자리.
   별표1 표를 원문 md 에서 읽어 요율 데이터 16칸 전수 대조(값을 시험에 안 박음) ·
   제4조①1·2호 구간 경계 넷 · 단서 A·B·1.2배 · 제2조2호 대상액 구성 · 1.2배 차례 회귀.

잴 시험 먼저 빨강 확인한 뒤 고침. 전체 시험 1911 통과 · 28 건너뜀 · 1 xfail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 16:59:47 +09:00
eomsangdonandClaude Opus 5 b95ad5e838 feat(b08): 면고르기 성토면 회색 제안 + [제안값 넣기] — 서버 fill_suggested 그대로 · 누른 때만 칸에 들어가고 비워 두면 「안 정함」 · 메인 976e5fd9
화면: 칸 빈 값 · 회색 「제안(비우면 안 정함): 성토면 · 기계 · 무한궤도 — 영월 실무…」 · 단추 누르면 칸만 바뀌고 저장값은 그대로 빈 값(저장 안 함)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 16:53:25 +09:00
eomsangdon 9d59a32898 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 16:50:40 +09:00
eomsangdon eff340aad3 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 16:49:33 +09:00
eomsangdonandClaude Opus 5 ef03daa482 refactor(b09): ResourceAxis.py 713→620줄 — 셀 거르기·물결표 목록·셀 정규화를 _Labels 로 순수 분리(옮기기만 · 바깥 이름 그대로 다시 내보냄)
옮긴 글 원문과 같음 · 자원 축 출력·일위대가 462 제목 금액 전후 같음 · 린트 종전과 같음 · 전체 1909 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 16:49:31 +09:00
eomsangdon fcb21eb945 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-14 16:45:03 +09:00
eomsangdon 9d8c3a6068 auto: 2026-09-14 16:44 (EOMSANGDON-HOME) 2026-09-14 16:44:53 +09:00
eomsangdonandClaude Opus 5 fc825dc9d3 feat(b08): 양식이 안 품은 토공·버림 성분은 전개 값을 남김(㉯) — 남길 목록을 코드에 못박음(터파기·되메우기·잔토처리·버림콘크리트) · 목록 밖은 양식으로 갈음 · 목록 안이라도 양식이 그 줄을 품으면 양식 값 · 구조물도 장에도 남긴 줄을 사유와 함께 보임
936be972 실측: 고정형(봉화 제6호표) 가져오기 → 구조물터파기·되메우기·잔토·버림 타설 전과 같음(전엔 −6,037,712원) · 본체 차이는 미완으로 금액 밖이 된 돌쌓기 2줄 −4,062,480 뿐 · 되돌려 전부 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 16:38:48 +09:00
eomsangdon 33ff0c50f0 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 16:36:39 +09:00
eomsangdonandClaude Opus 5 3886f3bfc1 feat(b08): 고정형 항목도 일위대가 구성을 가짐 — 공종 코드는 비워 두고 사용자가 고르개로 고름(㉮) · 고르기 전엔 내역 줄이 서되 「미완 — 공종 코드 미정」 금액 밖 · 찾기는 코드 없는 줄 이름으로 후보만 띄움
936be972 실측: 봉화 제6호표 가져오기 → 내역 「기슭막이 H=2.0m 10m」 2줄이 「막힌 줄 9: 공종 코드 미정」으로 섬(전엔 줄이 사라짐) → 코드 3줄 고르고 6줄 수동 단가(검증용) → 일위대가 482,766원/m · 내역 4,827,660원 × 2줄 「수동 단가 6건 미확정」 · 되돌려 본체·인계·내역·원단위·장 전부 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 16:24:33 +09:00
eomsangdon 5c2ae377e0 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 16:20:52 +09:00
eomsangdonandClaude Opus 5 976e5fd992 feat(b09,b08): 9-19-1 성토면 기계 = 굴착기 0.6㎥ 형식 두 갈래(무한궤도 947원/㎡ · 타이어 1,014원/㎡) · 제안 무한궤도(영월 실무 「성토사면고르기 06M3 B/H」 · 브레인 ②) — 칸 곁 제안만, 스스로 안 고름 · 마스터 갈래 키 재생성(바뀐 공종 9-19-1 하나)
일위대가 나머지 460 제목 변화 0 · 9-19-1 못 붙은 줄(굴착기 0.6㎥) 걷힘

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 16:20:51 +09:00
eomsangdon 2745a41963 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 16:12:20 +09:00
eomsangdonandClaude Opus 5 91317295f5 feat(b08): 라이브러리 칸 [STmate 엑셀 읽기] → 호표 고르기 → [내 라이브러리에 넣기] — 읽은 호표 수·구성 줄 수를 보이고 넣기 전에 다시 물음(덮어씀·원문 시점 수량·단가 안 가져옴) · 넣기는 파일을 다시 보냄
배정 프로젝트 화면: 돌쌓기(찰) 장에서 봉화 엑셀 읽기 → 「호표 45개 · 구성 줄 209줄」 → 제6호표 기슭막이(깬잡석,찰쌓기) H=2.0m 구성 9줄 넣기 → 목록 「개인 · [고정형] …」 · [내 것 지우기]로 되돌림(목록 기본 한 줄)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 16:01:50 +09:00
eomsangdonandClaude Opus 5 38a5e785f2 feat(b08): STmate 엑셀 뽑기 창구 두 걸음 — [읽기]는 호표 수·구성 줄 수·못 읽은 사유만(안 씀) · [넣기]는 서버가 파일을 다시 읽어 고른 호표를 개인 단에 고정형으로(회사 없음 403 · 못 읽은 호표 404 · 모르는 종류 400) · main.py 에 창구 한 줄
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 15:59:11 +09:00
eomsangdonandClaude Opus 5 d6fd3c1796 feat(b08): STmate 출력 엑셀 「일위대가표」 읽개 + 고정형 항목 만들기 — 실무 6건 호표 170 전부 문제 0(코덱스 감사와 같음) · 봉화 45 · 기슭막이 H2.0 구성 9줄
머리 칸이 다르거나 수량이 수가 아니면 칸 주소를 짚은 사유로 그 호표를 통째로 뺌(추측 안 함) · 갈 곳은 구성 = unit_price · 별산자재 = material · % 가산 행 = reference + 항목 사유 · 계약단가·낙찰율 줄 안 뽑고 항목 사유 · 품셈 근거 줄은 formula_text 보존 · 원문 호표·자원 코드와 공사명은 출처로만(판정 Ⓑ~Ⓗ · ㉮㉯㉰)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 15:56:49 +09:00
eomsangdon 6f484eb6fa Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 15:55:45 +09:00
eomsangdonandClaude Opus 5 2e678ad511 fix(b09): 운전경비 표 규격 칸 괄호 딸림값을 규격 개수에 안 셈 — 공기압축기(5205) 여섯 등 63기종 운전경비가 섬(158→221 · 기존 158 값 변화 0) · 9-19-1 흙 갈래까지 막던 「일부만」(공기압축기 3.5) 풀림
일위대가 금액 바뀐 제목 4(9-5-1 · 9-19-1 연암·보통암ㆍ경암 · 9-19-3) · 나머지 456 변화 0 · 기계 층 미완성 6→4
배정 프로젝트: 면고르기 칸 비면 합계 그대로 · 칸 고르면 성토면 인력 점토 3,269원/㎡ · 절토면 호박돌 4,353원/㎡ 금액 섬(되돌림)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 15:55:44 +09:00
eomsangdonandClaude Opus 5 6c61f5d5ac feat(b08): 산출 조건 면고르기 칸 넷 — 절토면 토질 · 성토면 시공·토질 고르기(서버 선택지 그대로 · 제안값 없음) + 면적 덮어쓰기 둘(비우면 파종 면적) · 메인 ee9368ec
배정 프로젝트: 절토면 토질을 고르고 [저장] → 내역 3-8-2 사유 「입력이 필요합니다」 → 「단가가 일부만 — 공기압축기(이동식) 3.5」 · 「안 정함」으로 되돌려 저장(네 칸 빈 값)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 15:39:15 +09:00
eomsangdon 391301abf4 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 15:29:31 +09:00
eomsangdon 7b5f8bc5e2 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 15:25:04 +09:00
eomsangdonandClaude Opus 5 ee9368ec66 feat(b08,b09): 면고르기 줄 — 밑수 = 초류종자살포 면적(덮어쓰기 칸 · 파종 0 이면 0 + 사유) · 절토면은 사면 조각 토사/암으로 갈라 암은 시공법(9-19-2·3) · 절토면 토질 · 성토면 시공·토질 칸(제안값 없음 · 비면 입력 사유) · 성토면 기계는 규격 미정 사유(브레인 판정 Ⓐ~Ⓓ)
실무 대조: 오솔길 BOM 6벌 면적 셈법 ±0.11% · 거창 줄 없음 · 영월 성토면 × 50% · 원문 9-19-1 성토면·9-19-2·3 식재 조건부
배정 프로젝트: 인계 줄 +3(성토면 12,350㎡ · 절토면 토사 3,085.51 · 암 2,262.62) 외 변화 0 · 본체 합계 105,512,060 그대로 · 규격 글로 시작하는 갈래는 규격에 한 번만(도자 운반 「토사 토사」 → 「토사」 · 금액 불변)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 15:25:03 +09:00
eomsangdonandClaude Opus 5 b08b79bc6c feat(b08): 라이브러리 가져오기 목록에 항목 종류 배지 [양식형]·[고정형] — 명세 13장대로 식이 한 줄이라도 있나로만 가름(저장된 item_kind 표시는 안 믿음)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 15:16:55 +09:00
eomsangdonandClaude Opus 5 c7b9956bf3 feat(b06,b08): 관 기준벽도 벽 몸 ∩ 성토 폐회로 겹침을 줄 사유로 — 다단에만 뜨면 「다단만 문제」로 읽힘(㉡)
서버 Node 가 기준벽 역할별 넓이를 design.wall_fill_overlap 에 남기고 B08 이 다단 목록 통(base 표시 칸)으로 읽어 기준벽 줄 비고에 붙임 · 호출부(Router_Material) 안 늘림 · 936be972 빈 저장: 관 9 곳 유출 벽 258.12 1.417 · 720 1.403 · 804.18 1.166 · 982.64 0.807 · 620 0.136 · 440 0.046 · 533.98 0.004 · 85.05/900 0㎡ · 이 프로젝트 기준벽은 모두 미확정(금액 밖)이라 비고 안 뜸 · 벽 칸을 적으면 「1.42㎡ × 10m ≈ 14.2㎥」 · 금액 변화 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 15:02:43 +09:00
eomsangdonandClaude Opus 5 eb79091e00 feat(b06,b08): 다단 벽 몸이 성토 폐회로에도 든 겹침을 줄 사유로 드러냄 — 고치지 않음(2026-09-06 확정 「구조물 면적 안 뺌」 · 판정은 사용자)
서버 Node 가 벽 몸 ∩ 성토 폐회로 넓이를 재 design.extra_walls[].fill_overlap_m2 로 남기고 B08 다단 줄 비고에 「벽 몸 N㎡ × 연장 ≈ ㎥ 두 번 셈」 · 258.12 1단 1.335㎡ × 10m ≈ 13.3㎥ · 금액 변화 0 · 미확정 단은 안 붙임

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 14:47:38 +09:00
eomsangdon df547a90f8 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 14:39:58 +09:00
eomsangdonandClaude Opus 5 f4f9b77bdf chore(master): 9-19-1 갈래 키 8 — 표 읽기가 가른 절토면 6 · 성토면 인력 2 를 마스터에 실음(빌더 재생성 · 다른 공종 변화 0)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 14:37:47 +09:00
eomsangdonandClaude Opus 5 e9b8eacc90 test(b06,b08): 횡단도 벽 폭 ↔ 수량 벽 두께 대조 시험 — 지금 빨강(H2.0 메 · 윗폭 0.675/밑폭 1.375 ↔ 상부 0.75/하부 1.05) · 맞출 쪽 판정 전이라 xfail(strict)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 14:28:07 +09:00
eomsangdon ce8339f34a Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-14 14:19:10 +09:00
eomsangdon 52c7148927 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 14:19:09 +09:00
eomsangdonandClaude Opus 5 ae52a92753 feat(b09): 9-19-1 토사면 고르기 두 표를 갈래로 읽음 — 절토면 토질 6 · 성토면 인력 2(기계 굴착기 0.6㎥ 는 무한궤도·타이어 둘이라 규격 미정) · [주]① 규격은 범위 별칭 · 옆 칸이 규격을 적으면 별칭이 안 덮음 · 성토면 밀린 줄은 사람 판정표로만 · [주]②③ 는 비고(브레인 판정 Ⓐ~Ⓔ)
섞인 본표 B-FP-09-19-01(보통인부 한 줄 2,925원) 걷힘 · 일위대가 나머지 452 제목 금액 변화 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 14:19:08 +09:00
eomsangdon d8e6e52f75 auto: 2026-09-14 14:18 (ESD_LAPTOP) 2026-09-14 14:18:01 +09:00
eomsangdonandClaude Opus 5 8dfa68df32 fix(b06,b08): 높이 안 적은 다단 벽은 성토를 안 깎음 — 면적은 첫 미확정 단부터 아래를 없는 것으로 봄 · B08 도 그 아랫단을 「윗단(N단)이 미확정」 으로 같은 선에서 끊음(㉠)
258.12 실측 — 1단만 확정: 성토 감소 −60.36 → −52.50㎥(2단 몫 7.86㎥ 되살아남, +35,534원) · 1단 미확정: 성토·본공사비 다단 없을 때와 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 14:08:49 +09:00
eomsangdonandClaude Opus 5 d352774ce2 feat(b05): 원단위 표가 아직 안 읽는 칸에 「표에 안 쓰임」 — 골막이·바닥막이·큰돌쌓기·흙막이 23칸 · 값을 바꿔 돌려 보는 시험이 표시를 지킴(①)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 14:01:20 +09:00
eomsangdon 42d5566dc9 Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-14 13:57:58 +09:00
eomsangdonandClaude Opus 5 c4a83dbb09 fix(b09): 9-21 제근 「밑수 미확보」 막힘 걷음 — 마스터 목록(F0294)은 원문 사실이라 두고 단가 조립이 사용자 확정 빌린 밑수 공종만 제외(÷1,000 은 ChooseOne) · 갈래 선 내역 줄 금액 섬 · 일위대가 453 금액 변화 0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 13:56:51 +09:00
eomsangdonandClaude Opus 5 c59dbba482 fix(b05): 옹벽 높이 제안값 2.5 → 2.0 — 관측 원단위 자료가 반중력식 H=2.0 한 벌뿐(A4)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 13:48:24 +09:00
eomsangdonandClaude Opus 5 5f3c55f32b fix(b08): _collect_structures 가 횡단 설계를 받아 다단 벽 목록을 넘김 — 인자 하나 + 호출부 전달만(④ · 메인 파일 손질 따로 뗌)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 13:37:15 +09:00
eomsangdonandClaude Opus 5 8a17d8308b feat(b06,b08): 다단 추가 기슭막이 수량 — 서버 재계산이 선 다단 벽 목록(design.extra_walls)을 남기고 B08 이 줄을 세움 · 높이 안 적은 단은 미확정(④)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 13:37:15 +09:00
eomsangdon 6b7c093e7e Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 13:23:19 +09:00
eomsangdon e26ef204fc Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 13:17:22 +09:00
eomsangdonandClaude Opus 5 b80eabf4f1 fix(b09): 9-19-1 토사면 고르기 — 두 표(절토면·성토면)가 섞여 보통인부 한 줄만 선 값이라 「불완전 — 쓰지 말 것」 사유를 비고·본표에 먼저(표 모양 본작업 전 · 브레인)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 13:17:20 +09:00
eomsangdonandClaude Opus 5 bba23376f1 fix(axis): 9-19-3 비탈면 고르기(발파암) 소형브레이커 = 5210-0010(1.0㎥/min) — 값 출처 9-19-1 표·[주]① 이 규격을 정함(브레인 승인) · 범위 별칭이 코드를 적으면 그 항목으로 곧장 이음 · 어어호스는 카탈로그 없어 그대로
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 13:15:09 +09:00
eomsangdonandClaude Opus 5 0e609e69a6 feat(b06): 횡단도 벽 전면 기울기도 품셈 13-4-4 [주]⑪ 표준경사 표 — 관 유입·유출·독립 기슭막이·다단·C군 벽 · TS 짝(common_util_masonry_slope) 거울 시험 · 번들이 표 JSON 도 봄(B5)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 13:14:20 +09:00
eomsangdonandClaude Opus 5 626f518064 fix(b09): 9-13-14·15 육상 발파암 들어내기 — 원문 「(1~2m)와 동일」 자기 참조를 0~1m(9-13-13)로 읽음(브레인 승인 · 고른 값·버린 값 근거 줄에) · 일부만 10% 풀림
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 13:11:41 +09:00
eomsangdonandClaude Opus 5 8a31f87412 fix(axis): 표 읽기 ② — 원본이 [주] 문장을 절 제목으로 읽은 표 14장은 앞 절을 이어받음(12-2 표면 마무리 가짜 표 7장·갈래 #설치·#철거 → 12-17-1) · 9-21 제근 안내는 못 붙은 줄이 아니라 비고로(빌린 밑수 교차참조)
마스터 전후 대조: 표가 옮겨 붙은 공종 8(12-02·12-17-01·01-01-02·05-34·08-02-03·09-07-01·09-11-01·14-02) · 일위대가 453 제목 금액 변화 0 · 12-02 가짜 갈래 둘이 12-17-01 로만 옮김

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 13:08:01 +09:00
eomsangdon e8cce87413 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 12:57:33 +09:00
eomsangdonandClaude Opus 5 e85ea2fa2c fix(b09): 9-4-1 평균 갈래 치즐 사유에 9-12-3 치즐 평균 선례(0.018)를 함께 적음 — 사용자가 유추 여부를 고르게
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 12:56:02 +09:00
eomsangdon 76b17098e3 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 12:55:04 +09:00
eomsangdonandClaude Opus 5 6b083ce3c5 feat(b09): 치즐 소모량 — 자원 목록 AR-M 치즐(본) · 대형브레이커 줄 옆 본/hr ÷ Q × 배분으로 같은 D 에 붙음(수동 단가가 있을 때만) · 칸을 채우면 치즐 13공종 온전 · 9-4-1 평균 갈래는 원문에 치즐 평균이 없어 사유
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 12:53:32 +09:00
eomsangdonandClaude Opus 5 ad63dd8f99 feat(b05,b06,b08): 독립 기슭막이 치수 한 벌(revetment_sabang) — 높이 설계자 입력·없으면 미확정 · B05 칸 밑 근거와 B08 사유가 같은 파일(사방교본 쪽·줄 번호) · 등록부 높이 2.5 걷음(B4)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 12:49:08 +09:00
eomsangdon db5822f4f5 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-14 12:48:28 +09:00
eomsangdonandClaude Opus 5 946ac82b5b docs(b09): 축C 명세 — 다른 창 편집분 반영
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 12:48:18 +09:00
eomsangdonandClaude Opus 5 330421fe94 feat(b05,b08): 메쌓기 높이 두 기준 사유(교본 7-3:27 · 품셈 L7192 · 칸 경고만) · 성토/절토 칸 face_role — 비우면 자동 판정(B2·B3)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 12:42:49 +09:00
eomsangdon b0355d5ae1 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 12:38:19 +09:00
eomsangdonandClaude Opus 5 7e036ddd51 feat(b08): 안 고른 돌쌓기 뒷길이를 품셈 13-4-4 [주]⑩ 뒷길이 표준 하한으로 — 범위 안 첫 규격(메 ~3m 36→45) · 전개·양식·구조물도 한 벌 · 사유에 원문 줄 번호(B1)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 12:28:36 +09:00
eomsangdon 2b464138ae Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 12:24:17 +09:00
eomsangdonandClaude Opus 5 560df4ac83 fix(b08): 관측 원단위 줄도 갈 곳 기본값 금지 — destination 없는 줄은 막고 사유(종전 or material 로 조용히 자재행) · 표 전 줄 갈 곳 시험
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 12:22:35 +09:00
eomsangdon f9ccc8f6fb Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 12:12:53 +09:00
eomsangdon 95ce24d31c auto: 2026-09-14 12:12 (ESD_LAPTOP) 2026-09-14 12:12:30 +09:00
eomsangdon 2604e9e914 Merge remote-tracking branch 'origin/main_desktop_1' into main_laptop_1 2026-09-14 12:10:53 +09:00
eomsangdonandClaude Opus 5 acb377f5db fix(b08): 철근 이름·규격 가르기(이형철근 + D13·D16) — 대응표 조각은 이름+규격 키·이름 두 색인으로 집고 경계 검사도 두 키로 · 관측 원단위 spec 칸을 넘김 · 전후 물량 대조 시험(가드 없이 돌리면 빨강 확인)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 12:09:18 +09:00
eomsangdon beb30999e3 auto: 2026-09-14 11:57 (EOMSANGDON-HOME) 2026-09-14 11:57:37 +09:00
eomsangdonandClaude Opus 5 298133dce4 knowledge(축C 명세): 검산 계약에 「기준이 변경을 잴 수 있는지 먼저 볼 것」 보강
- 골든 금액 시험이 원본 수량을 bill_line 에 바로 넣어 새 길을 안 거침 — 초록이 증거가 아니던 자리
- 원본 321줄 자리 규칙 대조를 따로 만들어 철근 Ton 소수 3자리 4줄을 뽑아냄
- 재지 못한 것을 잰 척하지 않을 것

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-14 11:57:31 +09:00
eomsangdon ac801cedfe Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 11:57:09 +09:00
eomsangdonandClaude Opus 5 d6820db7b0 fix(b09): 내역 수량을 1-2-2 자리로 반올림해 확정한 뒤 금액(버림) — 표에 없는 종목 기본 2자리 · 철근 ton 소수 3자리(kg 정수 환산) · 단위 대소문자 흡수 · STmate 원본 수량 321줄 대조 시험
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 11:55:23 +09:00
eomsangdonandClaude Opus 5 ecf3b65b42 feat(b06): BOX·세월교·물넘이 기본값으로 그린 칸을 횡단 카드 머리에 「기본값(미확정)」 · 월류 높이 없어 파임 안 그리는 까닭(판정 ②③)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 11:50:31 +09:00
eomsangdonandClaude Opus 5 290eccbb92 fix(b05,b08): C군 벽 높이 없어도 놓임 — 높이가 밑수인 벽은 줄만 서고 미확정(판정 ①)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 11:44:01 +09:00
eomsangdonandClaude Opus 5 bd69aa4788 fix(b08): 자재총괄 화면·인계를 한 벌로 — material_table_for 가 규준틀 재료까지 얹고 두 라우터가 같이 부름(화면 6줄·인계 9줄 갈림 닫음)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 11:35:02 +09:00
eomsangdon 37791c5bfb Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-14 11:22:31 +09:00
eomsangdonandClaude Opus 5 a0e144aed5 fix(b08): 할증률 「이내」 칸 — 안 고른 칸은 비우고 회색 제안값(지금 붙는 표값)만 · 기본값을 값처럼 안 채움
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 11:22:26 +09:00
eomsangdonandClaude Opus 5 646081757c fix(b08): 산출 조건 타입에 material_surcharge 칸 — afea225a 뒤 typecheck 빨강 닫음
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 11:09:51 +09:00
eomsangdon 71831432d1 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-14 11:08:01 +09:00
eomsangdonandClaude Opus 5 c12a2bf826 fix(b08): 갈 곳 기본값 금지 — 표에 없는 성분 이름은 막고 사유(종전 quantity 로 떨어져 조용히 빠짐) · 드러난 넷(이형철근 D13·면목·떼 자재 · 유로폼 일위대가) 표에 올림
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 11:07:57 +09:00
eomsangdonandClaude Opus 5 afea225ae5 feat(b08): 자재총괄 할증률 「이내」 칸 초안 연결 — 불러오기·저장 본문·표 옵션(랩탑_메인 87083c33)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 10:54:37 +09:00
eomsangdonandClaude Opus 5 87083c3341 feat(b08): 자재총괄 할증률 「이내」 칸 — 표값 상한 안에서만 고름 · 비우면 표값(초안 연결은 Page 한 줄 대기)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 10:52:52 +09:00
eomsangdonandClaude Opus 5 e6e6f9b7d5 feat(b08,b09): 사급 자재총괄 줄이 수동 단가로 내역 본체 「자재(사급)」 줄이 됨 · 기본 사급 · 이중계상 가드(코드 우선) · 규준틀 재료 이름/규격 가름(할증 각재 5·판재 10) · 할증 보류·이름 없음 사유 · 할증 「이내」 칸 서버
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 10:41:19 +09:00
eomsangdonandClaude Opus 5 57a949c624 feat(b09): 자재 단가 탭 등록 — 자재단가대비표 옆(자재 수동 단가 · 랩탑_메인 273132f8)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 10:12:54 +09:00
eomsangdon aefb476577 Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-14 10:04:09 +09:00
eomsangdon fdb7e27bed Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 10:04:08 +09:00
eomsangdon 273132f8f6 auto: 2026-09-14 10:03 (ESD_LAPTOP) 2026-09-14 10:03:21 +09:00
eomsangdonandClaude Opus 5 aeb18266bd fix(b09): 총액 1,000원 미만 버림을 기본으로 켬 · 절사 자동보정 진동 고침
근거 — 산림청고시 제2025-82호 「금액의 단위표준」 「설계서의 총액 · 원 · 1,000 · 미만버림」.
실무 6건 원가계산서가 여섯 다 000 으로 끝나는 것이 증거.

· 기본 켬 — cut_basis="grand_total" · cut_unit_krw=1000
· 조용히 안 깎음(2026-09-08 합의의 정신) — 이윤 조정액 줄과 결과 메모에 고시 번호를 달고
  기준 입력판 11 에서 끌 수 있음을 함께 적음 · 칸 밑 안내도 고쳐 씀
· 끄는 값을 none 으로 바꿈 — 빈 값은 저장이 안 돼 기본으로 되돌아가 끌 수가 없었음
· 진동 고침 — 걸음마다 ÷1.1(종전엔 첫 걸음만). 이윤 1원이 총공사비 1.1원이라
  잔차를 그대로 빼면 경계를 지나침(울진 신설 654→999→900→910→909…)
· 안 앉으면 「끝자리 N원이 남음」을 메모로 보임
· 실무 6건 전수 000 판정을 새 벌로 지킴

곁 — tmp/tests/test_b09_cost_fixtures.py 를 resources/tester/ 로 옮김(픽스처 포함).
     tmp 쪽 사본은 안 지움 · 겹침은 파일 머리에 적음.
     기본이 바뀌어 깨진 남의 시험 6건은 「안 자른 값」 자리에 cut_basis="none" 을 넣어 고침.

전체 시험 1782 통과 · 28 건너뜀.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 09:40:24 +09:00
eomsangdonandClaude Opus 5 996300752d feat(b08): 사토 운반에도 「덤프 적재」 짝 줄 · 사토 줄이 갈래를 실어 보냄 — 종전 갈래 미지정으로 덤프 잎을 못 고르던 것
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 09:39:42 +09:00
eomsangdonandClaude Opus 5 d5c5fe7b40 fix(b06): 구조물 패널이 스펙 기본값을 관 옵션에 채우지 않음 — 조작·저장분만(폼 ④)
- 페이지를 열기만 해도 관종·관경·구조·벽 길이·전/후·집수정 길이 기본값이 옵션에 박혀 임시 저장·[저장]에 확정으로 굳던 자리
- 벽 형태·높이는 조정창에서 조작했을 때만 싣음(앞 조각 c4eccee5 auto 커밋에 먼저 쓸려 올라감)
- 세월교·BOX: 저장돼 있던 칸이거나 조정창 조작으로 등록부 기본값과 달라진 칸만 스펙 값을 싣음
- ORCA 936be972 B06: 관 폼 관종 「안 정함」 · 저장된 관경 1000 만 · 벽 칸 빔+제안 · 임시 저장에 기본값 안 생김

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 09:34:31 +09:00
eomsangdon c4eccee51f auto: 2026-09-14 09:30 (ESD_LAPTOP) 2026-09-14 09:30:59 +09:00
eomsangdonandClaude Opus 5 0a7f4a5008 test(b05): 폼 소스 시험을 새 규칙에 맞춤 — 고르기 칸은 늘 빈 보기 · 기본값은 제안으로만(폼 ①②)
- 옛 「기본값 있는 칸은 첫 보기」(2026-08-17)를 확인하던 줄을 브레인 판정(2026-09-14)대로 뒤집음
- 칸 만들기가 `_Structures_Fields.optionControl` 로 옮겨간 자리를 봄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 09:30:59 +09:00
eomsangdonandClaude Opus 5 fc2ecc0f39 fix(b05): 계곡 통과 시설 폼이 기본값을 값으로 안 보냄 — 관종·관경·구조·집수정 길이·날개벽·BOX·월류·설치 측(폼 ③)
- 관종 파형강관·관경 1000 · 유입/유출 구조 기슭막이 · 집수정 길이 2 · 날개벽 있음·1·2·45 · BOX 2.0×2.0 ·
  월류 폭 5/10 · 월류 높이 필요 수심 · 독립 기슭막이 양쪽 — 전부 「안 정함 (제안 …)」·회색 글씨로만
- [제안값 넣기] 누른 때만 빈 칸에 제안값 · 적은 월류 높이가 필요 수심보다 낮으면 여전히 되돌림
- BOX암거 새로 놓을 때 기본값 싣던 자리도 걷음 · 비운 칸은 횡단도가 등록부 기본값으로 그림(저장만 안 함)
- 700줄 한계로 물넘이·세월교 칸 묶음을 `_Drainage_Facility_Ford.ts` 로 뗌
- ORCA 936be972: 관종 「안 정함」 · 저장된 관경 1000 은 그대로 · 날개벽 고친 요청에 관경·날개벽만 실림 · 캐시 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 09:28:06 +09:00
eomsangdon 0244749d29 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 09:21:31 +09:00
eomsangdonandClaude Opus 5 2744f1bcbb fix(b05,b08): 구조물 목록 폼이 등록부 기본값을 값으로 안 채움 — 제안으로만(폼 ②)
- 칸에는 저장된 값만 · 기본값은 회색 글씨(숫자)·빈 보기 이름(고르기)으로 제안 · [제안값 넣기] 누른 때만 값
- 새 구조물 추가도 기본값을 안 실음(defaultOptions 로 채우던 자리) · 잠긴 칸(enabled:false)만 프로그램 값 유지
- C군(범위 계산 타입)은 길이처럼 높이도 비면 안 놓음 — 비면 횡단도 벽이 조용히 안 서던 길
- B08: 돌 조달을 안 정하면 「채집으로 셈」 사유를 보임(조용히 채집 되지 않게)
- ORCA 936be972: 돌쌓기(메) 고르면 높이·길이·전·설치측 빔 + 제안 · 단추로 채워짐 확인(저장 안 함)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 09:21:27 +09:00
eomsangdon 48e3eeee08 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-14 09:17:35 +09:00
eomsangdon 7229c0ab4e Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 09:17:34 +09:00
eomsangdon 6a427e78f9 auto: 2026-09-14 09:14 (ESD_LAPTOP) 2026-09-14 09:14:57 +09:00
eomsangdonandClaude Opus 5 eb14ec1c69 refactor(b09): 갈래를 출처로 가름 — 식이 낸 갈래(formula_variants) · 짝 시험은 표에서 온 갈래만
- 제외 목록 대신 갈래마다 어디서 왔나를 한 칸: 덤프 운반·적재 10-12 제목 → 그 식(브레인 판정)
- 짝 시험: 표에서 온 갈래는 마스터 갈래 키에 있어야 함 · 식이 낸 갈래는 출처가 적혀 있고 마스터엔 없어야 함
- 마스터에는 「식 공종 갈래」 칸을 안 둠(표에서 뽑은 것만 담는 자리)
- 전체 1771 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 09:14:56 +09:00
eomsangdonandClaude Opus 5 7eecfacca3 fix(b05): 기본값 없는 고르기 칸은 「안 정함」이 실제 상태 — 첫 선택지를 미리 고르지 않음(폼 ①)
- 뿌리: 사용자가 고른 적 없는 첫 선택지가 저장돼 확정으로 굳음(옛 2026-08-17 「빈 보기 두지 않음」 걷음)
- 구조물 목록 일반 폼: 기본값 없는 고르기 칸은 늘 빈 보기(필수 「— 선택 —」 · 아니면 「— 안 정함 —」)
- 시설 폼 optionalSelect: 맨 앞 빈 보기(날개벽 「안 놓음」 등) — 기본값이 있는 칸은 다음 차례(②③)
- ORCA 936be972 B05 관 폼: 날개벽 「안 놓음」 빈 값으로 섬 확인

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 09:14:50 +09:00
eomsangdon 4015c27c90 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 09:11:15 +09:00
eomsangdonandClaude Opus 5 8eb1189b4f fix(b05,b06,b08): 기슭막이 벽 높이를 관경 기준 한 값으로 · 폼은 기본값을 값으로 안 보냄
- 한 벽을 두고 값이 셋(등록부·표 H2.5 · 구조물도 H2.5 · 횡단도 관경 기준)이던 결함 — 근거 있는 관경 기준으로 맞춤
- 관 벽 높이 안 적으면 관경 + 여유 0.5 를 0.1m 로 올리고 근입 0.5 더함(Ø800 1.8 · Ø1000 2.0 · Ø1500 2.5)
- 파이썬(B06 엔진)·TS(세트 스펙·횡단 상수) 거울 시험 · 등록부 기본 2.5 걷고 empty_means
- 최소값이라 미확정·금액 밖은 그대로
- B05 벽 칸(관 유입·유출 · 독립 기슭막이)은 비워 두고 회색 제안값 · [제안값 넣기] 누른 때만 값 — 저장 한 번에 미확정이 확정으로 바뀌던 길을 막음
- 전체 시험: 받은 덤프 적재 커밋 몫 2개만 빨강(보고함)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 09:10:47 +09:00
eomsangdon f07ff0033f Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/main_laptop_1' into sub_desktop_1 2026-09-14 09:02:25 +09:00
eomsangdonandClaude Opus 5 d5bdd2ee17 docs(b09): 축C 명세에 품셈 판 근거와 금액 단위표준 절 보탬 — 산림청고시 2025-82호
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 09:02:11 +09:00
eomsangdonandClaude Opus 5 9cd2920afc knowledge(축C 명세): 총액 1,000원 미만버림 실측 결과 반영
- 고시 다섯 줄 중 총액 줄만 우리가 안 따르고 있었음(기본값 꺼짐)
- 실무 6건 끝 세 자리 000 ↔ 우리 373·695·578·654·341·639
- 곁 버그 — 절사 자동보정이 둘째 걸음부터 ÷1.1 누락으로 진동
- 집계표 ROUND 는 설계서 소계와 다른 자리로 봄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-14 09:01:37 +09:00
eomsangdon 60aac3892d Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 08:57:29 +09:00
eomsangdonandClaude Opus 5 a440b4f919 feat(b08): 덤프 운반마다 「덤프 적재」 짝 줄 — 10-12 「1. 적재」 · 거리 무관 · 수량은 운반량 그대로
- _haul_rows 한 곳: dump_truck 내역 줄 뒤에 haul_equipment dump_loading 짝 줄(갈래·수량 같음)
- 흙깎기 9-3-2(㎝ 20초·135°)에 싣기가 안 들어 있어 운반과 한 벌로 냄(브레인 판정)
- B09 운반토량 검산(운반 ≤ 절취)에서 적재 줄은 뺌 — 같은 흙을 두 번 세지 않게
- 시험 기대값: 운반표 줄 4 → 6(적재 둘) · 내역 줄 3 → 5 · 전체 1763 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 08:57:24 +09:00
eomsangdonandClaude Opus 5 a2b3ae698f fix(test): 덤프 적재 뒤 낡은 시험 둘 — 가드 뜻은 지키고 새 모양에 맞춤
- v16 「덤프 운반은 아직 안 선다」가 지키던 것 = 운반거리(설계 입력) 없이 운반이 조용히 금액을 갖지 않기
  → 「거리가 와야 선다」로: 거리 없는 기본 조립엔 운반(#L…m) 없음 · 거리 무관 적재(#적재)만 섬
- 갈래 제목 ⊂ 마스터 갈래 키: 10-12 는 표가 아니라 본문 식이라 마스터 표에 갈래가 없음
  (#L…m 는 프로젝트 거리마다 생겨 마스터에 둘 수도 없음) → 식이 내는 FP-10-12 갈래만 까닭 적고 제외
- 58afe8f2 를 일부 시험만 돌리고 올려 난 빨강 · 전체 1763 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 08:57:24 +09:00
eomsangdonandClaude Opus 5 a1b1182b9b fix(b05): 계곡 통과 시설 [저장]이 폼이 모르는 칸을 지우던 것 — 폼 칸만 갈아 끼움
- 저장이 옵션을 통째로 갈아 끼워 집계표·구조물도로 적은 칸(관 기슭막이 기초 등)이 조용히 지워졌음
- 같은 시설 종류면 폼이 적는 칸만 갈고 나머지는 이어 붙임 · 종류를 바꿀 때만 통째로
- 폼이 아는 칸을 폼이 비우면 지움(사용자가 폼에서 한 일)
- 폼 칸 목록 거울 시험 — 폼에 칸을 늘리고 목록에 안 넣으면 시험이 잡음
- ORCA 936be972: 집계표로 기초유 적고 B05 폼 고침 → 재계산 요청에 기초유 남음 확인 · 값·캐시 되돌림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 08:49:38 +09:00
eomsangdon 128106e76d Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 08:41:53 +09:00
eomsangdonandClaude Opus 5 0eebb50c03 feat(b05,b08): 등록부 칸 채움 A2·A3 — 개거 연장 · 물넘이포장 두께·노폭 방향 길이
- 표가 읽는데 등록부에 없어 영영 안 서던 칸 — 옛 저장본은 안 깨지고 비면 사유(어디서 적는지)
- 개거(점 배치) length_m · 물넘이포장 thickness_cm·length_m(detail · 구조물 집계표에서도 고침)
- B05 시설 칸에 물넘이 두께·길이 입력 — 시설 저장이 칸을 통째로 갈아 끼워 집계표로 적은 값이 지워지던 길을 막음
- 700줄 한계로 유입구 형식 목록을 _Fields 로 옮김(부르는 쪽 그대로)
- 사유 문구: 「open_ditch 연장」 키 노출 · 「연장·면적이 0」 → 무엇을 적으면 서는지

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 08:40:49 +09:00
eomsangdonandClaude Opus 5 58afe8f2d2 feat(b09): 덤프 적재 10-12 「1. 적재」 — 굴착기 0.7㎥ Q1 호표(#적재) · E0 토사 0.60(본문 0.75 버림을 사유에)
- Q1 = 3600×0.7×K×f×E0/22초 · 토사 47.63 · 암절취 16.32 · 발파암 13.67 ㎥/hr
- E0 는 운반 식 Es 와 다른 기호 — 토사 0.60(표 「임도」·10-12-3 [주]③) 채택 · 본문 0.75 버림(브레인 판정)
- 거리 무관이라 늘 세움 · 내역은 인계 수단 표지 dump_loading 줄을 잎 #적재 로(B08 짝 줄은 다음 커밋)
- 시험 1건 보탬

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 08:37:58 +09:00
eomsangdon 999aeac755 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 08:33:32 +09:00
eomsangdonandClaude Opus 5 139e505843 feat(b09): 덤프 운반 10-12 — 운반거리마다 호표(X 덤프트럭 15ton → D → B) · 원문 어긋남은 고른 값·버린 값을 사유에
- 원문 본문 식(채워 넣는 서식)을 데이터로: Qt = T/γt×L · n = Qt/(0.7×K) · ㎝t = t1+t2+t3+t4+t5 · Q = 60×Qt×f×E/㎝t
- 브레인 판정: n 의 Qt 계산값(원문 표기 10 버림) · 발파암 E 0.9(원문 누락) · Es 운반 줄 값 · 거리별 갈래
- 거리는 B08 인계(유토곡선·사토장)에서 — 내역이 조립에 넘기고, 호표 한 장은 코드 #L…m 에서 되읽음
- 거리 없는 줄은 0 원 아니라 「운반거리 미입력」 · 갈래는 범위 별칭 리핑암 → 암절취
- 배정 프로젝트 164.23m: 토사 3,249원/㎥ · 암절취 8,882원/㎥ · 같은 인계 대조로 바뀐 줄은 이 둘뿐(+1,437,981원)
- 시험 5건 · 전체 1761 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 08:30:20 +09:00
eomsangdon e3dbef9700 Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-14 08:23:22 +09:00
eomsangdon 6eb651d054 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 08:23:21 +09:00
eomsangdonandClaude Opus 5 81286400bd fix(b08,b09): 기본값으로 선 구조물은 줄만 서고 금액 밖 — 「미확정 N건 — 금액에 안 들어감」
- 브레인 판정: 값 없음을 감추면 조용히 빠지거나 조용히 부풂 — 없으면 없다고 보이기
- 관 지점 벽 치수를 등록부 기본값으로 채운 줄 = 미확정: 원단위 합·자재·터파기·되메우기·기초잡석·타설·잔토·채집석에서 뺌
- 인계 막힘 갈래 넷째 값 unconfirmed(계약 칸은 안 늘림) · B09 는 내역 제자리에 빈 금액 + 빨간 테두리 · 머리 뱃지
- 구조물도 그림에 표와 같은 기본값 사유 줄 · 「횡단도와 같은 값」 문구는 틀려 고침(B06 관 벽 높이는 관경 기준)
- 936be972 내역 184,291,506 → 124,424,547 · 미확정 18건

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 08:22:14 +09:00
eomsangdonandClaude Opus 5 5bbb0aa53b fix(b08,b09): 한 줄 「암」 막힘 까닭 바로잡음 — 「공종코드 없음」이 아니라 암 갈래 구성비 입력 필요
- B08: 갈래로 안 나뉜 암 총량은 시공법만 골라서는 안 풀림 → 사유 「암 갈래 구성비(%)가 아직 없어…」 · 시공법 안내 목록에서 뺌
- B09 내역: 공종을 못 고른 줄에 B08 막힘 까닭이 있으면 그 문구 그대로(입력 필요 ↔ 매핑 구멍 가름)
- 배정 프로젝트 흙깎기 암 3,104.57㎥ · 측구터파기 암 160.48㎥ 가 이 자리 · 시험 1건

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 08:10:30 +09:00
eomsangdon 7b2affe119 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 08:07:08 +09:00
eomsangdon fd324ce531 auto: 2026-09-14 08:03 (ESD_LAPTOP) 2026-09-14 08:03:13 +09:00
eomsangdonandClaude Opus 5 f3630ab1e7 feat(b09): 규격이 열로 선 표(관부설 12-11) — 규격 칸·원문 비고를 읽어 줄은 서고 못 넣는 줄은 까닭
- 원문 비고 「별산」·「별도계산」·「설계수량」(〃·병합 칸 포함)·「필요시적용」은 안 넣는 줄로 까닭을 남김
- 규격 칸(1:2)과 관경 열(∅800mm)을 조인 키로 — 접합몰탈·고무링이 자재 줄로 섬(단가 층은 아직 없음)
- 크레인은 기종이 여럿이라 고르지 않음 — 「규격 미정 · 원문 규격 10ton/5ton」(브레인 판정 대기)
- 옆 칸 규격 「40.64㎝」 = 카탈로그 절단기 40.64(기계 운전 자료가 없어 층은 못 섬 — 사유로 드러남)
- 카탈로그 밖 자원 목록에 고무링 ∅800/1000/1200mm · 지수활제 보탬(원문 F0346 · 단가 없음)
- 범위 81공종 상태 전후 같음(못 붙은 줄의 까닭만 바뀜) · 시험 4건 · 전체 1749 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 08:03:12 +09:00
eomsangdon bd571f0454 Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/main_laptop_1' into sub_laptop_1 2026-09-14 07:58:31 +09:00
eomsangdon 27192c739a Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 07:58:29 +09:00
eomsangdonandClaude Opus 5 b97cb4e2e6 feat(b08): 계곡 통과 시설도 원단위 전개로 — 관 유입·유출부 기슭막이·집수정·독립 기슭막이·물넘이 (A1)
- 전개가 structures.json 만 읽던 구멍 — pipe_points.json 도 읽음(관 자체는 관 줄이 셈)
- 관 부설(품셈 12-11 m당)에 기슭막이 몫 없음 → 기슭막이는 전개 한 곳에서만 · 사유에 적음
- 안 적힌 벽 칸은 등록부 기본값(횡단도 그림과 같은 값) + 「기본값으로 섰음」 사유
- 구조물 목록에 남은 관 지점 종류 옛 저장분은 안 셈(두 번 방지)
- 기슭막이 공종 = 형태로 돌쌓기 찰·메 코드 · 독립 기슭막이 한쪽 설치에 두 칸이 다르면 사유만
- 산출식 없는 세월교가 「터파기 줄 없음」 거짓 사유를 안 내게 · 구조물도 제원 저장이 관 지점 시설엔 안 먹힘을 알림

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 07:52:55 +09:00
eomsangdonandClaude Opus 5 808cf0f289 fix(b09): 기계 카탈로그 이름 되살림 — 표 머리글 붙은 5건 · 빈 이름 29건(원천 쪽 넘김 파싱 병)
- 쪽 끝 기종 이름에 다음 쪽 머리글·다음 분류 이름이 붙고, 다음 분류 첫 기종들은 이름이 비던 병
- 이름·규격은 건설공사 표준품셈 제8장 기종 목록 줄에서 읽음 · 취득가·손료계수는 원천 그대로
- 대형 브레이커 되살림 표 옆에 같은 약속으로 둠(원천이 실으면 지움)
- 자원 축 781/386 · 범위 81공종 상태 전후 같음 · 시험 4건

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 07:49:02 +09:00
eomsangdon b84ee14bea auto: 2026-09-14 07:48 (EOMSANGDON-HOME) 2026-09-14 07:48:39 +09:00
eomsangdonandClaude Opus 5 7be245db2b knowledge(축C 명세): 품셈 판 규칙·반올림 고시 근거 반영
- 2장 — FP- 는 산림사업 표준품셈 한 판, 건설품셈은 기계 층만. 고시 2025-82호 총칙 7 조문 근거
- 7장 — 금액의 단위표준 표 다섯 줄과 실측 대조. 넷은 맞고 「총액 1,000원 미만버림」만 미확인
- 7장 — 수량의 단위표준 [주] 셋. 「규정 없는 자리 소수 2자리」는 이 표에도 없는 자리에만
- 막히면 산림품셈을 먼저 볼 것 — 덤프 운반이 건설 8-2-8 만 보다 막혔던 자리

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-14 07:48:34 +09:00
eomsangdon e37a425b2e Merge remote-tracking branch 'origin/CODEX' into sub_desktop_1 2026-09-14 07:40:49 +09:00
eomsangdon 1fbbd93a18 docs(stmate): remove unsupported stage guesses 2026-09-14 07:40:41 +09:00
eomsangdon 95c375cfcb docs(stmate): resolve cost analysis gaps 2026-09-14 07:38:03 +09:00
eomsangdonandClaude Opus 5 81b51de517 feat(b08): 층따기 [제안값 넣기] 단추 — 누른 때만 KDS 표준치수 토사 0.5 m
- 자동으로 안 채움: 임도기술교본 6-4 「설계도서에 명시되어 있는 높이와 폭」(브레인 판정)
- 칸·근거 줄·단추 묶음을 B08_Quantity_UI_Side_BenchCut.ts 로 뺌(페이지 700줄 넘음)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 07:36:49 +09:00
eomsangdonandClaude Opus 5 1e9ff999a4 feat(b09): 준공 탭 등록 — 기성 뒤 맨 끝(설계 → 계약 → 실행 → 기성 → 준공 · 랩탑_메인 a7a1b246)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 07:10:29 +09:00
eomsangdon ee3c60f76c Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_1 2026-09-14 07:10:06 +09:00
eomsangdon c4ecf3bd2b Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 07:10:05 +09:00
eomsangdonandClaude Opus 5 7b6fe3873b feat(b08): 구조물도 그림 2조각 — 집수정(□형 Ø800) · 물넘이포장 · 날개벽·돌집수정은 까닭
- 집수정 □형 Ø800 — 관측 줄에 원문 치수(소광리 「집수정구조도(800)」 설계조건 칸·산출식)를 싣고 그 치수로 표 수량이 원문 식대로 다시 나오는지 시험
  원문 값으로: 콘크리트 2.84 → 2.83752 · 합판거푸집 21.28 → 21.2843 · 철근 D13 4.78 → 4.776 · 면목 12.67 → 12.6728(터파기·되메우기·잔토 그대로)
  그림: 긴 벽 정면(바닥기초·관·방수로·터파기) + 평면 · 관·방수로 자리는 원문 입체도 모식이라 적음
- 물넘이포장 — 슬래브 T(규격) · 와이어메쉬 2/3T(소광리 「포장」 그림) · 터파기 · 새 사유 「원문 둘이 다름: 소광리 포장 와이어매쉬 1.0·비닐 2㎡ ↔ 이 표(울진 1공구) 1.16·비닐 없음」을 표·그림이 같이 씀
- 날개벽 5종 — 원문 탭에 구조도 그림이 없고 날개 모양이 손으로 적은 수뿐이라 까닭 · 돌집수정 ㄷ·ㄴ형 — 집계표 관측값이라 치수 원문 없음 까닭
- 사유 문구(브레인 판정): 개거 150×200 「원문 둘이 다름(산출식 0.3×0.1 ↔ 그림 홈 150×200 + 밑 보 400×200)」 · 바닥막이 「옹벽은 버림·잡석까지 팜 — 바닥막이는 정본이 돌 두께만이라 다름」

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 07:09:53 +09:00
eomsangdonandClaude Opus 5 deac820044 test(b09): 골든셋을 원가계산서까지 넓힘 — 실무 6건 제비율 54자리·사슬 33자리 원 단위 재현
요율을 원본 「공사원가계산서」 비고에서 뽑아 그 원본 전용 판을 지어 엔진에 넣음 —
「요율 데이터가 달라서 틀림」을 없애고 남는 차이를 밑수·절사·사슬로 몰아 둠.

· 제비율 줄마다 54자리 전수 일치(안전관리비 A·B 와 작은 쪽 채택 포함)
· 사슬은 비고가 다 보이는 셋(봉화·영월·울진 공통) 순공사원가~총공사비 33자리 일치
· 이윤 — 자동절사가 맞춘 원본 둘(봉화 339 · 영월 632) · 설계자 명시 조정 하나(울진 905,980)
· 영월 도급공사비 차 762,000 = 원본에만 있는 국가지점번호판검증수수료 줄
· 고칠 자리 하나(배정 대기) — 안전관리비 B 절사 자리가 영월에서 1원 갈림(미채택 줄)
· 짝 파일이 700줄에 닿아 새 파일로 가름(원본 읽기는 공유)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 07:04:09 +09:00
eomsangdon fd344a5311 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 07:01:50 +09:00
eomsangdonandClaude Opus 5 a7a1b246b6 feat(b09): 준공 단계 — 계약금액 | 준공금액(기성 마지막 회차 누계를 옮기기만)
- 준공 별도 계산 규칙 미확인(35번 §3) — 규칙을 짓지 않고 기성 누계를 옮김 · 기성 한 장 불변
- 기성 회차가 없으면 준공금액 비움(0 원으로 안 채움)
- 기성 계산 조각(progress_for)을 떼어 준공이 같은 길로 받음
- 기성 간접재료비 확인 대기 닫음 — 예정가격작성기준 제17조·제39조② 근거(브레인 판정)
- 준공 탭 파일 · 사전 키(등록은 서브) · 시험 2건 · 전체 1730 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 07:01:46 +09:00
eomsangdonandClaude Opus 5 7d3b062c3e fix(b08): 층따기 칸 밑 — 「제안값(확정 아님)」 경고를 KDS 44 30 00 도로토공 2.3.4 (4) ② 근거 표시로
- 원문 표 그대로: 최소 높이 토사 500 mm · 암반 400 mm · 폭 1 m 이상(기계 작업 3 m 이상)
- 값·칸·자동 채움은 그대로 — 말만 고침(2026-09-14 브레인 정정)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 07:01:46 +09:00
eomsangdon a98689c966 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 06:55:25 +09:00
eomsangdon a88f9a625b auto: 2026-09-14 06:53 (ESD_LAPTOP) 2026-09-14 06:53:32 +09:00
eomsangdonandClaude Opus 5 951e39a923 feat(b08): 구조물도 그림 — 기슭막이 · 골막이 · 떼흙막이 · 바닥막이 · 개거 까닭
- 기슭막이(돌쌓기형) — 돌쌓기 그림 그대로 · 기울기 판정 대상에 넣고 찰/메는 형태에서(표와 한 벌)
- 골막이 — 정면 사다리꼴 · 방수로 관 · 바닥파기 띠 + 옆 단면 · 치수는 표와 같이 쓰는 erosion_check_section 한 벌로 뽑음(값 불변)
- 떼흙막이 — 정본 평균 붙박이 치수(dims)로 · 그 치수로 표 두 줄(떼 1.39 · 바닥파기 0.17)이 다시 나오는지 시험
- 바닥막이 — 돌 켜 · 버림 · 기초잡석(산출 조건) · 터파기 · 표 사유에 새 한 줄 「터파기는 돌 두께만 — 버림·기초잡석은 판 깊이에 안 들어감」을 그림도 같이 씀
- 표가 안 선 장은 표 사유를 그대로 까닭으로 · 개거 둘은 원문끼리 치수가 달라서/단면 그림이 없어서 까닭
- 화면 확인: 검증 프로젝트 936be972 에 넷을 잠깐 놓았다 되돌림(구조물 5개 원본과 같음 · 단계 상태 그대로 · 내역 124,424,547 그대로)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 06:53:31 +09:00
eomsangdon cdd3a29452 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 06:42:20 +09:00
eomsangdonandClaude Opus 5 efe55e9d34 feat(b09): 기성 2벌 — 계약잡비율 직접입력(사유·↺) · 단일율 곱 차이 표시 · 공급가액/총공사비 절사 9택 · 사정 칸
- 계약잡비율: 기본 역산값(도급액 ÷ 계약 직접공사비) · 계약서 값 직접입력이 이김(사유 필수)
- 줄별 절사 누적으로 단일율 곱과 벌어진 금회·누계 차이를 비고에 적음
- 공급가액 절사(총공사비에서 조정 + 10원~1억) · 총공사비 절사(이윤금액 직접입력 + 10원~1억)
  — 떨어지는 몫은 설계 원가계산서와 같은 식으로 이윤에서
- 사정: 뜻 미확인이라 칸만 받고 계산에 안 씀
- 시험 4건 보탬 · 전체 1723 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 06:42:16 +09:00
eomsangdon bb8b9405a4 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-14 06:33:16 +09:00
eomsangdon 632e47a1ba Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-14 06:33:12 +09:00
eomsangdonandClaude Opus 5 6454f4fefb docs(b09): 축C 명세 반올림 표에 중기시간금액집계표 줄 보탬 — 성분마다 반올림 후 합(131/144)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-14 06:32:56 +09:00
eomsangdonandClaude Opus 5 2c0ae48ac7 fix(b08): 구조물 표 구멍 넷 — 골막이·바닥막이 내역 수량 0 · 떼흙막이 m당 오표시 · 개거 L형 키 · 기슭막이 거짓 사유
구조물도 남은 종류 그림을 시작하며 시험 제원으로 표를 세워 보다 드러남:
- 골막이(개소당)·바닥막이(㎡당)가 「m · 연장 0」으로 읽혀 구조물도 전 줄 「단위당 못 냄」 · 인계 「물량이 0 이라 내역에 안 세움」 → 내역 단위 개소 1 / ㎡ 면적으로
- 떼흙막이 개소당 값이 연장으로 나뉘어 떼 0.139/m 로 보였음 → 개소당 1.39
- 개거 「L형수로 H=0.2」 — 엔진 키가 「콘크리트 L형수로 H=0.2」라 등록부에서 골라도 영영 안 섰음 → 등록부 글자로
- 기슭막이 사유 「돌 종류·뒷길이 칸이 없어」 — 칸이 선 뒤로 거짓 · 돌쌓기 한 줄과 같은 말 두 번 → 걷음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 06:32:14 +09:00
eomsangdonandClaude Opus 5 ba2c36e803 feat(b09): 기성 탭 마지막 회차 지우기 — 앞 회차는 뒤 회차 전회를 흔들어 마지막만
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 06:16:00 +09:00
eomsangdon c3060f9bb6 auto: 2026-09-14 06:12 (ESD_LAPTOP) 2026-09-14 06:12:19 +09:00
eomsangdon 0f5d7da1e2 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 06:11:51 +09:00
eomsangdonandClaude Opus 5 aba96f6116 fix(b08): 옹벽 기초 터파기 옆면 1:0.5 — 실무 식생옹벽블럭 기초 터파기와 같은 자리에서 기울기(브레인 판정 고침)
- 밑폭 2.2(기초 1.6 + 여유 0.3×2) · 윗폭 = 밑폭 + 0.5 × 판 깊이 × 2 = 2.9 · 깊이 0.7 → m당 터파기 1.54 → 1.785 · 되메우기 0.36 → 0.605 · 잔토 1.18 그대로
- 검증 프로젝트 내역 본체 124,202,681 → 124,424,547원(+221,866 = 구조물터파기 0~1m 15.4→17.85㎥ +213,375 · 되메우기 24.6→27.05㎥ +8,491)
- 그림 터파기 점선을 사다리꼴로 · 「밑폭 2.20 · 윗폭 2.90 × 깊이 0.70」 · 표 사유와 같은 말

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 06:11:47 +09:00
eomsangdon 2f2cc92d15 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 06:03:26 +09:00
eomsangdonandClaude Opus 5 1edde503fe feat(b09): 기성 단계 1벌 — 금회직접공사비 × 계약잡비율 · 계약/전회/금회/누계와 각 율 · 부가세 넷
- 계약내역·계약 원가계산서(같은 엔진에 계약 직접비)를 읽기만 해 파생 — 계약 불변
- 제잡비 줄마다 계약잡비율 = 도급액 ÷ 계약 직접공사비 (구조로 읽음, 확인 대기)
- 회차 목록 저장 · 기성(%) · 잔량 · 계약 수량 넘으면 알림
- 부가세: 직접입력 / 공급가액 / 재료비 / 재료비+산출경비 (설계 vat_base 같이 씀)
- 원가계산서 조립·계약본 받기 조각을 떼어 기성이 같은 길로 받음
- 기성 탭 파일 · 사전 키(등록은 서브) · 시험 6건 · 전체 1717 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 06:03:22 +09:00
eomsangdon ce5bfb7722 Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-14 06:01:16 +09:00
eomsangdonandClaude Opus 5 650f660ed1 feat(b08): 옹벽 구멍 셋 — 터파기 기초분 · 원문 값 · 물빼기 칸이 표에 닿음(전후 대조)
① 터파기·되메우기·잔토 — 소광리 「옹벽2.0」에 줄이 없어 브레인 판정대로 기초 폭 + 양쪽 여유 0.3(같은 파일 식생옹벽블럭 기초 터파기)로 수직 · 깊이 기초 0.4 + 버림 0.1 + 기초잡석 · 비탈분 제외(지반선이 제원에 없음) · earthwork 로만
   m당 터파기 1.54 · 되메우기 0.36(터파기 − 기초·전단키·버림·잡석) · 잔토 1.18 · 인계 심도 구분은 판 깊이(0.7 m → 0~1m)
② 관측 값을 원문으로 — 콘크리트 1.35→1.345 · 버림 0.15→0.145 · 유로폼 3.2→3.205 ⇒ 기초잡석 0.30→0.29
③ 물구멍관 — 실무 관측 식(「옹벽2.0」 T31 벽 높이 ÷ 개소당 면적 × 관 0.4)에 제원 칸이 닿음 · 규격 Ø50 이 붙어 자재총괄에서 돌쌓기 물구멍관과 한 줄(33.924 + 3.2 → 37.124 m) · 관 길이는 관측값으로 표시
- 검증 프로젝트 내역 본체 122,848,989 → 124,202,681원(+1,353,692 = 구조물터파기 심도 0~1m 15.4㎥ 1,341,216 + 되메우기 21.0→24.6㎥ +12,476)
- 그림: 터파기 점선·「터파기 폭 2.20 × 깊이 0.70」 · 표 사유와 같은 말 · 옛 값을 박은 시험 8건을 원문 값으로(전 값은 주석)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 05:59:32 +09:00
eomsangdon 2ab3a65807 @
feat(b09): 실행예산 차액 보정 뜻을 화면에 — 기본보정은 「안 몰고 남김(뜻 확인 대기)」

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
@
2026-09-14 05:47:36 +09:00
eomsangdonandClaude Opus 5 87cab83c60 feat(b09): 실행예산 탭 등록 — 계약내역 뒤 맨 끝(설계 → 계약 → 실행 · 랩탑_메인 f1f8482e)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 05:38:33 +09:00
eomsangdon 914bbce74c Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-14 05:29:57 +09:00
eomsangdonandClaude Opus 5 f1f8482e7d feat(b09): 실행예산 단계 1벌 — 중기 실행단가(1단위당 사용료 ÷ 시간 · 성분 비율 · 절사 · 차액 보정) · 실행수량
- 단가표 복사본의 중기(X) 호표만 실행단가로 갈아 끼워 일위대가 다시 조립 — 설계·계약 불변
- 조립값과 다른 줄은 설계 단가 그대로 + 비고에 까닭
- 「기본보정」은 뜻 미확인 — 차액을 안 몰고 남김(확인 대기)
- 계약 모듈의 다시 조립·묶음 합 조각을 두 단계가 같이 씀
- 실행예산 탭 파일 · 사전 키(등록은 서브) · 시험 7건

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 05:29:05 +09:00
eomsangdonandClaude Opus 5 5e983018a3 feat(b08): 구조물도 옹벽 단면 그림 — 관측 원단위 줄에 단면 치수 · 표 사유와 같은 말
- 반중력식 H=2.0 관측 줄에 단면(기초 1.6×0.4 · 벽체 1.6 상단 0.3 앞면 0.118 뒷면 0.032 · 전단키 0.35×0.3 · 버림 0.1 · 물빼기 관 0.4)을 실음 — 출처 소광리 07-구조도 「옹벽2.0」 산출식·일반도
- 그 치수로 표 수량이 다시 나오는지 시험(콘크리트 1.345→1.35 · 버림 0.145→0.15 · 유로폼 3.205→3.2 · 관 0.32)
- 그림: 기초·벽체·전단키 + 버림(키 자리 비움) + 기초잡석(산출 조건 두께 · 버림과 같은 폭) + 물구멍
- 표 사유에 새 한 줄 둘(그림도 같은 말): 관측 줄에 터파기·되메우기·잔토가 없음 · 물빼기 칸을 채워도 관측 값이 붙박이라 안 닿음
- 까닭은 표가 못 선 장만(형식 미정 · 자료에 없는 규격 · 단면 치수 없는 규격) — 표 사유와 같은 말

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 05:27:49 +09:00
eomsangdon bc1b2fdad0 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 05:10:51 +09:00
eomsangdonandClaude Opus 5 ff6672a13a feat(b09): 계약 단계 2벌 — 기초단가 적용(단가표 복사본 다시 조립) · 계약 일위대가/산출근거 W 호표 · 0% = 0 원
- 기초단가 적용: 자재·노임·중기 취득가 채택 단가에 적용률 — 복사본만, 설계 단가표 불변
- 조립값과 다른 줄(할증·수동 단가)·단가표 밖 코드는 성분 곱셈 + 비고에 까닭
- 계약 호표: 설계 본표와 같은 꼴(detail_of)로 W-B·W-D 따로 — 기초단가 적용과 함께만
- 0% 는 0 원(브레인 판정) · 공내역 생성은 그 줄 이름만 가름
- 시험 11건 · 전체 1699 통과(골든셋 포함)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 05:10:41 +09:00
eomsangdonandClaude Opus 5 31675aaf21 refactor(b08): 원단위 전개 파일 쪼개기 — UnitQuantity 1,646줄 → 네 파일(기능별 · 값 불변)
- _Base(110줄) 성분 계약·갈 곳(DESTINATION)·배합 성분(MIX_COMPONENTS) — 이중계상 경계
- _StoneSpec(525줄) 돌쌓기 제원·계수표·표준경사 판정·벽 두께·버림/기초잡석 상수
- _Masonry(523줄) 돌쌓기·큰돌쌓기 전개식(버림·터파기 줄)
- UnitQuantity(581줄) 종류→전개식 표·관측 원단위·딸린 줄·build_table — 옮긴 이름은 다시 내보내 부르는 쪽 44곳 그대로
- 코드 줄은 옮기기만 함 · 검증 프로젝트 응답 여섯(원단위·구조물 집계·구조물도·운반·인계·내역) 지문이 쪼개기 전과 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 05:06:53 +09:00
eomsangdonandClaude Opus 5 1b48a16a18 feat(b09): 계약내역 탭 등록 — 설계 뒤 계약 단계라 틀 맨 끝(랩탑_메인 26097d69)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 04:51:31 +09:00
eomsangdon 8646c56185 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 04:43:04 +09:00
eomsangdonandClaude Opus 5 a9ddcd5b1b feat(b08): 구조물도 그림 — 뒷길이 미정 장도 표가 선 기본값으로 그림 · 표 사유와 같은 말
- 뒷길이를 안 고른 돌쌓기 장: 표가 쓴 그 뒷길이(양식 장은 양식이 푼 값, 전개 장은 기본 45㎝)로 그림
- 「⚠ 뒷길이를 안 골라 기본 N㎝ 로 섰습니다」 한 줄을 한 곳에 두고 표 사유·그림이 같이 씀(골막이 문구도 같은 함수)
- 돌쌓기 표 사유에 그 한 줄이 새로 붙음 — 전에는 기본값인 줄 표에 안 드러났음
- 그림 까닭은 정말 못 그리는 장(큰돌쌓기 직경 축·옹벽)만

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 04:42:28 +09:00
eomsangdon 52771faefe Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 04:41:14 +09:00
eomsangdonandClaude Opus 5 26097d6922 feat(b09): 계약 단계 1벌 — 노·재·경 단가 적용률 · 행별 적용 제외 · 0% 공내역 · W 코드
- STmate wM_Mk_Cont(27번 §2) 본뜸: 단가 적용율 【노】【재】【경】 · 적용 옵션 여섯(화면 표기 그대로) · 적용제외 공정
- 설계 내역(/estimation/bill) 줄을 복사해 성분마다 적용률 — 절사는 설계 내역 규칙(bill_line) 그대로 · 설계 불변
- W 코드: 동일코드 한 벌(기본) / 개별생성 켜면 줄마다 · 적용 제외 줄은 설계 단가·설계 코드
- 0%: 「공내역 생성」 켜면 0 원 공내역 줄 · 끄면 적용 안 함(판정 대기)
- 뜻 미확인 옵션(노무비율)·아직 안 선 옵션(기초단가 적용·일위대가 생성·비과세자재)은 칸만 받고 까닭을 화면에
- GET/PUT /estimation/contract · 탭 파일 B09_Estimation_UI_Tab_Contract.ts(등록은 서브) · 사전 b4
- ⚠ 계약 표본 0건 — 구조가 서는지까지만 시험

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 04:41:10 +09:00
eomsangdon 415a76a97b Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 04:28:27 +09:00
eomsangdon 6926d7fd14 auto: 2026-09-14 04:26 (ESD_LAPTOP) 2026-09-14 04:26:48 +09:00
eomsangdonandClaude Opus 5 1d21253b7e feat(b08): 구조물도 상단 그림 — 돌쌓기 단면 SVG(읽기 전용) · 못 그리는 장은 까닭
- B07 표준도 그림 코드를 B08 로 옮겨 모양 목록(선·글자)으로 냄 · 화면이 SVG 로 그림(그림 6 : 표 4)
- 벽 두께를 수량표와 같은 함수로 — 상부·하부 두께를 넣어도 그림만 옛 두께이던 것 고침
- 터파기 점선을 수량식과 넓이가 같은 평행사변형으로(앞면 따라 기움)
- 큰돌쌓기(직경 축)·옹벽·뒷길이 미정 장은 그림 자리에 까닭 한 줄
- B07 CAD 표 조립은 같은 모양 목록을 CAD 엔티티로 옮겨 적음(CAD 편집 뒤 일감용)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 04:26:47 +09:00
eomsangdon 6a2c5aacae Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 04:18:58 +09:00
eomsangdonandClaude Opus 5 6683e85d94 feat(b09): 원가계산서 나머지 세 형식 서식 차례 — 수공·실적일반·실적수공 · 금액 없이 막힌 까닭
- 12번 §4~6 서식(35번 정정 반영) 차례·표기 · 줄마다 「공통 요율 / 요율표 미확보(RateB·RATE_RA·An_A) / 확인 대기」
- 확인 대기: 실적형 이윤 밑수(35번 §5-1) · 실적수공 안전관리비 존재(§5-2) — 값을 지어내지 않음
- 0 원으로 안 채움 — 금액 칸 「-」 + 까닭 · 머리에 「금액 미산출」
- 원가계산서 아래 형식 탭 넷을 눌러 바꿈(GET ?form=) · 기준 입력판은 그대로
- 시험: 금액·0원 없음 · 수공 경비 여덟 막힘 · 확인 대기 · 실적일반 보증·환경 밑수 · 모르는 형식 멈춤

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 04:18:54 +09:00
eomsangdon 63e715fd9f Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-14 04:08:04 +09:00
eomsangdon 0112f3fcab Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 04:08:03 +09:00
eomsangdonandClaude Opus 5 8046205039 fix(b09): 산업안전 50억 이상 구간 겹침 해소 · 하도급대금 지급보증수수료 칸(기본 꺼짐)
- 산업안전보건관리비: 고시 별표1 「보건관리자 선임 대상 건설공사의 적용비율」 열을 대상액이 아니라
  공사가 선임 대상인가(요율 데이터 manager_thresholds 800억 · 토목 1,000억)로 가름 — 두 줄이 겹쳐 멈추던 자리
- 하도급대금 지급보증수수료: 기본 꺼짐 — 실무 원가계산서 6건에 줄 없음 · 건설산업기본법 제34조 대상이면 켬
  (칸 밑에 「대상 아님인지 안 적음인지 못 가름」 사유)
- 시험: 50억 이상 2.60 / 선임 대상 2.73 · 하도급 꺼짐·켬 · 골든셋 초록

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 04:07:45 +09:00
eomsangdonandClaude Opus 5 b9d0ac0866 feat(b09): 2차 편집 ④ 내역 할증율·일괄보정 — 범위(선택 줄·내역서 전체) · 비목별 절사/반올림 · 소수 0~4 · 줄 ↺ · 할증 전부 되돌리기
- 서버가 내역 줄 성분 단가에 율을 얹어 다시 셈(줄 칸이 전체 칸보다 우선) · 수량은 그대로
- 공용 작은 버튼 글자색 상속 — 어두운 화면에서 검정 글씨로 묻히던 것

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 04:06:40 +09:00
eomsangdonandClaude Opus 5 8693cf0012 feat(b09): 원가계산서 기준 입력 13~16 — 사급비 위치 · 낙찰 · 이행보증 · 적용기준 · 이행보증 식 고침
- 13 사급비 위치: 재료비에 포함만(사급은 이미 내역 재료비 · 실무 거창·영월) — 칸만 받음
- 14 낙찰방식: 하도급대금 지급보증 요율 줄 — 종합심사 외(규모 구간) · 종합심사 대상(300억 이상 줄) · 턴키(0.084)
- 15 이행보증: 일반계약 = 추정가격 300억 이상만 공사이행보증수수료 · 최저가·기술제안 = 규모 무관
  (종전 늘 계산 — 제비율 기준 「소규모 통상 비대상」·실무 여섯 건 금액 없음과 어긋났음)
- 곁 고침: 70억 이상 구간 [기초액 + (직공비−기준액) × 율] × 공기 — 종전 백분율만 쓰고 기초액·기준액을 버렸음
- 16 적용기준: 칸만 받음(조달청 표 한 벌 · 제20조 국가 표 이미지 미확인 · 행자부 표 없음)
- 칸 밑 안내 · 시험: 300억 미만 안 섬 · 100억 식 965,000 · 요율 줄 셋 · 13·16 계산 불변 · 골든셋 초록

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 03:56:26 +09:00
eomsangdon d4ab146e02 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 03:38:00 +09:00
eomsangdonandClaude Opus 5 c3618fe872 feat(b09): 2차 편집 ② 일위대가·단산 구성행 수정 · ③ Q 식 편집 — 프로젝트 단위 · 서버가 다시 계산 · ↺
- 구성행(sheet_rows): 수량 고치기 · 줄 빼기(수량 0, 흐리게) · 줄 더하기(단가표 고르개) — 비율 줄·돌림 참조는 받지 않음
- Q 식(price_basis_q): 식은 명세 13장 식 언어 — B08 구조물도 풀이기(evaluate_sheets, Node 한 벌)를 그대로 부름 ·
  소수 2자리 사사오입 확정 → 새 수량 = 수량 × 옛 Q ÷ 새 Q · 비고에 「Q(사용자) = 식 = 값」
  · PriceDetail.output(시공능력 Q)을 Q 로 선 장비 줄 넷 자리(굴착기·도자·직접 작업량·암 잎)에서 실음 · 저장 모양에도 실음
- 따로 짰던 파이썬 식 셈(B09_Estimation_Expression)은 걷어냄 — 식 풀이 두 벌 금지(브레인 판정)
- 새 문: GET /estimation/edits/sheet/{code}(본표 + 줄마다 고친 값 표시) · GET /estimation/edits/search(줄 더하기 고르개)
- 화면: 본표 [편집] — 수량 칸 · ✕ · Q 식 칸 · 줄 더하기 · 고친 줄 「사용자」 + ↺
- 검증: 시험 1664 통과 · 골든셋 초록 · ORCA — 제 3 호표 보통인부 0.023→0.046 이면 5,652→9,610 · 내역 본체 122,848,989→122,857,198,
  ↺ 뒤 5,652 · 산근 2호표 Q 58.21→116.42 이면 1,695→847, ↺ 뒤 1,695 · 틀린 식 422 「모르는 이름: abc」 · 고친 값 {} 로 복구

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 03:37:18 +09:00
eomsangdonandClaude Opus 5 b02c51db71 refactor(b09): 라우터 쪼개기 — 산출 조건 문(GET/PUT /estimation/factors)을 Router_Factors 로 · Router.py 842 → 537줄
- get_bill · _project_root_of · _build_for 는 Router.py 에 그대로(랩탑_메인 CostSheet import 그대로)
- 새 파일은 본 라우터의 _project_root_of·_build_for 를 부를 때마다 빌려 씀 — 시험이 본 라우터 것을 바꿔 끼움
- 검증: 시험 1666 통과 · 골든셋 초록 · 재시작 뒤 B09 문 열하나(factors·base-data·price-sources·basis-sheet·machine-expense·
  design-doc-index·bill·unit-prices·edits·cost-sheet·PUT factors) 전부 200

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 03:24:53 +09:00
eomsangdon 35abb49d3c Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 03:24:36 +09:00
eomsangdonandClaude Opus 5 f704bc3bf8 feat(b09): 요율 덮어쓰기 — 프로젝트 단위 · 칸마다 사유 · 기본값↔고친 값 · ↺ 되돌리기
- estimation.rate_overrides 에 칸 주소(variable·table·match)·요율·사유·입력 시각을 한 줄씩 — 마스터 요율 파일은 안 건드림
- 엔진이 계산할 때 복사본에만 얹음 · 덮어쓰기 없으면 원본 그대로(골든셋 초록) · 원가계산서 비고에 「요율 덮어쓰기 N건 — 사유」
- 요율표: 칸마다 기본값·지금 값·주소 · [수 정]에서 입력 · 고친 칸 테두리 + (기본 X) · ↺ · 고친 요율 목록에 사유 칸(비면 저장 안 됨)
- PUT /estimation/rate-table: 사유 빈 줄·틀린 주소·같은 칸 두 번·음수면 아무것도 안 저장 · 값·사유 같으면 입력 시각 유지
- 판이 바뀌어 주소가 안 맞으면 조용히 버리지 않고 알림
- 시험: 마스터 불변 · 계산에 걸림 · 한 값짜리 · 거름 · 주소 틀리면 멈춤 · 화면 주소 왕복

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 03:24:33 +09:00
eomsangdon 6cfcafc2f4 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 03:16:14 +09:00
eomsangdonandClaude Opus 5 9cf01ab15c feat(b09): 2차 편집 ① 자재단가대비표 채택 바꾸기 — 프로젝트 단위 고친 값(estimation.edits) · 서버가 얹어 다시 계산 · ↺
- B09_Estimation_Edits: 고친 값 한 벌 — 기본 조립(cached_build) 복사본에 얹음(캐시 키에 고친 값) · 기본 벌은 그대로(골든셋 무관)
  · 얹지 못한 값은 edit_skipped 로 남김 · 값 없는 슬롯은 받지 않음(422 + 까닭)
- 새 라우터 B09_Estimation_Router_Edits(GET/PUT /estimation/edits) — Router.py 는 _build_for 가 고친 값을 얹게만 바꿈
- 화면: 줄마다 채택 슬롯 고르개 · 일괄(변동없음/1~5 단가/최소단가) · 고친 줄 「사용자」 + ↺(지우면 계산값으로)
- 곁: 사용자 식 셈(B09_Estimation_Expression — ROUND·ROUNDDOWN·INT·SQRT, eval 없음)과 본표 편집 칸(UI_DetailEdit)을 먼저 둠 — 서버 편집 문이 서기 전까지 잠자 있음
- 검증: 시험 1656 통과 · ORCA 채택 저장 → 「사용자」·↺ → ↺ 뒤 고친 값 {} 로 복구 · 값 없는 슬롯 422 「경유: 1번 원천에 값이 없어」

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 03:16:10 +09:00
eomsangdon 267bad1dfd Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 03:01:59 +09:00
eomsangdonandClaude Opus 5 72046265fc feat(b09): 원가계산서 기준 입력 4·5 — 고용보험 등급 · 퇴직공제 적용 · 폐기물 「승률 밖」 자리 · 칸 밑 안내
- 4 고용보험료: 자동(추정금액 구간 · 종전) · 없음 · 1~7등급 직접
- 5 퇴직공제부금비: 자동(추정금액 1억 이상 · 종전) · 적용 · 미적용 — 토목·준설·건축·기타는 현행 제비율에서 율이 같아 칸 안 둠
- 폐기물처리비 자리: 경비·승률 안(법 문언 · 기본) / 이윤 뒤·총원가 안·승률 밖(실무 관행 울진소광·실정보고)
- 칸 밑 안내: 절사 기본 「안 함」과 실무 3건(총공사비 천원 미만 + 이윤 자동보정) · 폐기물 법/실무 갈라 적음 · 주/전문 규정 없음
- 시험: 등급 1.57% · 없음 · 없는 등급 멈춤 · 퇴직공제 1억 미만 적용 · 승률 밖 자리 · 골든셋 초록

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 03:01:54 +09:00
eomsangdon 3a250fb055 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 02:58:02 +09:00
eomsangdonandClaude Opus 5 964375d2a7 refactor(b09): 옛 화면 파일 셋 지움 — UI_Page(1,561줄) · UI_BaseData(1,161줄) · UI_Tab_Legacy
- 옛 탭 여섯은 모두 새 틀 탭 파일로 옮겨짐(설계서 구성 · 산출기초 · 관급·사급 · 중기경비계산서 · 기초자료, 원가계산서는 랩탑_메인)
- 화면 확인(지운 뒤 13 탭 전부): 설계내역서 53줄 · 본체 122,848,989 · 일위대가 18 · 산근 10 · 중기 표 19·줄 171 ·
  관급·사급 13 · 기초자료 표 6·줄 737 · 설계서 구성 13 · 산출기초 표 3·줄 192 — 옮기기 전과 같음 · tsc 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 02:56:27 +09:00
eomsangdonandClaude Opus 5 ef48e6edd3 refactor(b09): 옛 탭 옮기기 ⑤ 기초자료 — 산출 조건(UI_Factors) · 목록표 셋 · 자재단가대비표 · 환율및기초자료를 새 틀 탭 파일로
- 저장하면 이 탭 자료와 설계내역서 한 벌(UI_Store forgetBill)을 함께 새로 받음 — 값이 다시 섬
- 화면 확인: 옮기기 전후 같음 — 표 6 · 줄 737 · 고르개 32 개 고른 값 전부 같음 · 숫자 칸 2 · 글 35,074 자
- 계산 입력 확인: 기계 작업효율 E 평균 0.50 → 상한 0.55 를 화면에서 고르면 「사용자가 고른 값」 · 제 2 호표 2,511 → 2,284 ·
  되돌린 뒤(기본값) 2,511 그대로 — 검증 프로젝트 설정 원래대로 복구

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 02:47:03 +09:00
eomsangdon fb2de4a679 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 02:43:18 +09:00
eomsangdonandClaude Opus 5 fb4eb59cdb feat(b09): 원가계산서 기준 입력 10·11·12 — 일반관리비 주/전문 · 절사 · 부가세 방식
- 10 일반관리비: (주)공사/전문공사 = 요율 구간표만 갈림 · 밑수는 형식 칸(일반 = 순공사원가 + 관리품목자재대)
- 11 절사: 총공사비/공급가액 N원 미만 — 고른 때만 이윤 자동보정(총공사비·공급가액 비례 부가세면 ÷1.1 반올림, 실무 봉화 373→339·영월 695→632, 산림조합은 차액 그대로) · 잔차 맞춤
- 12 부가세: 공급가액·재료비·없음·산림조합 형식·산림조합-면세품 (칸 이름은 기성 선택지를 받을 수 있게 문자열)
- 기본값은 종전 계산과 같음 · 자동보정 줄은 「… 절사 자동보정」으로 적음
- 원가계산서 탭: 10·11·12 고르개 · 관리품목 자재대 · 면세품 금액 칸
- 시험: 기본값 불변 · 밑수·표 갈림 · 실무 절사 식 · 끝자리 · 골든셋 초록

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 02:43:14 +09:00
eomsangdonandClaude Opus 5 71d643b456 refactor(b09): 옛 탭 옮기기 ④ 중기경비계산서 — 옛 BaseData 에서 UI_MachineExpense 로
- 화면 확인: 옮기기 전후 같음 — 중기 탭 표 19 · 줄 171 · 계산서 18 장(불도저 19 손료계수 1811 · 시간당 손료 35,884.965)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 02:05:34 +09:00
eomsangdonandClaude Opus 5 3327357f2e refactor(b09): 옛 탭 옮기기 ③ 관급·사급 — 새 틀 탭 파일로(내역 응답 한 벌을 봄)
- 화면 확인: 옮기기 전후 같음 — 사급 0 · 관급 0 · 안 갈린 것 13줄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 02:03:39 +09:00
eomsangdonandClaude Opus 5 baeaa26702 refactor(b09): 옛 탭 옮기기 ② 산출기초 — 새 틀 탭 파일로
- 화면 확인: 옮기기 전후 같음 — 표 3 · 줄 192 · 판 12 · 근거 공종 92 · 못 채운 자리 88

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 02:01:18 +09:00
eomsangdonandClaude Opus 5 800cb73be0 refactor(b09): 옛 탭 옮기기 ① 설계서 구성 — 새 틀 탭 파일로 · 옛 표 도우미(head·note·표·근거 호버)를 UI_Table 로
- 화면 확인: 설계서 구성 13줄 · 요약·법 문구 그대로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 01:59:50 +09:00
eomsangdon 4c6268ffe8 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 01:57:42 +09:00
eomsangdonandClaude Opus 5 9158a88642 knowledge(축C): 집계표 단가 열·중기 반올림 정정 — 골든셋 실측
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-14 01:57:00 +09:00
eomsangdonandClaude Opus 5 3ce997fa69 feat(b09): 표 화면 넷 — 중기(목록표·중기사용료) · 자재단가대비표 · 집계표 넷 · 목록표 일곱
- 서버: 내역 응답에 집계표 넷(resources)·목록표(lists) — 내역이 쓴 자원을 처음 쓰인 차례로 되모음
  (묶음 줄·구조물도 호표 줄도 구성까지 풀어 셈) · 재료비 집계표에 자재대(사급·관급) 줄 이어 붙임
- 중기시간금액집계표: 단가 열 없이 합계·노무·재료·경비 — 성분마다 반올림한 뒤 합(골든셋 131/144, 합계 한 번 반올림 107/144)
- 재료·노무·경비 집계표: 반올림(수량 × 단가) 골든셋 279/279 — 시험 한 벌 더함
- 중기사용료 호표: 잡품 줄은 수량 칸 율(%) · 단가 칸 밑수(주연료비) · 금액 — 실무 표 그대로. 제잡비·공구손료 줄도 밑수를 단가 칸에
- 자재단가대비표: 슬롯 1~6 단가·페이지 · 채택 칸 굵게 · 최소단가 표시(서버 min_slot)
- 목록표 일곱(일위대가·단가산출근거·중기·재료비·노무비·경비·일식견적): 색인만 — 서버 번호·단가 그대로, 일위대가·산근·중기 줄은 누르면 들어감
- 옛 중기 탭 줄을 새 탭으로 바꿔 끼움(중기경비계산서는 옛 표를 아래에 이어 보임)
- 검증: ORCA — 중기 목록 9 · 굴착기 0.7 호표 합계 109,704 · 잡품 22 % × 21,418.1 = 4,711.9 · 노무 집계 벌목부 9,686,529 · 중기 집계 성분 합 · 시험 1638 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 01:56:02 +09:00
eomsangdon 155903306e Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 01:42:16 +09:00
eomsangdonandClaude Opus 5 a68a5e0214 fix(b09): 원가계산서·요율표 탭 단추 variant 를 ghost 로 · 「금액을 못 세운 줄 N건」·「미확정 N건」 표현을 내역서와 한 벌로
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 01:42:12 +09:00
eomsangdonandClaude Opus 5 b7af20f76d feat(b09): 틀에 원가계산서·제비율 요율표 탭 등록 — 랩탑_메인 탭 파일(cb33e81d), 옛 원가계산서 줄 바꿔 끼움
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 01:40:16 +09:00
eomsangdon 3057a751da Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 01:33:45 +09:00
eomsangdonandClaude Opus 5 cb33e81d98 feat(b09): 원가계산서(일반형식)·제비율 요율표 탭 파일 — STmate 배치 · 값은 우리 엔진
- 서버: /estimation/cost-sheet(GET·PUT) · /estimation/rate-table — 새 라우터 파일
- 직접비 = 설계내역서 합계 · 기준 입력 = estimation.cost_sheet · 폐기물처리비 = 임목폐기물 톤 × 수동 단가
- 서식 줄: 나.순공사원가 … 바.총공사비 (DFM TWM_KANJUB 차례·표기) · 경비 세목 번호 차례
- 기준 입력판: 형식(일반만) · 2.공사의종류 · 3.공사기간 · 6.관/사급 · 7.산업안전 · 8.환경보전 · 9.건설기계 — 선택지는 요율 데이터에서
- 요율표: 첫 탭 묶음 10개(보기 전용 · 수정은 잠김)
- 탭 계약 파일은 서브 314c0040 과 같은 내용(blob 동일) · 사전은 새 벌 b4
- 시험: 서식 차례·엔진 값 일치·폐기물 자리·저장값 거름·구간 표기

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 01:32:30 +09:00
eomsangdon 243c6eb3a9 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 01:31:56 +09:00
eomsangdonandClaude Opus 5 85f7c9c6b3 feat(b09): 원가계산 화면 새 틀 — 설계내역서·일위대가·단가산출근거 탭(실무 서식 · 내역 → 호표 → 산근 들어가기)
- 틀 B09_Estimation_UI_Shell: 탭 줄과 등록만 · 탭마다 파일 하나(계약 _Shell_Types)
- 설계내역서: 실무 열(합계/노무/재료/경비 단가·금액) · 머리글 접기·레벨 고르개 · 줄 누르면 제 N 호표 · 단산 N 단추 · 미확정 빨간 테두리
- 일위대가·단가산출근거: 목록표(내역에 처음 쓰인 차례) + 본표 · 줄 누르면 하위 호표·산근·중기로 · 자취 눌러 되돌아감 · Q 식 글자 그대로
- 옛 탭 여섯(원가계산서·중기·관급사급·기초자료·설계서 구성·산출기초)은 옛 코드 그대로 이어 붙임 — 새 탭 파일이 서면 등록 한 줄씩 바꿈
- 본표 합계 줄 = 호표 성분 소계 원 미만 절사 값 · 비율 줄 금액도 0.1원 절사 표시
- 사전 ui_template_locale_b3 새 벌(b2 700줄 넘음)
- 검증: ORCA 검증 프로젝트 — 본체 122,848,989 · 지장목제거 865·15,460,837 · 제 9 호표 합계 1,708 = 산근 8호표 합계 1,708 · 옛 탭 여섯 다 뜸 · 접기 53→51·레벨1 11줄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 01:30:01 +09:00
eomsangdonandClaude Opus 5 509660708b fix(b08): 뿌리분 직경 칸 이름에 「흉고직경 아님」 명시 — D 는 뿌리분 직경(2026-09-14 판정)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 01:10:58 +09:00
eomsangdon 3ab63eb29c auto: 2026-09-14 01:10 (ESD_LAPTOP) 2026-09-14 01:10:55 +09:00
eomsangdonandClaude Opus 5 314c00406e feat(b09): 화면 틀 ↔ 탭 파일 계약 — B09Tab · B09TabContext (탭마다 파일 하나 · 틀은 등록만)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 01:10:54 +09:00
eomsangdon 7b0a48f0cd Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 01:09:38 +09:00
eomsangdonandClaude Opus 5 35ba45f572 feat(b08): 임목폐기물 뿌리 산정법 고르개 · 지침 π 3.14 · 분리발주 대상 아님 안내
- 환경친화적인 도로건설 지침 부록1 확인: 뿌리분 체적 V = 0.3927D³ × 1,300㎏/㎥ — 고르개로 넣음(기본은 분배비 15/85)
- 뿌리분 직경 D 는 지침 표기 「뿌리분의 직경(DBH, m)」이 모호해 흉고직경과 따로 받음
- 지상부 식을 지침 원문대로 π 3.14 로 셈 — 실정보고 예 130.40㎥ 와 바로 맞음
- 분리발주 칸 밑·사유에 「임목폐기물은 분리발주 대상 아님(환경부 회신)」

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 01:09:23 +09:00
eomsangdon bdc08c3251 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 00:58:35 +09:00
eomsangdonandClaude Opus 5 1733bb6aac knowledge(축C): 작업 폴더에 먼저 들어온 명세 정정 반영 — dev 와 같은 내용(받기 막힘 풂)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 00:58:34 +09:00
eomsangdon ae9578a6dc Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 00:57:14 +09:00
eomsangdonandClaude Opus 5 7d856f37a3 feat(b08,b09): 폐기물처리비 — 경비 비목(일반관리비·이윤 밑수) · 임목폐기물 톤 · 분리발주 칸
- 원가계산서: 폐기물처리비를 경비 줄로(예정가격작성기준 제19조③18호) · 법정경비 뒤라 그 밑수엔 안 섞임
- 분리발주 칸(기본 아님) — 켜면 총원가 밖 · 총공사비에만 더함
- 준비공 「임목폐기물 처리」 톤: WA = 0.5·π·(B/2)²·h·1.3·W1·N · WR = WA × 15/85 (한국건설기술연구원 2012)
- 조사값 넷(1,000㎡당 본수·흉고직경·수고·단위체적중량) 칸 · 기본값 없음 · 5톤·100톤 경계 알림
- 수동 처리단가 빨간 테두리 + 「미확정 N건」 · 내역엔 안 서고 제외 사유 「경비」
- 시험: 승률 구조(경비·일반관리비·이윤 밑수 증가 · 법정경비 불변 · 분리발주) · 실정보고 부피 대조

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 00:55:41 +09:00
eomsangdon 54a17580da Merge remote-tracking branch 'origin/sub_laptop_1' into main_desktop_1 2026-09-14 00:55:31 +09:00
eomsangdon 49df2f10ef Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-14 00:55:27 +09:00
eomsangdonandClaude Opus 5 fc649316c6 feat(b09): 일위대가 호표 성분 소계 절사 · 내역 줄 성분별 절사 — 골든셋 네 벌 다 섬
- TRUNCATED_KINDS 에 UNIT_PRICE(B) 더함 · 비율 줄(공구손료·제잡비·품 할증)도 0.1원 절사
- 내역 줄 bill_line — 성분마다 절사(수량 × 성분 단가), 합계 = 셋의 합 · 직접비 밑수도 자른 성분
- 묶음 줄·구조물도 일위대가 표(하위 양식 포함)도 같은 규칙 — 성분 소계 원 미만 절사
- 골든셋 ① 일위대가표 성분 소계 477/510(93.5%) · 안 맞는 19 호표 = 영월 반올림 원본 17 · 영덕 적용률 줄 서식 2
- 골든셋 ① 설계내역서 줄 321 전수 일치
- 검증 프로젝트 내역 본체 122,870,975 → 122,848,989 · 전체 시험 1614 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 00:53:31 +09:00
eomsangdon 0cf8b41823 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-14 00:27:40 +09:00
eomsangdonandClaude Opus 5 d6916225de feat(b08): 노체다짐 칸 — 기본 꺼짐 · 켜면 토공집계 별도 줄(수량 = 성토량)
- 산출 조건 subgrade_compaction_enabled · 기본 False(9-16-2 [주]⑤ 「대규모 성토지로서 층다짐이 필요한 경우」 조건부)
- 토공집계 「노체다짐」 줄 · 규격 진동롤러(자주식 10ton) · 매핑 FP-09-16-02 · 갈래 없음
- [주]③ 굴착기+진동롤러 조합 중 굴착기는 성토(포설) 줄이 셈 — 두 번 안 셈(#조합 철회)
- 칸 밑에 [주]⑤ 근거

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 00:27:29 +09:00
eomsangdonandClaude Opus 5 af23a5d209 feat(b09): 단가산출 Q 식 — f·Q 소수 2자리 확정 뒤 나눔 · D 줄 0.1원·머리 원 미만 절사
- fix2(사사오입 0.01) — 굴착기·도자·다짐 작업량, 암 평균 Q, 표 직접 작업량
- TRUNCATED_KINDS 에 PRICE_BASIS(D) 더함 — B 는 다음 차례
- 골든셋 ③ 단가산출근거 실무 6건 208 호표 전수 일치(제외 소계·% 줄·산근 참조·계약단가 읽기) · 회귀 3,545.5 → 3,545
- 검증 프로젝트 내역 본체 122,924,846 → 122,870,975 · 전체 시험 1606 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 00:26:45 +09:00
eomsangdonandClaude Opus 5 9f72ad19b8 feat(b08): 표토제거 대상 고르개 — 노면 + 절토 사면(기본 · 법 문언) / 노면만
- 산출 조건 칸 topsoil_target · 기본 None = 별표2 Ⅰ.2.차.(6) 「노면·절토대상지」
- 노면만: 실무 영월 한 건(1m당 3.34㎡) 관측 — 사유에 법 문언이 아님을 함께 적음
- 칸 밑에 근거 두 줄 · 운반 부피도 고른 대상 따라감

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-14 00:14:46 +09:00
eomsangdon e5295dc181 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-14 00:03:10 +09:00
eomsangdonandClaude Opus 5 b876ba9c14 refactor(b09): 단가 층 차례를 X → D → B 로 — 금액 불변, 자원 집계 버림 결함 고침
- 시공능력 Q 로 선 기계 줄(굴착기·도자·직접 작업량·다짐·암 잎)은 D(단가산출)에 달고 B 는 D 를 수량 1 로 부름
- 종전 PriceBasis 의 껍데기 D(D → B) 걷음 — 「단산 N」은 D 를 품은 줄에만(갈래 줄도 실제 단가 코드로 찾음)
- 자원 집계가 B→B·B→D 참조를 끝까지 풀어 기계 사용료에 닿음(종전 조용히 버림) · 모르는 종류는 드러냄
- 조합 16% 바꿔 달기·공종 근거 문구가 D 줄도 봄
- 전후 대조: B·X 420 제목 금액 전부 같음 · 검증 프로젝트 내역 본체 122,924,846 그대로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-14 00:01:30 +09:00
eomsangdonandClaude Opus 5 82755260e2 feat(b08): 표토제거 실무대로 — 노면 + 절토 사면 ㎡ · 운반은 20 m 넘는 몫만 · 층따기 제안값 경고
- 표토제거: 답외구간 FP-09-15-02 · 밑수 ㎡ · 대상 노면·절토대상지(성토 사면 안 셈) · 노면 폭이 빈 측점이 있으면 안 섬
- 표토 운반·적치: 제거 ㎡ × 두께 · 거리 − 압토 20 m · 20 m 이내면 제거 품에 듦
- 층따기: 「제안값(확정 아님)」 경고 줄 · 칸에 자동으로 안 넣음
- 시험: 옛 ㎥ 기대값 넷 갱신 · 노면 면적 평균단면적 시험

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 23:58:38 +09:00
eomsangdonandClaude Opus 5 dfa99ed594 knowledge(축C): D 는 Q 쓰는 자리에만 섬 · 내역 코드 축은 B 하나
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 23:39:02 +09:00
eomsangdon c919a982b4 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 23:34:39 +09:00
eomsangdonandClaude Opus 5 7bd1dc1e3a feat(b08): 도자 한계거리를 산출 조건 칸으로 — 기본 60 m 와 근거 셋을 화면에 같이 보임
유토곡선 장비 경계의 도자 한계거리가 config 붙박이였고 설정 칸 haul_limits_m_override 는 아무도 안 읽었음.
dozer_haul_limit_m 칸으로 갈음해 B06 유토곡선 문맥·배분·B08 산출 조건이 같은 값을 읽음(common_util 한 곳).
화면에 기본값 60 m · 근거(품셈 8-1-1 · 산림과임업기술 5장 · 실무 EARTH.DAT 전수)를 보이고, 종무대 20 m 는 규정이라 값만 보임.
종무대 이하 값은 저장에서 막음 · 비우면 기본값.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 23:33:10 +09:00
eomsangdonandClaude Opus 5 50c3fb65f5 fix(b09): 중기 호표 잡품을 주연료비 × 율 가산 행으로·성분 소계 절사 — 골든셋 중기 143 호표 전수
- 잡품을 연료 수량에 접지 않고 주연료비의 % 가산 행으로(STmate 잡품 단가 칸 = 연료 금액)
- 시간당 중기사용료(X) 호표 — 줄 금액 0.1원 미만 · 성분 소계 원 미만 절사(명세 7장, 봉화 0.7㎥ 96,843)
- 조종원 시간당 노임 자르는 자리를 프로젝트 설정 operator_wage_digits 로(기본 0, 화면은 뒤)
- 골든셋 ④ 벌 — 실무 6건 중기사용료 시트 143 호표를 우리 단가표 층으로 되풀어 전수 일치

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 23:29:16 +09:00
eomsangdon 7d7b9cf8fa Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 23:14:35 +09:00
eomsangdonandClaude Opus 5 219c7068a9 knowledge(축C): 노임 환산 자릿수는 프로젝트 설정 — 18/18 원 단위는 틀린 전제
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 23:14:13 +09:00
eomsangdonandClaude Opus 5 fd30227b73 fix(b09): 조종원 시간당 노임을 식 좌→우 순차 + 절사로 — 골든셋 시험 첫 벌
- 계수로 미리 접으면 267,360 → 55,699 로 1원 틀림 — 식 1/8*16/12*25/20 을 차례로 풀어 55,700
- 중기 호표 운전원 줄은 시간당 노임 제목(#시간) × 인수로 부름(STmate 운전원 1 × 55,700 모양)
- 골든셋 시험 test_b09_golden_stmate — 실무 6건 환율및기초자료 시간당 칸 전수 재현
  (다섯 건 원 미만 절사 · 2025 울진 소광 0.1원 미만 절사 — 자리는 설정값)
- 28자리 끝 반올림 차례만 다른 합 비교 시험을 허용 오차로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 23:13:20 +09:00
eomsangdon f296b8c88c Merge remote-tracking branch 'origin/안티그래비티' into main_laptop_1 2026-09-13 23:13:12 +09:00
eomsangdonandClaude Opus 5 5e76850d3b feat(axis): 마스터 갈래 키를 표 모양대로 — 단가표 갈래 제목 294 중 294 가 키에 있음(종전 86)
종전 variant_key 는 표 첫 열 값 24개라 머리행 갈래·두 단 머리를 놓치고 첫 열이 자원 이름인 표를 갈래로 적었음.
표 모양 가르기는 B09 표 읽기에 이미 있어 두 벌을 안 짜고, 그 읽기를 메모리의 마스터에 돌려 표마다 가른 갈래를 원문 표기로 실음.
못 가른 표는 빈칸. 공종마다 variant_keys(불도저 공식 갈래·합산형 단계 암질·[주]① 평균 · 부모는 단계 갈래).
짝 시험 — 단가표 #갈래 제목이 전부 마스터 키에 있어야 함.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 23:11:42 +09:00
eomsangdonandClaude Opus 5 70885683eb knowledge(축C): 층 차례 정정 — D 가 먼저 서고 B 가 D 를 참조
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 22:57:57 +09:00
eomsangdon 61e743451f knowledge(원가): 예정가격작성기준·임목폐기물 산출근거 편입 2026-09-13 22:57:51 +09:00
eomsangdon edd9369e3b Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-13 22:56:11 +09:00
eomsangdon 0713dbefb0 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 22:56:10 +09:00
eomsangdonandClaude Opus 5 fb3442709f feat(axis): 이중계상 ④ — 양식 호표가 품은 성분을 모음 줄이 또 세면 멈춤
기초잡석 줄·콘크리트 타설 줄은 여러 구조물 성분을 이름으로 모아 한 줄로 세워 누구 것을 뺐는지 안 남김.
그래서 물량 보존으로 봄 — 모음 줄 + 양식 호표(B-AX-ST)가 품은 몫 + 묶음 조각이 원단위 합을 넘으면 오류.
빌더의 건너뛰기를 따라 짜지 않아, 다른 구조물에서 건너뛰기를 빠뜨리면 여기서 걸림. 배정 프로젝트 어긴 자리 0건.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 22:55:43 +09:00
eomsangdonandClaude Opus 5 165bfed0a8 feat(b09): 갈래 느슨한 맞춤·수량 자리 못 맞춤을 로그로 — 조용히 다른 갈래에 붙는 자리 드러냄
- find_variant_code 가 글자 대신 수의 짝·구간으로 고른 자리를 한 번씩 로그(명세 14장 정정, 판정 (나))
- 수량 소수자리는 이름 그대로 두고 종목 이름을 못 맞춘 줄만 로그

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 22:55:27 +09:00
eomsangdonandClaude Opus 5 c34ab96763 knowledge(축C): 규정 없는 단수처리는 소수 2자리 기본값 — 법적 근거 없음 확인
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 22:54:34 +09:00
eomsangdon d56fa18971 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 22:47:35 +09:00
eomsangdonandClaude Opus 5 4ca757fadc knowledge(축C): 14장 정정 — variant_key 는 첫 열 24개뿐이라 정본으로 못 씀
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 22:46:56 +09:00
eomsangdonandClaude Opus 5 7bf5cbd1d1 fix(b09): 내역서·단가산출서도 프로젝트가 고른 단가표로 — 구조물도 미리보기와 한 벌
- 내역서 창구가 기본값 cached_build() 대신 _build_for(프로젝트) 를 씀 — 계수를 고른 프로젝트에서 화면과 내역이 갈리던 자리
- 단가산출서 한 장 창구도 같은 단가표

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 22:45:45 +09:00
eomsangdon 679f54853c Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 22:41:59 +09:00
eomsangdonandClaude Opus 5 66d57bb630 feat(axis): 품셈 판 pum_edition 칸 — 자원·공종 쪽, 판이 다르면 값을 안 씀
공종 마스터·자원 축 줄·B08 인계 줄마다 공종 코드가 본 판을 실음(명세 17장 규칙 3).
판이 다른 인계 줄은 내역서에서 「확인 대기」로 빠지고, 코드에 박힌 절 번호(합산 단계·표 형태 판정·가드 목록)는
마스터 판과 다르면 마스터 빌드·단가 조립을 멈춤(규칙 4). 판 기준은 common_util_pum_edition 한 곳.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 22:41:47 +09:00
eomsangdon e88877d81e Merge remote-tracking branches 'origin/CODEX' and 'origin/안티그래비티' into sub_laptop_1 2026-09-13 22:37:41 +09:00
eomsangdonandClaude Opus 5 41e0b5b7ea fix(b09): 구조물도 호표 내역 단가를 호표 계금으로 — 화면과 1원 갈림 없앰
- 내역 단가 = 구조물도 일위대가 표 계금(성분 칸 0.1원 절사 합의 1원 절사), 금액 = 성분 소계 × 연장
- 명세 7장 「호표 안 성분 소계는 절사」 — 안 자른 값을 쓰면 192,429 ↔ 192,430 으로 갈렸음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 22:35:41 +09:00
eomsangdon f8b24b354a docs(stmate): compare cost formats and stages 2026-09-13 22:30:17 +09:00
eomsangdon 846c4bba57 knowledge(법률): 폐기물 관계 법령 원문 편입 2026-09-13 22:30:15 +09:00
eomsangdon d1958d067b Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 22:20:33 +09:00
eomsangdonandClaude Opus 5 c2e3c4cda2 feat(b09): 구조물도 일위대가를 내역으로 받는 문 — 호표 B-AX-ST-<8hex>#<제원 키>
- 양식 일위대가로 셀 구조물도 장은 인계 줄 하나(코드 AX-ST · 갈래 = 제원 키 · 수량 연장 m)
- 양식이 품은 줄(기초잡석)은 따로 인계 안 함 — 이중계상 막음
- B09 내역이 자기 단가표로 B08 일위대가 엔진을 돌려 금액 · 못 받거나 막히면 사유
- 수동 단가도 씀 — 내역 요약에 미확정 N건

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 22:20:26 +09:00
eomsangdon 6634e21713 Merge remote-tracking branches 'origin/CODEX' and 'origin/sub_laptop_1' into main_laptop_1 2026-09-13 22:19:58 +09:00
eomsangdonandClaude Opus 5 938eef94bd feat(axis): 이중계상 경계를 갈 곳 칸으로 판정 — 어기면 내역서가 멈춤
① 구조물 터파기·되메우기는 토공집계로만 — 토공·사토 공제·참고로 가는 성분을 구조물 줄·묶음 조각·타설·기초잡석이 또 집으면 오류.
② 시멘트·모래·자갈이 자재총괄에 뜨면 오류. ③ 원단위표가 할증을 붙였거나, 자재 합계가 순수량 × (1+율) 과 다르거나,
할증 포함 재료량을 준 공종에 자재가 일위대가 재료비로 붙으면 오류.
판정은 B08 인계(double_count_violations), 멈춤은 B09 build_bill 한 자리. 배정 프로젝트 실측 어긴 자리 0건.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 22:18:00 +09:00
eomsangdon 004a1e21ab docs: STmate 원가 수량 화면 구조 정리 2026-09-13 22:16:59 +09:00
eomsangdonandClaude Opus 5 44b20ed21f fix(b09): 내역 받는 문 이름 맞춤 걷기 — 운반 줄 단가를 그 줄에서, 총 절취량을 코드로
- 운반 줄 단가를 이름으로 되찾던 자리를 인계 줄 → 내역 줄 짝으로(도자운반 토사·리핑암 같은 이름 실결함)
- 총 절취량 검산을 줄 이름 「깎기」·「절취」가 아니라 코드 9-3·9-4·9-5 로 셈

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 22:12:17 +09:00
eomsangdon fd4f00ab7e Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-13 21:57:22 +09:00
eomsangdon ec194ee05b Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 21:57:21 +09:00
eomsangdonandClaude Opus 5 cacbb08f10 fix(axis): 미판정 표 형태를 사람이 가름 — 66표 판정·까닭 한 줄, 찰쌓기(인력) 막힘 풀림
자동 판정이 못 가른 76표 중 64표와 오판 2표(13-4-4 뒷길이 표준·표준경사)를 표 머리·바로 위 본문 단위로 가름.
생산량형 8 · 소요량형 1 · 계수 23 · 참조 34. 못 가른 13표는 미판정으로 남김.
표 번호와 절 번호를 함께 대조해 원천 차례가 밀리면 빌드를 멈춤. 일위대가 금액 변화 없음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 21:56:39 +09:00
eomsangdonandClaude Opus 5 46b582762c feat(b08): 구조물 집계표 칸 고치기 — 정본에 바로 쓰고 손댄 칸을 표시
- 칸 조작은 캐시(sessionStorage)에, [저장] 때 structures.json·pipe_points.json 에 바로 씀
- 산출 조건에 손댄 칸 표(고치기 전 값) · ↺ 로 되돌리면 자동으로 돌아감
- 상세 칸만 고침 — 자리·길이·높이·관경은 시·종점과 한 벌이라 구조물 놓기(B05) 몫
- 틀린 값·놓기 칸·판번호 어긋남은 아무것도 안 씀 · 값 꼴은 구조물도 제원 저장과 같음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 21:55:50 +09:00
eomsangdon 644640ee59 Merge remote-tracking branch 'origin/CODEX' into main_laptop_1 2026-09-13 21:42:49 +09:00
eomsangdon e3c1119f5d Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 21:42:48 +09:00
eomsangdonandClaude Opus 5 1c79fc288c fix(axis): 표 읽기 — 콘크리트 포장 12-6 두께별 작업조 · 인력 돌쌓기 13-4-1/4 두 단 머리
12-6 은 두께 칸이 작업조 칸과 엇갈려 병합된 표라 두께 줄을 시공량 갈래로 읽음(20·30·40㎝, ㎥당).
후진 진입·경운기 칸은 「50%까지 감」 범위라 안 세움. 공종 단위가 빈 작업조 표는 시공량 열 머리 단위를 씀.
13-4-1·13-4-4 는 hwpx 병합대로 앞 세 돌 골·켜 두 잎 + 호박돌 및 야면석 한 잎으로 갈래를 세움(각 40 갈래).
13-4-4 는 같은 절의 표준경사 표 오판정으로 아직 막힘 — 형태 판정 일감으로 넘김.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 21:42:23 +09:00
eomsangdon 4a4f935c3f docs: 성토사면다짐 품셈 대응 확정 2026-09-13 20:38:00 +09:00
eomsangdon b139cc79b8 docs(경쟁사): 품셈 판 대응 확정 2026-09-13 20:26:31 +09:00
eomsangdon d35c5082d9 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 20:13:10 +09:00
eomsangdonandClaude Opus 5 d9c84aaaf0 feat(b08): 구조물 집계표 탭 — 측점별 한 줄·종류별 표·칸마다 출처
- 정본 둘(structures.json·pipe_points.json)과 B06 관 연장을 읽어 종류별 표로 세움
- 한 줄 = 측점 + 실치수(제원 칸) + 개소·연장 · 표마다 개소·연장 합·평균치수
- 칸 출처 자동·사용자·라이브러리(양식 기본값)·빈칸 · 배수관과 세월교는 다른 표
- 이 표에서 고친 값을 B05 가 바꾸면 빨간 테두리와 알림(조용히 안 사라짐)
- 구조물도 탭 앞에 탭 등록

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 20:12:24 +09:00
eomsangdon be1dfcd3a1 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 20:00:38 +09:00
eomsangdonandClaude Opus 5 980c5440a0 fix(axis): 표 읽기 — 단끊기 5-16-1 공정 줄 합산 · 「(인/100m당)」 꼴 밑수 22표
단끊기는 공정 네 줄을 토질 갈래마다 더하고 [주]⑤ 작업반장 1인/보통인부 20인을 더함.
원문 합계 줄은 절취를 ㎥당으로 더한 값이라 안 씀(까닭을 적은 공종만 섬). 같은 모양 뭉기기 13-12-1 은 안 더함.
「단위:」 없이 분모만 적은 본문 밑수를 읽어 조림·시비·떼심기 22표가 밑수 없음에서 풀림.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 20:00:15 +09:00
eomsangdonandClaude Opus 5 9a758c4d27 feat(axis): 모르터 줄 공종 코드 AX-WK-c0842a0d 모르타르 배합 1:3 — 찰쌓기 일위대가 표의 막힌 줄이 열림
산림 품셈엔 배합 절이 없어 건설 품셈 [건축] 9-1-1 을 옮김 — 보통인부 0.66인/㎥(모래체가름 포함).
시멘트 510kg·모래 1.10㎥ 는 자재 단가 층이 없어 안 붙은 줄로 드러냄(원문 할증 포함 값).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 19:51:40 +09:00
eomsangdon d72f6ed13a Merge remote-tracking branch 'origin/CODEX' into sub_laptop_1 2026-09-13 19:47:35 +09:00
eomsangdonandClaude Opus 5 aab43d652c feat(b08): 구조물도 일위대가 줄 고치기 — 줄 더하기·빼기·고르개·단가 수동, 저장 자리 둘
- 줄 조합은 양식+프로젝트(종류별), [내 라이브러리에 저장] 때 양식에 실림
- 수동 단가는 프로젝트만(값·출처·넣은 날짜) — 빨간 테두리 + 「미확정 N건」
- 고르개는 이 프로젝트 단가표에서 품셈·자원을 낱말로 찾음
- 다른 양식을 가져오면 그 종류의 줄 조합·수동 단가도 비움

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 19:46:29 +09:00
eomsangdon 200d230d5f docs(경쟁사): 임도품셈 판 대응표 추가 2026-09-13 19:44:56 +09:00
eomsangdon 628a5375c3 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-13 19:26:44 +09:00
eomsangdonandClaude Opus 5 054af7bde8 feat(b08): 구조물도 일위대가 재귀 — 하위 구조물 양식을 제원으로 풀어 윗 표에 넣음(5단까지)
- 줄이 B-AX-ST-* 를 가리키면 그 양식을 sub_vars 제원으로 L=1 풀고 일위대가를 먼저 세워 안 자른 단위당 금액을 씀
- 깊이 5단(PLAN 10장 판정) · 돌면 막힘 · 하위가 미완이면 윗 줄도 막힘 · 제원이 비면 막힘(0 으로 안 풂)
- 하위 양식은 프로젝트에 박힌 것 + 프로그램 기본에서만 찾음(개인·회사 단은 안 읽음)
- 시험 3개 추가 · 전체 1548 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 19:25:33 +09:00
eomsangdon d652f61093 Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1 2026-09-13 19:21:41 +09:00
eomsangdonandClaude Opus 5 488074151c fix(b09): 깨기 대형브레이커에 굴착기 몸체 시간도 붙임 — 부착 장비라 몸체 없이 못 돎
- 9-12·9-13 「대형브레이커(㎥/hr)」 줄에 같은 표의 굴착기를 같은 1/Q 로 붙이고 #조합(잡재료 16%)으로 바꿔 닮
- 구조물터파기·측구터파기 암·발파암 갈래 단가가 몸체 장비비만큼 오름

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 19:20:57 +09:00
eomsangdon 786d223463 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 19:16:46 +09:00
eomsangdonandClaude Opus 5 3c47120f2a feat(b08): 구조물도 하단 일위대가 표 틀 — 양식 줄 조합 × B09 단가표 미리보기
- 양식에 unit_price.rows(수량은 원단위 줄 from_row · 코드는 work_item_code+variant_from 또는 ref_code)
- 서버가 B09 단가표(PriceBook.resolve, 읽기만)로 줄마다 재료·노무·경비 · 금액란 0.1원 버림 · 계금 1원 버림
- 못 푼 줄은 막힘 + 까닭(0 아님), 원단위 줄이 안 선 장은 안 섬 · 단위 다름·하위 구조물(B-AX-ST)은 막힘
- 창구 /structure-sheets/unit-price 를 장 조회와 따로 둠(단가표 첫 조립 14초)
- 찰쌓기: 돌쌓기 B-FP-13-04-05#갈래 · 기초잡석 B-FP-12-25 · 모르터는 공종 코드 미정
- 시험 4개 추가 · 전체 1539 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 19:15:18 +09:00
eomsangdon a10432d201 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 19:12:20 +09:00
eomsangdonandClaude Opus 5 a81bc844fb feat(axis): 부모 공종 모양 parent_mode — 단계 합산형 조립으로 흙깎기 암절취 금액이 섬
- 마스터 부모 94곳에 parent_mode — 기본 choose_one, 합산형은 사람이 적은 셋(9-4·9-5·12-38)만 단계·가중치
- 9-4 암절취 = 암파쇄(연암·보통암·경암, 브레이커+굴착기 조합 1/Q) + 집토(굴착기 0.7 공식) 합으로 조립
- 표에 없는 암질은 9-4-1 [주]① 평균으로만 섬 · 9-5 발파암은 발파 단계(착암기 층 없음) 사유로 막힘
- B08 인계가 흙깎기 암 갈래 이름을 갈래 값으로 넘김 · 갈래 고르기형 부모를 가리키는 줄은 오류로 막음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 19:09:39 +09:00
eomsangdon a484783d6f Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-13 18:54:53 +09:00
eomsangdon bb479aaf98 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 18:54:14 +09:00
eomsangdon 5400096c8c auto: 2026-09-13 18:53 (ESD_LAPTOP) 2026-09-13 18:53:58 +09:00
eomsangdonandClaude Opus 5 c441acf364 knowledge(축C): 브레인 지침·작업기억을 .claude 로 옮기고 명세는 링크만
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 18:53:57 +09:00
eomsangdonandClaude Opus 5 1df51b0334 Merge origin/dev into sub_laptop_1 — 양식 파일 충돌 풂(돌 줄 부채 걷음 + 반올림 칸 둘 다 살림)
- dev 8210c2b7: 돌 줄 이름 「돌」 + 규격에 종류(_downstream_name 걷음) 그대로 취함
- sub_laptop_1 cf0ccfac: _user_basis(식·반올림 근거) · m당 풀이 × 연장 그대로 둠
- 병합 뒤 전체 1535 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 18:53:57 +09:00
eomsangdon d37dd2dc27 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-13 18:48:55 +09:00
eomsangdonandClaude Opus 5 d64f307b5d knowledge(축C): 브레인 인수인계 절 신설 — 요약·교대에도 이어지게
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 18:48:47 +09:00
eomsangdonandClaude Opus 5 cf0ccfac36 feat(b08): 구조물도 줄마다 반올림 칸 — 엑셀 함수 이름을 함께, 원단위도 m당 반올림 × 연장
- 식 칸 옆 반올림 고르개·자리수 · 고르개에 「버림 — 엑셀 ROUNDDOWN」처럼 엑셀 이름과 음수 보기
- 고친 반올림은 고친 식과 같은 자리(양식 + 프로젝트)에 저장 · 양식과 같으면 지움 · [양식대로]로 식·반올림 함께 되돌림
- build_table 도 양식을 m당(L=1)으로 풀고 연장을 곱함 — 실무 시트처럼 뒷줄이 반올림한 값을 보고 구조물도와 안 갈림
- 「대안 후보」(물구멍 2.5㎡ 등) 표 밑에 보임 · UI 700줄 넘어 식 칸 표를 _Formula.ts 로 뗌
- 시험 2개 추가 · 전체 1533 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 18:47:35 +09:00
eomsangdon cefbd0e3d1 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 18:37:30 +09:00
eomsangdonandClaude Opus 5 8210c2b756 fix(b08): 돌 줄 과도기 부채 걷음 — 이름 「돌」 + 규격에 종류, 자재총괄은 이름·규격·단위로 묶음
- 양식 갈음의 종류 이름 치환(_downstream_name) 삭제 · 돌쌓기·골막이·바닥막이(메) 전개도 「돌」+규격
- 자재총괄 줄에 spec·supply_key — 관급구분 열쇠는 이름+규격, 옛 열쇠(이름만·종류 이름)도 받음
- 화면 자재총괄 이름 칸·원단위 성분 칸에 규격 표시, 관급 선택은 supply_key 로 저장
- 원단위 합계 열쇠에 규격 포함 · 종류 이름 DESTINATION 항목 정리

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 18:36:37 +09:00
eomsangdonandClaude Opus 5 13b29d620f feat(b08): 내 라이브러리에 저장·내 것 지우기 — 개인 단만 씀, 프로젝트 작업본은 그대로
- [내 라이브러리에 저장]: 그 장의 양식 + 고친 식을 로그인한 사람 개인 단에 한 벌로 씀(같은 종류는 그 코드로 덮어씀) · 저장 안 한 식이 있으면 막음
- [내 것 지우기]: 개인 단의 그 종류만 지움 · 박힌 양식·고친 식은 안 바뀜
- 기본 찰쌓기 양식에 pum_edition 2026-01-01(명세 17장 ③)
- 결함: 식 저장 뒤 다시 그린 표에 「저장 안 한 식」 표시가 남아 헛물음이 뜨던 것 — 장을 그릴 때 비움
- 시험 2개 추가 · 전체 1531 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 18:32:31 +09:00
eomsangdon 8adeae769c Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 18:21:44 +09:00
eomsangdonandClaude Opus 5 4f1521eea9 feat(b08): 구조물도 양식 가져오기 — 3단 목록은 고를 때만, 표는 프로젝트에 박힌 양식만 읽음
- 라이브러리 항목을 목록으로(항목마다 AX-ST-<8hex>.json) · 기본 찰쌓기에 코드 부여
- 가져오기: 로그인한 사람의 개인·회사 단 + 프로그램 기본에서 골라 {프로젝트}/B08_Quantity/library 에 박음 · 그 종류의 고친 식은 비움
- 표·원단위·자재총괄·인계는 박힌 양식 → 없으면 프로그램 기본만 읽음(여는 사람마다 값이 안 갈림)
- [확정] 때 아직 안 박힌 기본 양식을 박음 · 장 머리에 「어느 단에서 가져왔나 · 고친 식 N줄」
- 시험 test_b08_structure_library.py 6개 · 전체 1524 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 18:21:19 +09:00
eomsangdon 859acec6e9 Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1 2026-09-13 18:07:16 +09:00
eomsangdonandClaude Opus 5 6905cd1eb5 fix(axis): 표 읽기 2차 — 절 이름 밑수 · 조합 기종 앞머리 · 합판거푸집 막힘 사유
- 마스터 생성기: 밑수가 절 이름에만 있는 표를 이름 전체가 「수+단위+당」일 때만 읽음 —
  4-2-1 「100본당」·4-2-2 「1,000㎡당」 두 표만 바뀜(재생성 diff 2표 · basis_missing 140→138)
- 뭉친 줄 조합 기종: 앞머리를 공백 지우고 견줌 — 「굴착기+부착용집게」가 카탈로그 「부착용 집게」에 붙어
  단목베기 4-2-2 가 섬(X-0201-0020#조합 + 부착용 집게)
- 실무 대조: 단목베기 5m 미만 866원/㎡ ↔ 영월 설계내역 「잡관목제거 벌목(5m미만)」 882원/㎡(노임 연도 차 2%)
- 합판거푸집 12-4: 사용횟수별 비율 미구현이라 일부러 안 풂 — 막힌 사유를 그 까닭으로 갈아 끼움(판정)
- 일위대가 HEAD↔수정 대조: 바뀐 공종은 FP-04-02-02 하나 · 전체 시험 1522 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 18:05:02 +09:00
eomsangdonandClaude Opus 5 2ffb913c36 fix(b08): 고친 식을 장 이름 대신 양식 + 프로젝트에 묶음 — 제원을 고쳐도 식이 따라감
- 저장 칸 structure_formula_overrides 의 키를 장 이름에서 양식 type_id 로 바꿈(브레인 판정, PLAN 10장)
- 구조물도·build_table 모두 type_id 로 찾음 · 같은 양식의 장이 모두 같은 고친 식을 받음
- 화면 안내에 「같은 양식의 장 모두에 걸림」 · 시험: 뒷길이를 고쳐 장 이름이 바뀌어도 사용자 식 남음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 18:02:50 +09:00
eomsangdon f18059b23f Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 17:54:30 +09:00
eomsangdonandClaude Opus 5 eb12eec35a feat(b08): 구조물도 식 고치기 — 화면 즉시 계산 · 저장은 서버가 다시 풂
- 양식 장의 식 칸을 화면에서 고치면 같은 풀이기(TS)로 왕복 없이 즉시 다시 풂
- [식 저장]은 식만 보내고 서버가 Node 로 다시 푼 값을 돌려줌 — 브라우저 값을 받아 적지 않음
- 고친 식은 프로젝트 장 단위(산출 조건 structure_formula_overrides) · 양식 식과 같거나 비면 지움
- 원단위·자재총괄·인계·유토 입력(build_table)도 같은 고친 식을 봄 · 고친 줄 출처 user(「사용자 식」)
- 틀린 식도 막지 않고 저장하되 줄마다 오류를 돌려줌 · 양식에 없는 줄 차례는 400
- 개인 라이브러리 저장 단추는 4장(라이브러리 저장소) 몫으로 남김

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 17:52:20 +09:00
eomsangdonandClaude Opus 5 4eceedc7d9 fix(axis): 표 읽기 1차 — 뭉친 줄 표기 맞추기·비고 거름·「-」 칸 · 지장목제거를 품셈에 이음
- 뭉친 줄 해석기: 「굴 삭 기 (무한궤도)」를 굴착기(무한궤도)로 맞춰 큰돌쌓기 메쌓기(13-6-1)·
  13-7-2 장비 몫이 붙음(형식을 적은 이름만 · 형식 없는 굴삭기는 판정 Ⓒ대로 규격 미정)
- 비고·합계 줄을 자원으로 안 읽음(단목베기 4-2-2 가짜 막힘 제거) · 「-」 칸은 그 갈래에 품 없음
  (산림복원용 흙막이 13-13-2 가 특별인부·굴삭기 빠진 채 조용히 서던 것을 사유와 함께 막음)
- 지장목제거(판정 Ⓑ): 잡관목제거 → FP-04-02-02 #5m미만 · 뿌리뽑기 → FP-09-21 + 임목축적 등급 갈래 ·
  준비공 「제근·뿌리다듬기」는 같은 면적이라 참조로만(이중계상 막이) · 미결 목록에서 뺌
- 기계 이름 별칭(백호·굴삭기→굴착기)은 별칭표 대상이 아닌 카탈로그 이름 정규화로 주석 정리
- 일위대가 전후 대조(HEAD↔수정): 새로 선 공종 13-6-1·13-7-2 · 새로 막힌 공종 13-13-2(사유 있음) ·
  내역 금액: 단목베기·제근은 밑수 미확보로 계속 막혀 변화 없음 · 전체 시험 1513 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 17:52:04 +09:00
eomsangdonandClaude Opus 5 6f7ed9d09c feat(b08): 원단위·자재총괄·인계도 양식 값으로 — build_table 이 양식 있는 종류를 갈음
- build_table 이 양식 있는 종류(찰쌓기) 성분을 양식 풀이 값으로 갈음. 양식 없는 종류는 전개 그대로
- 구조물에 library_item — 원단위 탭 「양식」·구조물도 머리 「양식 있음/없음」으로 가림
- 뒤 단계가 아직 이름으로 찾으므로 돌 줄은 종류 이름으로 넘김(1장 코드 잇기 뒤 걷을 자리) ·
  자료 출처·근거 문구는 전개 것을 그대로 둠
- 검증 프로젝트 전·후 대조: 구조물 5 중 찰쌓기 2 갈음 · 움직인 값 없음 · 자재총괄 최대 차 7e-15 ·
  채집석 공제 58.674·잔토 91.75 그대로. Node 가 안 돌면 전개 값 + 사유

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 17:39:36 +09:00
eomsangdon 5a619e8a20 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-13 17:25:27 +09:00
eomsangdonandClaude Opus 5 1375d8c290 feat(b08): 구조물도 탭에 양식 식을 실음 — 산출 기초·식·갈 곳·안 섬
- 양식이 있는 종류(찰쌓기)는 장마다 양식으로 줄을 다시 세움(L=1 m당) — 식·설명·반올림·
  갈 곳·출처·안 섬 까닭을 줄에 실음. 양식 없는 종류는 지금 전개 그대로(고정형 모양)
- 화면 표: 산출 근거 밑에 식 한 줄 · 갈 곳 칸 · 안 선 줄은 「안 섬」과 까닭
- 전개 결함 둘 고침(브레인 판정): 「실무 관행」 계수가 돌종류를 지우던 것 ·
  기초잡석이 서는데 「두께가 없어 안 섬」 사유가 함께 뜨던 것
- 검증 프로젝트 찰쌓기 15줄 — 양식 m당×10 = 원단위 탭 합계 전부 일치

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 17:23:12 +09:00
eomsangdonandClaude Opus 5 a08938ea1a refactor(aliases): 별칭표를 한 벌로 — 범위(scope)·판을 붙여 B08·B09 가 같은 파일만 읽음
- 정본 resources/data_aliases/aliases_2026-01-01.json · 로더 common_util/common_util_aliases.py
  (칸 빠짐·모르는 축·겹친 범위의 두 대상은 읽을 때 오류 · 판이 다르면 안 씀 · 양방향 조회)
- 흩어진 세 벌을 옮김: 매핑표 ground_aliases(리핑암→파쇄암·암절취) 삭제 ·
  B09 UnitPrice 전역 VARIANT_ALIASES 삭제 · B08 인계본 ground_class_aliases 는 별칭표에서 만든 보기
- 범위: 리핑암→파쇄암 @FP-10-11 · 리핑암→암절취 @FP-10-12 · 화약공→1016 @FP-09-05 (근거 문구 줄마다)
- 자원 축 별칭 검사도 같은 로더로 합침(자원 목록 폴더에서 별칭 파일을 옮김)
- 시험 test_common_aliases.py 6건 · 전체 1509 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 17:22:17 +09:00
eomsangdon 2ebcf89f04 Merge remote-tracking branch 'origin/sub_laptop_1' into main_desktop_1 2026-09-13 17:09:49 +09:00
eomsangdonandClaude Opus 5 40e60f4947 fix(b08): 돌쌓기 물구멍관 개소당 길이를 평균두께로 — 전개·양식 함께
- 브레인 판정(PLAN 10장): 관이 벽을 가로지르므로 개소당 길이 = 평균두께(옛 붙박이 0.5m)
- 골막이는 그 정본이 0.5 라 그대로 둠
- 찰쌓기 양식 물구멍관 식도 같이 고쳐 대조 시험 121건 그대로 일치, 길이 시험 1건 추가

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 17:08:59 +09:00
eomsangdon 0f680bd39e Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 17:06:00 +09:00
eomsangdonandClaude Opus 5 f1ba36da5b chore(plan): 받기 앞 공용 문서 다섯을 dev 와 같은 내용으로 등록 (blob 대조 일치)
- 브레인 복구분(29180653) 넷 + 명세 갱신본 — origin/dev 와 hash-object 대조로 같은 내용임을 확인

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 17:05:56 +09:00
eomsangdonandClaude Opus 5 c541a6bd2f feat(b09): 자원 축 조인 키 — 카탈로그 밖 자원(AR-) 목록·규격 조인·범위 별칭
- 자재 0 해소 첫 걸음: 사급 자원 19건(AR-M 17·AR-X 2, 이름·규격·단위, 단가 칸 없음)
  resources/data_resource_catalog/ 신설 — 임도 60 + 사방 11 코드 범위의 진짜 자원만
- 규격이 조인 키: AR 항목은 후보가 하나여도 규격이 같아야 고름 · 품셈 칸에 규격이
  없으면 「규격 미정 — 후보 N」(성공으로 안 셈)
- 형식이 하나뿐인 계열만 규격으로 고름(공기압축기(이동식) 3.5·10.3) · 형식 둘이면 규격 미정
- 범위 별칭 한 벌: 화약공→화약취급공(1016) scope FP-09-05 · pum_edition 다르면 안 씀 ·
  scope 없음·겹친 두 코드는 읽을 때 오류
- 일위대가: 맞췄으나 단가 층 없는 줄은 조용히 안 빠지고 드러냄 · 기계 몫이면 막음
- ResourceAxis.py 700줄 초과분(조사용 덤프)을 _Dump.py 로 뗌
- 돌망태 품셈 절 표기 13-8 → 13-11 바로잡음
- 결과: 자원 줄 575→592(자재 0→11) · 못 맞춤 508→491 · 내역 금액 변화 0(막힌 공종 그대로)
- 시험 test_b09_resource_axis_join.py 8건 · 전체 1377 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 17:05:36 +09:00
eomsangdon 488941fd72 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 17:02:38 +09:00
eomsangdonandClaude Opus 5 31c2602f4b feat(b08): 찰쌓기 양식 한 벌 + 식 칸 셋(when·destination·spec) — 지금 전개와 값 대조
- 풀이기에 명세 13장 보강분: when(안 선 줄, 가리키면 오류) · destination 필수(기본값 없음) ·
  spec 의 {제원} 채움 · 반올림 trunc(ROUNDDOWN)·ceil_away(ROUNDUP)
- resources/library_structure/masonry_wet.json — 줄 15 · 뒷길이×돌종류 표 · 제원 vars ·
  물구멍 2.5㎡ 실무 관측은 대안 후보로
- 양식 제원 채우기 B08_Quantity_Engine_StructureTemplate.py(계산 없음)
- 대조 시험 121건: 높이·뒷길이·돌종류·기초·사용자 칸·when 갈래에서 전개와 한 줄도 안 갈림.
  알려진 차이 하나(실무 관행 계수가 돌종류를 지우는 전개 결함)는 시험에 드러냄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 17:02:26 +09:00
eomsangdonandClaude Opus 5 c31e6e71a4 knowledge(축C): 콘크리트 축 닫음 — 타설은 공종·레미콘은 자재, 기술정보DB 근거
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 16:55:49 +09:00
eomsangdon 755bb60185 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-13 16:51:42 +09:00
eomsangdonandClaude Opus 5 29180653ea fix(docs): auto 커밋 ccd1ec2a 가 지운 문서 4건 복구 (1,789줄)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 16:51:31 +09:00
eomsangdonandClaude Opus 5 f983f4566f knowledge(축C): 식 칸 셋 보강 — when·destination·이름고정. destination 기본값 금지
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 16:50:52 +09:00
eomsangdonandClaude Opus 5 848d3d1ddd knowledge(축C): 반올림 모드 둘 신설 — 엑셀 ROUNDDOWN·ROUNDUP 이 floor·ceil 과 음수에서 갈림
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 16:50:06 +09:00
eomsangdon 75b8532145 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 16:49:43 +09:00
eomsangdon 09f99fd1ae auto: 2026-09-13 16:49 (ESD_LAPTOP) 2026-09-13 16:49:07 +09:00
eomsangdon 6a5495e2db Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1 2026-09-13 16:48:45 +09:00
eomsangdon b13fb397ad auto: 2026-09-13 16:48 (ESD_LAPTOP) 2026-09-13 16:48:17 +09:00
eomsangdon e5f34ae0f0 Merge remote-tracking branch 'origin/main_desktop_1' into sub_laptop_1 2026-09-13 16:47:07 +09:00
eomsangdon 4135496d2e Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 16:47:07 +09:00
eomsangdonandClaude Opus 5 197728d6c9 feat(b08): 구조물도 식 풀이기 — TS 한 벌을 화면·서버 Node 가 같이 씀
- 명세 13장 식 언어(사칙·^·비교·SQRT·MIN·MAX·SUM·IF·LOOKUP 근사/EXACT)를 직접 짠 파서로 풂
- 수는 BigInt 분수로 들고 적힌 차례대로 풂 — 부동소수 버림·반올림 1 틀어짐 막음
- 줄마다 반올림 floor·round(사사오입)·ceil·none·round_half_even, refs 는 앞 줄만
- 서버는 build:formula 번들을 Node 로 부름(B06 Server_Calc 본), 파이썬은 껍데기뿐
- 시험 15건 — 실무 찰쌓기 탭 12줄 엑셀 캐시값 재현 포함

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 16:46:54 +09:00
eomsangdonandClaude Opus 5 9bdc1a6593 knowledge(축C): 공종 코드가 품셈 판에 묶임 — 절 대응표·pum_edition 규칙
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 16:45:31 +09:00
eomsangdon ccd1ec2a50 auto: 2026-09-13 16:43 (EOMSANGDON-HOME) 2026-09-13 16:43:29 +09:00
eomsangdonandClaude Opus 5 8f19ba843f knowledge(축C): 일위대가 레시피 350개 편입 — 규격별 수량표로 접기·읽기 함정 둘
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 16:43:22 +09:00
eomsangdon d5949b1e33 Merge remote-tracking branch 'origin/CODEX' into main_desktop_1 2026-09-13 16:42:02 +09:00
eomsangdon 0a3cb8a33b docs(경쟁사): 특수산식과 현행품셈 대조 2026-09-13 15:37:07 +09:00
eomsangdonandClaude Opus 5 15c4204006 knowledge(축C): 별칭 후보 넷 판정 — 별칭 1·표읽기 1·규격고르기 2
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 15:17:20 +09:00
eomsangdon 321a086084 Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-13 15:16:01 +09:00
eomsangdonandClaude Opus 5 68634e5f63 knowledge(경쟁사): 일위대가 레시피 사전 350개 — 누락 감사 포함
목적: 값이 아니라 조합을 확보하는 것. 표준일위대가 배포본은 암호화라 못
읽지만 실무에서 실제 쓴 조합은 출력 엑셀에 평문으로 남음.

누락 감사 — 호표 526개를 하나씩 셈
- 일위대가표 170개 전부 추출, 누락 0
- 중기사용료 143개 전부 추출, 누락 0
- 단가산출근거 213개 중 187 정상 + 빈호표 5 + 못잡음 21
- 못 잡은 21개는 전부 정체 확인함. 운반 계산(거리·속도 인자만 있음)과
  기계+인력 비율 조합이라 「자원 조합」이 아닌 것. 값을 못 읽은 게 아님
- 빈 호표 5개는 무대처리·흙쌓기 등 금액 0원 항목
⇒ 설명되지 않는 누락 0건

확보한 조합 350개 (중복 제거)
- 일위대가 132 · 단가산출 136 · 중기 82, 구성행 1,729 (조합당 평균 4.9)
- Q식을 가진 조합 107개
- 150/350 이 다른 호표를 참조 — 2단 이상으로 쌓임
-  규격이 바뀌면 구성은 같고 수량만 비례 (기슭막이 H=2.0 vs 2.5).
  한 조합 + 규격별 수량표로 접을 수 있음
- 건설표준품셈이 23개 조합에 근거로 적혀 있어 현행 갱신 시 대조점이 됨

⚠ 수량은 그 시점 품셈값이므로 조합은 그대로 쓰되 수량은 현행 품셈으로
다시 맞춰야 함.

30_원자료/일위대가_레시피.json (265.8 KB) 와 감사 기록 저장.
문서 31 신규.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 15:12:35 +09:00
eomsangdon ba2f051bd8 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 15:11:46 +09:00
eomsangdon af504d6694 auto: 2026-09-13 15:11 (ESD_LAPTOP) 2026-09-13 15:11:18 +09:00
eomsangdon d12a526012 Merge remote-tracking branch 'origin/main_desktop_1' into sub_laptop_1 2026-09-13 15:11:00 +09:00
eomsangdon db681abada Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 15:11:00 +09:00
eomsangdonandClaude Opus 5 6a4507e596 chore(plan): 받기 앞 공용 진단 문서를 dev 와 같은 내용으로 등록 (blob 9ed418e8 대조 일치)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 15:10:56 +09:00
eomsangdonandClaude Opus 5 78b5ba0b71 knowledge(축C): 식 언어 확정(비교·SUM·LOOKUP 근사·round 사사오입) · 별칭과 대체 가름
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 15:09:54 +09:00
eomsangdon 3fbc132625 Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1 2026-09-13 15:07:47 +09:00
eomsangdonandClaude Opus 5 820767e4af knowledge(축C): 자재 0 과 못 맞춘 줄 진단 — 임도 범위 138줄·진짜 자원 40종
- 자재 0 의 뿌리: 사급 자재 카탈로그 부재(관급 나라장터뿐) · 품셈 칸 규격 없음 ·
  자재 칸에 섞인 경비·작업 단계 · 구조물 표는 값 없이 이름만
- 못 맞춘 508 중 임도 60코드 몫 138줄, 절반은 표 딱지를 이름으로 읽은 표 읽기 문제
- STmate 목록이 이름·규격을 대는 것 13종 · 판정 물음 넷
- 코드 무변경(메모리 실행 진단)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 15:06:34 +09:00
eomsangdon 0de395b209 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 15:04:42 +09:00
eomsangdonandClaude Opus 5 533187e875 chore(plan): 받기 앞 공용 명세를 dev 와 같은 내용으로 등록 (blob 6aaac6ab 대조 일치)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 15:04:39 +09:00
eomsangdonandClaude Opus 5 3c5aa96fc3 refactor(b07): 표준도 목록·제원 칸을 B07 에서 걷어냄 — 구조물도는 B08 탭으로
- 도면 목록·단건 조회·화면 제원 칸·[여기서 고치기]·창구 함수 제거
- 도면 kind 에서 standard 를 뺌. 표·그림 조립(build_standard_drawing·그림)은
  B08 상단 그림 일감이 다시 쓸 자리로 남김
- 옛 [여기서 고치기] 시험을 B08 구조물도 탭 폼 자리 확인으로 바꿈

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 15:04:31 +09:00
eomsangdon 07ee2bf5c5 Merge remote-tracking branch 'origin/main_desktop_1' into main_laptop_1 2026-09-13 14:58:35 +09:00
eomsangdonandClaude Opus 5 d22b59ae5c knowledge(축C): 조사 실측 반영 판정 다섯 — 죽은 파일 정정·부모 두 모양·별칭 범위·갈래 키·콘크리트 보류
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 14:57:35 +09:00
eomsangdonandClaude Opus 5 f2819d513c feat(b08): 구조물도 탭을 수량산출 화면에 붙임
- 구조물 원단위 탭 앞에 「구조물도」 탭 등록(브레인 지정 배선 권한)
- 탭 차례 바꾸기·원단위 흡수는 PLAN 5장 몫이라 손대지 않음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 14:56:01 +09:00
eomsangdon e27e60c136 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 14:53:58 +09:00
eomsangdonandClaude Opus 5 30d0351ae6 chore(plan): 받기 앞 공용 문서 두 벌을 dev 와 같은 내용으로 등록
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 14:53:55 +09:00
eomsangdon f2bb66720c Merge remote-tracking branch 'origin/main_desktop_1' into main_laptop_1 2026-09-13 14:53:03 +09:00
eomsangdon d05debc12a Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 14:53:02 +09:00
eomsangdonandClaude Opus 5 3159043841 knowledge(축C): 식 칸 계약 신설 — 구조물도·라이브러리 양식형 공용
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 14:52:52 +09:00
eomsangdon b6005059da auto: 2026-09-13 14:52 (ESD_LAPTOP) 2026-09-13 14:52:44 +09:00
eomsangdonandClaude Opus 5 ea9dc220f8 knowledge(축C): 1장 첫 일감 — 공종 이름 잇기 전수 조사 (B05~B09)
- ① 이름 잇기 74자리 · ② 지반 갈래 어휘 8벌·별칭 사전 11곳 · ③ 코드 없는 공종 37
- 명세와 어긋나는 실측 다섯 — 자원 축 파일은 안 쓰는 옛것(지금 575줄·못 맞춤 508) ·
  부모 코드에 수량(FP-09-04·10-12·09-15 금액 안 섬) · 별칭은 표 범위에서만 참 ·
  #갈래 제목 202건이 한글 키 · 콘크리트 축 두 벌
- 코드 무변경. 곁 발견(자재총괄 누락·B07 확정 재계산 덮어쓰기)은 기록만

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-13 14:52:43 +09:00
eomsangdonandClaude Opus 5 0478fae9c2 knowledge(축C): 조달청 호환규정 XSD 근거 편입 · 규격이 조인 키임을 수치로 못 박음
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 14:50:35 +09:00
eomsangdon 385c89679d Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-13 14:49:36 +09:00
eomsangdon 2277d401fb Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_1 2026-09-13 14:48:37 +09:00
eomsangdon 07aa13da34 knowledge(경쟁사): 조달청 호환규정 XSD 사본·안내문 보관 2026-09-13 14:48:36 +09:00
eomsangdon 0c5c606295 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 14:48:36 +09:00
eomsangdonandClaude Opus 5 a4a2ecac48 knowledge(경쟁사): 조달청 공사원가호환규정 XSD 발견 — 국가 표준 납품 규격 전문
최종 빈칸 점검에서 확장자 기준으로 한 번도 안 연 파일을 훑다가 나옴.
28번의 「XML 스키마는 실행 중 조립이라 못 얻음」은 틀렸음 — 정정함.

System/Valid_Xml.vsl = 조달청 공사원가호환규정 V1.0.5 XSD 전문 (1,429줄)
- 조달청 공사원가통합관리시스템(npccs.g2b.go.kr) 발표하는 공개 규격.
  STmate 고유가 아니라 국가 표준이라 Aislo 가 그대로 따르면 됨
- complexType 32 · simpleType 21 · 열거형 40곳
- 같은 폴더에 「호환규정코드(2026_09_01)」 안내문도 있음

문서 뼈대가 우리가 판 STmate 구조와 한 겹씩 대응
- 일위대가/상세 · 중기단가산출 · 기계경비/상세 · 자재 · 노무 · 경비항목 ·
  실적단가 · 제경비항목 · 내역서→공종→세부공종

 규격이 우리 계약을 뒷받침함
- 제경비항목에 적용산식·적용산식설명 칸이 있음 = 「식을 데이터로 저장하라」가
  납품 규격의 요구사항이기도 함
- 직접공사비정보에 제요율적용제외공종_금액 이 박혀 있음 = C* 제외금액 구역과
  낙찰율 적용제외가 국가 표준에도 있는 개념

 기계경비 산출 규격이 우리가 캔 것과 정확히 일치
- 시간당노임산출 H0-일반구간·H1-터널구간·H2-장대터널·H3-펌프준설선·
  H4-그래브준설선·H5-버킷준설선·H_-사용자정의
  = 22번의 wM_Set_Sys cmBx_Sel_RX 와 하나도 안 틀림.
  Start8x.Ini 의 RXXNM·RX1NM~RX4NM 이 이 자리임
- 환율형식(USD/EUR/100엔)도 EXNM_·EXEUR·EXYEN 과 맞음
- ⚠ 시간당손료산출이 E0-주간·E1-야간·E2-2교대·E3-3교대 네 갈래.
  17번에서 뽑은 손료율 25개는 E0 하나뿐임

열거형 — 주공사 9종(국가유산수리 포함)·공사현장지역코드 290·인도조건 40·
시설물유형 27·지역구분 3(산간도서 포함)·내진등급·에너지효율·녹색건축 등

XSD 사본과 구조 덤프를 30_원자료에 넣음. 최신판은 npccs.g2b.go.kr 에서
직접 받을 것.

문서 30 신규, 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:48:14 +09:00
eomsangdon 90ff6d58de auto: 2026-09-13 14:48 (ESD_LAPTOP) 2026-09-13 14:48:13 +09:00
eomsangdonandClaude Opus 5 f20213592c feat(b08): 구조물도 엔진·창구·화면 조각을 B07 에서 B08 로 이관
- 장 나눔·제원 입력 엔진과 기울기 판정 대상을 B08 로 옮김
- 창구를 /quantity/structure-sheets 로 옮기고 기초잡석 두께·지반 갈래를 함께 넘김
  (옛 B07 창구는 두께를 안 넘겨 원단위 탭과 값이 갈렸음)
- 구조물도 탭 조각 renderStructureSheets 신설 — 탭 등록은 브레인 몫이라 안 붙임
- B07 표준도 목록은 탭 배선 날까지 B08 엔진·창구를 불러 그대로 둠

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 14:48:13 +09:00
eomsangdonandClaude Opus 5 8505f4b7be knowledge(경쟁사): 암호화 자료의 뼈대 — 값 없이 구조·규모를 잼
전제: 가격 값은 중요하지 않음. 반기마다 바뀌고 Aislo 는 자기 원천을 구독함.
중요한 것은 코드 체계·분류 깊이·명칭/규격/단위 자리·카탈로그 규모.

스키마는 암호화돼 있지 않음 — 막힌 것은 레코드 본문뿐
- JDCODE_*.BSC 12필드: 분류3단 + JDCODE(17자리) + NAME + SIZE(110자) +
  UNIT + EQCODE + GNCODE + TYP_STN + PSCODE + ST_NAME(표준명칭 별도)
- GRPCOD_*.BSC 7필드: CUR_COD/ROT_COD/LEV 부모-자식 트리 + 형제순서
- CSTA 32필드: 재·노·경 세 성분 두 벌 + _R 계열 + 비목별 요율

암호는 오프셋별 고정 변환
- 같은 필드 안에서 같은 평문은 늘 같은 암호문 (EQCODE 57,580행 단일 암호문)
- ⚠ 필드가 다르면 키가 다름. ROT_COD 가 CUR_COD 와 일치하는 비율 0.0%
  → 필드 안 동일성만 셀 수 있고 필드 사이는 못 이음. 트리 연결 복원 불가
- ②트랙의 STC 난독화 판정과 같은 결론이고 기준자료에서도 성립함을 확인

값을 못 읽어도 잰 것
- 자재 57,580건 전부 고유 코드인데 명칭은 1,761종뿐. 같은 이름이 규격만
  달리해 평균 33건씩 갈림 — 규격 매칭이 자원 축의 실제 난관임을 수치로 보임
- 단위 59종(자재)·130종(통합). 분류 4~5단 깊이, 상위 노드 596/5,792개
- 경비·중기는 EQCODE·PSCODE·ST_NAME 을 쓰고 자재는 안 씀
- 표준시장단가는 RATE_L(72종)만 채워지고 RATE_M·RATE_S 는 빈칸
  = 노무비만 요율 조정. 설치폴더의 「노임외 재료비적용」 파일명과 일치

⇒ 가격을 못 읽는 것이 축을 세우는 데 걸림돌이 되지 않음. 이름·코드가
필요하면 평문인 COSTN.DBF 쪽에서 얻음(894개 이미 추출).

문서 29 신규, 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:43:24 +09:00
eomsangdonandClaude Opus 5 34a36ff1b6 knowledge(축C): 이름·코드 894개 확보 반영 · 골든셋 어느 창에서든 실행 가능
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 14:39:39 +09:00
eomsangdon 4aebe69665 Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-13 14:38:06 +09:00
eomsangdonandClaude Opus 5 7129700b2d knowledge(경쟁사): 스크립트 경로 이식성 · 자원 코드·명칭 목록 894개 추출
브레인(데스크탑 메인) 요청 둘 처리.

① 16번 골든셋 재현 의존성
- 골든셋·단가조립·자재채택 계열은 로컬 원본 C:\경영정보(주) 를 안 씀.
  저장소 안 실무문서/ 자료만 봄 → 랩탑에서도 그대로 돎
- 다만 D:\aislo-wt\sub 절대경로가 박혀 있어 창마다 깨졌음.
  스크립트 23개를 저장소 뿌리 자동탐색(_repo_root)으로 고침
- 고친 뒤 골든셋 재실행해 6건 전부 여전히 초록 확인
- 로컬 원본이 필요한 25개는 설치폴더 분석용이며 검산과 무관

② 자원 이름·코드 목록 (단가 없이도 축 매칭에 쓸 것)
- STC 의 COSTN.DBF 가 평문이라 코드·명칭·규격·단위가 그대로 읽힘
- 실무 7건 합쳐 서로 다른 코드 894개
  M 재료 228 · D 단가산출 273 · B 일위대가 158 · X 중기 96 · S 경비 92
  · L 노무 37 · W 일식견적 10
- 출력 XLSX 의 목록표 시트 6종에서도 317개가 평문으로 읽힘
- 30_원자료/stmate_code_name_list.csv 로 저장 (code·name·size·unit)
- 곁들여 ST_U_Convert 에 노임 직종 사전 106종이 평문 (28번 §3.1)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:37:16 +09:00
eomsangdonandClaude Opus 5 be2b77fe7a knowledge(경쟁사): 변환·수량산출·식 언어 — 남은 모듈 훑기
식 언어의 변수 선언이 드러남
- 「금액변수 대상:M, 저장:S, %」「소계변수 대상:M, 저장:L, %」
- 변수마다 어느 비목에서 가져와 어느 비목에 넣을지와 비율 여부를 함께 지정.
  단가 식은 숫자 계산이 아니라 비목 사이의 값 이동임
- 금액변수/소계변수가 갈리고 「금액을 계산후 제외처리」가 따로 있음
- ⚠ 중기공식(Q식)을 사용자가 등록·수정·삭제함. 10꼴은 고정 목록이 아님

STmateQty8 — 수량산출서가 별도 파일이고 엑셀 셀에 별명을 붙여 변수로 씀
- 기본수량변수(내역에 붙음) ↔ 확장수량변수(셀별명, 중간값)
- 수량산출서 → 단가산출 전송 경로. Aislo B08 과 직접 겹침
- 표본 QCODE 가 전부 빈 표라 파일 형식은 못 봄

ST_U_Convert — 조달청·XML 양방향 변환이 프로그램 안에 있음
- Conv_Jodal_ST8 / Conv_ST8_Jodal / Conv_ST8_XML / Conv_XML_ST8
- MK_K_FLD·CHK_K_FLD 호환규정 필드 생성·검사
- XML 스키마는 실행 중 조립이라 정적으로 못 얻음
-  같은 모듈에 노임 직종 사전 106종이 평문으로 있음. CONLD·COND_ 의
  직종 코드가 가리키는 이름표

식 문법 오류 메시지에서 규칙 여섯 (줄 단위 검사·거듭제곱·강제금액·
그림코드 제약·집계제외·비목별 군별단가)

⚠ EQSYNC.DBF 도 암호화. 암호화 파일이 셋으로 늘었음
(BDQTY·SYSINFO·EQSYNC)

문서 28 신규, 문자열 훑기 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:35:11 +09:00
eomsangdonandClaude Opus 5 4deffb9316 knowledge(축C): 확장 코드 체계 확정 — AX·AR 난수 8자리, 층 글자 유지
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 14:32:02 +09:00
eomsangdon 8edeb4888d Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-13 14:30:00 +09:00
eomsangdonandClaude Opus 5 1fd8edc7e0 knowledge(경쟁사): 계약·실행예산·기성·준공 — 설계 뒤 네 단계 구조
26번에서 「우리가 판 8단계는 설계까지」임이 드러나 그 뒤를 팠음.

계약 (wM_Mk_Cont)
- 낙찰율이 하나가 아니라 노·재·경 세 갈래로 따로 들어감
- 적용율을 제외할 공정을 행 단위로 고름 (관급자재대 등).
  16번의 C* 제외금액 구역과는 다른 개념
- 단가적용율 0% 이면 계약단가를 0 으로 만들어 공내역 생성
- 예상적용율 찾기 — 목표 계약금액에서 역산

기성 (wM_KanJub_K)
-  간접비가 「금회직접공사비 x 계약제잡비율」 단일 요율로 바뀜.
  설계처럼 항목별 밑수x요율이 아님
- 전회·금회·누계와 각각의 비율을 함께 들고 감. 사정·잔량·기성고(%) 포함
- ⚠ 부가세 선택지가 설계와 다름 (재료비+산출경비의 10% 추가)
- BOQ11 의 QTY1_B/N/O/H 가 기성 수량 칸으로 보임 (설계 표본에선 전부 0)

실행예산 (wM_Boq_ExecX)
- 설계단가를 그대로 쓰지 않고 실행단가를 따로 만듦
-  차액 보정 순서 — 성분별 절사로 생긴 차액을 어느 비목에 몰아줄지 고름

준공은 계약금액·준공금액 두 열뿐. 별도 계산 없음.

계약제잡비율 계산은 ST_KanJub 한 곳에만 있음.

⚠ 설계는 원 단위까지 재현했으나 뒤 네 단계는 「구조는 알고 값은 못 맞춤」.
기성·계약 STC 표본이 0건이라 골든셋 검증 불가.

문서 27 신규, 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:29:56 +09:00
eomsangdon bdf82e55e4 Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/sub_desktop_1' into main_laptop_1 2026-09-13 14:26:59 +09:00
eomsangdonandClaude Opus 5 f9bf0a9c34 knowledge(축C): 두 축과 일위대가 계약 명세 — 자원축 실측 반영
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 14:25:50 +09:00
eomsangdonandClaude Opus 5 540488de55 knowledge(경쟁사): Cm 사이클식·품셈 인자·식 편집기·낙찰율 — 계약/실행/기성 단계 발견
Cm(사이클 시간) 식 54꼴
- t1+t2+t3+t4 4단계가 최다. 5·6단계도 있음
- 운반은 L/V1+L/V2+0.25 — 거리/적차속도 + 거리/공차속도 + 상수.
  임도 토공 운반에 그대로 쓸 수 있음
- 굴삭기는 선회각별 사이클 초 (90도 18초, 135도 20초)

품셈 인자 실측 — q(버킷용량)·K(버킷계수)·f(토량환산)·E(작업효율)·V1~V4(속도)·
t1~t6(단계시간)·P=qo*eo(출력)
- ⚠ f 가 1/1.3 같은 분수 문자열로 적힘. 미리 소수로 접으면 자릿수가 어긋남

wM_Edit_San 은 단순 입력이 아니라 식 편집기
- 손료계산(F6)·계산(F9)·중기공식 편집·함수 입력·연산기호·변수명
- 문법 강조·문법 오류 검사·문법설명 보기
- COSTN.SMT 전개 텍스트가 이 편집기의 산출물. 재구현하려면 식 언어와 검사기 필요

⚠ 낙찰율 NAGCD 발견 — 계산 사슬에 없던 것
- wBoq 단가 그리드 23열의 마지막이 NAGCD(낙찰율)
- wM_Edit_San 에 결과값에 낙찰율적용·계약단가·결과금액조정
- 우리가 판 8단계는 설계까지임. 계약·실행예산·기성·준공 단계가 더 있고
  계산 규칙이 다를 수 있음 (기성 제잡비는 실제로 부가세 선택지가 다름)

그 밖
- 내역 계층 표기가 += ~ +===== 로 레벨을 나타냄
- Prn_* export 152개를 SET_REP 74종과 이어 64종 대응

문서 26 신규, 스크립트 3개·원자료 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:25:35 +09:00
eomsangdon a70cfc9180 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 14:23:28 +09:00
eomsangdonandClaude Opus 5 c845078570 chore(plan): 받기 앞 공용 보관 파일 두 벌을 dev 와 같은 내용으로 등록
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
2026-09-13 14:23:24 +09:00
eomsangdon e165f93db5 Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-13 14:21:47 +09:00
eomsangdonandClaude Opus 5 e7c090d3fd knowledge(경쟁사): 설정키 241종·간접비 식 26개 전수 — 설정 사슬 닫힘
PRJLST.SMT 저장키 전수
- 241종. 접두어가 뜻을 가름 — C_(금액직접입력 62)·R_(요율 39)·I_(선택 41)·
  B_(켬끔 12)·D_(밑수 26)·S_(산출액 30)·ADD_(추가금액 22)
-  D_ 와 S_ 가 같은 항목 이름으로 짝을 이룸. 항목마다 「어떤 밑수에 곱했고
  얼마가 나왔는지」를 프로젝트에 남김. 09번의 indirect_result 계약과 맞음
- 추가금액 저장 구조 ADD_AMT_단계_행_칸 (11번이 화면 문자열로만 본 것)
- 고용개선지원비가 휴업수당·장려금·사회보험·지원금 네 갈래
- 수공 밑수 배분 계수 R_R_DM·DL·L·DMDL·DML 이 rGrd_RateB 열 이름과 일치

간접비 식 템플릿 26개 전수
- 밑수별 기본 꼴 여섯 (총액·노무·재료·노무+토큰·총액-재료·세 성분 합)
- ⚠ 식 안에 IF(...) 조건 분기가 있음. DP_Common 의 IIF·IFI·IFO 가 처리.
  사칙연산과 ROUND 만으로는 재현 불가
- ROUNDDOWN([C_KUNBO]*[RAT_1]) — 장기요양은 건강보험료 「직접입력 금액」에
  요율을 곱함. 19번의 「당초액 유지」와 이어짐
- 복합 보험식·변경설계 A/B·사급자재 /1.1 전부 포함

설정 사슬이 닫힘 — 화면 272축 → 저장키 241종 → 식 26개 → 함수 73개 →
D_/S_ 재저장 → 출력. 다섯 칸이 모두 이어짐.

문서 25 신규, 키 원자료와 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:21:03 +09:00
eomsangdonandClaude Opus 5 50113cb6f5 knowledge(경쟁사): 모듈 46개 export 전수 — 계산 공용 라이브러리·동글·8차 해소
11번은 핵심 CPM 12개만 다뤘고 32개 모듈이 손대지 않은 채였음.

플러그인 규약
- 46개 중 31개 모듈이 Calc_Kanjub 를 내보냄. 재계산 진입점이 한 곳이 아니라
  모듈마다 있음. T8(UI 명령별 재계산 범위)이 어려운 까닭

DP_Common.CPM 73함수 = 계산 공용 라이브러리
- 식 평가 CALC_STR·CALC_STR_PART·CALC_STR_URC·GET_URC_TYP
- 중간변수 GET_VARI_VAL·SET_VARI_VAL (:=A01 라벨)
- 반올림 MROUNDUD·MROUNDUP·MTRUNC·MINT·MFRAC·GET_ROUND_CUT
- 조건 IIF·IFI·IFO·CHK_TRUE_CLSTR — 식에 조건 분기가 들어감
- AMTTOHAN 금액 한글 변환
- ⇒ 식 평가기는 사칙연산+ROUND 만으로 부족. 조건 함수와 중간변수 필요

ST_P_XLS.CPM 72함수 — 엑셀이 양방향 교환 경로
- CONV_XLS_2_ST(엑셀→STmate 역등록)·XLS_2_BDREC(엑셀→BDQTY)·Prn_FMLA_INFO
- 암호화된 BDQTY 를 엑셀에서 만들 수 있다는 뜻

SX32W.CPM 29함수 = Rainbow Sentinel SuperPro 동글 API
- 라이선스가 소프트키가 아니라 USB 동글. 통제시험이 영구 불가인 근거 확정

ST_Jabpum: Edt_Hal_Amt / Edt_Hal_Rate — 할증이 금액·율 두 갈래

변경 차수 8차 의문 해소
- PRJLST.SMT 섹션 최대 2, DBF 접미사 1~4, 바이너리에 1~3차변경만,
  BOQ2* 없음. 한 파일은 4벌이 맞고 8차는 분리형 파일 선택임

문서 24 신규, export 원자료와 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:18:37 +09:00
eomsangdonandClaude Opus 5 6bcc872851 knowledge(경쟁사): 세 폴더 상호참조 · COSTN.SMT 전수 파싱
세 폴더 머리에 서로를 가리키는 블록을 넣음 — 또 갈라지지 않게.
technical_info/01_임도/05_원가정보/원가계산_체계.md,
original/원가계산/STmate/_meta.md,
original/경쟁사 프로그램/STmate 분석/README.md 셋 다.
2026-09-13 에 ③이 ①②를 모르고 시작해 중복 분석한 사실도 함께 적음.

COSTN.SMT 전수 파싱 — ②트랙이 해독해 둔 문법을 그대로 씀
- 맛보기 1건 + 실무 STC 7건에서 자원참조 1,570·품 1,460·Q식 187·
  중간라벨 162·할증률 92 검출
- 참조되는 자원은 중기(X) 1,504 로 압도적. 노무 58·재료 7·경비 1.
  단가산출은 거의 전부 중기 시간당 사용료를 작업량으로 나누는 계산임
- 중기 한 대를 참조하면 노무·재료·경비 세 성분을 각각 따로 끌어옴
  (L 548·S 524·M 498). 총액 하나로 저장하면 안 되는 이유
- ⚠ Q 식이 한 꼴이 아님. 최소 10가지. 3600 계열(초)과 60 계열(분),
  포설은 60*L*D*H*E*f/(N*Cm). 하드코딩 금지, 텍스트 평가 경로 필요
- 운반 계산이 적재시간+왕복시간+적하시간 으로 사이클을 쌓음.
  km/hr·km·m/min 인자가 함께 나옴. 임도 토공 운반에 직접 쓸모
- 할증률 92건이 품목마다 제각각 (2%·3%·5%·24%·52%·0.443%).
  BDQTY 입력 원장은 여전히 막혔으나 적용값은 읽힘

문서 23 신규, 파싱 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:13:10 +09:00
eomsangdonandClaude Opus 5 f0319e311e knowledge(경쟁사): UI 폼 전수 분석 — 선택축 272개, 화면에 남아 있던 계산 규칙
폼 233개(고유 190개) 중 3개만 뽑아 쓰고 있었음. 전수로 훑어 폼 40개에서
선택축 272개를 뽑음. 계산설정 폼 하나에서 뽑았던 83축의 세 배가 넘음.

화면에서 새로 나온 계산 규칙
- wM_Edt_Hal: 적용단가 = 기준단가 x 율%, 소수 n 자리 미만 절사/반올림.
  「적용단가 0원인 것과 보호표시된 것은 수정 안 됨」 = T10 일괄변경 수동값
  우선순위가 화면 안내문에 있음
- wM_Rate: 단수처리가 전역이 아니라 비목(M·L·X·W)마다 절사/반올림 x 소수 0~4위
- wM_Sel_Prn: ACTTYP = 표준시장단가 적용 방식(노임외 비목 적용안함/재료비로/
  경비로), ACTOPT = 끝전 보정 우선순위. 설치폴더의 STBSC 파일명과 정확히 대응.
  봉화는 ACTYP=1 ACTOP=2 = 「노임외 재료비로 적용 + 소수 비교후 타금액 우선보정」
  ⚠ 변경 차수가 화면에서 8차까지임. COSTN 접미사 4벌과 어긋나므로 재확인 필요
- wM_Set_Sys: KCDNM·ACDNM·ZCDNM·JCDNM·ECDNM·BPNNM 이 전부 소수 자리수 설정.
  20번에서 미확정으로 둔 것이 풀림. EXRNM 은 환율 적용 범위, RX1NM~RX4NM 은
  작업조건별 노임 환산식 4벌(터널·장대터널·펌프/GRAB/버켓준설선)
- wM_KanJub_K: 기성 계산은 부가세 선택지가 설계용과 다름 (재료비+산출경비의 10% 추가)
- wM_Mrg_BSC: 반기 기준자료 갱신의 매칭 키 5단계와 덮어쓰기 정책
- wM_JabPum·wQtyList: 코드 종류 전체 목록에 「그림코드」가 따로 있음

문서 22 신규, UI 카탈로그 원자료와 스크립트 3개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:10:47 +09:00
eomsangdon 198cd3120f knowledge(경쟁사): 20번 요약표의 SMT 행도 정정 2026-09-13 14:04:47 +09:00
eomsangdonandClaude Opus 5 3640f737a9 knowledge(경쟁사): SMT 판정 정정 · 지식DB 트랙 셋 통합 · 암호화 성격
최종 확인에서 내 오류 하나와 큰 구멍 하나가 나옴.

정정
- *.SMT 를 암호화라 적은 것은 틀렸음. 앞 4KB 만 보고 필터를 세게 걸어
  놓쳤고 본문은 0x200 부터임. COSTN.SMT 276개·PRJLST.SMT 153개 문자열이
  평문으로 읽힘. 암호화는 BDQTY·SYSINFO 둘뿐이라는 판정은 그대로 유효

구멍 — 지식DB 에 STmate 트랙이 셋이고 서로 몰랐음
- technical_info/01_임도/05_원가정보 (계산 로직 10문서, 2026-08)
- original/원가계산/STmate (STC 포맷 8문서, 2026-08-15)
- original/경쟁사 프로그램/STmate 분석 (이번 것)
- 단수처리 규칙·INITIAL 시트·SMT 문법·BDQTY 난독화는 이미 있던 것을
  다시 한 셈. 다만 실행모듈 정적분석·폼 복원·골든셋 회귀·변경설계 모드·
  단가산출 Q식은 이번에만 나온 것

PRJLST.SMT — 가장 중요한 발견
- 프로젝트별 원가계산 설정이 INI 평문으로 들어 있음. 차수별 섹션
- 요율이 좌표가 아니라 값으로 저장됨 (R_KANNO=10.8, R_IYUN=15 등)
  → 프로젝트 읽기·검산에 요율 좌표(T1)가 필요 없음. 우선순위 격하
- 수공형식 세부경비 8개 항목 확정 (R_S_SUDO/BOKRI/SOMO/TONGSIN/SEGUM/
  PEGI/DOSEO/JIGUP). KAN_ORD_2 의 331~338 과 일치
- 직접입력 금액 C_KUNBO·C_YUNBO·C_IYUN_M 이 변경설계 「당초액 유지」와
  끝전조정 보정액의 저장 자리

암호화의 성격
- 암호화 41개는 전부 파일명에 출처 기관·반기가 박힌 유료 구독 데이터.
  평문 43개는 법정 공개 자료인 제비율 요율표. 후보 슬롯 이름이 국내
  물가지 이름 그대로임. 프로그램 로직이 아니라 사온 데이터를 지키는 것
- Aislo 는 노임·유가·환율·시설공통자재를 이미 직접 확보. 실질 격차는
  물가지 자재단가 구독 하나

문서 21 신규, SMT 덤프 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 14:04:32 +09:00
eomsangdonandClaude Opus 5 9abd6a453d knowledge(경쟁사): Start8x.Ini·SET_REP 점검 — 간접비 코드 사전과 서식 75종
System 폴더만 보고 STmate 자료 폴더를 STC 와 같다고 넘겼던 것이 구멍이었음.
그 폴더에 STC 에 없는 Start8x.Ini·STini.MEM·QCODE.SMT 가 있었음.

Start8x.Ini 에서 나온 것
- 간접비 계산 순서가 KAN_ORD_1/KAN_ORD_2 코드 목록으로 저장돼 있음.
  두 목록의 차이가 321(기타경비 묶음 1개) 대 331~338(세부 경비 8개) 이라
  12번의 「일반형식 대 수공형식」 구분과 정확히 맞음. KAN_TYP 가 고름
- 코드 사전 301~370 을 봉화 출력 순서와 대조해 확정. 값이 0 인 항목은
  출력에서 빠진다는 규칙으로 하나도 어긋나지 않음. 등급 A
- ⚠ 후보 슬롯 이름이 설치본마다 다름. 설치 기본은 다섯째가 「유통 물가」인데
  실무 프로젝트는 「견적단가」임. 슬롯 번호에 기관명을 박으면 안 되는 근거
- COD_FMT_1~8 코드 종류 사전 (대가=일위대가 B, 산근=단가산출 D)
- [EQUIPMENT] 에 노임 환산식·환율·적용 직종의 설치 기본값
- [NAG_HAL] 할증률 설정 자리 발견 (표본은 전부 0)
- DISP_EX=제외금액 — C* 구역 이름의 출처

SET_REP.DBF 는 보고서 서식 75종 카탈로그. 표본 XLSX 에 나온 30종 말고
기성·견적·계약·준공·계획·실행예산 등 45종이 더 있음. 새 계산은 아니고
출력 변형. 수공양식·표준시장 서식이 카탈로그에 있어 그 형식이 실제로
지원됨을 확인

COSTN.SMT·QCODE.SMT·PRJLST.SMT 는 본문에 읽히는 문자열이 없어 암호화로
판정. 다만 같은 정보가 출력 XLSX 에 평문으로 있어 의존 그래프 복원에는
지장 없음

문서 20 신규, 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 13:53:47 +09:00
eomsangdon 912092710e Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-13 13:48:56 +09:00
eomsangdonandClaude Opus 5 b42793eb58 knowledge(경쟁사): 일위대가 참조 그래프·설계변경 직접비 실증 — 지금 자료로 할 것 마무리
일위대가 호표 참조 그래프 (④단계)
- 봉화 2024 의 45개 호표를 그래프로 세움
- 구성행이 다른 호표를 가리키고 단가가 일치하는 것 22건, 이름은 같은데
  단가가 다른 것 0건
- 순환 참조 없음 -> 위상순서 계산 가능. 깊이 최대 2단
- 09번의 「의존 그래프·위상순서·순환은 오류」가 실데이터에서 성립함

설계변경 직접비
- 계류보전 2025(변경) 의 BOQ11 은 한 표에 차수1(당초)·차수2(변경) 를 나란히 담음
- 양쪽을 각각 다시 세워 직접재료비·직접노무비·산출경비 전부 원 단위 일치
- 행금액 절사 대조 294건 x 2 = 588건 불일치 0
- 제외금액 구역 판정은 차수와 무관하게 같음
- 19번 6장의 간접비 모드와 합쳐 변경설계가 직접비부터 간접비까지 전부 재현됨

진행률 장부 갱신 — 지금 자료로 할 수 있는 일은 사실상 소진. 남은 것은
새 표본이 있어야 열림.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 13:45:56 +09:00
eomsangdonandClaude Opus 5 3d4d2718ff chore(plan): 계산 사슬 재정립 전 구컨셉 계획서 전문 보관
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0154EMdwPYNPuKc9eZv8SLEX
2026-09-13 13:44:12 +09:00
eomsangdonandClaude Opus 5 5e2a40b17a knowledge(경쟁사): 출력 시트 30종 전수 훑기 완료 — 집계표 구조와 ±1 오차 원인
남은 16종을 전부 열어 본 결과 새 계산 규칙은 나오지 않음. 대신 둘이 밝혀짐.

- 착공내역서 178건 절사 100% — 설계내역서와 같은 규칙
- 목록표 7종·표지 2종·총괄내역서 2종은 계산 쌍이 없는 색인·표지 성격
- 집계표 4종에는 단가 열이 없음. 금액 = 절사(수량 x 해당 호표의 시간당
  성분단가). 굴삭기 0.2·0.7 은 전 성분 일치
- ⚠ 어긋나는 칸은 전부 -1 이며, 경비로 역산하면 표시 수량 940.69 가
  실제로는 940.68998... 임. 집계표 수량은 표시용 반올림값이라 그대로
  역산하면 1원씩 어긋남. 09번의 「입력 원값과 표시 반올림값을 분리」가
  이 자리

진행률 장부의 출력 시트 칸을 48% -> 100% 로 갱신. 훑기 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 13:43:59 +09:00
eomsangdonandClaude Opus 5 46dc94af70 knowledge(경쟁사): 변경설계 계산모드 실증 · 진행률 장부 신설
T9 확정 — 계류보전 2025(변경) 의 공사원가계산서가 당초·변경·증감을 나란히
내는 것을 찾아 가름. 직접노무비가 +8,802,162 늘었는데도 건강보험료·
노인장기요양보험료·연금보험료는 증감 0 임.

- 재계산 모드: 간접노무비·산재·고용. 요율은 당초와 같고 변경 밑수로 다시
  계산하면 원 단위로 일치
- 당초액 유지 모드: 건강·장기요양·연금. 사후정산 대상이라 설계 단계에서
  당초액을 그대로 가져감. 재계산했다면 85만 원이 더 붙었을 것
- 전부 재계산으로 구현하면 그만큼 틀림

곁들여 출력 시트가 21종이 아니라 30종이었음. 설계변경 시트 3종이 있어
「변경 출력이 표본에 없다」던 앞선 서술이 틀렸음.

문서 19(진행률 장부) 신설 — 원천별로 파일·표·시트를 실제로 세어 진행률과
남은 것을 적음. 계수 스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 13:38:06 +09:00
eomsangdonandClaude Opus 5 94a9412ac8 knowledge(경쟁사): 누락 계산로직 점검 — 사슬 앞쪽 네 칸을 채움
출력 XLSX 21개 시트 중 검증한 것이 4개뿐이었음. 나머지를 전부 열어 본 결과
계산 사슬 앞쪽이 통째로 비어 있었음.

채운 것
- 노임 일단가 -> 시간당 환산식. 환율및기초자료 시트에 식이 있고 INITIAL 의
  RXNM_ 에 문자열로 저장됨. 적용 직종은 COND_
- ⚠ 식은 좌에서 우로 차례로 평가해야 함. 계수를 먼저 곱하면 부동소수점
  때문에 1원 틀어짐. 18건 중 좌우순차 18/18, 계수선계산 14/18
- 단가산출 D코드 공식. Q = 3600*q*K*f*E/Cm 로 시간당 작업량을 내고
  성분단가 = 절사(중기 시간당 성분단가 / Q, 소수1). Q 는 소수2 로 먼저 확정.
  73개 호표에서 발견. 품셈 근거·토질·조합기준이 문자열로 남아 있음
- 계산 설정 스냅샷이 출력 XLSX 의 INITIAL 시트에 통째로 있음.
  12번이 「화면 없이는 재현 불가」라 한 것을 정정. JMKN6 = 적용 단가 확인
- 집계표 행 금액은 사사오입 100%. 호표 성분 소계(절사)와 다른 자리임을
  수치로 가름

문서 18 신규, 검증 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 13:16:49 +09:00
eomsangdonandClaude Opus 5 cd3aaef117 knowledge(경쟁사): 통제시험 수행 불가(라이선스 없음) 반영 · 요율 두 부류 구분
전제 정정
- STmate 라이선스가 없어 13번 T1~T11 을 띄울 수 없음. 「나중에 시험으로
  확정」 계획이 성립하지 않으므로 13번 머리에 못박고, 대체 경로 셋과
  그것으로 이미 푼 것을 적음. 목록 자체는 장부 겸 절차서로 남김
- 남은 것을 늘릴 유일한 수단은 표본 늘리기. 특히 수공(S)·실적(TA/SA)
  형식 표본이 하나도 없어 그 세 형식은 전혀 검증되지 않음

통제시험 없이 새로 밝힌 것
- 요율 항목이 두 부류임. 고정 칸(보험·산안비·이윤)과 규모·기간에 따라
  행이 움직이는 것(간접노무비·기타경비·일반관리비). 뒤쪽은 고정 좌표라는
  모델 자체가 틀림
- 이윤 좌표 RATE_R[20,16] 확정 (3건 일치)
- 요율이 그 프로젝트 표에 아예 없는 경우가 실재함. 간선임도 간접노무비
  14.5%, 소광 이윤 13.435% 가 자기 RATE_R 에 없음 = 사용자 수동 입력.
  재구현은 rate_source 를 table(coord)/manual 로 갈라 저장해야 함

교차검증 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 12:42:53 +09:00
eomsangdon f45f5a9cd9 knowledge(경쟁사): 17번 다음할일에 호환성 차단점 여섯 현황 정리 2026-09-13 12:29:43 +09:00
eomsangdonandClaude Opus 5 017c5120b9 knowledge(경쟁사): STmate 자재 채택 규칙 확정 — 0 아닌 후보 중 최저가
07번이 C등급으로 두고 「최저가·최신가·특정 슬롯 우선 중 어느 하나라고 단정할
근거가 없다」 한 항목을 실증으로 확정.

출력 XLSX 의 자재단가대비표에 후보 다섯 칸(조달가격·물가자료·물가정보·
거래가격·견적단가)과 적용 단가·출처가 나란히 있어 직접 검정함.

- 실무 6건 전수 186건 중 186건이 후보 최저가와 일치
- 후보 값이 2종 이상인 76건 전부 최저가
- 후보 값이 3종 이상인 36건 전부 최저가
- 최저가가 아닌 후보를 택한 건 0, 후보 밖 값을 쓴 건 0

곁들여
- COSTN 의 여섯 칸 중 여섯 번째가 적용 단가 칸으로 보임
- 후보 없이 적용만 있는 25건은 유가 자료, 적용 0 인 49건은 별도계상
- 남은 것은 사용자 수동 고정 시의 우선순위 (T10)

09번이 꼽은 여섯 호환성 차단점 중 자재 자동채택이 풀림.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 12:29:19 +09:00
eomsangdonandClaude Opus 5 f76e5d659f knowledge(경쟁사): STmate 단가조립 검증 — 중기 손료율 실측, 성분 소계는 절사
15번이 「BDQTY 암호화로 단가 조립 불가」·「중기 손료 계수 어디에도 없음」이라
적은 것을 정정. 출력 XLSX 의 일위대가표·중기사용료 시트에 구성 자원·수량·
단가·성분별 금액이 전부 평문으로 있음. 입력 원장은 못 읽어도 조립 규칙은 읽힘.

밝힌 것
- 호표 성분 소계는 절사. 중기사용료 398건 100%, 일위대가 325/345.
  집계표 행 금액(ROUND)과는 다른 자리이므로 섞으면 안 됨
- 중기 시간당 사용료 = 손료(취득가 x 손료율) + 운전원 + 주연료 + 잡품(연료비 x 율)
  성분별로 절사한 뒤 합
- 잡품은 수량x단가가 아니라 연료비에 비율을 곱하는 가산 행
- 시간당 손료율 25개 장비 실측. 같은 장비도 암석 조건이면 손료율이 오르고
  (0.2085 -> 0.2405), 부착 장비는 취득가가 부착물만의 값임
- 일위대가 호표가 다른 호표를 참조하므로 위상순서 계산이 실제로 필요함

⚠ 손료율 값은 STmate 가 담은 것임. Aislo 기본값은 현행 건설기계 경비 산정
기준에서 확정할 것이며 이 표는 대조용.

문서 17 신규, 검증 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 12:26:44 +09:00
eomsangdonandClaude Opus 5 109e3846d0 knowledge(경쟁사): STmate 차수 규칙 실증 — BOQ12 가 현재안, 차수 인계 확인
골든셋 회귀에서 소광 한 건이 어긋난 원인을 파고든 결과.

- 한 STC 에 BOQ11·BOQ12 가 함께 있으면 출력은 BOQ12 를 씀.
  BOQ11 을 현재안으로 잡으면 그 프로젝트만 통째로 틀림
- 변경 파일의 BOQ11 차수1 이 앞 파일의 BOQ12 와 원 단위로 같음.
  차수 인계 메커니즘 실증
- PRJLST.TCOSTn = MCOSTn+LCOSTn+SCOSTn 이며 직접공사비 합계
- 소광 변경1차 직접공사비 173,311,386 -> 257,410,433, 증감 +84,099,047

회귀 스크립트가 현재안 표를 고르도록 고침. 이로써 실무 프로젝트 6건 전부
원 단위 일치, 내역 행 1,515건 불일치 0.

08번 문서의 차수 경고를 실제 규칙으로 승격. 문서 16 보강, 차수 추적
스크립트 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 12:21:14 +09:00
eomsangdonandClaude Opus 5 87d4519ce0 knowledge(경쟁사): STmate 원가계산 골든셋 회귀 — 프로젝트 6건 원 단위 재현 성공
프로젝트 STC 의 BOQ11 만 입력으로 삼아 직접비부터 총공사비까지 다시 계산하고
STmate 가 뽑은 XLSX 공사원가계산서와 원 단위로 대조한 결과.

결과
- 실무 프로젝트 6건 전부, 모든 항목이 1원도 안 틀림
- 내역 행 금액 ROUNDDOWN(수량 x 단가) 대조 1,515건 중 불일치 0
- 봉화 2024 는 직접비부터 총공사비 1,414,283,000 까지 전 항목 일치

새로 밝힌 규칙 다섯 — 이것 없이는 맞지 않음
- 말단 행 판별: BDCODE1 접두 T*(제목)·E*(계)·C*(제외총계)·:(페이지) 가 구조 행
- C* 로 닫히는 구역은 제외금액 구역이라 직접비에서 뺌
- 산업안전보건관리비의 관급재 밑수 = 관급자재대 - 조달수수료
- 끝전조정 = 도급공사비 천원 차액을 ROUND(차액/1.1) 로 세전 환산해 이윤에서 차감
- 관급자재대 = ROUNDUP(원자재대, 천원)

이로써 09번 완료 정의의 원설계 재현 조건이 실증으로 충족됨.
끝전조정·간접비 순서·계층 집계·제외금액 취급이 B 에서 A 실증으로 올라감.

문서 16 신규, 회귀 스크립트 2개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 12:17:51 +09:00
eomsangdon d0c5bd644b Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-13 12:10:32 +09:00
eomsangdon 79a9c510bd auto: 2026-09-13 12:10 (EOMSANGDON-HOME) 2026-09-13 12:10:28 +09:00
eomsangdonandClaude Opus 5 b656e5944d knowledge(경쟁사): STmate 재구현 가능성 검증 — 문서 오류 셋 정정·요율 좌표 확정
문서 주장을 믿지 않고 원본 파일과 직접 대조한 결과.

바로잡은 것
- COSTN.DBF 는 암호화돼 있지 않음. 맛보기 71행·봉화 248행을 그대로 읽음.
  암호화된 것은 BDQTY 와 SYSINFO 둘뿐. 단가 네 성분이 평문이라 골든셋을
  단가 수준까지 뽑을 수 있음
- TAMT=MAMT+LAMT+SAMT 에 예외가 있음. 59행 중 2행(관급 흄관)이 어긋남.
  하드 오류로 막으면 실데이터를 거부하게 됨
- 프로젝트 RATE 표는 4종이 아니라 6종. RATE_A(25x10)·RATE_B(35x10) 추가 발견.
  값이 0~1 계수로 성격이 다르며 수공형식 밑수 배분표로 보임

새로 확정한 것 — 통제시험 T1 의 절반을 정적으로 풀었음
- 출력 XLSX 비고 칸의 실제 요율을 프로젝트 RATE 표에서 역추적해 좌표 확정
  산재 RATE_R[45,1] · 건강 [46,1] · 연금 [46,6] · 장기요양 [46,11]
  고용보험 등급1~7 [45,11..17] · 산안비 [20,17] 율 [20,18] 기초액
  간접노무비 [10,1]
- 5개 연도 시계열이 실제 법정요율 변천과 일치해 A등급
- RATE_R 행 45~49 가 부속표 영역, 행 0~44 가 규모·기간 행렬임을 가름

판정 — 기초단가 원천(자재 5.7만건·노임·중기·표준시장단가)이 전부 암호화라
STmate 복제는 불가. 계산 엔진은 구현 가능하고 Aislo 목적에는 충분함.
문서 15 신규, 검증 스크립트 5개 추가.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 12:08:44 +09:00
eomsangdon 7bd6d10145 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-13 11:33:05 +09:00
eomsangdonandClaude Opus 5 1230961c54 chore(auth): 개발 단계 이메일 인증 생략 스위치 추가
개발 중 로그인마다 인증 코드를 기다리던 것을 끄는 스위치.
AUTH_OTP_DISABLED 가 true 이고 ENVIRONMENT 가 development 일 때만 듣는다 —
운영에서는 켜져 있어도 무시된다.

- 로그인: 새 브라우저·주기 재인증 둘 다 코드 없이 통과, 생략마다 경고 로그
- 회원가입: 흐름은 그대로 두고 인증 코드를 서버 로그에 기록
- .env 에 AUTH_OTP_DISABLED=True (배포 전 False 로 되돌릴 것)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJC56e4osweKJ4vafm9ReM
2026-09-13 11:32:22 +09:00
eomsangdonandClaude Opus 5 62dc2d744c feat(b01): 회사 주소를 검색해서 고르는 칸으로 교체
손으로 정확히 쳐야만 되던 주소칸을 후보 검색·선택 방식으로 바꿈.
VWorld 주소검색을 서버가 중계하고, 고른 즉시 좌표를 알므로 지도를 다시
찾지 않고 그림. 못 찾는 주소는 「직접 입력」으로 옛 방식을 씀.

- 회사 목록 SQL 이 business_address·business_owner 를 안 가져와 수정 모달이
  비어 열리고 저장 시 빈 값으로 덮어쓰던 것 수정
- 지도 기본 배율 15 → 17, +·- 단계 조절 추가
- 라벨·입력·버튼을 한 줄에 눕혀 줄 어긋남 해소
- 모달 안 휠이 뒤 대시보드로 새던 것 차단
- 회사 패널에 주소 한 줄 표시

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJC56e4osweKJ4vafm9ReM
2026-09-13 11:32:13 +09:00
eomsangdon fe28b2844f Merge remote-tracking branch 'origin/CODEX' into sub_desktop_1 2026-09-13 11:26:33 +09:00
eomsangdonandClaude Opus 5 38cd3003b4 knowledge(경쟁사): scratch 중복 사본 정리 — 정식 자리로 옮긴 뒤 남은 것
자동푸시가 scratch/orca_artifacts 사본까지 함께 커밋한 것을 걷어냄.
같은 내용이 resources/knowledge/original/경쟁사 프로그램/STmate 분석/ 에
바이트 동일로 들어가 있음(41개 동일, 2개는 경로만 고친 스크립트).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 11:25:24 +09:00
eomsangdon abd65d1662 auto: 2026-09-13 11:24 (EOMSANGDON-HOME) 2026-09-13 11:24:52 +09:00
eomsangdonandClaude Opus 5 91b2ddea86 knowledge(경쟁사): STmate 프로그램 정적분석 인계 — 문서 15·원자료·재현 스크립트
코덱스가 토큰 한도로 중지한 STmate 분석을 이어받아 마무리한 것.
scratch/orca_artifacts 에 있던 산출물을 지식DB 정식 자리로 옮김.

이번에 새로 확정한 것
- 내부 반올림이 은행가 반올림(최근접-짝수)임 — SimpleRoundTo·Ceil·SetRoundMode
  전부 미임포트, 반올림 함수 본체에 부호 처리 없음. 출력 XLSX 의 Excel 사사오입과
  20개 경계 중 10개가 원 단위에서 갈림
- 간접비 항목별 밑수를 RATE 화면 그리드 묶음 제목에서 확정.
  환경보전비 밑수가 직접공사비가 아니라 재료비+직접노무비+산출경비임을 정정
- JB_R 35열 확장 시점이 2020-05-27 이고 기존 1~20열은 한 칸도 안 바뀜
- 원가계산 설정 선택축 83개 전수. 화면 순번과 내부값이 뒤집힌 축 둘 확인
- 문서 13(통제시험 T1~T11)·14(최종 완료 보고서) 신규

원본 C:\경영정보(주) 는 읽기만 함.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Prk9BCHG1EMAywk9k8wegA
2026-09-13 11:24:43 +09:00
eomsangdon 8e118bcd60 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-13 10:06:55 +09:00
eomsangdon 913923a0da fix(b07): 표준도 장 나눔에서 앞뒤 걸침 칸을 뺌 — 제원이 같으면 한 장
before_m·after_m(구간 규약)과 관 부속의 앞뒤 걸침 칸이 장 나눔 키에 들어가, 제원이 같은 구조물이 자리만 달라도 장이 갈리던 것 바로잡음. 랩탑 보조 실측 제보.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-13 10:06:52 +09:00
eomsangdonandClaude Opus 5 cfa7da2069 fix(b05): 비워 두는 것이 뜻인 칸에 빈 보기를 둠 — 첫 보기가 박히던 것
구조물 폼 select 는 「기본값 없는 필수」만 빈 보기를 두어, `empty_means` 가 적힌 칸도
첫 보기가 골라진 채 저장됐다. `fill_concrete_mpa` 가 180 으로 박혀 엔진 기준값
210(확정 ⑩)과 갈렸다 — 채움콘크리트 규격·단가가 조용히 달라지는 자리.

빈 보기 판정을 「필수 + empty_means」 한 줄(`keepEmpty`)로 합치고 초기값도 같은 판정을 씀.
기본값이 있는 칸은 그대로 첫 보기를 쓴다(2026-08-17 지시 유지).
클라이언트 옵션 타입에 empty_means 를 더함 — 서버는 이미 실어 보내고 있었다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-13 10:04:52 +09:00
eomsangdon 54ac88a90b Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-13 09:53:55 +09:00
eomsangdon 9417281064 chore(env): 개발 단계 로그인 OTP 건너뛰기 설정 추가 — 2026-09-13 사용자 지시
다른 창이 넣은 네 줄을 사용자 확인 후 커밋.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-13 09:53:51 +09:00
eomsangdonandClaude Opus 5 af139d65cd feat(b07): 버림 콘크리트 끄는 칸 · 물빼기 주석 구조물 값 · 표준도 [여기서 고치기]
확정 8-2·14 — 버림 콘크리트 「넣음/안 넣음」 칸을 등록부(돌쌓기 찰·메·큰돌쌓기·기슭막이)와
표준도 입력(EDITABLE_KEYS)·제원 폼에 세움. 기본은 넣음(KDS 44 90 00 100㎜).
셈은 이미 wants_blinding 으로 서 있었고 끄는 자리만 없던 것임.

확정 5차 작은 것 2 — 표준도 그림 물빼기 주석이 기본 상수를 적던 것을
구조물 제원(weep_hole_*)에서 읽게 바꿈. 수량표와 같은 함수(weep_hole_spec)를 씀.

확정 6 — 표준도 장에서만 뜨는 [여기서 고치기] 단추를 고정 액션 줄에 둠.
표는 CAD 안이라 단추를 못 달고, 제원 폼은 도면 목록 아래라 밀림.
값 복사본은 만들지 않음 — 폼 한 벌이 그대로 정본 창구임.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-13 09:49:17 +09:00
eomsangdonandClaude Opus 5 bfbd62b6da test(b07): 표준도 하단표에 날개벽·집수정·옹벽 칸이 서는지 굳힘
계획서 4-13 「칸만 오면 됨」 확인 — 관측 원단위가 든 종류는 하단표가 이미 섬.
날개벽 개소당 6줄 · 집수정 개소당 5줄 · 옹벽 반중력식 H=2.0 8줄.
식생옹벽블럭은 자료가 없어 줄 0개 + 사유만 — 값을 지어내지 않는 것을 함께 굳힘.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-13 09:28:41 +09:00
eomsangdon 5771cf1ef7 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-13 09:23:50 +09:00
eomsangdonandClaude Opus 5 8613c3b66e refactor(b06): 횡단 페이지 853줄을 셋으로 나눔 — 설계 재계산·계획선 편집 분리
700줄 한도 대응. 순수 이동으로 동작 불변.
- B06_Section_UI_Page_Design_Sync.ts — 설계 선택 반영·낡음 재계산·소단 동기화·[전체 반영]
- B06_Section_UI_Page_Grade_Edit.ts — 종단 계획선 ▲▼ 제공자
- 남은 B06_Section_UI_Page.ts 644줄

소스 문자열 감시 시험 셋이 분리 모듈까지 읽게 함.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-13 09:23:38 +09:00
eomsangdon 5e09a86104 test(b09): 준비공 줄이 인계에서 내역서까지 안 새는지 잠금 — V-12
B08 인계의 준비공·부대시설 줄이 B09 에서 내역 본체 또는 제외 줄로 반드시 서는지, 표토제거 2,359.035㎥ 가 수량째 본체에 서는지 마주 걸어 확인.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-13 09:13:13 +09:00
eomsangdon 2e6cfe5d3b fix(b08): 돌 무게 설명 두 곳을 확정 5차 7번에 맞춤 — 값 불변
stone_kind 표의 「사용자 확정 대기」 문구를 확정된 계산식 기준으로 고침. 관측표 종류 주석이 코드(안 고르면 계산식)와 반대로 적혀 있던 것 바로잡음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-13 09:11:26 +09:00
eomsangdon b5f7f3c00c feat(b09): 야면석 채집 「인 부」를 보통인부로 준용 — 확정 8-1
노임표에 없는 직종명을 유사 직종으로 바꿔 읽는 자리를 공종 단위로 둠(FP-13-02-04 한 곳). 산출기초에 준용 근거(재경원 회계 45101-45) 표시. 뒷길이 다섯 × 밑수 둘, 일위대가 10벌이 새로 섬.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-13 09:08:10 +09:00
eomsangdon 4209c5c2cf Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-13 08:50:24 +09:00
eomsangdon 2ab4c90288 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-12 21:53:18 +09:00
eomsangdonandClaude Opus 5 1fafe2548c fix(b05): 곡선 길이(L) 하한도 지키게 — 내각 155° 이상은 예외
R 하한만 막고 L 하한은 칸 입력에서만 막던 것을 고침. L = R·Δ 라 한 자리의 하한을
반지름 하나로 모아 봄(`radiusFloorM` = max(R 하한, L 하한/Δ)) — 값 끌어올리기·
모자란 양 판정·칸 막기가 모두 이 값을 씀.

내각 155° 이상은 별표2 Ⅰ.2.다.(1) 상 곡선을 안 둬도 되는 자리라 L 하한을 안 걺 —
걸면 교각이 0 에 가까워 R 이 수십 배로 부풀어 안 고친 구간이 휨. 그 자리는 곡선
패널에 「155° 이상 — 곡선 생략 가능」으로 적어 냄.

`deflectionRad` 를 화면 파일(`_Label`)에서 셈 파일(`_Edits`)로 옮김 — 순수 함수가
DOM 파일에 얹혀 있어 시험이 화면째 들여와야 했음(부르던 자리는 재수출로 지킴).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-12 21:48:39 +09:00
eomsangdonandClaude Opus 5 abe956affc feat(b05): 계획노선 편집 손질 여섯 — 교각점 고정·횡단 벡터화·라벨 맨 위
- 교각점 고정 단추: 켜면 그 꺾임점이 노드·손잡이 어느 쪽으로도 안 끌림(`apexLock`)
- 계획 횡단선을 절·성토 교차점에서 끊음 — 그 밖은 원지반이라 지반선과 겹쳐 그려지던 것.
  교차점은 B06 이 쓰는 `toeOffsets` 를 열어 함께 씀
- 횡단 판을 캔버스에서 SVG 로 바꾸고 휠 줌·가운데 끌기 팬·더블클릭 원복을 붙임
- 줌·팬 본문을 `A00_Common/b_svg_zoom_pan.ts` 공용 조각으로 빼고 B06 은 감싸개만 남김
- 「이전 횡단」 판은 계획 평면선이 바뀔 때만 채움(같은 측점 두 번 누르기로는 안 채움)
- 「거리 재기」 단추의 눌린 꼴 추가 · 등고선 높이 라벨을 맨 위로 올리고 더 촘촘히

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DJffo4VwgTumVUM3kdbJzd
2026-09-12 20:37:13 +09:00
eomsangdonandClaude Opus 5 9da48d5e7f perf(b06): 계획선 ▲▼ 를 누른 즉시 반응 — 측점 수만큼 다시 그리던 것 제거
- 재계산 결과 반영을 `refreshCards` 로 묶음. 측점마다 `refreshCard` 를 부르면
  그때마다 종단 그래프·유토곡선까지 다시 그려, 62 측점 기준 한 번 누를 때
  종단도를 62 번 다시 그림.
- ▲▼ 는 계획선(`design_profiles`)만 먼저 갈아 끼우고 다시 그림 — 선이 즉시 움직임.
- 전 측점 횡단 재계산은 120ms 디바운스로 미룸(B05 프리뷰와 같은 규칙) — 길게
  누르는 동안은 선만 따라오고, 손을 뗀 뒤 한 번만 돎.

실측(62 측점, 같은 노선·같은 조작)
- 한 번 누름: 화면 갱신 920~955ms → 17~23ms · 최장 멈춤 879~971ms → 180~229ms
- 1.5초 길게 누름: 멈춤 954ms×3회·누적 2,577ms → 최장 213ms·누적 473ms,
  적용 단수 3 단 → 10 단(제 속도)
- 값 동일성: 누가토량 배지·카드 3장·계획고 라벨·세션 초안 전부 변경 전과 일치
- `npm run typecheck` 통과 · `pytest resources/tester/` 1,323 passed / 22 skipped

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 20:34:26 +09:00
eomsangdon ae5dab661e Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-12 19:55:33 +09:00
eomsangdon 5702ef05c8 Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_1 2026-09-12 19:54:24 +09:00
eomsangdon 6455f55d6d Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-12 19:09:20 +09:00
eomsangdon 2706e4148f Merge remote-tracking branch 'origin/sub_laptop_1' into main_desktop_1 2026-09-12 19:08:50 +09:00
eomsangdon 5a3a3cd0e5 auto: 2026-09-12 19:08 (EOMSANGDON-HOME) 2026-09-12 19:08:50 +09:00
eomsangdon f206070fd7 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-12 19:08:48 +09:00
eomsangdon 3fc19dbfc2 auto: 2026-09-12 19:07 (ESD_LAPTOP) 2026-09-12 19:07:36 +09:00
eomsangdonandClaude Opus 5 3518f346e4 fix(b06): 계획고를 누르는 동안 세로 창을 고정 — 선이 안 움직여 보이던 원인
B05 에는 있고 B06 에 없던 장치였음. ▲▼ 를 누를 때마다 세로 창이 새 계획선에 맞춰 다시
잡혀, 값은 바뀌는데 선은 제자리에 있는 것처럼 보였음. B05 와 같이 누르고 있는 동안
창을 고정하고 손을 뗀 뒤 한 번만 다시 맞춤.

실측(랩탑_보조 534.0m 측점): 계획고 837.24 → 839.84m 일 때 설계선이 3.2px 올라감.
종전에는 같은 조작에서 0.4px 만 움직였음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 19:07:30 +09:00
eomsangdon 38da942127 Merge remote-tracking branches 'origin/CODEX' and 'origin/sub_laptop_1' into main_laptop_1 2026-09-12 18:58:13 +09:00
eomsangdon 0023e33349 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-12 18:58:12 +09:00
eomsangdon 788c6a95a6 auto: 2026-09-12 18:58 (ESD_LAPTOP) 2026-09-12 18:58:10 +09:00
eomsangdonandClaude Opus 5 83fdbe912d fix(b06): 계획선 ▼ 버튼이 알약 레인 위로 밀려나던 것을 그래프 안으로
편집 버튼층은 `inset: 0` 으로 부모를 꽉 채우는데, B05 는 부모가 그래프뿐이지만 B06 은
구조물 알약 레인도 같은 칸 안에 있어 ▼ 가 레인 위로 내려앉았음(실측: 그래프 바닥 231px
인데 버튼이 270~287px). 버튼층 높이를 그래프 높이로 잘라 B05 와 같은 자리에 세움
(실측 후 ▲ 72~89px · ▼ 212~229px, 그래프 70~231px 안).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 18:57:40 +09:00
eomsangdonandClaude Opus 5 3bd5ed2636 fix(B08): 등급색 토글을 탭 줄 끝으로 옮김
만들자마자 탭 줄에 붙이는 바람에 **탭 단추들보다 먼저** 서서, 「토적표」 앞에 탭이 하나 더
있는 것처럼 보였음(2026-09-12 실측: 토글 x=8 · 토적표 x=84). 표를 고르는 단추가 아니라
보기 방식을 바꾸는 단추라 섞이면 안 됨.

만드는 자리는 그대로 두고 **붙이는 것만 탭 단추를 다 세운 뒤로** 미룸.

자체검증(ORCA 5173, 로그인한 실제 화면) — 탭 줄 차례가
토적표(8) · 토공집계(74) · 운반거리(152) · 준비공·사방공(230) · 구조물 원단위(336) ·
자재총괄(441) · **등급색 토글(519)** 로 맨 끝에 섬. 토글을 켜면 칸 왼쪽 3px 띠와 옅은
배경이 붙고(측량 372칸 · 계산 868칸), 다시 누르면 사라짐. `tsc --noEmit` 통과.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RANEBHns1S4tkmsYwewtk
2026-09-12 18:56:14 +09:00
eomsangdon bd0753dbe5 docs(plan): archive remaining checked items 2026-09-12 18:54:38 +09:00
eomsangdon 90a73b8ceb Merge remote-tracking branches 'origin/CODEX' and 'origin/sub_desktop_1' into main_desktop_1 2026-09-12 18:52:13 +09:00
eomsangdon 2ac3d1d3bf docs(wiki): ingest completed plan items 2026-09-12 18:51:06 +09:00
eomsangdonandClaude Opus 5 25c523b72c fix(dev): 윈도우 리로드가 영원히 멈추던 uvicorn 경로를 terminate() 로 갈아 끼움
uvicorn 0.24 BaseReload.restart() 는 윈도우에서만 옛 워커를
os.kill(worker_pid, CTRL_C_EVENT) 로 내리려 함. CTRL_C_EVENT 는 프로세스 그룹을
지정해 보낼 수 없어(MSDN: 그룹 id 가 0 이 아니면 호출은 성공하지만 신호는 전달되지
않음) 워커에 아무것도 안 감. 바로 다음 join() 이 영원히 안 풀려 옛 워커가 살아서 옛
코드로 계속 응답하고, 새 워커는 태어나지 않으며, 그 뒤 파일 변경은 감지조차 안 됨.

실측(그 자리를 흉내 낸 부모·자식 한 쌍):
  CTRL_C_EVENT   → 8초 안에 안 풀림 (DETACHED · CREATE_NO_WINDOW · +NEWGROUP 모두)
  terminate()    → 0.00초
  CTRL_BREAK     → 0.00초 (자식을 그룹 우두머리로 띄웠을 때)

고침은 uvicorn 자신의 리눅스 경로를 그대로 씀. DEBUG + win32 개발 기동에서만 갈아
끼우고, uvicorn 이 위쪽에서 고치면 _patch_windows_reload 를 지우면 됨.

⚠ 앞선 두 커밋(빌드 고리·종료 시한)은 이번 멈춤의 원인이 아니었음. 빌드 고리는 실제
문제였고, 종료 시한은 다른 경우를 막는 값이 있어 남김. [boot] 표식이 이 진단을
가능하게 했으므로 함께 남김.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 18:47:49 +09:00
eomsangdon 9a9062f05c Merge remote-tracking branch 'origin/sub_laptop_1' into main_desktop_1 2026-09-12 18:42:45 +09:00
eomsangdonandClaude Opus 5 521e792a59 feat(b06): 종단 계획선 편집(▲/▼)을 B06 에도 붙임
B05·B06 종단을 같은 템플릿으로 맞추면서 **계획선 편집 버튼층만 빠져 있었음** — B06 에는
편집분을 얹어 계획선·전 측점 횡단을 다시 푸는 코드도, 편집 초안 세션도 이미 있었는데
누를 버튼이 없었음.

B05 와 같은 부품(createEditOverlay)을 종단 그래프에 얹고, 누른 값은 B05 와 같은 세션
초안에 쌓음. 누르는 즉시 계획선·횡단을 다시 풀어 카드에 반영함.

저장도 이었음 — 종전에는 B06 이 초안을 읽기만 해서, B06 에서 [저장]·[확정]하면 계획선
편집이 정본에 안 남고 다음 진입 때 사라졌음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 18:36:22 +09:00
eomsangdonandClaude Opus 5 57972659dd fix(dev): 종료가 멈추지 않게 시한을 두고, 리로드 멈춤 자리를 로그로 가름
- 백그라운드 태스크 셋을 cancel() 만 하고 지나가던 것을 gather 로 실제로 거둠
- 「백그라운드 작업 정리」·「DB 풀 종료」 두 걸음에 각 5초 시한. 못 끝내면 경고만
  남기고 넘어감 — 종료는 기다리는 곳이 아니라 끝내는 곳이고, 남은 정리는 OS 몫
- 끝에 「앱 종료 끝」을 찍어 종료가 끝까지 갔는지 로그로 갈림
- 모듈 맨 위에 [boot] 워커 프로세스 시작 pid 를 찍음. 리로드 뒤 이 줄이 찍히면
  새 워커는 뜬 것(포트를 못 잡은 자리), 안 찍히면 아예 시작도 못 한 것(리로더 자리).
  고칠 자리가 전혀 다른데 종전 로그로는 못 가렸음

⚠ 이번 멈춤의 원인이라는 증거는 아직 없음 — 로그에 「앱 종료 중」이 안 찍혀 종료
코드까지 가지도 못했을 수 있음. 위 [boot] 표식이 다음 멈춤 한 번으로 그것을 가름.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 18:27:07 +09:00
eomsangdon 2af795f5a4 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-12 18:19:12 +09:00
eomsangdonandClaude Opus 5 f952ac7ffd fix(git): 병합이 떨군 파일 22개와 되돌아간 파일 35개를 되살림
무슨 일이 있었나
랩탑 줄의 병합 `20ba886c`(Merge origin/main_desktop_1·main_laptop_1·sub_desktop_1 into
sub_laptop_1)가 우리 파일 22개를 떨구고 35개 파일의 내용을 옛것으로 되돌림. 손으로 지운
커밋은 없고 **병합 자체가 떨군 것**임. 그것이 `origin/dev`·`main_laptop_1`·`sub_laptop_1`·
`CODEX` 까지 퍼졌고(데스크탑 둘만 무사), 이 창의 병합 `d92c1f2b` 로 들어옴.

잃었던 것
- 공용 — `common_util_provenance.py` · `ui_template_provenance.ts`
- B08 — 근거 사전 · 좌측 패널 상자 모듈 · 토량환산계수 칸
- B09 — 근거 사전 셋
- B05 — 계획노선 편집 모듈 아홉 · 지형 라우터 · B04 지도 모듈
- 시험 셋과, 35개 파일 안의 최근 작업(환산계수 고르기 · 근거 호버 배선 등)

어떻게 되살렸나
`611a2b40`(병합 직전, 전부 온전)에서 `git show <커밋>:<경로>` 로 내용만 꺼내 되돌림.
이력은 안 건드림. ⚠ HEAD 에만 있던 「추가 816줄」은 랩탑의 새 작업이 아니라 **되살아난
옛 코드**였음(B05 편집은 모듈로 쪼개기 전 덩어리 · B08 라우터는 환산계수 고르기 전 옛
상수판). 되돌릴 시점 이후의 **진짜 새 커밋은 둘뿐**이라 그 둘만 패치로 다시 얹음 —
`9f827bf6`(리로드 빌드 고리 끊기, 데스크탑 보조) · `b9bca6b3`(B06 조정창 1px, 랩탑).
위키 여덟은 코덱스 몫이라 손대지 않음.

자체검증 — 양쪽 작업이 다 살아 있음을 짚어 확인: `main.py` 의 「개발 서버는 살려 둔다」 ·
`B05_Profile_Engine_Grade.py` 의 `plan_curve_length_limit_m` · `B08_..._EarthworkGrid.ts` 의
`attachProvenance`. `tsc --noEmit` 통과 · `pytest -q` **1317 passed, 28 skipped**
(되살리기 전에는 시험 둘이 수집 단계에서 깨져 있었음).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RANEBHns1S4tkmsYwewtk
2026-09-12 18:18:57 +09:00
eomsangdon 642b0ac18f Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-12 16:57:53 +09:00
eomsangdon 2940a8bff0 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-12 16:57:53 +09:00
eomsangdon 57c1ce77c1 auto: 2026-09-12 16:57 (ESD_LAPTOP) 2026-09-12 16:57:48 +09:00
eomsangdonandClaude Opus 5 333df15e2b refactor(b06): 종단 화면 본체를 700줄 아래로 — 그리는 몫을 따로 뺌
`B06_Section_UI_Section_View.ts` 가 817줄로 한도를 넘겼음. 종단 그래프·구조물 알약 레인·
우클릭 메뉴·누가토량 배지·고정 Y축을 세우는 몫과 가로 스크롤 세로창 배선을
`B06_Section_UI_Section_View_Draw.ts` 로 옮겨 693줄로 줄임.

높이 재기·되먹임 보정·선택 상태는 본체가 그대로 쥐고, 옮긴 쪽은 넘겨받은 인자만 쓰므로
화면 상태가 두 곳에 남지 않음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 16:46:37 +09:00
eomsangdon 216d027e9c Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-12 16:42:16 +09:00
eomsangdon d92c1f2b23 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-12 16:42:13 +09:00
eomsangdonandClaude Opus 5 9f827bf647 fix(dev): 리로드마다 프론트를 다시 빌드하던 고리를 끊음
- 개발 중에는 앱이 내려갈 때 Vite 를 죽이지 않음. Vite 는 한 앱 프로세스가 아니라
  개발 세션의 것이고, 다음 기동이 그대로 물려씀
- Vite 가 이미 그 포트에 살아 있으면 npm run build 를 건너뜀(첫 기동에서만 빌드)

까닭 — uvicorn 리로더가 *.py 마다 앱 프로세스를 갈아 끼우는데, 옛 프로세스가 종료하며
Vite 를 죽이면 새 프로세스가 「Vite 없음」으로 보고 npm run build(최대 300초 + B07 CAD)를
처음부터 다시 돌렸음. 그 사이 /api/health 가 stale: true 인 채 옛 코드를 계속 내주어
옛 화면을 보고 헛검증하게 됨. 2026-09-12 에 두 번 멈췄고 한 번은 두 시간 반 동안 안 끝남.

배포 환경은 그대로 — 빌드도 종료 정리도 종전과 같음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 16:41:20 +09:00
eomsangdon 611a2b407b auto: 2026-09-12 16:39 (EOMSANGDON-HOME) 2026-09-12 16:39:48 +09:00
eomsangdon 15085c2011 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-12 16:38:40 +09:00
eomsangdonandClaude Opus 5 b9bca6b332 fix(b06): 조정창이 면적표에 1px 닿던 것을 띄움
화면 실측에서 조정창 윗변이 면적표 아랫변과 1px 겹쳤음. 표 높이 기준값을 3.2rem 에서
3.6rem 으로 올려 6px 띄움.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 16:35:01 +09:00
eomsangdon 20ba886c86 Merge remote-tracking branches 'origin/main_desktop_1', 'origin/main_laptop_1' and 'origin/sub_desktop_1' into sub_laptop_1 2026-09-12 16:19:20 +09:00
eomsangdon 882d7ebaf3 Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/sub_laptop_1' into sub_desktop_1 2026-09-12 16:19:07 +09:00
eomsangdon 87da31df0a Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-12 16:19:05 +09:00
eomsangdonandClaude Opus 5 e192742384 feat(B08): 남은 표 다섯 장에 근거 사전과 등급색 배선 — 8-36 ⑥ B08 몫 닫음
토적표만 서 있던 근거 호버를 토공집계·운반·준비공·자재총괄·구조물 원단위까지 넓힘.
사전 여섯 장 48열이 됨(토적표 20 · 집계 5 · 운반 5 · 준비공 5 · 자재 7 · 원단위 6).

같은 열이라도 줄마다 성격이 갈리는 자리를 **칸 등급**으로 갈랐음
- 토공집계 「계」 — 무대(소운반 20m) 줄은 `final` 이 아니라 `excluded`. 집계에는
  오르되 내역 줄이 아님(품셈 1-2-7). 채우면 이중계상이라 「못 세움」과 뜻이 정반대임
- 운반표 — 같은 줄의 토량·거리 둘 다 `excluded`. 값은 검산에만 씀
- 준비공 「수량」 — 값을 못 세운 줄은 `blocked`. 근거가 오면 채워질 자리라 제외와 갈림

**B08 에서 `final`(최종)이 처음 서는 자리는 토공집계표 「계」** 임. 토적표는 중간
장부라 최종 열이 하나도 없음 — 그 갈림을 시험으로 박았음(등급 여섯은 한 장이 아니라
여러 장을 합쳐야 다 쓰임).

자체검증 — 시험 4개 추가(모두 12개). 집계표·운반표 사전 열 이름이 실제 엔진 줄에
있는지 대조하고(운반표 `average_distance_m` 은 필드가 아니라 property 라 따로 봄),
등급·이름·식 검사를 여섯 장 전부로 넓힘. `pytest -q` **1317 passed** · `tsc` 통과.
브라우저(ORCA 5173, 실제 사전을 물려 다섯 표를 그림) — 집계 정상줄 `final` /
무대줄 `excluded` · 운반 정상 `calc` / 무대 `excluded` · 준비공 정상 `calc` /
값 없는 줄 `blocked` · 자재 총수량 `final` · 관급사급 `input` · 원단위 수량 `calc`.
카드에 식·원천·채택·자리가 다 뜸.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RANEBHns1S4tkmsYwewtk
2026-09-12 16:18:20 +09:00
eomsangdonandClaude Opus 5 b1ba37b004 refactor(b06): 관 목록을 담는 자리를 한 벌로 합침
B05 는 관 목록 전체를 세션 스냅샷으로, B06 은 바뀐 것만 따로 담고 있어 담는 꼴이 둘이었음.
저장 순서를 맞춰 결과는 같게 했으나 자리가 둘인 한 같은 사고가 다시 남.

B06 의 추가·삭제·이동을 모두 B05 가 쓰는 스냅샷(pipes)에 쓰도록 바꾸고, B06 전용 예약
경로(culvertedit 세션·queueAdd·queueRemove·queueMove)를 걷어 냄. 옛 세션에 남아 있던
이동 예약만 저장 때 한 번 흘려보내게 읽기를 남김.

이제 관을 넣고 빼고 옮기는 길이 좌측 폼·목록·종단 우클릭·측점선 끌기 모두 한 함수이고,
담기는 자리도 한 곳임.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 16:16:19 +09:00
eomsangdonandClaude Opus 5 aadb4f6756 feat(B09): 근거 사전 네 장 추가·칸 단위 최종 등급·사전 파일 셋으로 분리
- 자재단가대비표: 적용 칸을 calc+rule(기.가·유.물·견적), 값 없는 원천 칸은 blocked
- 환율및기초자료: 공표·공시값 standard 와 사용자가 고른 유가 범위 input 을 가름
- 단가산출근거·산출기초: 모으는 표라 식을 비우고 source·등급만 채움
- 설계서 구성표·산출 조건 패널은 일부러 뺌(프로젝트 값이 아니거나 근거 한 줄과 중복)
- 원가계산서 금액은 총원가·도급금액·총계 세 줄에만 칸 단위 final 을 심음
- 700줄을 넘어 Provenance / _Sources / _Common 셋으로 가름(공통 조각을 한쪽에 두면
  불러들이기가 고리를 이룸)

사전 16장 92열, 등급 여덟이 모두 쓰임.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 16:15:03 +09:00
eomsangdon 93cdf005ca Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-12 16:05:38 +09:00
eomsangdon 788270a498 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-12 16:05:37 +09:00
eomsangdonandClaude Opus 5 1953ea9dc8 feat(B05): 횡단을 오른쪽 붙박이 두 판으로, 전후 비교와 손질 열셋
- 메인 창을 왼쪽으로, 오른쪽 세로 칸에 「횡단」·「이전 횡단」 두 판 (계획서 0-9 ⑱)
- 노드를 놓으면 보던 측점을 다시 셈해 새것은 위, 옛것은 아래로 (⑲)
- 측점 표기를 구조물 목록과 같은 규칙으로, 긴 안내문 삭제 (⑳㉑)
- 좌하단에 예상노선·계획노선 길이 둘 (㉒)
- [거리 재기] 단추와 구분선, 잰 값은 작은 창에 내고 닫으면 지움 (㉓㉔)
- 잰 구간을 누가거리로 잘라 꼬임 해소 (㉕)
- 곡선 패널 닫기 단추와 빈 곳 누르기 해제, 하단 정보는 내각만 (㉖㉗)
- 고른 등고선에 높이 라벨, 회전 아이콘을 반원 화살표로 (㉘㉙)
- 돌려도 글자는 바로 세움 — `UPRIGHT_LABELS` 한 값으로 되돌릴 수 있음 (㉚)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 16:04:04 +09:00
eomsangdonandClaude Opus 5 cb5ea7ede9 fix(b06): 관 편집이 어느 페이지에서 저장해도 같은 결과가 되게 맞춤
세 자리가 어긋나 있었음.
- B06 저장이 델타를 먼저 내보내고 B05 스냅샷을 나중에 써서, 두 화면을 오가며 만지면
  스냅샷이 B06 편집을 통째로 덮었음. B05 [임시저장]과 같은 순서(스냅샷 먼저, 델타 나중)로 바꿈.
- B05 저장이 구간값 키만 넘겨, B06 에서 예약한 관 이동·추가·삭제가 조용히 빠졌음. 키 셋을 다 넘김.
- B06 좌측 목록이 정본만 읽어 B05 에서 넣고 안 저장한 관이 안 보였음. 구조물과 같은 규칙으로
  미저장분을 먼저 씀.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 16:02:45 +09:00
eomsangdon 7068f59dff Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-12 16:02:13 +09:00
eomsangdonandClaude Opus 5 c94e77734e fix(공용): 근거 호버 배지를 칸 등급으로 그리고 빠진 등급은 열에서 채움
같은 열이라도 줄마다 성격이 갈리는 자리가 있음 — 원가계산서 「금액」은 중간줄
(간접노무비 따위)이 계산인데 마지막줄(총원가·도급금액·총계)은 최종임(데스크탑 보조
B09 배선에서 나옴). `markProvenanceCell` 은 이미 칸마다 등급을 받고 있었으나
카드 배지가 열 등급으로만 그려져 **띠는 최종인데 배지는 「계산」**으로 어긋났음.

- `fill()` 이 칸을 받아 배지를 `cell.dataset.provTier || column.tier` 로 그림
- 등급을 안 심은 칸은 `attachProvenance` 가 열 등급으로 채움 — 안 그러면 배지는
  뜨는데 띠가 안 붙는 「색 없는 칸」이 생김. 부르는 쪽이 등급을 빼먹기 쉬운 자리라
  여기서 맞춤. 줄마다 다른 칸에만 세 번째 인자를 주면 됨.

자체검증(ORCA 5173) — 같은 열 `amount_krw` 에서 등급 안 심은 칸은 배지 「계산」·띠
초록 rgb(31,138,76), `final` 심은 칸은 배지 「최종」·띠 금색 rgb(184,134,11) 3px inset.
배지와 띠가 같은 말을 함. `tsc --noEmit` 통과 · 병합 뒤 `pytest -q` 1313 passed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RANEBHns1S4tkmsYwewtk
2026-09-12 16:00:19 +09:00
eomsangdon 6d1ef43491 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-12 15:55:07 +09:00
eomsangdonandClaude Opus 5 ce9a83a655 feat(b06): 종단 측점선·구조물 알약을 끌어 옮길 수 있게 함
B05 에서만 되던 끌어 옮기기를 B06 종단에도 붙임 — 측점선과 알약 어느 쪽을 끌어도 같은
길을 타고, 관은 예약 이동(저장·확정 때 정본과 배수유역 재분할), 구조물은 정본 이동임.

끌기 판별과 대상 찾기는 새 모듈(B06_Section_UI_Section_View_Menu)로 모아, 종단 화면
본체가 더 커지지 않게 둠.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 15:54:08 +09:00
eomsangdon de3f95b532 Merge remote-tracking branches 'origin/sub_desktop_1' and 'origin/sub_laptop_1' into main_desktop_1 2026-09-12 15:52:04 +09:00
eomsangdonandClaude Opus 5 d1a2508053 feat(B09): 칸 단위 근거 호버·등급색 배선 + 줄 사유 덮어쓰기 버그 수정
① 버그 — BillRow.note 한 칸에 덮어쓰던 13곳·이어 붙이던 7곳을 조각 배열 notes 로
   옮김. 한 줄에 사유가 둘이면 하나가 조용히 사라지던 것이 멈춤. 조각마다 닿는 열
   키를 함께 실어 호버가 그 칸에만 띄우게 함. 화면 비고 칸은 종전과 같은 꼴 유지.
② 사전 — B09_Estimation_Provenance.py 신설(기존 B09 파일이 700줄 초과). 8장 57열.
   이미 있던 formula_text·source_label·base_label 은 그대로 쓰고 없는 것만 새로 적음.
③ 배선 — 라우터 5개 응답에 _with_provenance(), 표 여섯에 markProvenanceCell +
   attachProvenance. 개발환경이 아니면 응답에 칸 자체가 안 생김(로직 보안).
④ 등급색 토글을 탭 줄 끝에. 사전이 안 오면 단추도 안 세움.

⚠ 원가계산서 금액은 같은 열에서 중간줄과 마지막줄의 성격이 갈리는데 등급이 열에
   하나뿐이라 calc 로 두고 rule 에 어느 줄이 final 인지 적음(PLAN 8-36 ① 에 남김).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 15:50:55 +09:00
eomsangdon fd3b38f846 auto: 2026-09-12 15:50 (ESD_LAPTOP) 2026-09-12 15:50:07 +09:00
eomsangdonandClaude Opus 5 11161659f5 feat(b06): 종단 그래프 우클릭으로 구조물·계곡 통과 시설을 넣고 빼게 함
B05 와 B06 은 한 페이지인데 구조물을 넣고 빼는 자리가 B05 뿐이라 화면을 오가야 했음.
종단 그래프 렌더러·알약 레인·좌측 배치 폼은 이미 공용이었으므로, 빠져 있던 조작층만
B05 와 같은 부품(mountStructureMenu)으로 B06 에도 붙임.

관 추가·삭제는 이동과 같은 예약 경로를 씀 — 세션에 쌓고 [저장]·[확정]에서 정본
(pipe_points.json)으로 나가며, 세부 배수유역 재분할은 그때 서버가 처리함. 넣었다 바로
빼거나 뺐다 다시 넣으면 예약만 걷어 내 정본이 흔들리지 않음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 15:50:02 +09:00
eomsangdon 3e93360285 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-12 15:24:45 +09:00
eomsangdon c308348b9a auto: 2026-09-12 15:23 (EOMSANGDON-HOME) 2026-09-12 15:23:51 +09:00
eomsangdonandClaude Opus 5 6f122d79e3 docs(B09): 줄 사유가 닿는 열 지도 추가 (㉮ 조각 배열 배선용)
- 내역서 note 가 이어 붙이는 조각 20개를 임자 열(규격·수량·단가·금액·줄전체)로 가름
- 덮어쓰는 자리가 더 많아 사유 둘이 겹치면 하나가 사라지는 것을 드러냄
- 화면 비고 칸은 그대로 두고 조각 배열은 호버 카드용으로 따로 실을 것

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 15:17:37 +09:00
eomsangdonandClaude Opus 5 6e8de27966 feat(B08): 토적표 근거 호버와 출처 등급 분류 — 개발환경 전용
화면에 뜬 숫자가 어디서 와서 어떻게 나왔는지 가릴 길이 없어 개발·검산이 막히던 것을
엶(PLAN 8-36 ①②③④). 칸에 마우스를 올리면 등급·값·식·원천·자리가 카드로 뜨고,
토글을 켜면 등급색이 칸 왼쪽 띠로 붙음.

- `common_util/common_util_provenance.py` — 등급 상수 여덟과 `ColumnProvenance`.
  사람이 고르는 여섯(입력·측량·기준·계산·최종·막힘)에 `excluded`(일부러 안 셈,
  채우면 이중계상)와 `unclassified`(판단 미룸)를 더함. `excluded` 는 데스크탑 보조의
  B09 조사에서 나온 것으로 `blocked` 와 뜻이 정반대라 갈라 둠. 값 안에 선택이 숨은
  열을 위해 `rule`(채택 규칙) 칸도 둠.
- ⚠ 로직 보안 — `provenance_payload()` 가 개발환경이 아니면 `None` 을 돌려주고
  라우터가 응답에서 칸을 통째로 뺌. 화면에서 숨기는 것이 아니라 안 보내는 것임.
  문의 정본은 `is_dev_environment()` 하나로 통일.
- `ui_template/ui_template_provenance.ts` — 호버 카드·등급색·토글 한 벌. B09 도 같이 씀.
- `B08_Quantity/B08_Quantity_Provenance.py` — 토적표 20열 사전. 사전은 **열 단위**이고
  줄마다 갈리는 사유만 줄 쪽에서 얹음(칸마다 지으면 한 장이 6천 칸이라 응답이 붐).
- 토적표에는 `final` 열이 하나도 없어 억지로 붙이지 않음 — 중간 장부이고 내역서로
  나가는 값은 토공집계표에서 섬.

자체검증 — 시험 8개 추가(`test_b08_provenance.py`). 값어치는 첫 번째에 있음:
사전 열 이름이 전부 실제 `EarthworkRow` 에 있는가(엔진이 이름을 갈면 사전만 옛것으로
남는데 화면에서는 카드가 그냥 안 떠 눈에 안 띔). 배포환경 `None` 도 시험으로 박음.
브라우저(ORCA 5173, 실제 사전을 물려 토적표를 그림) — 표시된 칸 40개(2줄×20열) ·
등급 갈래 survey 12 / calc 28 · 카드에 「절토 토사 보정량 · 계산 · 값 45.00 ·
식 절토 토사 입적 × 토량환산계수(다짐) · 자리 EarthworkTable.py:210」 · 토글에 배경이
투명 → 초록 7 % 로 바뀌고 왼쪽 띠 inset 3px. 줄 사유가 그 줄 모든 칸에 뜨던 것을
사유가 닿는 열(`ditch_*`)에만 뜨게 고침 — 「절토 보정량」 카드에 「측구 가름값이…」 가
떠서 읽는 사람을 속이던 자리임.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RANEBHns1S4tkmsYwewtk
2026-09-12 15:16:12 +09:00
eomsangdon 81b67aadad Merge remote-tracking branches 'origin/main_laptop_1' and 'origin/sub_laptop_1' into sub_desktop_1 2026-09-12 15:15:32 +09:00
eomsangdonandClaude Opus 5 4793eb4130 feat(B05): 계획노선 편집 화면 정리와 지도 회전
- 조작 설명을 지도 좌상단 2열 오버레이로, 상태·범례를 좌하단 오버레이로 (계획서 0-9 ⑩⑫)
- 단추를 제목행 오른쪽으로 옮기고 공용 `.ui-btn` 규격을 씀, 하단 정보행 삭제 (⑪⑬)
- LAS 등고선을 도엽과 같은 5m 단위로 그림 (⑭)
- 바탕이 LAS 면 세류선도 등고선 범위 안쪽만 그림 (⑮)
- 지도 오른쪽 위 반시계·시계 단추로 15°씩 그림 전체 회전, 집기도 따라감 (⑯)
- R·L 하한을 5m 로 채움. 다만 L 하한은 칸 입력만 막음 — 기하에 걸면 거의 곧은 자리에서
  R 이 부풀어 아무것도 안 고쳤는데 노선이 바뀜 (⑰)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 15:09:09 +09:00
eomsangdonandClaude Opus 5 9b7ff762bb docs(B09): 원가계산 화면 데이터 원천 조사표 (PLAN 8-36 ⑥ 앞작업)
- 탭 열 개(살아 있는 아홉)의 화면 열마다 이름·원천(파일:줄)·식·등급 후보 정리
- 이미 있는 것 넷 가름 — formula_text · source_label · base_label · work_item_basis
- 등급 여섯에 안 맞는 일곱 갈래를 6장에 모음, 핵심은 ㉱ 「여기서 안 세는 줄」이
  막힘과 뜻이 정반대라 일곱째 등급 「제외」가 필요해 보이는 것

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 15:07:31 +09:00
eomsangdonandClaude Opus 5 c94d8c849a fix(b06): 암 절토 입력을 1:n 으로 바꾸고 기슭막이 대각선 제거·조정창 자리 내림
암 절토 칸은 속값이 이미 경사비인데 화면만 각도(°)로 바꿔 보여 줘, 도면·좌측 표준
설정·품셈이 모두 1:n 인 자리에서 이 칸만 머리로 환산해야 했음. 머리말 「1:」과 n 입력으로 바꿈.

기슭막이 상단에서 바닥으로 늘 긋던 대각 이음선은 사용자 지시로 뺌.

조정창이 좌측 상단 면적표를 덮어 수치가 안 보이던 것을 표 높이만큼 내려 세움.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 15:03:36 +09:00
eomsangdon ae9a053c59 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-12 15:00:05 +09:00
eomsangdon d5b7955ce2 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-12 14:58:20 +09:00
eomsangdon 585d44b3a6 Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-12 14:51:35 +09:00
eomsangdon ee8b3baeed auto: 2026-09-12 14:46 (EOMSANGDON-HOME) 2026-09-12 14:46:52 +09:00
eomsangdonandClaude Opus 5 648bc52813 fix(B08): 좌측 산출조건 패널을 B03~B07 공통 상자 틀로 통일하고 짤림 제거
개발용 「확정 없이 다음으로」 줄이 공용 `ui-sidebar-actions` 를 쓰고 패널 맨 위에
있어, 공용 코드(`splitSidebarActions`)가 **첫 번째** 그 클래스를 패널 바닥 액션 줄로
집고 스크롤 영역을 그 줄 안에 가둠. 그 아래 조건 칸과 진짜 [저장]·[확정] 줄이
`overflow: hidden` 밖으로 밀려 잘리고 스크롤바도 안 생기던 것을 바로잡음.

- 개발용 줄 단추 묶음을 `b08-quantity__dev-actions` 로 바꿔 공용 클래스에서 뗌
- 조건 칸을 `ui-collapsible ui-sidebar-section` 상자로 묶는 `groupPanelSections` 신설
  (새 파일 `B08_Quantity_UI_SidePanel_Sections.ts` — 본문이 이미 700줄을 넘김)
- 토량환산계수 구획도 제 제목으로 접히게 `ui-collapsible` 부여
- 표를 못 받은 경우(`table === null`) `concrete_placing` 접근에서 터져 페이지가
  통째로 백지가 되던 것을 `?.` 로 막음

자체검증(ORCA 내장 브라우저 5173, 모듈 직접 로드) — 스크롤 래퍼가 패널 직계로 돌아옴
(`b08-quantity__panel ui-sidebar-fill`) · `ui-sidebar-actions` 1개만 남음 ·
[저장]·[확정] 줄 바닥 920px = 패널 바닥 920px = 창 높이 920px 로 잘림 없음 ·
상자 7개(제목 6 + 무제목 1) · 「구조물·사토」 제목 클릭에 511px → 42px → 511px 로
접힘·펼침 확인 · `tsc --noEmit` 통과 · `pytest -q` 1294 passed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RANEBHns1S4tkmsYwewtk
2026-09-12 14:46:43 +09:00
eomsangdon 36b5bed256 Merge remote-tracking branches 'origin/sub_desktop_1' and 'origin/sub_laptop_1' into main_laptop_1 2026-09-12 14:40:01 +09:00
eomsangdon 617cf1a6b8 Merge remote-tracking branch 'origin/dev' into main_laptop_1 2026-09-12 14:40:01 +09:00
eomsangdonandClaude Opus 5 332948694e feat(B05): 측점 눈금을 누르면 그 측점 횡단 미리보기 창
- 원지반 횡단선·기본 계획 횡단선·성토사면 길이 셋만 보임, 구조물은 안 그림 (계획서 0-9 ⑧)
- 서버 `POST /route/cross-preview` 가 `generate_sections`+`compute_cross_design` 정본을 재사용
- 계획고는 편집 중에 없어 그 측점 지반고를 그대로 놓음(지반 추종) — 창에 그렇게 적음
- 성토사면 길이는 B06 화면이 쓰는 `fillSlopeLengths` 를 그대로 부름
- 700줄 규정에 맞춰 곡선 패널 배선을 `_CurveBar.ts` 로 분리

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 14:39:35 +09:00
eomsangdonandClaude Opus 5 87ecf8a2e1 feat(B09): 좌측 패널을 B03~B07 공통 틀(접히는 상자·바닥 고정 액션 줄)로 교체
- 조건 상자 다섯을 `ui-collapsible ui-sidebar-section` 으로, 제목에 `ui-collapsible__title` 부여
- 자체 `b09-panel__actions` 를 공용 `ui-sidebar-actions` 로 바꿔 [계산]·[확정] 이 패널 바닥에 고정
- 패널 루트에 `attachCollapsible` 연결 — 제목 행 클릭으로 접힘·펼침
- 상자 꼴(패딩·모서리·배경)은 `.ui-sidebar-section` 이 붙은 것만 집어 기초자료 본문 표는 불변

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 14:39:31 +09:00
eomsangdonandClaude Opus 5 bd770fc351 fix(b06): 곡선부 확폭을 설계 곡선표 기준으로 바로잡고 횡단도에 노견 표시 추가
확폭을 측점마다 앞뒤 10m 세 점의 외접원 반경으로 다시 재던 것을 계획노선 곡선표
(시·종점·설계 반경)로 바꿈. 종전에는 같은 곡선 안에서도 측점마다 확폭이 갈리고,
곡선 밖 직선까지 확폭이 흘러나가며, 측점 간격보다 짧은 곡선은 통째로 빠졌음.
곡선 안은 설계 반경의 표값 한 값, 앞뒤 10m 는 0 으로 잇고, 그 밖은 확폭 없음.
곡선표가 없는 옛 프로젝트는 종전 방식으로 물러섬.

횡단도는 차도 끝에만 눈금이 있어 노면이 넓어져도 차도가 는 것인지 노견이 는 것인지
가릴 수 없었음. 노면 끝에도 옅은 눈금을 세우고 노폭 라벨에 노견 폭을 덧붙임.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fe1QWPTfw11PaKh2LjwXdR
2026-09-12 14:26:40 +09:00
eomsangdonandClaude Opus 5 d02f7cf6e2 feat(B05): 계획노선 편집에서 두 점 사이 거리·종단기울기 보기
- Shift+클릭으로 노선 위 두 점을 찍으면 구간 길이와 종단기울기 표기 (계획서 0-9 ⑤)
- 지반고 통로 `POST /route/elevations` 추가 — 종·횡단과 같은 sampler 를 읽기만 함
- 찍는 순간에만 서버를 부름, 끄는 동안에는 안 부름
- 700줄 규정에 맞춰 구간 재기와 [확인] 처리를 `_Measure.ts`·`_Apply.ts` 로 분리

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 14:24:02 +09:00
eomsangdonandClaude Opus 5 b076e006a7 feat(B05): 계획노선 곡선 R·L 하한을 화면에서 막음
- 임도 종류별 하한 표를 config 에 둠, 작업임도는 규정이 없어 0(제한 없음)
- 기본 반지름과 하한을 갈라 둠 — 한 값이면 하한 0 이 반지름 0 이 되어 곡선이 안 그려짐
- `/route/plan` 이 `limit_radius_m`·`limit_curve_length_m` 를 함께 내림
- 반지름 칸·곡선 길이 칸·손잡이 끌기가 하한에서 멈추고, 노드 이동은 그 걸음을 되돌림
- 이미 하한을 밑돌던 자리는 그대로 두고 지키던 자리가 넘어가는 것만 막음
- 시험 `resources/tester/test_plan_curve_limits.py` 추가

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 14:09:46 +09:00
eomsangdon 43a9239803 Merge remote-tracking branches 'origin/main_laptop_1' and 'origin/sub_desktop_1' into main_desktop_1 2026-09-12 13:52:18 +09:00
eomsangdonandClaude Opus 5 082211462f feat(B05): 계획노선 편집 모달 바탕을 LAS 등고선으로 바꾸고 높이 라벨·선택 추가
- 확정 지표면이 있으면 LAS 등고선을 바탕으로 씀, 없으면 도엽 등고선 유지 (계획서 0-9 ⑥)
- 등고선 가닥마다 높이값 라벨, 겹치면 건너뜀 (③)
- 등고선을 누르면 그 가닥만 도드라지고 상태줄에 높이 표기 (⑦)
- 화면에 드는 가닥 수로 등고선 간격을 고름 — 1m 자료가 선으로 뭉개지던 것 해소
- `B04_PreProcess_UI_MapRender.ts` 700줄 초과로 사전 투영을 `_Prepare.ts` 로 분리

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 13:49:37 +09:00
eomsangdonandClaude Opus 5 465dbb955d feat(B08): 토량환산계수를 프로젝트가 고를 수 있게 열되 기본값은 불변
- 기본값 정의처는 config_system_design 한 곳 그대로. 고른 값은 프로젝트 설정
  quantity.conversion_factors_override 에 얹고, earthwork_conversion_factors() 한 함수가
  기본값 위에 얹어 풀어 냄.
- 그 함수를 거치는 자리 여섯 — 토적표·운반표·기초단가(B08), 유토곡선 컨텍스트·
  배분 계산·[저장] 재계산(B06). 상수를 직접 드는 자리를 없앰.
- 산출 조건 패널에 갈래별 계수 칸 신설 — 기본값·품셈 범위를 함께 보이고,
  「유토곡선·운반표·기초단가에도 같이 닿음」 안내 한 줄. 범위 밖은 막지 않고 사유를 받음.
- 품셈 체적변화율 범위를 서버 상수로 두고 화면에 내려보냄(프론트에 다시 적지 않음).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 13:38:00 +09:00
eomsangdonandClaude Opus 5 18c276c6af feat(B05): 계획노선 편집 모달에 길이·측점 표기 추가와 곡선 패널 가둠
- 상태줄에 계획노선 길이 실시간 표기 (계획서 0-9 ①)
- 시점·종점 이름표와 규칙측점 눈금 표기, B04 지도와 같은 `drawStationTicks` 재사용 (②)
- 곡선 조작 패널을 모달 지도 칸 안으로 가둠 — 상자 밖·하단 정보행 위로 안 나감 (⑨)
- 그리기를 `B05_Profile_UI_RouteEdit_Render.ts` 로 분리 — 본체 703줄 → 627줄

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 13:30:20 +09:00
eomsangdon 384625cec0 Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-12 13:18:26 +09:00
eomsangdonandClaude Opus 5 1bfe1aa6e7 fix(B08): 토적표가 설계 측구 가름값을 그대로 읽도록 하고 표기 자리수를 품셈에 맞춤
- 측구 토사·암을 절토 면적비로 다시 안분하지 않고 B06 이 낸
  ditch_soil_area_m2·ditch_rock_area_m2 를 그대로 씀. 근거 ditch_split_basis 도 줄에 실음.
- 설계값이 없는 저장분만 옛 안분으로 떨어지고 사유를 줄 주기에 남김.
- 표기 자리수 — 단면적 ㎡ 1자리 · 체적 계열 ㎥ 2자리 · 합계 정수 (계산은 전정밀 그대로).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GrXDD23Dvt2sR7q3X6oekp
2026-09-12 13:14:13 +09:00
eomsangdon de8e9eedc9 docs: dev 합류점과 브라우저 운용 위키화 2026-09-12 10:44:33 +09:00
eomsangdon d6e45bb431 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-12 10:22:09 +09:00
eomsangdon 556cbcfdf3 auto: 2026-09-12 10:21 (EOMSANGDON-HOME) 2026-09-12 10:21:53 +09:00
eomsangdon 6824f03815 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-12 10:20:39 +09:00
eomsangdon bf6c4d8340 auto: 2026-09-12 10:20 (ESD_LAPTOP) 2026-09-12 10:20:33 +09:00
eomsangdonandClaude Opus 5 746d6fe0d6 docs(verification): 화면 검증 기본을 ORCA 내장 브라우저로 바꾸며 공용 브라우저 상세 보관
- 지침 4장은 ORCA 기본 · 공용은 사용자가 지시할 때만으로 줄임
- 되돌릴 때 필요한 시동·명령파일·캐시 비우기·재시작 절차를 원문 그대로 이 문서에 옮김
- ORCA 쪽 캐시 비우기는 전용 명령이 없어 미확인으로 남김 (첫 B07 검증 때 확정할 것)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jsXWphgRUHAG2mFupSKPX
2026-09-12 10:14:01 +09:00
eomsangdon 3c37c4ed92 docs(verification): 들여오기를 코드 작업 전으로 한정한 개정 기록 2026-09-12 09:57:47 +09:00
eomsangdon aea787cc8d docs(verification): 깃 그물망에서 합류점 dev 로 전환 기록 2026-09-12 09:37:25 +09:00
eomsangdon cecd12e329 Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1 2026-09-11 22:49:18 +09:00
eomsangdon 92fc2450f2 Merge remote-tracking branch 'origin/CODEX' into main_desktop_1 2026-09-11 22:49:17 +09:00
eomsangdon c07b3e2354 Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-11 22:34:09 +09:00
eomsangdon ec68099557 Merge remote-tracking branch 'origin/CODEX' into main_laptop_1 2026-09-11 22:34:09 +09:00
eomsangdon 686dae6bf4 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-11 22:21:53 +09:00
eomsangdon 268b79fdcb Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-11 22:21:51 +09:00
eomsangdon 06883551f3 docs(wiki): archive worktree operations 2026-09-11 22:19:42 +09:00
eomsangdon a6ac664439 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-11 22:18:46 +09:00
eomsangdon 60fe4467b9 Merge remote-tracking branch 'origin/main_desktop_1' into main_laptop_1 2026-09-11 22:18:45 +09:00
eomsangdon 87d499c624 Merge remote-tracking branch 'origin/sub_laptop_1' into main_desktop_1 2026-09-11 22:17:35 +09:00
eomsangdon ed94be81b4 Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-11 22:17:33 +09:00
eomsangdon d0d3230112 Merge remote-tracking branch 'origin/main_laptop_1' into main_desktop_1 2026-09-11 22:17:32 +09:00
eomsangdon 3651d5b6f2 auto: 2026-09-11 22:17 (EOMSANGDON-HOME) 2026-09-11 22:17:27 +09:00
eomsangdon e993814540 Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-11 22:09:10 +09:00
eomsangdon e0a6c21077 Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_1 2026-09-11 22:00:42 +09:00
eomsangdon e49e4d8526 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-11 21:56:14 +09:00
eomsangdon 3a044ff9f6 Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-11 21:38:14 +09:00
eomsangdon 9eb0d0186b Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-11 21:31:13 +09:00
eomsangdon 097824bd9e auto: 2026-09-11 21:31 (ESD_LAPTOP) 2026-09-11 21:31:09 +09:00
eomsangdon fe26837f36 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-11 21:14:01 +09:00
eomsangdonandClaude Opus 5 f4accad335 docs(verification): 데스크탑 AI 워크트리 둘 원격 생성·링크 기록
- orca 환경(--environment) 으로 상대 PC 오르카를 직접 부리는 길 확인
- CODEX·안티그래비티 워크트리 생성, 링크 일곱 다 섬, 추적 붙임
- 상대 창 승인 대기 없이 내 권한으로 수행

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N7TKFmaPogzq9HUi6jKo7
2026-09-11 21:13:20 +09:00
eomsangdon 11c40853b6 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-11 20:52:06 +09:00
eomsangdonandClaude Opus 5 4674c02088 docs(verification): 랩탑 AI 워크트리 제거·장부 없는 워크트리 부트스트랩 기록
- orca terminal close 셋 + worktree rm 둘, 메인 파일·원격 브랜치 멀쩡함 확인
- 제거 전 정션 없음 확인 — 원본 삭제 위험 없었음
- 장부 못 찾으면 .claude 정션 대상을 메인으로 쓰는 길 추가
- 사용자 확정 셋(자동 커밋 유지·브랜치 이름 규칙·docs 문 유지)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N7TKFmaPogzq9HUi6jKo7
2026-09-11 20:50:57 +09:00
eomsangdon 01b82ecc5b Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-11 20:50:30 +09:00
eomsangdon 29943d9ff1 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-11 20:50:21 +09:00
eomsangdon 786389518f Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-11 20:45:27 +09:00
eomsangdonandClaude Opus 5 daff6ba68a docs(verification): 링크 스크립트·하드링크 실측 4장 반영
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QCqqbnuccwP57S3LSA3bv
2026-09-11 20:44:07 +09:00
eomsangdon 48b8ca0414 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-11 20:43:40 +09:00
eomsangdon a3e256de0b Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-11 20:43:39 +09:00
eomsangdonandClaude Opus 5 bebf6053ff docs(verification): 하드링크 끊김 실측·링크 스크립트 동작 기록
- main_laptop_1-2/PLAN.md 하드링크 이미 끊어져 갈라짐(107,270 ↔ 111,121)
- PowerShell 은 하드링크를 LinkType=HardLink 로 봄 — 옛 구멍은 「건너뜀」이었음
- 고친 스크립트 모래상자 시험 넷 통과
- 오르카 setup 문구는 CLI 로 못 바꿈

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N7TKFmaPogzq9HUi6jKo7
2026-09-11 20:43:01 +09:00
eomsangdon cf03b1ce7a Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-09-11 20:37:40 +09:00
eomsangdonandClaude Opus 5 8340b1d526 docs(verification): 오르카 워크트리 브랜치 이름 사용자 정정 반영
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QCqqbnuccwP57S3LSA3bv
2026-09-11 20:36:35 +09:00
eomsangdonandClaude Opus 5 684cf22f14 docs(verification): 브랜치 이름은 사용자가 규칙에 맞춰 지은 것으로 정정
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N7TKFmaPogzq9HUi6jKo7
2026-09-11 20:25:33 +09:00
eomsangdon 012c76df74 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-11 19:34:30 +09:00
eomsangdon d7b0e1c41b Merge remote-tracking branch 'origin/sub_desktop_1' into sub_desktop_1 2026-09-11 19:34:08 +09:00
eomsangdon bc270f533d docs(verification): 창 환경 워크트리 링크와 깃 운영 조사 기록 2026-09-11 19:33:30 +09:00
eomsangdonandClaude Opus 5 8ba960351f docs(verification): 창 환경 링크 구성·깃 운영 충돌 조사 기록
- 워크트리 넷의 링크 구성 실측(정션·하드링크·복사본·없음)
- 오르카는 무시 파일만 하드링크, 폴더는 안 만듦 — 그 워크트리에서 세션 훅 안 돎
- 오르카에 커밋·푸시 명령 없음 — 역할 나눔이 방향
- 토큰 실측(커밋 1회 191~338 · 따라오기 52~88)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011N7TKFmaPogzq9HUi6jKo7
2026-09-11 16:18:04 +09:00
eomsangdon d902d9f8dc auto: 2026-09-11 15:07 (EOMSANGDON-HOME) 2026-09-11 15:07:35 +09:00
eomsangdon e2c1ea7e05 Merge remote-tracking branch 'origin/main' into sub_desktop_1 2026-09-11 08:59:27 +09:00
eomsangdonandClaude Opus 5 9b35774c1c docs(verification): 경쟁사 오솔길 분석 기록 커밋
전 세션 산출물이 미커밋으로 남아 있던 것 — 싱크로 다른 창에 못 넘어가던 자리.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ikwZL5RDn97nEX5KU13qg
2026-09-10 23:31:16 +09:00
eomsangdonandClaude Opus 5 2b2c064df5 knowledge(경쟁사): 오솔길 도면양식 DXF 변환본 보관
DWG 56개(임도 표·심볼, 사방댐 표·상세도, 캐드 템플릿)를 LibreDWG로
DXF 변환해 10_원문/도면양식DXF/ 에 원본 폴더 구조 그대로 보관.
원본 DWG는 손대지 않음.

- 변환 성공 56 · 실패 0
- 폴더 README에 다시 만드는 명령, 들어 있는 것, 읽어 본 결과 기록
- 도면양식 개요 문서의 "저장소에 두지 않음" 문구를 실제와 맞게 수정

계산식은 없음 — 양식은 표 껍데기라 공식이 안 들어 있음.
건진 것은 열 구성과 항목 이름(볏집거적·새심기·오차적용경사·터파기조건).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YTbyFkYhKNUYvxRV7DYfxZ
2026-09-10 23:09:49 +09:00
eomsangdonandClaude Opus 5 b7429cd88d knowledge(경쟁사): 오솔길 도면양식 DWG 분석 — 지역별 양식 차이 확인
저장소 안 LibreDWG(dwg2dxf)로 오솔길 도면양식 55개를 DXF 변환해 글자 추출.
변환물은 저장소에 두지 않고 명령만 문서에 남김.

- 제출 양식이 발주 지역(OSKid: KN·KP·JN·CN)마다 표 열 구성이 다름을 확인.
  JN은 저수·저사·토사조절선이 없고 평떼·줄떼·찰쌓기·메쌓기가 들어감.
  KP는 떼붙임·좌안·우안 추가, 댐 토공표에 터파기조건 열 추가.
- 표제란은 DWG 파일 교체로 자사화 — 도면 안에 방법이 글로 적혀 있음.
- 발주처 로고를 별도 폴더(발주처_시군_공사_마크)에서 갈아 끼움.
- 임도 물량표(Wchart)에 매뉴얼 BOM에 없던 볏집거적·새심기 확인.
- 곡선설치표 신버전에 곡선중심 X·Y 추가, RE 정보표에 오차적용경사 확인.

폴더를 10_원문(전사)과 20_분석(분석)으로 나누고 README 색인 갱신.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YTbyFkYhKNUYvxRV7DYfxZ
2026-09-10 23:06:55 +09:00
eomsangdonandClaude Opus 5 eed223602d knowledge(경쟁사): 오솔길 엑셀매크로 VBA 계산로직 md화
경쟁사 프로그램 오솔길의 엑셀 매크로(PERSONAL.XLSB) VBA 7개 모듈을
모듈별 md 문서로 정리. 문서 안은 계산 로직 단위로 나눔.

- 임도 횡단물량: 평균단면적법, 보정계수(토사 0.9·암 1.0), 유용토=MIN(보정량계,성토입적),
  차인토량, 누가토량 수식 확보
- 야계사방댐: 터파기 유/무 두 갈래(지역 관행 차이), 유용토 상대가 성토+되메우기
- 사방댐 토공: 평균단면적법 / 3-4각형법 두 방식, 토사·암석 2열 분리
- 공통 보조 프로시저: 보정계수를 표에서 역산하는 방식 확인

단면적 산출·구조물 물량은 컴파일된 OSKi.arx 안이라 미확보 — 역공학 안 함.
VBA 원문은 저장하지 않고 재추출 방법만 README에 남김.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YTbyFkYhKNUYvxRV7DYfxZ
2026-09-10 22:06:46 +09:00
eomsangdon ccc8fec627 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-10 21:08:59 +09:00
eomsangdonandClaude Opus 5 56f1810360 docs(plans): 완료 계획서 연결 줄에서 없어진 위키 문서 링크 제거
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 21:08:43 +09:00
eomsangdon f8fe0b7f44 auto: 2026-09-10 21:01 (ESD_LAPTOP) 2026-09-10 21:01:22 +09:00
eomsangdon fb7bab52a9 docs(wiki): ingest plan evidence e f g 2026-09-10 20:46:04 +09:00
eomsangdon 3250850328 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 23:58:30 +09:00
eomsangdon 44e9304134 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 23:58:28 +09:00
eomsangdon d9727ae82f Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 23:48:30 +09:00
eomsangdon 10f1594e2f Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 23:38:31 +09:00
eomsangdon f31a42f4a6 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 23:38:29 +09:00
eomsangdon c10e9ce581 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 23:18:31 +09:00
eomsangdon ab031415d2 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 23:18:29 +09:00
eomsangdon d3fe0e3344 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 23:08:31 +09:00
eomsangdon fcd1cdb266 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 23:08:29 +09:00
eomsangdon fc4370893b Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 22:58:28 +09:00
eomsangdon 2c01204b9d Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 22:48:32 +09:00
eomsangdon 057f040ab1 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 22:48:29 +09:00
eomsangdon a19609f803 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 22:28:31 +09:00
eomsangdon 80c83294e2 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 22:28:29 +09:00
eomsangdon 453013fe83 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 22:08:29 +09:00
eomsangdon 7104fe8eb9 Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 21:58:29 +09:00
eomsangdon 69aba34f67 Merge remote-tracking branch 'origin/main_desktop_1' into sub_desktop_1 2026-09-09 21:38:28 +09:00
eomsangdon bfa74978aa Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1 2026-09-09 21:28:30 +09:00