Commit Graph
569 Commits
Author SHA1 Message Date
eomsangdon 19a5a8c499 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_3 2026-09-19 18:46:04 +09:00
eomsangdonandClaude Opus 5 3a36a0372c feat(M01): 관리자 화면 로직 칸 — 일위대가표(호표) 고치기 · 시험 계산 · 요소 찾기 창
- 화면: 왼쪽 로직 목록(원문·장·이름 찾기·막힘) / 가운데 머리·받을 값·호표·중간 값·덧줄·끝수 / 오른쪽 시험 계산
- 고친 것은 캐시에 쌓고 [저장] 한 번에 · [고친 것 버리기] · 줄 더하기·지우기 · 로직 새로 만들기·지우기
- 진입은 mountM01Logic(host) — 공용 진입 파일(sub_laptop_3 몫)이 한 줄로 붙임
- 서버: 로직 하나에 단가 자동(prices) · 요소 찾기(GET /elements) · 저장 전 시험 계산(calc 에 row·file)
- 계약 문서 갱신 · 시험 1개 더함(9개 통과)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-19 18:45:17 +09:00
eomsangdonandClaude Sonnet 5 5d0f34aaab merge: origin/sub_laptop_2 병합 - 로직_공통8장 · 재료_자체 양쪽 줄 합침
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-19 18:26:59 +09:00
eomsangdonandClaude Opus 5 e11827f8f4 feat(M01): 마스터 데이터 관리자 API 서버 쪽 — 읽기 · 시험 계산 · 저장
- M01_MasterData 라우터 + 파일 저장소 (/api/m01 · 시스템관리자 전용)
- 저장 = 판본 대조(409) → 적용 → 틀·로직 변수 검사(새 걸림 422) → 씀
- check_master.py 에 load(folder) · check_saved · calc 드러냄
- 계약 문서 장 이름 보정(공통3장)
- 시험 test_m01_api.py 8개 (임시 폴더 사본)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-19 18:15:20 +09:00
eomsangdonandClaude Opus 5 31dd7a7e24 feat(master_data): 인력_자체 — 막힌 절 7개 세움 · 범위규칙 이상·이하
- 인력_자체.json: 중급기술자 · 절단공 · 특수비계공(값 null · 관리자가 채움)
- 2-9-12 · 2-11-8 · 2-11-9 · 2-12-4(조립해체 · 추진 · 이동설치) · 5-1-7 인장 · 6-2-5 · 6-3-6 해체 로직
- 2-1-1 · 2-1-2 범위규칙 이상·미만 · 2-12-4 범위규칙 이상·이하
- master_formula: 이상·이하(양 끝 포함 · 겹치면 위 끝이 가장 작은 줄) · _틀.md 한 줄
- 재료_자체: 아세틸렌가스(ℓ)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 18:14:16 +09:00
eomsangdonandClaude Opus 5 4dda21d67d merge: dev 받기 — 8장 기계 고르기 · 재료_자체 줄 합침
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 18:07:18 +09:00
eomsangdonandClaude Opus 5 0f4e396cb0 feat(master_data): 건설품셈 토목 2장(하천) 로직 7줄 · 시험 1개
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 18:04:17 +09:00
eomsangdonandClaude Opus 5 89b0d220c3 feat(master_data): 건설품셈 토목 1장(도로포장) 로직 56줄 · 8장 기계 고르기 넓힘 · 자체 재료 4개 · 시험 2개
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 18:03:02 +09:00
eomsangdonandClaude Opus 5 7fe462f972 feat(master_data): 건설품셈 공통 5장 로직 35개 — 기초공사
- 로직_건설품셈_공통5장.json: 흙막이(마대 · H-Beam · 흙막이판 · 앵커 · 복공판 · 기준틀) · 지반개량(매트 · 고압분사 · PBD · 다짐말뚝) · 말뚝(기성 · 천공 · 두부정리 · 현장타설) · 차수재
- 장비조립·해체 = 인력·크레인 × (조립 + 해체 소요일수) · 본당 작업소요시간 = 지층별 연장 입력 × 굴착시간 표 · 편성 × T
- 부속장비·소모자재 = 인력편성 노무비 × 표 요율 · 공구손료율은 그룹 계수 표에서 찾기
- 8장: 연료 없는 기종 경비 로직 새로(공기식 크롤러드릴) · 기계 고르기 더함
- 재료_자체: 매트 · P.P로프 · 모래주머니 · 철근 19㎜ · 드레인 보드 · 차수재
- 식 엔진: 찾기·로직 머리는 「,」「)」에서만 끊음(표 이름 「P.P마대」)
- 막힘: 5-1-7 인장(「중급기술자」 노임 요소 없음) · 5-2-1 수중부설(「잠수조」 구성 원문 없음)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 17:56:12 +09:00
eomsangdonandClaude Opus 5 7f4fe9a8f5 feat(master_data): 건설품셈 공통 2장 로직 76개 — 가설공사
- 로직_건설품셈_공통2장.json: 가설건축물 손료·설치 · 울타리 · 규준틀 · 동바리 · 비계 · 안전시설 · 흙막이 · 보양·청소 · 리프트
- 공구손료율은 장 계수 표에서 찾기 · 재료 손료 = 재료량 × 2-2 손율
- 재료_자체: 조립식 가설건축물 주자재 · 콘테이너 · 축중계 · 조립말비계 부재 · 방지망·보호망 재료
- 식 엔진: 조건 이름도 작은따옴표 허용(「규준틀 높이」)
- 막힘: 2-9-12 · 2-11-8 · 2-11-9 · 2-12-4(「중급기술자」 노임 요소 없음) · 2-1(면적 기준표 — 범위규칙 글이 엔진 규칙 이름 아님)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 17:47:38 +09:00
eomsangdonandClaude Opus 5 f386fd9933 feat(master_data): 건설품셈 공통 7장(돌공사) 로직 7줄 · 시험 4개
- 메쌓기 · 찰쌓기 · 메붙임 · 찰붙임 · 전석쌓기 · 전석깔기 · 석재판 습식
- 굴착기+부착용집게 줄은 값 칸 이름으로 막힘 · 7-4-2 · 7-4-3 범위규칙이 글
- 견본 검사에 건설 3·4·7장 · 산림 6·8장 더함

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 17:47:20 +09:00
eomsangdonandClaude Opus 5 c68e26e882 feat(master_data): 건설품셈 공통 6장 로직 60개 — 철근콘크리트공사
- 로직_건설품셈_공통6장.json: 콘크리트 · 철근 · 거푸집 · PSC · 교량 가설·부대공 · 조립식 구조물
- 일당 편성 표 = 편성 ÷ 시공량 · 기계 1대 × 8시간 ÷ 시공량 · 공구손료는 인력품(작업조 노임)의 %
- 8장: 기계 고르기 더함 · 조종원직종 입력 로직 새로(고소작업차 — 원문 운전사 구분에 이름 없음)
- 재료_자체: 에폭시 접착제 · 폼타이 규격 · 강재거푸집 · 문양거푸집 · 원형맨홀거푸집 · 쉬즈관
- 식 엔진: 맞는 줄이 여럿이면 찾는 값 칸이 있는 줄만 · 괄호 든 칸 이름은 작은따옴표
- 막힘: 6-2-5(절단공 노임 요소 없음) · 6-3-6 해체(특수비계공 노임 요소 없음)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 17:42:08 +09:00
eomsangdon 1bc5e65d04 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-19 17:27:55 +09:00
eomsangdonandClaude Opus 5 ec903249f9 feat(master_data): 산림품셈 6장·7장·8장 로직 37줄
- 로직_산림품셈_06장: 12줄(비료주기 · 둘레베기 · 줄베기 · 모두베기 · 맹아제거 · 덩굴걷기 · 덩굴 약제 · 어린나무 가꾸기 · 가지치기 · 관목·초본류 시비 · 목재칩)
- 로직_산림품셈_07장: 15줄(인력집재 · 아키야윈치 · 소형가선 · 트랙터부착형 · 스윙야더 · HAM200 · 타워야더 · 동력상하차기 · 부산물 · 포워더 · 소형트럭 · 지조운반)
- 로직_산림품셈_08장: 10줄(방제 벌목조재 · 소운반 · 소각 · 매몰 · 페르몬 트랩 · 유인헬기 · 실행 등록 · 훈증더미 제거 · 잔가지줍기)
- 2장 연료 · 잡품 · 손료 · 소모성경비를 변수로 · 공시 없는 재료 셋은 재료:자체:이름
- 시험 둘 더함(20 통과)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 17:21:00 +09:00
eomsangdon 21931697e1 Merge remote-tracking branches 'origin/sub_laptop_2', 'origin/sub_laptop_3' and 'origin/sub_laptop_4' into sub_desktop_1 2026-09-19 17:18:42 +09:00
eomsangdonandClaude Opus 5 f563a97290 feat(master_data): 자체 재료 67개 · 막혔던 재료 줄 · 크레인·펌프차·믹서 조종원직종
- 재료_자체.json 새로 — 공시에 없는 재료 이름·규격·단위 · 값 null(관리자가 채움) · 비고에 원문 절
- 9·10·11·12·13장 로직에 자체 재료 줄 얹음 · 12-22 · 12-29 · 12-31 · 12-34-4 로직 새로(12장 56개)
- 기계 요소 조종원직종 — 크레인(타이어·무한궤도) · 콘크리트펌프차 = 건설기계운전사 · 믹서 0.55㎥ 미만 = 일반기계운전사(8-1-3 5)
- 12-1-2 믹서 · 12-11 · 12-14 크레인 · 12-17 펌프차 기계경비 줄
- 계산기 — 값 없는 요소는 「관리자가 채울 값」으로 멈춤 · 수량 0 줄은 금액 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 17:16:49 +09:00
eomsangdonandClaude Opus 5 03d8c4daa3 feat(master_data): 산림품셈 3장·4장·5장 로직 48줄
- 로직_산림품셈_03장: 10줄(경계표시 · 작업로 설치+체인톱 · 운반로 신설 작업량+돈 · 보수 · 상용인부 · 예정지정리 할증 · 임내정리 · 재해산물 수집 · 드론 촬영)
- 로직_산림품셈_04장: 5줄(하베스터 벌도·조재 · 조재 · 가지정리 · 위험목 점검 · 작업안전 보조)
- 로직_산림품셈_05장: 33줄(떼채취 · 나무식재 · 파종 · 움싹 · 생태보완 · 큰나무 · 해안 · 사방 · 사초 · 떼 · 새 · 바자 · 씨뿌리기 · 표토 · 뿜어붙이기 · 거적 · 짚망 · 복사이식 · 표시봉 · 지주목 · 대절 · 가식 · 소운반)
- 1-4 할증은 1-4-10 토양상태 · 1-4-14 집재방향만(나머지는 칸 이름 문법 막힘)
- 시험 둘 더함(18 통과)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 17:06:52 +09:00
eomsangdonandClaude Opus 5 fd9b7749c0 feat(master_data): 산림품셈 10장·11장·14장 로직 24줄
- 로직_산림품셈_10장: 17줄(골재운반 · 중기운반 트레일러 · 모노레일 · 케이블 크레인 · 1톤 덤프 · 헬리콥터 · 불도저 운반)
- 로직_산림품셈_11장: 5줄(콘테이너 · 규준틀 둘 · 쇄석 부설 작업량+돈)
- 로직_산림품셈_14장: 2줄(입목뿌리 밑막이 · 근주이식)
- 로직_건설품셈_공통8장: 고르기 넓힘(덤프 15ton · 트레일러 20ton · 불도저 · 집게 조합 0.8㎥)
- 시험 둘 더함(16 통과)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 16:40:35 +09:00
eomsangdonandClaude Opus 5 83b0083f4c feat(master_data): 산림품셈 13장 로직 36줄 · 기계 경비 로직 둘(일반 · 굴착기+부착용 집게)
- 로직_산림품셈_13장: 13-2 ~ 13-16 돈 로직 35 · 작업량 로직 1 (13-4-1 그대로)
- 로직_건설품셈_공통8장: 8 기계 시간당 경비 · 8 굴착기+부착용 집게 시간당 경비(잡재료 16% · 집게 손료)
- 계수: 8-4-8 주⑤ 조합 잡재료율 · 13-13-2 비율
- 로직_산림품셈_9장: 인력 10% · 장비 90% 줄 비고 「해석: 전량 인력 품 × 비율」
- master_formula: 범위규칙 「이하 · 칸마다 위 끝만」 · 「마지막 칸 이하 포함」
- 시험 셋 더함(14 통과)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 16:32:17 +09:00
eomsangdonandClaude Opus 5 19c3f89851 Merge origin/dev — 계수_산림품셈_9장 두 쪽 표 합침
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 16:22:46 +09:00
eomsangdonandClaude Opus 5 bb89ffebc0 feat(master_data): 산림품셈 9장 로직 — 돈 로직 27 · 작업량 로직 20
- 로직_산림품셈_9장.json: 굴착기 0.7㎥ 작업량 식 절 · 인력 10%+기계 90% 터파기·되메우기 · 인력 절 · 철근절단 · 면고르기 · 뿌리다듬기 · 제근
- 불도저·플레이트콤펙터 절은 작업량만(기계 요소 없음)
- 계수_산림품셈_9장.json: 절별 굴착기 규격 · 인력·장비 비율 · 9-3-2 주④ f 표 12개
- master_formula: 범위규칙 「이상·미만」 · 분수 글자 값(「1/1.30」) 계산
- 시험: 이상·미만 경계 · 분수 값 · 9장 계수 표 본문 대조

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 16:14:43 +09:00
eomsangdonandClaude Opus 5 6a911c04cf feat(master_data): 검사 도구 check_master.py · 틀 판정 반영
- 검사 넷: 틀 · 본문 대조(표 허구 · 절 결손) · 로직 검사(요소·표·칸 · 찾기 조건 · 로직 입력 · 돌고 도는 참조) · 시험 계산(호표 줄 · 비목 합)
- 식 읽기·계산은 master_formula.py(틀 7장 범위 · eval 없음 · Decimal)
- 틀: 번호로 적은 값은 원문 이름을 비고에 · 분수·식 값 · 짝 칸 · 8장 검사
- 기계 아홉 줄 비고에 조종원직종 원문 이름(건설기계운전사)
- 시험 test_masterdata_check.py: 견본 셋 손 계산 그대로 · 견본 파일 검사 통과

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 15:59:18 +09:00
eomsangdonandClaude Opus 5 dfc8f819f4 test(conftest): 옛 마스터 파일 자리 옮김으로 끊긴 시험 12 파일 모으기에서 뺌
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqkvdyxUtANWroVKpQUyxE
2026-09-19 13:24:50 +09:00
eomsangdon 5f4ac8d990 knowledge(품셈md): 도구가 되풀이 머리를 스스로 가림 — 판정 기준 셋 · 기계검사 예외 표시
- pdf_lines — 이어진 자리(쪽 넘김 · 「→」)의 되풀이 머리를 뺄 때 셋을 다 갖춘 줄만 뺌:
  ① 이번 항에서 이미 나온 글자에 이어 붙음 ② 목·항 머리 모양이 아님(1. · 가. · ① · [주] · <…>)
  ③ md 가 못 가진 글자 몫 안(PDF - md) — 통째로 드는 것부터 빼고 남은 몫으로 앞 토막만 더 뺌
- 기계검사 예외 — md 머리 바로 아래 <!-- 기계검사 예외: 되풀이 머리 --> 면 「예외(되풀이 머리)」 로 적고 확정 지문도 적음
- 잠금 시험은 「통과」 또는 「예외」 를 받음(tool.passed)
- 작성규칙 4-5 되풀이 머리 주석 없앰 · 표 줄 사이 주석 금지 · 6장 예외 표시 한 줄
- 불통 22건 → 0건: 18건 통과로 바뀜(판정 나빠진 파일 0 · 확정지문 다시 적음) · 남은 4건은 예외 표시
2026-09-19 12:39:29 +09:00
eomsangdon f2a7d5c6cf Merge remote-tracking branch 'origin/dev' into main_desktop_1
# Conflicts:
#	resources/knowledge/original/원가계산/건설공사_표준품셈/본문/02_토목부문/제09장_측량/9-05-04_수치지도_작성.md
#	resources/knowledge/original/원가계산/건설공사_표준품셈/본문/04_기계설비부문/제13장_플랜트설비공사/13-01_플랜트_배관.md
#	resources/knowledge/original/원가계산/건설공사_표준품셈/본문/04_기계설비부문/제13장_플랜트설비공사/13-02_플랜트_용접.md
#	resources/knowledge/original/원가계산/건설공사_표준품셈/본문/04_기계설비부문/제13장_플랜트설비공사/13-05_화력발전_기계설비.md
#	resources/knowledge/original/원가계산/건설공사_표준품셈/본문/04_기계설비부문/제13장_플랜트설비공사/13-06_수력발전_기계설비.md
2026-09-19 11:58:13 +09:00
eomsangdon 0187779b2d knowledge(품셈md): 되풀이 머리 주석 없앰 - 도구가 쪽 넘김·쪽 안 끊김을 스스로 판정
pdf_lines 가 항 경계마다 기억을 리셋해 되풀이 찍힌 머리 줄을 스스로 뺌(규칙 4-5 재정의)
md_lines 의 _REPEATED 특별 셈 없앰 - 되풀이 머리 주석은 이제 여느 주석과 같이 뺌
사용자가 지운 되풀이 머리 주석 반영 - 손 댄 47개 파일 중 36개 확정지문 다시 찍음(11개 남음)
2026-09-19 11:52:35 +09:00
eomsangdonandClaude Opus 5 4c8bfc1bb3 chore(tester): 마스터 재구축 동안 옛 원가 사슬 시험(B08·B09·Z01·공종 마스터·옛 품셈 md) 모으기에서 뺌 — 파일은 그대로(사용자 지시)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqkvdyxUtANWroVKpQUyxE
2026-09-19 11:31:50 +09:00
eomsangdonandClaude Opus 5 f4e142b38a knowledge(품셈md): 도구 「글자층 붙은 수」 주석으로 PDF 쪽 붙은 수 가름 · 시험 하나
- md 주석 <!-- 글자층 붙은 수: 「0.3350.335」→「0.335 0.335」 --> 에 적힌 글자열만 PDF 쪽에서 가름(자간 벌린 수의 거꾸로)
- PDF 에 있고 왼쪽이 오른쪽에서 공백만 뺀 것일 때만 · 기계검사 칸 「글자층 붙은 수 N곳」 · 못 쓰면 불통
- 전후 대조: 기계검사 칸 있는 md 518개 판정 바뀜 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 09:18:43 +09:00
eomsangdonandClaude Opus 5 07d02f6472 knowledge(품셈md): 건설 제8장 8-2-27~8-2-33 수중펌프·TBM·준설선·쇄암선·임목파쇄기·하천골재채취선 작성 · 도구 글자층 밖 뗀 자리를 가름으로(분수선 양쪽 수 붙음 막음) — 도구 check 통과 · 상태 검증대기
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 09:09:41 +09:00
eomsangdonandClaude Opus 5 4e340f03b3 knowledge(품셈md): 건설 제8장 8-2-22~8-2-26 파일 해머·압입 인발기 작성 · 도구 파일 이름에서 글자층 밖 글리프 뺌(8-02-22 이름 고침) — 도구 check 통과 · 상태 검증대기
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 08:39:49 +09:00
eomsangdonandClaude Opus 5 e8d153b5d8 knowledge(품셈md): 도구 check — 가로로 눕힌 쪽 옆 띠 쪽 번호를 쪽 꼬리로 뺌
- 건설 813~817쪽(책에서 유일한 가로 쪽)은 쪽 번호만 글자층 맨 끝(홀수)·맨 앞(짝수) 줄로 남아 결손으로 뜸
- 가로 쪽이고 그 줄이 수만일 때만 뺌 · 세로 쪽은 그대로 · 시험 1개 추가

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-19 08:25:21 +09:00
eomsangdonandClaude Opus 5 bd167e5275 knowledge(품셈md): 도구 — 바탕(pum_md_base.py) 떼어 냄 · 자간 벌린 수 이어 셈 · 「자간 벌린 수」 주석
- pum_md_tool.py 가 700줄을 넘어(707) 책 설정·쪽 줄 읽기·머리 찾기를 pum_md_base.py 로 옮김 (pum_md_tool 이 다시 내보냄)
- read_rows: 한 자리 수끼리 틈이 글자 높이보다 좁으면 이어 셈(「체 감 온 도 3 3 도」→33) · 표 칸 틈(1.2 이상)은 그대로
- md 주석 <!-- 자간 벌린 수: 「1 . 3」→「1.3」 --> 에 적힌 글자열만 PDF 쪽에서 붙여 셈 · 기계검사 칸 「자간 벌린 수 N곳」 · PDF 에 없거나 공백 뗀 것이 아니면 불통 (브레인 지시)
- 작성된 md 218개 판정 고치기 전후 같음(작업 중이던 건설 1-02 만 달라짐)
- 작성규칙 6장 한 줄
- test_산림_산출도_그대로_금액_불변 하나만 skip 표시(옛 사슬 동결 · 원천 벌 json 줄바꿈 지문 · 단가 연결 때 되살림 — 브레인 지시)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 03:30:42 +09:00
eomsangdonandClaude Opus 5 ad1fe8db32 knowledge(품셈md): 도구 check — 글자층 밖 글리프(U+E000–F8FF) 빼고 드러냄 · 호환 한자 통합 · 작성규칙 6장 두 줄
- PDF 사용자 영역 글리프는 ①② 에서 빼고 기계검사 칸에 「글자층 밖 글리프 N개(쪽) · 받아씀 N자」
- md 는 <!-- 글자층 밖 -->…<!-- /글자층 밖 --> 로 감싼 받아쓰기를 ①② 에서 뺌(감싸지 않으면 더함)
- 호환 한자(U+F900–FAFF)만 통합 한자로 — NFKC 통째는 안 씀(㎥·①·㎡ 지킴)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 01:52:31 +09:00
eomsangdonandClaude Opus 5 67d305177a knowledge(품셈md): 도구 check — 되풀이 표 머리를 <!-- 되풀이 머리: … --> 로 셈 · 쪽 꼬리 줄 차례 맞춤 · 작성규칙 4-5 한 줄
- 쪽을 넘은 표의 되풀이 머리는 md 표에서 빼되 주석으로 적으면 ② 글자 대조에서 셈(짐작으로 빼면 새 표의 같은 밑수 줄까지 빠져 헛빠짐 — 4-1 쪽 60)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 01:45:51 +09:00
eomsangdon f8bf1d6fd7 Merge remote-tracking branch 'origin/dev' into sub_laptop_1
# Conflicts:
#	resources/knowledge/original/원가계산/산림_표준품셈/본문/제04장_나무베기/4-06_벌목부_작업안전_보조.md
2026-09-19 01:40:37 +09:00
eomsangdonandClaude Opus 5 49f4d2f67c knowledge(품셈md): 건설 빈 파일 320 (5부문 45장) + 도구 건설 지원 · 40쪽 넘는 절 항 단위 쪼갬
- 건설: 부문 폴더(01_공통부문 …) 아래 장머리 45 · 절·항 275 — 8-2·8-3(건설기계) · 9-5(측량)은 절머리 + 항마다
- 도구: 책마다 차례 모양 · 절 머리 마침표 유무 · 쪽 꼬리(「30 공통부문」) · 부문 표지 쪽 앞에서 끊음 · 뒤 빈 쪽 뺌
- 파일 이름에서 개정 표지(「('21, '22년 보완)」) 뗌 · 자간 벌린 이름(「측 량」) 붙임 · status 는 장 폴더별
- 산림 제4장 확정 일곱: check 로 기계검사·확정지문 두 칸만 채움(①② 모두 통과 · 본문은 안 건드림)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 01:39:20 +09:00
eomsangdonandClaude Opus 5 f2fe4f4214 revert(Z01): 롤백된 마스터 DB·화면 작업이 dev 로 되들어온 것 걷어냄
- 사용자 「완전히 되돌려」 뒤 dev 를 거쳐 다시 들어온 1-2·1-3·1-4 코드 26 경로를 9629430a 모습으로(고친 17 되돌림 · 새로 생긴 9 지움)
- 대상: Z01_MasterData 17 · main.py · ui_template_locale_b3.ts · resources/tester 의 Z01 시험 7
- 품셈 md·도구는 안 건드림 · 이력 재작성 없음(되돌림 커밋)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0145cr1DMC5Ft8fouQSXtp69
2026-09-19 01:36:21 +09:00
eomsangdon 53ec8bd767 Merge remote-tracking branch 'origin/dev' into sub_desktop_1 2026-09-19 01:32:02 +09:00
eomsangdonandClaude Opus 5 56343d8088 knowledge(품셈md): 도구 check · pages · status + 잠금 시험
- check: ① 수(갯수까지) ② 글자(공백 뗌) 양방향 대조 · 어긋난 자리를 쪽·줄로 출력 · 머리 기계검사 칸에 적음
- md 쪽은 머리 · 주석 · 그림 · 표 문법 · 제목·인용 표시 · 첨자 표시를 빼고, 막음표(\) 뒤 글자는 원문으로 셈
- 확정 파일은 통과할 때 확정지문(LF 로 센 sha256)을 한 번만 적음 — 있는 지문은 안 덮음
- pages: 쪽 그림 150dpi → tmp/pum_pages(git 밖) · status: 장별 상태 표
- test_pum_md_locked.py: 확정 파일 지문·①② 0 · 머리 칸 다 있음

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 01:27:15 +09:00
eomsangdonandClaude Opus 5 b8d76feccd knowledge(품셈md): 산림 빈 파일 196 — 장머리 13 · 절 183 (plan)
- 제4장 일곱(다른 창 시범분)은 건너뜀 → 산림 전체 장머리 14 · 절 189
- 절 이름·표지는 본문 머리 글자 그대로(번호 뒤 마침표) · 띄어쓰기는 쪽 그림의 글자 틈으로 되살림
- 도구: 장마다 0-00_장머리.md · 이미 있는 자리는 번호로 봐서 건너뜀(이 폴더·다른 창 브랜치)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 01:23:13 +09:00
eomsangdonandClaude Opus 5 1964797de2 knowledge(품셈md): 절별 md 도구 pum_md_tool.py — plan(차례 → 빈 파일)
- 산림 차례(PDF 3~12쪽)에서 장 14 · 절 189 · 쪽 범위 · 시작/끝 표지
- 절 머리는 번호로 찾음 — 차례 이름 오타 다섯(면벅·조림·우드그래풀·소형 운재) 때문
- 표지는 PDF 글자 그대로(번호 뒤 마침표 포함) · 띄어쓰기만 차례를 따름
- 다른 창 브랜치에 이미 있는 파일은 안 만듦(합칠 때 부딪힘 막음)
- 시험 test_pum_md_tool.py: 순수 함수 · 산림 차례 개수

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-19 01:19:46 +09:00
eomsangdon a6134adf6a Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_3 2026-09-18 23:59:37 +09:00
eomsangdonandClaude Opus 5 feab848e69 feat(Z01): 기초단가 표 [저장] 방식 교체 · 공종 편집 화면 신설 — PLAN 1-4
- 기초단가 표: 칸 나갈 때 즉시 저장 없앰 · 고친 칸·새 줄·지울 줄은 초안(sessionStorage z01-draft:base:{kind})에 쌓고 [저장] 한 번에 보냄 · [고친 것 버리기]·[줄 추가]·[줄 삭제]·[초기값으로] · 409 면 초안 지키고 알림 · 서버가 revision 을 줄 때만 고치기 단추 섬
- 옛 덮개 길(칸 단위 PUT · 고친 것 모아 보기 · 덮개 판정 표시)과 그 사전 글자 뺌 — 계약 1-0 에서 서버 쪽 삭제
- 공종 편집(Z01_MasterData_UI_WorkItem.ts · _WorkItem_Rows.ts): 왼쪽 목록(상태별 개수·검색) / 머리 / 구성 줄 표(갈래별 · 자원 찾기 = 기초단가 검색) / 품셈 원문 표+[주] 읽기 전용 / [저장]·[초기값으로]·[검수 완료] · 초안 열쇠 z01-draft:work_item:{key}
- 공종 API(sub_laptop_3 e1c71c3e) 모양에 맞춤 — 줄은 id + 계약 칸 열하나만 보냄(extra=forbid) · 저장·초기값 응답(새 GET 모양)으로 바로 다시 그림 · 저장된 고침(changed_columns·is_added) 표시
- 초안 순수 함수 Z01_MasterData_UI_Draft.ts + 시험 test_z01_master_draft.py

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0145cr1DMC5Ft8fouQSXtp69
2026-09-18 23:55:45 +09:00
eomsangdon b28adc422a Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-09-18 23:54:03 +09:00
eomsangdonandClaude Opus 5 6fe4056d98 feat(Z01): 기초단가 정본을 DB 로 — 저장소 신설 · 일괄 저장·줄 추가/삭제·초기값 되돌리기 API · 덮개 층 삭제
- Z01_MasterData_Repository_BasePrices.py 신설 — master_base_price·master_revision Raw SQL(읽기·줄 수·판번호·저장·되돌리기) · 판번호 줄을 잠그고 다시 봄 · 틀리면 통째로 되돌림
- GET /base-prices/{kind} 가 DB 를 읽음 · 응답에 revision · 줄마다 changed_columns·is_added 추가
- PUT /base-prices/{kind} {base_revision, edits, added, deleted} — 판 다르면 409 · 하나라도 틀리면 아무것도 안 씀 · edits 500 상한 · 모르는 칸 거절
- POST /base-prices/{kind}/reset {row_keys} — 주입 줄은 data := seed(지운 줄도 되살림) · 추가 줄은 지움
- 기계 시간당 단가는 DB 노임·유가로 읽을 때마다 셈 · 제원은 줄 값에서(추가한 기종도 섬)
- 옛 덮개 층 삭제 — Z01_MasterData_Overrides.py · 칸 단위 PUT · /overrides·/overrides/clear
- 새 줄 열쇠는 서버가 줌(added/{난수}) · 주입 data 에 '@' 칸이 없어도 축 잠금은 파일 원본으로 섬
- 시험: DB 가짜(helper_z01_fake_repo.py) 로 API 손질 · 저장소 SQL 흐름은 가짜 커넥션으로 잼

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-18 23:53:50 +09:00
eomsangdonandClaude Opus 5 e1c71c3e8b feat(Z01): 공종 편집 저장소·API — 목록·상세·전체 줄 저장·초기값으로 (PLAN 1-3)
- GET /work-items(상태별 개수) · GET/PUT /work-items/{key} · POST …/reset 신설, 시스템관리자 전용 묶음에 등록
- 저장은 한 트랜잭션 — 낡은 revision 409 · 없는 자원 열쇠·남의 줄 id 422 · 실패 시 전부 되돌림
- 빠진 줄은 초기값 줄이면 숨김(초기값으로 때 살림) · 관리자 추가 줄이면 지움
- 검사·줄 비교·되돌리기 규칙은 WorkItems.py 순수 함수 · SQL 은 Repository_WorkItems.py
- 옛 기초단가 표의 공종 축 보기(JSON 읽기)는 그대로 둠 — BasePrices.py(sub_laptop_2 몫)가 동기로 부름
- 시험 15개(test_z01_work_item_edit.py) — DB 없이 가짜 커넥션으로 409·422·롤백 확인

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-18 23:47:33 +09:00
eomsangdon 9629430aff chore(tester): scratch 분석·감사 도구를 resources/tester/scratch 로 이동 및 conftest 등록 2026-09-18 22:29:50 +09:00
eomsangdonandClaude Opus 5 7b7727d84e fix(B08): 건설 품셈 원천 벌·공종 마스터 다시 뽑음 — 51d0615a 표 넷 반영
51d0615a(건설 8장 — 글줄 속에 눌려 있던 표 넷을 떼어 세움) 뒤 원천 벌과
공종 마스터가 안 뽑혀 시험 빨강 2건(test_build_pum[pum_const] ·
test_work_item_master_const 산출 대조).

- pum_const_2026.json: _build_pum.py 로 다시 뽑음 — 표 2,275 → 2,279
  (새 표 C2278~C2281: 8-2-23 유압 파일 해머 · 8-2-24 진동파일 해머 ×2 ·
  8-2-25 워터제트 병용 압입공), 기존 표 글자 변화 0 · 줄만 밀림 280
- 건설 공종 마스터(const_*)만 다시 지음 — 산림 쪽 손 안 댐
  - 공종 1,367 그대로 · 새 열쇠 발급 0
  - 전후 대조: 공종 3개(CW-00340~342)에 새 표 붙음, 기존 표 3개(C0499 ·
    C0502 · C0520)는 값 불변 — 주석에 섞여 있던 표 글자만 빠짐, 나머지
    37 공종은 줄 번호만 이동
- 시험 test_표는_다_붙고_못_붙인_표는_목록 표 수 기준 2,275 → 2,279

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QqkvdyxUtANWroVKpQUyxE
2026-09-18 21:53:31 +09:00
eomsangdon 7292774101 auto: 2026-09-18 20:01 (ESD_LAPTOP) 2026-09-18 20:01:27 +09:00
eomsangdonandClaude Opus 5 22bcccc663 Merge: 데스크탑 서브 다섯(184865ce 양수기 오귀속 바로잡음)과 한 점 — 자료 다시 뽑음
브레인 B41 깃 싱크용 마무리 커밋.

- 충돌은 만들어지는 마스터 넷뿐 — 손으로 안 합치고 **추출기로 다시 뽑음**
- 서브가 양수기 7993-0020 값이 이웃 7992 것임을 밝혀 오귀속을 닫음 → 연료 줄 276 → 275
  · 그 줄에만 있던 `parse_method` 칸이 비어 이름표에서도 뺌(열 546 → 545)
- 건설 표 2,274 → 2,275 · 형태 미판정 151 그대로 · 산림 미판정 0 · 건설 밑수 미확보 450
- PDF ↔ md 구멍 — 결손 749 → 756 · 허구 547 → 540(합은 그대로 · 값 일곱이 허구에서 결손으로 옮겨 감)
  · 장별 목록도 다시 뽑음
- ⚠ 전체 시험은 도는 중에 멈춤(B37 중지 지시) — 이 커밋은 싱크를 위해 트리를 비우려는 것

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-18 19:02:42 +09:00