Commit Graph
114 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5 d12f471c93 feat(M01): 사람이 읽는 식 줄 API — 비목 묶음마다 「단가 * 수량식 = 금액」 과 소계
- 엔진 `resources/master_data/scripts/master_text.py` — 식 마디를 그 자리에서 나온 수로 풀어 한 줄 글로(찾기·로직·만약·중간 값·요소는 글자로 안 나감 · 「… / 100」 은 「… %」 · 수는 화면과 같은 자릿수)
- `POST /text` — 몸은 `/calc` 와 같음 · 답 `{ok, groups: [{비목, 줄, 소계, 끝수}], 계}` · 멈추면 까닭 한 줄
- 중간 값·끝수는 따로 줄로 안 보임(끝수는 소계 옆 한 마디) · 덧줄은 그 비목의 한 줄 · 하위 로직 줄은 비목마다 한 줄
- 단가 0 이거나 안 쓰는 줄은 까닭 한 마디
- 시험 `resources/tester/test_m01_text.py` 6 통과(13-4-1 · 12-4 · 12-17-1 · 계가 `/calc` 와 같음) · M01 시험 41 통과 · typecheck 통과 · 일괄 시험 계산 1,291 그대로

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-21 19:37:55 +09:00
eomsangdonandClaude Opus 5 aa86e02b8f feat(M01): 끝수 계산 붙임 · 절 목록·절 거르기·표 조건 값·소유 거름·자체 로직 API
- 엔진 — 로직 줄의 묶음 `끝수`{대상, 자리, 방법}를 계산 끝에 붙임(비목 합마다 끊고 계 = 그 합 · 돈 아닌 로직은 결과) · 글자 끝수는 설명 그대로 · 검사가 묶음 모양을 봄
- 서버 — `GET /sections`(원문 본문 절 목록 + 그 절의 표·로직 수) · `/tables` 의 `section`(13-4 가 13-40 에 안 걸림) · `GET /table/options`(조건 값만) · `/logics` 의 `owner`
- 자체 로직 — `POST /logic/new|copy|edit|delete` · 파일 `로직_자체.json` · 키 GX 서버 발급(원문번호 같아도 줄마다 다른 키) · 정본은 403 · 저장 안 한 초안은 `/calc` 에 `key` "" 로
- 저장소가 700줄을 넘어 쓰기 모양(`keep_shape`·`dump`)을 `M01_MasterData_Store_Shape.py` 로 가름
- 시험 `resources/tester/test_m01_make.py` 8건 통과 · 기존 M01 시험 25건 통과 · 일괄 시험 계산 1,291 그대로

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-21 09:31:45 +09:00
eomsangdonandClaude Opus 5 8f5566e7c5 feat(master_data): 모래·자갈 단위중량 계수표와 레미콘 강도·슬럼프 설계 입력
- 계수 CC000337 「재료의 단위중량」(건설품셈 공통 1-2-4 3) — 원문 표 47줄을 「아래」·「위」 두 값 칸으로 폄
- GF000156·GF000157 — 「모래상태」·「자갈상태」·「모래단위중량」·「자갈단위중량」·「자재지역」 입력 · 중간 밀도로 kg 호표를 ㎥ 로 환산(0 이면 고른 상태의 표 위끝)
- 레미콘 14줄 — 품셈재료 MP000001 을 고르기 조건 {레미콘 · 규격 "{굵은골재최대치수}-{강도}-{슬럼프}"} 로 바꾸고 설계 입력 셋 추가 · 부르는 GF000170·GF000171 에 넘김
- 엔진 — 덧줄에서 `줄.'호표 줄 이름'` 으로 그 줄 금액을 집음(GF000185 콘크리트다짐)
- 일괄 시험 계산 통과 1,279 → 1,291 · 멈춤 75 → 63 · 단위 경고 14 그대로 · 틀 0 · 로직 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-21 08:26:53 +09:00
eomsangdon 6e9569c47b knowledge(요율): 국민연금 2033년 이후 추정 요율 걷음 — 법 부칙 명시분만 둠
부칙 제4조① 은 2026~2032년만 명시 — 2033년 이후는 그 해 되면 정함(사용자 확정).
정본 rate_from_2033_percent 삭제 · 비고에 짧게 남김 · build_요율.py 는 법 밖 연도가
정본에 미리 채워지면 잡아내는 쪽으로 바꿈 · 시험 2개 추가.
2026-09-21 07:50:13 +09:00
eomsangdon abf6b5a036 Merge remote-tracking branches 'origin/sub_laptop_1', 'origin/sub_laptop_2' and 'origin/sub_laptop_4' into main_desktop_1 2026-09-20 23:12:43 +09:00
eomsangdon b75d8c499c Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-20 23:12:39 +09:00
eomsangdonandClaude Opus 5 cdbfbb7e3f feat(master_data): 관경이 든 재료 참조를 고르기 조건으로 · 조건 값의 입력 자리 채움
- 엔진 — 고르기 조건 값의 `{입력}` 을 계산 때 채움(관경) · 검사에서는 그 칸을 뺌(`static`)
- 흄관 · 파형강관 두 줄을 고르기 조건으로 바꿈
- VR관(자재품목 단위 「본」 · 호표 「m」 환산 필요) · 고무링 · 커플링밴드 셋은 옛 참조 유지 — 조건만으로 줄이 안 좁혀짐
- 시험 하나 더함

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 23:10:42 +09:00
eomsangdon 4f9027b955 knowledge(master_data): 요율 갱신절차 구멍 메움 - build_요율.py 대조기 추가
조달청제비율 XLSX·국민연금법 XML 원문을 요율_조달청제비율.json 과 셀 단위로 대조하는
--check 전용 스크립트 신설(정본 쓰기 기능 없음) · 지금 원문·정본 전부 일치 확인 ·
국민연금 2033년 이후 요율은 법 부칙(2026~2032만 명시)에 없는 추정치임을 참고로 남김 ·
_갱신절차.md 요율 줄·구멍 목록 갱신 · 시험 3건 추가.
2026-09-20 23:09:58 +09:00
eomsangdon 20bd74306a Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1 2026-09-20 23:09:58 +09:00
eomsangdon edc77d48c9 Merge remote-tracking branches 'origin/sub_desktop_1' and 'origin/sub_laptop_1' into sub_laptop_2 2026-09-20 23:09:57 +09:00
eomsangdon 705f24b4f0 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-20 23:09:54 +09:00
eomsangdonandClaude Sonnet 5 734c31a5a7 fix(재료): 품셈재료 고르기 검증 반영 — 다른 물건 18줄 비움 · 규격 표기 정규화(∅→Φ) · 숫자 경계 맞대기
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 23:08:58 +09:00
eomsangdonandClaude Opus 5 e2ea63e844 feat(master_data): 재료 고르기 후보를 줄 단위와 같은 자재품목으로만 거름
- 엔진 — candidates·pick·element 에 unit · 호표 줄 단위를 그대로 넘김(우드칩 ㎥ 에 원목후로링 ㎡ 가 섞이던 자리)
- 후보 API — /materials 에 unit · 단가 미리보기도 줄 단위로 거름
- check_master 「단위」 검사 새로 — 조건 안 줄이 모두 다른 단위거나 대표 줄 단위가 다른 자리 37건(로직 검사와 따로 — 조건을 좁히라는 알림)
- 품셈재료 고르기 칸이 채워진 호표 줄 24개를 고르기 조건 묶음으로 바꿈
- 일괄 시험 계산 통과 1,270 → 1,272 · 시험 둘 더함

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 23:08:00 +09:00
eomsangdon f1632b0059 knowledge(master_data): build_용도.py ruff format 2026-09-20 23:07:55 +09:00
eomsangdonandClaude Sonnet 5 5c31234b36 fix(재료): 단위 거름에서 규격 조건 풀어 재시도 · 환산 필요 재료 목록
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 23:04:43 +09:00
eomsangdon ea3ba6ece8 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_2 2026-09-20 23:02:35 +09:00
eomsangdonandClaude Sonnet 5 eb88cf9a67 knowledge(마스터): 조달청 2022하 시설자재가격 받기 · 표 빌더 · 12 재료·없는 재료 대조
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-20 23:01:18 +09:00
eomsangdonandClaude Sonnet 5 817c0331f6 fix(재료): 품셈재료 고르기 단위 거름 — 단위·이름 같은 줄을 대표로, 없으면 비움
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 23:00:17 +09:00
eomsangdon 5348a0945d Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-20 22:57:28 +09:00
eomsangdon 999e4819ee Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 2026-09-20 22:57:28 +09:00
eomsangdonandClaude Opus 5 c81853b4cd feat(master_data): 로직마다 시험 계산용 기본 입력 · check_master 계산전부
- 로직 줄에 「시험입력」 칸 — 시험 계산 전용(정본 계산은 화면 값만 씀) · 규격·직경은 원문 표 첫 값 · 자재지역은 울진(모래 줄 없는 넷은 포항)
- check_master 에 `시험입력()` · `calc_all()` · 「계산전부」 모드
- 일괄 시험 계산 통과 1,219 → 1,270 · 멈춤 135 → 84(모두 데이터 결손 — 관리자 값 65 · 품셈재료 규격 미지정 13 · 지역 줄 없음 1 · 고르기 조합 없음 5)
- 시험 둘 추가(test_masterdata_check.py)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 22:56:28 +09:00
eomsangdon a50e39cb31 auto: 2026-09-20 22:55 (EOMSANGDON-HOME) 2026-09-20 22:55:49 +09:00
eomsangdonandClaude Sonnet 5 1476c79489 feat(마스터): 환율 빌더 — ECOS 일별 CSV 에서 최신 일자 5통화 · --check 로 지금 JSON 과 같음 확인
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-20 22:47:50 +09:00
eomsangdon 7ec7439a7a Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-09-20 22:45:17 +09:00
eomsangdon 774abcbe97 auto: 2026-09-20 22:34 (ESD_LAPTOP) 2026-09-20 22:34:54 +09:00
eomsangdon 6420dacb1b Merge remote-tracking branch 'origin/sub_laptop_1' into sub_laptop_4 2026-09-20 22:31:49 +09:00
eomsangdonandClaude Opus 5 a6f12fb07f feat(master_data): 기계 갈래 칸 이름 원문으로 · 틀 문서를 지금 데이터 모양에 맞춤
- `기계.json` — 갈래 칸 「세부분류」 → 「원문」(머리 묶음·줄 654) · 줄의 원문 글 칸은 「값원문」 으로(34 줄) · 줄의 `구분`·`상세구분` 과 이름이 겹치지 않게 함
- `check_master` MERGED 는 `master_keys.MERGED` 에서 받음 — 칸 이름을 한 곳에서만 적음 · 머리 「원문」 이 묶음인 파일도 틀 검사가 돎
- `master_keys.MERGED` · `build_기계_건설품셈.py` · `compare_estx.py` — 새 칸 이름
- `M01 서버` — 갈래 칸을 MERGED 에서 찾음(박은 이름 없앰) · 머리 원문이 묶음이면 `book` 은 빈 값
- `_틀.md` — 기계 원문·구분·값원문 · 자재품목 구분 채움과 묶음 문서 · 소요량·계수 「용도」 칸 · 인력 줄 갈래 칸 바로잡음
- `ref/_묶음_기계.md` 새로 — 구분 11 · 상세구분 174 (654 줄)
- `_갱신절차.md` 기계 절 칸 이름
- 검사 — `check_master` 틀 0 · 로직 0 · 시험 83 통과(test_m01_api 25 · test_masterdata_check 58)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 22:24:13 +09:00
eomsangdonandClaude Sonnet 5 3ad3a9b311 fix(master_data): 자재품목 분류 검증 반영 · 오분류 4건 규칙 차례 · 초본·야생화 상세구분 신설
- 추진관 → 관·이음관/흄관 · 수도미터 → 수도계량기·유량계 · 무소음트랜치 → 그레이팅 · 칼라각관 → 안전시설
- 식물 138줄 상세구분 초화·수생식물 → 초본·야생화
- 뒤집힌 줄: 오분류 고침 밖 0 (수도미터 보호통 2줄 밸브 → 계량기)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 22:15:08 +09:00
eomsangdon de6a46ee7d Merge remote-tracking branches 'origin/sub_desktop_1', 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into CODEX 2026-09-20 22:10:14 +09:00
eomsangdonandClaude Sonnet 5 b1fa3009a5 feat(master_data): 미분류 이름 줄 145 → 1 · 특수장비 신설 · 관급 못 채움 346 → 320
- 화초·수생식물 규격 꼴은 식생·종자 · Air Hammer · 콘쉴드 · 바탕면조정재 · 본우드는 특수장비 · 상·하차비는 운송·용역
- 관급 지역 묶음 시군 일부만 조달청에 있는 아스콘·레미콘 26줄 채움(비고에 명시)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 22:08:54 +09:00
eomsangdonandClaude Opus 5 1bcc957e9a feat(master_data): 품셈재료 고르기 칸 · 로직 재료 줄 일괄 변환 · 후보 값 열 다섯
- `재료_품셈재료.json` 363 줄에 「고르기」 칸 — 자재품목 구분·상세구분[·규격] · 212 줄 채움(규격 조건 19) · 짝 없는 줄은 null + 비고에 까닭
- `scripts/build_품셈재료_고르기.py` — 자재품목을 가른 바로 그 품명 글자 규칙 재사용 · 손으로 바로잡은 25 줄은 OVERRIDE · 연결이 이미 있는 줄은 옛 방식 그대로
- `scripts/build_로직_재료_고르기.py` — 호표 요소 `MP…` 를 고르기 조건으로 바꿈(로직 32 파일 287 줄) · 고르기 빈 줄과 `{이름}` 낀 원문번호 줄은 그대로
- 일괄 시험 계산 전후 — 통과 1119 → 1203 · 새로 멈춤 0 · 앞뒤 다 통과한 1119 줄 금액 변동 0
- `check_master` — 품셈재료 「고르기」 칸 검사(조건 모양 · 없는 구분·상세구분 · 조건 밖 대표 · 후보 0)
- `GET /api/m01/materials` — 후보마다 값 열 다섯(`값들`) · `값` 은 시험 계산이 쓸 낮은 값 · 값 있는 줄을 맨 앞에
- `GET /api/m01/logic` 의 `prices` — 고르기 조건 줄도 실음 · 열쇠는 조건 글 `mf.cond_text` · 후보 수 포함
- `_틀.md` 5장에 고르기 칸 · 일괄 변환 스크립트

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 22:02:28 +09:00
eomsangdon 8c8c99cd63 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-20 22:02:22 +09:00
eomsangdon e54db25302 Merge remote-tracking branch 'origin/sub_desktop_1' into sub_laptop_2 2026-09-20 22:02:21 +09:00
eomsangdonandClaude Sonnet 5 0b794cea7d knowledge(마스터): 기계 상세구분 다듬음 · 소요량·계수 표에 용도 칸 신설
기계.json — 상세구분을 구동방식·규격 뺀 굵은 기종으로(654줄 중 302줄 값 바뀜, 세부분류 칸은 그대로 둠 — 200개 이름이 170개 기종으로 묶임)
소요량_*.json · 계수_*.json 83개 표 3029개 항목에 용도 칸 신설(공종·대상·로직키) — scripts/build_용도.py
 - 공종: 원문번호로 해당 원문 md 의 절 제목을 찾아 채움(3029개 전부 찾음 · 산림품셈 1-1-3 형식은 마침표 포함 확인)
 - 대상: 값칸·줄 값을 인력.json·기계.json·재료_품셈재료.json 이름과 맞대 인력/기계/재료 판정, 이름에 「할증」「환산」 있으면 추가, 조건이 있거나 아무 것도 안 맞으면 작업량 조건
 - 로직키: 로직_*.json(54개, 읽기만) 의 식·수량·호표 문자열에서 표 키를 거꾸로 찾아 채움(3029개 중 1852개에 참조 있음)
스크립트는 재실행해도 같은 결과(기존 용도 줄을 지우고 다시 씀)

check_master.py 틀 0 · 로직 0 유지 확인 · 본문 1건(CC000074, 8-4-8 결손 1)은 이 작업 전부터 있던 것(용도 뺀 상태로 스태시해 재확인)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0146J72jAMHpcmW4n2Y8WakE
2026-09-20 22:02:08 +09:00
eomsangdonandClaude Sonnet 5 c04ccc91f6 feat(master_data): 자재품목 분류 보강 — 미분류 1063 → 169 · 빌더가 분류를 부름
- 규칙 보강(기존 규칙 뒤에 붙임 · 이미 분류된 줄 변동 0)
- build_재료_자재품목.py 끝에서 분류 적용 — 다시 돌려도 두 칸 · 머리 비고 유지
- 이름 빈 24줄은 비고에 까닭만

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 21:51:06 +09:00
eomsangdon 826495f199 Merge remote-tracking branches 'origin/main_desktop_1', 'origin/sub_desktop_1', 'origin/sub_laptop_1', 'origin/sub_laptop_2', 'origin/sub_laptop_3' and 'origin/sub_laptop_4' into main_laptop_1 2026-09-20 21:44:59 +09:00
eomsangdonandClaude Sonnet 5 c249f3be66 feat(master_data): 자재품목 구분 · 상세구분 채움 — 품명 글자 규칙 · 23 구분
- scripts/build_자재품목_분류.py: 품명 규칙(위에서 첫 일치) · 조달청 줄은 조달청 품명 표 · 다시 돌리면 같은 결과
- 재료_자재품목.json: 구분 · 상세구분 두 칸만 바뀜 (값 · 이름 · 키 그대로) · 못 가린 줄은 미분류
- ref/_묶음_자재품목.md: 구분별 상세구분 · 줄 수
- 시험: test_자재품목_분류.py 추가 · test_masterdata_check 의 「구분 비어 있음」 확인을 「채워져 있음」으로

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 21:38:56 +09:00
eomsangdonandClaude Sonnet 5 292568e688 feat(M01): 일위대가 로직 테스트 컨테이너 틀 + 방식 A 질문·답 마법사
- 왼쪽 패널에 「일위대가 로직 테스트」 컨테이너 추가 — 공종 10 개 고르기 + 방식 탭 A·B·C (B·C 는 준비 중)
- 방식 A: 공종 → 조건 질문(한 번에 하나) → 재료·기계 고르기 → 결과 호표 · 식 안 보임 · 저장 없음
- 대상 10 개는 복잡도로 재어 고름(scripts/로직_복잡도_재기.py) · 시험 test_m01_test_container.py

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-20 21:34:39 +09:00
eomsangdonandClaude Opus 5 999f3363db feat(master_data): 로직 재료 줄 고르기 조건 — 구분·상세구분·규격 후보 · 대표 줄 · 후보 목록 API
- `_틀.md` 7장에 재료 고르기 문법 — 호표 `요소` 를 조건 묶음으로 · 규격 낱말 조건 · 대표 줄 지정
- 엔진 `candidates`·`pick`·`check_pick` — 조건 안 후보 목록(화면·테스트 컨테이너 공용) · 시험 계산은 대표 줄, 없으면 값 있는 첫 줄(자재지역 우선)
- 로직 검사에 고르기 조건 검사 — 칸 이름 · 자재품목에 없는 구분·상세구분 · 조건 밖 대표 · 후보 0
- M01 서버 `GET /api/m01/materials` — 구분·상세구분·규격·자재지역으로 좁힌 후보와 기본 줄
- 옛 방식 재료 줄(`MP…`·`MT…` 키)은 그대로 돎

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 21:33:34 +09:00
eomsangdonandClaude Sonnet 5 565833bcb8 feat(master_data): 관급 보강 후보 합침 — 다산 같은 품명 줄에 조달청 최저가 · 새 줄 6,239
- 다산에 같은 품명(그레이팅 · 맨홀뚜껑 · 보행매트 · 합성목재 · 용접철망 · 갈매기표지판 · 고무링 · 혼합골재 등): 같은 치수 후보의 최저가를 관급 열에 채움 · 안 맞으면 비움
- 다산에 없는 품명(관 · 안전시설 · 종자·비료·식생 · 골재·경계석 · 매트 · 목재): 새 줄 6,239 · 자재품목 24,353 → 30,592
- update_관급단가_합침.py 신설 · apply 가 부름 · 다시 돌려도 같은 결과
- 설계 문서에 합친 결과 · 시험 추가

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-20 20:59:27 +09:00
eomsangdon 94fb0e615b Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-09-20 20:29:51 +09:00
eomsangdonandClaude Sonnet 5 9c9f1442cf knowledge(마스터): 관급 보강 — 조달청에서 자재품목에 없는 품목 후보 23,377줄 · 원본 보관
- 새 스크립트 update_관급단가_보강.py(받기 fetch · 후보 build) — 기존 update_관급단가.py 는 그대로 불러 씀
- 후보 = ref/_관급_보강_후보.json (자재품목 줄 모양 · 키 없음 · 같은 품명·규격은 최저가) — 정본·키대장은 건드리지 않음
- 원본 = 지식DB 관급/2026-09-20/보강/
- 없음(조달청 종합쇼핑몰) — 합판 · 각재 · 유로폼 · 강관동바리 · 비계 · 철선 · 못 · 폼타이 · 유공관 · 종자 · 방부목 · 잡석

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-20 20:28:31 +09:00
eomsangdonandClaude Opus 5 819c5019ec knowledge(마스터): 미확보 9 직종을 사용자 지정 추정으로 · 구분 미확보 뺌
- 인력.json — 절단공·사진제판공·사진식자공·측량사·측량기사·시공측량기사·측량조수·시공측량조수·특수운전공 상태 「추정」 · 값은 준용 직종 노임 · 출처는 근거 문서 · 비고 한마디
- 구분 「미확보」 등록부·빌더 짝짓기 없앰 · check_master BOOKS 에 공간정보법
- 근거 md 에 「사용자 지정 추정」 절
- 로직 일괄 시험 계산 통과 1,109 → 1,119 · 멈춤 245 → 235

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 20:27:44 +09:00
eomsangdon 5160cea9ac Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/sub_laptop_3' into sub_laptop_1 2026-09-20 20:19:36 +09:00
eomsangdonandClaude Sonnet 5 e013168b40 knowledge(유가전력): 전력 줄 두 줄로 줄임(사용자 확정) — 로직 「전력 계약종별」 고르기도 맞춤
재료_유가전력.json 전력 18줄 가운데 두 줄만 남김: ① 주택용 저압 전력량요금
120.0원/kWh(처음 200kWh까지, 옛 키 MO000058 그대로) ② 일반용(갑)Ⅰ 저압 전력량요금
한 줄(여름 132.4·봄가을 91.9·겨울 119.0 세 계절 단순평균 114.4원/kWh, 새 키
MO000073) — 비고에 계절 평균 값을 남김. 기본요금·최저요금·산업용(갑)Ⅰ·임시전력(갑)
16줄은 마스터에서 뺌(md 원문에는 그대로) — _키대장.json 「폐기」로 옮김(build 스크립트가
다시 돌아도 같은 결과, 번호 재사용 없음).

로직_건설품셈_13장_플랜트설비공사.json의 「전력 계약종별」 입력 고르기 8곳 모두
["주택용 저압", "일반용(갑)Ⅰ 저압", "산업용(갑)Ⅰ 저압"] → 두 가지로 맞춤(산업용 뺌).

품셈재료 「전력」(MP000358) 연결은 {"이름": "전력량요금", "계약종별": "입력"} 구조라
바뀐 줄에도 그대로 이어짐 — master_material.py 코드 변경 불요(구분·상세구분·이름
앞머리로 찾는 방식이라 데이터만 바뀌면 됨).

검증: check_master 틀·로직 0건(전체) · test_masterdata_check·test_m01_api 72건 전부
통과(test_전력은_계약종별로_고름이 MO000058.값=120 그대로 확인). 계산 결과 전후 동일.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaS48Nvs26o3aFUpcfJxVv
2026-09-20 20:17:57 +09:00
eomsangdonandClaude Sonnet 5 465574a189 feat(master_data): 벤치플륨관 · 소형고압블록 · 무게수로관 조달청 품명으로 짝 — 관급 못 채움 495 → 355
- 벤치플륨관 = 조달청 「벤치플룸관」 (「플룸」 조회 2,640줄 받음) · 모델 · 가로×세로 · 종별로 짝
- 소형고압블록 = 보차도용콘크리트블록 · 형 · 두께 · 색으로 짝 · 무게수로관 = 모델명 · 치수 글자 일치
- 「전지역(제주 제외)」 줄과 「대구경북」 식 붙여 쓴 두 도 지역 읽음
- 설계 문서 대조표 (채움 4,197 · 맞음 3,461) · 시험 16건

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-20 20:09:01 +09:00
eomsangdonandClaude Opus 5 7a9bcac924 knowledge(마스터): 추정 줄에 준용 직종 값 채움 · 출처는 근거 문서
- 상태 「추정」 아홉 줄 — 값·단위·일시간을 준용 직종 것으로 채움 · 출처 짧게(건설품셈 기계설비 13-06 · 제조노임 직종해설 · 엔산법 시행령 별표2 · 건설노임 명칭변경표 2010.1) · 비고는 공작기계공 「밀링원일 수 있음」 만 남김
- 시험사1급 준용 비파괴시험공 → 특급품질관리원
- 빌더 refill_estimated — 다시 지을 때마다 준용 직종에서 값 되채움
- check_master — 추정 줄 값 = 준용 직종 값 검사 · 출처 낱말에 엔산법
- 엔진 — 추정 줄은 제 값 · 호표 출처 「추정(준용: ○○)」

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 19:44:33 +09:00
eomsangdonandClaude Opus 5 a367f2afe1 knowledge(마스터): 엔산법 등급 적용 · 상태 「추정」 들임 — 미확보 28 → 9
- 기술사·특급~초급기술자·고급~초급숙련기술자·기계기사·기계산업기사 열 줄을 엔지니어링 현행 줄 옛이름으로 옮김(부문은 일반값 · 기계기사류는 기계·설비) · 로직 참조 326 곳 갈아 끼우고 호표에 「옛이름: ○○」
- 상태 「추정」 신설 — 구분은 대응 직종 것 · 값은 비움 · 준용에 대응 직종 키 · 호표 출처 「준용: ○○(추정)」 · M01 고르기에서 거름
- 추정 아홉 — 제관공·마킹공·현도공·산소절단공 → 플랜트제관공 · 제도공 → CAD설계사(기계) · 공작기계공 → 선반기조작원 · 옵셋인쇄공 → 종이및합성수지인쇄기계조작원 · 정보처리기사 → 초급기술자(정보통신) · 시험사1급 → 비파괴시험공
- 원문이 대응을 정하지 않은 아홉(절단공 · 사진제판공 · 사진식자공 · 측량조수 · 시공측량조수 · 시공측량기사 · 측량기사 · 측량사 · 특수운전공)은 미확보 그대로

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 19:29:47 +09:00
eomsangdonandClaude Opus 5 76ee8acb4b knowledge(마스터): 전력을 재료_유가전력으로 연결 — 자재품목 전력 2줄 뺌
- 품셈재료 「전력」 연결 = {이름: 전력량요금, 계약종별: 입력} — 유가전력 전력 줄을 가리킴
- 전력 쓰는 로직 8 줄에 입력 「전력 계약종별」(주택용 저압 · 일반용(갑)Ⅰ 저압 · 산업용(갑)Ⅰ 저압) — 품셈·계약예규에 계약종별 규정 없어 기본값 두지 않음
- 임시전력(갑)은 주택용 저압 요금 그대로(요금표 6.가) — 따로 고르기에 두지 않음
- master_material: 자재품목 아닌 줄은 「값」 한 칸으로 읽고 계약종별 후보를 고름 · check_master 연결 모양·끊김 검사도 맞춤
- 자재품목 MT000006 · MT000007 삭제 → _키대장.json 「폐기」 · 빌더 DROP 에 더해 다시 만들어도 같음
- _틀.md 재료 절 · 시험 둘 고침(전력 계약종별 · 연결 낮은 값은 시멘트로)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 19:11:34 +09:00
eomsangdonandClaude Opus 5 e48ffa26cb merge(마스터): sub_laptop_4 관급 확대 합침 — 자재품목 열 정리 위에 조달 값·새 줄 얹기
- 자재품목 = 내 열 정리(유류 5줄 삭제 · 원문번호 칸 없음) 기준 · 저쪽 관급 값 1,012 줄 · 비고 1,507 줄 채택
- 조달청에만 있는 380 줄 더함 — 원문번호 칸 없이 · 키 MT023981~MT024360 은 _키대장.json 에 등록
- update_관급단가.py 는 procured() 로 대장에서 「조달청 …」 키를 가려 짝지음 — 줄의 원문번호 칸을 보지 않음
- _키대장.json 「다음」 MT 24361 · MO 73 · 「폐기」 는 양쪽 합집합

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-20 18:58:02 +09:00