Commit Graph
4506 Commits
Author SHA1 Message Date
eomsangdonandClaude Sonnet 5 8187b0a79e fix(m01): 모달 뒷막 먹칠 없앰 — 덮개는 그대로
.m01-logic__backdrop 의 background 를 color-mix 30% 먹칠에서 transparent 로.
바깥 눌러 닫기·가운데 맞추기·z-index 는 그대로 둠 — 칠만 없앰.

검증: typecheck 통과 · ORCA 로 GF000219(13-4-1) 열어 줄 모달 띄움 —
backgroundColor rgba(0,0,0,0)·backdrop-filter none(뒤 패널 안 흐려짐) ·
바깥 클릭 닫힘 · Esc 닫힘 셋 다 확인.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 20:33:26 +09:00
eomsangdon 3abeb95716 Merge remote-tracking branches 'origin/sub_laptop_1', 'origin/sub_laptop_2' and 'origin/sub_laptop_3' into main_laptop_1 2026-09-22 20:02:32 +09:00
eomsangdonandClaude Sonnet 5 f7dd866876 feat(m01): 단가산출 상세 수량 칸 알약화 — 표 찾기만 알약 · 나머지는 글자
수량 칸을 「알약 + 사칙연산 글자」로 그림 — 찾기(...) 표 호출만 알약(조각 계약
`ref/_분석_알약_상세줄.md` ㉮ 표대로) · 나머지(숫자·연산기호·중간값·설계입력
이름)는 글자. 서버 조각 API 는 아직이라 화면에서 임시로 쪼갬(Logic_Note.ts
찾기() 규칙과 같음) — 서버가 붙으면 걷어냄. 단가·금액 칸은 안 건드림.

알약을 누르면 그 표만 바로 모달로(모달 안 알약 목록은 없앰) · 줄을 누르면 그
줄의 단가·다른 로직을 바로 보임(알약 없이 한 가지만). 인력·재료·경비 세 표를
table-layout: fixed + 같은 칸 폭으로 맞춤 · 알약은 칸 폭 기준 줄바꿈.

원 단위 소수점 0 — 돈 자리(단가·금액·소계·계)만 정수 · 수량·비율은 그대로 ·
조합 미리 보기(Combo_Preview)도 같이 고침.

검증: typecheck 통과 · ORCA 로 13-4-1·12-4·12-17-1 열어 확인(알약 클릭·행
클릭·칸 폭 동일 729.57px·정수 표시 확인, data-sum 은 원래 값 그대로 유지).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 19:59:48 +09:00
eomsangdonandClaude Sonnet 5 b9a3fe3abb feat(M01): /text 조각 목록 더함 · 이름 식 계산 없이(PLAN 2-1 첫줄·2-2)
- master_text.py — 조각(요소·표·로직·값·기호·글) 생성기 추가, 이름글·글·금액·
  까닭은 그대로 두고 줄마다 「조각」 칸만 더함
- 만약() 은 계산되면 걸린 가지만 · 계산 안 되면(FormulaError 따위) 양쪽 다
  내보내고 깊이를 적어 접을 수 있게 함
- 자리 표시({…}) 든 요소 참조는 이름만 적고 참조(키) 자리는 비움
- mf.run 이 막혀도(재료 단가 없음 따위) row 구조만으로 이름 식·조각을 짓고
  글·금액만 비움 — 로직 부르는 줄(비목 미정)은 세 비목에 다 걸쳐 보임
- test_m01_text.py — 새 시험 6개(계약 확인·요소 알약·자리 표시·만약 둘·
  계산 막힘 no-calc 경로), 기존 10개 그대로 통과
- 검증: pytest resources/tester/test_m01_text.py 16 passed · 13-4-1·12-4·
  12-17-1 금액이 앞과 같음(calc 엔드포인트와 대조, 기존 시험 그대로) ·
  ruff format/check 통과

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 19:38:23 +09:00
eomsangdonandClaude Sonnet 5 644cd170c6 feat(M01): 시험 계산 입력 2열 · 자재·기계·직종 키를 이름으로
시험 계산 입력 칸을 요소 표(기본정보)가 쓰는 auto-fill 그리드(m01-logic__head)로
감싸 여러 칸이 나란히 놓이게 함 — 짧은 고르기 줄은 2열로 붙고, 이름이 긴 줄만
한 칸을 다 씀(m01-logic__field--wide).

고르기 값이 자재(MT)·기계(EQ)·직종(LB) 키(2글자+6자리)면 /elements 를 키
그대로 물어(부분일치라 그 줄만 걸림) 이름+규격으로 바꿔 보임 — 보내는 값은
키 그대로라 계산은 그대로. 같은 키는 모듈 캐시로 한 번만 물음.

「그릇 폭 280px 고정」은 옛 테스트 컨테이너(UI_Test*, 2-3에서 걷힘)의 죽은 CSS
규칙이라 지금 쓰는 LogicLab 화면엔 안 걸림(실측 730px) — 따로 안 풂.

검증 — GC000031 ORCA: 공기·철선 나란히 2열 · 철선 고르기가
「어닐링철선,서울 #8, 4.0mm」 등 이름으로 뜸 · 계산 15,020.927(고침 전과 같음) ·
typecheck 통과 · 로직 전체 키형 고르기 179줄이 자재품목에 다 있어 이름 못
바꾸는 자리 0(100건 상한은 키 하나씩 물어 안 걸림).

Pick.ts(재료·기계 바꿔 고르기)는 이미 이름으로 보여 안 고침.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 19:37:20 +09:00
eomsangdon 97a743e43a Merge remote-tracking branch 'origin/dev' into CODEX 2026-09-22 19:28:31 +09:00
eomsangdonandClaude Opus 5 14046361dd fix(docs): 데스크탑 보조가 지운 완료 계획 이력 복구 — 2026-09-22 마스터·단가산출로직 정리
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqkvdyxUtANWroVKpQUyxE
2026-09-22 19:17:13 +09:00
eomsangdon fc4c8a77c8 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-22 19:12:52 +09:00
eomsangdon 62643ba748 chore(plan): 완료 계획 문서 삭제 반영 2026-09-22 19:12:37 +09:00
eomsangdon d08bff71c4 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-22 18:55:37 +09:00
eomsangdonandClaude Opus 5 6bee66baef fix(M01): 시놀로지가 덮어쓴 옛 사본을 되돌림 — 「단가산출 로직」 이름 되살림
앞 auto 커밋이 옛 사본을 올려 이름 바꾸기가 취소돼 있었음. 네 파일을 그 앞 판으로.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqkvdyxUtANWroVKpQUyxE
2026-09-22 18:55:23 +09:00
eomsangdon f1acbb77b9 auto: 2026-09-22 18:53 (ESD_LAPTOP) 2026-09-22 18:53:05 +09:00
eomsangdonandClaude Opus 5 033158a0d1 chore(정리): old_code 를 tmp 로 옮겨 저장소에서 걷음 — 246 파일
사용자가 tmp/old_code 로 옮김. 지우지 않았고 이력에 남아 있음.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqkvdyxUtANWroVKpQUyxE
2026-09-22 18:52:58 +09:00
eomsangdonandClaude Sonnet 5 1e434f0d5b knowledge(M01): 화면 개선 셋 분석 — 원 소수점·시험 계산 2열·자재 키값
- 분석만(코드 안 고침) · 새 문서 resources/master_data/ref/_분석_화면개선_셋.md
- 원 단위: formatNumber() 한 함수가 돈·수량·비율을 안 가름, Combo_Preview 는 딴 사본
- 2열: 요소 표에 이미 있는 auto-fill 그리드 방식 재사용 가능, 280px 좁음이 걸림
- 자재 키값: 실은 기계·직종 코드도 걸림, searchElements 재사용 가능하되 100건 상한 걸림

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 18:49:04 +09:00
eomsangdonandClaude Sonnet 5 1ecb5f02a4 knowledge(단가산출): 이름 식 계산 없이 만들기 분석 — 만약 겹침·로직 비목 미정·멈춤 로직 실수 확인
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 18:34:00 +09:00
eomsangdon fc7af43cf4 knowledge(단가산출): 상세 줄 알약 다시 검토 — 사용자 답 반영(규칙·세 로직 실제 줄·남은 어려움·표 유지 근거)
① 자리 모자라면 행바꿈·세 표 열 폭 통일 ② 만약() 은 표에서 정해진 값이라 안 어려움·계산값은
알약 아님 ③ 로직 부르는 줄 지금대로 ④ 수량 칸이 문제라 알약+사칙연산으로 · 알약 대 글자 규칙
표로 정리(요소·표·로직=알약 / 계산값·설계입력=글자) · 실제 서버 출력으로 13-4-1·12-4·12-17-1
세 로직 모든 줄을 알약 표기로 그려 봄 · 어려움 일곱 가운데 다섯 풀리고 둘만 남음(열 폭 통일·겹치는
정보) · 결론 — 열 폭·줄바꿈 요구 자체가 칸이 있다는 전제라 표 유지(㉮)가 맞음
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 18:16:06 +09:00
eomsangdon f5e3894941 knowledge(단가산출): 상세 줄 알약+사칙연산 분석 — 텍스트 수식 길 · 어려운 자리 · 표 대 목록 두 갈래
지금 줄이 무엇으로 그려지는지(표·모달·텍스트 수식 세 컨테이너) · POST /text 가 이미 이름 식을
주지만 문자열 하나라 토큰(알약 vs 글자)으로 안 쪼개짐 — master_copy.aliases 가 이미 아는
자료라 서버 조각 목록화가 안전한 길 · 어려운 자리 일곱(만약() 갈래 포함) · 표 유지 vs 목록 재구성
두 갈래 견줌 · 계산 코드 안 건드리면 금액 그대로
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 17:50:36 +09:00
eomsangdon 5c97e8b938 Merge remote-tracking branch 'origin/dev' into sub_laptop_4 2026-09-22 17:45:50 +09:00
eomsangdon a72caa667a chore(plan): 완료 계획(1~7장) docs/raw/plans 로 이관
PLAN.md 1~7장 체크 끝 — 남은 절만 남기고 지난 계획 통째 이관
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 17:45:43 +09:00
eomsangdon fecb70a368 auto: 2026-09-22 14:42 (ESD_LAPTOP) 2026-09-22 14:42:31 +09:00
eomsangdonandClaude Sonnet 5 449137a8f3 knowledge(M01): PLAN 7-5 「고친 뒤」 — 분석 문서 셋에 결과 기록
- 분석·데이터만(코드 변경은 앞 커밋에 이미 있음) · ref/_분석_안쓰는마스터.md·
  _분석_UnitPrice.md·_분석_검사코드_어디에.md 에 고친 뒤 절 추가
- PLAN.md 7-4·7-5 체크 갱신(심볼릭 링크 밖 공유 파일이라 git 대상 아님)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 14:40:45 +09:00
eomsangdonandClaude Sonnet 5 e937978116 feat(M01): PLAN 7-5 — 안 쓰는 마스터 old/ 로 마저 옮기고 죽은 코드 셋 끊음
- 아무도 안 읽는 최상위·ref 파일 7개를 old/ 로(지우지 않음) — _원문목록·_열목록_화면표·
  수량_돌쌓기찰라이브러리_소광리·공종_수량연결_실무·수량_구조물원단위_울진·
  품셈_산림_재료할증_울진·품셈_산림_돌종류계수_울진(뒤 넷은 old_code 만 읽어 이제 0)
- 공종_자원별칭_실무도 old/ 로 — common_util_aliases.py 를 읽던 시험 둘이 이미 깨져 있어(
  B08·B09 모듈 없음) 실제로 부르는 살아 있는 코드가 없었음
- 살아 있는 common_util/ 에서 dead 모듈 셋(work_item_key·work_item_link·aliases)을
  old_code/common_util/ 로 옮김 — old_code 만 부르던 것이라 옮겨도 부르는 자리 그대로(
  old_code 는 old_code 를 스스로 루트로 읽는 관례) · 상대경로 계산만 한 단 보정
- 깨져 있던 시험 둘(test_b09_fuel_kind_vibrator·test_b08_root_removal_excavator)도
  resources/tester/ 에서 old_code/resources/tester/ 로 — 7-3 이 놓친 것 마저 정리
- UnitPrice.py 의 load_basis_missing() — old/ 스냅샷 대신 새 최상위 마스터
  `기준수량없음_산림품셈_2026-01-01.json` 으로(브레인 판정: 마스터 쪽) · old_code 로
  옮겨진 뒤 root 계산이 한 단 부족해 조용히 빈 딕셔너리를 돌려주던 것도 같이 바로잡음
  (79건 견본 대조 통과) · check_master.py 틀 검사에 특수 파일 면제 한 줄 추가
- 검증 — typecheck · check_master 틀 0건 · M01·자재품목 시험 215 + masterdata·m01_api 98 통과 ·
  전체 모으기 1475 그대로

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 14:35:46 +09:00
eomsangdon 04784a808a Merge remote-tracking branch 'origin/dev' into sub_laptop_3 2026-09-22 14:14:36 +09:00
eomsangdonandClaude Sonnet 5 ada55c2b68 feat(M01): PLAN 7-4b 뒤 절반 ④⑤ — 재료_품셈재료.json 을 old/ 로 옮김(MP 직접참조 다 걷음)
되돌렸던 옮기기를 마무리. 앞서 놓친 자리 — 호표 「요소」 칸만 훑어서 덧줄·수량
식 안에 그대로 박힌 MP 참조 16곳(집수정 뚜껑·철망태·쉬즈관·IV전선·백열등·
바퀴숫돌 넷·버너·노즐·테르밋용재·몰드·골무·퓨즈·용접봉)을 못 봤음 — 자재품목에
새 줄 일곱(값 미확보) · 기존 줄 셋(백열등·망태석·용접봉, 가장 맞는 것으로 이음)에
연결하고 식 안의 MP 키 문자열을 그 자재품목 키로 바로 바꿔치기(품셈재료 간접 없이).

재료_품셈재료.json 을 resources/master_data/old/ 로 옮김(지우지 않음) — check_master.load()
가 `*.json` 만 훑어 자동으로 빠짐(코드 안 고쳐도 검사·엔진 다 끊김) ·
build_품셈재료_고르기.py·build_로직_재료_고르기.py 는 다시 안 돌림(한 번 쓰고 마침).

시험 — 옛길(품셈재료 간접)이 죽지 않았는지 자체 마스터로 확인하는 시험 셋을
고쳐 남김(실화면 대신 합성 데이터) · 이제 못 보는 화면 기능(품셈재료 목록·
연결 안 된 줄 거르기) 시험 둘은 뺌(기능 자체가 오늘 사라짐) · 자재품목 분류
기대표에 새로 이은 것들 더함(스페이셔와 같은 이유로 이름 다른 셋 더 뺌).

_틀.md — 재료_품셈재료 절을 「old/ 로 옮김·자료로만 둠」으로 고치고, 7장에
지역·계약종별 고르기 조건 칸을 추가.

typecheck 통과 · 관련 시험 107 통과 · 로직 1354개 전수 대조 — 금액 달라짐 0 ·
새로 멈춤 0 · 새로 통과 2(GC000374·GF000235, 덧줄 식이 못 풀던 것이 오늘 이어져
정상적으로 풀림). PLAN.md 는 이 워크트리에 7장이 없어(gitignore·기기별 파일)
체크 못 함 — 반복된 자리(문서에 이미 적음).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 14:14:24 +09:00
eomsangdon 499fdadd69 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_3' into main_laptop_1 2026-09-22 14:08:07 +09:00
eomsangdonandClaude Sonnet 5 3dd00a5608 feat(M01): PLAN 7-4b 뒤 절반 ④ 채비 — 버너·퓨즈 새 줄 둘로 이어 남은 MP 직접참조 0
버너(MP000209)·퓨즈(MP000214)는 어제 「후보가 있어도 물건이 달라 못 고름」으로
남겨 뒀으나, 재료_품셈재료.json 을 old/ 로 옮기려면 로직의 MP 직접참조가 다
없어야 함 — 자재품목에 값 없는 새 줄 둘(MT030710 버너·MT030711 퓨즈)을 만들어
그리로 이음(PLAN 7-4b ① 106종과 같은 자리 — 이름·규격·단위·출처 채움 · 값 다섯
칸 빔 · 비고에 왜 기존 후보를 못 썼는지). _키대장.json 갱신 · build_로직_재료_고르기.py
다시 돌려 로직 2줄 반영 — 로직의 「MP……」 직접참조 0(옛 22줄 + 오늘 1줄 = 모두 끝).

typecheck 통과 · 관련 시험 108 통과 · 로직 1354개 전수 대조 금액 달라짐 0·새 멈춤 0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:58:52 +09:00
eomsangdonandClaude Sonnet 5 91607b27d2 fix(b05,b06): 되살린 시험 둘의 본문 고침 빠뜨린 것 마저 커밋
- 앞 커밋이 파일 옮기기만 걸리고 내용 고친 것(B08 대조 빼기·경로 새 자리)을 안 실음 — 마저 담음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 13:58:01 +09:00
eomsangdonandClaude Sonnet 5 7e507959bd fix(b05,b06): 옛 자료 정리 때 잘못 쓸려 들어간 벽 기울기·기슭막이 표 자리 되돌림
- 09-19 정리로 old/·ref 에 섞여 들어간 B05·B06 전용 표 둘을 resources/data_masonry/ 로 복귀
  (masonry_slope·revetment_sabang, 옛 이름 그대로)
- B06_Section_UI_Cross_Lean.ts·B05_Profile_UI_Drainage_Facility_Fields.ts import 경로 두 줄 고침
- common_util_node_bundle.py 감시 경로도 새 자리로
- 죽은 시험 둘(test_b06_wall_lean_table·test_b05_revetment_sabang_basis) old_code 에서 되살림 —
  끊긴 B08 파이썬 대조 부분은 빼고 B05·B06 몫만 다시 돌게 함 · 5개 통과
- 나머지 넷(공종 마스터 2·공종 산림건설 연결·공종 자원별칭)은 이번에 안 건드림 — old_code 전용이라 걸림 없음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 13:57:39 +09:00
eomsangdonandClaude Sonnet 5 3e3bb8ef09 feat(M01): PLAN 7-4b 뒤 절반 ③ — 고르기 조건에 지역·계약종별 자리를 넓혀 모래·자갈·전력 17줄을 품셈재료 간접 없이 품
master_material.py — PICK_KEYS 에 「지역」·「계약종별」 더함. `_region`·`_tariff`
두 함수를 품셈재료 행이 아니라 조건 묶음 자체를 받게 고쳐 옛길(품셈재료 「연결」
간접)과 새길(호표 「요소」 에 조건을 바로 박음) 이 같은 코드를 씀(sub3 가 분석해
둔 방식 그대로 — 이름 뿌리 endswith·단위 같음·지역 이름 포함 매칭). check_pick —
지역·계약종별 조건은 구분 없이 이름만 확인 · 값이 "입력" 아닌 채 섞이면 틀로 잡음.

build_로직_재료_고르기.py — 품셈재료 연결이 {이름·지역:입력} 이나 {이름·계약종별:입력}
인 줄(모래 MP000004·자갈 MP000006·전력 MP000358)도 그 조건 묶음을 그대로 호표에
박도록 넓힘 — 다시 돌려 로직 4개 파일 17줄 반영(모래 8·자갈 1·전력 8). 전력은
지시대로 재료_유가전력.json(MO 테이블)을 그대로 가리킴 — 자재품목은 안 거침.

test_masterdata_check.py — PICK_KEYS 늘어난 만큼 cond_text 글자 열쇠 시험 고침 ·
지역 값이 "입력" 아닌 조건은 틀로 잡히는 것 확인.
test_m01_api.py — 전력 계약종별 시험을 mf.element 직접 호출로 바꿈(화면 단가
미리보기 `_pick_brief`(M01_MasterData_Store.py, 담당 밖)는 구분·상세구분 자리로만
찾아 지역·계약종별 조건은 아직 못 다뤄 None — 아는 구멍으로 남김 · 계산 자체는
정상 확인).

typecheck 통과 · 관련 시험 108 통과 · 로직 1354개 전수 대조 금액 달라짐 0·새 멈춤 0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:53:19 +09:00
eomsangdon e684dc40bd Merge remote-tracking branch 'origin/sub_laptop_3' into sub_laptop_1 2026-09-22 13:53:06 +09:00
eomsangdonandClaude Sonnet 5 6a604a973a knowledge(M01): B05·B06 이 old/·ref 파일 여섯을 읽는다던 것 다시 확인
- 코드·데이터 안 고침 · 읽기 전용 · `ref/_분석_B05B06_옛자료.md` 한 파일
- sub1 문서(여섯 다 B05·B06 이 읽음)를 코드로 다시 따라가 보니 실제로 읽는 건 둘뿐
- 공종 마스터 2·공종 산림건설 연결·공종 자원별칭 넷은 old_code(끊긴 B08·B09)만 읽음 —
  B05·B06 코드에는 부르는 줄이 없음(node_bundle 이 old/ 전체 수정 시각만 훑는 것과 혼동됐던 것)
- 돌쌓기경사 13-4-4(B06 횡단도 벽 기울기)·사방기슭막이치수(B05 근거 문구) 둘은 진짜로 화면이 읽음 —
  09-14 자기 전용 폴더에서 만들어졌다가 09-19 옛 자료 정리 때 old/·ref 로 같이 쓸려 들어간 것
  (B08·B09 만들며 들어간 게 아니라 B08·B09 정리 때 잘못 같이 옮겨진 것)
- 이 둘을 지키는 시험(`test_b06_wall_lean_table`·`test_b05_revetment_sabang_basis`)도 old_code 로
  같이 옮겨져 지금은 안 돌아감 — B05·B06 쪽 지킴이 비어 있음
- 걷는 차례 제안 — 나머지 넷은 걸림 없음 · 둘만 전용 자리로 빼고 import 경로 2줄 고침 ·
  죽은 시험 둘 되살림

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 13:46:37 +09:00
eomsangdonandClaude Sonnet 5 597bb35458 feat(M01): PLAN 7-4b 뒤 절반 ② — 애매한 후보 셋(색소·에폭시·땜납) 값 없어도 이음 · 버너·퓨즈 둘은 못 고름
사용자 확정(값이 없어도 그냥 넘어감)에 따라 규격·지역이 애매해도 가장 맞는
자재품목 줄로 이음:

  · 색소(MP000078) → 착색제(M-Green, MT006740) — 후보 1줄뿐이라 그대로
  · 에폭시(MP000082) → 주입용 에폭시 습식(MT007705) — 후보 4줄(주입용 습식·건식·
    씰링용) 가운데 낙석방지망 앵커 주입에 흔한 습식형
  · 땜납(MP000285) → 봉땜납 Sn30%(MT001252) — 후보 둘(Sn10%·Sn30%) 가운데 원문
    50:50 에 더 가까운 쪽(정확히는 안 맞음 — 비고에 적음)

버너(MP000209)·퓨즈(MP000214)는 후보가 있어도 물건 자체가 다름 — 버너 후보(개장로용
가스버너, 6~9구용, 915만원)는 산업용 화덕이지 압접가열용 소형버너가 아니고, 퓨즈
후보 다섯(전선퓨즈·통형퓨즈·고리퓨즈)은 모두 전기용이지 테르밋 용접 점화용이 아님 —
못 골라 그대로 둠(비고 그대로).

build_로직_재료_고르기.py 다시 돌려 로직 3개 파일에 고르기 조건 3줄 반영.
test_자재품목_분류.py — 기대표에 셋 더함(품명과 자재품목 이름이 달라 뿌리-이름
우선 검사에서 스페이셔와 같은 이유로 뺌).

typecheck 통과 · 관련 시험 108 통과.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:43:06 +09:00
eomsangdon 0b9df5a3d8 Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_3
# Conflicts:
#	resources/master_data/재료_품셈재료.json
#	resources/tester/test_masterdata_check.py
2026-09-22 13:38:53 +09:00
eomsangdon 90ab1abcab Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_3 2026-09-22 13:37:35 +09:00
eomsangdon 70f4d8906d Merge remote-tracking branch 'origin/sub_laptop_1' into sub_laptop_3 2026-09-22 13:37:34 +09:00
eomsangdonandClaude Sonnet 5 79f112b40c feat(M01): PLAN 7-4b 뒤 절반 ① — 품셈재료 MP 직접참조 135줄을 고르기 조건으로 바꿈(106종 이음 · VR관 1본=2.5m)
재료_품셈재료.json — 어제 만든 자재품목 새 줄 106개로 「연결」을 이음(값이 비어도
정상) · 그 뒤 build_로직_재료_고르기.py 를 다시 돌려 로직 16개 파일의 옛 방식
「요소": "MP……"」 134줄을 고르기 조건(구분·상세구분·대표)으로 바꿈.

GF000173 VR관(산림 12-11-1) — 자재품목 VR관 줄 단위 「본」과 호표 단위 「m」이
갈려 예전부터 멈춰 있던 자리. 1본=2.5m(고려콘크리트산업 규격표, 어제 확인)로
단위를 「본」으로 바꾸고 수량 식에 ÷2.5 를 넣어 풂 — 고르기 조건은 구분·상세구분·
규격만 두어(대표 안 박음) 「VR관」·「VR관(관급)」 둘 다 후보 — 지금은 파일 차례로
관급 줄(MT009698)이 먼저 걸림(고무링 요소와 같은 방식 · 사용자 확정 필요하면 나중에).

GF000176 커플링밴드는 sub2 가 이름 칸을 고르기 스키마에 더하는 중이라 안 건드림
(자재품목·접속티 안 갈리는 문제, ref/_분석_커플링밴드.md).

남는 MP 직접참조 22줄 — 모래 8·자갈 1·전력 8(지역·계약종별 입력으로 계산 때
풀리는 방식, 어제 분석에서 사용자 확정 보류) · 자재품목 후보는 있으나 규격·지역이
애매해 어제 일부러 뺀 5종(색소·에폭시·버너·퓨즈·땜납). 커플링밴드 1줄까지 23줄.

test_자재품목_분류.py — 새 106종의 품명별 기대 구분표 추가(스페이셔(몰탈 블록)는
뿌리 이름이 같은 다른 물건(철근 스페이셔)과 안 섞이게 그 검사만 뺌 · 실제 연결은
정확한 대표 키로 콕 집어 안전).
test_masterdata_check.py — 「MT:{변수}」 남은 참조 검사를 VR관 반영해 커플링밴드
1줄만 남게 고침.

typecheck 통과(TS 변경 없음) · test_masterdata_check.py·test_자재품목_분류.py
80 통과 · test_m01_api.py 27 통과.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 13:14:23 +09:00
eomsangdonandClaude Sonnet 5 1c5049ca50 knowledge(M01): 안 쓰는 마스터 자료 분석 — PLAN 7-4 목록 뽑기(옮기기 전)
- 코드·파일 안 옮김 · 읽기 전용 · `ref/_분석_안쓰는마스터.md` 한 파일
- M01 이 읽는 목록 — 최상위 json 145개 전부(load() 가 통째로 읽음) · _키대장.json ·
  엔진·검사 스크립트 8개(check_master·master_combo·copy·keys·text·formula·material·draft)
- scripts/ 나머지 37개는 전부 빌더·검사 도구(옮기면 그 도구가 깨짐) — 옮길 후보 없음
- old/ 재확인 — PLAN 가정과 달리 4개(공종 마스터 2·공종 산림건설 연결·돌쌓기경사)를
  B05·B06 화면이 지금도 읽음(절대 옮기면 안 됨) · 12개는 끊긴 old_code 만 읽음 · 21개(54,244줄)는
  이미 old/ 안인데 아무도 안 읽음(지울 후보 — 7-5 몫)
- ref/ 재확인 — md 58개는 범위 밖(코드가 안 읽음) · json·csv 9개 가운데 2개는 화면·시험이 지금도 읽음
  (절대 못 옮김) · 4개는 끊긴 old_code 만 · 2개는 진짜 아무도 안 읽음
- 옮길 후보 = 강한 것 3개(531줄: _원문목록.json·_열목록_화면표.csv·수량_돌쌓기찰라이브러리_소광리) +
  old_code 정리 뒤에나 되는 약한 것 4개(1,688줄) — PLAN 기대보다 훨씬 작음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 13:10:59 +09:00
eomsangdonandClaude Sonnet 5 fa850b182f feat(master_data): 재료 고르기 조건에 「이름」 칸 추가 — 커플링밴드·접속티 가름 (일감35)
고르기 조건(PICK_KEYS)에 이름 칸을 더함 — candidates()가 구분·상세구분·규격에 더해
이름 낱말도 봄(자재품목 원자료는 안 건드림). GF000176(파형강관 부설) 커플링밴드 호표를
옛 방식(품셈재료 손 연결)에서 고르기 조건으로 바꿔 같은 규격(관경)의 접속티와 안 섞이게 함.
재료_품셈재료.json MP000027·32·37 도 같은 조건으로 갱신. _틀.md 7장·시험 갱신.

검증: 이름 없이는 관경마다 커플링밴드·접속티 6줄이 섞임 → 이름을 더하면 1줄로 좁혀짐(전수
확인). 일괄 시험 계산 통과 1291·멈춤 63·금액 달라진 로직 0(앞뒤 동일) · check_master 틀·
본문·로직·조합 0 유지.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 13:10:09 +09:00
eomsangdonandClaude Sonnet 5 228e523d28 knowledge(검증): 7-1·7-2·7-3 뒤 화면을 사용자처럼 훑음 — 막힌 자리 없음
서버를 새로 띄우고 라우트 수로 새 코드가 실린 것부터 확인(quantity·estimation·z01 0).
마스터 데이터 컨테이너 아홉 모두 뜸 · 13-4-1 텍스트 수식 두 칸 정상(석공 60,984.36) ·
견본 조합 미리보기 합계 187,957.7202원 숫자로 뜸 · B08·B09 빈 화면 · Z01 은
준비 중인 페이지로 떨어짐 · B05·B06·B07 그대로 뜸.
알약 모달 한 항목만 지시문 해석이 갈릴 여지가 있어 사실만 적고 코드는 안 고침.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 13:06:57 +09:00
eomsangdonandClaude Sonnet 5 a7f550b808 knowledge(관·이음관): 커플링밴드-접속티 안 갈리는 까닭 분석 — 규격 낱말 매칭 vs 이름 칸 추가 견주기
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 12:47:35 +09:00
eomsangdon 4ca42ec240 Merge remote-tracking branch 'origin/sub_laptop_3' into sub_laptop_2 2026-09-22 12:43:10 +09:00
eomsangdonandClaude Sonnet 5 73109fe0e8 feat(M01): PLAN 7-4b 앞 절반 — 품셈재료 값 없는 재료 자재품목 새 줄 106 · 모래·자갈 전국지역 분리 · VR관 1본=2.5m
품셈재료 가운데 자재품목에 짝 없어 로직이 부르는 재료 106종(원 분류의 139줄 대응)을
자재품목에 새 줄로 만듦 — 이름·규격·단위·구분·상세구분·출처(품셈재료 키·요구절)만
채우고 값 다섯 칸(물가자료·유통물가·물가정보·거래가격·관급)은 모두 빔 · 비고에
「품셈재료에서 옮김 · 값 미확보」 · 키는 MT030600부터(_키대장.json 갱신).

이름이 옛 분류 규칙에 안 걸리는 93종(건설품셈 13장 플랜트설비 소모품 위주)은
build_자재품목_분류.py 에 정확한-이름 대응표를 새로 두어 채움(정규식 우선순위는
안 건드림 · 기존 30592줄 분류 결과 그대로 · 미분류 25줄 불변).

모래·자갈(중량 kg, 자재품목엔 ㎥ 지역줄만 있음)은 한 줄로 안 굳히고 전국 대표 자리 ·
지역별 자리 두 줄씩(4줄) 나눠 둠. 전력은 재료_유가전력.json 에 이미 있어 그대로 둠(안 옮김).

VR관(GF000173 막힘 원인)은 고려콘크리트산업 규격표로 1본=2.5m(D300~D1200 공통) 확인 —
그 22줄 비고에 환산 계수·출처 적음(D1500 은 표에 없어 그대로 둠).

품셈재료 자체는 이번엔 안 옮김(다음 일감) · 로직·조합 파일은 안 건드림.

typecheck 통과 · test_자재품목_분류.py·test_masterdata_check.py 80 통과(미분류 0 신규).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 12:39:33 +09:00
eomsangdon 9b7855df43 Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-09-22 12:35:45 +09:00
eomsangdonandClaude Opus 5 8472fc9f40 refactor(B08,B09): 폴더째 old_code 로 옮기고 빈 화면 둘만 남김 (PLAN 7-3)
B08_Quantity 86 · B09_Estimation 111 파일을 old_code/ 로 옮김(지우지 않음).
화면은 메뉴·주소·단계 막대만 남은 빈 틀 둘 — main.py 라우터 13 개는 끊음.
B07 이 빌려 쓰던 비탈 길이·면적은 필요한 함수만 B07_DesignDetail_Engine_SlopeGeometry
로 옮겨 적음(면적 적분·노면 면적·측점 묶음은 안 옮김) · 시험 하나를 새로 둠.
B07 구조물도 조립(Cad_StandardSheet)은 2026-09-13 에 이미 도면 목록에서 빠져
부르는 곳이 없어 old_code 로 같이 보냄 — 구조물 그림은 되살리지 않음.
B06 구조물 몫 조회는 빈 값으로 두어 화면이 그대로 서게 함.
B08·B09 를 부르던 시험 25 개도 old_code/resources/tester 로 옮김.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 12:27:45 +09:00
eomsangdon 2ebc02dab5 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into sub_laptop_3 2026-09-22 12:24:45 +09:00
eomsangdonandClaude Sonnet 5 f5065969f4 knowledge(관급): 남은 112줄 재분류 — 조달청에 없음 83 · 확정 기다림 29 (사용자 확정: 다섯 칸 안 채워도 정상)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 12:22:17 +09:00
eomsangdonandClaude Sonnet 5 e080649b2e knowledge(M01): 값 없는 자재품목 줄 가운데 로직이 실제로 쓰는 것만 가림
- `scripts/check_값없는줄.py` 신설 — 로직 1,354 줄을 훑어 호표 직접 지정·고르기 조건 후보·
  대표 줄·품셈재료 연결(문자열 키·지역 조건)까지 실제 참조를 셈, 값은 안 채움
- 재료_자재품목.json 다섯 칸(물가자료·유통물가·물가정보·거래가격·관급) 모두 빈 줄 345 가운데
  로직이 실제로 가리키는 진짜 구멍은 31 줄 — `ref/_분석_값없는줄.md` 신설
- `ref/_관리자값_미확보.md` 재검증 — 45종 가운데 6종은 고르기 조건으로 바뀌었거나 로직이
  재료 자체를 뺀 것이라 로직이 안 씀으로 옮김, 남은 39종·로직 49개는 그대로 관리자 몫
- `ref/_없는_재료.md` 재검증 — 111줄 모두 지금도 로직이 부름, 뺄 줄 없음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 12:21:41 +09:00
eomsangdon 185f800d23 Merge remote-tracking branch 'origin/dev' into sub_laptop_4 2026-09-22 12:17:35 +09:00
eomsangdonandClaude Sonnet 5 4367eb9164 knowledge(B08B09): 옮기기 전 준비 분석 — 부르는 모든 자리·B07 이식 난이도·파일표·차례
B08_*·B09_* 를 부르는 밖의 자리를 모두 훑음(파이썬 2·main.py 13·화면 라우트 5·
common_util 문자열 3·시험 25).
B07 이 부르는 SlopeLength·SlopeArea·StructureFigure 의 이식 난이도를 가름
(앞 둘 쉬움 · StructureFigure 는 Pipe·StructureSheet·UnitQuantity 가 딸려 어려움).
B08·B09 파일·줄 수 표 · 옮긴 뒤 빈 화면에 남길 최소한 · 옮기는 차례를
PLAN 7-3 확정 차례(먼저 옮기고 깨지는 대로 봄)에 맞춰 정리.
코드는 하나도 안 고침.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 12:15:02 +09:00
eomsangdon 0683da856b Merge remote-tracking branch 'origin/sub_laptop_3' into sub_laptop_2 2026-09-22 12:12:10 +09:00