시험을 `resources/tester` 로 옮긴 뒤 **한 건이 실패**하고 있었음 —
`test_preview_cost` 가 짝 파일을 `tmp.tests.…` 로 불러 못 찾았음(옮긴 폴더에 없음).
- `from resources.tester.test_preview_assets import …` 로 고침
- 실행 안내 문구 셋도 새 경로로(`diag_structures` · `helper_b06_fill_slope_length` ·
`test_common_util_crs`)
- 정책 시험 설명은 **사실이 바뀌었으므로** 고쳐 적음 — 「git 밖이라」가 아니라
「옮겨서 함께 건너가되, 까닭은 여전히 값 옆(정본)에 두는 것이 옳다」
`resources/tester/` 1183 통과 / 22 건너뜀 / **실패 0**.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
tmp/ 가 창끼리 안 건너가는 것이 확정돼(랩탑이 시간 두고 두 번 확인) 시험·예외가
저절로 건너가도록 git 안으로 옮김. 사용자 확정.
- 내용은 하나도 안 고침 — 자리만 옮김. tmp/tests 는 남겨 둠.
- 같은 이름이 이미 있던 64 개는 랩탑 것을 그대로 두고 건너뜀.
- helper_b05_*.js 둘은 랩탑이 .cjs 로 이미 올린 것과 **줄바꿈만 다른 같은 내용**이라
복사본을 도로 뺌(시험이 .cjs 를 부름).
- resources/tester/ 에서 전체 1176 통과 · 29 건너뜀 · 실패 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⚠ **뿌리** — `tmp/` 는 창 사이에 안 건너감(실측 확인: 상대 창이 놓은 `tmp/_sync_probe.txt`
가 시간을 두고 두 번 봐도 안 보임). 그래서 **정본(등록부 스키마)만 건너가고 그것을 읽는
시험은 안 건너가** 오늘 두 번, 같은 시험이 **연 창은 통과·받은 창은 실패**가 됐음.
- `tmp/tests/*` 를 `resources/tester/` 로 **복사**(127 파일). 내용은 **한 줄도 안 고침**
- `tmp/tests` 는 **남겨 둠** — 되돌릴 자리(사용자 지시)
- 실행: `./venv/Scripts/python.exe -m pytest resources/tester/ -q`
옮기기 전과 **같은 수**: 617 통과 / 22 건너뜀 / 실패 0
⇒ 이제 시험·예외·까닭이 **정본과 함께** 움직임. 오늘 세운 「예외는 정본 스키마에」와 짝임.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
「인」 오독 넷(원문 대조)
- 8-6-2 드론방제·8-6-3 지상방제 「(단위 : 인)」은 **소요인력**이지 공종 밑수가 아님
- 13-2-4 야면석 채집 「(단위: 인 당)」은 표 안이 ㎡당·㎥당 두 줄이라 하나로 못 정함
- ⚠ 넓게 「인」을 버리면 2-2-5 천공기가 사라짐(「천공인부 1인당 1대」) — 숫자가 붙었나로 좁게 가름
칸 이어붙임 — 앞 칸 값 + 뒤 칸 단위로 **원문에 없는 밑수**가 서던 자리
- 13-2-4 「0.36 ㎥당」(0.36 은 뒷길이 60 의 ㎡당 값)
- 5-19-2 「30 ㎥당」(30 은 표토두께 ㎝)
- ⇒ detect_basis 가 **칸 하나 안에서만** 봄. 「100㎥당」처럼 한 칸에 다 있는 것은 그대로
- 마스터 재생성: 밑수 확보 182 → 180 (없는 값 둘이 빠지고 넷이 미확보로 정직해짐)
- tmp/tests/test_b08_master_basis_person.py 신설(5건)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 잔토 「그 통로가 없다」 → 2026-09-09 에 생김(HaulInputs → 사토 가산 → 사토 운반 줄)
- `face_slope_ratio` 「레지스트리에 없는 키」 → 칸이 생김(돌쌓기 계열 여섯 · 표준도 폼).
빈 값이 「자동」의 뜻
- 성토/절토 「저장이 아직 안 갖고 있다」 → 측점 단면유형 + 설치 측으로 판정 중.
못 가르는 자리만 남고 그때도 눅이지 않고 사유를 적음 (masonry_slope 정책 문구도 함께)
- 품셈 9-13 「토질·용수 칸이 없다」 → 셋 다 서면 자식 코드로 내려감
⚠ 사유가 거짓이면 사유 칸 전체를 못 믿게 됨 — 오늘 통로가 여럿 생겨 낡은 자리를 훑음
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
기초잡석(②)
- 두께 0.2m(사용자 확정). 폭은 버림 폭과 같아(KCS 34 50 05) **버림 × 두께 비**로 나옴
⇒ 관측 원단위로 오는 옹벽에도 값이 섬(버림 0.15㎥/m ⇒ 잡석 0.30㎥/m)
- destination `unit_price` — 운반·부설·다짐 품이 붙는 공종이라 자재총괄에 안 섞임
- 인계에 FP-12-25 줄로 섬. 묶음 구조물(옹벽)은 조각이 이미 세므로 건너뜀
- 두께는 설정 `rubble_base_thickness_m` 로 화면에서 바꿀 수 있음
용수 축(④)
- 품셈 9-13 의 18구분을 토질 × 육상/용수 × 심도로 골라 자식 코드로 내려감
- ⚠ 기본 「육상」은 **통상값이고 사용자 확정이 아님** — 그 사실을 줄 사유에 적음
- 3m 초과 칸은 원문에 없어 상위 코드 + 사유
- 설정 신설: rubble_base_thickness_m(0.2) · structure_trench_water(육상)
- tmp/tests 신설 test_b08_rubble_base.py(7건) + 터파기 시험 6건 추가
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 실무 내역 셋에 「노체포설·노체다짐」으로 가른 줄이 없음 — 영월은 「암성토
BACK-HOE(0.7㎥)」 한 줄이고 그 단가산출 안에 적사→성토→다짐 3단계가 들어감,
울진은 「유용성토」·「사토 및 다짐공」, 봉화는 성토사면다짐만 따로
- ⇒ 성토 본체 한 줄(포설) + 성토면다짐(㎡) 따로가 실무 양식. 다짐은 그 단가 안 단계
- 매핑에 적어 둔 「내역 양식이 정해지면 내린다」 조건이 채워진 것
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 우리 갈래는 「리핑암」인데 일위대가는 「파쇄암」으로 서 있어 도자 운반 금액이
이름만 못 이어 안 붙던 자리(≒30만원)
- 근거: 품셈 10-11 f 표 「파쇄암 1/1.35」 = 10-12 [주]③ 환산계수 「암절취 1.35」
- ⚠ 갈래 이름 자체는 안 바꿈 — 흙깎기(FP-09-04)가 「리핑암」으로 서 있음
- 매핑에 `ground_aliases` 절 신설, 인계본에 `ground_class_aliases` 로 실음
- tmp/tests/test_b08_ground_alias.py 신설(4건)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 구조물 전개가 destination `earthwork` 로 내던 셋을 아무도 받지 않아 내역서에
한 줄도 안 나갔음(두께 식·기초 몫을 맞춰도 금액 0원). 실무 토적집계에는 서는 줄
(울진 대흥 1공구 D12~D14 구조물터파기 토사 1,248/암 30 · 되메우기 739㎥)
- 새 파일 `Engine_Handoff_Trench.py` — 700줄 제한 탓에 Rows 에 안 넣음
- 구조물터파기: 심도(직고 + 기초 깊이)로 갈라 냄. 토질·용수 칸이 없어 품셈 9-13 의
18구분 중 하나를 못 골라 상위 코드 + `input_missing` 사유로 둠
- 되메우기: FP-09-14-01 로 붙어 금액이 섬
- 잔토처리: 사토로 갈 몫이라 in_bill=False, ⚠ 그 통로가 아직 없다는 사실을 사유에 적음
- 매핑에 구조물터파기 줄 추가(FP-09-13 · 원문 L5022~5241)
- tmp/tests/test_b08_structure_trench_rows.py 신설(6건)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⭐ 사용자 확정 2차 ① — 「㎡ 유지. 부피는 **사용자가 지정한 길이값을 곱해** 쓴다」.
그러면 품셈 ㎥ 단가를 그대로 쓸 수 있어 **단위 불일치가 풀림**(2,124만원 자리).
- 설정 `quantity.bench_cut_depth_m` 신설. [저장]으로도 넣을 수 있게 요청 모양에 칸을 두고,
「안 정함」으로 되돌릴 수 있게 nullable 목록에도 넣음.
- 인계 줄: 길이가 있으면 **면적 × 길이 = ㎥** 로 내고, 규격 칸에 「면적 13,696.75㎡ ×
길이 0.5m」로 **어디서 온 값인지** 남김.
- ⚠ **면적을 없애지 않음** — 횡단도 하단 표가 면적을 씀. ㎥ 를 덧붙이는 것.
- ⚠ **길이 기본값을 임의로 박지 않음** — 없으면 종전처럼 막고 사유를 냄
(교본 「층따기 높이·폭은 **설계도서에 명시**」라 설계 입력임).
- 매핑 밑수를 ㎥ 로 되돌리고 그 까닭을 적음(공식이 체적 기준).
실측 — 길이 0.5m 를 넣으면 13,696.75㎡ → **6,848.375㎥** 로 서고 in_bill True.
안 넣으면 0 · input_missing · 「길이를 넣으면 면적 × 길이로 물량이 섭니다」.
시험 748 통과.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⚠ 확정 ⑨ 가 통째로 미구현이었음 — 레지스트리에 `face_slope_ratio` 칸이 없어 **늘 1:0.3**
으로 돌았고, 찰 H=2.5 와 메 H=2.0 이 같은 기울기로 나왔음. 우리 0.3 은 실은
**「메쌓기·성토·직고 1.5m 이하」 한 칸**이었음.
품셈 13-4-4 [주]⑪ <표준경사>를 데이터로 두고 **직고 · 메/찰 · 성토/절토** 셋으로 고름.
메 성토 0.30 0.35 0.40 0.45 0.50 · 메 절토 0.25 0.30 0.35 0.40 0.45
찰 성토 0.25 0.30 0.35 0.40 0.45 · 찰 절토 0.20 0.25 0.30 0.35 0.40
⚠ 경계값은 **앞 칸** — 원문 표기가 `∼1.5 · ∼3` 이라 이하로 읽음(직고 3.0m → `~3` 칸).
7.0m 은 `~7`, 그보다 커야 마지막 칸. 해석을 데이터·주석·시험에 함께 박음.
⚠ **성토/절토가 저장에 아직 없음** — 레지스트리에 없는 키를 읽지 않고 **성토 열로 잠정**
적용하며 **근거 문구에 그 사실을 적음**. 값이 생기면 한 줄만 바꾸면 됨.
⚠ 저장 제원에 값이 있으면 **그 값이 이김**(확정 ⑨). 자동으로 고른 값은 **저장에 안 박음** —
「정한 적 없음」과 「0.3 으로 정함」이 구별돼야 함.
⚠ 큰돌쌓기는 이 표 대상이 아님 — 교본이 「1:0.3 **이상**」으로만 둠. 그대로 둠.
검증 프로젝트 실측 — 돌쌓기(메) H=2.0 면적 **20.881 → 21.190㎡(+1.5%)**, 찰 H=2.5 는
1:0.3 그대로. 옛 시험 셋이 「늘 1:0.3」을 계약으로 못 박고 있어 기울기를 명시하도록 정정.
시험 761 통과(새 7건 포함).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 에는 「품셈 공식이 ㎥ 인데 우리는 ㎡」라 막아 두었음(410만원 자리).
사용자가 **㎡(실무 관행)**로 확정했으므로 매핑 밑수를 ㎡ 로 바꾸고 막힘을 풂.
⚠ 어긋남 자체는 사라지지 않았으므로 매핑에 **그 사실과 까닭을 적어 둠** —
품셈 9-18 [주]는 `Q1 = … = ㎥/시간` 이라 공식은 체적 기준이고, 단의 높이·폭이
설계도서 값이라 체적을 지어낼 수 없어 면적으로 감. ⇒ **받는 쪽이 ㎡ 단가를 세워야 함**
(㎥ 단가를 그대로 곱하면 금액이 틀림).
옛 시험 둘이 「층따기는 막힌다」를 계약으로 못 박고 있어 정정.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⚠ 아홉 중 여덟째 — FP-05-24 는 원문 L2769·L2794 절 머리 아래 「(㎡당)」인데
「단위:」 글자 없이 **괄호만** 있어 마스터가 못 읽던 자리(원문 열어 확인).
⚠ 그리고 매핑 밑수 칸은 **사람이 손으로 적는 자리**라, 품셈에 섞여 있는
「(㎥/1대, 1일)」 같은 **시공량**을 적을 수 있음 — 그것은 밑수의 **역수**라
받으면 그 공종이 조용히 뒤집힌 단위를 가짐. `is_quantity_unit()` 으로 좁게 막음
(나눗셈·쉼표가 있거나 「일당·조·인」이면 안 받음). 애매하면 안 받는 쪽 —
안 받으면 대조가 없을 뿐이고, 잘못 받으면 틀린 단위로 검사를 통과시킴.
시험 741 통과 (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
자재 카탈로그가 이름+규격 두 문자열로 줄을 찾고, 그 규약이 「공백 없는 한 낱말」임
(2026-09-08 B09 실측 — 키는 나라장터 물품식별번호라 우리가 맞출 것이 아님).
전개·관측 원단위표·할증표 세 곳을 함께 고침 — 한쪽만 고치면 이름이 갈림.
⚠ 고임돌·야면석 규격에 뒷길이를 넣지 않음 — 뒷길이는 **수량이 갈리는 축**이지
단가가 갈리는 축이 아님(야면석 톤당 단가는 뒷길이와 무관). B09 가 앞 제안을 물림.
곁들여 — 물구멍관 길이 0.5 가 구조물마다 다른 값임을 주석에 적음
(옹벽 0.32 m/m · 돌기슭막이 0.39 m · 돌골막이 0.5 m/개소, 실무 관측).
시험 739 통과 (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⚠ 또 하나의 단위 불일치 — 층따기 9-18 은 [주] 공식 `Q1 = 3600×q×K×f×E/㎝ = ㎥/시간`
이라 단가가 ㎥당인데 우리는 성토 비탈면적 ㎡ 2,645.21 을 보내고 있었음.
그대로 곱혀 4,102,708원이 서 있었음(B09 실측).
- 매핑에 `basis_unit`·`basis_source`·`mismatch_reason` 을 두고, 우리 단위와 뜻이
다르면 **환산하지 않고** 막음(`input_missing` — 층따기 단 높이·폭은 설계 입력).
막힌 줄에도 집계값을 `spec_detail` 에 남겨 되짚게 함.
- ⚠ 절 머리에 「(단위: …)」가 없는 공종은 마스터 `basis_unit` 이 빔(477 중 167만 참).
그래서 밑수 대조가 조용히 통과하고 있었음 — 매핑이 원문에서 읽어 적은 밑수를
`declared_units()` 로 함께 넘겨 대조가 서게 함.
- 성토면다짐(9-17-1)은 시공량이 ㎡/시간이라 면적이 맞음 — 좁게 막아 형제 공종은 그대로.
시험 736 통과 (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
조율 창 지시로 KeyError 를 막으러 갔다가 더 나쁜 것을 찾음.
죽지는 않고 있었고 대신 조용히 접히고 있었음.
40㎝ → 45㎝ 계수로 돎 999㎝ → 60㎝ 계수로 돎
25·30 → 35 로, 75 → 60 으로 접힘
⚠ 접을 까닭이 없었음 — 품셈 13-4-3·13-4-4 [주]① 이 25·30·35·45·55·60·75
일곱 규격을 다 줌. 우리 표가 네 칸만 들고 있었을 뿐임.
- 표를 일곱 규격으로 채움(건설품셈 참고자료 값, 고임돌은 「깬돌」 열)
- 표에 없는 값(40 등)은 접지 않고 「품셈 표에 없어 물량이 서지 않습니다」
- ⚠ 원문 「-」인 칸은 0 줄을 만들지 않음 — 0 은 「없음」과 구별이 안 되고
받는 쪽이 「값이 0 인 자재」로 읽음
- ⚠ 고른 종류의 빈 칸은 빈 칸으로 덮음 — None 이라고 안 덮었더니
「야면석 75㎝」처럼 원문에 「-」인 칸에 종전 값(깬돌 0.25)이 섰음(만들다 잡음)
⚠ 옛 시험이 「덮는 위 칸으로 접는다」를 계약으로 못 박고 있었음 — 오늘 네 번째.
시험 넷 — 접지 않음 · 표에 없으면 물량 안 냄 · 고른 종류의 빈 칸은 줄 없음 ·
일곱 규격이 다 섬.
시험: 723 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
랩탑이 stone_kind 칸을 만들어 축이 생김. 지금까지 계수 셋이
축 없이 한 벌(깬돌 계열)로만 돌고 있었음.
원문 근거 셋을 데이터 파일로 뺌 (resources/data_masonry/stone_kind_*)
고임돌 품셈 13-4-3 · 돌 종류 네 줄(야면석/깬잡석/깬돌/견치돌)
채움콘크리트 품셈 13-4-4 [주]① · 두 줄(야면석 33.3% / 깬돌 계열 45%)
뒤채움 교본 7-3 · 깬돌·잡석 1/2 · 야면석 1/3
⚠ 안 고르면 종전 값 그대로 — 건설품셈 참고자료 한 벌로 돌되 그 사실을 알림.
값을 못 낸다고 멈추면 이미 저장된 프로젝트가 통째로 빔.
(실측: 미지정 고임돌 3.915 · 채움콘 5.220 · 막자갈 15.130 — 고치기 전과 같음)
⚠ 만들다 잡은 것 — 표는 「뒤채움 몫」인데 우리 식은 「빼는 몫」이라 뜻이 반대.
그대로 넣었더니 미지정 막자갈이 15.130 → 19.045 로 바뀌었음. 1 에서 빼게 고침.
종전 하드코딩 2/3 이 곧 야면석(1 − 1/3)이었음.
⚠ 지어내지 않는 자리 — 원문 「-」(견치돌 25·30 · 야면석 75)는 null 로 두고
사유를 냄. 모르는 종류도 조용히 안 넘김.
시험 7건 — 미지정이 종전 그대로 · 야면석이 바뀜 · 깬돌이 종전과 같음 ·
⚠ 뒤채움 몫을 뒤집어 쓰지 않음 · 「-」를 안 지어냄 · 모르는 종류 · 근거 문구
시험: 720 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
md 가 ../pic/*.png 를 네 곳 참조하는데 그 폴더가 저장소에 없었음.
원본 PDF 는 있어서 그대로 뽑음(지어낸 것 없음).
p35_1 686×673
p39_1 690×673
p64_1 368×229 ← [참고자료] 돌쌓기 표준도
p98_1 592×168
⚠ p64 가 B07 표준도 일감의 근거임 — 우리가 그리려던 그림이
품셈 참고자료로 이미 있었음. 같은 자리의 「돌쌓기 규격별 소요량」 표가
우리 계수(고임돌 0.15 · 채움콘크리트 0.20 · 모르터 0.009)의 원천이라
그림과 표가 한 벌로 표준도 한 장이 그대로 나옴.
그림에 적힌 것: 뒷길이 · 뒷채움 · 채움재(콘크리트 또는 잡석) · 기초
— 우리 전개식 성분과 그대로 맞물림.
⚠ 2026 개정안이 그 참고자료를 「삭제 검토」로 두었음. 없어지면
우리 계수의 근거가 사라지므로 어느 판을 정본으로 쓸지 정해야 함.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- masonry_wet·masonry_dry 에 `stone_kind` 옵션 추가 (야면석·호박돌 / 깬잡석 /
깬돌 / 견치돌). 기본값 없음·required·phase detail — 품셈 13-4-3(고임돌)·
13-4-4(채움 콘크리트) 가 돌 종류로 갈리므로 B08 이 계수 축을 하나로 고를 수 있게 함.
- 값 선정은 설계 판단이라 기본값을 두지 않음 — 미지정이면 B08 이 드러냄.
- 지식DB 미결 22 등재: 옆도랑 저폭 0.3m 근거 공백(별표2 는 너비·깊이만) +
현행 45° 단면이 통수단면 경제 단면 60° 와 어긋남.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
랩탑이 「연장은 나오는데 그 뒤가 안 봤다」고 해서 세 걸음을 한 번에 봤음.
끊긴 자리가 둘이었음.
① 매핑에 B군이 하나도 없었음 — 연장 40.0m 은 인계까지 오는데
공종코드가 비어 있었음. 품셈에 있는 셋을 이었음
산마루측구 FP-12-09-02 · 소단측구 FP-12-09-03 · 맹암거 FP-12-10
셋 다 밑수 1 m — 구조물 연장이 그대로 수량
도수로·절토사면 배수로는 품셈에 그 공종이 없어 pending_user 로 남김
(마스터 전수: 「수로」로 찾아도 나오는 것은 위 셋뿐)
② ⚠ 「전개식이 없다」로 단정해 B09 가 금액을 안 붙이고 있었음
B군은 연장이 곧 수량이라 원단위 전개가 필요 없는데,
blocked_of 가 「성분이 없으면 formula_missing」으로 봤음
⇒ 공종코드가 붙었고 수량이 있으면 막힌 것이 아님
실측(맹암거 40m): 0원 → 1,019,685원. 산마루·소단측구는 B09 일위대가 대기.
⚠ 그 김에 확인된 것 — verify_bill_flags 가 「코드 없이 내역에 서는 줄」을
제대로 잡고 있었음(도수로·절토사면 배수로 둘).
시험 셋 — 연장으로 서는 공종은 안 막힘 · ⚠ 코드 없으면 여전히 막힘 ·
⚠ 연장 0 이면 코드가 있어도 막힘 (둘 다 0원 줄을 막는 짝).
시험: 704 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
랩탑 창이 측점 design 에 pipe_length_m 을 넣어 줘서 마지막 조각이 채워짐.
B08 은 잇기만 하고 길이를 짓지 않음.
값이 어디서 오나
관 자체(있나·어디·관경·관종) → pipe_points.json (레지스트리 managed_by)
관 연장(m) → 측점 design.pipe_length_m
(B06 이 서버 Node 로 m 단위 올림까지 끝낸 값)
관종 → 공종코드 → work_item_mapping 의 pipe.kind_codes
파형강관 FP-12-11-03 · 흄관 FP-12-11-02 · VR관 FP-12-11-01
⚠ facility 가 pipe 인 점만 배관 — pipe_points.json 은 계곡 통과 시설 전부의
정본이라 BOX암거·물넘이·세월교가 같은 파일에 있음. 관경 유무로 가르면
관경 미지정 관을 놓침. 실측: 5601e828 11점 중 관 9 · 세월교 2
⚠ 관종 기본값(파형강관)은 2026-08-17 사용자 확정값이라 근거가 있으나
조용히 쓰지 않고 「기본값으로 섰습니다」를 알림에 실음
⚠ 안 붙인 것 둘 — 터파기·되메우기(관 부설과 각각 오면 같은 굴착을 두 번 셈,
B09 ㉡ 가드 자리) · 유출입부 기슭막이(관 옵션이 정본이고 구조물에서 빠졌음)
연장이 없는 관은 0 으로 때우지 않고 blocked_reason 과 함께 감
「횡단설계에서 [저장]을 한 번 누르면 그 측점의 관 길이가 남고 값이 섭니다」
시험 10건 — 세월교 걸러짐 · 관경 없어도 관임 · 연장 없으면 안 섬 ·
관종 셋이 갈림 · 기본값을 알림 · 모르는 관종은 못 고름 ·
⚠ 좁게: 옆 측점 길이를 물어 오지 않음 · 실제 자료 정본 대조
시험: 697 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
B09 가 「옹벽 묶음이 기초잡석 물량 없음으로 막혔다」고 알려 와 원문을 전수로
확인했음. 우리 표가 빠뜨린 것이 아니라 원문에 없었음.
울진 라이브러리 §7 「반중력식옹벽 H=2.0」 원문은
콘크리트 1.35㎥(기초 0.75+벽체 0.60) + 버림 0.15㎥ · 유로폼 3.20㎡ ·
기초 거푸집 0.6㎡ · 물빼기 파이프 Ø50 0.32m · 철근 D13 13.45㎏ + D16 30.42㎏
이 전부이고 기초잡석·터파기·되메우기·잔토가 다 없음.
기초잡석이 있는 시트는 §1 관보호공 날개벽뿐(T=0.2 · Ø800 A-TYPE 1.15㎥/개소).
다른 구조물 값을 옮겨 쓰지 않음.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
메인이 원문 **표 아래 [주]③**(「목재의 손율은 1개소 사용당 50 %」)에서 밑수를
찾아 `FP-11-02`·`FP-11-03` 을 「1 개소」로 채움(`fc867d32`)
- 자원 축 다시 냄. 지문이 `3752af1e…` 로 따라 바뀜(낡음 감지 장치 동작)
- 기준 미상 68 → 66
- **비탈 규준틀 68,512.2원/개소 · 수평 규준틀 90,997.7원/개소** 로 섬
- 내역서(2f940d8a) 합계 **11,494 → 946,067원** — 규준틀 7개소·5개소가 실제로 실림
· 3-1 비탈 규준틀 7 × 68,512.2 = 479,585
· 3-2 수평 규준틀 5 × 90,997.7 = 454,988
⚠ 원문이 **표 위 본문이 아니라 표 아래 [주]** 에 있던 첫 사례 —
앞서 여덟 번은 다 표 위였음. 다음에 밑수를 찾을 땐 양쪽을 볼 것
검증: pytest 212 통과. 스냅숏 전후 대조로 준비공 6줄 신규 확인
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
B09 제보. 규준틀 둘(FP-11-02·FP-11-03)이 in_bill=true 로 서는데
「밑수 미확보」라 금액이 안 붙고 있었음. 개소 수는 이미 닫혔는데
그 표의 밑수 자체가 비어 있던 것.
「원문에 있었음」 아홉 번째 — 이번엔 표 **아래** [주] 였음
[주]③ 「목재의 손율은 **1개소 사용당** 50%로 한다」
뜻으로도 개소가 맞음 — [주]② 가 「본 품은 …한 비탈규준틀의 제작·도색·
가설·철거를 포함한 것」이라 규준틀 하나를 말하고, [주]① 이 「20m마다 설치」
⚠ 아주 좁게 잡음 — 「N개소 **사용** 당」 표기는 품셈 전문에 딱 두 곳뿐이고
둘 다 규준틀임. 「개소당 평균면적」 같은 흔한 말은 「사용」이 없어 안 걸림
(넓히면 조림 2장이 통째로 걸림 — 실측 19건).
다음 표(|)나 다음 절(###)을 만나면 멈춤 — 남의 [주] 를 물어 오면 조용히 틀림.
효과: 밑수 확보 183 → 185, 미확보 137 → 135.
시험 넷 — 규준틀에서 읽는 것 · 흔한 말에 안 걸리는 것 · 다음 절로 안 넘어가는 것 ·
다시 만든 마스터에 실제로 실렸는지 정본 대조.
시험: 685 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
8-29 ㉮7(자재 원단위의 밑수 — 비탈면적인가 정면적인가)이 계획서에만
있고 화면에는 안 보였음. pending_choices 에 넣으니 구조물 원단위 탭에
바로 뜸 — 「무엇을 정해야 하나」와 「정하면 얼마나 달라지나(−4.4 %)」를 함께.
곁들여 확인 — 그 탭에 미확정 넷이 다 뜸:
자재 원단위 밑수 · 흡출방지재·차수시트 · 목재틀흙막이 원단위 ·
내역서 수량 표시 자릿수
계획서 8-25 가 뒤 둘을 「화면 ❌」로 적어 두었는데 실제로는 보임.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
㉙ B09 2차 교차검토와 함께 나온 것.
콘크리트 타설 — placing_code() 가 시험에서만 불리던 자리를 실제로 이음
- build_handoff 가 구조물 종류별로 콘크리트 체적을 모아 타설 공종 줄을 냄
- 겹치지 않는 것을 확인함: 품셈 12-1-1 표가 직종·품만 주고 재료를 안 줌
(서브 일위대가 B-FP-12-01-01#철근구조물 = 재료 0원 · 노무 65,826.48원)
품은 이 줄, 재료는 자재 쪽으로 갈려 있음
- ⚠ 채움콘크리트는 뺌 — 돌쌓기 뒤채움이라 그 공종 품에 이미 들어 있을 수 있음
(13-6 [주]① 이 큰돌쌓기는 품에 포함이라 못 박음, 13-4 는 확인 전)
- 방식을 안 정했으면 기본값으로 서되 placing_notes 로 알림
- 화면 문구를 「아직 반영 안 됨」에서 「방식에 따라 단가가 달라짐」으로 바꿈
빈 단가산출서 서식 — 품셈이 실어 둔 채워 넣으라고 둔 양식 8건
- 머리글 「단가산출서」가 정본 표지, 머리 두 줄 모양은 보조
- 값이 아예 없는 표라 공종으로 세우면 「값이 있는데 안 서는 자리」로 오해됨
- 실측: 견적 쪽 못 맞춘 자원 882 → 497, 밑수 미확보 160 → 137
- 자원 줄 418 · 단가 제목 330 은 그대로 — 정상 값은 안 지워짐
시험
- 서식 규칙 짝 시험 넷 (정상 표를 지우지 않는 것 · 다시 만든 마스터 대조 포함)
- 타설 줄 시험 넷 (방식 셋이 갈리는 것 · 콘크리트가 없으면 줄도 없는 것)
- 옛 시험 하나 정정 — 구조물 한 줄 규칙에 타설 줄이 걸리던 것
시험: 674 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관) · tsc 오류 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⑤ 구간 표기 37줄을 살피다 둘이 나옴
- 그 줄들은 **살릴 값이 아니었음** — 품셈이 실어 둔 **단가산출서 예시(빈 서식)**
안의 셀이었음(「ha당 참나무시들음병방제 단가산출서(예시)」).
읽으려 들면 구간 라벨(「12~14㎝」)과 항목명이 자원 이름으로 오해됨
⇒ 머리글에 「단가산출서」·「예시」가 있으면 **표째 건너뜀**.
못 맞춤 882 → 497, 성분 빠짐 84 → 78. 자원 축·일위대가·분포는 그대로
(값이 없던 표라 당연함)
- ⚠ **진짜 결함** — `RANGE_DASHES` 를 정규식 문자클래스에 그대로 넣어
`~-–` 이 **범위 연산자**로 읽히고 있었음. 「0.7㎥」·「15톤」까지 구간으로 잡힐
자리였음. `re.escape` 한 `RANGE_DASH_CLASS` 를 두고 세 파일이 그것을 씀
(「한 곳으로 모으라」는 지적이 없었으면 못 봤을 자리)
- 구간 셀에 **단위 꼬리**(「51~100m」)를 허용하되 **수~수+단위 전체가 맞을 때만** —
단위가 붙었다고 다 구간은 아님(「굴착기 0.7㎥」는 규격)
계획서 — 석재 할증률 물음을 「몇 %인가」가 아니라
「붙일까 말까, 붙인다면 근거를 어디서」로 고침(메인 지적)
검증: pytest 211 통과(신규 2 — 예시 서식 건너뜀 + 정상 표는 안 걸림)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⚠ 계약 변경(2026-09-07 3자). 품셈 원문이 규격 표기를 한 종류로 안 씀 —
**물결표만 셋**(`∼` U+223C 662회 · `~` U+FF5E 459회 · `~` U+007E 2회),
곱셈표도 둘(`×` 97회 · `x` 4회). 같은 절 안에서도 갈림(13-06-01·02 는 `∼`,
13-06-03 은 `~`). **두 창이 각자 키를 조립하면 글자 하나로 영영 안 맞음.**
- `#55cm이하`·`#직경60㎝이상∼80㎝미만` 같은 키를 **우리가 만들지 않음**.
`variant_axis`(어느 축) + `variant_value`(저장 원본값 그대로)만 보내고,
원문을 읽는 쪽이 표기를 흡수함. 「…㎝ 이하」 구간 나누기도 그쪽 몫 —
그 구간이 품셈 표의 구조이기 때문.
- ⚠ **메/찰은 예외** — 키 표기가 아니라 **공종 자체가 갈리는 의미 판정**이라
코드가 `FP-13-06-01`/`-02` 로 통째로 달라짐. 그것은 우리 몫으로 유지.
- 계약 시험에 못 박음 — 코드에 `#`·`㎝`·`cm` 가 들어가면 깨짐. 원본값을
가공해도 깨짐(물결표 종류를 바꾸거나 단위를 붙이면 안 됨).
- `data_masonry` 의 갈래표는 지우지 않고 **참고**로 남김 — 서브 판정과
어긋나면 그것이 곧 신호.
마스터에 `special_glyphs` 깃발 — 규격 표기에 쓰인 특수문자 종류. 값은 안 고치고
표시만 함. 물결표가 두 종류 섞인 표가 실제로 5개 있는 것을 시험으로 못 박음
(계약 근거가 사라지면 깨짐).
검증 — 전체 653 passed, tsc 오류 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
랩탑이 B06 에서 상세 제원을 받게 하고 `bond` 칸을 더해 준 것을 받음.
- `bond`(메쌓기/찰쌓기) → 품셈 `FP-13-06-01`/`FP-13-06-02` 자동 판정.
미입력이면 `blocked_kind: input_missing` 과 사람 말 사유로 드러냄 —
랩탑이 「빈 값을 미확보로 계속 드러내 달라」고 한 그대로. 첫 항목을 슬쩍
고르면 근거 없는 값이 수량·단가로 흘러감.
- `pending_user` 에서 큰돌쌓기를 뺌 — 칸이 생겨 자동으로 갈림.
전면 기울기 1:0.3 의 근거를 찾아 데이터·주석에 적음. 지어낸 값이 아니라
**교본 7-3 돌흙막이 기준**임 — 「돌 찰쌓기 3.0m 이하 1:0.3 / 돌 메쌓기 2.0m 이하
1:0.3 / 큰돌쌓기 1:0.3 이상(전도 방지)」(지식DB 돌쌓기.md §1).
⚠ 큰돌쌓기는 「1:0.3 **이상**」이라 더 완만하게 잡을 수 있음 — 칸을 만든다면
그 범위를 보여야 한다는 것도 데이터에 적음.
검증 — 전체 642 passed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
㉓. ㉒ 에서 원문을 찾아 닫힌 셋을 구현.
- **비탈 규준틀 개소** — 품셈 11-2 [주]① 「비탈길이 10m 이상 20m마다 설치」.
사면표의 측점별 사면길이·거리로 셈. ⚠ 「10m 이상」은 비탈길이 조건이고
「20m마다」는 노선 거리 간격이라 둘을 안 섞음. 재료량은 [주]④ 「설계수량」이라
개소만 내고 재료는 미확보로 둠.
- **수평 규준틀**은 11-3 [주]① 이 「중심점 성토고 5m 이상」인데 성토고가 사면표에
없어 0 으로 때우지 않고 미확보로 둠.
- **목재틀흙막이 갈래** — 품셈 13-13-1 [주]③ 이 재료 구성으로 가름.
임도 흙막이는 「보통구조 상(통나무 기슭막이)」로 잠정 판정. ⚠ 잠정임을 근거
문구에 드러내고 「상등구조를 쓰면 8.760 → 16.975 인/㎥ 로 약 1.9배」를 함께 적음.
갈래표는 데이터 파일(`resources/data_timber/`)이라 줄만 더하면 늘어남.
⚠ 밑수 1㎥ 는 구조물 체적이 아니라 **목재 채적**임을 데이터에 명시 — 그래야
「1㎥에 건축목공 17인」이 말이 되는지 판단됨.
- **표토제거 두께** — 9-15 [주]② 가 「T : 표토두께(m)」로 공식의 입력 변수로 둠.
품셈이 정하는 값이 아니므로 설계 입력 칸(`quantity.topsoil_thickness_m`)으로 냄.
⚠ 기본값 없음 · 미입력이면 물량 안 냄(0 으로 때우지 않음). 대상 면적은 참고로 보임.
검증 — 준비공 16건 통과, 전체 642 passed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
제잡비 (품셈 13-6-1·13-7-1 [주]③, 원문은 메인이 찾아 줌)
- **노무비 합계 × 비율이 경비(J)로** 붙음. 재료·노무가 아님
- 기본은 **아랫단**(물빼기 파이프 미설치). 「상한」이라 산출근거에 그 사실을 적음
- `PriceDetail.percent_of_labor` 신설 — 밑수가 3분할 전체인 `percent_of_parent` 와
다름. 비율 줄은 참조를 풀기 전에 처리(자기 자신을 가리켜 순환으로 잡혔음)
- 표시 합계에도 넣음 — 안 넣으면 화면 합계와 실제 단가가 어긋남
㉥ 가드 신설 — 제잡비 윗단(파이프 설치)을 쓰면서 물구멍을 자재로 또 실으면 멈춤
(원문이 「상단에는 파이프 설치의 노무비·재료비를 포함한다」고 명시).
짝 시험 4건 — 아랫단·파이프 없음·비슷한 이름은 안 걸림
성분 빠짐 차단 확대
- 시간·대수로 세는 줄(장비 몫)을 못 맞추면 그 공종 금액을 안 만듦.
초본류 시비가 「트럭(2.5t) 2.6시간」을 빼고 33.1원/㎡ 로 서 있었음
- 자재 줄(kg·매)은 이미 알려진 미결이라 막지 않고 드러내기만 함
- 요약의 「의심 저가」에서 막아 둔 공종은 제외 — 새로 살펴야 할 것과 섞이지 않게
뭉친 표 두 곳 수정
- 칸 전체를 한 이름으로 먼저 시도 — 「굴착기 (무한궤도)」가 안 풀려 찰쌓기 13-6-2 의
장비 몫이 빠지고 공종이 막혀 있었음
- ⚠ 라벨 줄 판정에 **순수 숫자 칸** 검사 추가 — 「자재 | 종자 | kg | 0.025」를
라벨 줄로 오해해 씨앗뿜어붙이기 표를 가로챘음(회귀, 시험이 잡음)
결과: 자원 축 354 → 418, 일위대가 176 → 203, 막힌 공종 32
찰쌓기 13-6-2 = 118,794.9원/㎡ (노무 + 굴착기 0.48h + 제잡비 3 %)
검증: pytest 190 통과(신규 6)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⑲. 앞서 막아 둔 큰돌쌓기를 13-6 축으로 세움.
- `boulder_masonry` 전개식 — 규격 축은 **직경**(40~60·60~80·80~100㎝)이고
저장 제원 `stone_cm` 이 품셈 축과 글자까지 같아 그대로 씀.
치수로 낼 수 있는 것(면적·터파기·되메우기·잔토)만 내고 나머지는 사유와 함께 알림.
- 재료(큰돌)는 13-6 [주]⑦ 「재료량은 설계수량을 적용한다」라 원단위가 없음.
- 고임돌·채움콘크리트는 [주]① 「품에 포함」 — 따로 세우면 이중계상.
- 뒤채움(조약돌)은 [주]⑧ 로 13-3 적용. 두께는 13-4-3 [주]⑨ 준용인데
직고별 **범위값**이라 한 값으로 못 정함 — 미확보.
- 터파기 폭 규정이 품셈에 없어 돌쌓기 방식을 준용하고 그 사실을 근거에 적음.
- ⚠ 메/찰 구분 칸이 저장 제원에 없어 13-6-1/13-6-2 를 못 고름. 레지스트리는
다른 창 소관이라 손대지 않고 `pending_user` 로 드러냄.
⚠ 함께 발견 — 엔진이 읽는 옵션 키가 레지스트리와 달랐음.
레지스트리는 `back_len_cm` 인데 엔진은 `stone_back_length_cm` 을 읽고 있어
**저장값이 영영 안 닿고 늘 기본 45㎝ 로 돌았음**. 뒷길이를 75 로 골라도 45 계수가
붙던 자리이고, 값이 나오므로 아무 시험도 안 잡았음. 두 이름 다 읽게 하고,
표에 없는 값(25·30·75)은 **덮는 위 칸**으로 접되 그 사실을 적음.
돌쌓기 뒷길이 갈래를 자동 판정해 코드에 붙임(`FP-13-04-05#55cm이하`).
「…㎝ 이하」 구간이므로 **저장값 이상인 첫 경계**를 고름. 근거 문구를 함께 실음.
갈래표는 `resources/data_masonry/` 에 데이터로 둠.
검증 — 전체 621 passed, tsc 오류 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
메인이 `reference` 오판 41건을 되살려(bc4b6837) 돌쌓기(장비)가 마스터에
들어왔으나, 그 표는 **이름도 값도 뭉쳐 오고 열이 규격 갈래**인 또 다른 모양이라
여전히 안 섰음 (「석공 보통인부 | 0.09 0.05 | 0.08 0.04 | 0.07 0.03」)
- 뭉친 이름·값을 갈래 열에 짝지어 읽음. 개수가 어긋나면 표째 버림
- 「굴착기+부착용 집게」는 **두 기종 조합**으로 보아 같은 시간을 둘 다 붙임
(TODO(미결) 해석 잠정 — 사용자 확인 대기)
- 규격이 **옆 칸**에 있고 갈래(무한궤도)가 안 적힌 기종은 규격 일치 + 무한궤도
우선으로 잠정 채택. 카탈로그 규격이 범위(0.6∼0.8)면 그 안에 드는지로 판정
- ⚠ 「1.04(1.17)」 괄호값은 **조건 시공 시 대안값**임이 원문에서 확인됨
(13-6-1 [주]② 흡출방지재 시공 시 ( ) 값). 기본은 괄호 밖, 대안값은
`alternative_amount` 로 남겨 화면에 「시공 시 다름」으로 보이게 함
- 라벨 줄 판정을 **모든 칸**으로 — 첫 칸만 보면 기초잡석 12-25 를 라벨 줄로
오해해 표째 가로챘음(그 탓에 기초잡석이 한때 다시 막혔음)
- 갈래 키를 **공백 없는 것**으로 통일(`#보통`), 원문 문구는 이름에 보존
(두 창 합의)
결과: 자원 축 259 → 354, 일위대가 145 → 176
돌쌓기(찰) 35cm이하 58,166.7 / 55cm이하 52,938.7 / 75cm이하 46,892.7 원/㎡
메쌓기·찰쌓기·붙이기 계열도 직경 3갈래로 섬
검증: pytest 184 통과(신규 1). 화면 실측 — 지금 인계 자료에 구조물 줄이 없어
표에는 아직 안 뜸(B08 이 갈래를 골라 보내면 그대로 금액이 섬)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
⚠ 마감 중 발견 — `boulder_masonry`(큰돌쌓기)를 `stone_masonry(dry)` 로 전개하고
있었음. 큰돌쌓기는 품셈 13-6, 돌쌓기는 13-4 로 **규격 축이 다름**: 돌쌓기는
뒷길이(35·45·55·60㎝), 큰돌쌓기는 직경(40~60·60~80·80~100㎝). 직경 60~80㎝
짜리가 「뒷길이 45㎝」 계수로 돌아 고임돌 0.15·야면석 0.88 이 붙고 있었음.
값이 나오기는 해서 어떤 시험도 안 잡던 자리 — 전개식이 설 때까지 미확보로
드러내고(`EXPANDER_WITHHELD`) 왜 안 두는지 사람이 읽게 적음.
⑱ 화면에 안 보이던 미확정 조건 셋을 구조물 원단위 탭에 띄움. 「무엇을 정해야
하는지」만으로는 부족하고 「정하면 얼마나 달라지는지」까지 적음.
- 흡출방지재·차수시트 — 보통인부 1.04 → 1.17 인/10㎡(약 +12.5 %), 근거
13-6·13-7 [주]②. ⚠ 큰돌쌓기·큰돌붙이기에만 걸리고 돌쌓기(13-4)에는 괄호 값
자체가 없다는 범위도 함께.
- 목재틀흙막이 원단위 — 1㎥당 건축목공 16.975인, 각재·판재가 없어 모자란 값.
- 내역서 수량 표시 자릿수 — `단수처리_규칙.md` 에 금액 자리만 있음.
검증 — 전체 612 passed, tsc 오류 0. 화면에서 셋 다 뜨는 것 확인.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
서브 창 제보 교차 확인. 값을 바꾸지 않고 깃발만 실음.
- `spaced_names` 20건 — 「굴 삭 기 (무한궤도)」처럼 자간 공백이 든 자원 이름.
같은 표 묶음 안에서도 표기가 갈림(13-6-1 은 공백, 바로 옆 13-6-2 는 없음).
받는 쪽이 이름으로 찾으면 그 줄이 통째로 빠짐.
⚠ 여기서 이름을 고치지 않음 — 정규화는 값을 살리지만 잘못된 줄도 함께 살림
(서브 실례: 정규화 직후 버킷계수 K 를 소요량으로 읽어 사용료가 이중).
⚠ 처음 101건으로 넓게 잡혔던 것을 **단위 칸 + 수치가 함께 있는 자원 줄**로
좁혀 20건. 짝 시험(「단 위」·「모 래」는 안 걸림)을 같이 둠.
- `formula_rows` 24건 — 값 자리에 K·f·E·Cm 가 온 줄. 자원으로 세면 이중계상.
㉥ 물빼기 파이프 이중계상 — 품셈 13-6-2·13-7-2 [주]③ 이 제잡비 **윗단** 값에
「물빼기 파이프 설치에 관계되는 노무비, 재료비를 포함한다」고 함. 우리 원단위가
물구멍을 자재로 내므로 그 쪽과 겹침.
- **우리 선택: 물구멍을 자재로 세우고 제잡비는 아랫단(미설치)** 을 씀. 까닭은
자재 줄로 세우면 규격·수량이 눈에 보이고 되짚을 수 있기 때문. 데이터와 코드
양쪽에 적음.
- ⚠ 지금 쓰는 13-4 계열에는 **제잡비 행 자체가 없어 겹치지 않음**(전수 확인).
이 규칙은 13-6·13-7 을 쓰게 될 때 걸림.
관측값이 원문과 맞는 첫 사례 기록 — 채움콘크리트 0.2㎥/㎡ 가 품셈 13-6-2 [주]⑩
「뒤채움콘크리트량은 0.2㎥ 기준」과 일치.
갈래 키 정규화 — `code` 는 내부 공백만 제거(`FP-12-03#보통`), 원문 문구는
`kind_label` 로 함께 실음. 다른 글자는 안 건드림(괄호·기호 유지 짝 시험).
검증 — 품셈 43건 통과, 전체 611 passed, tsc 오류 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
석재 할증률을 찾으러 12·13장 본문을 훑다 발견한 둘
- 품셈은 같은 기종을 「굴 삭 기」·「굴착기」·「유압식백호우」로 섞어 적음.
메쌓기 13-6-1 의 「굴 삭 기 (무한궤도)」가 안 붙어 **장비 몫이 통째로
빠져 있었음**. 이름 안 공백 제거 + 기종 별칭만 맞춤(규격은 안 건드림)
- ⚠ 그 정규화가 새 오독을 열었음 — 측구터파기의 「유압식백호우 … | k | 0.9」
줄이 자원으로 잡혀 **버킷계수 0.9 를 소요량으로** 읽었음(사용료 0.9시간분
이중). 공식 기호(K·f·E)를 단 줄은 자원으로 세지 않음 — 그 줄은 시공능력
공식 쪽에서 씀
결과: 자원 축 256 → 259, 일위대가 145 유지, 최소 233.4 / 최대 5,030,954.6
석재 할증률은 **품셈에 없음을 확인** — 1-3-1 재료 할증률표에 야면석·막자갈·
고임돌이 없고, 13-4~13-7 돌쌓기 본문 [주]에도 할증 문구 없음. 사용자 확정 대기
검증: pytest 183 통과(신규 2 — 공식 줄 제외 + 공백 이름 매칭 짝 시험)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>