⑩ 콘크리트 구조물. 품셈에 구조물별 표준 물량표가 없어(구조물_수량.md ·
배수공_수량.md §2) 실무 설계원본 관측값을 데이터 파일로 둠.
- `resources/data_structure_unit/` — 반중력식옹벽 H=2.0(m당) · 돌집수정 ㄷ/ㄴ형 ·
집수정 Ø800 · 콘크리트포장 T=20cm. 줄마다 출처를 실음.
- 규격 정확 일치로만 씀. 보간하지 않음 — H=1.6 을 H=2.0 에서 줄여 쓰면 틀림
(기초·벽 두께는 높이에 비례하지 않음). 안 맞으면 「원단위 미확보」로 드러내고
표에 있는 규격을 함께 알림.
- BOX암거·세월교는 관측값도 없고 저장 제원에 두께가 없어 전개식도 못 세움.
`not_found` 에 사유와 함께 남기고 미확보로 냄 — 두께를 지어내면 콘크리트·
거푸집·철근으로 번져 나감.
- 성분마다 `basis_kind`(derived/observed)를 달아 화면에 「치수 전개 / 실무 관측」
으로 보임. 두 근거가 한 표에 섞이므로 안 적으면 되짚을 수 없음.
- 배수관의 유입부 집수정을 별도 줄로 세움. 품셈도 관부설과 집수정을 다른
공종으로 둠 — 한 줄로 합치면 어느 쪽 물량인지 못 가름.
품셈 몫 표시 (조율 창 제보 교차 확인)
- `인력(10%)`·`장비(90%)` 처럼 딱지가 비율을 달고 오는 표 25건 확인. 형태 판정은
정상(requirement)이었으나 **장비 몫이 시공능력 공식이라 값이 아님**을 아무도
알 수 없었음. `resource_shares`·`partial_ratio` 를 실어 「단가가 일부만 선 것」이
정상으로 흘러가지 않게 함. 공식 기호는 첫 표에만 있고 뒤 표가 물려받으므로
기호 유무가 아니라 몫 유무로 판정 — 기호로 세면 절반을 놓침(9-13-2).
반영률 계약 갱신 — breakdown 을 늘 실음(`application_ratio_breakdown` ·
`quantity_breakdown`). `application_ratio_pct` 는 두 율이 같을 때만 채우는 편의값.
검증 — 관측 원단위 17건 · 인계 43건 · 품셈 23건 통과, 전체 548 passed. tsc 오류 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
일감 9. 수량 결과(작업 공종 축)와 자재 총괄(자재 축)을 각각 낸다.
- 자재 줄에는 공종코드를 붙이지 않음. 붙이면 자재가 내역 줄로 오해되어
이중계상이 됨. `verify_no_code_on_materials()` 로 코드에 못 박음.
- `in_bill` 을 실어 무대·합계 줄을 가름. 수량은 그대로 넘김 —
무대+도자+덤프 = 총 운반토량 검산에 쓰이는 값이라 빼면 검산이 죽음.
- `ground_class_set` 동봉. 「연암」이 몇 갈래 중 하나인지 알아야 예산내역서가 섬.
- 매핑표는 데이터 파일(`resources/data_work_item_mapping/`). 못 이은 줄은
빈 코드로 두지 않고 `unmatched_work_items` 로 냄.
품셈 형태 판정 교차 확인 — 「첫 칸이 갈래 딱지이고 이름이 둘째 칸」인 표에서
직종을 첫 세 행에서만 찾아 12장 구조물 표 8건이 미판정으로 빠져 있었음.
딱지를 알아보는 규칙을 맨 마지막에 두어 앞 판정을 흔들지 않고 해소
(미판정 85 → 77, 생산량형 16건 불변). 비율 지시를 먼저 보면 강관동바리 같은
소요량표가 참조로 넘어가므로 소요량을 먼저 보게 순서를 잡음.
검증 — 인계 22건 + 품셈 5건 통과, 전체 500 passed.
실서버 `GET /quantity/handoff` 200 (내역 10줄·제외 1·자재 4, 갈래세트 5).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PLAN 8-5·8-6·8-7 의 B08 일감 1번. B09 의 ③단가산출을 여는 선행 작업임.
공종의 정체 = 품셈 절 번호
「9-3-1. 인력」처럼 절 제목이 공종이고 표의 행은 조건별 변형(토질·암종·규격)임.
계층·정렬은 목차표(F0001)에서 나오고 표가 그 절에 붙음. 목차 477노드,
표 456/475 귀속(미귀속 19 는 절번호 없는 부록·경과조치).
pum_form — 뒤집히면 값이 조용히 반대가 되는 자리
productivity(작업능력, 품=1÷값) 16 · requirement(소요량, 품=값÷밑수) 244 ·
coefficient(시공능력 공식 K·f·E) 19 · reference(1장 적용기준·할증·참조지시) 94 ·
undetermined 83.
⚠ 판정 순서가 뜻을 가짐 — 「작업능력(㎥/hr)」 표의 비고에 「보통인부 1인/일」이
흔히 붙어 있어 직종을 먼저 보면 생산량형이 소요량형으로 뒤집힘. 생산량형 표지를
직종보다 앞에 둠.
담당 경계 (PLAN 8-7)
공종 축만 만들고 자원 축(resource_kind·resource_code·amount)은 안 채움 — B09 몫.
대신 원문 셀 raw_row 를 그대로 실어 B09 가 476표를 다시 열지 않게 함.
판정 실패분은 빈칸이 아니라 form_undetermined_*.json 목록으로 냄.
산출 (resources/data_work_item_master/)
work_item_master_2026-01-01.json · form_undetermined_2026-01-01.json · _manifest.json.
dataset_version 에 dataset_id·effective_date·sha256 세 쪽 기록 — 재현성.
공종코드 FP-09-03-01 형식, sort_order 는 STmate 관례대로 256 간격.
검증 — tmp/tests/test_b08_work_item_master.py 14건 전건 통과.
생산량형이 비고의 직종에 뒤집히지 않는 것, 직종이 둘째 열에 있어도 잡는 것,
raw_row 보존, 자원 축 미혼입, 미판정의 목록 등재를 각각 못 박음.
전체 회귀 382 passed (실패 3건은 B05 구조물·코리도 기존 깨짐, 본 변경과 무관).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>