feat(M01): PLAN 7-5 — 안 쓰는 마스터 old/ 로 마저 옮기고 죽은 코드 셋 끊음

- 아무도 안 읽는 최상위·ref 파일 7개를 old/ 로(지우지 않음) — _원문목록·_열목록_화면표·
  수량_돌쌓기찰라이브러리_소광리·공종_수량연결_실무·수량_구조물원단위_울진·
  품셈_산림_재료할증_울진·품셈_산림_돌종류계수_울진(뒤 넷은 old_code 만 읽어 이제 0)
- 공종_자원별칭_실무도 old/ 로 — common_util_aliases.py 를 읽던 시험 둘이 이미 깨져 있어(
  B08·B09 모듈 없음) 실제로 부르는 살아 있는 코드가 없었음
- 살아 있는 common_util/ 에서 dead 모듈 셋(work_item_key·work_item_link·aliases)을
  old_code/common_util/ 로 옮김 — old_code 만 부르던 것이라 옮겨도 부르는 자리 그대로(
  old_code 는 old_code 를 스스로 루트로 읽는 관례) · 상대경로 계산만 한 단 보정
- 깨져 있던 시험 둘(test_b09_fuel_kind_vibrator·test_b08_root_removal_excavator)도
  resources/tester/ 에서 old_code/resources/tester/ 로 — 7-3 이 놓친 것 마저 정리
- UnitPrice.py 의 load_basis_missing() — old/ 스냅샷 대신 새 최상위 마스터
  `기준수량없음_산림품셈_2026-01-01.json` 으로(브레인 판정: 마스터 쪽) · old_code 로
  옮겨진 뒤 root 계산이 한 단 부족해 조용히 빈 딕셔너리를 돌려주던 것도 같이 바로잡음
  (79건 견본 대조 통과) · check_master.py 틀 검사에 특수 파일 면제 한 줄 추가
- 검증 — typecheck · check_master 틀 0건 · M01·자재품목 시험 215 + masterdata·m01_api 98 통과 ·
  전체 모으기 1475 그대로

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
2026-09-22 14:35:46 +09:00
co-authored by Claude Sonnet 5
parent 04784a808a
commit e937978116
16 changed files with 15 additions and 7 deletions
@@ -1,45 +0,0 @@
기계 · 전체,키,원문번호,세부분류,이름,규격,단위,단위›가격,단위›내용시간,단위›연간표준가동시간,단위›상각비율,단위›정비비율,단위›연간관리비율,단위›상각비계수,단위›정비비계수,단위›관리비계수,단위›손료계수,단위›주연료,단위›주연료종류,단위›잡재료율,단위›조종원,단위›조종원직종,값,값›가격,값›내용시간,값›연간표준가동시간,값›상각비율,값›정비비율,값›연간관리비율,값›상각비계수,값›정비비계수,값›관리비계수,값›손료계수,값›주연료,값›주연료종류,값›잡재료율,값›조종원,값›조종원직종,출처,출처›가격,출처›내용시간,출처›연간표준가동시간,출처›상각비율,출처›정비비율,출처›연간관리비율,출처›상각비계수,출처›정비비계수,출처›관리비계수,출처›손료계수,출처›주연료,출처›주연료종류,출처›잡재료율,출처›조종원,출처›조종원직종,비고,원문,원문›8-4-2 주연료,원문›8-4-4 주연료,단위›주연료2,단위›주연료2종류,값›주연료2,값›주연료2종류,출처›주연료2,출처›주연료2종류,원문›8-4-5 주연료,원문›8-4-6 주연료,원문›8-4-8 주연료,단위›준설선선장,단위›준설선기관사,단위›선원,값›준설선선장,값›준설선기관사,값›선원,출처›준설선선장,출처›준설선기관사,출처›선원,원문›8-3-10 내용시간,원문›8-4-9 잡재료,단위›고급선원,값›고급선원,출처›고급선원,단위›장비가격,값›장비가격,출처›장비가격,단위›취득가액,값›취득가액,출처›취득가액,단위›시간당손료계수,값›시간당손료계수,출처›시간당손료계수,
기계 · 세부분류=건설품셈,키,원문번호,세부분류,이름,규격,단위,단위›가격,단위›내용시간,단위›연간표준가동시간,단위›상각비율,단위›정비비율,단위›연간관리비율,단위›상각비계수,단위›정비비계수,단위›관리비계수,단위›손료계수,단위›주연료,단위›주연료종류,단위›잡재료율,단위›조종원,단위›조종원직종,값,값›가격,값›내용시간,값›연간표준가동시간,값›상각비율,값›정비비율,값›연간관리비율,값›상각비계수,값›정비비계수,값›관리비계수,값›손료계수,값›주연료,값›주연료종류,값›잡재료율,값›조종원,값›조종원직종,출처,출처›가격,출처›내용시간,출처›연간표준가동시간,출처›상각비율,출처›정비비율,출처›연간관리비율,출처›상각비계수,출처›정비비계수,출처›관리비계수,출처›손료계수,출처›주연료,출처›주연료종류,출처›잡재료율,출처›조종원,출처›조종원직종,비고,원문,원문›8-4-2 주연료,원문›8-4-4 주연료,단위›주연료2,단위›주연료2종류,값›주연료2,값›주연료2종류,출처›주연료2,출처›주연료2종류,원문›8-4-5 주연료,원문›8-4-6 주연료,원문›8-4-8 주연료,단위›준설선선장,단위›준설선기관사,단위›선원,값›준설선선장,값›준설선기관사,값›선원,출처›준설선선장,출처›준설선기관사,출처›선원,원문›8-3-10 내용시간,원문›8-4-9 잡재료,단위›고급선원,값›고급선원,출처›고급선원,,,,,,,,,,
기계 · 세부분류=산림품셈,키,원문번호,세부분류,이름,규격,단위,단위›손료계수,값,값›손료계수,출처,출처›손료계수,비고,단위›장비가격,값›장비가격,출처›장비가격,단위›취득가액,값›취득가액,출처›취득가액,단위›시간당손료계수,값›시간당손료계수,출처›시간당손료계수,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
요율_조달청제비율 · 전체,키,원문번호,이름,값,값›rate_percent,값›base,출처,값›brackets,값›annual_rates,값›rate_from_2033_percent,값›base_without_owner_supplied_material,값›base_with_owner_supplied_material,값›minimum_total_construction_amount_krw,값›manager_thresholds,값›base_rule,값›embedded_in,값›amount_bracket,값›minimum_estimated_amount_krw,값›forest_road_selection_status,값›forest_road_candidates,값›all_work_types,값›general_construction,값›specialty_construction,값›base_note,값›typical_forest_road_applicability,값›civil_landscape_industrial,값›specialty_electric_communication_fire_other,값›basis,값›specialty_note,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=건설업,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=제조업,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=엔지니어링,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=측량,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=건설사업관리,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=SW,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=산림,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
인력 · 조사=준용대상,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
재료_나라장터자재 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,분류코드,공시일시,공시번호,사업구분코드,사업구분,부가세,가격종류,인도조건,분야,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
재료_시중물가 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
재료_오피넷유가 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,비고,,상품코드,지역코드,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
환율_한국은행환율 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
계수_건설품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
계수_산림품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_건설품셈(파일 전체 합침) · 로직 머리,키,원문번호,이름,결과단위,출처,소유,입력,중간,호표,덧줄,끝수,비고,결과,결과›식,결과›출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_건설품셈(파일 전체 합침) · 입력 줄,이름,고르기,출처,비고,단위,범위,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_건설품셈(파일 전체 합침) · 중간 줄,이름,식,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_건설품셈(파일 전체 합침) · 호표 줄,종류,요소,이름,단위,수량,비목,비고,출처,규격,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_건설품셈(파일 전체 합침) · 덧줄 줄,이름,식,비목,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_산림품셈(파일 전체 합침) · 로직 머리,키,원문번호,이름,결과단위,출처,소유,입력,중간,호표,덧줄,끝수,비고,결과,결과›식,결과›출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_산림품셈(파일 전체 합침) · 입력 줄,이름,고르기,단위,출처,범위,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_산림품셈(파일 전체 합침) · 중간 줄,이름,식,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_산림품셈(파일 전체 합침) · 호표 줄,종류,요소,이름,단위,수량,비목,출처,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
로직_산림품셈(파일 전체 합침) · 덧줄 줄,이름,식,비목,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
소요량_건설품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,그룹,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
소요량_산림품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,그룹,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 건설업의 산정근거는 비고에 산정값은 값에 입력,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"* 조사는 구분으로 열제목 변경, 업종과 부문은 상세구분으로 편입",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"* 일하는 시간은 내용이 없는 경우 8시간으로 반영(별도로 언급이 없으면 8시간, 잠수부? 만 6시간)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 준용은 공통 항목 다시말해 변경할 수도 있음.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"* 시중물가의 시중값과 조달값은 필요없음, 나중에 프로젝트 내부에 내역세작성시 필요한 내용, ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 품셈재료 품목은 품셈원문에서 사용한 품목가이드 이고 시중물가와 나라장터자재에 있어야하는 정보를 사용하여 계산되어야함. 테이블은 삭제 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 오피넷 유가에는 구분과 상세구분은 지역으로 사용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 오피넷 유가의 상품코드와 지역코드는 어디에 사용되는지 확인. 필요없으면 삭제하는게.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 오피넛 유가의 기준일은 규격 열을 사용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* 환율의 기준일은 규격 열을 사용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1 기계 · 전체 키 원문번호 세부분류 이름 규격 단위 단위›가격 단위›내용시간 단위›연간표준가동시간 단위›상각비율 단위›정비비율 단위›연간관리비율 단위›상각비계수 단위›정비비계수 단위›관리비계수 단위›손료계수 단위›주연료 단위›주연료종류 단위›잡재료율 단위›조종원 단위›조종원직종 값 값›가격 값›내용시간 값›연간표준가동시간 값›상각비율 값›정비비율 값›연간관리비율 값›상각비계수 값›정비비계수 값›관리비계수 값›손료계수 값›주연료 값›주연료종류 값›잡재료율 값›조종원 값›조종원직종 출처 출처›가격 출처›내용시간 출처›연간표준가동시간 출처›상각비율 출처›정비비율 출처›연간관리비율 출처›상각비계수 출처›정비비계수 출처›관리비계수 출처›손료계수 출처›주연료 출처›주연료종류 출처›잡재료율 출처›조종원 출처›조종원직종 비고 원문 원문›8-4-2 주연료 원문›8-4-4 주연료 단위›주연료2 단위›주연료2종류 값›주연료2 값›주연료2종류 출처›주연료2 출처›주연료2종류 원문›8-4-5 주연료 원문›8-4-6 주연료 원문›8-4-8 주연료 단위›준설선선장 단위›준설선기관사 단위›선원 값›준설선선장 값›준설선기관사 값›선원 출처›준설선선장 출처›준설선기관사 출처›선원 원문›8-3-10 내용시간 원문›8-4-9 잡재료 단위›고급선원 값›고급선원 출처›고급선원 단위›장비가격 값›장비가격 출처›장비가격 단위›취득가액 값›취득가액 출처›취득가액 단위›시간당손료계수 값›시간당손료계수 출처›시간당손료계수
2 기계 · 세부분류=건설품셈 키 원문번호 세부분류 이름 규격 단위 단위›가격 단위›내용시간 단위›연간표준가동시간 단위›상각비율 단위›정비비율 단위›연간관리비율 단위›상각비계수 단위›정비비계수 단위›관리비계수 단위›손료계수 단위›주연료 단위›주연료종류 단위›잡재료율 단위›조종원 단위›조종원직종 값 값›가격 값›내용시간 값›연간표준가동시간 값›상각비율 값›정비비율 값›연간관리비율 값›상각비계수 값›정비비계수 값›관리비계수 값›손료계수 값›주연료 값›주연료종류 값›잡재료율 값›조종원 값›조종원직종 출처 출처›가격 출처›내용시간 출처›연간표준가동시간 출처›상각비율 출처›정비비율 출처›연간관리비율 출처›상각비계수 출처›정비비계수 출처›관리비계수 출처›손료계수 출처›주연료 출처›주연료종류 출처›잡재료율 출처›조종원 출처›조종원직종 비고 원문 원문›8-4-2 주연료 원문›8-4-4 주연료 단위›주연료2 단위›주연료2종류 값›주연료2 값›주연료2종류 출처›주연료2 출처›주연료2종류 원문›8-4-5 주연료 원문›8-4-6 주연료 원문›8-4-8 주연료 단위›준설선선장 단위›준설선기관사 단위›선원 값›준설선선장 값›준설선기관사 값›선원 출처›준설선선장 출처›준설선기관사 출처›선원 원문›8-3-10 내용시간 원문›8-4-9 잡재료 단위›고급선원 값›고급선원 출처›고급선원
3 기계 · 세부분류=산림품셈 키 원문번호 세부분류 이름 규격 단위 단위›손료계수 값 값›손료계수 출처 출처›손료계수 비고 단위›장비가격 값›장비가격 출처›장비가격 단위›취득가액 값›취득가액 출처›취득가액 단위›시간당손료계수 값›시간당손료계수 출처›시간당손료계수
4 요율_조달청제비율 · 전체 키 원문번호 이름 값 값›rate_percent 값›base 출처 값›brackets 값›annual_rates 값›rate_from_2033_percent 값›base_without_owner_supplied_material 값›base_with_owner_supplied_material 값›minimum_total_construction_amount_krw 값›manager_thresholds 값›base_rule 값›embedded_in 값›amount_bracket 값›minimum_estimated_amount_krw 값›forest_road_selection_status 값›forest_road_candidates 값›all_work_types 값›general_construction 값›specialty_construction 값›base_note 값›typical_forest_road_applicability 값›civil_landscape_industrial 값›specialty_electric_communication_fire_other 값›basis 값›specialty_note
5 인력 · 전체 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
6 인력 · 조사=건설업 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
7 인력 · 조사=제조업 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
8 인력 · 조사=엔지니어링 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
9 인력 · 조사=측량 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
10 인력 · 조사=건설사업관리 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
11 인력 · 조사=SW 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
12 인력 · 조사=산림 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
13 인력 · 조사=준용대상 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 일시간 상태 옛이름 비고 준용
14 재료_나라장터자재 · 전체 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 분류코드 공시일시 공시번호 사업구분코드 사업구분 부가세 가격종류 인도조건 분야 비고
15 재료_시중물가 · 전체 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 비고
16 재료_오피넷유가 · 전체 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 비고 상품코드 지역코드
17
18 환율_한국은행환율 · 전체 키 원문번호 구분 상세구분 이름 규격 단위 값 출처 비고
19 계수_건설품셈(파일 전체 합침) · 표 머리 키 원문번호 구분 상세구분 이름 기준 출처 조건 값칸 줄 주 범위규칙
20 계수_산림품셈(파일 전체 합침) · 표 머리 키 원문번호 구분 상세구분 이름 기준 출처 조건 값칸 줄 주 범위규칙
21 로직_건설품셈(파일 전체 합침) · 로직 머리 키 원문번호 이름 결과단위 출처 소유 입력 중간 호표 덧줄 끝수 비고 결과 결과›식 결과›출처
22 로직_건설품셈(파일 전체 합침) · 입력 줄 이름 고르기 출처 비고 단위 범위
23 로직_건설품셈(파일 전체 합침) · 중간 줄 이름 식 출처
24 로직_건설품셈(파일 전체 합침) · 호표 줄 종류 요소 이름 단위 수량 비목 비고 출처 규격
25 로직_건설품셈(파일 전체 합침) · 덧줄 줄 이름 식 비목 출처
26 로직_산림품셈(파일 전체 합침) · 로직 머리 키 원문번호 이름 결과단위 출처 소유 입력 중간 호표 덧줄 끝수 비고 결과 결과›식 결과›출처
27 로직_산림품셈(파일 전체 합침) · 입력 줄 이름 고르기 단위 출처 범위 비고
28 로직_산림품셈(파일 전체 합침) · 중간 줄 이름 식 출처
29 로직_산림품셈(파일 전체 합침) · 호표 줄 종류 요소 이름 단위 수량 비목 출처 비고
30 로직_산림품셈(파일 전체 합침) · 덧줄 줄 이름 식 비목 출처
31 소요량_건설품셈(파일 전체 합침) · 표 머리 키 원문번호 구분 상세구분 이름 기준 출처 조건 값칸 줄 주 그룹 범위규칙
32 소요량_산림품셈(파일 전체 합침) · 표 머리 키 원문번호 구분 상세구분 이름 기준 출처 조건 값칸 줄 주 그룹 범위규칙
33
34 * 건설업의 산정근거는 비고에 산정값은 값에 입력
35 * 조사는 구분으로 열제목 변경, 업종과 부문은 상세구분으로 편입
36 * 일하는 시간은 내용이 없는 경우 8시간으로 반영(별도로 언급이 없으면 8시간, 잠수부? 만 6시간)
37 * 준용은 공통 항목 다시말해 변경할 수도 있음.
38
39 * 시중물가의 시중값과 조달값은 필요없음, 나중에 프로젝트 내부에 내역세작성시 필요한 내용,
40 * 품셈재료 품목은 품셈원문에서 사용한 품목가이드 이고 시중물가와 나라장터자재에 있어야하는 정보를 사용하여 계산되어야함. 테이블은 삭제
41
42 * 오피넷 유가에는 구분과 상세구분은 지역으로 사용
43 * 오피넷 유가의 상품코드와 지역코드는 어디에 사용되는지 확인. 필요없으면 삭제하는게.
44 * 오피넛 유가의 기준일은 규격 열을 사용
45 * 환율의 기준일은 규격 열을 사용
@@ -1,691 +0,0 @@
{
"schema_version": "1.0",
"dataset_id": "work_item_mapping",
"effective_date": "2026-01-01",
"note": "B08 이 낸 수량 줄을 공종 마스터 코드(FP-…)에 잇는 다리. 발주처 골격이 바뀌어도 코드를 안 고치게 데이터로 둔다.",
"master": {
"dataset_id": "work_item_master",
"effective_date": "2026-01-01"
},
"policy": {
"no_invented_codes": true,
"unmatched_is_listed": true,
"note": "못 이은 줄은 빈 코드로 두지 않고 unmatched_work_items 로 낸다. 빈칸이면 없어진 것과 구별이 안 된다."
},
"earthwork": [
{
"group": "흙깎기",
"ground": "토사",
"work_item_code": "FP-09-03-02",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L4704 「Q=3600×q×k×f×E/㎝= ㎥/hr」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "토사깍기 > 기계",
"note": "인력 시공이면 FP-09-03-01"
},
{
"group": "흙깎기",
"ground": "리핑암",
"work_item_code": "FP-09-04",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L4725·L4738 「Q(시간당 작업량 ㎥/hr)」·「Q=…= ㎥/시간」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "암절취",
"variant_axis": "ground_class",
"variant_from": "ground_class",
"variant_note": "2026-09-13 축 C Ⓐ — 단계 합산형 부모(9-4·9-5). 암파쇄·깎기 표가 연암·보통암·경암마다 작업능력을 줘 암 갈래 이름을 갈래 값으로 넘김(표에 없는 이름의 처리는 B09 몫)."
},
{
"group": "흙깎기",
"ground": "발파암",
"work_item_code": "FP-09-05",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L4744 「(단위: ㎥당)」 · L4777 「Q=…= ㎥/시간」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "발파암",
"variant_axis": "ground_class",
"variant_from": "ground_class",
"variant_note": "2026-09-13 축 C Ⓐ — 단계 합산형 부모(9-4·9-5). 암파쇄·깎기 표가 연암·보통암·경암마다 작업능력을 줘 암 갈래 이름을 갈래 값으로 넘김(표에 없는 이름의 처리는 B09 몫)."
},
{
"group": "측구터파기",
"ground": "토사",
"work_item_code": "FP-09-12-01",
"master_name": "측구터파기 > 토사"
},
{
"group": "측구터파기",
"ground": "리핑암",
"work_item_code": "FP-09-12-02",
"master_name": "측구터파기 > 암절취"
},
{
"group": "측구터파기",
"ground": "발파암",
"work_item_code": "FP-09-12-03",
"master_name": "측구터파기 > 발파암"
},
{
"group": "성토",
"work_item_code": "FP-09-16-01",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L5322·L5336·L5363 세 하위 모두 「= ㎥/시간」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "노체 > 노체포설",
"note": "실무 내역 셋을 다 봤더니 「노체포설·노체다짐」으로 가른 줄이 **어디에도 없다**(2026-09-08 데스크탑 보조). 영월은 「암성토 BACK-HOE(0.7㎥)」 한 줄이고 그 단가산출 안에 적사→성토→다짐 3단계가 들어가며, 울진은 「유용성토」·「사토 및 다짐공」, 봉화는 성토사면다짐만 따로다. ⇒ **성토 본체 한 줄(포설) + 성토면다짐(㎡) 따로**가 실무 양식이라 부모(FP-09-16)에서 자식 포설로 내렸다. 다짐은 그 단가 안 단계로 둔다."
},
{
"group": "노체다짐",
"work_item_code": "FP-09-16-02",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L5336 「Q=1000×V×W×E×D×f/N= ㎥/시간」 — 포설(9-16-1)과 같은 체적 축이라 성토량을 그대로 밑수로 씀.",
"master_name": "노체 > 노체다짐",
"note": "2026-09-13 브레인 판정 — 별도 줄 · 산출 조건 칸으로 켜고 끔 · 기본 꺼짐([주]⑤ 「대규모 성토지로서 층다짐이 필요한 경우」 조건부). [주]③ 「굴착기와 진동롤러 조합」은 작업 방식 설명 — 굴착기는 포설(9-16-1) 줄, 롤러는 이 줄(B09 B-FP-09-16-02 롤러만). 갈래 없음(2026-09-14 「#조합」 철회 — X-<기계>#조합 잡재료 16% 층과 다른 뜻)."
},
{
"group": "성토면다짐",
"work_item_code": "FP-09-17-01",
"basis_unit": "㎡",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L5368 「9-17-1. 비탈면 다짐 : A = 77.7 ㎡/시간」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "다짐 > 비탈면 다짐"
},
{
"group": "층따기",
"work_item_code": "FP-09-18",
"master_name": "층따기",
"basis_unit": "㎥",
"basis_source": "품셈 9-18 [주] 「Q1 = 3600×q×K×f×E/㎝ = ㎥/시간」 — 공식이 체적 기준이다. ⭐ 2026-09-09 사용자 확정 2차 ① 로 **면적(㎡)을 정본으로 두고 사용자가 넣은 길이를 곱해 ㎥ 를 낸다** — 그러면 품셈 ㎥ 단가를 그대로 쓸 수 있다(단위 불일치가 풀림).",
"mismatch_reason": "층따기 길이(깊이)가 아직 입력되지 않았습니다 — 산출 조건에서 넣으면 면적 × 길이로 물량이 섭니다(면적은 이미 섰습니다).",
"mismatch_kind": "input_missing"
},
{
"group": "면고르기",
"work_item_code": "FP-09-19-01",
"master_name": "면고르기 > 토사면 고르기",
"variant_axis": "face_dressing_fill_class",
"variant_from": "face_dressing_fill_class",
"variant_missing_reason": "면고르기 성토면 시공·토질이 아직 입력되지 않았습니다 — 산출 조건에서 고르면 단가가 섭니다(품셈 9-19-1 성토면: 인력 점토·모래 2갈래 · 기계 1갈래)",
"note": "성토면 줄(지반 없음) — 2026-09-14 브레인 판정: 밑수 = 초류종자살포 면적(Ⓐ) · 시공·토질은 산출 조건 칸 · 제안값 없음(Ⓒ)."
},
{
"group": "면고르기",
"ground": "토사",
"work_item_code": "FP-09-19-01",
"master_name": "면고르기 > 토사면 고르기",
"variant_axis": "face_dressing_cut_class",
"variant_from": "face_dressing_cut_class",
"variant_missing_reason": "면고르기 절토면 토질이 아직 입력되지 않았습니다 — 산출 조건에서 고르면 단가가 섭니다(품셈 9-19-1 절토면 토질 6갈래)",
"note": "절토면 토사 몫 — 사면 조각의 토사/암으로 가름, 암 몫은 흙깎기와 같은 시공법으로 9-19-2·3(2026-09-14 판정 Ⓑ)."
},
{
"group": "면고르기",
"ground": "리핑암",
"work_item_code": "FP-09-19-02",
"master_name": "면고르기 > 비탈면 면고르기(암절취)"
},
{
"group": "면고르기",
"ground": "발파암",
"work_item_code": "FP-09-19-03",
"master_name": "면고르기 > 비탈면 면고르기(발파암)"
},
{
"group": "초류종자살포",
"work_item_code": "FP-05-24",
"master_name": "씨앗뿜어붙이기",
"basis_unit": "㎡",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L2769·L2794 — 5-24-1·5-24-2 절 머리 바로 아래 「(㎡당)」. ⚠ 「단위:」 글자 없이 **괄호만** 적힌 모양이라 마스터가 못 읽은 자리(2026-09-08 원문 대조).",
"leaf_from": "seed_spray_ground",
"leaf_codes": {"일반": "FP-05-24-01", "마사토": "FP-05-24-02"},
"variant_missing_reason": "초류종자살포 비탈면 토질(일반·마사토)이 아직 입력되지 않았습니다 — 산출 조건에서 고르면 단가가 섭니다(품셈 5-24 씨앗뿜어붙이기: 5-24-1 기계/일반 · 5-24-2 기계/마사토)",
"leaf_note": "2026-09-14 브레인 ㉮ — 매핑이 부모(갈래 고르기형)라 B09 가 「잎 미선택」으로 막는데 고를 칸이 없었음 · 산출 조건 칸이 잎 코드를 고름 · 제안값 없음."
},
{
"group": "되메우기",
"work_item_code": "FP-09-14-01",
"master_name": "되메우기 및 다짐 > 되메우기"
},
{
"group": "구조물터파기",
"work_item_code": "FP-09-13",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 9-13 구조물터파기 — 원문 L5022~5241.",
"master_name": "구조물터파기",
"note": "⚠ 상위 코드다. 품은 18구분(토질 3 × 육상/용수 × 심도 3) 하위에만 있어 그대로는 금액이 안 선다 — 토질·용수 칸이 생기면 FP-09-13-01~18 중 하나로 내려간다. 심도는 구조물 제원(직고 + 기초 깊이)에서 이미 갈라 둔다."
},
{
"group": "기초잡석",
"work_item_code": "FP-12-25",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 12-25 기초잡석 「(단위: ㎥당)」.",
"master_name": "기초잡석",
"note": "품셈은 운반·부설·다짐 품만 주고 **두께·폭을 정하지 않는다.** 폭은 버림 폭과 같고(KCS 34 50 05) 두께는 사용자 확정 3차 ②(0.2m)다 — 화면에서 바꿀 수 있다."
},
{
"group": "지장목제거",
"item": "잡관목제거",
"work_item_code": "FP-04-02-02",
"master_name": "단목베기 > 1,000㎡당",
"basis_unit": "㎡",
"basis_source": "산림사업 표준품셈(고시 2025-82) 4-2-2 절 이름 「1,000㎡당」 — ⚠ 표 안·절 머리에 「(단위: …)」가 없어 마스터 밑수가 비어 있음(basis_missing F0087). B09 가 밑수 미확보로 막으므로 1,000배 틀린 금액은 안 섬.",
"variant_axis": "tree_height",
"variant_value": "5m 미만",
"note": "지장목제거 = 벌목(4장) + 제근(9-20~21) 단계 합산(2026-09-13 브레인 판정 · 원가_출력변수_사전.md:55). 실무 영월 1.9.2 「잡관목제거 벌목(5m미만)」이 단목베기 1,000㎡당 5m 미만 갈래와 같은 이름·같은 단위(㎡)."
},
{
"group": "지장목제거",
"item": "뿌리뽑기",
"work_item_code": "FP-09-21",
"master_name": "토공 > 제근",
"basis_unit": "㎡",
"basis_source": "⚠ 교차 참조 — 산림품셈 9-21 표에 밑수 표기가 없어 건설공사 표준품셈 3-9-2 뿌리뽑기 「1,000㎡당」 면적 축을 빌려 씀(사용자 확정 5차 6번). 마스터 밑수는 비어 있음(basis_missing F0294).",
"variant_axis": "stand_volume_class",
"variant_from": "stand_volume_class",
"variant_template": "{root_removal_excavator_m3}·{stand_volume_class}",
"variant_missing_reason": "제근 굴착기 크기·임목축적 등급이 아직 다 입력되지 않았습니다 — 산출 조건에서 고르면 단가가 섭니다(품셈 9-21: 굴착기 0.2·0.7 × 소림·중림·밀림 · 크기 제안 0.7㎥ 산림품셈 10-12-1 [주]①)",
"variant_note": "2026-09-14 브레인 판정 — 크기·등급 두 칸을 템플릿으로 한 값(「0.7·소림」)으로 엮고 B09 갈래 표기는 범위 별칭(FP-09-21)이 앎. 둘 중 하나라도 비면 등급만 싣고 입력 사유.",
"note": "2026-09-13 브레인 판정 Ⓑ — 제근은 토공 줄(토공_수량.md:30 「뿌리다듬기·적재·제근 | 9-20~21 | 벌개제근 연동」)이라 여기서 셈. 준비공 「제근·뿌리다듬기」는 같은 면적이라 참조로만 보임(이중계상 막이). 품은 임목축적 등급(소림·중림·밀림, 9-21 [주]①)으로 갈려 등급을 갈래로 넘김."
},
{
"group": "혼합석부설",
"work_item_code": "FP-11-04",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 11-4 쇄석·혼합석 부설 「(단위: ㎥당)」 · [주]① Q=3600×q×k×f×E/㎝ (f=1 — 버킷이 다루는 흐트러진 부피).",
"master_name": "쇄석·혼합석 부설",
"note": "2026-09-15 브레인 포장 둘 ⓑ — 법령 별표2 Ⅰ.2.바.(2) 조건으로 자동 · 「비포장 전 구간」 고르개(교본 3-2). 수량 = 다짐 후 부피 ÷ C × L(흐트러진 부피). 다짐 공종은 산림품셈에 없어 줄 없음."
},
{
"group": "혼합석 사전터파기",
"work_item_code": "FP-09-03-02",
"basis_unit": "㎥",
"master_name": "토사깍기 > 기계",
"note": "2026-09-15 — 교본 10-1 「포설 전 10㎝ 터파기」 · 부록 7-2 「노면의 토사구간」이라 토사 측점만 · 브레인 ① 토공 축. 산림품셈에 노면 사전 터파기 공종 없음 — 9-3-2 토사깍기(기계)로 이음(같은 일에 맞는 공종을 고름 · 2026-09-15 브레인 ② 승인)."
}
],
"haul": [
{
"equipment": "dozer",
"work_item_code": "FP-10-11",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L5919 「Q=60×q×f×E/㎝=㎥/시간」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "불도저 운반"
},
{
"equipment": "dump_truck",
"payload_density_note": "⚠ 적재 재료의 **단위중량 γt 가 원문에 있다** — L5930 [주]② 「적재 재료의 단위중량은 **토사 1.9ton/㎥, 암절취 및 발파암은 2.4ton/㎥** 적용한다」. 앞서 「현장값이라 미확보」로 두었던 자리가 원문으로 풀렸다(2026-09-08). ⚠ **갈래별로 값이 다르므로** `ground_class` 를 함께 봐야 한다. 남은 것은 운반거리 L(설계에서 옴)과 덤프 적재용량 T 둘뿐이다.",
"work_item_code": "FP-10-12",
"basis_unit": "㎥",
"basis_source": "산림사업 표준품셈(고시 2025-82) 원문 L5928·L5971·L5985 세 하위 모두 「Q1=…= ㎥/시간」 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리(2026-09-08 원문 대조).",
"master_name": "덤프 운반"
},
{
"equipment": "free_haul",
"work_item_code": null,
"in_bill": false,
"reason": "무대(소운반 20m 이내)는 품에 포함 — 내역 줄이 아니다(품셈 1-2-7, ㉡)"
}
],
"structure": [
{
"type_id": "masonry_wet",
"secondary_axes": [
"stone_kind"
],
"secondary_axes_note": "⚠ 돌 종류는 **갈래 축이 하나 더**인 자리다. 품셈 13-4-2·13-4-5 [주]② 가 「본 품은 **깬돌 및 깬 잡석**의 돌쌓기 기준」이라 못 박고, 돌 종류로 갈리는 표는 **13-5 돌붙임**에 따로 있다(뒷길이 7 × 돌종류 6). 어느 쪽 공종으로 볼지는 **사용자 확정 대기** — 여기서 공종을 바꾸지 않고 **저장 원본값만 실어 보낸다**(2026-09-08 계약과 같은 방식).",
"billing_component": "돌쌓기",
"billing_note": "⚠ 품셈 밑수가 「㎡당」이라 **연장(m)으로 세면 안 된다** — 받는 쪽이 ㎡ 단가를 m 수량에 곱해 금액이 2.6배로 섰다(2026-09-08 실증: 10m × 52,938.9 = 529,389원 / 26.101㎡ × 52,938.9 = 1,381,753원). 내역 줄 수량은 이 성분(비탈면적)으로 센다. 고임돌·야면석·막자갈은 **자재 축**으로 따로 가므로 여기서 빠지지 않는다.",
"work_item_code": "FP-13-04-05",
"master_name": "돌쌓기 > 찰쌓기(장비)",
"note": "인력 시공이면 FP-13-04-04",
"class_note": "⚠ 갈래 키 문자열을 여기서 만들지 않는다 — `variant_axis`+`variant_value`(저장 원본값)만 보내고 「…㎝ 이하」 구간 나누기는 **품셈 원문을 읽는 쪽**이 한다(2026-09-07 계약).",
"variant_axis": "back_len_cm"
},
{
"type_id": "masonry_dry",
"secondary_axes": [
"stone_kind"
],
"secondary_axes_note": "⚠ 돌 종류는 **갈래 축이 하나 더**인 자리다. 품셈 13-4-2·13-4-5 [주]② 가 「본 품은 **깬돌 및 깬 잡석**의 돌쌓기 기준」이라 못 박고, 돌 종류로 갈리는 표는 **13-5 돌붙임**에 따로 있다(뒷길이 7 × 돌종류 6). 어느 쪽 공종으로 볼지는 **사용자 확정 대기** — 여기서 공종을 바꾸지 않고 **저장 원본값만 실어 보낸다**(2026-09-08 계약과 같은 방식).",
"billing_component": "돌쌓기",
"billing_note": "⚠ 품셈 밑수가 「㎡당」이라 **연장(m)으로 세면 안 된다** — 받는 쪽이 ㎡ 단가를 m 수량에 곱해 금액이 2.6배로 섰다(2026-09-08 실증: 10m × 52,938.9 = 529,389원 / 26.101㎡ × 52,938.9 = 1,381,753원). 내역 줄 수량은 이 성분(비탈면적)으로 센다. 고임돌·야면석·막자갈은 **자재 축**으로 따로 가므로 여기서 빠지지 않는다.",
"work_item_code": "FP-13-04-02",
"master_name": "돌쌓기 > 메쌓기(장비)",
"note": "인력 시공이면 FP-13-04-01",
"class_note": "⚠ 갈래 키 문자열을 여기서 만들지 않는다 — `variant_axis`+`variant_value`(저장 원본값)만 보내고 「…㎝ 이하」 구간 나누기는 **품셈 원문을 읽는 쪽**이 한다(2026-09-07 계약).",
"variant_axis": "back_len_cm"
},
{
"type_id": "pipe_inlet_basin",
"work_item_code": "FP-12-15",
"master_name": "집수정"
},
{
"type_id": "revetment",
"work_item_code": null,
"class_from": "form",
"form_codes": {
"돌쌓기(찰)": "FP-13-04-05",
"돌쌓기(메)": "FP-13-04-02"
},
"class_note": "기슭막이는 **형태가 돌쌓기면 돌쌓기 식**(`_UnitQuantity_Revetment`) — 공종도 돌쌓기 찰·메와 같음(실무 정본 탭 「돌기슭막이(H=2.0m, 찰쌓기, 기초유)」). 그 밖 형태(콘크리트·돌망태·통나무·바자)는 전개식이 없어 사유로 막힘. 관 유입·유출부 기슭막이와 독립 기슭막이가 이 줄로 섬(A1, 2026-09-14).",
"secondary_axes": [
"stone_kind"
],
"billing_component": "돌쌓기",
"variant_axis": "back_len_cm"
},
{
"type_id": "ford_pavement",
"work_item_code": "FP-12-06",
"master_name": "콘크리트 포장(인력시공)",
"basis_unit_note": "⚠ 원문 L6229 는 「(단위: **일당**)」인데 그것은 **품의 단위**(하루에 얼마)이지 공종 수량 단위가 아니다 — 밑수로 받지 않는다. 작업조형 표라 시공량으로 나눠야 수량 단위가 나온다(2026-09-08 B09 확인). 밑수가 설 때까지 대조 대상이 아니다."
},
{
"type_id": "boulder_masonry",
"billing_component": "큰돌쌓기",
"billing_note": "⚠ 품셈 밑수가 「㎡당」이라 **연장(m)으로 세면 안 된다** — 받는 쪽이 ㎡ 단가를 m 수량에 곱해 금액이 2.6배로 섰다(2026-09-08 실증: 10m × 52,938.9 = 529,389원 / 26.101㎡ × 52,938.9 = 1,381,753원). 내역 줄 수량은 이 성분(비탈면적)으로 센다. 고임돌·야면석·막자갈은 **자재 축**으로 따로 가므로 여기서 빠지지 않는다. ⚠ 13-6 은 밑수가 **10㎡** 다 — 받는 쪽이 마스터의 `basis_quantity` 를 함께 봐야 한다.",
"work_item_code": null,
"class_from": "bond",
"bond_codes": {
"메쌓기": "FP-13-06-01",
"찰쌓기": "FP-13-06-02"
},
"class_note": "메/찰(`bond`)은 **공종 자체가 갈리는 의미 판정**이라 여기서 고른다. 직경 갈래는 `variant_value` 로 원본값만 보낸다 — 원문이 물결표를 섞어 써서.",
"variant_axis": "stone_cm"
},
{
"type_id": "ditch_ridge",
"work_item_code": "FP-12-09-02",
"master_name": "측구 > 산마루 측구",
"note": "품셈 12-9-2 · 밑수 1 m — 구조물 연장(m)이 그대로 수량이다. 2026-09-08 V-3 확인에서 이었다(그전에는 매핑이 없어 연장은 오는데 공종코드가 비어 있었다)."
},
{
"type_id": "ditch_berm",
"work_item_code": "FP-12-09-03",
"master_name": "측구 > 소단 측구",
"note": "품셈 12-9-3 · 밑수 1 m"
},
{
"type_id": "underdrain",
"work_item_code": "FP-12-10",
"master_name": "맹암거",
"note": "품셈 12-10 · 밑수 1 m"
}
],
"ancillary": [
{
"group": "가설창고(컨테이너)",
"work_item_code": "FP-11-01",
"basis_unit": "개소",
"basis_source": "산림사업 표준품셈(고시 2025-82) 11-1 콘테이너형 가설건축물 — 절 머리에 「(단위: …)」가 없어 마스터가 못 채운 자리. [주]③ 「트럭크레인 사용시간은 **1개설치당** 2시간 기준이다」와 [주]① 「설치 또는 해체 시에 **각각** 적용한다」가 밑수를 1동(개소)당으로 말한다(2026-09-09 원문 대조).",
"master_name": "가설 > 콘테이너형 가설건축물",
"note": "⚠ 이 줄이 비어 있어 **밑수 대조 가드가 이 공종만 못 보고 있었다**(2026-09-09 실측: 내역에 실리는 25 줄 중 유일하게 안 보이던 자리). 개소 수는 현장 조건이라 설계가 정한다."
}
],
"pending_user": {
"note": "이름이 비슷한 후보는 있으나 **어느 것인지 정할 근거가 없는** 자리. 임의로 고르지 않고 unmatched 로 낸다(CLAUDE.md 3장).",
"items": [
{
"group": "흙깎기/측구터파기 암",
"candidates": [
"FP-09-04 암절취(리핑)",
"FP-09-05 발파암"
],
"why": "설계자가 넣는 암 갈래 이름(풍화암·연암·보통암·경암)이 리핑이냐 발파냐를 말하지 않음. 갈래마다 시공법을 지정하는 칸이 필요함"
},
{
"type_id": "chute",
"name": "도수로·산비탈수로",
"why": "품셈 12장 측구 계열(12-9-1 L형 · 12-9-2 산마루 · 12-9-3 소단)과 12-10 맹암거에 **해당 공종이 없음**(2026-09-08 마스터 전수). 「수로」로 검색해도 나오는 것은 그 셋뿐임.",
"needs": "어느 공종으로 볼지 사용자 확정 — 또는 별도 표준도·일위대가"
},
{
"type_id": "slope_drain",
"name": "절토사면 배수로",
"why": "위와 같음 — 품셈에 그 이름의 공종이 없음.",
"needs": "어느 공종으로 볼지 사용자 확정"
}
]
},
"composite": {
"note": "품셈에 **그 이름의 공종이 없어** 여러 공종을 묶어 일위대가로 세우는 자리. 코드 하나로 못 적으므로 묶음을 적어 둔다 — 빈 코드로 두면 「매핑을 못 찾은 줄」과 구별이 안 된다.",
"items": [
{
"type_id": "pipe_inlet_basin",
"when": {
"inlet_basin_material": "콘크리트"
},
"note": "2026-09-14 브레인 ㉯ ⑴~⑸ — 원문 L6460 12-15 집수정 표는 조립형(구체·버림 인력 · 다짐기 · 거푸집 합판4회 · 철근가공조립(보통)). 콘크리트 집수정만 묶음 · 돌집수정은 종전대로 12-15 곧장(⑸).",
"outside_note": "ⓘ 12-15 표의 집수정 뚜껑(스틸그레이팅 개)·설치비(재료비의 5%)는 조각 모양이 달라 묶음에 안 넣음(⑷ · 2026-09-14)",
"parts": [
{
"code": "FP-12-15#구체콘크리트",
"name": "구체콘크리트",
"unit": "㎥",
"from_components": [
"콘크리트"
]
},
{
"code": "FP-12-15#버림콘크리트",
"name": "버림콘크리트",
"unit": "㎥",
"from_components": [
"버림콘크리트"
],
"why": "□형 원단위(콘크리트 2.84㎥ = 벽 + 바닥기초)에 버림 성분이 없음 — 「설계에 없음 = 0」 으로 짓지 않고 막음(⑵)"
},
{
"code": "FP-12-04",
"name": "합판거푸집",
"unit": "㎡",
"from_components": [
"합판거푸집"
],
"kind_suffix": "formwork_reuse"
},
{
"code": "FP-12-03",
"name": "철근 현장가공 및 조립",
"unit": "ton",
"from_components": [
"이형철근 D13",
"이형철근 D16"
],
"unit_from": "kg",
"kind_suffix": "rebar_complexity"
}
]
},
{
"type_id": "retaining_wall",
"parts": [
{
"code": "FP-12-01-01",
"name": "콘크리트 타설",
"unit": "㎥",
"from_components": [
"콘크리트",
"버림콘크리트"
],
"kind_suffix": "concrete_placing"
},
{
"code": "FP-12-04",
"name": "합판거푸집",
"unit": "㎡",
"from_components": [
"합판거푸집"
],
"kind_suffix": "formwork_reuse"
},
{
"code": "FP-12-38",
"name": "유로폼",
"unit": "㎡",
"from_components": [
"유로폼"
],
"kind_suffix": "euroform_type",
"incomplete_note": "⚠ 자재 몫이 빠져 있음 — 12-38-2 의 패널 0.89매/10㎡·부자재(주자재비의 24/52/79 %)·소모자재 5 % 는 **자재 단가가 서야** 붙는다. 지금 서는 것은 설치·해체 품뿐이다."
},
{
"code": "FP-12-03",
"name": "철근 현장가공 및 조립",
"unit": "ton",
"from_components": [
"이형철근 D13",
"이형철근 D16"
],
"unit_from": "kg",
"kind_suffix": "rebar_complexity"
},
{
"code": "FP-12-25",
"name": "기초잡석",
"unit": "㎥",
"from_components": [
"기초잡석"
],
"why": "관측 원단위에는 기초잡석 줄이 없으나 **버림 폭이 곧 잡석다짐 폭**이라(KCS 34 50 05) 버림 물량에서 두께 비로 나온다 — 버림 0.145㎥/m ÷ 0.1 = 폭 1.45m(1.8 − 전단키 0.35), 두께 0.2m(사용자 확정 3차 ②) ⇒ 0.29㎥/m(원문 값 · 2026-09-14 라이브러리 반올림 0.15 에서 바꿈)."
}
],
"why": "품셈 12장에 「옹벽」 공종이 없음. 실무 내역은 「반중력식옹벽 H=2.0」 한 줄이고 그 일위대가가 위 공종을 묶음.",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김",
"placing_note": "타설 코드는 프로젝트 설정의 타설 방식으로 갈림(기본 레디믹스트). 철근구조물 판정은 원단위의 D13·D16 에서 자동으로 나옴.",
"parts_note": "조각마다 **어느 성분에서 나오는지**(`from_components`)를 적는다. 이름을 바꾸면 물량이 조용히 0 이 되므로 원단위 성분 이름과 정확히 같아야 하고, 못 찾으면 드러낸다. `unit_from` 이 있으면 그 단위에서 목표 단위로 환산한다 — **철근은 ㎏ → ton (÷1000)**. ⚠ 단위를 안 맞추면 1000배 틀린다."
},
{
"type_id": "box_culvert",
"parts": [
{
"code": "FP-12-01-01",
"name": "콘크리트 타설",
"unit": "㎥",
"from_components": ["콘크리트", "버림콘크리트"],
"kind_suffix": "concrete_placing"
},
{
"code": "FP-12-38",
"name": "유로폼",
"unit": "㎡",
"from_components": ["유로폼"],
"kind_suffix": "euroform_type"
},
{
"code": "FP-12-04",
"name": "합판거푸집",
"unit": "㎡",
"from_components": ["합판거푸집"],
"kind_suffix": "formwork_reuse"
},
{
"code": "FP-12-03",
"name": "철근 현장가공 및 조립",
"unit": "ton",
"from_components": ["이형철근 D13", "이형철근 D16"],
"unit_from": "kg",
"kind_suffix": "rebar_complexity",
"why": "철근은 크기별 식이 없어 울진 기번3 구조도 2×2 관측값만 섬 — 다른 크기는 이 조각이 비어 묶음이 막힘(2026-09-15 브레인 판정 ②)"
},
{
"code": "FP-12-20",
"name": "강관동바리",
"unit": "㎥",
"from_components": ["동바리"]
},
{
"code": "FP-12-19",
"name": "강관비계",
"unit": "㎥",
"from_components": ["비계"],
"why": "12-19 밑수는 공㎥ — 울진 기번3 단위 칸 「공/m3」 · 시종점 식의 ×1.00 은 연장일 수 없어(끝면은 연장과 무관) 비계 폭 1.0m 관측(울진)으로 면 × 1.0 = 공㎥"
},
{
"code": "FP-12-25",
"name": "기초잡석",
"unit": "㎥",
"from_components": ["기초잡석"],
"why": "BOX 근거 둘(예제·울진)에는 잡석 줄이 없으나 **버림이 선 구조물엔 기초잡석이 함께 섬**(사용자 확정 3차 ② · 옹벽과 같은 규칙) — 원단위에 선 줄을 묶음에서 빼면 수량만 보이고 금액이 빠짐"
}
],
"why": "품셈 12장에 「BOX암거」 공종이 없음 — 산림과임업기술(임도) 5장 수량산출 예제가 구체콘크리트·기초·거푸집·동바리·철근으로 가르고, 실무 울진 기번3 「암거수량집계표(2×2)」가 레미콘·버림·유로폼·합판·철근·동바리·비계로 셈(2026-09-15 브레인 12장 D).",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "pavement_concrete",
"parts": [
{
"code": "FP-12-06",
"name": "콘크리트 포장(인력시공)",
"unit": "㎥",
"from_components": ["콘크리트"],
"kind_suffix": "pavement_thickness"
},
{
"code": "FP-12-08",
"name": "콘크리트 포장 거푸집",
"unit": "m",
"from_components": ["포장거푸집"]
},
{
"code": "FP-12-07-01",
"name": "포장절단",
"unit": "m",
"from_components": ["수축줄눈"],
"why": "수축줄눈은 12-7-1 포장절단으로 이음 — 12-7-2 줄눈설치는 안 씀 — 소광 실무가 컷팅(「수축줄눈(컷팅)」 · 2026-09-15 브레인 ⓐ)"
}
],
"why": "실무 내역은 「콘크리트포장 T=20 ㎡」 한 줄이고 품셈은 포설(12-6 ㎥ · 비닐·철망깔기·양생 포함) · 거푸집(12-8 연장 m) · 줄눈(12-7) 을 따로 둠 — 거푸집·줄눈 제외라 묶음으로 셈(2026-09-15 브레인 12장 D 포장 둘). 콘크리트·비닐·철망 재료는 자재 축.",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "새심기"},
"parts": [
{"code": "FP-05-14", "name": "새심기", "unit": "㎡", "from_components": ["새심기"]}
],
"why": "비탈면 녹화 한 줄(등록부 공법 고르기)이 공법마다 다른 품셈 공종으로 감 — 새심기 5-14 ㎡당(2026-09-15 브레인 녹화 ⓓ).",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "평떼"},
"parts": [
{"code": "FP-05-22-02", "name": "평떼 붙임", "unit": "㎡", "from_components": ["평떼"]},
{
"code": "FP-05-22-03",
"name": "떼꽂이 제작 및 설치",
"unit": "㎡",
"from_components": ["평떼"],
"why": "5-22-3 [주] 「평떼(보통인부 0.06인)품에는 떼꽂이가 포함」은 5-12 품에 걸린 것으로 읽음 — 5-22-3 떼꽂이는 따로 셈(5-22-2 붙임을 씀 · 2026-09-15 브레인 ⓐ 승인 · 뒤집을 수 있음)"
}
],
"why": "평떼 5-22 — 떼(0.3×0.3 11매/㎡)는 자재 축 · 붙임·떼꽂이 ㎡ 묶음(2026-09-15 브레인 녹화 ⓓ).",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "줄떼"},
"parts": [
{"code": "FP-05-23-02", "name": "떼붙임", "unit": "㎡", "from_components": ["줄떼"]},
{"code": "FP-05-23-03", "name": "떼꽂이 제작 및 설치", "unit": "㎡", "from_components": ["줄떼"]}
],
"why": "줄떼 5-23 — 떼(0.3×0.3 · 30㎝ 간격 3.33매/㎡)는 자재 축 · 붙임·떼꽂이 ㎡ 묶음(2026-09-15 브레인 녹화 ⓓ).",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "선떼붙이기"},
"parts": [
{
"code": "FP-05-16-01",
"name": "단끊기",
"unit": "m",
"from_components": ["선떼붙이기"],
"kind_suffix": "cutting_soil"
},
{
"code": "FP-05-16-02",
"name": "선떼붙이기 떼붙임",
"unit": "㎡",
"from_components": ["떼붙임"],
"not_ready": true,
"why": "떼붙임 호표 없음 — 5-16-2 표가 「물량산출」이라 수량을 안 줌(수량은 섬 · 금액만 안 섬 · 2026-09-15 브레인 ⓓ)"
}
],
"why": "선떼붙이기 5-16-2(10m당) = 단끊기 m 1(5-16-1 토질 갈래) + 떼붙임 ㎡ 「물량산출」 + 떼운반 — 떼 매수는 사방기술교본 표 2-2-6(급·떼 크기) · 떼는 자재 축.",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "비탈덮기", "cover_kind": "거적"},
"parts": [
{"code": "FP-05-25", "name": "거적덮기", "unit": "㎡", "from_components": ["비탈덮기"]}
],
"why": "비탈덮기(거적) — 품셈 5-25 거적덮기 ㎡당(거적 1.1㎡ 표 안 · 앙카핀 등 부속은 별도).",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "비탈덮기", "cover_kind": "짚망"},
"parts": [
{"code": "FP-05-28-01", "name": "짚망", "unit": "㎡", "from_components": ["비탈덮기"]}
],
"why": "비탈덮기(짚망) — 품셈 5-28-1 · ⚠ 원문 표에 밑수(단위) 표기가 없음 — B09 가 밑수로 막으면 그 사유가 섬 · 재료량은 설계수량 별도([주]②).",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
},
{
"type_id": "revegetation",
"when": {"method": "비탈덮기", "cover_kind": "방초·야자섬유매트"},
"parts": [
{"code": "FP-05-28-02", "name": "방초매트 및 야자섬유매트 포장", "unit": "㎡", "from_components": ["비탈덮기"]}
],
"why": "비탈덮기(매트) — 품셈 5-28-2 일당 시공량(폭 1.5m 이하 90㎡ · 2.0m 이하 130㎡) · 폭 갈래는 B09 몫.",
"needs": "일위대가 조립은 B09 몫 — B08 은 물량과 묶음만 넘김"
}
],
"unit_conversion": {
"note": "조각 단위 환산. 단가의 단위(원/ton)와 원단위의 단위(㎏)가 달라 반드시 맞춰야 한다.",
"kg_to_ton": 0.001
}
},
"concrete_placing": {
"note": "콘크리트 타설은 **타설 방식 × 구조물 종류**로 갈린다. 방식은 설계 판단이라 프로젝트 설정(`quantity.concrete_placing_method`)이 고르고, 종류는 **원단위에 철근이 있나 없나로 자동 판정**한다 — 사람이 고르는 값이 아니다(2026-09-07 3자 확정).",
"method_codes": {
"ready_mixed": "FP-12-01-01",
"machine_mixed": "FP-12-01-02",
"hand_mixed": "FP-12-01-03"
},
"default_method": "ready_mixed",
"default_is_provisional": true,
"structure_kinds": [
"무근구조물",
"철근구조물",
"소형구조물"
],
"kind_rule": "원단위 성분에 철근(이형철근·원형철근)이 있으면 철근구조물, 없으면 무근구조물. 소형구조물 판정 기준은 미확보.",
"price_hint_krw_per_m3": {
"note": "⚠ **표시 전용.** 사용자가 타설 방식을 고를 때 「정하면 얼마나 달라지는지」를 보이려고 둔 값이며 B08 의 어떤 계산에도 들어가지 않는다(금액은 B09 몫 — 8-2 경계). 값은 B09 가 2026-09-07 에 낸 철근구조물 기준 단가이고, 요율·노임이 바뀌면 어긋난다 — 화면이 「참고」임을 함께 적는다.",
"basis": "철근구조물 콘크리트 타설 (원/㎥)",
"computed_by": "B09",
"computed_on": "2026-09-07",
"values": {
"ready_mixed": 65826,
"machine_mixed": 163508,
"hand_mixed": 408327
}
}
},
"variant_contract": {
"note": "갈래 계약(2026-09-07 3자) — **키 문자열을 두 창이 각자 조립하지 않는다.**",
"why": "품셈 원문이 물결표를 섞어 쓴다: 13-06-01·02 는 `∼`(U+223C), 13-06-03 은 `~`(U+FF5E). 각자 조립하면 글자 하나로 영영 안 맞는다.",
"b08_sends": [
"work_item_code",
"variant_axis",
"variant_value",
"kind_basis"
],
"b09_does": "원문 표기(물결표·공백·괄호)를 흡수해 자기 키로 옮긴다. 「…㎝ 이하」 구간 나누기도 그쪽 몫 — 그 구간이 **품셈 표의 구조**이기 때문."
},
"masonry_class_reference": "resources/data_masonry/masonry_class_2026-01-01.json — ⚠ 이제 **참고용**이다. 서브 판정과 어긋나면 그것이 곧 신호다.",
"pipe": {
"note": "배수관(횡단배수관) — **관종으로 공종이 갈린다.** 관은 `structures.json` 이 아니라 `pipe_points.json` 이 정본이고(레지스트리 `pipe` 타입이 `managed_by: pipe_points`), 연장은 B06 횡단이 서버 Node 로 계산해 측점 `design.pipe_length_m` 로 남긴다(2026-09-08 랩탑 창). B08 은 그 셋을 잇기만 한다.",
"kind_codes": {
"파형강관": "FP-12-11-03",
"흄관": "FP-12-11-02",
"VR관": "FP-12-11-01"
},
"kind_option_key": "pipe_kind",
"default_kind": "파형강관",
"default_is_user_confirmed": true,
"default_note": "레지스트리 `pipe` 옵션의 기본값이며 **2026-08-17 사용자 확정**임. 그래도 저장값이 비어 있으면 「관종 미지정」으로 드러내고 기본값으로 돈다는 사실을 함께 싣는다(암 시공법과 같은 처리).",
"unit": "m",
"length_key": "pipe_length_m",
"diameter_option_key": "pipe_diameter_mm",
"variant_axis": "pipe_diameter_mm",
"facility_rule": "⚠ `pipe_points.json` 은 **계곡 통과 시설 전부의 정본**이다(배관·BOX암거·물넘이·세월교·독립 기슭막이). `facility` 가 `pipe` 인 점만 배관이다 — `pipe_diameter_mm` 유무로 가르면 **관경 미지정 관을 놓친다**(2026-09-08 랩탑 창).",
"revetment_note": "⚠ 유출·유입부 기슭막이는 **관 옵션(`inlet_revet_*`·`outlet_revet_*`)이 정본**이다. 레지스트리 `revetment` 타입이 `managed_by: pipe_points` 라 구조물 목록에서 빠졌다(2026-08-28 이관). ⭐ **관 줄에는 안 넣고 원단위 전개가 한 번 셈** — B08 이 관 지점을 읽어 「배수관 · 유입부/유출부 기슭막이」 줄로 세움(`Engine_Pipe.facility_structures`, A1 2026-09-14). 관 부설(품셈 12-11 m당: 관·기초콘크리트·거푸집)에 기슭막이 몫이 없어 겹치지 않음. 그전에는 **어느 쪽도 안 세고 있었음**.",
"not_ready": {
"흄관 밑수 두 벌": "`FP-12-11-02` 는 밑수가 「1 m」와 「1 개소」 두 벌이다(표가 둘). B09 가 `#갈래` 로 두 표를 각각 세우므로 B08 은 `variant_value` 로 어느 쪽인지 보내면 된다.",
"터파기·되메우기": "⚠ 관 부설과 터파기·되메우기가 각각 오면 **같은 굴착을 두 번 셀 수 있다**(B09 ㉡ 가드). 관 줄에는 지금 터파기를 붙이지 않는다."
}
},
"ground_aliases_moved_to": "resources/data_aliases/aliases_2026-01-01.json — 갈래 이름 별칭은 범위(scope)·판을 붙여 별칭표 한 벌로 옮김(2026-09-13 축 C 명세 5장). 여기 다시 두지 말 것."
}
@@ -1,167 +0,0 @@
{
"schema_version": "1.0",
"dataset_id": "aliases",
"note": "별칭표 한 벌(명세 5장) — B08·B09 가 이 파일만 읽는다(`common_util/common_util_aliases.py`). 한 줄 = {axis, from, to, scope, pum_edition, basis}. axis: resource(자원 이름 → 카탈로그 코드) · variant(우리 갈래 이름 → 품셈 갈래 이름). scope 없는 줄은 오류 · 같은 이름이 겹친 범위에서 두 곳으로 가면 오류. 대체(대응이 아예 없어 갈음)는 넣지 않음. scope 는 품셈 판에 묶임 — 판이 다르면 적용 안 함(명세 17장).",
"aliases": [
{
"axis": "resource",
"from": "화약공",
"to": "1016",
"scope": "FP-09-05",
"pum_edition": "2026-01-01",
"basis": "노임 표준 직종명은 「화약취급공」(노임 카탈로그 1016) — 품셈 9-5 표가 줄여 적음. 2026-09-13 사용자 위임 판정(브레인)"
},
{
"axis": "resource",
"from": "소형브레이커",
"to": "5210-0010",
"scope": "FP-09-19-03",
"pum_edition": "2026-01-01",
"basis": "9-19-3 비탈면 고르기(발파암) 표가 규격을 안 적음 — 그 값 「(2.45+3.05)/2/10㎡」 은 9-19-1 토사면 고르기 표(연암 2.45·보통암+경암 3.05)에서 왔고 9-19-1 [주]① 「소형브레이커는 1㎥/분」 → 소형브레이커(공압식) 1.0㎥/min(9-19-3 ← 9-19-1 표 ← [주]①, 값의 출처가 규격을 정함). 2026-09-14 브레인 승인"
},
{
"axis": "resource",
"from": "공기압축기",
"to": "5205-0035",
"scope": "FP-09-19-01",
"pum_edition": "2026-01-01",
"basis": "9-19-1 토사면 고르기 절토면 표(원문 L5414)가 자원 머리에 규격을 안 적음 — [주]① 「공기압축기는 3.5㎥/분, 소형브레이커는 1㎥/분, 굴착기는 0.7㎥를 기준한 것이다」 → 공기압축기(이동식) 3.5. 칸이 규격을 적은 줄(성토면 굴착기 0.6㎥)은 안 덮음. 2026-09-14 브레인 승인(⑤ Ⓐ)"
},
{
"axis": "resource",
"from": "소형브레이커",
"to": "5210-0010",
"scope": "FP-09-19-01",
"pum_edition": "2026-01-01",
"basis": "9-19-1 토사면 고르기 절토면 표(원문 L5414)가 자원 머리에 규격을 안 적음 — [주]① 「공기압축기는 3.5㎥/분, 소형브레이커는 1㎥/분, 굴착기는 0.7㎥를 기준한 것이다」 → 소형브레이커(공압식) 1.0㎥/min. 칸이 규격을 적은 줄(성토면 굴착기 0.6㎥)은 안 덮음. 2026-09-14 브레인 승인(⑤ Ⓐ)"
},
{
"axis": "resource",
"from": "굴착기",
"to": "0201-0070",
"scope": "FP-09-19-01",
"pum_edition": "2026-01-01",
"basis": "9-19-1 토사면 고르기 절토면 표(원문 L5414)가 자원 머리에 규격을 안 적음 — [주]① 「공기압축기는 3.5㎥/분, 소형브레이커는 1㎥/분, 굴착기는 0.7㎥를 기준한 것이다」 → 굴착기(무한궤도) 0.7(카탈로그 0.7 은 무한궤도뿐). 칸이 규격을 적은 줄(성토면 굴착기 0.6㎥)은 안 덮음. 2026-09-14 브레인 승인(⑤ Ⓐ)"
},
{
"axis": "resource",
"from": "다짐:봉상후렉시블(45mm)",
"to": "4611-0350",
"scope": "FP-12-15",
"pum_edition": "2026-01-01",
"basis": "12-15 집수정 표(원문 L6460)는 「봉상후렉시블(45mm) Q=5.4㎥/hr」 만 적고 전기·엔진을 안 적음 — 건설품셈 8-3 (4611) 은 전기식 플렉시블형 ø45(0.75㎾)·엔진식 플렉시블형 ø45(2.6㎾) 둘 · 12-34-1 「콘크리트 진동기(3.5HP)」 = 2.6㎾ 엔진식 · 운전경비표(8-4)에 엔진식 4611-0350(휘발유 1.0L)만 있음 → 엔진식. 전기식이 필요하면 그때 엶. 2026-09-14 브레인 승인(661 뒤 ①)"
},
{
"axis": "resource",
"from": "다짐:봉상후렉시블(45mm)",
"to": "4611-0350",
"scope": "FP-12-12",
"pum_edition": "2026-01-01",
"basis": "12-12 날개벽(원문 L6419) 표는 「봉상후렉시블(45mm) Q=5.4㎥/hr」 만 적고 전기·엔진을 안 적음 — 12-15 집수정과 같은 줄 · 같은 근거(건설품셈 8-3 (4611) 전기식·엔진식 둘 · 12-34-1 「콘크리트 진동기(3.5HP)」 = 2.6㎾ 엔진식 · 운전경비표에 엔진식 4611-0350 만) → 엔진식. 2026-09-14 브레인(672 다음 · 봉상후렉시블 셋)"
},
{
"axis": "resource",
"from": "다짐:봉상후렉시블(45mm)",
"to": "4611-0350",
"scope": "FP-12-13",
"pum_edition": "2026-01-01",
"basis": "12-13 면벽(원문 L6436) 표는 「봉상후렉시블(45mm) Q=5.4㎥/hr」 만 적고 전기·엔진을 안 적음 — 12-15 집수정과 같은 줄 · 같은 근거(건설품셈 8-3 (4611) 전기식·엔진식 둘 · 12-34-1 「콘크리트 진동기(3.5HP)」 = 2.6㎾ 엔진식 · 운전경비표에 엔진식 4611-0350 만) → 엔진식. 2026-09-14 브레인(672 다음 · 봉상후렉시블 셋)"
},
{
"axis": "resource",
"from": "봉상후렉시블(45mm)",
"to": "4611-0350",
"scope": "FP-12-16",
"pum_edition": "2026-01-01",
"basis": "12-16 맨홀(원문 L6474) 표는 「봉상후렉시블(45mm) Q=5.4㎥/hr」 만 적고 전기·엔진을 안 적음 — 12-15 집수정과 같은 줄 · 같은 근거(건설품셈 8-3 (4611) 전기식·엔진식 둘 · 12-34-1 「콘크리트 진동기(3.5HP)」 = 2.6㎾ 엔진식 · 운전경비표에 엔진식 4611-0350 만) → 엔진식. 2026-09-14 브레인(672 다음 · 봉상후렉시블 셋)"
},
{
"axis": "resource",
"from": "콘크리트 진동기(3.5HP)",
"to": "4611-0350",
"scope": "FP-12-34-01",
"pum_edition": "2026-01-01",
"basis": "12-34-1 「콘크리트 진동기(3.5HP)」 — 3.5HP = 2.6㎾ · 건설품셈 8-3 (4611) 엔진식 플렉시블형 ø45(2.6㎾) · 운전경비표에 엔진식만 · 실무 영월 중기목록 「콘크리트 진동기 45φ(2.6㎾)엔진식플렉시블형」. 2026-09-14 브레인"
},
{
"axis": "variant",
"from": "0.2·소림",
"to": "굴착기(무한궤도) 0.2 · 소",
"scope": "FP-09-21",
"pum_edition": "2026-01-01",
"basis": "품셈 9-21 제근 표 — 굴착기(무한궤도) 0.2·0.7 블록 × 임목축적 등급 열 「소·중·밀」([주]① 소림·중림·밀림). B08 이 크기·등급 두 칸을 「크기·등급」 으로 엮어 보냄(2026-09-14 브레인 판정 · 갈래 표기는 이 표 한 곳)"
},
{
"axis": "variant",
"from": "0.2·중림",
"to": "굴착기(무한궤도) 0.2 · 중",
"scope": "FP-09-21",
"pum_edition": "2026-01-01",
"basis": "품셈 9-21 제근 표 — 굴착기(무한궤도) 0.2·0.7 블록 × 임목축적 등급 열 「소·중·밀」([주]① 소림·중림·밀림). B08 이 크기·등급 두 칸을 「크기·등급」 으로 엮어 보냄(2026-09-14 브레인 판정 · 갈래 표기는 이 표 한 곳)"
},
{
"axis": "variant",
"from": "0.2·밀림",
"to": "굴착기(무한궤도) 0.2 · 밀",
"scope": "FP-09-21",
"pum_edition": "2026-01-01",
"basis": "품셈 9-21 제근 표 — 굴착기(무한궤도) 0.2·0.7 블록 × 임목축적 등급 열 「소·중·밀」([주]① 소림·중림·밀림). B08 이 크기·등급 두 칸을 「크기·등급」 으로 엮어 보냄(2026-09-14 브레인 판정 · 갈래 표기는 이 표 한 곳)"
},
{
"axis": "variant",
"from": "0.7·소림",
"to": "굴착기(무한궤도) 0.7 · 소",
"scope": "FP-09-21",
"pum_edition": "2026-01-01",
"basis": "품셈 9-21 제근 표 — 굴착기(무한궤도) 0.2·0.7 블록 × 임목축적 등급 열 「소·중·밀」([주]① 소림·중림·밀림). B08 이 크기·등급 두 칸을 「크기·등급」 으로 엮어 보냄(2026-09-14 브레인 판정 · 갈래 표기는 이 표 한 곳)"
},
{
"axis": "variant",
"from": "0.7·중림",
"to": "굴착기(무한궤도) 0.7 · 중",
"scope": "FP-09-21",
"pum_edition": "2026-01-01",
"basis": "품셈 9-21 제근 표 — 굴착기(무한궤도) 0.2·0.7 블록 × 임목축적 등급 열 「소·중·밀」([주]① 소림·중림·밀림). B08 이 크기·등급 두 칸을 「크기·등급」 으로 엮어 보냄(2026-09-14 브레인 판정 · 갈래 표기는 이 표 한 곳)"
},
{
"axis": "variant",
"from": "0.7·밀림",
"to": "굴착기(무한궤도) 0.7 · 밀",
"scope": "FP-09-21",
"pum_edition": "2026-01-01",
"basis": "품셈 9-21 제근 표 — 굴착기(무한궤도) 0.2·0.7 블록 × 임목축적 등급 열 「소·중·밀」([주]① 소림·중림·밀림). B08 이 크기·등급 두 칸을 「크기·등급」 으로 엮어 보냄(2026-09-14 브레인 판정 · 갈래 표기는 이 표 한 곳)"
},
{
"axis": "variant",
"from": "리핑암",
"to": "파쇄암",
"scope": "FP-10-11",
"pum_edition": "2026-01-01",
"basis": "품셈 10-11 f 표가 토사·파쇄암·발파암을 따로 둠 — 그 표 안에서만 파쇄암 = 발파를 뺀 리퍼 암. 결정적 근거 10-12 [주]③ 환산계수 「암절취 1.35」 = 10-11 f 「파쇄암 1/1.35」. ⚠ 일반적으로는 발파암도 캐면 파쇄암 상태라 전역 별칭 금지. 도자 운반 일위대가가 파쇄암 이름으로 서 있어 이름만 못 이어 금액이 안 붙던 자리(2026-09-08 데스크탑 보조 원문 대조)"
},
{
"axis": "variant",
"from": "리핑암",
"to": "암절취",
"scope": "FP-10-12",
"pum_edition": "2026-01-01",
"basis": "품셈 10-12 덤프 운반 잎이 토사·암절취·발파암으로 갈리고 [주]③ 환산계수가 「암절취 1.35」(10-11 f 파쇄암 1/1.35 와 같은 값) — 우리 리핑암(리퍼 절취) = 품셈 암절취. 옛 매핑표 ground_aliases 에서 범위를 붙여 옮김(2026-09-13). ⚠ 쓰는 곳: 덤프 운반 잎 고르기(아직 없음 — 갈래 고르기형 부모 판정 대기)"
},
{
"axis": "resource",
"from": "트럭",
"to": "0602-0045",
"scope": "FP-05-24",
"pum_edition": "2026-01-01",
"basis": "산림 5-24 표 「트럭 4.5ton」 — 카탈로그에 「트럭」 이 없음(덤프트럭·크레인만) = 원문 애매 → 실무. 거창 실무 호표 「51.초류종자살포(씨드스프레이) 나. 덤프트럭 (4.5Ton)」(건설 4-1-3 표 「트럭 4.5ton」 을 덤프트럭 4.5 로 셈). ⚠ 어긋남: 원문은 트럭(건설 4-1-3 [주]① 트럭에 종자살포기 장착) · 카탈로그는 덤프트럭. 2026-09-15 브레인 판정 ①"
},
{
"axis": "resource",
"from": "종자살포기",
"to": "7750-0016",
"scope": "FP-05-24",
"pum_edition": "2026-01-01",
"basis": "산림 5-24 표 「종자살포기 2,500-3,000ℓ」 — 원문 규격은 ℓ(탱크 용량) · 카탈로그는 취부기(녹생토 암절개면 보호식재용) 11.94㎾ 로 같은 기계라는 원문 근거 없음 = 애매 → 실무. 5-24-1 [주]⑤ 가 건설 4-1-2 초류종자 살포를 참조 · 건설 4-1-3 표 「취부기 11.94kW」 · 거창 실무 「종자살포기 : 취부기(녹생토) (11.94kW)」. 2026-09-15 브레인 판정 ②"
}
]
}
@@ -1,652 +0,0 @@
{
"schema_version": "1.0",
"dataset_id": "structure_unit_observed",
"effective_date": "2026-01-01",
"note": "콘크리트 구조물의 **관측** 원단위표. 품셈에는 구조물별 표준 물량표가 없어(구조물_수량.md · 배수공_수량.md §2) 실무 설계원본에서 뽑은 값이다.",
"policy": {
"basis": "observed",
"no_interpolation": true,
"no_invented_dimensions": true,
"notes": [
"⚠ 관측값은 **그 규격에서만** 맞다. 규격이 다르면 비례로 늘리지 않는다 — 벽 두께·기초는 높이에 비례하지 않는다.",
"⚠ 규격이 표에 없으면 「원단위 미확보」로 드러낸다. 가까운 값을 갖다 쓰지 않는다.",
"⚠ 줄마다 basis 를 싣는다 — 치수에서 나온 값(derived)과 한 표에 섞이기 때문이다."
]
},
"sources": {
"uljin_library": {
"doc": "울진소광 구조도 숨김탭 원단위 라이브러리",
"path": "resources/knowledge/original/실무문서/_원단위라이브러리_울진소광.md"
},
"uljin_compare": {
"doc": "종합비교 04 — 임도 구조물 원단위 (울진 1공구 수량집계표 관측)",
"path": "resources/knowledge/original/실무문서/_종합비교/04_임도구조물_원단위.md"
}
},
"entries": [
{
"type_id": "retaining_wall",
"spec": {
"form": "반중력식",
"height_m": 2.0
},
"unit": "m",
"source": "uljin_library",
"source_note": "§7 옹벽류 — 반중력식옹벽 H=2.0",
"section": {
"note": "단면 치수(m) — 아래 수량이 나온 그 단면. 출처 소광리 07-구조도 「옹벽2.0」 탭 산출식(T22 기초 0.4×1.6+0.3×0.35 · T23 벽체 (0.3+0.45)÷2×1.6 · T25 버림 0.1×(1.8−0.35) · T26·T27 유로폼 √(1.6²+0.032²)+√(1.6²+0.118²) · T31 파이프 1.6÷2×0.4)과 같은 탭 일반도(앞굽 950·뒷굽 200·키 자리 뒷굽 끝에서 500)",
"footing": { "width_m": 1.6, "thickness_m": 0.4, "toe_m": 0.95 },
"wall": { "height_m": 1.6, "top_m": 0.3, "front_batter_m": 0.118, "back_batter_m": 0.032 },
"key": { "width_m": 0.35, "depth_m": 0.3, "from_heel_m": 0.5 },
"blinding": { "thickness_m": 0.1, "overhang_m": 0.1 },
"weep": {
"pipe_length_m": 0.4,
"note": "소광리 「옹벽2.0」 T31 「파이프 φ50 (1.6 ÷ 2) × 0.4」 — 벽 높이 ÷ 개소당 벽면적 × 관 길이. 관 길이 0.4 는 **실무 관측값**(품셈에 없음) · 개소당 벽면적·지름은 제원 칸(비우면 2㎡ · Ø50)"
},
"trench": {
"clearance_m": 0.3,
"side_slope": 0.5,
"note": "소광리 「옹벽2.0」 탭에 터파기 줄이 없음 → 같은 파일 「식생옹벽블럭(H=2.0)」 F31·H31 기초 터파기 — 밑폭 = 기초 폭 + 0.6(양쪽 0.3) · 윗폭 = 밑폭 + 0.5 × 판 깊이 × 2(옆면 1:0.5). 브레인 판정(2026-09-14, 수직 → 1:0.5 로 고침) · 벽 높이 몫은 지반선이 제원에 없어 제외"
}
},
"components": [
{
"name": "콘크리트",
"unit": "㎥",
"amount": 1.345,
"destination": "unit_price",
"basis_note": "기초 0.745 + 벽체 0.60 · 원문 값(라이브러리 표기 1.35)"
},
{
"name": "버림콘크리트",
"unit": "㎥",
"amount": 0.145,
"destination": "unit_price",
"basis_note": "원문 값(라이브러리 표기 0.15)"
},
{
"name": "유로폼",
"unit": "㎡",
"amount": 3.205,
"destination": "unit_price",
"basis_note": "배면+전면 · 원문 값(라이브러리 표기 3.20)"
},
{
"name": "합판거푸집",
"unit": "㎡",
"amount": 0.6,
"destination": "unit_price",
"basis_note": "기초"
},
{
"name": "물구멍관",
"unit": "m",
"amount": 0.32,
"destination": "material",
"basis_note": "Ø50"
},
{
"name": "이형철근",
"spec": "D13",
"unit": "kg",
"amount": 13.45,
"destination": "material"
},
{
"name": "이형철근",
"spec": "D16",
"unit": "kg",
"amount": 30.42,
"destination": "material"
}
]
},
{
"type_id": "pipe_inlet_basin",
"spec": {
"inlet_basin_form": "돌집수정 ㄷ형"
},
"unit": "개소",
"source": "uljin_compare",
"source_note": "관보호공 돌집수정 ㄷ형 /개소",
"components": [
{
"name": "콘크리트",
"unit": "㎥",
"amount": 4.03,
"destination": "unit_price"
},
{
"name": "모르터",
"unit": "㎥",
"amount": 0.157,
"destination": "unit_price"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 21.1,
"destination": "earthwork",
"basis_note": "토사 14.8 + 암 6.3 — 지반 구분은 토공집계가 다시 가름"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 2.6,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 18.5,
"destination": "earthwork"
}
]
},
{
"type_id": "pipe_inlet_basin",
"spec": {
"inlet_basin_form": "돌집수정 ㄴ형"
},
"unit": "개소",
"source": "uljin_compare",
"source_note": "관보호공 돌집수정 ㄴ형 /개소",
"components": [
{
"name": "콘크리트",
"unit": "㎥",
"amount": 2.69,
"destination": "unit_price"
},
{
"name": "모르터",
"unit": "㎥",
"amount": 0.096,
"destination": "unit_price"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 16.4,
"destination": "earthwork",
"basis_note": "토사 4.9 + 암 11.5"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 1.2,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 15.2,
"destination": "earthwork"
}
]
},
{
"type_id": "pipe_inlet_basin",
"spec": {
"inlet_basin_form": "□형(기본형)",
"inlet_basin_material": "콘크리트",
"pipe_diameter_mm": "800"
},
"unit": "개소",
"source": "uljin_library",
"source_note": "§2 집수정 Ø800 — 내부 3.0×1.0×1.2, 벽 0.2, 바닥기초 3.4×1.4×0.2",
"section": {
"note": "치수(m) — 소광리 07-구조도 「집수정구조도(800)」 설계조건 칸(AB4~AE17)과 산출식 Y21~Y30 · 같은 탭 입체도. 관·방수로 자리는 원문 입체도 모식(산출식에 자리 치수 없음)",
"inner": { "length_m": 3.0, "width_m": 1.0, "height_m": 1.2 },
"wall_m": 0.2,
"base_m": 0.2,
"pipe_d_m": 0.8,
"spillway": { "count": 3, "top_m": 1.0, "bottom_m": 0.4, "depth_m": 0.3 },
"dig": { "extra_length_m": 0.4, "width_m": 2.0 }
},
"components": [
{
"name": "콘크리트",
"unit": "㎥",
"amount": 2.83752,
"destination": "unit_price",
"basis_note": "원문 값(라이브러리 표기 2.84)"
},
{
"name": "합판거푸집",
"unit": "㎡",
"amount": 21.2843,
"destination": "unit_price",
"basis_note": "원문 값(라이브러리 표기 21.28)"
},
{
"name": "이형철근",
"spec": "D13",
"unit": "kg",
"amount": 4.776,
"destination": "material",
"basis_note": "원문 값(라이브러리 표기 4.78)"
},
{
"name": "면목",
"unit": "m",
"amount": 12.6728,
"destination": "material",
"basis_note": "A25 · 원문 값(라이브러리 표기 12.67)"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 10.64,
"destination": "earthwork"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 6.44,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 4.2,
"destination": "earthwork"
}
]
},
{
"type_id": "ford_pavement",
"spec": {
"thickness_cm": 20
},
"unit": "㎡",
"source": "uljin_compare",
"source_note": "콘크리트포장 T=20cm /㎡",
"section": {
"note": "단면 — 두께는 규격(thickness_cm) · 와이어메쉬 자리는 소광리 「포장」 그림 「WIRE MASH (콘크리트 2/3T 지점에 설치)」",
"mesh_from_bottom_ratio": 0.6667
},
"notes": [
"⚠ 원문 둘이 다름 — 소광리 「포장」 ㎡당: 와이어매쉬 1.0 · 비닐 2㎡(깔기+덮기) ↔ 이 표(울진 1공구 집계): 와이어메쉬 1.16 · 비닐 없음 · 고르지 않음(확인 대기)"
],
"components": [
{
"name": "레미콘",
"unit": "㎥",
"amount": 0.2,
"destination": "unit_price"
},
{
"name": "와이어메쉬",
"unit": "㎡",
"amount": 1.16,
"destination": "material"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 0.2,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 0.2,
"destination": "earthwork"
}
]
},
{
"type_id": "pipe_wing_wall",
"spec": {
"wing_wall_type": "A-TYPE",
"pipe_diameter_mm": "800"
},
"unit": "개소",
"source": "uljin_library",
"source_note": "§1 관보호공 날개벽 — 원본 탭 「날개벽(800)A-TYPE산출근거」",
"components": [
{
"name": "기초잡석",
"unit": "㎥",
"amount": 1.152,
"destination": "unit_price",
"basis_note": "T=0.2"
},
{
"name": "콘크리트",
"unit": "㎥",
"amount": 2.0595,
"destination": "unit_price",
"basis_note": "저판 0.952 + 벽체 1.1075"
},
{
"name": "유로폼",
"unit": "㎡",
"amount": 12.5376,
"destination": "unit_price",
"basis_note": "저판 1.92 + 벽체 10.6176 · 원본 「유로폼」"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 13.104,
"destination": "earthwork"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 6.504,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 6.61,
"destination": "earthwork"
}
],
"note": "⚠ 철근·면목 줄이 **원본에 없다** — 날개벽 탭 다섯에 그 줄이 없고 집수정구조도 탭에만 D13·면목이 있다. 지어내지 않는다."
},
{
"type_id": "pipe_wing_wall",
"spec": {
"wing_wall_type": "C-TYPE",
"pipe_diameter_mm": "800"
},
"unit": "개소",
"source": "uljin_library",
"source_note": "§1 관보호공 날개벽 — 원본 탭 「날개벽(800)C-TYPE산출근거」",
"components": [
{
"name": "기초잡석",
"unit": "㎥",
"amount": 0.6821,
"destination": "unit_price",
"basis_note": "T=0.2"
},
{
"name": "콘크리트",
"unit": "㎥",
"amount": 1.109,
"destination": "unit_price",
"basis_note": "저판 0.4847 + 벽체 0.6243"
},
{
"name": "유로폼",
"unit": "㎡",
"amount": 6.2309,
"destination": "unit_price",
"basis_note": "저판 1.4786 + 벽체 4.7523 · 원본 「유로폼」"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 7.7269,
"destination": "earthwork"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 4.7148,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 3.0122,
"destination": "earthwork"
}
],
"note": "⚠ 철근·면목 줄이 **원본에 없다** — 날개벽 탭 다섯에 그 줄이 없고 집수정구조도 탭에만 D13·면목이 있다. 지어내지 않는다."
},
{
"type_id": "pipe_wing_wall",
"spec": {
"wing_wall_type": "A-TYPE",
"pipe_diameter_mm": "1000"
},
"unit": "개소",
"source": "uljin_library",
"source_note": "§1 관보호공 날개벽 — 원본 탭 「날개벽(1000)A-TYPE산출근거」",
"components": [
{
"name": "기초잡석",
"unit": "㎥",
"amount": 1.6,
"destination": "unit_price",
"basis_note": "T=0.2"
},
{
"name": "콘크리트",
"unit": "㎥",
"amount": 2.891,
"destination": "unit_price",
"basis_note": "저판 1.368 + 벽체 1.523"
},
{
"name": "합판거푸집",
"unit": "㎡",
"amount": 18.255,
"destination": "unit_price",
"basis_note": "저판 2.24 + 벽체 16.015 · 원본 「거푸집 합판(4회)」"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 24.39,
"destination": "earthwork"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 10.478,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 13.912,
"destination": "earthwork"
}
],
"note": "⚠ 철근·면목 줄이 **원본에 없다** — 날개벽 탭 다섯에 그 줄이 없고 집수정구조도 탭에만 D13·면목이 있다. 지어내지 않는다."
},
{
"type_id": "pipe_wing_wall",
"spec": {
"wing_wall_type": "C-TYPE",
"pipe_diameter_mm": "1000"
},
"unit": "개소",
"source": "uljin_library",
"source_note": "§1 관보호공 날개벽 — 원본 탭 「날개벽(1000)C-TYPE산출근거」",
"components": [
{
"name": "기초잡석",
"unit": "㎥",
"amount": 1.0271,
"destination": "unit_price",
"basis_note": "T=0.2"
},
{
"name": "콘크리트",
"unit": "㎥",
"amount": 1.9109,
"destination": "unit_price",
"basis_note": "저판 0.7736 + 벽체 1.1373"
},
{
"name": "합판거푸집",
"unit": "㎡",
"amount": 10.722,
"destination": "unit_price",
"basis_note": "저판 1.9118 + 벽체 8.8102 · 원본 「거푸집 합판(4회)」"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 13.7179,
"destination": "earthwork"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 7.9134,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 5.8046,
"destination": "earthwork"
}
],
"note": "⚠ 철근·면목 줄이 **원본에 없다** — 날개벽 탭 다섯에 그 줄이 없고 집수정구조도 탭에만 D13·면목이 있다. 지어내지 않는다."
},
{
"type_id": "pipe_wing_wall",
"spec": {
"wing_wall_type": "A-TYPE+집수정",
"pipe_diameter_mm": "800"
},
"unit": "개소",
"source": "uljin_library",
"source_note": "§1 관보호공 날개벽 — 원본 탭 「날개벽(800)A-TYPE+집수정산출근거」",
"components": [
{
"name": "기초잡석",
"unit": "㎥",
"amount": 1.152,
"destination": "unit_price",
"basis_note": "T=0.2"
},
{
"name": "콘크리트",
"unit": "㎥",
"amount": 2.6395,
"destination": "unit_price",
"basis_note": "저판 0.952 + 벽체 1.6875"
},
{
"name": "합판거푸집",
"unit": "㎡",
"amount": 18.3376,
"destination": "unit_price",
"basis_note": "저판 1.92 + 벽체 16.4176 · 원본 「거푸집 합판(4회)」"
},
{
"name": "터파기",
"unit": "㎥",
"amount": 16.256,
"destination": "earthwork"
},
{
"name": "되메우기",
"unit": "㎥",
"amount": 8.44,
"destination": "earthwork"
},
{
"name": "잔토처리",
"unit": "㎥",
"amount": 7.816,
"destination": "earthwork"
}
],
"note": "⚠ 철근·면목 줄이 **원본에 없다** — 날개벽 탭 다섯에 그 줄이 없고 집수정구조도 탭에만 D13·면목이 있다. 지어내지 않는다."
}
],
"not_found": {
"note": "규격은 우리 모델에 있으나 **관측 원단위가 어디에도 없는** 것. 지어내지 않는다.",
"items": [
{
"type_id": "ford_bridge",
"why": "세월교 수량 근거 없음 — 법령·임도기술교본은 설치 조건만(그림 3-18 은 배치 모식도) · 실무 원본(울진 4공구·오솔길 전수)에 세월교 시트·도면 없음. 관 부분은 pipe 로 따로 섬(2026-09-15 브레인 판정 ⑥ — 사유로 닫음).",
"needs": "세월교 표준도 물량 또는 실무 관측 — 나오면 다시 엶"
},
{
"type_id": "retaining_wall",
"spec": {
"form": "반중력식",
"height_m": 1.6
},
"why": "울진 2공구에 H=1.6 이 실재하나 수치가 라이브러리에 없음. H=2.0 값을 비례로 줄이지 않음 — 기초·벽체는 높이에 비례하지 않음."
},
{
"type_id": "retaining_wall",
"about": "기초잡석",
"why": "⚠ **우리 표가 빠뜨린 것이 아니라 원문에 없음**(2026-09-08 전수 확인). 울진 라이브러리 §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㎏」이 전부다 — 기초잡석·터파기·되메우기·잔토가 다 없다.",
"note": "기초잡석이 있는 시트는 **§1 관보호공 날개벽**뿐이다(T=0.2 · Ø800 A-TYPE 1.15㎥/개소 등). 옹벽에 그 값을 옮겨 쓰면 **다른 구조물 값을 갖다 쓰는 것**이라 하지 않는다.",
"needs": "옹벽 기초잡석을 계상할지 · 하면 두께를 얼마로 볼지 — 사용자 확정. 품셈 12-25 는 「기초잡석 운반·부설·다짐」 품만 주고 **두께를 정하지 않는다**(㎥당)."
}
]
},
"double_count_rules": {
"note": "이 표의 값이 품셈 다른 자리와 겹치는 곳. 겹치면 한쪽만 쓴다.",
"rules": [
{
"key": "물빼기 파이프 ↔ 제잡비 윗단",
"where": "품셈 13-6-2·13-6-3·13-7-2 [주]③",
"quote": "물빼기 파이프를 설치한 경우는 윗단의 값, 설치하지 않는 경우는 아랫단의 값으로 하며, 상단에는 물빼기 파이프 설치에 관계되는 노무비, 재료비를 포함한다.",
"our_choice": "물구멍(관)을 **자재로 명시해 세고**, 큰돌쌓기·큰돌붙이기를 쓸 때는 **제잡비 아랫단(미설치)** 을 쓴다.",
"why": "물구멍을 자재 줄로 세우면 규격·수량이 눈에 보이고 되짚을 수 있다. 제잡비 윗단은 같은 것을 품 안에 녹이는 다른 방식이라 어느 쪽이든 하나만 골라야 한다.",
"scope": "⚠ 지금 쓰는 돌쌓기(13-4 계열)에는 **제잡비 행 자체가 없어** 겹치지 않는다(전수 확인). 이 규칙은 13-6·13-7 을 쓰게 될 때 걸린다.",
"guard": "제잡비 윗단과 물구멍 줄이 함께 서면 멈출 것 — B09 ㉥ 가드와 짝."
},
{
"key": "날개벽 「A-TYPE+집수정」 ↔ 유입부 집수정 줄",
"where": "원본 탭 「날개벽(800)집수정산출근거」",
"quote": "A-TYPE 날개벽에 집수정을 **결합한** 형식의 개소당 물량(터파기 16.256㎥ 등)",
"our_choice": "이 형식을 고르면 **집수정 줄을 따로 세우지 않는다** — 날개벽 값이 이미 품고 있다.",
"why": "따로 세우면 한 개소를 두 번 센다(터파기·콘크리트·거푸집 전부).",
"guard": "`wing_wall_type` 이 「A-TYPE+집수정」인데 `inlet_basin_form` 도 차 있으면 사유로 알린다."
}
]
},
"原文_뒷받침": {
"note": "관측값이 **원문과 맞는 것이 확인된** 항목. 지금까지 관측값은 근거가 약한 참조였는데 이 줄은 원문 뒷받침이 있다.",
"items": [
{
"item": "채움콘크리트 0.2 ㎥/㎡",
"observed": "울진 라이브러리 돌쌓기(찰) 채움 0.2 ㎥/㎡",
"source": "품셈 13-6-2 [주]⑩ 「큰돌쌓기(찰쌓기)의 뒤채움콘크리트량은 0.2㎥기준으로 하고 현지여건에 따라 0.3㎥까지 적용할 수 있다」"
}
]
},
"pending_choices": {
"note": "값을 바꾸는 **설계 조건**인데 우리 제원에 칸이 없는 것. 기본값과 「정하면 얼마나 달라지는지」를 함께 적어 화면이 보이게 한다.",
"items": [
{
"key": "material_basis_area",
"label": "자재 원단위의 밑수 — 비탈면적인가 정면적인가",
"default": "비탈면적(= 돌쌓기 면적)",
"where": "실무 원단위 라이브러리 두 시트가 다르게 씀 — 돌골막이는 「(돌쌓기+돌붙임)×0.88 ton/㎡」로 **돌쌓기 면적**에, 돌기슭막이는 고임돌 0.15㎥/㎡ × **정면적** 1.5 = 0.225(시트 0.23)로 씀",
"effect": "정면적으로 바꾸면 고임돌·야면석·채움콘크리트·모르터가 **−4.4 %**",
"scope": "⚠ 면적 자체는 닫혔음(2026-09-08) — 돌쌓기 면적 = 정면적 × √(1+n²), 기울기 몫은 한 번만. 남은 물음은 **그 다음 원단위를 어느 면적에 곱하나**임"
},
{
"key": "anti_suction_sheet",
"label": "흡출방지재·차수시트 시공",
"default": false,
"where": "품셈 13-6·13-7 [주]② — 「흡출방지재 또는 차수시트를 시공하는 경우는 ( )의 값을 적용한다」",
"effect": "인부 수량이 갈림 — 큰돌쌓기 메쌓기 직경 40~60㎝ 기준 보통인부 1.04 → 1.17 인/10㎡ (약 +12.5 %)",
"scope": "⚠ 큰돌쌓기(13-6)·큰돌붙이기(13-7)에만 걸린다. 지금 쓰는 돌쌓기(13-4)에는 괄호 값 자체가 없다."
},
{
"key": "timber_crib_unit",
"label": "목재틀흙막이 원단위",
"default": "품셈 13-13-1 그대로",
"where": "품셈 13-13-1 (단위: 인/㎥당)",
"effect": "1㎥당 건축목공 16.975인 + 보통인부 1.848인. ⚠ 실무 감각에 맞는지 아무도 판단 못 했고, 각재·판재 자재가 카탈로그에 없어 **지금 값은 모자란 값**이다."
},
{
"key": "bill_quantity_digits",
"label": "내역서 수량 표시 자릿수",
"default": null,
"where": "`단수처리_규칙.md` 에 **금액 자리만 있고 수량 자리가 없음**",
"effect": "표시 자릿수와 계산 자릿수가 다르면 보는 사람이 반올림해 곱해 보고 「틀렸다」고 한다(2026-09-07 실제로 그렇게 오진한 일이 있었다)."
}
]
}
}
@@ -1,285 +0,0 @@
{
"schema_version": 1,
"code": "AX-ST-56e81a2c",
"pum_edition": "2026-01-01",
"library_tier": "program",
"item_kind": "form",
"type_id": "masonry_wet",
"name": "돌쌓기(찰)",
"note": "구조물도 양식형 항목 첫 벌(PLAN 3장 ② · 명세 13장 식 칸 계약). 값은 지금 전개(`B08_Quantity_Engine_UnitQuantity.stone_masonry` + 기초잡석)와 같게 둠(판정 Ⓑ). 규격(높이·뒷길이·돌종류)마다 항목을 늘리지 않고 제원 vars 와 표 한 벌로 수량이 다시 남(명세 16장).",
"differs_from_engine": [
"원문 「-」 칸(야면석 75·깬돌 25·견치돌 25/30 고임돌)에서 전개는 고임돌 줄을 안 세우고 채집석에 0 을 더함. 이 양식은 고임돌 줄이 「표 칸이 비어 있음」 오류로 서고 채집석도 막힘 — 명세 13장 Ⓐ(안 선 줄을 0 으로 치지 않음)을 따른 것",
"돌 줄 이름 — 전개는 돌종류 이름(야면석·호박돌…/돌), 양식은 이름 「돌」 고정 + spec 에 종류(명세 13장 Ⓒ)"
],
"vars": {
"H": { "label": "높이(m)", "source": "height_m" },
"L": { "label": "연장(m)", "source": "length_m" },
"N": {
"label": "전면 기울기 1:n",
"source": "judged_face_slope",
"note": "사용자 값이 있으면 그 값, 없으면 품셈 13-4-4 [주]⑪ 표준경사를 전개가 판정해 넘김"
},
"L3": {
"label": "뒷길이(㎝)",
"option": "back_len_cm",
"default": 45,
"default_from": "standard_back_length",
"note": "안 고르면 품셈 13-4-4 [주]⑩ 뒷길이 표준 하한(높이·메/찰 · 범위 안 가장 작은 규격) — 전개와 한 벌(2026-09-14 브레인 판정 ㉮). 45 는 표를 못 읽을 때만"
},
"돌종류": { "label": "돌 종류", "option": "stone_kind", "default": "" },
"계수기준": { "label": "야면석 계수", "option": "stone_coeff_basis", "default": "" },
"TOP_IN": {
"label": "상부 두께(m) — 0 은 안 정함",
"option": "thickness_top_m",
"default": 0
},
"BOT_IN": {
"label": "하부 두께(m) — 0 은 안 정함",
"option": "thickness_bottom_m",
"default": 0
},
"기초": { "label": "기초(기초유·기초버림)", "option": "foundation", "default": "" },
"BLIND": {
"label": "버림 콘크리트(넣음·안 넣음)",
"option": "blinding_concrete",
"default": "넣음"
},
"SUPPLY": { "label": "돌 조달(채집·구입)", "option": "stone_supply", "default": "채집" },
"MPA": { "label": "채움 콘크리트 강도(MPa)", "option": "fill_concrete_mpa", "default": "210" },
"HOLE_DIA": { "label": "물구멍 지름(㎜)", "option": "weep_hole_diameter_mm", "default": 50 },
"HOLE_AREA": {
"label": "물구멍 1개소당 벽면적(㎡)",
"option": "weep_hole_area_m2",
"default": 2,
"candidates": [
{ "value": 2.5, "source": "소광리 07-구조도 「돌기슭막이(45)찰」 실무 관측 — ea/2.5㎡" }
]
},
"RUBBLE_T": {
"label": "기초잡석 두께(m)",
"setting": "rubble_base_thickness_m",
"default": 0.2
}
},
"tables": {
"고임돌표": {
"note": "품셈 13-4-3 고임돌 ㎥/㎡ · 「참고자료」 열은 돌종류 미지정·실무 관행일 때(건설품셈 참고자료) · null 은 원문 「-」",
"keys": [25, 30, 35, 45, 55, 60, 75],
"columns": {
"야면석·호박돌": [0.06, 0.07, 0.09, 0.11, 0.14, 0.15, null],
"깬잡석": [0.09, 0.11, 0.13, 0.16, 0.19, 0.21, 0.26],
"깬돌": [null, 0.1, 0.12, 0.15, 0.18, 0.2, 0.25],
"견치돌": [null, null, 0.12, 0.15, 0.18, 0.2, 0.25],
"참고자료": [null, 0.1, 0.12, 0.15, 0.18, 0.2, 0.25]
}
},
"채움표": {
"note": "품셈 13-4-4 [주]① 채움 콘크리트 ㎥/㎡",
"keys": [25, 30, 35, 45, 55, 60, 75],
"columns": {
"야면석·호박돌": [0.08, 0.1, 0.12, 0.15, 0.18, 0.2, 0.25],
"깬잡석": [0.11, 0.14, 0.16, 0.2, 0.25, 0.27, 0.34],
"깬돌": [0.11, 0.14, 0.16, 0.2, 0.25, 0.27, 0.34],
"견치돌": [0.11, 0.14, 0.16, 0.2, 0.25, 0.27, 0.34],
"참고자료": [0.11, 0.14, 0.16, 0.2, 0.25, 0.27, 0.34]
}
},
"돌중량표": {
"note": "야면석 돌중량 ton/㎡ — 울진 소광 원단위 라이브러리 실무 관측(35·45·55㎝만). 다른 종류는 계산식",
"keys": [35, 45, 55],
"columns": { "야면석": [0.575, 0.88, 1.1] }
}
},
"rows": [
{
"seq": 1,
"name": "돌쌓기",
"spec": "",
"formula": "H*L*SQRT(1+N^2)",
"formula_text": "정면적 × √(1+n²) — 비탈면적",
"unit": "㎡",
"destination": "unit_price",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 2,
"name": "입적",
"spec": "",
"formula": "H*L*(IF(TOP_IN>0,TOP_IN,L3/100+0.3)+IF(BOT_IN>0,BOT_IN,IF(TOP_IN>0,TOP_IN,L3/100+0.3)+0.3*MAX(H-1,0)))/2",
"formula_text": "정면적 × 평균두께 · 상부 = 뒷길이 + 0.30 · 하부 = 상부 + 0.30×(H−1) (실무 구조물도 식, 두께를 넣으면 그 값)",
"unit": "㎥",
"destination": "reference",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 3,
"name": "고임돌",
"spec": "",
"formula": "A*LOOKUP_EXACT(고임돌표,L3,IF(돌종류='','참고자료',IF(계수기준='실무 관행','참고자료',돌종류)))",
"formula_text": "돌쌓기 × 고임돌 원단위(뒷길이·돌종류, 품셈 13-4-3)",
"refs": { "A": 1 },
"unit": "㎥",
"destination": "material",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 4,
"name": "석적",
"spec": "",
"formula": "H*L*L3/100*0.77",
"formula_text": "정면적 × 뒷길이 × 0.77(채움률) — 소광리 시트에만 있는 줄",
"unit": "㎥",
"destination": "reference",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 5,
"name": "돌",
"spec": "{돌종류}",
"formula": "A*IF(돌종류='야면석·호박돌',LOOKUP_EXACT(돌중량표,L3,'야면석'),L3/100*0.77*2.65)",
"formula_text": "돌쌓기 × 돌중량 — 뒷길이 × 0.77 × 2.65(확정 5차, 잠정) · 야면석은 실무 관측표",
"refs": { "A": 1 },
"unit": "ton",
"destination": "material",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 6,
"name": "막자갈",
"spec": "",
"formula": "(0.3+0.45)/2*H*L",
"formula_text": "(뒷채움 상 0.30 + 하 0.45) ÷ 2 × H × 연장 — 정본 여섯 탭 공통값",
"unit": "㎥",
"destination": "material",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 7,
"name": "채움콘크리트",
"spec": "{MPA}",
"formula": "A*LOOKUP_EXACT(채움표,L3,IF(돌종류='','참고자료',IF(계수기준='실무 관행','참고자료',돌종류)))",
"formula_text": "돌쌓기 × 채움 콘크리트 원단위(뒷길이·돌종류, 품셈 13-4-4 [주]①)",
"refs": { "A": 1 },
"unit": "㎥",
"destination": "material",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 8,
"name": "모르터",
"spec": "",
"formula": "A*0.009",
"formula_text": "돌쌓기 × 0.009 ㎥/㎡ (줄눈)",
"refs": { "A": 1 },
"unit": "㎥",
"destination": "unit_price",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 9,
"name": "물구멍관",
"spec": "Ø{HOLE_DIA}",
"formula": "A/HOLE_AREA*(IF(TOP_IN>0,TOP_IN,L3/100+0.3)+IF(BOT_IN>0,BOT_IN,IF(TOP_IN>0,TOP_IN,L3/100+0.3)+0.3*MAX(H-1,0)))/2",
"formula_text": "돌쌓기 ÷ 개소당 벽면적 × 평균두께(관이 벽을 가로지름) — 2㎡ 기본 · 품셈 [주]⑤ 2~3㎡당 1개소 이상 · PVC Ø50(3~6㎝)",
"refs": { "A": 1 },
"unit": "m",
"destination": "material",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 10,
"name": "채집석",
"spec": "",
"when": "SUPPLY<>'구입'",
"formula": "S+W+R",
"formula_text": "석적 + 고임돌 + 막자갈 — 현장 채집분 · 여기서 빼지 않음(사토에서 한 번만 뺌)",
"refs": { "S": 4, "W": 3, "R": 6 },
"unit": "㎥",
"destination": "haul_deduction",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 11,
"name": "버림콘크리트",
"spec": "",
"when": "IF(BLIND='안 넣음',0,IF(BLIND='안넣음',0,IF(BLIND='제외',0,1)))",
"formula": "IF(BOT_IN>0,BOT_IN,IF(TOP_IN>0,TOP_IN,L3/100+0.3)+0.3*MAX(H-1,0))*L*0.1",
"formula_text": "하단 길이(하부 두께) × 연장 × 두께 0.10m — KDS 44 90 00 · 폭은 잡석다짐 폭(KCS 34 50 05)",
"unit": "㎥",
"destination": "material",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 12,
"name": "터파기",
"spec": "",
"formula": "(IF(기초='기초유',0.5*0.9,IF(기초='기초버림',0.1*0.7,0))+H*((IF(TOP_IN>0,TOP_IN,L3/100+0.3)+IF(BOT_IN>0,BOT_IN,IF(TOP_IN>0,TOP_IN,L3/100+0.3)+0.3*MAX(H-1,0)))/2+0.2))*L",
"formula_text": "기초분(기초유 0.5×0.9 · 기초버림 0.1×0.7) + H × (평균두께 + 0.2) × 연장 — 실무 정본 식",
"unit": "㎥",
"destination": "earthwork",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 13,
"name": "되메우기",
"spec": "",
"formula": "(IF(기초='기초유',0.5,IF(기초='기초버림',0.1,0))+H)*0.2*L",
"formula_text": "(기초깊이 + H) × 0.2 × 연장",
"unit": "㎥",
"destination": "earthwork",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 14,
"name": "잔토처리",
"spec": "",
"formula": "E-B",
"formula_text": "터파기 − 되메우기",
"refs": { "E": 12, "B": 13 },
"unit": "㎥",
"destination": "earthwork",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
},
{
"seq": 15,
"name": "기초잡석",
"spec": "",
"when": "IF(BLIND='안 넣음',0,IF(BLIND='안넣음',0,IF(BLIND='제외',0,RUBBLE_T>0)))",
"formula": "B*(RUBBLE_T/0.1)",
"formula_text": "버림 × (잡석두께 ÷ 버림두께 0.1) — 폭이 같음(KCS 34 50 05) · 두께는 확정 3차 ②",
"refs": { "B": 11 },
"unit": "㎥",
"destination": "unit_price",
"rounding": { "mode": "none", "digits": 0 },
"source": "library"
}
],
"unit_price": {
"note": "하단 일위대가 틀(PLAN 3장 하단 ①) — 갈 곳 unit_price 줄마다 한 줄. 수량은 원단위 줄(from_row), 단가는 B09 단가표. 공종 코드는 인계 대응표(찰쌓기 FP-13-04-05 · 갈래 뒷길이)와 10장 판정(기초잡석 FP-12-25)을 따름. 모르터는 산림 품셈에 배합 절이 없어 AX-WK-c0842a0d 모르타르 배합 1:3(건설 품셈 건축 9-1-1)",
"rows": [
{
"seq": 1,
"name": "돌쌓기",
"from_row": 1,
"work_item_code": "FP-13-04-05",
"variant_from": "L3"
},
{ "seq": 2, "name": "모르터", "from_row": 8, "work_item_code": "AX-WK-c0842a0d" },
{ "seq": 3, "name": "기초잡석", "from_row": 15, "work_item_code": "FP-12-25" }
]
}
}
@@ -1,164 +0,0 @@
{
"schema_version": "1.0",
"dataset_id": "stone_kind_unit",
"effective_date": "2026-01-01",
"note": "돌쌓기 계수는 **돌 종류로 갈린다**. 지금까지 한 벌(깬돌 계열)로만 돌고 있었다 — 2026-09-08 지식DB 대조에서 드러났다.",
"why": "품셈 13-4-3(고임돌)은 돌 종류로 **네 줄**, 13-4-4 [주]①(채움 콘크리트)은 **두 줄**, 교본 7-3 뒤채움은 **두 값**이다. 세 곳이 같은 축인데 우리는 축 없이 하나로 돌고 있었다.",
"option_key": "stone_kind",
"option_note": "레지스트리 `masonry_wet`·`masonry_dry` 의 옵션. 2026-09-08 랩탑 창이 만들었고 키 이름을 두 창이 미리 맞췄다(`back_len_cm` 이름 어긋남 사고를 되풀이하지 않으려고).",
"sources": {
"forest_13_4_3": {
"doc": "산림사업 표준품셈 13-4-3 고임돌 소요량 (단위: ㎥/㎡당)",
"note": "돌 종류 네 줄. 「-」는 그 규격에 그 돌을 안 쓴다는 뜻이라 지어내지 않는다."
},
"forest_13_4_4_note1": {
"doc": "산림사업 표준품셈 13-4-4 [주]① 찰쌓기 및 찰붙임의 채움 콘크리트 소요량 (㎥/㎡당)",
"note": "두 줄뿐 — 야면석·호박돌(뒷길이의 33.3 %) / 깬잡석·깬돌·견치돌(45 %)."
},
"textbook_7_3": {
"doc": "임도기술교본 7장 3절 (지식DB 돌쌓기.md §4 · 흙막이.md §4)",
"quote": "뒤채움 = 돌쌓기 표면적 × 뒷길이 × (깬돌·잡석 1/2, 야면석 1/3)"
},
"construction_reference": {
"doc": "건설공사 표준품셈 [참고자료] 돌쌓기 규격별 소요량",
"note": "⚠ **돌 종류로 안 갈리는 한 벌**이고, 그 값이 우리가 지금까지 쓰던 값이다(고임돌 = 깬돌 줄 · 채움 콘크리트 0.16/0.20/0.25/0.27). 2026 개정안이 이 참고자료를 **「삭제 검토」** 로 두었다."
}
},
"policy": {
"primary": "산림사업이므로 **산림품셈이 1차 적용**(CLAUDE.md 3장). 건설품셈 값은 미지정일 때의 기본값 근거로만 쓴다.",
"unset_is_flagged": "돌 종류를 안 고르면 **건설품셈 참고자료 한 벌**로 돌되 그 사실을 알린다 — 값을 못 낸다고 멈추면 이미 저장된 프로젝트가 통째로 빈다.",
"no_interpolation": "표에 없는 뒷길이·「-」 칸은 **지어내지 않는다.**"
},
"kinds": [
"야면석·호박돌",
"깬잡석",
"깬돌",
"견치돌"
],
"wedge_stone_m3_per_m2": {
"note": "고임돌 — 품셈 13-4-3. 키는 뒷길이(㎝). `null` 은 원문 「-」.",
"야면석·호박돌": {
"25": 0.06,
"30": 0.07,
"35": 0.09,
"45": 0.11,
"55": 0.14,
"60": 0.15,
"75": null
},
"깬잡석": {
"25": 0.09,
"30": 0.11,
"35": 0.13,
"45": 0.16,
"55": 0.19,
"60": 0.21,
"75": 0.26
},
"깬돌": {
"25": null,
"30": 0.1,
"35": 0.12,
"45": 0.15,
"55": 0.18,
"60": 0.2,
"75": 0.25
},
"견치돌": {
"25": null,
"30": null,
"35": 0.12,
"45": 0.15,
"55": 0.18,
"60": 0.2,
"75": 0.25
}
},
"fill_concrete_m3_per_m2": {
"note": "채움 콘크리트 — 품셈 13-4-4 [주]①. **두 줄뿐**이라 견치돌·깬잡석·깬돌이 한 값을 쓴다.",
"야면석·호박돌": {
"25": 0.08,
"30": 0.1,
"35": 0.12,
"45": 0.15,
"55": 0.18,
"60": 0.2,
"75": 0.25
},
"깬잡석": {
"25": 0.11,
"30": 0.14,
"35": 0.16,
"45": 0.2,
"55": 0.25,
"60": 0.27,
"75": 0.34
},
"깬돌": {
"25": 0.11,
"30": 0.14,
"35": 0.16,
"45": 0.2,
"55": 0.25,
"60": 0.27,
"75": 0.34
},
"견치돌": {
"25": 0.11,
"30": 0.14,
"35": 0.16,
"45": 0.2,
"55": 0.25,
"60": 0.27,
"75": 0.34
}
},
"backfill_ratio_of_back_length": {
"note": "뒤채움이 뒷길이에서 차지하는 몫 — 교본 7-3. 나머지가 잡석(막자갈)이 된다.",
"야면석·호박돌": 0.3333333333333333,
"깬잡석": 0.5,
"깬돌": 0.5,
"견치돌": 0.5
},
"fallback": {
"note": "돌 종류 미지정일 때 — 건설품셈 [참고자료] 돌쌓기 규격별 소요량 한 벌(고임돌은 「깬돌」 열). ⚠ 일곱 규격을 다 싣는다 — 앞서 네 칸만 들고 있어 25·30·75 를 가까운 칸으로 **접어 올리고** 있었다.",
"wedge_stone_m3_per_m2": {
"25": null,
"30": 0.1,
"35": 0.12,
"45": 0.15,
"55": 0.18,
"60": 0.2,
"75": 0.25
},
"fill_concrete_m3_per_m2": {
"25": 0.11,
"30": 0.14,
"35": 0.16,
"45": 0.2,
"55": 0.25,
"60": 0.27,
"75": 0.34
},
"backfill_ratio_of_back_length": 0.3333333333333333,
"backfill_note": "⚠ 이 값은 **뒤채움이 차지하는 몫**이다. 우리 막자갈 식은 입적에서 **돌 몸통**을 빼므로 코드가 `1 − 이 값` 을 쓴다. 종전 하드코딩 2/3 이 곧 야면석(1 − 1/3)이었다.",
"message": "돌 종류를 안 정해 건설품셈 참고자료 값으로 섰습니다 — 구조물 상세 입력에서 고르면 산림품셈 계수로 바뀝니다"
},
"not_here": {
"note": "이 표가 정하지 않는 것.",
"items": [
"돌중량(ton/㎡) — 품셈은 「돌의 중량은 형상·종류·부피를 고려하고 건설품셈 1-3-3 재료의 단위중량을 참고하여 계상한다」로만 두어 **표를 안 준다.** ⭐ 사용자 확정 5차 큰 것 7(2026-09-09) — **계산식 `뒷길이 × 0.77 × 2.65` 이 기본**이고 야면석만 실무 관측(울진 라이브러리 0.575/0.88/1.10)으로 갈림. 식과 종류 갈래는 `B08_Quantity_Engine_UnitQuantity.stone_weight_per_m2` 한 벌. ⚠ 잠정 — 「실무자 협의 후 명확히」.",
"전면면적이 정면적인지 비탈면적인지 — 2026 개정안 [주] 「시공량은 석재의 **전면면적**(㎡)을 기준한다」로 용어만 확인됐다."
]
},
"back_lengths_cm": [
25,
30,
35,
45,
55,
60,
75
],
"no_folding": "⚠ 표에 없는 뒷길이를 **가까운 칸으로 접지 않는다.** 접으면 40㎝ 가 45㎝ 계수로 조용히 돌고 999㎝ 도 60㎝ 로 접혔다(2026-09-08 실측). 표에 없으면 **계수가 없다고 드러낸다.**"
}
@@ -1,181 +0,0 @@
{
"schema_version": "1.0",
"dataset_id": "material_surcharge",
"original_tables": "resources/data_cost_input_value/coef_2026.json → variables/surcharge_mat — 원문 표가 실린 자리. ⚠ 값이 겹치지만 이원화가 아니다: 저쪽은 원문 보관이고 읽어 쓰는 정본은 여기(rates_pct)다.",
"effective_date": "2026-01-01",
"source": {
"primary": {
"doc": "산림사업 표준품셈 제1장 1-3-1 재료의 할증",
"via": "resources/knowledge/technical_info/01_임도/04_수량분석정보/수량산출_일반.md"
},
"supplementary": {
"doc": "건설공사 표준품셈 1-3-1 재료의 할증('23년 보완)",
"via": "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제1장_적용기준.md",
"note": "산림품셈에 없는 자재만 보완용으로 본다(PLAN 8-5). 실린 값은 출처를 pumsem 필드로 구분."
}
},
"policy": {
"no_invented_values": true,
"unknown_material_is_flagged": true
},
"rates_pct": [
{
"material": "시멘트",
"rate": 2,
"condition": "정치식",
"alt_rate": 3,
"alt_condition": "기타",
"pumsem": "forest"
},
{
"material": "잔골재",
"rate": 10,
"alt_rate": 12,
"alt_condition": "기타",
"pumsem": "forest"
},
{
"material": "채움재",
"rate": 10,
"alt_rate": 12,
"alt_condition": "기타",
"pumsem": "forest"
},
{
"material": "굵은골재",
"rate": 3,
"alt_rate": 5,
"alt_condition": "기타",
"pumsem": "forest"
},
{
"material": "모래",
"rate": 6,
"condition": "노반재료",
"pumsem": "forest"
},
{
"material": "부순돌",
"rate": 4,
"condition": "노반재료",
"pumsem": "forest"
},
{
"material": "자갈",
"rate": 4,
"condition": "노반재료",
"pumsem": "forest"
},
{
"material": "점질토",
"rate": 6,
"condition": "노반재료",
"pumsem": "forest"
},
{
"material": "이형철근",
"rate": 3,
"alt_rate": 7,
"alt_condition": "복잡 구조물 주철근",
"pumsem": "forest",
"alt_rate_range": [
6,
7
],
"alt_rate_note": "원문은 복잡 구조물 주철근 할증을 **범위 「6~7」**로 적는다. 쓰는 값은 위 끝 7 — 범위를 지우지 않고 함께 싣는다(2026-09-18)."
},
{
"material": "원형철근",
"rate": 5,
"pumsem": "forest"
},
{
"material": "강판",
"rate": 10,
"pumsem": "forest"
},
{
"material": "각재",
"rate": 5,
"pumsem": "forest"
},
{
"material": "판재",
"rate": 10,
"pumsem": "forest"
},
{
"material": "레미콘",
"rate": 2,
"condition": "무근",
"alt_rate": 1,
"alt_condition": "철근",
"pumsem": "forest"
},
{
"material": "흄관",
"rate": 3,
"pumsem": "forest"
},
{
"material": "떼",
"rate": 10,
"pumsem": "forest"
},
{
"material": "초화류",
"rate": 10,
"pumsem": "forest"
},
{
"material": "사방용 수목",
"rate": 10,
"pumsem": "forest"
},
{
"material": "원석",
"rate": 30,
"condition": "마름돌용",
"pumsem": "forest"
}
],
"observed_practice": {
"note": "울진 총괄집계 관측 — 참고이지 기본값이 아니다(PLAN 8-10 ★ 법대로).",
"values": {
"모래": 10,
"자갈": 3,
"혼합석": 2,
"시멘트": 2,
"떼": 10
}
},
"candidates_pending_user": {
"note": "건설품셈에서 이름은 찾았으나 **적용 조건이 우리 쓰임과 다른** 것. 지식DB는 근거·후보 가이드이지 값을 확정하는 곳이 아니므로(CLAUDE.md 3장) 엔진은 이 값을 쓰지 않고 「할증률 미확보」로 둔다. 사용자 확정 후 rates_pct 로 옮길 것.",
"items": [
{
"material": "막자갈",
"rate": 4,
"pumsem": "forest",
"listed_in": "산림청고시 제2025-82호 1-3-1 3호 「부순돌ㆍ자갈ㆍ막자갈 4」(건설품셈도 같은 조건)",
"listed_condition": "노상 및 노반재료(선택층·보조기층·기층)",
"our_usage": "돌쌓기 뒤채움",
"why_not_applied": "조문이 쓰임을 노반재료로 못박아 뒤채움에 그 상한을 끌어올 근거가 없음(2026-09-14 브레인 판정 보류 유지 · 사방기술교본도 할증률 없음)"
}
]
},
"not_found": {
"note": "산림·건설 두 품셈의 재료 할증률표를 다 뒤졌으나 **이름이 없는** 자재. 석재 계열은 건설품셈도 해상 사석(기초·피복·뒤채움)과 원석(마름돌용)만 다룬다.",
"materials": [
"야면석",
"고임돌",
"물구멍관",
"못"
],
"checked": [
"산림품셈 1-3-1 전 19종",
"못 — 산림청고시 제2025-82호 1-3-1 6호 기타재료에 없음(2026-09-14 브레인 확인)",
"건설품셈 1-3-1 1~7호(콘크리트·노반·관기초·토사(해상)·사석(해상)·속채움(해상)·강재류)",
"건설품셈 제7장 돌공사 — 재료 할증률표 없음"
]
}
}