· 해석기 scripts/master_draft.py — 「이름 = 식」 줄에서 변수(처음 나온 줄 · 정의됨/미정)와
변수마다 정할 것(무엇 = 마스터요소·설계입력·고정값·표찾기 · 단위 · 비목)을 뽑음
· 검사 — 두 번 정의 · 서로 물고 돎 · 안 쓰임(결과가 하나인지) · 못 읽음 · 비목 합 이름
· 단위 검사 — 곱셈은 곱하고 나눗셈은 나누고 덧셈·뺄셈·만약·최소·최대는 같아야 함 ·
어긋나면 그 줄과 글자 자리 · 「m * m」 과 「㎡」 는 같게 봄 · 비율(%)은 무차원
· 옮기기 — 돈 로직은 결과 식을 항으로 갈라 호표 줄(마스터요소 하나 + 나머지 곱이 수량)과
덧줄로 · 나머지 정의 줄은 중간(쓰는 차례) · 돈 아닌 로직은 중간 + 결과 식
· 표 찾기는 글자로 안 침 — 변수 하나로 두고 「찾기」 묶음을 모달이 채울 자리만
· 서버 길 POST /api/m01/logic/draft — 검사·미리보기 · save 면 자체 로직(키 GX)으로 저장
· 계약 _화면_계약.md 7장 · 시험 test_m01_draft.py 13개(자재비 식 · 단위 어긋난 식 · 물고 도는 식)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
찾기()·로직() 을 이름 하나로 보이는 규칙(겹치면 번호) · 로직 1,354개 전수 조사(찾기 7,500·
로직부르기 1,022 · 같은 표 다른 인자로 겹치는 행 507건은 예외가 아니라 흔한 경우) ·
로직 부르기 참조냐 복사냐 두 갈래 비교와 브레인 판정 제안(기본은 참조 유지) · 복사본은
원본이 나중에 바뀌어도 안 따라감(스냅숏) 및 까닭. 화면 코드는 안 만듦 — 설계 문서만.
- 엔진 `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
- 엔진 — 로직 줄의 묶음 `끝수`{대상, 자리, 방법}를 계산 끝에 붙임(비목 합마다 끊고 계 = 그 합 · 돈 아닌 로직은 결과) · 글자 끝수는 설명 그대로 · 검사가 묶음 모양을 봄
- 서버 — `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
- `GET /sections` · `GET /table/options` · `/tables` 의 `section` · `/logics` 의 `owner`
- 자체 로직 `POST /logic/new|copy|edit|delete`(키 GX 서버 발급 · 파일 로직_자체_NN장_….json · 소유 현장/공용 · 정본은 403)
- 저장 안 한 초안 시험 계산(`key` "" · `file` 없이) · 끝수 묶음 {대상, 자리, 방법}
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
- 계수 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
부칙 제4조① 은 2026~2032년만 명시 — 2033년 이후는 그 해 되면 정함(사용자 확정).
정본 rate_from_2033_percent 삭제 · 비고에 짧게 남김 · build_요율.py 는 법 밖 연도가
정본에 미리 채워지면 잡아내는 쪽으로 바꿈 · 시험 2개 추가.
- 시험입력 10개 — 오거비트 혼합층처럼 원문 표에 없는 조합을 피하고(연장 0) 자재지역을 값 있는 시·군으로
- GC000945 전기용접봉 「595㎾h」 → 원문 소모자재 표대로 22.5㎏(595㎾h 는 같은 표의 전력 줄 · 별도 계상)
- GC000002 콘테이너형 가설건축물 단위 「개」 → 자재품목 줄 단위 「동」
- ref/_관리자값_미확보.md 새로 — 관리자가 채울 재료 45 종 · 막힌 로직 56 개 · 남은 다른 까닭 세 줄
- 일괄 시험 계산 통과 1,272 → 1,279 · 멈춤 82 → 75(맞는 줄 0개 5 → 0) · 단위 경고 37 → 14
- 레미콘 규격 14건은 원문이 강도·슬럼프를 안 밝혀 그대로 둠
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
- `_틀.md` 7장 — 입력 칸 목록과 `설명`(쉬운 말 한 줄) · `시험입력` · 고르기 후보 단위 거르기 · 조건 값의 `{입력}` 자리
- 테스트 컨테이너 대상 10개 로직의 입력 97개에 설명 채움 — 서버는 줄을 그대로 내려보내 화면 도움말로 쓸 수 있음
- 로직_건설품셈_09장_미장공사.json 머리에 겹친 「부문」 칸 지움
- 시험 하나 더함
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
- 엔진 — 고르기 조건 값의 `{입력}` 을 계산 때 채움(관경) · 검사에서는 그 칸을 뺌(`static`)
- 흄관 · 파형강관 두 줄을 고르기 조건으로 바꿈
- VR관(자재품목 단위 「본」 · 호표 「m」 환산 필요) · 고무링 · 커플링밴드 셋은 옛 참조 유지 — 조건만으로 줄이 안 좁혀짐
- 시험 하나 더함
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
조달청제비율 XLSX·국민연금법 XML 원문을 요율_조달청제비율.json 과 셀 단위로 대조하는
--check 전용 스크립트 신설(정본 쓰기 기능 없음) · 지금 원문·정본 전부 일치 확인 ·
국민연금 2033년 이후 요율은 법 부칙(2026~2032만 명시)에 없는 추정치임을 참고로 남김 ·
_갱신절차.md 요율 줄·구멍 목록 갱신 · 시험 3건 추가.
- 엔진 — 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