Commit Graph
76 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5.5 c05139a971 feat(791-1): 엔진 셈 의미 넓힘 — 금액번지 · 소계 단계 · 제외 · 줄 자리 · 블록 끝전 · 결과 조정 · 변수 표시
- 새 모듈 master_formula_sum.py — 덧줄 고리(master_formula.run 에서 옮김) · 번지 · 단계 · 합밖 · 조정 · 표시 · 검사
- master_cut.py — 줄 자리 {방법, 자리} · 블록 끝전(비목버림 | 큰나머지) · 결과 조정 · 답 단계 목록
- master_formula_check.py — 새 칸 검사(없는 번지 · 단계 순서 · 자리 범위 · 끝전 · 조정)
- _틀.md 7장 「셈 의미 넓힘」 · 8장 덧줄 이름
- 지킴 시험 test_791_1 — M01 로직 1,515 지문 전후 같음 · 새 의미 단위 · 실무 견본 넷(봉화 D00102 · 울진소광 D01489 · 동부청영월 D00003 · 북부청임도 18) = 엑셀
- master_formula.py 690 → 669 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 17:03:36 +09:00
eomsangdon 25827d4039 Merge remote-tracking branch 'origin/CODEX' into main_laptop_1 2026-11-05 15:22:09 +09:00
eomsangdon 216e2ae2a7 fix(est): propagate text subtotals and bid rates 2026-11-05 13:17:44 +09:00
eomsangdon f3821043d4 Merge remote-tracking branch 'origin/CODEX' into sub_desktop_1 2026-11-05 13:14:23 +09:00
eomsangdon 516d2ae329 fix(est): preserve links and formula precision 2026-11-05 12:51:49 +09:00
eomsangdon bcc570ff31 Merge remote-tracking branches 'origin/CODEX' and 'origin/안티그래비티' into sub_laptop_1 2026-11-05 07:07:41 +09:00
eomsangdon 1856aa897d feat(est): connect original quantity sheets 2026-11-05 06:19:15 +09:00
eomsangdon 60ccedcd9a feat(est): reproduce native tables and calculations 2026-11-05 06:07:05 +09:00
eomsangdonandClaude Sonnet 5.5 11d1f5116d test(785-8): 낡은 시험 둘 가름 — 울진소광 S1 해시 다시 굳힘 · 구조물 조합 제목 줄 단언 지금 꼴로
- test_621 울진소광 S1: 785-1(새 M02_Hopyo_Clause 출처 풀이)부터 단산 1479 「옆도랑파기(토사)」 출처 「건설품셈(옛) 8-2-3」 → 「건설품셈 공통 8-2-3」(같은 번호 형제 블록 1477 · 이미 공통) — 뜻 있는 변화 · 바뀐 칸 이 한 곳뿐 · 수 · 갈래 · 참조 그래프 그대로 · 이 해시 한 칸만 새로 굳힘(나머지 일곱 파일 · S2 칸 그대로)
- test_m02_layer_screen 구조물 조합 제목 줄: 738-2 · 740-2 가 제목 줄에 [초기화] [삭제](actions.reset · actions.del)를 끼운 뒤 낡은 단언 — 지금 꼴(reload › reset › del › save › 새 항목)로

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 01:56:07 +09:00
eomsangdonandClaude Opus 5.5 a8acaed6f5 feat(781-1 · 781-2): 출처 책 · 부문 · 옛 책 가림 · 「근거 조항 우리 기초에 없음」 표지(요구 628 · 629 · 630)
- 책 낱말 표(ReadEst.book_of) — 임도 · 사방 = 옛 책 「(옛)」 · 공통 · 토목 · 건축 · 기계설비 · 유지관리 = 「건설품셈 <부문>」 · 그 밖 건설품셈(부문 모름) 그대로
- 출처 풀이(Basis.settle · Excel.read_book 끝 한 곳 · 두 형식) — 건설품셈(부문 모름) 번호 → 블록 이름(안 맞으면 글 두 묶음)이 원문 제목 · 같은 번호 로직 이름과 뜻 낱말을 나누는 부문 하나 = 그 부문 · 둘 이상 = 모름 · 없음 = (옛) · 임도 옛 번호 → 지식DB 대응표 확정 한 대응(가 · 나 항 = 현행 윗마디 · 일대다 안 옮김)
- 조항 견줌(Basis.clause) 한 줄 — 책 또는 구분 같음 · (옛) = 없음
- 기초 없음 표지(Basis.no_basis) — 출처 조항(윗 · 아랫마디 포함) 로직 0 = 「근거 조항 우리 기초에 없음 — 건설품셈 공통 1-2-7 운반」 · 옛 번호 = 「옛 번호 — 대응 미확인」 · 맞춤셈 꼬리표 · 맞음 아닌 후보 글 「참고 후보 — 근거 조항 아님」 · 단가산출 근거 꼬리표 1위 대신 표지(1위 맞음이면 1위)
- 시험: 새 test_628 · test_621 단계 해시 다시 굳힘(달라진 칸 = 출처뿐 · S1 수 · 그래프 그대로) · test_m02_hopyo_basis · finger · stmate · excel 출처 기대값 새 책 꼴로(낡은 기대 「임도 = 산림품셈」 · 「건설품셈」 부문 없음)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 18:42:07 +09:00
eomsangdonandClaude Opus 5.5 022d6375e1 refactor(776-3): 지문 형식 모름 — 단위 줄 투영 한 벌 · 몫 한 벌 · 블록 단가 = 항목 · clause 대체 몸 · 오타 정규식 걷음 · 맞춤 캐시 = HP 지문 칸
- Finger — 풀이 두 벌(_text · _stmate) 걷고 블록 단위 줄 투영 하나(_units) · 글은 조건 · 옛 판 · 계수 · 「…의 N %」 만 · 셈 밖 줄 안 씀
- Shares — 몫 = 단위 줄을 절(제목 · 윗절)로 묶음 한 벌 · 식 다시 풀기(qty_of · sections_stm) 걷음 · trade = ReadEst.trade
- Elem.prices = 단위 줄 단가(글 다시 안 풂 · machines 갈래 안 건드림)
- Match.clause = Basis.clause 만 · 대체 몸 · _TYPO_CLAUSE 걷음(오타는 읽기 ReadEst.sources) · fix_typo = 사본(Line 이 부름)
- Fit.cache_path — HP 지문 칸(올린 엑셀 sha256 + 판) · 파일 그대로면 다시 안 읽음(lru) · 붙여넣기 HP 만 파일 해시
- 지문 전후 = 셈 단위 275 중 150 같음 · 다름 = 장비 절 · 글(쓰는 곳 없음) 100 · 고침(STmate 기계 두 묶음 · 거창 자재 · 끝 점 직종 · 옛 몫 금액 ÷ 단가 엉터리 · 제외금액 줄) — 골든 1위 줄마다 · 불리는 블록 206 갈래 · 1위 · 상태 전후 같음(162/177 · 기초 80 · SK 37 · 대기 89)
- S1 다시 굳힘 = 봉화 · 울진대흥 · 울진소광 자원(같은 코드 두 묶음 따로) · S2 다시 굳힘 125/275(위 까닭)
- 시험 고침 — finger(블록 = ReadEst.items · STmate 단위 줄 · 셈 밖) · fit 옛 HP(항목 · 글 없음)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 13:20:17 +09:00
eomsangdonandClaude Opus 5.5 9d26e5fcd6 test(776-1): 경쟁사 출력 단계 고정 시험 — 여덟 파일 S1(정규화 투영 해시 · 수 · 갈래 · 호표 참조 그래프) · S2(셈 단위 275 지문 해시)
- 새 test_621_hopyo_stages.py + fixtures/m02_hopyo_stages.json · 15 초 · --write 로 새 판 굳힘
- 투영 = 지금 HP 칸만 — Book 에 칸 더함은 그대로 · 빼기 · 이름 바꿈은 깨짐
- helper_m02_hopyo_golden 죽은 갈래 걷음 — EST 블록 글 다시 채움(읽기가 이미 글 붙임 · 223 블록 모두)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:36:49 +09:00
eomsangdonandClaude Opus 5.5 83f3bc0a5c feat(638-2): 예정노선 노선 세트 화면 셈 — 세트 지정 · 끝에서 나눔 · 이웃 합침 · 고를 세트 · [잇기](요구 547 · 548)
- 새 logic/D03_PlanAnalysis_Group.ts: assignSet(고른 구간 끝 나눔 → 세트 → 같은 선 이웃 같은 세트 하나 · 앞 id) · mergeSets(서버 Network.derive 짝) · setChoices(있는 세트 + 해마다 새 번호) · joinEnds(닿음 바로 · 떨어짐 곧은 토막 덧 = 앞 선 세트)
- Plan.ts 세 곳: PlanPiece.set · 새 선 처음 세트(사업연도 시작 해 새 번호 · 갈래 = 붙은 자리 세트 · 옛 꼴 = 그 해 최댓값 + 1) · 이음 합침 비교 = 세트 · 661 줄 그대로
- Select.ts 끌어 고르기 시험 조각에 set 칸(타입 맞춤)
- Api.ts 꼴: derived.sets(PlanSetView · 638-1 서버 셈)
- 시험 test_638_group.py · 거울 사례 fixtures/d03_638_set_cases.json(sub3 638-1 과 같은 파일)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:31:17 +09:00
eomsangdonandClaude Opus 5.5 5cada4bbd5 feat(511-C 유토 배분 E2 · 판 haul 줄 · 서버만 넷 까닭): /haul-plan 창구 = 늘 떠 있는 Node haul.view(computeHaulPlan 화면 꼴 · design_calc_node.ts 입구만 · 시험 길 표에 두면 브라우저 첫 묶음에 실림) · [저장] 정본 면적 · 유토곡선 · 배분 = 늘 떠 있는 Node 셋(structure.layouts · masshaul.cumulative · haul.plan · 못 부르면 새 프로세스) · 옛 server-calc 묶음 = 시험 대조만 · 판 haul 줄 엶(요구 321 · 기본 server = 지금 /haul-plan 그대로 · 판 파일 바뀜 0 · both = 배분 모듈 dynamic import 해 브라우저 셈 · 정적 import 0) · 서버만 G3 D1 D2 N1 = 줄마다 까닭 글(DB 씀 · 래스터 · D1 래스터 위 · 큰 지형 파일) · 거울 test_511_c_haul_node(프로젝트 일곱 × 문맥 넷 × 그림 · 수량 + 끝 경우 여섯 = 새 길 · 옛 묶음 · 브라우저 함수 0 차 · [저장] 정본 golden 문맥 셋 0 차) — 요구 320-4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:42:35 +09:00
eomsangdonandClaude Opus 5.5 7a857d626a fix(492-1 노선 바뀜 초기화): 노선 모양이 바뀐 [저장] · 추천 [적용] = 서버 초기화 + 초기값 다시 뜸
- 판정 = 저장 · 새 계획 폴리라인 1 mm 견줌(`route_shape_changed` · TS 짝 `routeShapeChanged` = sub1) · 스냅 · 간격만 = 따라감 그대로
- 체인 초기화 = 사용자 구조물 · 추가 측점 · 관(옵션 포함) 버림 · 관 = 새 노선 세류선 교차만 · 1차 계획선 · 횡단 기본 설계 · 응답 route_reset {reset, dropped}
- 한 본문 초기화 = 보낸 관 · 구조물 · 추가 측점 · 계획고 · 관 옵션 · 넘김 칸 안 씀(페이지 설정만) · 되돌림 범위에 initial_snapshot
- 추천 초기 종단 미리 셈 = 같은 초기화 시설 · 지문에서 시설 파일 뺌
- 시험: 새 test_283_route_change_reset(옛 코드 8 실패) · 검증_sub8 자료 고정 · 실DB 시험 둘 = storage 임시 사본(helper_temp_storage) · 따라감 기대 시험 문구 고침

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 07:12:35 +09:00
eomsangdonandClaude Opus 5.5 47a63d3fa4 feat(478-2 문서 사이트): 진짜 추출로 맞춤 — TypeDoc kind-dir(대소문자 겹침 막음) · 도구 대 추출 비교 규칙 · 공용 도구 묶음 · 손글 지문 · TS 메뉴 쪽
- TypeDoc router kind-dir — structure 는 같은 이름 인터페이스 · 함수가 Windows 에서 한 파일로 덮임 · 겹침 링크 안 함
- 비교: TS = export 함수 · 메서드 · 생성자 · 접근자(상속 · 숨은 생성자 뺌 · export * 는 원본으로) · 파이썬 = 안쪽 함수 뺀 전부 ↔ griffe(속성 · 자동 생성 __init__ 반영)
- groups.yml 공용 도구(common_util_* 끝 규칙) · 묶음 없음 0 · 손글 18 묶음 지문
- 결과: 함수 5,746 · 묶음 18 · 세션 칸 45 · 서버 주소 41 · strict 경고 0 · test_478_docs 9 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:22:10 +09:00
eomsangdonandClaude Opus 5.5 2e6086c5ee feat(478-2 문서 사이트): 묶음 규칙 · 원고 생성 · mkdocs 설정 · 손글 옮김 · 검사 시험(가짜 추출)
- docs/tools/groups.yml · group.py — 함수를 로직 묶음에 자동 배정(계산 등록부 id · 파일 이름 무늬 · 안 맞음 = 묶음 없음 · 함수 목록 지문)
- docs/tools/build.py — 추출 JSON + 손글로 페이지 · 묶음 화면 · 함수 칸 · mermaid 흐름 · 세션 칸 · 서버 주소 · 설명 확인 필요 표시 · 함수 화면은 TypeDoc(markdown) · mkdocstrings(griffe)
- docs/mkdocs.yml · nav_hook.py — Material · 한국어 · 검색 · mermaid · 왼쪽 메뉴 페이지 → 묶음 → 함수
- docs/guide/B05_B06 — 8 파일을 page.md(개요 · 규칙 · 사용자 결정) + groups/*.md 17 개로 줄여 옮김
- resources/tester/test_478_docs.py · fixtures/478_docs — 가짜 추출로 배정 · 사이트 strict · 도구 대 추출 · 진짜 추출은 있을 때만

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:53:43 +09:00
eomsangdonandClaude Opus 5.5 84b683845a fix(472 덧 종단 경고): [저장] · [확정] 재계산이 종단 경고를 저장 입력으로 다시 씀 · 경고 글 TS 한 벌
- 서버 재계산(_recompute) 맨 앞 refresh_alignment — 저장 base_pvi · 편집 · 정책 · 기준으로 경고만 지금 코드 값 · 기하(계획고 · 곡선 · 표본 · 위반)는 저장값 그대로 · 같으면 안 씀 · grade_summary 함께
- 파이썬 경고 글을 TS buildAlignment 꼴로(접두 「chainage 」 뺌 · 기울기 초과 · 불균형 총괄 줄 뺌 — violations · balance 칸이 정본)
- 거울 시험 test_472_save_warnings(옛 코드 실패 확인) · 기준값 경고 칸만 다시 뜸(server_save 5→50 · server_route 51→50 · 브레인 승인) · W0 정리 · W1 지움
- 위키 계산 목록 P8 · [저장] 차례 cross 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 08:55:38 +09:00
eomsangdonandClaude Opus 5.5 c0af1c0180 test(472-1 기준값): B05 · B06 고정 자료 하나로 길 넷 기준값 시험 — 구조 다시 세움 단계마다의 문
- 고정 자료 fixtures/golden_472(검증_랩탑메인 노선 370 · GET · storage 사본 · 2.98 MB)
- 길 넷: 정본(GET) · [저장] 서버 재계산 · 노선 저장 체인(DB 없이) · 브라우저 진짜 단계 묶음(vite ssr)
- 값 = 측점 · 열쇠 · x · y · 계획고 · 면적 · 층따기 · 누가토량 · 관 길이 · 종단 경고 · 길마다 0 차
- 두 길 사이 = 알려진 차(R7 · W0 · X2 · W1)만 · 안 나타난 알려진 차도 실패
- 값 다시 뜨기 = helper_472_1_dump.py(손으로만)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 08:31:07 +09:00
eomsangdon 10797dc6f3 Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-17 00:26:19 +09:00
eomsangdonandClaude Opus 5.5 be4383f81f fix(B06 표준 횡단): 364-6 칸 열기만으로 암 표준값이 토사 값으로 바뀌던 것 — 편집 없이 B05 = B06 누가토량
- 까닭: 표준 횡단 칸이 열릴 때 공통 칸을 토사 값으로 펼쳐 세션을 고침(암 측구 상폭 0.69 → 0.9 · 암 횡단경사 3 → 3~5) → B06 다시 셈이 암 측점 절토를 키움 · 성토 그대로
- 고침: 열기 · 저장값 복원 · 초기 값 · 다른 프로젝트 불러오기 = 그룹 값 그대로 · 공통 칸은 고칠 때만 펼침
- 검증_sub7 노선 304: 칸 열기 전후 절토 면적 합 402.9 → 444.4 ㎡(56/67 측점) → 고친 뒤 같음 · 서버 셈 = B05 셈
- 시험 test_364_6_std_panel_same_value.py 6(옛 코드 4 실패) · 관련 25 · typecheck

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
2026-10-17 00:23:06 +09:00
eomsangdonandClaude Opus 5.5 63032d6cce fix(노선추천): 364-5 한 측점을 다투는 이웃 곡선 — 덜 꺾인 쪽 끔(꺾임점째 뺌 · 안 되면 꺾임만) · 이웃 MC 20 m 안 측점 밖 쌍 없앰 · ALGO_VERSION 4
브레인 판 다섯 갈래 측점 밖 곡선 합 16 → 3(토공 8/39 → 2/34 · 영선 5/34 → 0/30 · 비중 3/35 → 1/33) · 이탈 한도 · 기울기 잣대 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-17 00:16:01 +09:00
eomsangdonandClaude Opus 5.5 3e3215826e fix(B05·B07 평면): 364-3 절/성토선 비탈 끝 모서리 둥글림 · S 자 촘촘히 (TS ↔ 파이썬 짝)
- 까닭 셋: 접힘 버린 자리 건너뜀 모서리(898.6 → 908 m · 139°) · 촘촘히가 가운데 점만 봐 S 자 빠짐(860 → 861 · 70°) · 잔 갈지자
- 촘촘히 = 4분 점도 봄 · 비탈 끝 = 가장 많이 꺾인 점부터 앞뒤 3 m 를 두 접선에 붙는 2차 곡선으로(15° 넘음) · 측점 · 깎기↔쌓기 바뀜 점은 그대로 · 둥글린 자리 눈금 뺌
- 요구 239 세션 자료: 30° 넘는 꺾임 왼 14 · 오른 3 · 최대 140.7° → 0 · 1 · 34.8°(측점 860 · 861 사이 1 m 에 폭 4.4 → 6.0 m)
- 시험 test_364_3_slope_end_round.py(전후 · 측점 그대로 · TS 같은 점) · 자료 fixtures/b05_364_3_footprint_req239.json

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-16 23:53:08 +09:00
eomsangdonandClaude Opus 5.5 4ff989c125 feat(일위대가실무): 338-4 이음매 — 확인 화면 ↔ 실물 맞춤 응답 · guess 길 목록 · 끝까지 시험 · 이음매 기준 새 뜻
- 길 — guess 몸 대상 list | dict · to = 만들 층
- 줄 맞춤 — 섞인 줄 1위 대상에 몫 · 배(고임돌 GF000211 × 0.1) · 장비 품 비교 열쇠 「+」(화면과 같음) · guess 가 사용자 배 그대로
- 화면 — 품 비교 장비 표시 열쇠를 갈래 묶음 이름으로
- 시험 — client 고정물 맞춤셈 캐시 = 임시 폴더 · 뒤 셈 안 돌림(tmp/m02_hopyo 안 남음 · 결과 흔들림 없음) · 끝까지(북부청 올림 → 셈 → 보기 → 화면 몸 → 만들기 → 장부 → 다시 올림 별칭 · 몸 없음 400 · hopyo-memory 404 · 영월 STmate) · 실물 대역 화면 시험 · 이음매 268 줄 맞음 122 · 다른 점 86 · 후보 60 · 후보 1순위 근거 맞음 123 → 9
- 응답 대역 JSON 실물로 다시 뽑음

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-16 00:25:51 +09:00
eomsangdonandClaude Opus 5.5 908923c23e test(일위대가실무): 338-1 맞춤 응답 대역 JSON — 실물 북부청 임도 제1 · 4호표 파일 보기 · 호표 보기(상태 · 체크 제안 · 대상 · 후보 · 품 비교) · guess(설계 3-3 · 3-4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-15 23:51:59 +09:00
eomsangdonandClaude Opus 5.5 e9e949112c feat(일위대가실무): 338-1 맞춤 핵심 서버 1 단계 — 엑셀 지문 · 우리 로직 지문 캐시 · 옵션 거꾸로 · 순위 · 판정 · 조합 · 뒤 셈 + 정답 표
- 새 파일 — Words(식 풀기 · 장비 갈래 · 조건 낱말) · Finger(블록 글 · STmate 자원 → 지문 · 기계 줄 · 직접 줄 호표) · Shares(절 몫 벡터) · Ours(마스터 판 열쇠 · 우리 지문 캐시 tmp/m02_hopyo · 엔진 셈 캐시 · 자재 값 찾기 건너뜀) · Option(옵션 공간 · 거꾸로 찾기 · 견줌) · Fit(손잡이 한 곳 · 순위 · 뒤 셈 · 맞춤셈 캐시) · Combine(조합 · 섞인 줄 몫 먼저) · Verdict(블록 셈 · 맞음 / 다른 점 / 후보)
- Match — b_order(이름 · 근거 차례 · 같음 근거 검사 · 옛 판 글 · 조항 오타) · clause(윗마디 0.9 · 나 창 Basis.clause 있으면 그것) · 이름 후보 로직은 접지 않음
- 정답 표 fixtures/m02_hopyo_golden.json(사람 136 · 새 파일 51) · 골든 도우미
- 북부청 92 줄 실측 — 1순위 87 · 다섯 안 91 · 맞음 41 틀림 0 · 다른 점 28 틀림 0 · 조합 맞음 57/66 · 우리 지문 셈 37 초 · 캐시 읽기 0.05 초

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-15 23:36:23 +09:00
eomsangdonandClaude Opus 5.5 c7a438138d feat(b09-print): 인쇄 미리보기 수량산출 영역 — collectQuantitySheets · B08 탭 차례 PrintSheet(구조물 · 자재 셋 · 토공 넷 · 수리 측점마다 · 거리이정표 + 지도 그림 data:) · 화면과 같은 표 짜기 · 캐시 값 · 영역 실패 = 까닭 한 장 (302-3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-13 08:03:31 +09:00
eomsangdonandClaude Opus 5.5 2bf429ec98 feat(b06): 상세 누름 판정 거리로 — 보통 배율 얇은 띠 = 영역 · 선 가까이 = 선 (261-3 걸음 1)
누름 = 판정 선 굵기 대신 누른 자리 거리(`pickAt`) — 선 4 px 안 = 선 · 영역 안이면 맞은편 선까지 ⅓ 안이어야 선.
선 누름이 표 띠 누름보다 앞섬(stopImmediatePropagation) · 판정 선 굵기 10 → 8 px(걸침 표시만).
시험 test_261_3_detail_pick(견본 · 실측 4+15 그림) · 233-2 헬퍼 누름 꼴 맞춤.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F3mdb91125mPoC6tpsQx4P
2026-10-11 15:37:19 +09:00
eomsangdonandClaude Opus 5.5 e6315f8581 test(B05·M02): 빨강 둘 정리 — 213-1 고정 사본 · 모달 카드 시험 낡은 기대값(234-2)
- test_213_1 spike — 엄상준_검증 storage 원본 대신 고정 사본(fixtures/b05_213_1_hidden_station_longitudinal.json · initial_snapshot 종단 160~360m · 측점 263.21 · 꼭짓점 · 편집 키 263.206 · 263.210) · 옛 코드 15009% 재현 · 지금 100% 아래
- test_item_picker_detail — 카드 도면이 105-3(36fc3d6c3 · 10-08)부터 mountStructureSheets(여러 장 탭) — 낡은 기대값 mountDrawingTemplate 를 고침 · 코드 흠 아님

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F3mdb91125mPoC6tpsQx4P
2026-10-10 19:10:37 +09:00
eomsangdonandClaude Opus 5.5 ffa7f9d236 fix(B05·B06): 유령 계획고 편집 근본 막음 — 옮긴 관 편집 따라감 · [저장] 때 자리 없는 편집 버림 · 알림(213-2)
- ① 관 옮김 = 편집 키도 새 자리로: B06 movePipeTo 가 resetStationEdit(옛, 새) · B05 측점 갱신이 사라진 것 하나 · 새것 하나(또는 같은 id · 0.006 m 안)를 짝으로 옮김(followedStation) — 세션 초안도 새 키라 옛 키가 다시 안 나감
- ② [저장](PUT profile-alignment)에서 서버가 측점 · 관 · 구조물 자리 어디에도 없는 편집 키를 버림(drop_unplaced_edits · 저장 차례가 관 · 구조물 뒤라 최신) · 응답 dropped_edit_chainages · 화면 알림 「계획고 편집 N곳을 지웠습니다」 · 자리 못 읽으면 안 버림
- ③ test_192_1 = 고정 사본(fixtures/b05_192_1_moved_pipe_longitudinal.json · 226fc805 460~840 m) · 새 시험 test_213_2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F3mdb91125mPoC6tpsQx4P
2026-10-10 15:44:28 +09:00
eomsangdonandClaude Opus 5.5 6a582e7f9b fix(b06): 묻힌 관 유출 흙막이 벽 모서리 절토 · 3도 끝 연결선 겹침 제거 — 설계선 접힘 해소(186-1)
- 검증_랩탑메인 No.14+12.22 관 유출 흙막이가 원지반 아래 → 91-4 벽 모서리 절토와 139-4 끝 연결선이 함께 이어져 설계선이 되접힘
- 유출 끝 연결선이 있으면 벽 모서리 절토를 잇지 않음(카드 · 서버 면적 · B07 · 3D 같은 기하)
- 사본 재현 시험 test_186_1 · 픽스처 b06_186_1_pipe_292 · 91 헬퍼 시작점 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F3mdb91125mPoC6tpsQx4P
2026-10-10 13:10:10 +09:00
eomsangdonandClaude Sonnet 5.5 7d2f7e9dd4 test(tester): 실패 시험 정리 — 지운 코드·옛 화면 시험 167개와 짝 고정물 삭제 · 현행에 맞게 기대값 고침 (99-6)
- 삭제: 옛 B08·B09·Z01·원가 마스터 사슬 시험(없는 모듈·자료를 읽음) · 짝 고정물 4
- 고침: 구조물 이관(배관 라벨) · 횡단 잠금 풀기 2(Node 하네스 ../ 경로) · 그룹 집계 2(정의 한 벌 기준)
- 고침: ORCA 화면 시험 4(47-5 · 51-6 · 51-11 · 51-14) ▲▼ 순서 단추에 맞춤
- conftest 의 모으기 제외 목록 정리

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-08 15:30:59 +09:00
eomsangdonandClaude Opus 5.5 ffbf772f3c feat(B06): 세월교 · 박스 흙막이 횡단 그림 — 관보호공 흙막이와 같은 벽 · 자리 · 연동 · 경사(73-4)
- 유입 · 유출 구조 「흙막이」면 배관 흙막이와 같은 세트(관 숨김 · body)를 같은 측점 culvert 자리에 함께 얹음(파이썬 _guard_set ↔ TS guardSet 짝 · 거울 시험)
- 자동 자리 = 벽 전면이 관(세월교) · 본체(박스) 끝 · 좌우 x 는 그 자리 기준(본체를 늘리면 벽도 따라감) · 상하 d 는 배관과 같음
- 연동 옆 측점 · 3D 연동 해제 자리는 본체 기준 x 를 절대값으로 넘겨 받음 · 3D 만료 해시에 흙막이 값 포함
- 설계선 트림 = 벽 선 쪽은 흙막이 · 안 선 쪽은 본체 · 벽 선 쪽 본체 성토선은 걷음(두 줄 방지) · 관 연장은 안 실음
- 좌측 폼 → 캐시: 세트 다시 짓기 · 높이 · 형태 · 추가 흙막이 상자 수 = 유출 다단 수
- [연동][경사] 회색 풀림(옆 측점에 벽이 서면 연동 · 구간 있으면 경사) — 배관과 같은 규칙
- 시험: test_73_4_body_guard(벽 전면 = 본체 끝 · 박스 +1 m 따라감 · 연동 옆 측점 벽 · 서버 Node 면적 = 화면) · 거울 시험 흙막이 칸

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-07 08:23:48 +09:00
eomsangdonandClaude Opus 5.5 e4fa14564f fix(B07): 횡단면도 박스가 화면 덧그림(B06 설계선·구조물)까지 1 mm 로 감쌈
- 덧그림 범위를 서버가 화면과 같은 TS 로 셈 — Node 진입점 B07_DesignDetail_Cross_Extent_Node(최소 DOM 위에서 오프스크린 SVG 그리기 그대로) · 번들 build:b07-extent
- 화면 그리기·수확 부분을 B07_DesignDetail_Cross_Overlay 로 떼어 화면과 Node 가 한 벌로 씀
- 장 배치·블록 테두리가 측점별 덧그림 범위를 덮음(목록·장 열기·확정·수정 네 길 모두 같은 계획)
- 글자는 CAD 그리기대로 세로 가운데 · 폭은 글꼴 어림(한글 1.0 · 나머지 0.6 배)
- 번들 낡음 판정에 B07 맨 위 TS 포함
- 검증_sub4: 66개 박스 ↔ 그림(덧그림·글자 실폭 포함) 모두 1.0 mm · 잘림 0 · 겹침 0 · 20장 → 21장

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-06 23:33:53 +09:00
eomsangdonandClaude Opus 5.5 61d2ed5997 refactor(M02): 재료산출 시트 지움 — 종류 material · 재료번 SM · 좌측 줄 · 집계표 「재료산출」 줄 · 카드 · 전체 편집 · 복사 길 · 프로젝트 복사본 「재료」 · 고르기 모달 · 시스템 층 · fixture · 시험
- 새 프로젝트 씨앗(KINDS)에서도 빠짐 · 새 열은 구조물 도면 · 면적산출만 만듦
- storage 층(회사 · 개인 · 프로젝트) material/ 파일은 지우지 않음(읽기만 끊음)
- 장부 재료번 칸은 다음 집계표 [저장] 때 빠짐

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 17:56:49 +09:00
eomsangdonandClaude Opus 5.5 54ce67ceb8 refactor(M02): 자재 조합(UM) 지움 — 좌측 컨테이너 · 재료산출 옆 판 · 길(material-combos · 갈라 내기 · 키 적기 자재조합) · 저장소 · 틀 검사 · 복사 길의 UM 줄 · 시스템 층 표 · fixture · 시험
- 자재 고르기 창은 M02_Material_Pick.ts 로 옮겨 남김
- storage 층(회사 · 개인 · 프로젝트) 자재조합.json 은 지우지 않음(읽기만 끊음)
- check_master 틀 검사 · _틀.md 11장 · _화면_계약.md 자재 조합 절 정리

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 17:39:16 +09:00
eomsangdonandClaude Opus 5.5 2a3051fbca feat(M02): 마스터 구조물집계표 초기화 · 시험 견본화(PLAN 26-5a)
- 마스터 층 구조물 항목 51개 지움 — 나무 지우기(tree.apply delete) → 집계표 저장(store.write) 한 줄기 · 집계표 구조물 열 · SS 장부 줄 · structure/area/material 파일 153개 · 남김 = no · sta · 비고 열 · 변수 · 쪽줄 · 합계줄 · 바인딩규칙 · 자재조합 · 구조물옵션표시 · drawing · M01 · 회사 · 개인 층 · 프로젝트 복사본 · 지운 열의 열너비만 뺌
- 키 · 번호 다시 안 씀 — 장부 다음 52(새 항목 SS000052) · 지운번호 51개 기록(새 번호는 SD-000001 모양이라 옛 8자리와 안 겹침)
- 지우기 전 사본 tmp/마스터_집계표_초기화전_0930/(git 밖 · 156 파일 = 지우기 전과 같음)
- 시험 안 견본 fixtures/m02_master_sample(옛 집계표 · 장부 · 자재조합 · rv · c4 · pp_len · ms 세 파일 · 도면 줄임) + helper_m02_master_sample — 실제 마스터를 읽던 시험 일곱(table_fill · template_layers · structures_summary_snapshot · item_copy_complete · m02_tree · m02_item_inputs · spreadsheet_saved_values)을 견본으로 · M01 쓰는 곳 찾기(users_of) 시험은 이미 임시 표(combo_inputs)라 그대로
- 새 시험 test_m02_empty_master — 빈 마스터에서 항목 0 · 빈 나무 · 첫 화면 길 · 새 폴더 · 새 항목(SS000052 · SD-000001) · 지우기 · 고르기 모달 마스터 0 · 프로젝트 복사본 calc 그대로 · 원본없음

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmELpdXFDRZHhfbGuRhSmL
2026-09-30 09:41:04 +09:00
eomsangdonandClaude Opus 5.5 be4f3d33ac feat(B07): 클립보드 DXF 글을 웹 CAD 도형으로 바꾸는 서버 길
오토캐드 WEBCLIP 이 클립보드에 넣은 DXF 글을 받는 POST /api/projects/dxf-clip 추가
(프로젝트 무관 · M02 양식도 씀 · 저장 안 함). 변환은 기존 도각 불러오기 엔진을 그대로 쓰고
dxf_text_to_entities 만 더함 — 엔티티 layerId 는 DXF 도면층 이름 그대로 · 쓰인 층 이름과
층 색을 함께 돌려줌. 시험 = 견본 DXF(선 · 폴리선 · 원 · 글 · 도면층 둘) 3건.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K7JS47SacjPxZ718QsZKyr
2026-09-28 13:44:47 +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
eomsangdonandClaude Opus 5 184865cec9 fix(data): 양수기 7993-0020 휘발유 1.3 은 이웃 줄 7992 것 — 오귀속 바로잡아 어긋남 셋 닫음
브레인 B30 원문 규명 — PDF 340쪽 주연료표의 「휘발유1.3」은 **바로 윗줄 7992(모르타르 믹서)** 것이고
양수기 줄은 전력 1.49㎾ 뿐이었음. 옛 추출이 **이웃 줄 값을 물려받은 자리 틀림**이었음
(「원문 부재」가 아니라 **이웃 줄 오귀속**). 7992 쪽 휘발유 1.3 은 이미 갈라 들어가 있음.

· `mach_base_2026.json` 의 양수기 연료 줄을 지우고 다시 뽑음 — 연료 276 → **275**
  ⚠ 이어받기는 **옛 벌을 보고 되살리므로** 한 번 지워야 영영 안 돌아옴(`이어받음 {'fuel': 1}` → **0**)
· 장부에서 세 줄이 닫힘(연료 7993-0020 · 셈 연료 코드 수 · 셈 연료 원문에 없는 자료 줄)
  — `_갈래.닫힌 자리` 에 규명·처리를 남겨 뒀음
· 딸려 빠진 줄 하나 — 「안 잰 칸 mach_fuel_rate.parse_method」(그 칸을 가진 줄이 그것뿐이었음)

⇒ 기초단가 어긋남 17 → **14**(잣대 못 알아봄 7 · 원문 부재 7) · 할 일 아님 34 → 33

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 17:27:00 +09:00
eomsangdonandClaude Opus 5 8ddfcd6e57 chore(tester): 양수기 7993-0020 — 「남김」으로 잠정 처리하고 표시를 닮(지우지 않음)
브레인 B28 — 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라
(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.**

· 세 줄에 `표시`(「원문 부재 · 옛 벌 이어받음 · 사람 확인 필요」)와 `잠정`(「남김 — 사용자 판단 목록 일곱째」)을 붙임
· 비울지 사람값 자리로 굳힐지는 사용자 회신 뒤 확정
· ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것**
· 메모 칸(`_MEMO_FIELDS`)에 `표시`·`잠정` 을 더해 맞대기에서 뺌 — 사람이 적은 글이라 어긋남 판정에 안 씀

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 17:08:24 +09:00
eomsangdonandClaude Opus 5 61f08d33a6 chore(tester): 양수기 7993-0020 세 줄 — 원문 쪽은 닫고 「자료 쪽」으로 구분해 적음(잣대 10 → 7)
랩탑 서브가 PDF 로 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고(cae43718)
md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`) ⇒ **원문에 기름 값이 없음.**

남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고 그것은 원문에 없는 값을
**옛 벌에서 이어받은 것**임(다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨).
닫는 길 둘을 사유에 적어 둠 — ㉠ 원문에 없으니 비움 · ㉡ 사람이 정해 넣는 자리로 남기고 표시를 달기.
어느 쪽인지는 판정 자리라 그대로 둠(지어 채우지 않음).

⇒ 갈래를 「잣대 못 알아봄 · 랩탑 서브」에서 **「원문 부재 · ㉰ 판정」**으로 옮김.
기초단가 17 — 잣대 못 알아봄 **7**(규격 빈칸 일곱, 랩탑 서브 B17) · 원문 부재 10(㉰).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 17:06:50 +09:00
eomsangdonandClaude Opus 5 fd6865c19a fix(data): 숫자로 시작하는 기종 이름을 버리던 잣대 고침 · 8-1-7 손료보정을 제 표에서 읽음 — 기초단가 잣대 16 → 10
**① 기종 이름 — `(8201) 3D GNSS 머신 가이던스(굴착기용)`**
  추출기가 **첫 낱자가 숫자면 쪽번호로 보고 버리던** 탓에 8201 이름을 못 찾고 **옛 벌의 뭉개진 글**을
  이어받고 있었음(`배관파이프시 간 당(10-7)분류번호규 격7995-0050…`). 낱자가 하나도 없는 토막만
  버리게 고침 — 옛 벌에서 이어받은 이름 7 → **0** · 이름 바로잡힌 줄 1(값은 안 움직임).
  ⚠ `_build_mach.py` 는 랩탑 메인이 지은 것 — 한 줄 잣대만 고쳤음.

**② 8-1-7 손료보정 — 원문이 제 표로 고쳐졌음**
  전엔 글로 뭉개져 `덤프트럭2510` 처럼 붙어 있어 「25·10 인지 2·510 인지 못 가름」으로 세고 있었음.
  이제 `| 덤프트럭 | 25 | 10 |` 이라 **칸에서 바로** 읽음 — 기종 글은 원문이 낱자 사이에 빈칸을 두므로
  (`불도저( 1 9 톤이상 제외)`) 빈칸을 지워 맞댐. 네 줄이 한꺼번에 풀림(보정 셋 + 수 자리 가름).

**③ 이름 없는 기종을 세는 자리** — 8-3 에 `(코드) 이름` 머리글이 없어 **양쪽이 다 비어 조용히 지나가는**
  자리를 세게 함. 지금은 **0** — 8202~8204 도 머리글이 [주] 줄에 섞여 있어 둘 다 읽고 있음.

⇒ 기초단가 어긋남 23 → **17**(잣대 못 알아봄 16 → **10** · 원문 부재 7).
  남은 잣대 10 은 다 랩탑 서브 PDF 몫 — 규격 빈칸 일곱(원문이 기종 이름을 여러 줄로 쪼갬) ·
  양수기 7993-0020 셋(규격이 주연료 칸에 밀림).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 17:04:46 +09:00
eomsangdonandClaude Opus 5 c12367cc33 chore(data): 전수 대조기·겸용 연료·9020 이어 표를 받아 다시 뽑음 — 건설 형태 166 · 밑수 미판독 건설 2·산림 1
**받아 다시 뽑은 결과**
· 건설 형태 미판정 175 → **166** · 밑수 확보 **713** · 미확보 438(원문 부재 436 · **미판독 2**)
· 산림 밑수 미확보 79(원문 부재 78 · **미판독 1**)
· 품셈 원천 건설 표 2,273 → **2,274**(산림 476 그대로) · 기계 손료 611 → **620** · 연료 274 → **276**
  ⇒ 랩탑 서브가 9020 이어 표를 붙이고 랩탑 메인이 겸용 연료를 갈라 읽은 것이 그대로 들어옴

**장부 손질**
· ⚠ 합치며 **내 갈래와 랩탑 메인의 옛 class·주인이 섞였음** — 「원문 부재」인데 주인이 랩탑 메인으로
  적힌 일곱 줄을 ㉰ 로 되돌리고 주인을 뗌. 원문에 없는 것은 남이 고쳐도 안 풀림.
· 랩탑 메인이 새로 올린 「손료보정」 세 줄에 갈래·사유·주인 적음 — 8-1-7 가산비율 표가 글로 뭉개져
  이름 칸에 수(`2510`)가 들어앉은 자리(「손료보정 수 자리 가름」 과 한 뿌리)
· 기계 장부에서 **저절로 빠진 것** — 9020 이어 표 일곱 · 겸용 연료 둘 · 손료 계수 칸 없는 표 둘

⇒ 지금 어긋남: 공종 마스터 **22** · 기초데이터 **1** · 기초단가 **23**(잣대 못 알아봄 16 · 원문 부재 7)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 16:58:31 +09:00
eomsangdonandClaude Opus 5 73f373a40d Merge: 데스크탑 서브(c0b22442 기계 규격 맞대기)와 한 점 — 자료는 다시 뽑음
- 시험 장부는 양쪽을 다 읽어 합침(서브 줄 25 살림) · 자료는 추출기로 다시 뽑음
- `_fuel` 은 내 판(겸용 연료·전력)을 취함 — 서브의 「㎾ 전용은 기름 값 없음」 뜻도 그 안에 담김
- 칸 토막은 서브 `_cells`(빈 칸 = 없음 · `동력` 뗌) 를 쓰되 **코드가 하나면 칸 통째로**
  (`1.87㎾ 휘발유1.3` 처럼 한 값 안에 공백)
- 8-1-7 손료 가산비율 이름 셋은 원문이 글로 뭉개져 이름 칸에 수가 들어앉음 — 목록에 사유로 둠
- 셈 — 건설 표 2,274 · 형태 미판정 166 · 밑수 확보 713 · 미확보 438 · 기계 손료 611 → 620
  · PDF↔md 구멍은 결손 749 · 허구 547 그대로(md 고치는 창 몫)
- 전체 시험 2,445 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-18 15:00:39 +09:00
eomsangdonandClaude Opus 5 1660ca48ff feat(tester): 건설 PDF ↔ md 전수 커버리지 검사 + 겸용 연료 둘 갈라 읽기
브레인 B08·B14.

- **PDF ↔ md 커버리지**(`test_const_pdf_coverage.py`) — PDF 글자층을 좌표로 줄로 다시 묶어
  값 수를 뽑고 md 전문과 양방향으로 맞댐. 지금 **결손 749**(PDF 에 있는데 md 에 없음) ·
  **허구 547**(md 에만 — 대부분 붙은 줄 잔재 `0008900.90` 꼴)
  · 쪽별 셈을 목록에 두어 **늘면 빨강**(새 구멍) · `--report` 로 구멍 큰 쪽 스물을 뽑음
  · ⚠ 줄 짝은 안 맞춤(PDF 는 칸마다 줄바꿈) · 값처럼 생긴 수만(소수점·세 자리 이상, 연도 뺌) ·
    차례 줄·쪽번호 줄은 뺌
- **겸용 연료 둘**(`_build_mach.py`) — 3450-0642 현장가열 표층재생기 `73.7+휘발유54.5` ·
  7992-0001 모르타르 믹서 `1.87㎾ 휘발유1.3`
  · 둘째 연료는 `secondary_fuel_*`, 전력은 `electric_power_kw`(연료가 아니라 곁값)
  · 연료 줄 274 → 276 · 대조 시험도 같은 꼴을 읽게 넓혀 **기계 못 보는 자리 38 → 27**
  · 이름표에 새 열 셋 + 줄 수 갱신
- 전체 시험 2,442 통과

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
2026-09-18 14:35:24 +09:00
eomsangdonandClaude Opus 5 c0b22442b0 feat(tester): 규격 맞대기를 559 줄로 넓혀 「다른 줄 0」 확인 · 공종 마스터 어긋남 23 도 세 갈래로 가름
**① 규격 맞대기 넓힘 — 437 → 559 줄** (손료 줄 608 중)
  · 한 코드 줄은 규격 안에 빈칸이 들어도 칸을 통째로 씀(`2,200×5,150 ×1,000` 따위)
  · **원문과 다른 줄 0** — 559 줄이 원문과 글자까지 같음
  · ⭐ **남은 일곱은 자료가 원문 빈칸을 채운 자리** — 원문 손료표가 한 칸에 든 기종 이름을
    여러 줄로 쪼개 적어(「수동 싱글드럼」 → 수동·싱글·드럼) 뒷줄이 비었고, 자료는 앞 줄에서
    이어받아 「싱글」·「드럼」·「엔진」 **조각**을 규격에 담고 있음. 수·계수는 원문과 같음.
    ⇒ 랩탑 서브에 PDF 대조 남김(7430·7431 윈치 · 7811·7812 엔진 · 9030 예선)

**② 공종 마스터 어긋남 23 → 22 · 세 갈래로 가름**
  · **남의 몫 17** — [주] 이어짐 읽기 14 + md 밑수 읽기 2(랩탑 메인) + F0333 PDF 대조 1(랩탑 서브)
  · **잣대 5** — 부록 14-2 표 셋(부록을 공종에서 가르는 잣대 없음) · F0076(분모 둘) · F0405(할증률 갈래 없음) — 다 ㉰
  · **원문 부재 0** — ⚠ 이 장부는 어긋남만 담음. 「원문에 밑수가 없는 것」 71 건은 `basis_missing` 에 따로 있음
  · F0406〈돌쌓기의 개수 및 중량의 표준〉은 거절 자리로 닫아 할 일 아님 칸으로(32 → 33)
  · 기초데이터 한 줄(이형철근 6~7 범위)도 「잣대」로 가름

⚠ 갈래 낱말이 두 벌임 — **어긋남 칸**은 「무엇이 막고 있나」(원문 부재·잣대·남의 몫) ·
**할 일 아님 칸**은 「왜 할 일이 아닌가」(거절 자리·그 밖·부록 예시·원문 부재). 장부에 곁줄로 적어 둠.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 14:24:02 +09:00
eomsangdonandClaude Opus 5 16883b1941 feat(tester): 기계 규격 437 줄을 원문과 맞대기 시작 · 기초단가 어긋남 61 → 24 로 가름(원문 부재 / 잣대 못 알아봄)
**① 기계 못 보는 자리 25 → 13**
  · **규격을 맞대기 시작** — 원문 손료표 「규 격」 칸을 읽어 손료·가격·연료 세 벌에 다 걸어 맞댐.
    **437 줄이 원문과 같음을 확인**(그 전엔 한 줄도 안 재던 칸). 토막이 코드 수와 안 맞는 줄은
    자료 값으로 갈음되니 지어 채우는 일 없음.
  · 「안 잰 칸」 아홉은 **원문 밖 말**이라 할 일 아님 칸으로 뺌 — 프로그램 이름(alias·rule_id) ·
    사람 메모(note) · 살림살이(parse_method) · 낳은 값(loss_coefficient_per_hour = 계 계수 ÷ 10⁷) ·
    자리 표시(source_section·section) · 원문 조건을 영어로 줄인 이름(exception·exclusion)

**② 기초단가 장부 49 줄을 두 갈래로 가르고 줄마다 사유·주인**
  · **원문 부재 32** — 값이 원문·원천에 없거나 원문 밖 말(㉮ 25 는 집계에서 뺌 · ㉰ 7 은 남김)
  · **잣대 못 알아봄 17** — 값은 원문에 있는데 전사·읽기가 못 가름 ⇒ 고치면 풀림
    – **랩탑 서브 15**: 9020 이어 표 일곱 · 8201 손료표 머리 뭉개짐 둘 · 양수기 7993-0020 셋 ·
      손료보정 `2510` 가름 · 5220·7995 계수 칸(PDF 에 있는지 확인)
    – **랩탑 메인 2**: 겸용 연료(`73.7+휘발유54.5` · `1.87㎾ 휘발유1.3`) 갈라 읽기
  ⇒ 할 일 **61 → 24**(㉯ 17 · ㉰ 7) · 할 일 아님 칸 34

**③ 랩탑 메인 것을 받아 다시 뽑음** — 건설 형태 미판정 196 → **175** · 밑수 확보 711 → **713** ·
  기계 값 바뀜 0 · 갈래 열쇠 장부는 합집합 209(내 CW-00326 · 랩탑 CW-00370 둘 다 살림)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 14:15:05 +09:00
eomsangdon 4a2cf76aeb Merge remote-tracking branch 'origin/main_laptop_1' into sub_desktop_1
충돌은 **뽑아서 생기는 파일 넷**(공종 마스터 둘 · 이름표 둘)뿐 — 손으로 쓴 자리가 없어
랩탑 쪽을 취함. 랩탑이 판정 코드를 고쳐 뽑은 것이라 그쪽이 새 것임(형태 275 → 196).
곧바로 다시 뽑아 덮음.
2026-09-18 13:22:34 +09:00
eomsangdonandClaude Opus 5 75a96a6a18 fix(tester): 프룬이 「할 일 아님」 칸을 되돌려 놓던 구멍 막음 · 기계 md 읽기 셋 넓힘(못 보는 자리 38 → 25)
**① 프룬 구멍** — 읽기(`load_known()`)만 「할 일 아님」 칸을 읽게 고쳤고 **쓰기는 안 고쳤음**.
  `--prune` 이 합쳐 읽은 것을 그대로 되쓰면 2026-09-18 에 가른 칸이 다시 갈래로 섞여
  **없는 할 일 36 이 되살아남**. 세 파일 다 「제자리에서 지우기」로 고침.

**② 기계 읽기 넓힘**
  · `| 9020- | 비항SD | | … |` 꼴 **앞자리만 알리는 머리줄** — 값이 없으니 못 보는 자리가 아님(8줄 뺌)
  · 빈 칸·`동력` 낱말·전력(㎾) 주연료를 읽게 함 — 전력 기종 아홉은 원문에 기름 값이 없어
    양쪽이 비는 것이 맞음(12줄 뺌) · 7360-0090 차선 제거기는 원문 휘발유 5.53 을 이제 읽음
  · ⭐ **머리 없는 이어 표**를 세는 자리를 만듦 — 책장 넘김에 밀린 줄을 `|---|` 없이 따로 적어
    표로 안 잡히던 자리. **9020 그래브 준설선 일곱 줄의 손료계수가 양쪽 다 조용히 빠져 있었음**

**③ 드러난 어긋남을 장부에 사유·주인과 함께 올림**
  · 7993-0020 양수기 — md 가 규격을 주연료 칸에 밀어 적음(코덱스: PDF 대조로 휘발유 1.3ℓ 제자리에)
  · 9020 일곱 줄 — 코덱스: 앞 표에 이어 붙일 것(`제8장_건설기계.md` 3617줄 자리)
  · 겸용 연료 둘(3450-0642 · 7992-0001) — 랩탑 메인: `_build_mach.py` 가 갈라 읽게

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
2026-09-18 13:21:13 +09:00