From c4d37d48d42c85bf5ade57d346b4f280f989c42e Mon Sep 17 00:00:00 2001 From: umsangdon Date: Thu, 10 Sep 2026 00:23:54 +0900 Subject: [PATCH] =?UTF-8?q?docs(verification):=20=EA=B3=84=ED=9A=8D?= =?UTF-8?q?=EC=84=9C=208=C2=B79=EC=9E=A5=20=EC=99=84=EB=A3=8C=EB=B6=84=20?= =?UTF-8?q?=EA=B7=BC=EA=B1=B0=EB=A5=BC=20=EC=9B=90=EB=AC=B8=20=EA=B7=B8?= =?UTF-8?q?=EB=8C=80=EB=A1=9C=20=EC=9D=B4=EA=B4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 끝난 항목의 조사·근거·검증 원문은 계획서에 안 남기는 것이 사용자 확정 규칙임. 계획서에는 결과 한두 줄만 두고 원문 22건을 이 파일로 통째로 옮김. - 함께 옮긴 것: 항목이 이미 닫혀 자리를 잃은 고아 근거 두 덩어리. - 살아 있는 정보는 계획서에 한 줄로 남김 — 마스터가 반쯤 빈 것, 야면석 규격 넷에 값이 없는 것, 공구손료가 붙을 밑수가 아직 0 인 것, 유가 지역 자동 연동을 안 한 것, 수송비에서 우리가 정한 둘, 품 할증이 임도 토공용이 아니라는 것. Co-Authored-By: Claude Opus 5 (1M context) --- .../2026-09-10_계획서_8_9장_완료근거_이관.md | 407 ++++++++++++++++++ 1 file changed, 407 insertions(+) create mode 100644 docs/raw/verification/2026-09-10_계획서_8_9장_완료근거_이관.md diff --git a/docs/raw/verification/2026-09-10_계획서_8_9장_완료근거_이관.md b/docs/raw/verification/2026-09-10_계획서_8_9장_완료근거_이관.md new file mode 100644 index 00000000..576c94fc --- /dev/null +++ b/docs/raw/verification/2026-09-10_계획서_8_9장_완료근거_이관.md @@ -0,0 +1,407 @@ +# 계획서 8·9장 완료분 근거 — 원문 이관 (2026-09-09 밤 작업분) + +> 규칙(2026-09-09 사용자 확정) — **끝난 항목의 조사·근거·검증 원문은 계획서에 안 남긴다.** +> 계획서에는 결과 한두 줄만 두고, 원문은 여기에 **통째로, 그대로** 옮긴다. +> ⚠ 계획서에 이 파일 경로를 적지 않는다(링크도 쌓인다) — 찾는 일은 위키·graphify 몫. + +옮긴 항목 **22건** (B08 8장 · B09 9장의 `- [x]` 완료분). + +- [x] **밑수 단위 「인」 6건 중 넷이 오독** — **이미 고쳐져 있었음**(커밋 `4fc5b38d`, 2026-09-09 11:46). + **자체검증 (2026-09-09 밤, 데스크탑 메인)** — 코드·데이터 대조만 하고 손대지 않음. + · 규칙 = `person_basis_ok`(`B08_Quantity_Build_WorkItemMaster.py`) — 「인」·「공」은 + **앞에 숫자가 붙었을 때만** 밑수로 인정. 표 위 본문·표 안 두 갈래 모두에 물려 있음. + · 실측 = 마스터 전수에 **「인」 밑수로 선 공종 0건**. 드론방제·지상방제·야면석 채집· + 휘발유는 밑수 「미확보」로 서 있음(0.36㎥ 같은 없는 값이 안 섬). + · 안 사라졌는지 = 2-2-5 천공기는 「천공인부 **1인당** 1대」라 `("인", 1.0)` 그대로 섬. + · 시험 = `test_b08_master_basis_person.py` 5개 통과. + ⓘ 아래 옛 메모는 **무엇을 왜 골랐는지**의 근거라 남겨 둠. + ⚠ 2026-09-09 재판정 — **데스크탑 보조의 「참조 따라가기」와 같은 집안**이라 겹칠 수 있음. + `F0228`·`F0229`(드론방제 → **ha당**) · `F0230`(지상방제 → 차량살포) · + `F0401`(야면석 채집 → **㎡·㎥당**) · `F0046`(휘발유 → **ℓ/대/일**) 넷이 오독이고, + `F0068`(천공기 「천공인부 **1인당** 1대」)만 맞음. + **고치는 방향** — 밑수 「인」은 원문에 「<숫자>인당」이 그대로 있을 때만 인정. + ⚠ **넓게 「인」을 통째로 버리면 2-2-5 가 사라짐** — 좁게 고칠 것. + 지금 값에는 안 걸리나 방제·야면석 계열이 서는 날 소요량이 통째로 틀림. + +- [x] **안내 문구 둘이 사실과 어긋나던 것** `[잔손질]` — **둘 다 닫힘.** + ✅ 타설 문구는 **조건이 붙었음**(`is_default` 가 아닐 때만 뜸 — `UI_Page.ts:598`). + ✅ **동바리 문구** — 구조물 수를 함께 보게 고침(2026-09-09 밤, 데스크탑 메인). + **자체검증** — `B08_Quantity_UI_MaterialGrid.ts` 의 조건에 `structure_count > 0` 을 더함. + · 화면 실측(공용 브라우저 새 탭, 구조물 원단위 탭) — + **구조물 0개 프로젝트**(`5cff3920`): 머리말 「구조물 0개…」만 뜨고 **동바리 줄 없음**. + **구조물 6개 프로젝트**(`79da822d`): 동바리 줄이 **전과 같이 그대로 뜸**. + · 두 프로젝트 모두 서버 응답은 `shoring.applicable=false` 로 **같음** — 갈린 것은 화면뿐이라 + 값·금액 변화 없음. 보던 프로젝트는 원래대로 되돌려 놓음. + + +- [x] **관 줄 밑감 — 연장(m)** `[밑감 들어옴 · 남은 것은 ㉠㉡㉢ 답 대기]` 앞서 「브라우저에만 있으니 서버로 옮기거나 저장 때 남겨야 한다」로 + 갈래를 냈는데, **그 계산이 이미 서버 Node 로 돌고 있었음** — `computeCardCulvert` 가 + `B06_Section_Server_Calc_Node.ts` ← `recompute_server_side` 로 [저장]·[확정] 때 돎 + (구조물 폐회로 면적이 그 길로 정본에 실림). ⇒ **그 다리에 값 한 줄 더 실으면 됨.** + 랩탑 창이 측점 `design` 에 **`pipe_length_m`**(m 단위 올림 끝난 값)로 넣기로 함. + B08 은 `get_cross_section_designs` 로 그 자리를 이미 읽으므로 **읽는 코드를 새로 안 만듦.** + ⚠ 값이 정본에 실리려면 그 프로젝트에서 **[저장] 한 번**이 필요함. + ⓘ 이 줄이 서기 전에 위 ㉠·㉡·㉢ 이 먼저 정해져야 함(2026-09-09 에 한 줄에 뭉쳐 있던 것을 가름). + ✅ **밑감은 들어왔음**(2026-09-09 밤 확인) — 랩탑이 측점 `design.pipe_length_m` 자리를 만들었고 + (`B06_Section_Schema` · `_Server_Calc_Prebuild` · `_Structure_Layouts`), **B08 이 그 값을 읽고 있음** + (`B08_Quantity_Engine_Pipe`). ⇒ **남은 것은 ㉠·㉡·㉢ 사용자 답뿐임.** + +- [x] **밑수 대조 가드 — 내역에 실리는 줄은 이제 전부 대조됨** (2026-09-09 밤 마무리 · 커밋 `8a78927d`) + **자체검증 (2026-09-09 밤, 데스크탑 메인)** — 「반은 놀고 있음」은 **이제 옛말임.** + · 실측 — 프로젝트 `79da822d` 인계에서 **내역에 실리는 25 줄 중 24 줄이 이미 대조되고 있었고**, + 못 보던 것은 **`FP-11-01` 가설창고(개소) 한 줄뿐**이었음. + · 그 한 줄을 채움 — 품셈 11-1 은 절 머리에 「(단위: …)」가 없어 **마스터가 못 채우는 자리**라, + 매핑 통로에 **원문 근거와 함께 「개소」**를 적음([주]① 「설치 또는 해체 시에 각각」 · + [주]③ 「트럭크레인 사용시간은 **1개설치당** 2시간」). + · 매핑에 `ancillary`(준비공 부대시설) 절을 만들고 **그 절도 대조에 쓰이게** 함. + · **⇒ 지금 내역 25 줄 = 대조 25 줄.** 일부러 `개소`를 `m` 으로 보내면 가드가 + 「보내는 단위 「m」가 품셈 밑수 「개소」와 다릅니다」로 잡는 것을 시험으로 못 박음. + · 전체 **1245 통과 · 실패 0**. + ⓘ **마스터 자체는 여전히 반쯤 빔** — 밑수 단위가 선 공종 **163/477**, 단위 빈 일위대가 **48**. + 다만 그 나머지는 **우리가 안 쓰는 공종**(조림·방제 계열)이라 **지금 금액에는 안 걸림**. + 쓰기 시작하는 날 그 공종의 원문 줄을 매핑에 적으면 그날 대조가 섬(통로는 이미 있음). + ⓘ 아래 옛 기록은 **무엇을 어떻게 채웠는지**의 근거라 남겨 둠. + + +- [x] ~~**⚠⚠ 밑수 대조 가드가 반은 놀고 있음 — 마스터가 비어서**~~ `[옛 기록]` (2026-09-08 실측) — + **오늘 「단위가 조용히 어긋난 자리」가 여섯 번** 났고(개소가 미터로 · 준비공 표 통째로 · + B군 코드 빔 · 성분 줄 안 감 · 돌쌓기 m↔㎡ · **층따기 ㎡↔㎥**) 앞의 다섯은 이제 가드가 + 잡는데 **여섯째는 마스터에 밑수가 없어 못 잡았음.** + + +- [x] **⚠ 견적가격은 4순위임 — 화면 문구 이미 있음** (2026-09-09 확인) + `B09_Estimation_Lists_Sources.py:111` 「견적을 넣을 때는 업체명·견적일을 함께 남기십시오 — + 국가계약법 시행령 §9 의 4순위(앞의 셋으로 정할 수 없을 때)라 근거가 남아야 합니다.」 + ~~(국가계약법 시행령 제9조) —~~ + ①거래실례가격 ②원가계산 ③표준시장단가 ④「①②③에 의할 수 없는 경우 감정가격· + 유사 거래실례가격 또는 **견적가격**」. + ⇒ **사급 단가에 견적을 쓰려면 「앞의 셋이 없다」는 것이 전제**임. 화면에 그 사유를 남길 것. + +- [x] **층따기 — 사전 문구 고침** `[잔손질 — 사전 한 줄]` (2026-09-09 완료) + ✅ **자체검증** — `원가_출력변수_사전` B2-9 줄의 밑수를 **「㎡·m」 → 「㎥」**로 고치고, + 비고에 **왜 두 축이 있는지**를 적었음(화면·집계는 면적이 정본이고 길이 칸을 곱해 ㎥ 로 + 내보냄 · 확정 2차 ①). 종전 표기가 두 축을 한 칸에 적어 **㎡ 로 내도 되는 것처럼** 읽히던 + 자리임. 코드는 이미 ㎥ 로 내보내고 있어 **수치 변화 없음** — 전체 시험 1182 통과·실패 0. + ✅ **어긋남 자체는 닫혔음** — 확정 ① 로 **면적이 정본**이고 **길이 칸을 곱해 ㎥** 로 냄 + (화면 칸 `ab51fa38` · 인계 줄이 그 길로 섬). + ⚠ **남은 것은 사전 문구 하나** — `원가_출력변수_사전 B2-9` 가 아직 **「㎡·m」**로 적혀 있어 + 품셈 9-18(㎥) 과 어긋난 채임. **다음 사람이 또 ㎡ 로 낼 자리**라 한 줄 고칠 것. + ✅ **높이·폭 수치는 전수로도 없음이 확정** — 교본 **세 곳**(6장 4절 · 15장 부록 4-3 · + 성토_비탈면)이 전부 「**설계도서에 명시되어 있는 높이와 폭으로**」 같은 문장임. + +- [x] **`_manifest.json` 의 `pum_std_drawing` `deferred` 사유 문구** `[잔손질]` — 우리 말로 고침. + **자체검증 (2026-09-09 밤, 데스크탑 메인)** + · 옛 문구 「current technical DB identifies this as an unresolved source gap」 를 + **「구조물 표준도 원단위(옹벽·날개벽·집수정 규격별 콘크리트·거푸집·철근량)를 담을 자리. + 품셈·교본에 표가 없어 실무 구조물 일람표에서 뽑아야 하는데 그 자료가 아직 안 들어옴 + — 자료 확보 대기」** 로 바꾸고, `source_needed`(무엇을 받아야 하나) · + `knowledge_ref`(지식DB 근거 자리) 두 칸을 함께 붙임. + · 근거 = `원가_입력변수_사전 G6` 「pum_std_drawing … **현행 공백 E1**(실무 일람표 추출 필요)」. + · JSON 다시 읽어 파싱 확인. **이 파일을 읽는 코드는 없음**(장부 파일) — 값·화면 변화 없음. + ⓘ **문구를 바꾸는 것과 자료를 받는 것은 다른 일임** — 표준도 원단위 자체는 여전히 대기이고, + 그 대기 줄은 9-6 「날개벽·집수정 원단위」 쪽에 살아 있음. + ⚠ 같은 `deferred` 의 나머지 셋(`mat_rebar`·`mat_remicon`·`asphalt_concrete`)은 **영어 그대로 둠** + — 지시가 이 한 줄이었음. 우리 말로 맞추려면 따로 한 번에 할 것. + + +- [x] `[반나절]` **돌 무게 인자표** — 「뒷길이 × 0.77 × 2.65」, 야면석은 0.42. + ⇒ **이미 들어가 있었음**(커밋 `252e6b54`, 2026-09-09 12:08) — 「미착수」는 계획서가 안 지워진 것. + **자체검증 (2026-09-09 밤, 데스크탑 메인)** — 코드·시험 대조만 하고 손대지 않음. + · 자리 = **B08 한 벌**. `B08_Quantity_Engine_UnitQuantity.stone_weight_per_m2` 하나를 + 돌쌓기·골막이(같은 파일)와 기슭막이·바닥막이(`_Revetment`)가 함께 부름 — 두 벌이 아님. + · 갈래 = **계산식이 기본**(`0.77 × 2.65`), **야면석 계열만 관측표**. 야면석은 공극이 커 + 같은 식이 안 맞아 원문 값을 그대로 씀(35→0.575 · 45→0.880 · 55→1.100 ton/㎡ · + 돌붙임(메) 0.42 ton/㎡ — 울진 소광 원단위 라이브러리 L103). + · 잠정 표시 = 줄 근거에 「⚠ 잠정 — 실무자 협의 후 명확히 할 값」이 붙어 화면까지 나감. + · 시험 = `test_b08_coeff_and_strength.py` 둘(관측표 갈래 · 계산식 갈래) 통과. + ⚠ **남는 자리 하나** — 야면석은 뒷길이 **25·30·60·75 에 값이 없어** 그 규격에서는 돌 줄이 + 안 서고 사유만 남음(원본에 없는 칸을 지어내지 않는 규칙 그대로). 돌붙임 0.42 를 끌어다 + 메우고 싶어지는 자리인데 **밑수가 다른 표**(돌쌓기 비탈면적 ↔ 돌붙임 평면적)라 안 합침. + +- [x] `[잔손질]` **공구손료 칸** — 「지금은 안 넣되 숫자 넣으면 되게 열어 둘 것」. + ⇒ B09 **기초자료 탭 「산출 조건」에 칸 하나**를 세움 — `공구손료·잡재료 (주재료비의) [ ]% [적용]`. + 근거는 **산림품셈 1-2-6**(주재료비의 2~5%까지, 산정 근거 명시) — 화면에 원문을 그대로 붙임. + **자체검증 (2026-09-09 밤, 데스크탑 메인)** + · 값이 **비면 줄 자체가 안 섬** — 금액 한 원도 안 움직임(시험 `test_비면_한_원도_안_움직인다`). + · 넣으면 **재료비**로 붙고 밑수는 **자재 줄만** — 노무·경비, 하위 일위대가 재료비는 안 듦. + · **상한 5% 초과는 거절**(400) — 조용히 깎아 넣지 않음. 화면에 사유가 그대로 뜸. + · 화면 왕복 실측(공용 브라우저 새 탭, 프로젝트 `79da822d`) — 빈 칸 → 3% [적용] → + 「지금 3% 로 붙고 있습니다」 → 6% [적용] → 「⚠ … 5% 까지입니다 … 받은 값 6%」 → + 칸 비우고 [적용] → 「비어 있어 안 붙고 있습니다」. **끝나고 빈 칸으로 되돌려 놓음** + (`project_settings.json` 의 `misc_material_percent` = `""` 확인). + · 시험 8개 신설(`resources/tester/test_b09_misc_material.py`), 전체 **1189 통과 · 실패 0**. + ⚠ **지금은 넣어도 붙을 밑수가 없음** — 일위대가에 **주재료비가 선 공종이 0개**임(자재는 + 자재대 표에서 따로 금액이 섬 · 사급 단가는 확정 5차 큰 것 8 로 대기 중). 그 사실을 + **칸 밑에 그대로 띄움** — 안 그러면 값을 넣고도 왜 안 붙는지 모름. 사급 단가가 서는 날 + 이 칸이 함께 살아남. + ⓘ **곁다리로 고친 것** — 비율 줄(제잡비·공구손료)이 **저장했다 다시 읽으면 사라지고 있었음** + (`B09_Estimation_Storage` 가 `percent_of_parent` 만 적고 있었음). 둘 다 적도록 고침. + + +- [x] `[반나절]` **유가 지역 단가** (2026-09-09 밤, 데스크탑 메인) — 화면에서 시도를 고르면 + 그 지역 공시가로 **기계 연료비가 다시 섬**. 근거는 품셈 8-1-7 5호. + ⚠ **「자료가 다 있음」은 사실이 아니었음** — 받아 둔 것은 **전국평균 한 벌**뿐이었고 + 시도별 값은 아예 안 받아 와 있었음(`_meta.md` 의 「지역별 조회 **지원**」은 API 가 된다는 + 말이지 자료가 있다는 말이 아니었음). 그래서 **자료부터 받고** 코드를 이었음. + **자체검증 (2026-09-09 밤)** + · 받은 것 = 오피넷 `avgSidoPrice.do` 시도별 판매가(휘발유·경유) 스냅샷 → + `original/원가계산/유가_오피넷/유가_시도별_2026-09-09.json`, + 프로그램용 데이터셋 `oil_regional_2026-09-09.json`(`_manifest.json` 에 등재). + 수집 스크립트에도 그 호출을 더해 **다음에 또 받을 수 있게** 함. + · 화면 = 기초자료 탭 「환율및기초자료 ③」의 **「유가 적용 범위」 칸**. 전과 달리 잠겨 있지 않고 + **전국 공시가 + 시도 16곳**(값을 함께 보임)을 고름. 고르면 저장되고 프로젝트에만 걸림. + · 화면 실측(공용 브라우저 새 탭, 프로젝트 `79da822d`) — 서울 고름 → + 경유 **1,886.15 · 지역 공시가 · 2026-09-09 · oil_regional**, 되돌림 → + **1,846.39 · 전국 공시가 · 2026-08-14 · oil**. **끝나고 전국 공시가로 되돌려 놓음.** + · 값이 실제로 갈리는지 = 기계 시간당 사용료 `X-0101-0019` 전국 148,450.48 → 서울 149,603.52. + · 시험 6개 신설(`test_b09_fuel_region.py`), 전체 **1197 통과 · 실패 0**. + ⚠ **원천의 시도 가름이 행정구역과 다름** — 17줄 중 `00`이 전국, `20`이 「전남광주」 한 줄이고 + `07`(전남)·`16`(광주)은 없음. **원문 이름·코드를 그대로 두고 쪼개지 않음**(자료에 적어 둠). + ⚠ **현장 소재지 자동 연동은 안 함** — 프로젝트의 「사업 지역」은 자유 글(「울진군 금강송면」)이라 + 시도 코드로 옮기려면 규칙을 지어내야 함. **사용자가 고르는 칸**으로 두었음. + 자동으로 잇고 싶으면 프로젝트 등록에 **시도 칸**이 하나 있어야 함(다음 물음거리). + +- [x] `[하루+]` **기계 수송비를 세웠음** (2026-09-09 밤, 데스크탑 메인 · 커밋 `fdc30ecf`) + 「기계경비 = 기계손료 + 운전경비 + **수송비**」인데 셋째 몫이 통째로 없었음. `FP-10-04` + 중기운반이 그 수송비이고 표가 「미판정」이라 **단가가 아예 안 서고** 있었음. + + **세운 방법 — 원문 그대로** + · 산림품셈 10-4 사이클 — 트레일러(20TON) `t1=20·t3=20·t4=0.42` / 트럭(10.5TON) + `t1=10·t3=10·t4=5` · `㎝=t1+t2+t3+t4` · `N=60×0.9/㎝`, **단위는 회당**. + · 속도(t2) — 건설품셈 8-1-6의 2 나 이동속도표(도로 구분별). 원문이 「-」로 둔 칸 + (트레일러·고속4차선)은 **지어내지 않고 사유로 냄.** + · 새 파일 `B09_Estimation_Transport.py`(190줄) — `UnitPrice.py` 가 이미 1,106줄이라 안 보탬. + + **⚠ 우리가 정한 둘 — 원문이 안 정해 화면 근거에 그대로 적었음** + ㉠ t2 속도를 **자주식 이동속도표**에서 가져옴(그 표는 자주로 이동할 때의 표라 쓰임이 꼭 + 같지는 않음) · ㉡ t2 를 **왕복**으로 봄(건설품셈이 「왕복 수송비」라 못 박음). + ⇒ **실무자 확인이 붙으면 좋은 자리.** + + **자체검증** + · 거리·도로 구분은 **설계 입력** — 비면 줄이 안 서고 사유만 남음(임의 거리 금지). + · 화면 실측(기초자료 → 산출 조건) — 편도 12㎞ · 사리도로(양호) 넣으니 + **트레일러 227,838원/회 · 트럭 149,507원/회**. 비우니 「거리가 안 들어와 줄을 안 + 세웠습니다」로 되돌아감. **끝나고 두 칸 다 비워 놓음**(설정 파일 확인). + · 시험 9개 신설(`test_b09_transport.py`), 전체 **1225 통과 · 실패 0**. + + **⚠⚠ 곁다리로 잡은 큰 것 — 운전경비 표가 페이지에서 잘려 39 기종이 통째로 버려지고 있었음** + 8-4-3 표가 페이지를 넘기며 앞자리를 다시 안 적어(`0080 0100 …` 로 시작) 코드 열 판독이 + 통째로 실패했음. 그 안에 **수송 차량(2702 트레일러)** 이 들어 있었음. + ⇒ **앞 표의 앞자리를 이어받되 카탈로그에 있는 코드일 때만** 받게 함. 운전경비 줄 **92 → 158**. + ⓘ 지금 서는 일위대가 값은 **하나도 안 바뀜**(그 기종들을 쓰는 임도 공종이 아직 없음) — + 수송비를 세울 수 있게 된 것이 이 고침의 값어치임. + ⚠ **아직 버려지는 표 하나** — 8-4-5 콘크리트기계는 규격 칸이 22, 나머지가 21 로 어긋나 + 그대로 버려 둠(억지로 맞추면 기종과 연료가 어긋나 붙음). + + +- [x] `[잔손질]` **미공표 직종 신뢰도 플래그** (2026-09-08 제기 → 2026-09-09 완료) + ✅ **자체검증** — 노임 자료의 `reliability` 기호를 읽어 **노임 제목·화면 요약**까지 이었음. + ``` + 읽는 자리 `load_labor_reliability()` — 원문 기호 `*`·`**` 그대로. 정상 직종은 안 담음 + 싣는 자리 `PriceTitle.reliability` — 노임 제목 전부 + **조종원 줄**에도 같이 붙임 + 경고 자리 `build_summary` 의 `labor_reliability` → 화면 힌트 줄(⚠ 노란 글씨) + ``` + ⚠ **금액을 막지 않음** — 값은 그대로 서고 「조사현장이 적다」는 사실만 나름. + ⚠ **내역에 실제로 실린 것만** 경고함 — 카탈로그 40직종을 다 띄우면 쓰지도 않는 직종이 + 화면을 채움. 실측 결과 **둘**이 잡힘: `1037 벌목부 [*]` · `1050 일반기계운전사 [*]` + (지식DB 가 예로 든 임도 빈발 직종이 그대로 나옴). + 시험 여섯을 새로 세움(`resources/tester/test_b09_labor_reliability.py`) — 원문 기호를 + 우리 낱말로 바꾸지 않는지 · 정상 직종이 안 담기는지 · 카탈로그 전체를 안 띄우는지까지 검. + 전체 시험 **1182 통과 · 실패 0**. + +> ⓘ **메모(할 일 아님)** — 불도저 19톤 이상은 암석작업 손료 보정 제외 +> (`기계경비_산정 §3 [주]①`). 우리 불도저가 **정확히 19톤**이라 파쇄암·발파암에 +> **+25%를 붙이면 안 됨.** 지금 안 붙이고 있어 맞음 — 보정을 넣는 날 걸릴 자리. + + +- [x] `[다시 셈 끝 · 2026-09-09 밤]` **표를 못 읽어 값이 안 서는 자리 — 다시 센 수** + **⚠ 세는 자리를 바꿨음** — 「표 몇 장이 안 읽히나」는 겁만 주고 할 일을 못 가림(안 읽히는 표 + 대부분이 조림·방제라 임도에 안 쓰임). **「내역에 실릴 줄인데 금액이 안 서나」로 세는 것이 맞음.** + + **표 (마스터 기준)** — 전체 475 · 공종에 붙은 것 **456** · 안 붙은 것 **19**. + 형태별로 요구량형 279 · **미판정 76** · 참조 66 · 계수 19 · 시공능력 16. + **일위대가** — 코드 **286** · 공종 기준 **143**, **286 전부 금액이 0 보다 큼**(빈 껍데기 없음). + + **⚠⚠ 진짜 구멍 셋 — 내역에 실리기로 돼 있는데 단가가 아예 없음** (프로젝트 `79da822d` 인계 54줄 실측) + + | 공종 | 물량 | 왜 안 서나 | + |---|---|---| + | `FP-09-16-01` **성토(노체포설)** | **13,150.2 ㎥** | 원문에 「= ㎥/시간」 식이 셋 다 있는데 **절 머리에 「(단위: …)」가 없어 마스터가 표를 못 붙임** — 그 공종에 붙은 표가 **계수(K·f·E) 한 장뿐** | + | `FP-09-17-01` **성토면다짐** | **12,350.3 ㎡** | 같은 까닭. 원문 L5368 「A = 77.7 ㎡/시간」이 있는데 **붙은 표가 0장** | + | `FP-10-12` **덤프 운반** | 174.6 ㎥ | 운반거리·적재용량·단위중량 — **설계 입력 대기**(아래 사토장 줄과 같은 것) | + + ⇒ **앞의 둘은 같은 병**이고 **자료도 원문도 다 있음**(매핑 파일 `basis_source` 가 원문 줄번호까지 + 적어 둠: L5322·L5336·L5363 · L5368). **표를 그 공종에 붙이는 일**만 남음 — 아래에 줄로 세움. + ⓘ 함께 나온 것 — 겉으로는 「단가 못 찾음」 열 줄인데 **일곱은 갈래로 서 있는 것**이었음 + (`FP-10-11#토사` 처럼 `#갈래`로 섬). **갈래를 셈에 넣지 않으면 있는 금액도 없다고 셈.** + + +- [x] `[반나절]` **⚠⚠ 성토·성토면다짐에 단가가 서게 함** (2026-09-09 밤, 데스크탑 메인 · 커밋 `4a6254ba`) + **막힌 까닭이 하나가 아니라 둘이었음** — 앞서 「단위 표기」 하나로 짚었던 것은 절반만 맞았음. + + | 공종 | 막혔던 까닭 | 푼 방법 | + |---|---|---| + | 9-16-1 **노체포설** | 계수표(K·f·E·㎝)는 붙었는데 **기종이 [주]에만 있어** 못 고름 ⇒ 시공능력 공식이 안 돎 | 흙깎기(9-3-2)와 **같은 장비 칸**을 둠 — 무한궤도 굴착기 0.7㎥([주]① 그대로), 화면에서 바꿀 수 있음 | + | 9-17-1 **비탈면 다짐** | **표가 한 장도 없음** — 값이 절 제목에 있음(「A = 77.7 ㎡/시간」) ⇒ 표만 보는 조립이 그 공종을 아예 안 봄 | **제목·[주]에만 있는 작업량**을 싣는 자리를 두고 원문 문구를 줄에 남김 | + + ⓘ **곁다리로 하나 더 나옴** — 부착 콤팩터 `0240-0007` 이 **카탈로그에 이름이 비어** 있어 + 손료가 통째로 안 붙고 있었음. 이름 대신 **분류번호로도** 가리게 함(조합 사용 넷은 그대로, + 목록을 넓힌 것이 아님). 그래서 본체 굴착기가 **조합 사용 층(잡재료 16%)** 으로 바뀌어 섬. + + **자체검증 (프로젝트 `79da822d`)** + · 단가 — 성토 **4,522.9원/㎥** · 성토면다짐 **1,443.4원/㎡**. 단위는 원문 그대로(㎥·㎡). + · 금액 — 성토 **59,477,858원** · 성토면다짐 **17,827,251원** ⇒ **합 77,305,109원**이 새로 섬. + 같은 셈으로 **세부 줄 금액 합 31,276,630 → 108,581,739원**(약 3.5배). ⚠ **작은 자리가 아님.** + · 화면 실측 — 설계내역서에 `2-5-1 성토 ㎥ 13,150.19 · 4522.9 · 59,477,858` · + `2-6-1 성토면다짐 ㎡ 12,350.32 · 1443.4 · 17,827,251` 로 뜸(전에는 단가·금액 칸이 비었음). + · 시험 6개 신설(`test_b09_fill_and_slope_price.py`), 전체 **1214 통과 · 실패 0**. + ⓘ **노체다짐(9-16-2)은 아래 줄로 옮겼음** — 단가는 세웠고 남은 것은 「셀 것인가」임. + +- [x] `[하루+]` **`FP-10-04` 중기운반 · `FP-09-14-02` 다짐(플레이트 콤펙터) — 또 다른 식** — **둘 다 섰음** + (2026-09-09 밤 · 커밋 `fdc30ecf` · `6cf7de9e`) + · **중기운반** = 기계 수송비. `㎝=t1+t2+t3+t4 · N=60×0.9/㎝` 그대로. **거리·도로 구분을 넣으면 섬** + (편도 12㎞·사리도로 양호에서 트레일러 227,838원/회 · 트럭 149,507원/회). + · **플레이트 콤펙터** = 다짐 식 둘째. 롤러가 `V·W·E·D·f/N` 인데 콤펙터는 `A·N·H·f·E/P` 임. + **원문이 답까지 적어 두어**(「∙ = 4.26 ㎥/시간」) 표 계수로 셈한 값과 맞대는 시험을 둠. + 단가 **14,509.5원/㎥**(손으로 미는 소형 장비라 ㎥당이 비쌈). + ⓘ 이제 우리가 아는 식은 넷임 — 굴착기 사이클 · 불도저 · **다짐 둘**(롤러·콤펙터) + 수송 사이클. + +- [x] `[다시 셈 끝 · 2026-09-09 밤]` **어느 공종에도 안 붙은 표** — **19 그대로**(읽는 길이 셋 는 것과 + 무관함: 그 셋은 **붙은 표를 어떻게 읽나**의 이야기이고, 여기는 **붙었나 안 붙았나**의 이야기임). + **19 를 뜯어보니 임도에 쓰일 것은 하나뿐임.** + · **15장 = 조림·숲가꾸기 사례표**(풀베기·덩굴제거·솎아베기·산물수집 등 부록 2-3~2-17) — 임도 밖. + · **2장(`F0248`·`F0257`) = 표가 아니라 「…참조」 한 문장**이 표로 잘린 것. + · **1장(`F0364`) = 12-17-3 「무근진동기 제외」** [주] 조각. + · **⚠ 1장(`F0375`) = 12-27-1 지수판 설치** — 이것만 구조물에 쓰일 수 있음. 다만 **지금 인계에 + 지수판 줄이 없어** 값이 빠진 자리는 아님. 구조물에 지수판이 서는 날 함께 볼 것. + +- [x] `[하루+]` **품의 할인·할증 26계열 — 칸을 세웠음** (2026-09-09 밤, 데스크탑 메인 · 커밋 `f6f51f33`) + + **⚠⚠ 앞서 이 줄에 적혀 있던 「임도는 산지경사 할증이 늘 걸릴 자리로 보임」은 추정이었고, + 원문을 다시 읽어 뒤집었음.** 다음 창이 또 붙이려 들지 않게 여기 적어 둠. + · 26계열의 **[주]가 거의 다 조림·숲가꾸기·방제 전용**을 지목함 — 1-4-1 「덩굴·뿌리제거 / + **어린나무가꾸기에 한하여**」 · 1-4-2 「**줄베기**」 · 1-4-3 「**소반별**」 · + 1-4-4·1-4-5(평균경사도) **드론 방제** · 1-4-9 「숲가꾸기·병해충방제 **작업로**」 · + 1-4-25 「도서·오지·민통선」. + · ⇒ **임도 토공에 붙이라는 지시가 원문에 없음.** 임의로 붙이면 근거 없는 할증임. + + **붙는 자리 = 일위대가의 품(인력) 줄** (「어디서 붙이나」의 답) + 근거 — 원문 제목이 「1-4. **품**의 할인·할증」이고 1-6 라 표가 직접노무비를 품셈으로 냄. + ⚠ **B08 물량에 곱하면 자재·기계까지 부풀어** 그것이 곧 ㉠ 계열 이중계상임. + + **자체검증** + · 화면 = 기초자료 → 「품의 할인·할증 (산림품셈 1-4) — 고른 것만 붙습니다」. 계열마다 고르는 + 칸 하나 + **[주] 원문 그대로**. 기본은 「안 고름」. + · 화면 실측 — 안 고름: 「한 계열도 안 골라 한 원도 안 움직이고 있습니다」 → + 1-4-1 「6월∼9월 10%」 고름: 「지금 10% 가 품에 붙고 있습니다」, 일위대가 **육상 암절취(2~3m) + 노무 67,664.8 → 74,224.1 · 합계 72,333.4 → 78,892.6** → 되돌리니 원래 문구. + **끝나고 안 고름으로 되돌려 놓음**(설정 파일 확인). + · 품이 늘면 **제잡비 밑수도 함께 늘도록** 줄 차례를 지킴(할증 줄이 제잡비보다 먼저). + · 밑수는 **사람 품만** — 기계 층 안의 조종원 노임은 안 셈(제잡비와 같은 규칙, 시험으로 못 박음). + · 시험 7개 신설(`test_b09_labor_surcharge.py`), 전체 **1234 통과 · 실패 0**. + ⚠ **율 표는 24개임** — 1-4-24(「**장비품의** -20%」·방제 전용)와 1-4-26(율이 아니라 + **적용시공량 규칙** `Q=B/2`)은 성격이 달라 이 칸에 안 담음. 버린 것이 아니라 다른 것임. + + +- [x] **공구손료·잡재료 2~5 % — 칸을 세웠음** (2026-09-09 데스크탑 메인, `83c842e3`) + 9-11 둘째 줄과 **같은 일감이었음**(한 항목이 두 절에 서 있었음). B09 기초자료 탭 + 「산출 조건」에 칸이 서고 **기본은 빔** — 넣으면 주재료비의 %로 재료비에 붙음 + (`B09_Estimation_PriceBook.py:155,209,248`). 몇 %인지는 사용자 몫으로 남음. + ~~(2026-09-08) — `품셈_적용기준.md §1`~~ + 「명시 없을 시 **주재료비의 2~5 %** 별도 계상(산정 근거 명시)」. + **범위값이라 어느 값을 쓸지 확정 대기**임. + ⇒ **2026-09-09 확인: 지금은 안 붙고 있음**(공구손료 층이 하나도 없음). 이중계상 걱정은 + 없고, **「2~5% 중 몇 %」 하나만 정하면 붙일 수 있음.** + ⇒ **2026-09-09 밤: 칸을 세움**(9-11 둘째 줄) — B09 기초자료 탭 「산출 조건」. 기본은 빔. + 남은 것은 **사용자가 몇 %인지 정하는 것**과, 붙을 밑수인 **주재료비가 일위대가에 서는 것** + (사급 자재 단가 — 확정 5차 큰 것 8). + +- [x] `[하루+]` **설계서 구성표를 세웠음 — 「못 내는 다섯」을 다시 가름** (2026-09-09 밤 · 커밋 `e38b8323`) + **화면** — 원가계산에 **「설계서 구성」 탭**. 법이 적은 차례 그대로 열셋을 놓고 줄마다 + **상태(있음·반쪽·없음) · 누가 만드나 · 어디서 나오나 · 못 내면 무엇이 필요한가**를 적음. + + **⚠ 다시 가른 결과 — 「우리가 못 내는 다섯」이 아니라 「우리가 더 낼 것 셋」이었음** + ``` + 있음 7 예산내역서 · 일위대가표 · 단가산출서(B09) · 수량계산서 · 자재총괄표 · 토적표(B08) · 목차(이 표) + 남 몫 3 일반시방서 · 특별시방서 · 예정공정표 ← 설계자·발주청이 쓰는 문서 + 우리 3 공사설명서(없음) · 각종 중기경비계산서(반쪽) · 산출기초(반쪽) + ``` + · **법이 목차를 정했다고 열셋을 다 프로그램이 만들 것은 아님** — 시방서 둘은 표준시방서를 + 인용하고 현장 특기사항을 적는 문서이고, 예정공정표는 공기를 공종에 나누는 **설계 판단**임. + 우리는 공사기간(일)만 받아 요율 구간에 쓰고, 그것으로 공정표를 지어내지 않음. + · **공사설명서는 값이 거의 다 있음** — 공사명·총공사비·유효폭·노견·설계속도·종단구배· + 최소곡선반경. **받아야 할 것은 서식과 설계하중 표기**(실무 거창은 「DB-18(32.45T)」). + · ✅ **중기경비계산서 — 세웠음**(2026-09-09 밤 · 커밋 `23f9656e` · `3934bd8d`). + 원가계산 → **중기** 탭의 목록표 아래에 **기종마다 한 장**. 취득가·내용시간·손료계수 + (상각 750 + 정비 583 + 관리 478 = 1,811 처럼 원문 10⁻⁷ 그대로) → 시간당 손료 · + 주연료와 유가 · 조종원 일당과 시간당 환산 · 시간당 사용료 3분할을 차례로 보임. + **내역에 선 기종 17 장**만 냄(카탈로그 613 을 다 뿌리지 않음). + ⚠ **부착 장비는 손료만 드는 것이 정상**이라 결함으로 안 셈(제 엔진이 없어 연료·조종원이 + 본체에 듦 — 건설품셈 제8장 [주]⑤). + ⚠ **같은 기종이 두 장일 수 있음** — 조합 사용이면 잡재료가 16% 로 줄어 재료비가 달라짐 + (굴착기 0.7 재료비 26,130 → 24,845). 갈래를 적어 두 장임을 밝힘. + ⚠ **수송비는 이 장에 안 붙임** — 「회당」으로 서는 별개 공종이라 자리만 가리킴. + · 계산서 합계가 **일위대가가 실제로 쓰는 값과 같은지** 시험으로 못 박음(두 벌 방지). + ⇒ **「설계서 구성」이 반쪽 → 있음**으로 바뀌어 **법이 정한 13 중 8 이 섬** + (우리가 더 낼 것 **둘** — 공사설명서 · 산출기초). + · **산출기초도 반쪽** — 근거 문구는 줄마다 있으나 **한 장으로 묶는 자리**가 없음. + ⚠ **사방사업은 목록이 다름** — 사방사업법 [별표0] 은 **위치도·관계지적조서·공사원가계산서· + 설계도면**을 더 두고 「예산내역서」 대신 「설계내역서」라 적음. 이 표는 임도(별표2) 기준임. + **자체검증** — 화면 실측으로 열셋이 차례대로 뜨는 것과 요약 한 줄을 확인. 시험 6개 신설, + 전체 **1258 통과 · 실패 0**. + + +- [x] ~~`[하루+]` **⚠⚠ 설계서 목차가 법에 통째로 박혀 있었음 — 우리가 못 내는 것 다섯**~~ `[옛 기록]` (2026-09-08 별표2 원문) + **별표2 (5)(가)** — 「설계서는 **목차·공사설명서·일반시방서·특별시방서·예정공정표·예산내역서· + 일위대가표·단가산출서·각종중기경비계산서·공종별 수량계산서·각종 소요자재총괄표·토적표· + 산출기초** 순으로 작성한다」 + + +- [x] `[반나절]` **제비율 데이터에 밑수·처리 규칙까지 실었음** (2026-09-09 밤, 데스크탑 메인) + **자체검증** — 금액은 한 원도 안 움직임(계산은 그대로, 데이터가 그 계산을 적게 됐을 뿐). + · 빠져 있던 밑수 한 칸(건설기계대여대금 지급보증수수료 = 직접공사비)을 채움. + 이제 **밑수 칸이 빈 요율이 없음**(시험이 그것을 셈). + · `processing_rules` 로 실은 것 — 자르는 법(줄 원 단위 버림 · 관급자재대만 천원 올림) · + 안전관리비 A·B 두 식과 **1.2**(B 배수)·**1.1**(관급 부가세 제수) · **조달수수료 차감 없음** · + 이윤 밑수(순공사원가+일반관리비−재료비) · 규모 구간 판정(추정가격, 없으면 반복 수렴). + · **거울 시험 6개**(`test_b09_rate_rules_mirror.py`) — 데이터가 적은 밑수로 실제 금액이 서는지 + 비목마다 맞대 보고, 두 수(1.2·1.1)와 자르는 법도 코드와 대조함. **한쪽만 바뀌면 멈춤.** + · 전체 **1208 통과 · 실패 0** (랩탑 병합 뒤 한 번 더 돌려 같음). + ⓘ **계산을 데이터로 옮긴 것이 아님** — 계산은 코드에 그대로 두고, 데이터가 **그 규칙을 적어 + 두게** 했음. 옮기려면 엔진을 다시 짜야 하고 그 자리에서 금액이 흔들림. + +## 곁딸린 고아 근거 두 덩어리 (항목이 이미 닫혀 자리를 잃은 것) + +``` +마스터 공종 477 · 표 있는 것 364 · 밑수 단위가 선 것 167 ← 나머지 None +우리가 쓰는 공종 28 중 마스터가 아는 것 18 · 매핑이 채운 것 1 · ⚠ 모르는 것 9 + FP-05-24 씨앗뿜어붙이기 · FP-09-03-02 기계(흙깎기) · FP-09-04 암절취 · FP-09-05 발파암 + FP-09-16 노체 · FP-09-17-01 비탈면 다짐 · FP-10-11 불도저 운반 · FP-10-12 덤프 운반 + FP-12-06 콘크리트 포장(인력시공) +``` + + ⚠ **특히 운반 둘과 암절취·발파암** — 금액이 큰 자리임. + ✅ **통로는 냈음** — 매핑에 원문 밑수를 적을 수 있게 함(`basis_unit` + `basis_source` = + **어느 원문 줄에서 읽었는지**). **원문 줄만 오면 그날 붙음.** + ✅ **일곱이 원문 줄과 함께 확정됨**(2026-09-08 B09) — 기계(흙깎기) `㎥` L4704 · + **암절취 `㎥` L4725·L4738** · **발파암 `㎥` L4744·L4777** · 노체 `㎥` L5322·L5336·L5363 · + 비탈면 다짐 `㎡` L5368(**성토면다짐이 ㎡ 인 근거**) · **불도저 운반 `㎥` L5919** · + **덤프 운반 `㎥` L5928·L5971·L5985`**. **⇒ 걱정하던 넷(운반 둘·암절취·발파암)이 전부 `㎥` 로 확정.** + 남은 둘 — 씨앗뿜어붙이기(원문에 단위 표기 자체가 없음) · 콘크리트 포장 + (「(단위: 일당)」 = **품의 단위라 거절**). + ⚠ **넓히다 규칙이 한 번 샜음** — 상위 절이 하위만 단위를 적는 경우를 채우게 넓혔더니 + **「13. 돌공사」가 ton 으로** 나왔음(하위 열여섯 중 하나가 장 전체를 대표). 좁힌 규칙 — + ㉠ 장 자체엔 안 줌 ㉡ **말한 하위가 둘 이상**이고 ㉢ 값이 하나로 모일 때만. 짝 시험 있음. + **단위 빈 일위대가 73 → 61.** + +``` +있음 예산내역서·일위대가표·단가산출서(B09) · 수량계산서·자재총괄표·토적표(B08) +없음 목차·공사설명서·일반시방서·특별시방서·예정공정표 ← 문서류(만들지부터 결정) +없음 ⚠ 각종중기경비계산서 ← 문서가 아니라 **산출물** +반쪽 산출기초 — 근거 문구는 있으나 별도 장이 없음 +``` + + ⇒ **「무엇을 내야 하나」가 법에 목록으로 있음.** 앞서 B09 가 찾은 **중기경비계산서**가 + 그 목록 안에 있는 것이 확인됨. + +