Commit Graph
2595 Commits
Author SHA1 Message Date
eomsangdon 8a051194cd Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_4 2026-09-25 09:49:11 +09:00
eomsangdonandClaude Opus 5.5 fd3d5aba51 feat(M02): 옛 프로젝트 양식 넣기 도구 — 없는 것만 더함 · 폴더 없으면 건너뜀 · 목록 보고 (PLAN 10-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015LuapLYqN1GGFD8Y1PStD5
2026-09-25 09:47:54 +09:00
eomsangdonandClaude Opus 5.5 05226dd9e5 feat(B07): 도각 읽는 차례 = 프로젝트 작업본 → 없으면 시스템 · [도각 편집] 저장은 작업본 · [기본 도각으로] = 프로젝트 _initial (PLAN 10-3 · 10-5)
- Engine_Template — M02_Template_Layers 자리 함수로 읽고 씀 · 회사 층(storage/{회사}/templates/) 읽기 뺌
- use_project_templates · save_project_template · reset_project_template(_initial 없으면 작업본 지움) · is_project_template_customized
- Router · Router_Frame — 프로젝트 폴더를 넘김
- 도각 편집 띠 · 되돌리기 글을 프로젝트 도각으로
- 시험 test_m02_drawing_area.py — 옛 프로젝트 · 씨앗 뿌린 프로젝트 저장 · 되돌리기

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PxvYb5ufV1kWdBvZbpDfu6
2026-09-25 09:47:30 +09:00
eomsangdonandClaude Opus 5.5 a4e8e43e1a feat(B02): 프로젝트 만들 때 시스템 양식 전부를 작업본 · _initial 로 복사 (PLAN 10-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015LuapLYqN1GGFD8Y1PStD5
2026-09-25 09:46:57 +09:00
eomsangdonandClaude Opus 5.5 ab810c4a4a feat(M02): 구조물 집계표 설계값 채우기 — 펼침 열 · 측점 줄 · 관 줄 나눔 · 손 값 지킴 · 채운 표 길에 B06 관 연장 (PLAN 10-4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015LuapLYqN1GGFD8Y1PStD5
2026-09-25 09:46:20 +09:00
eomsangdon 4e9e431eb2 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_2 2026-09-25 09:43:49 +09:00
eomsangdonandClaude Opus 5.5 9b9f3e15ba feat(M02): 구조물 집계표 마스터 — 머리 4층 · 설계값 묶음 21 · 손 열 10 · 계산 열 4 · 바인딩 · 일위대가 후보 (PLAN 10-4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015LuapLYqN1GGFD8Y1PStD5
2026-09-25 09:41:37 +09:00
eomsangdonandClaude Opus 5.5 1778dbb505 feat(M02): 도면 양식 서버 길 둘 — POST /api/m02/drawing-import · GET /api/m02/drawing-fields (PLAN 10-3)
- M02_MasterTemplete_Router_Drawing.py — B07 Engine_Frame_Import · title_block_fields 다시 씀
- 자리표 키 목록 18 개(프로젝트 14 · 도면 4) · project_id 를 주면 표제란 값 함께
- main.py include 는 sub1 몫
- 시험 test_m02_router_drawing.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PxvYb5ufV1kWdBvZbpDfu6
2026-09-25 09:37:04 +09:00
eomsangdonandClaude Opus 5.5 7d01d62f1b feat(M02): 양식 층 길 — 층 읽기·쓰기 · 초기화 · 적용 · 저장 · 가져올 것 · 채운 표 · 층마다 권한 (PLAN 10-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015LuapLYqN1GGFD8Y1PStD5
2026-09-25 09:36:59 +09:00
eomsangdonandClaude Opus 5.5 df0b7d0aa2 feat(M02): 도면 양식 작도 영역 칸 drawing_area — 박힌 _A1_INNER 대신 양식에서 읽음 (PLAN 10-3)
- 00_template_A1.json 에 drawing_area [42, 47, 812, 567]
- Engine_Template drawing_area(이름) · 칸이 없거나 어긋나면 A1 기본값 · usable_area · usable_bbox · frame_entities 가 씀
- 도각 저장은 고치기 전 양식의 작도 영역을 이어 받음
- 시험 test_m02_drawing_area.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PxvYb5ufV1kWdBvZbpDfu6
2026-09-25 09:36:07 +09:00
eomsangdonandClaude Opus 5.5 93e1512387 refactor(M02): 도면 기본 양식을 resources/master_template/drawing/ 으로 옮김 · 읽는 자리 고침 (PLAN 10-0 · 10-3)
- resources/template_2dDrawing → resources/master_template/drawing (안 쓰는 01_template_Longitudinal 둘 포함)
- B07 도각 엔진 _TEMPLATE_DIR · 도각 편집 주석 · 표지 시험 경로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PxvYb5ufV1kWdBvZbpDfu6
2026-09-25 09:30:59 +09:00
eomsangdonandClaude Opus 5.5 0a31a77909 knowledge(단가산출): 보류했던 일위대가 조합 12개 넣음 — 있는 로직만으로 · 로직 1개여도 넣음 (PLAN 9-4)
- UA000026~UA000037 · 로직 1개 2 · 2개 7 · 3개 2 · 4개 1 · 빈 조합 0
- 옛 판 값 줄은 이름 핵심이 맞으면 담음 · 이름이 다른 짝과 우리 로직에 없는 줄은 비고
- 이미 넣은 24개는 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QENJAMbjcnKJNq5n9k1fDU
2026-09-24 23:47:50 +09:00
eomsangdonandClaude Opus 5.5 405541178c knowledge(단가산출): 일위대가 조합에 옛 판 값 줄의 로직 더함 — 이름 핵심이 맞는 것만 · 이름이 다른 짝은 비고에 「이름이 달라 뺌」 (PLAN 9-4)
- 옛 판 값 107줄 중 73줄을 담은 로직으로 옮김 · 조합 21개에 로직 49개 더함 · 메모 「(실무 수는 옛 판 값)」
- 이름이 다른 짝 34줄은 비고 줄 끝에 「이름이 달라 뺌」
- 「우리 로직에 없음」 28줄은 이름 뜻 + 직종·기계 구성으로 다시 찾았으나 더함 0 — 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QENJAMbjcnKJNq5n9k1fDU
2026-09-24 23:30:24 +09:00
eomsangdon f9ecbeb647 Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-09-24 23:12:32 +09:00
eomsangdonandClaude Opus 5.5 8244919312 knowledge(단가산출): 실무 일위대가 조합 24개 넣음 — 거창 · STC 호표를 우리 로직 조합으로 · 단위 둘은 나눔 (PLAN 9-2)
- 일위대가조합.json UA000002~UA000025 · 담은 로직 = 계산이 같아진 로직(실무 줄 차례) · 메모 = 실무 품명
- 비고 = 못 맞춘 줄 「품명 규격 — 까닭」 + 실무 호표
- 횡단개거 · 기초 콘크리트 · 콘크리트포장은 단위별로 나눔 · 횡단개거(m) 은 로직 1개라 보류
- _키대장.json UA 다음 번호 26 · 대장 키 차례 정렬

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QENJAMbjcnKJNq5n9k1fDU
2026-09-24 23:08:46 +09:00
eomsangdonandClaude Sonnet 5 b57fa9bd46 fix(M01): 목록 검색이 양쪽 띄어쓰기를 떼고 맞댐 — 골 함 석 ↔ 함석 (PLAN 8-5)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 22:32:33 +09:00
eomsangdon 6d4e812604 Merge remote-tracking branches 'origin/sub_laptop_2' and 'origin/sub_laptop_3' into sub_laptop_1 2026-09-24 22:12:26 +09:00
eomsangdonandClaude Sonnet 5 4c58783e0f feat(m01): /text 재료 줄 요소조각 = 잡힌 품목 이름 · MT 참조 (PLAN 8-5)
- 검색어로 찾은 줄 · 고름으로 바꾼 줄 · 대표 줄 모두 — 글 = 자재품목 이름(지역 포함) · 참조 = MT · 그 키
- 새 master_text_item.py(700줄 안 넘기려 나눔) · 기계 · 인력 요소조각 그대로 · 금액 변화 0
- 시험 2개 추가(결속선 GF000159 · 고름)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 22:11:38 +09:00
eomsangdonandClaude Sonnet 5 2e9d457f94 feat(M01): /calc 재료 줄마다 품목 칸(키·이름·규격·단위·값칸) 더함 (PLAN 8-5)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 22:04:30 +09:00
eomsangdon 3f7d2b386f Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into sub_laptop_4 2026-09-24 21:25:02 +09:00
eomsangdonandClaude Sonnet 5 d611aac675 feat(m01): 단위 후보 같은 성격인 빈 줄만 검색어로 (PLAN 8-3)
- 혼화제(GC000684) g ↔ kg — 검색어 「무수축혼화제」 · 단가 0 → 5 · 금액 변화 0(수량 0)
- 성격이 다른 11줄 · 값 빈 자리표 14줄은 그대로
- 도구: 빈 줄은 후보 단위가 같은 성격일 때만 바꿈 · 1,354 자동값 금액 변화 0 · check_master 로직 0 · 단위 16 → 15

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 21:13:57 +09:00
eomsangdonandClaude Sonnet 5 c1eeede597 feat(M01): 기계 입력이 EQ 키로 와도 원문 분류번호로 풀어 받음 (PLAN 8-2)
- 고르기 목록(원문번호)과 같은 꼴로 풀어 계산 · 없는 키는 그대로 막힘
- 시험 1개 더함

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 21:12:29 +09:00
eomsangdonandClaude Opus 5.5 3f581ca41b feat(m01): 로직 재료 줄 키 → 기본 검색어 바꿔 넣기 (PLAN 8-3)
- 재료 줄 591 → {구분, 상세구분, 검색어} · 재료 입력 키 목록 76 걷음 · 넘기던 인자 뗌
- 결속선 등 원문대로 고른 품목(어닐링철선)이 검색 첫째 그대로
- 1,354 자동값 금액 변화 0 · 계산전부 멈춤 0 · check_master 로직 0 · 단위 16 그대로
- 못 맞춘 26줄은 옛 대표 · 조건 그대로: 값 빈 자리표 MT0306… 14 · 같은 단위 후보 0 빈 줄 12
- 도구: 빈 줄은 안 바꿈 · 판정은 서버 찾기(master_pick.search) · 시험 test_m01_search_words

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 21:05:58 +09:00
eomsangdon 1eed93bb1d Merge remote-tracking branch 'origin/sub_laptop_1' into sub_laptop_2 2026-09-24 20:46:55 +09:00
eomsangdon 9df0731799 Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-09-24 20:46:53 +09:00
eomsangdonandClaude Opus 5.5 62b7cd972a feat(m01): 재료 기본 검색어 바꿔 넣기 도구 (PLAN 8-3)
- 대표 키 · 대표가 재료 입력인 줄 · 조건만 있는 줄 → {구분, 상세구분, 검색어}
- 검색어 = 이름 핵심 + 규격 핵심 + 지역 낱말 · 지금 품목이 8-1 차례로 첫째가 될 때까지 낱말 더함
- 재료 입력 키 목록 걷음 · 넘기던 인자 뗌 · GC000211 소모자재 MT:{합판} 자리는 줄 금액으로
- 글 모양 그대로(바뀐 값 자리만) · 기본은 마른 돌리기 · --쓰기 로 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 20:46:43 +09:00
eomsangdonandClaude Sonnet 5 18549146b4 fix(m01): 값 빈 · 표에 없는 줄 시험을 그 줄만 비움 규칙에 맞춤 (test_masterdata_check)
- 범위규칙 마지막칸 — 101 은 멈춤 대신 그 줄이 비고 까닭「인 줄이 없음」
- 미공표 준용 — 값도 준용도 없는 직종은 그 줄이 비고 노무비 0
- 100 · 준용 값 확인은 그대로

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 20:29:12 +09:00
eomsangdon 4b92dc2863 Merge remote-tracking branches 'origin/sub_laptop_3' and 'origin/sub_laptop_4' into sub_laptop_1 2026-09-24 20:28:32 +09:00
eomsangdonandClaude Sonnet 5 af842c0337 feat(M01): 재료 기본 검색어 찾기 · 고름 받기 · 단위 환산 · 단위 경고 (PLAN 8-2)
- 새 master_pick.py — 검색어 찾기(지역 낱말은 차례만) · 고름(호표 줄 차례 → 자재 키) · 같은 성격 단위 환산 · 단위경고 칸 · 기계 목록 밖 원문 분류번호 받기
- Router 몸에 고름 칸 · check_master 검색어 후보 0 · 단위 경고
- 검색어 없는 줄은 옛 길 그대로 — 1,354 자동값 금액 변화 0
- 시험 test_m01_pick 8개

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 20:24:43 +09:00
eomsangdonandClaude Opus 5.5 e210e87075 knowledge(단가산출): 재료·기계 고르기 계약 — 기본 검색어·고름·단위 환산·단위경고·모달 검색 (PLAN 8-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QENJAMbjcnKJNq5n9k1fDU
2026-09-24 20:16:30 +09:00
eomsangdonandClaude Sonnet 5 51af428b5c fix(m01): /text 도 풀리지 않는 중간값은 비우고 그 줄만 금액 비움 (PLAN 6장 넷째 줄)
- _env_of 가 EmptyInput 을 Blank 로 받아 /calc 와 같은 빈 줄 규칙
- 멈춤(calc) 46 로직 329 조합: /text 멈춤 309 → 0 · 계는 /calc 와 같음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 15:18:16 +09:00
eomsangdon 400c34c1f8 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_3' into sub_laptop_2 2026-09-24 15:08:25 +09:00
eomsangdonandClaude Sonnet 5 3ef2ba566f fix(M01): 표 찾기 실패는 그 찾기를 쓰는 줄만 비움 · 까닭 글 날글 없앰
- NoRow · Blank — 표에 맞는 줄이 없으면 중간값을 거쳐 쓰는 줄까지 단가·금액 null + 까닭 · 소계·계는 빈 줄 빼고 더함
- 까닭 「표 QC001869(1-2-3)에 시공구분 기계시공 · … 인 줄이 없음」 · 재료 고르기 후보 없음도 같은 규칙
- 시험 한 개 더 (test_m01_auto.py)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 15:07:19 +09:00
eomsangdonandClaude Sonnet 5 760c5233b6 fix(m01): 빈 줄 값 조각 None · 만약 갈래 괄호 · 로직 조각 이름 (PLAN 6장 둘째 줄)
- 덧줄이 부른 빈 호표 줄 값 조각 글 None → 그 줄 이름
- 만약() 이 고른 갈래가 덧셈이면 곱셈 안에서 괄호로 묶음(× (1 + 60 %))
- 식 안 로직 부르기 조각 글 = 그 로직 이름(별칭 아님)
- GF000185 · GC000376 · GC000111 자동값 + 고르기 후보 66번 점검: 날글 · 산수 어긋남 0

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 14:53:20 +09:00
eomsangdonandClaude Sonnet 5 c1181bc9b5 fix(m01): 자리 표시 든 참조를 조각 · 이름 식에서 이름 + 입력값으로 (PLAN 5장 다시 돌림 2)
- MO:휘발유:{지역} 날글 대신 「휘발유 · 전국평균」 · 입력이 비면 「휘발유 · 지역」
- 조각 참조 = 입력으로 풀린 실제 키 · 못 풀면 참조 없음
- 요소조각 · 조각 · 이름 식 같은 규칙 · 값 식 · 되돌리기는 그대로
- 자동값 · 빈 입력 14,490줄: 날글 48줄(로직 13) → 0 · 금액 변화 0

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 13:20:40 +09:00
eomsangdonandClaude Sonnet 5 a9199550d9 fix(m01): 표 조각 참조에 줄 = 엔진이 찾은 줄 차례 (PLAN 5장 6바퀴 서버)
- find 가 고른 줄의 차례(그 표 줄 배열 · 0부터)를 참조.줄 로 더함
- 줄에 없는 조건 칸은 맞음으로 보는 엔진 규칙을 화면이 흉내 내지 않게
- 시험: GC000010 크레인 줄 · GF000160 합판 줄 · 금액 변화 0

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 12:13:34 +09:00
eomsangdonandClaude Opus 5.5 f808b67285 fix(m01): 이름 식 별칭 = 짧은 표 제목 + 찾은 줄 값 · 긴 품명은 앞 핵심만 (PLAN 5장 5바퀴)
- 표 키(QC…) 대신 표 제목을 짧게 — 규격·코드 뗌 · 길면 첫 + 끝 낱말 · 제목 없으면 공종 · 상세구분
- 같은 표 여러 번은 번호 대신 서로 가르는 인자 값만(낙석방지망설치재료_철망 · 합판거푸집_각재)
- 호표 줄 이름도 짧은 품명 · 한 로직 안에서 겹치면 꼬리 _2
- 자동값 7,008줄: 표 키 1,188→0 · 번호 별칭 982→4 · 붙인 20자 넘는 이름 108→0 · 금액 변화 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 12:04:39 +09:00
eomsangdonandClaude Sonnet 5 0d81acc7d3 fix(m01): 값 식 작은 수를 유효숫자 4 자리로 · 200 원 미만 단가도 (PLAN 5장 4바퀴)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 11:31:18 +09:00
eomsangdonandClaude Sonnet 5 53c23d2739 feat(m01): /text 줄마다 요소조각 — 로직 부르기 이름 + 인자 글 (PLAN 5장)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 11:13:20 +09:00
eomsangdonandClaude Sonnet 5 a30890546c fix(M01): 빠진 원 단위 입력도 null 처럼 그 줄만 비움 (/calc · /text)
- mf.fill_empty — 화면이 안 보낸 가격 입력(단위에 원)을 null 로 채움 · Store.calc·text 에서 부름
- 시험 test_m01_auto.py 한 개 더 — 입력 둘 뺀 GF000056

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 10:24:43 +09:00
eomsangdon 27c85b884f Merge remote-tracking branches 'origin/sub_laptop_1', 'origin/sub_laptop_2' and 'origin/sub_laptop_3' into main_laptop_1 2026-09-24 10:10:00 +09:00
eomsangdonandClaude Sonnet 5 29265815b4 fix(m01): 텍스트 수식 「단가 * (수량 합)」 괄호 — 이름 식 · 값 식
- 수량식 맨 위가 덧셈·뺄셈이면 단가 곱 뒤에 괄호(GC000467 촌락지대가)
- 번호 별칭은 이름글에서 그대로 둠 — 별칭표 이름이어야 되돌려짐(찾은 줄 이름은 되돌리기 안 됨) · 시험으로 고정
- 조각은 수량식만이라 그대로

검증: test_m01_text 25개 통과 · 1,354 금액 변화 0 · 값 없이 멈춤 0 · GC000467 식에 괄호.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-24 10:07:32 +09:00
eomsangdonandClaude Sonnet 5 7215770eb9 feat(M01): 원 단위 입력 자동값 null · 그 입력 쓰는 줄만 비움
- master_auto: 단위에 원이 든 수 입력은 0 대신 null
- master_formula: 비어 있는 입력을 쓰는 호표·덧줄 줄만 단가·금액 null + 까닭(입력 비어 있음) · 로직 계속
- 시험 test_m01_auto.py 둘 더함 · GF000056

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-24 10:05:20 +09:00
eomsangdonandClaude Sonnet 5 de8e1d51c2 fix(m01): 자동값 빈 줄에서 텍스트 수식이 멈추지 않음 — 빈 줄은 빈 글
- 빈 줄(후보 0 · 값 빈 품목 · 빈 덧줄)은 글 빈 값 · 금액 null 그대로 · 덧줄 식을 다시 셈하지 않음
- 덧줄 합 · 이름 값에 빈 줄을 넣지 않음
- 자동값으로 1,354 전부 텍스트 멈춤 62 → 0

검증: test_m01_text 23개 통과 · 자동값 1,354 멈춤 0 · GC000027 계 = 계산 계.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACe3CR4gBWhWUN5p44fLe4
2026-09-24 09:10:11 +09:00
eomsangdon d2380094cb Merge remote-tracking branch 'origin/sub_laptop_1' into sub_laptop_2 2026-09-24 09:04:46 +09:00
eomsangdonandClaude Opus 5.5 79c42224e5 feat(M01): 견본 자동값 길 · 값 빈 품목은 그 줄만 비움
- GET /api/m01/logic/auto — 고르기 목록 첫째 · 범위 최솟값 · 찾기 조건 값은 그 표 가장 낮은 줄 · 나누는 수 1 · 그 밖 0 (master_auto.py)
- run — 후보 0 · 값 빈 품목(덧줄 포함)은 단가·금액 null + 까닭 · 소계·계는 빈 줄 빼고 더함 · 없는 키는 지금처럼 멈춤
- 자동값으로 로직 1,354 전부 계산 · 멈춤 0 · 시험 test_m01_auto.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LcqZtEzEf1sYSU4FUmVLNJ
2026-09-24 09:04:07 +09:00
eomsangdonandClaude Sonnet 5 a5d8b53b2f feat(m01): 텍스트 수식 조각 글 — 찾은 줄·칸 · 중간값 이름 · 만약 쉬운 말과 흐림 · 돈 정수
- 표 조각 글 = 「찾은 줄 · 칸」(합판 · 1회사용) · 참조.행 = 찾기 조건
- 중간값(재료율 · 인력율)은 글에 이름 · 값은 별도 칸
- 만약 = 「폼타이 가 사용 이면 A · 아니면 B」 · 안 걸린 갈래 흐림 · 조건 입력이 비면 두 갈래 다
- 조건 입력이 비어도 이름 식이 멈추지 않음(값 없이 1,354 중 멈춤 180 → 0)
- 글 안의 돈(단가 · 금액)은 정수 · 계산 값은 소수 그대로

검증: test_m01_text 21개 통과 · GF000160 표 조각 일곱 줄 글 모두 다름 · GF000219 금액 앞과 같음.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACe3CR4gBWhWUN5p44fLe4
2026-09-24 08:59:25 +09:00
eomsangdon ac1224220b fix(M01): 설계 입력 비어도 텍스트 수식 이름 식은 보임
master_text._env_of 가 입력을 못 갖추면(값 넣기 전) 받은 것만 담고 중간은 건너뛰어
lines() 가 ok:false 로 일찍 안 죽고 이름 식·조각까지 짓게 함
고른 값이 틀린 경우(고르기·범위 밖)는 지금처럼 그대로 멈춤 — 구분해 시험 둘로 확인
2026-09-23 05:48:57 +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 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