diff --git a/docs/raw/plans/2026-09-13_plan_완료분_이관.md b/docs/raw/plans/2026-09-13_plan_완료분_이관.md deleted file mode 100644 index c6b5d2e4..00000000 --- a/docs/raw/plans/2026-09-13_plan_완료분_이관.md +++ /dev/null @@ -1,207 +0,0 @@ -# 완료분 이관 — 2026-09-13 (데스크탑 메인) - -`PLAN.md` 에서 **미체크 항목이 하나도 없는 절**을 통째로 옮긴 것. 원문 그대로이고 줄여 쓰지 않음. -같이 옮긴 것은 **그 절이 낳은 참고 자료**(검증 기록 · 실측값 · 커밋 번호 · 계획 대비 차이)임. - -**옮긴 날** 2026-09-13 · **옮긴 창** 데스크탑 메인(`main_desktop_1`) · **그때 저장소** `7bd6d101` - -**남겨 둔 것** — 아래 절은 완료로 보이나 살아 있는 실마리가 붙어 있어 계획서에 그대로 둠. - -| 절 | 남긴 까닭 | -| --- | --- | -| 사토장 | 「아직 정할 것」 셋이 열려 있음 | -| 사용자 확정 5차 | 큰 것 3·8 · 여섯째 · 작은 것 5 가 자료·답 대기(⏸) | -| 사용자 확정 4차 (흙막이) | 일곱 형식 원단위가 자료 대기 | -| 사용자 확정 2차 | ② 벽 평균두께가 미체크 | -| 확정 1~11 | 3·4·5·8-3·8-4 가 대기(⏸) | -| 4-13 중간 점검 상태 | 물구멍 관 길이 · 뒷채움 폭 두 물음이 살아 있음 | -| 8-7 이중계상 금지 규칙 | 「원문을 남기는 자리」로 못 박은 절 | -| 8-31 개발용 단추 | 오해를 막는 경고라 계획서에 있어야 함 | -| 9-9 카탈로그 열한 줄 | 9-10 이 이 절을 가리킴 | - ---- - -## 사용자 확정 3차 — 2026-09-09 밤 (여섯 중 다섯) - -### ⭐ 사용자 확정 3차 — 2026-09-09 밤 (여섯 중 다섯) - -**「1~6번은 권장하던 대로, 6번은 자재로」** — 사용자 원문. 아래가 정본임. - - -| # | 물음 | **확정** | -| --- | ---------- | ------------------------------------------------------------- | -| 1 | 흙깎기 작업효율 E | **0.50** (영월 방식 · 현행 산림품셈 인자와 전부 일치) | -| 2 | 기초잡석 두께 | **0.2 m** (폭 1.5m 는 관측 역산 ⇒ 옹벽 0.30㎥/m) | -| 3 | 사토장까지 거리 | ⚠**미정 — 권고한 값이 없어 그대로 물음으로 남김**(현장값) | -| 4 | 구조물 터파기 용수 | **육상(용수 없음)** ⚠ 내가 권고한 적 없어 **통상값으로 적용 + 노티스**. 사용자가 뒤집을 수 있게 | -| 5 | 관급 자재 | **전부 사급** | -| 6 | 콘크리트 자리 | **자재 축에 세움**(㉮) — 사용자 명시 | - - -⚠ **3·4 는 내가 권고를 낸 적이 없는 자리임.** 3 은 물음으로 남기고, 4 는 통상값으로 넣되 -**「사용자 확정이 아니라 통상값 적용」**을 사유·노티스에 적을 것. 뒤집히면 한 줄임. - -**⚠⚠ 그리고 사용자 지시 — 「대신 페이지에 남길 것」.** -**여섯 값 전부를 코드에 박고 끝내지 말 것.** **화면에 칸으로 세우고, 지금 값과 그 근거를 보이고, -사용자가 바꿀 수 있게** 할 것. - -``` -흙깎기 작업효율 0.50 칸 + 근거(현행 산림품셈 9-3-2 · 영월 방식) -기초잡석 두께 0.2 m 칸 + 근거(폭 1.5m 는 관측 역산 · 두께는 원문에 없음) -사토장 거리 칸(비어 있음) — 넣으면 덤프 금액이 섬 -용수 유무 칸(기본 육상) + **「통상값 · 사용자 확정 아님」** 표시 -관급/사급 칸이 이미 있음 — 전부 사급으로 세움 -콘크리트 자재 축에 섬 -``` - -⇒ **정한 값이 화면에서 안 보이면 다음 사람이 왜 그 값인지 모름.** 오늘 지켜 온 -「사유를 드러낸다」와 같은 결임. - -- [x] **구현 상태 (2026-09-13 전수 대조)** — 1(`5780eb93` E 0.50) · 2(`99248440` 0.2m) · 4(용수 육상+통상값 표기) · 6(`a57e1bbe` 자재 축) 코드에 섬. 화면 칸도 섬 — 흙깎기 E(B09 기초자료 탭) · 기초잡석 두께·사토장 거리·용수(B08 설정, `ab51fa38`) · 콘크리트(자재총괄). 3 은 칸만 서고 값은 물음 그대로. 검증 대기. - - 5(전부 사급) — 검증 기록 `2026-09-09b_확인으로_닫은것.md` 로 닫힘(79da822d 자재 여덟 줄 사급 실측). ⚠ 단 **새 프로젝트의 기본값은 여전히 「미정(발주기관 결정)」** 으로 섬(`common_util_project_settings.py:97` 주석 「발주 결정이라 비워 둠」). 기본값을 사급으로 바꿀지는 **사용자 확인 자리**로 남김. - ---- - -## 확정 12~16 · 확정에 딸려 나온 남은 물음 넷 - -### 확정 12~16 (알려만 드린 다섯 → 전부 「하라」로 바뀜) - - -| # | 무엇 | **확정** | -| --- | --------- | ------------------------------------------------------------------------------------- | -| 12 | 내야 할 표 | **16개 전체가 있어야 함.** 안 내던 7개(중기경비계산서 등)를 다 만들 것. **실무 문서에서 확인 가능** | -| 13 | 부대시설 다섯 줄 | **산출에 추가 반영.** 들어가야 할 내용임 (국가지점번호판·안내판·차단기·가설창고·수방자재) | -| 14 | 버림 콘크리트 | **추가.** ⚠ **실무문서 최신본을 따르되 법령·시행령·지침이 있으면 그 값이 우선** | -| 15 | 옛 프로젝트 금액 | **옛 테스트 버전이면 삭제해도 됨.** ⚠ **유가정보는 전국단위 공시가 / 지역단위 공시가를 고를 수 있어야 함** | -| 16 | 도자 한계거리 | **60m.** 상수는 이미 60(`config_system_design.py`)이었고 **설명 주석만 70으로 낡아 있어 맞춤**(2026-09-09) | - - -- [x] **구현 상태 (2026-09-13 전수 대조)** — 12(`3257fe97` 16장) · 13(`42cd2b8f` 부대시설 다섯 줄 — 금액 넷은 5차 3번 대기) · 14(`48597351` 버림 KDS 100㎜ — 화면에서 빼는 칸은 위 8-2) · 15(`f39c195b` 유가 전국/지역) · 16(`674d4ef1` 60m) 코드에 섬. 검증 대기. - -### ⚠ 남은 물음 넷 — 확정에 딸려 나온 것 - -- **⭐ 중기 조종원 노임 산식** — 우리 값이 실무보다 **−36%**. 실무 두 공사지가 쓰는 계수 -`× 16/12 × 25/20` 를 우리가 안 씀. 고칠 자리는 `record.operator_person_days / 8` **한 줄.** -**넣으면** 굴착기 0.7 시간당 86,096 → **106,384(+23.6%)** · 불도저 19톤 124,842 → -**148,861(+19.2%)** — **기계가 든 공종 전부**가 오름. -⚠ **아직 안 넣었음** — 계수의 원문(기재부 예규)이 저장소에 없어 **「원문 미보유」**로 남기고 -중기목록표 비고에 사실만 드러내 뒀음. **사용자 확정 자리.** - -- [x] ⓘ **위 서술은 낡았음 (2026-09-13 대조)** — 계수는 **이미 들어가 있음**: 커밋 `6d607934` · `B09_Estimation_MachineCost.py:51-78`(16/12 × 25/20 ≒ 1.667) · 조종원 줄 비고 「1일 8시간 × 제수당·상여·퇴직충당 16/12 × 25/20」. 25/20 의 원문 확인 못 함은 주석에 그대로 남아 있음. 검증 대기. - ---- - -## 0-13. 계획노선 편집 손질 여덟 - -### 0-13. 계획노선 편집 손질 여덟 (2026-09-12 사용자 지시, 랩탑 메인) — 검증 대기 - -대상은 `B05_Profile/B05_Profile_UI_RouteEdit*.ts` 와 `B05_Profile_UI_Style_RouteEdit.css` 한 벌임. -④ 「표고의 뜻」은 물음이라 답으로 닫음 — 횡단 판 아래 줄의 표고는 **그 횡단에 그려진 선(원지반+계획 횡단)의 해발 범위(최저~최고)** 이고 계획고·절토고가 아님. - -- [x] **① 교각점 고정 단추** — 곡선 패널에 「교각점 고정」 한 줄. 켜면 그 꺾임점의 X·Y 를 못 박아 **노드 끌기·손잡이 끌기가 둘 다 막히고** 반지름·곡선길이 칸 입력으로만 바뀜. 상태는 `apexLock: boolean[]` 로 `curveLock` 옆에 두어 되돌리기·초기화에 같이 실림. - - **검증** — 랩탑_메인 프로젝트(노드 28개) 편집 창에서 23번째 꺾임점을 잡고 잼. **안 잠근 채 끌면** 계획노선 1078.0m → 1067.2m 로 바뀌고, **잠그고 같은 만큼 끌면** 1078.0m 그대로임. 상태줄이 「교각점을 고정했습니다 … 고정 1곳」으로 뜨고, [초기화] 뒤 「고정」 표기가 사라져 사진첩에 함께 실린 것도 확인함. -- [x] **② 절·성토 교차점 밖은 계획선을 안 그림** — ⚠ **계획 대비 바뀐 점**: 처음에는 「원지반을 자른다」로 적었으나, **B06 횡단 카드가 2026-08-20 같은 지적을 받아 이미 계획선을 끊고 있음**(`appendCrossDesignOverlay` 주석 「사면 끝 바깥은 손대지 않는 원지반이라 지반선이 이미 표현한다」). 두 화면이 달라지면 안 되므로 **계획 횡단선**을 교차점에서 끊고 원지반선은 전 폭을 그대로 둠. 교차점 찾기는 `B06_Section_UI_Cross_Fit.ts` 에 `toeOffsets` 를 열어 씀(좌·우 따로, 외삽 자리는 안 씀). - - **검증** — 측점 1+0.0 에서 SVG 점을 읽음. 고치기 전에는 원지반·계획선이 **둘 다 10~368px(±20m 전 폭)** 이라 겹쳐 그려졌고, 고친 뒤 원지반 10~~368px · 계획선 **110~~258px**(사면 끝 사이)로 갈림. 성토사면·절성토 면적 표기는 8.85m · 7.20㎡ · 6.69㎡ 로 안 바뀜. -- [x] **③ 횡단을 벡터로 + 휠 줌·팬 (공용화)** — 캔버스 그림을 SVG 선으로 바꿈. 줌·팬 본문을 **공용 조각**(`A00_Common/b_svg_zoom_pan.ts`)으로 빼고 `B06_Section_UI_Cross_View_Zoom.ts` 는 여백만 씌우는 감싸개로 남김(B06 부르는 쪽은 안 고침). B06 은 휠을 줌에 안 묶고 B05 는 휠 = 줌 — `wheelZoom` 한 칸으로 가름. - - **검증** — 휠 한 칸에 배율 1 → 1.15 → 1.3225, 반대로 돌리면 1.1506, 더블클릭에 `scale(1)` 로 되돌아옴. 가운데 버튼으로 (40, 20)px 끌면 `translate` 가 그만큼 따라옴. `viewBox` 378×312 가 판 크기 377×311 과 1:1 이라 커서 자리가 안 밀림. -- [x] **⑤ 이전 횡단 판은 계획선이 바뀔 때만** — 측점 누르기로는 아래 판을 안 채우고, 계획 평면선을 고쳤을 때만 고치기 전 것이 내려감. - - **검증** — 측점 1+0.0 을 **두 번** 눌러도 아래 판이 「노선을 고치면 …」 빈 상태 그대로임. 노드를 끌어 계획노선 1078.0 → 1075.7m 로 고친 뒤에야 아래 판에 1+0.0 횡단이 앉음. -- [x] **⑥ 「거리 재기」 눌린 표시** — `is-active` 가 붙는데 꼴이 없어 겉모습이 안 바뀌던 것. `.b05-routeedit__actions .ui-btn.is-active` 한 줄 추가. - - **검증** — 단추를 누르면 바탕 `rgb(185,154,255)`(`--color-primary`) · 글자 흰색 · 테두리 투명. 다시 누르면 원래 꼴로 돌아옴. -- [x] **⑦ 등고선 높이 라벨 맨 위로 + 촘촘히** — 라벨을 노선·측점 눈금보다 **나중에** 그려 안 가려지게 함(띠 300m 는 다시 씌움). 촘촘함은 라벨 솎기 예산을 이 화면에서만 350 → 1200 으로 올려서 냄. - - **검증** — 화면 갈무리에서 905·910·915m 가 나란히 떠 **5m 눈금**(LAS 등고선이 낼 수 있는 가장 촘촘한 단위)까지 내려온 것을 봄. 그리기 차례는 등고선 → 노선·눈금 → **라벨** 순으로 바뀜. -- [x] **⑧ 곡선 길이(L) 하한도 지킴** (2026-09-12 사용자 추가 지시 「반경과 길이 둘 다 지켜야 함」) — L = R·Δ 라 한 자리의 하한을 **반지름 하나로 모아** 봄(`radiusFloorM` = max(R 하한, L 하한/Δ)). 값 끌어올리기·모자란 양 판정·칸 막기가 모두 이 값을 씀. - - ⚠ **예외 — 내각 155° 이상**(별표2 Ⅰ.2.다.(1) 「곡선을 설치하지 아니할 수 있다」)은 L 하한을 안 걺. 거기서 L 을 채우라 하면 교각이 0 에 가까워 R 이 수십 배로 부풀어 **안 고친 구간이 휨**. 그 자리는 곡선 패널에 「155° 이상 — 곡선 생략 가능」으로 적어 냄. - - **검증** — 실측: 곡선 26곳 중 L 5m 미달 **6곳이 전부 내각 158.8~174.8°**(예외 구간)이고 155° 미만 미달은 0곳. 창을 열어도 계획노선 1078.0m 그대로(조용한 변형 없음). 패널에서 내각 115~147° 자리는 R 하한 12 · L 하한 5 가 걸리고, 157° 자리는 L 하한이 안 걸림(`min` 1). 내각 134° 자리에 L 을 3m 로 적으면 5m 에서 멈추고 R 하한 12m 이 이겨 L 9.7m 로 되돌아옴. - - **시험** — `resources/tester/test_b05_curve_radius_floor.py` 7건(Node 헬퍼가 `_Edits.ts` 를 그 자리에서 트랜스파일). L 하한이 R 을 끌어올리는 자리(내각 150° · L 20m → R 38.2m)까지 못박음. -- [x] **자체검증 한 벌** — `tsc --noEmit` 통과 · `prettier` 적용 · `pytest resources/tester/ -q` **1330 통과 · 22 건너뜀**. 화면 검증은 ORCA 탭에서 사용자처럼 조작해 위 수치로 판정함. - - ⚠ **못 본 것** — ORCA 내장 창이 637px 라 오른쪽 횡단 칸이 접히는 폭임. 검증 동안만 칸을 띄워 두고 봤으므로, **1500px 이상 창에서의 실제 배치**는 사용자 화면에서 한 번 봐 주셔야 함. - ---- - -## 3-17. 횡단도 손질 다섯 - -### 3-17. 횡단도 손질 다섯 (2026-09-12 사용자 지시, 랩탑 보조) - -**① 노면이 넓어 보이는 까닭 — 조사 끝** - -노견은 안 늘어남 — 좌·우 각 0.5m 고정(`config_system_design.py` 표준값). 넓어진 것은 **차도**이고, 까닭이 둘이라 겹쳐 보임. - -- **곡선부 확폭** — 평면 곡선반경 표(별표2 Ⅰ.2.나.(4))로 **곡선 바깥쪽 편측**에만 붙음. 화면 라벨이 `규격 3.00 + 확폭 1.50` 으로 이미 갈라 보여 줌. 1.50m 은 반경 15~18m 구간값이고, 확폭 뒤 유효너비 상한은 5.0m. -- **기슭막이 노폭 연장** — 벽이 1:1.2 성토사면 착지점보다 바깥에 서면 물매를 눕히지 않고 **노견을 그만큼 수평 연장**함(`fillSlopeOf()`). 몫은 벽 라벨 `· 노폭 연장 N.NNm` 으로 뜸. - -- [x] ⚠ `**B06_Section_UI_Page.ts` 828줄** — 700줄 한도 넘음(계획선 편집 배선 +28줄, 손대기 전 800줄). 다음 손질 대상. - - **자체검증 (2026-09-13, 랩탑 보조)** — 착수 시점 실측은 **853줄**(적힌 828줄보다 25줄 더 늘어 있었음). - **순수 이동**으로 둘로 뗌 — 동작 변경 없음. - - `B06_Section_UI_Page_Design_Sync.ts` (218줄) — 설계 선택 반영·낡음 재계산·소단 동기화·[전체 반영] - - `B06_Section_UI_Page_Grade_Edit.ts` (85줄) — 종단 계획선 ▲▼ 제공자 - - 남은 `B06_Section_UI_Page.ts` **644줄** (한도 안) - - 검사 — `npm run typecheck` 통과 · `prettier` 적용 · `pytest resources/tester/ -q` **1330 passed, 22 skipped** - (소스 문자열 감시 시험 셋이 옮겨 간 자리를 못 봐 실패 → 시험이 분리 모듈까지 읽게 고침: - `test_b05_stale_design_sync.py` · `test_b06_ditch_choice.py` · `test_masshaul_single_source.py`) - - 화면 판정 (ORCA 탭 · 포트 5174 · 프로젝트 `랩탑_보조`) — 측점 20.0m 기준 - · 계획선 ▲ 한 번 — 계획고 **871.93m → 872.03m**(+0.10), 세션 초안에 `station_offsets {"20.000": 0.123218}` 기록 - · 이어 전 측점 재계산이 돌아 그 카드가 바뀜 — 성토사면 **8.85m → 9.24m**, 절토 계 **3.33㎡ → 3.52㎡** - · 카드(측점) 선택 — 4번째 카드 클릭 → 구조물 넘김값 `{"at":60}` 기록(선택 연동 정상) - · 되돌림 — 세션 초안·넘김값 지우고 새로고침 → 871.93m · 8.85m · 절토 1.79/1.54 · 카드 62개로 복귀 - - 계획 대비 차이 — 없음(파일 이동만). 다만 700줄을 넘는 B06 파일이 더 남음: - `_UI_Cross_Design.ts` 782 · `_UI_Cross_View.ts` 756 · `_UI_Section_View.ts` 720 · `_UI_Cross_Culvert_Geom.ts` 720. - ---- - -## 3-15. B06_Section_Engine_Design.py 700줄 내리기 - -### 3-15. `B06_Section_Engine_Design.py` 가 700줄을 넘음 (2026-09-09) - -``` -남길 것 compute_cross_design 본체 + 결과 조립 (짝이 걸린 자리) -떼는 것 ① SectionGeometry 클래스 → B06_Section_Engine_Design_Geometry.py - (TS 짝은 이미 common_util_cross_design_geometry.ts 로 떨어져 있음 — 같은 선) - ② 표준값 해석·저장분 읽기 도우미 → B06_Section_Engine_Design_Specs.py - (_resolve_group · _as_float · curve_widening_args — TS 에 짝이 없는 파이썬 전용) -``` - -``` - ⇒ ①은 **TS 가 이미 그 선으로 갈라 둔 자리**라 거울이 안 깨지고, ②는 짝이 없는 몫임. - 착수 전 이 축을 한 번 더 보이고 승인받을 것. -``` - -- [x] **700줄 이하로 내림** — ①만 떼어 냄(커밋 `2972e4cc` · 924 → 522줄). ②는 **안 뗌** — ① 만으로 한도 안에 들어와 뗄 까닭이 없어짐(계획 대비 차이). - - **검증** (2026-09-13 랩탑 메인) — 줄 수 실측: `B06_Section_Engine_Design.py` **485줄** · `_Geometry.py` 412줄. 검증 대기. - ---- - -## 검증 V-11 · V-12 · V-16 · V-17 — 닫힌 네 건 - -### 지금 사람이 볼 수 있는 것 — 4건 - - -| # | 확인할 것 | 어떻게 | 안 하면 | -| -------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -| ~~**V-11**~~ ⭕ | 반대 방향 검사가 **새 칸에도** 걸리나 | ✅ **시험으로 옮김**(2026-09-09 밤 · `test_b09_verify_guards`) — 칸을 늘려도·빠뜨려도 걸리는 것을 못 박음 | — | -| ~~**V-12**~~ ⭕ | 준비공 **여섯 줄이 B09 에 다 가나** | ✅ **시험으로 옮김**(2026-09-13 · `5e09a861` · `test_b09_prep_handoff_bill`) — 준비공·부대시설 **14줄 전부**가 B09 에서 내역 본체(표토제거·뿌리 적재·제근) 또는 제외 줄(사유째)로 섬, 어디에도 없는 줄 0. 표토제거 **2,359.035㎥ 가 수량째 본체에 섬**. ⚠ 단가는 아직 안 붙음 — 표토제거 「일위대가 없음」(시트 9번 표토 축) · 제근 「후보 6건」(임목축적 입력) · 뿌리 적재 「단위 불일치 ㎡ vs 주당」 — 셋 다 답·입력 대기 자리라 이 줄에서 안 다룸 | — | -| ~~**V-16**~~ ⭕ | 불도저 운반 **네 줄이 금액으로** 서나 | ✅ **화면 실측**(2026-09-09 밤) — 「네 줄」은 실은 **불도저 둘 + 덤프 둘**이었고 **불도저 둘은 금액으로 섬**: `3-1 dozer 운반 토사 17.39㎥ × 1,712.0 = 29,770원` · `3-2 리핑암 61.13㎥ × 3,911.3 = 239,105원`. **덤프 둘은 「일위대가가 아직 없습니다」** 로 뜸(운반거리 대기 — 아래 사토장 줄과 같은 것). 갈래마다 단가가 서는지 시험으로도 못 박음 | — | -| ~~**V-17**~~ ⭕ | 공구손료가 **이중으로 안 붙나** | ✅ **밑수가 겹치지 않음**(2026-09-09 밤) — 공구손료는 **주재료비 → 재료비**, 제잡비는 **노무비 → 경비**. 한 공종에 둘 다 있어도 이중계상이 아님(시험으로 못 박음). 지금은 **주재료비가 0** 이라 3% 를 넣어도 한 원도 안 움직임. ⚠ **석공사·철골공사는 특수공구라 건설품셈 1-2-6 이 「별도 계상」**으로 둠 — 일반 비율을 그대로 붙이면 안 되는 자리라 **칸 사유에 적어 둠** | — | - ---- - -## 검증 V-14 — 관급/사급 「발주기관 결정」 문구 - -| ~~**V-14**~~ ⭕ | 관급/사급 **「발주기관 결정」 표시** 문구 | ✅ **고쳤음**(2026-09-09 밤 · 커밋 `89effeca`) — 표기를 **「미정(발주기관 결정)」** 으로, 경고 머리를 **「관급/사급 미정 — 발주기관이 정하는 자리입니다」** 로. **값(`unknown`)·판정은 그대로**이고 문구만 바꿨음(시험도 그 낱말로 고침) | - ---- - -## 검증 닫은 것 — V-8 · V-9 · V-10 · V-15 - -### 닫은 것 (2026-09-09 밤 · 근거는 검증 폴더와 아래 절) - -- **V-8 산출근거 문구 ↔ 길이** — ⭕ 어긋날 자리 없음. B08 줄이 -「돌쌓기(찰) H=2.5 · L=10.0m · **NO.4 ~ NO.4+10**」로 뜨고 정본 구간 80~90m 와 한 값 -(표기는 `stationLabel` 한 벌로 냄, 커밋 참조). -- **V-9 표준도 하단표** — ⭕ 뜨고 있음. `standard_sheet_3` 에 Table 엔티티 22행이 들어 있고 -갈무리로도 **찰 15줄**이 수량·단위까지 차 있음(메는 13줄). 「찰 11 · 메 8」은 옛 값. -- **V-10 표준도 4장** — ⭕ 도면 목록에 넷 다 뜨고 blank 0. **전체 장수는 기준이 못 됨.** -- **V-15 층따기 길이 칸** — ⭕ 칸이 서 있고 **면적 × 길이 → ㎥** 로 곱해짐. 길이가 비면 -막고 사유(`input_missing`). 시험 둘이 잠금. diff --git a/docs/raw/plans/2026-09-13b_plan_구컨셉_전문_재편전.md b/docs/raw/plans/2026-09-13b_plan_구컨셉_전문_재편전.md deleted file mode 100644 index fd298b1f..00000000 --- a/docs/raw/plans/2026-09-13b_plan_구컨셉_전문_재편전.md +++ /dev/null @@ -1,1049 +0,0 @@ -# 상시 계획서 - -> 운영 원칙 -> -> - **작업 목록**: 남은 일을 한 곳에 -> - **구획은 페이지·기능별** 착수하지 않기로 한 것만 맨 아래 **보류** -> ⚠ **별도 파일로 가르지 않는다** — 상시계획서는 한 파일로만 운영. -> - **담당은 적지 않는다** — 어느 창·폴더가 맡을지는 그때그때 정한다. -> - **작성방법** — 짧고 이해하기 쉽게, 문단의 종료 시점 전까지 줄바꿈금지. -> - **완료분 원문**은 `docs/raw/plans/` 날짜별 파일에 있음 — 최근 것 `2026-09-13_plan_완료분_이관.md` -> (확정 3차 · 확정 12~16 · 0-13 · 3-17 · 3-15 · 닫힌 검증 V-8~V-17). - -## 작업 목록 - -### ⭐ 사토장 — 사용자 설계 원문 그대로 옮김) - -**여쭀던 「사토장까지 거리」의 답이자, 그보다 큰 설계임.** 거리를 값으로 받는 것이 아니라 -**사토장을 노선 위에 놓는 것**임. - -**무엇인가** — **횡단도에서 기존 성토선을 그대로 두고, 노견 이후 확장 방향으로 추가 성토선을 -하나 더 긋는 것.** 그 추가 성토가 곧 사토장임(현장 안에 쌓는 것). - -**받는 값** - -``` -기본 기준 측점 -세부 부피값(사용자 입력) - 추가 거리값(외부 사토장을 쓸 때 대비) -``` - -**거리 셈** — **공사장 입구에 사토장이 있다고 보고 계산한 거리 + 추가 거리값.** -⇒ 추가 거리를 넣으면 **외부 사토장 운영도 같은 틀로 됨.** 그때는 **횡단도 표기가 필요 없음.** - -**횡단도** — **추가 성토선의 확폭 방향 길이가 자동 결정**되면 됨(부피에서 역산). -**유토곡선** — 그러면 당연히 표현됨. -**수량·원가** — 그 사토장 값을 그대로 씀. - -**⚠ 정하며 갈 것 셋 (사용자 원문에 없어 구현하며 확인)** - -``` -㉠ 걸치는 구간 기준 측점 하나인가, 구조물 C군처럼 전/후 구간인가 - → 부피를 길이로 나눠야 하므로 구간이 필요함. **C군과 같은 모양**을 권함 -㉡ 확폭 성토선 기울기를 기존 성토 기울기와 같게 볼 것인가 - → 같게 두는 것이 자연스럽고, 다르면 사용자 칸이 하나 더 필요 -㉢ 「공사장 입구」 노선 기점(BP)으로 볼 것인가 - → 측점에서 기점까지 누가거리는 이미 아는 값 -``` - -⚠ **셋 다 임의로 굳히지 말고 화면에 드러내고 바꿀 수 있게** 할 것(사용자 지시 「페이지에 남길 것」). - -**⚠⚠ 정정 — 폭을 재는 기준 (2026-09-09 사용자 보충)** - -> 「사토장의 성토선을 긋고 **부피를 계산하는 기준이 노견 바깥쪽이 아니라 -> **노견과 노면의 사이**를 기준으로 길이가 늘어나고 사토장 부피가 되어야 함」 - -⇒ **폭의 시작점은 「노면 끝(= 노견 시작)」임.** 노견 바깥 끝이 아님. -⇒ 사토장이 서면 **그 구간의 노견이 사토장 성토 안에 들어감** — 노견 폭도 사토장 폭에 포함됨. -⚠ **이중계상 확인이 필요한 자리** — 원래 노견 성토가 **노체 성토에 이미 들어 있으면** - 사토장이 그것을 또 세게 됨. **사토장이 선 구간의 노견 몫을 어떻게 다루는지**를 - 구현 전에 반드시 확인할 것(빼는가 · 사토장이 대신하는가). - -**⭐ 설계 (랩탑 메인 정리 · B05·B06 몫)** - -``` -타입 spoil_fill 「유용토운반작업장(노선 내)」 E군 · interval -칸 capacity_m3(부피) · extra_distance_m(추가 거리) · fill_slope_ratio(빈 값 = 노선 성토 따름) - + length_m · before_m · after_m (C군 규약) -그리기 성토선 바깥에 추가 성토선 — **구조물 designTrim 통로를 그대로 탐**(새 개념 없음) - **파선** + 말풍선 「유용토운반작업장 · 부피 ○㎥ · 폭 ○m」 - ⚠ 구조물 터파기 파선과 **선 종류를 갈라야** 함 -폭 부피에서 **되풀이로 역산**(폭 잡고 → 측점 단면적 → 평균단면적법 → 목표와 비교) - **폭은 구간 내내 하나** · **상한 = 지반선이 있는 데까지**(그 밖은 지반을 모름) - 안 서는 측점은 기존 `slope_unclosed` 로 가림 -내는 값 capacity_m3 · placed_m3 · unplaced_m3 · 측점별 station_placed_m3 - ⚠ unplaced > 0 이면 알림. **폭을 억지로 키우지 않음** -유토곡선 잔량마다 spoil_destination_chainage_m · spoil_haul_distance_m - (없으면 null — 거리를 지어내지 않음. B08 통짜 입력으로 떨어짐) - 사유 「사토장에서 계산」 / 「설계 입력값」 을 값과 함께 -``` - -**⭐ 새로 만들 것이 적음** — `designTrim` · 단면적·평균단면적법 · `slope_unclosed` · -`transfers`·띠(평균거리) · 잔량 지반 갈래 **다섯이 이미 있음.** -새로 짜는 것은 **폭 역산 되풀이**와 **타입·거리 칸**뿐. - -**⚠ 아직 정할 것** - -``` -③ ✅ **닫힘 (2026-09-09 사용자 확정)** — 사용자 원문: - 「**기존 구조물 측점이나 규칙 측점에만 들어가는 게 맞아**」 - ⇒ 사토장은 **이미 있는 측점 위에만** 놓임(구조물이 선 측점 또는 정규 측점). - **새 측점을 만들지 않음.** 구간 시·종점도 측점에 맞춤 - ⇒ **「공사장 입구 가정」이 필요 없어짐** — 사토장 측점이 정해지므로 거리는 - **발생점 → 사토장 측점** 누가거리로 그냥 나옴(실무 「사토운반」 탭과 같은 꼴) - ⇒ `extra_distance_m` 는 **외부 사토장 대비용으로만** 남음 -⚠ 사토 운반량을 어느 상태로 세나(자연/느슨/다짐) ← 실무 탭 수식 확인 중 -⚠ 실무 「×0.8」의 정체 · 암 1.0 이 우리 1.15/1.30 과 다름 ← 같이 확인 중 - ⚠ 답 오기 전까지 **우리 계수를 건드리지 말 것** -1 「사토장 관리」 줄을 세울 것인가 — **공종 코드가 없음**(B08·B09 같이 볼 자리) -``` - -**⇒ 이것이 서면 풀리는 것들** - -- 사토 운반 거리가 **설계에서 나옴** — 물어보던 값이 아니게 됨 -- 유토곡선 사토가 **갈 곳이 생김**(지금은 잔량으로만 남음) -- 구조물 잔토·채집석 공제가 **금액으로 드러남**(운반이 서므로) - -### ⭐⭐ 사용자 확정 5차 — 2026-09-09 밤 (결정 시트 회신, 큰 것 여덟 + 작은 것 다섯) - -**이 절이 정본임. 다시 묻지 말 것.** 시트 원문 [https://claude.ai/code/artifact/206bcb63-004e-49e8-ba3b-eeb520b0e590](https://claude.ai/code/artifact/206bcb63-004e-49e8-ba3b-eeb520b0e590) - -#### 큰 것 여덟 - - -| # | 물음 | **확정** | 해야 할 것 | -| --- | ---------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| 1 | 비탈 터파기 | **지금 이대로** (기초 + 비탈) | 값 그대로.`155.625㎥ · 11,263,899원` 유지. **터파기·되메우기·잔토 세 줄의 「확정 대기」 노티스를 걷을 것** | -| 2 | 지장목제거 | **두 줄로 가름** (권고대로) | 실무처럼**뿌리뽑기 + 잡관목제거**. **같은 면적(17,873.8㎡)이 두 줄에 그대로 들어감 — 이중계상 아님** | -| 3 | 공종 없는 다섯 줄 | ⚠**보류.** 「나중에 실무 문서 첨부. **임의로 만드는 건 지금은 무의미**」 | **일위대가를 만들지 말 것.** 줄은 서되 사유로 두고 **실무 문서를 기다림** | -| 4 | 뿌리 운반 | **덤프** | ⚠ 사용자 관찰 — 「**실제 운반품이 적용 안 되는 듯함. 나중엔 적용될 가능성도 있음**」 ⇒ 덤프로 잡되 품이 안 붙으면 **그대로 두고 사유**. 억지로 붙이지 말 것 | -| 5 | 근주이식·임목파쇄 | **권고대로**(기본 안 셈) | ⚠ 단 「**현장에 따라 파쇄가 적용될 필요 있음**」 ⇒ **임목파쇄는 켤 수 있는 칸**을 둘 것. 기본은 꺼짐 | -| 6 | 제근 단위 | **권고대로 — 면적 축** | 건설품셈 3-9-2 **「1,000㎡당」**을 빌려 씀. ⚠**교차 참조 표시 필수**(임도 전용 품이 있는데 건설품셈을 쓰는 것). 밑수가 서면 **제근·뿌리 적재·뿌리 운반·지장목제거 네 줄이 함께 섬** | -| 7 | 돌 무게 | **권고대로 — 계산식** | `뒷길이 × 0.77(채움률) × 2.65(비중)`. ⚠ **돌 종류별 인자표**로 둘 것(야면석은 그 식이 안 맞음). ⚠ 「**나중에 실무자 협의 후 명확히**」 — 잠정임을 화면 근거에 적을 것 | -| 8 | 사급 자재 단가 | **물가정보 API 로 반영 예정** | ⚠ 「**견적단가가 들어가는 부분은 우리가 생각해 봐야 함**」 ⇒ **API 로 오는 몫**과 **업체 견적으로 받을 몫**을 가르는 설계가 선행. 지금은 미결 | - - -⚠ **8번의 「구조물 넷 표준 단면」(소단·BOX암거·소형사방댐·옹벽 H=1.6)은 답이 안 왔음.** -3번과 같은 결(「나중에 실무 문서 첨부」)로 보고 **기다림.** 임의로 만들지 말 것. - -#### 작은 것 다섯 - - -| # | 물음 | **확정** | -| --- | --------- | -------------------------------------------------------------------- | -| 1 | 공구손료 비율 | **지금은 안 넣음. 다만 숫자를 넣으면 되게 열어 둘 것** — 칸을 만들되 기본은 빔, 비면 안 붙음 | -| 2 | 물빼기 구멍 | **국가기준으로 감**(Ø50 · 2㎡당) **+ 숫자 변경 가능하게** | -| 3 | 막자갈 식 | **실무식으로** — `(상 + 하) ÷ 2 × H` | -| 4 | 체적·석적 두 줄 | **실무대로 세울 것** | -| 5 | 옹벽 기초잡석 | **실무가 어떤지 확인하고 일단 따라갈 것** ⚠ 두 원본이 「없음」으로 일치했으므로 **더 볼 실무 자료가 있는지부터** | - - -⚠ **여섯째(규준틀 목재 손율)는 답이 안 왔음** — 시트에 늦게 붙어 못 보셨을 수 있음. **다음에 여쭐 것.** -지금은 **아무도 안 곱하는 상태** 그대로 두고 사유만 유지. - -**⇒ 이 확정으로 풀리는 것** — 시트 답 대기 아홉 중 **일곱이 닫힘**. 남은 것은 **3번·8번(자료 대기)**뿐. - -**구현 상태 (2026-09-13 코드·커밋 전수 대조, 랩탑 메인)** - -- [x] 큰 것 1·2·4·5·6 — 코드에 섬(`0e841b35` 노티스 걷음 · `857a93f0` 지장목 두 줄 · 뿌리 운반 FP-10-12 사유 · `962bbfe9` 임목파쇄 칸 기본 꺼짐 · `691b356e` 제근 면적 축+교차 참조). 검증 대기. -- [x] 작은 것 1·2·3·4 — 코드에 섬(`83c842e3` 공구손료 칸 · 물빼기 Ø50·2㎡ 등록부 칸 · `252e6b54` 막자갈 실무식 · `f6f9392e` 체적·석적). 검증 대기. -- [x] 큰 것 7 — 식·잠정 표기·**종류 갈래**(야면석 관측표 / 나머지 계산식)는 섬(`stone_weight_per_m2` 한 벌 · 돌쌓기·골막이 공용). 낡은 설명 둘을 고침(`2e6cfe5d` — 표의 「사용자 확정 대기」 · 관측표 주석이 코드와 반대). - - **검증** (2026-09-13 랩탑 메인) — `test_b08_stone_kind` · `test_revetment_stone_fields` · `test_b08_unit_quantity` 48건 통과, 값 불변. ⚠ **계획 대비 차이** — 채움률·비중을 종류별 **표로 빼지는 않음**: 지금은 식을 쓰는 세 종류가 **같은 값**(0.77·2.65)이라 표로 옮기면 같은 수 세 벌이 되고, 0.77 은 석적 줄도 같이 씀. **종류별로 다른 값이 실무자 협의로 오는 날** 표로 뺄 것. -- [x] 작은 것 2 딸림 — 표준도 그림 주석이 구조물별 물빼기 값이 아니라 기본값을 씀 — 커밋 `af139d65`. - - **자체검증** (2026-09-13 랩탑 보조) — 그림이 수량표와 **같은 함수**(`weep_hole_spec`)를 부르게 고침. - 화면 실측(ORCA 5174 · 프로젝트 `랩탑_보조`) — 돌쌓기(찰) 한 기에 물빼기 Ø75 · 3㎡ 를 넣고 저장한 뒤 - 표준도 3장 도면 글자가 **「물구멍 Ø75 — 3㎡당 1개소」**로 바뀜(전에는 늘 「2㎡당 1개소」, 지름은 아예 안 적었음). - 안 정한 장은 국가기준 Ø50 · 2㎡당으로 뜨는 것을 시험으로 굳힘 — - `resources/tester/test_b07_standard_spec_blinding_weep.py` 5건. 전체 `pytest` **1344 통과 · 22 건너뜀**. - 계획 대비 차이 — 지름까지 함께 적음(전에는 면적만 적혀 어느 지름인지 도면으로 알 수 없었음). - -- ⏸ 큰 것 3·8 · 여섯째(규준틀 손율) — 자료·답 대기 그대로. -- ⏸ 작은 것 5(옹벽 기초잡석) — 원문 전수 확인 결과 「없음」(`docs/raw/verification/2026-09-09b_확인으로_닫은것.md`)인데 코드는 3차 ② 로 0.30㎥/m 를 세고 있음 — **셀지 말지 사용자 확인 자리**. - -### ⭐ 사용자 확정 4차 — 2026-09-09 밤 (흙막이 표현) - -**「흙막이는 횡단도에서 표현방식들과 옵션들은 동일하게 반영하면 될거야. 형상은 동일해. -물론 데이터는 분리하여 계산되어야함.」** — 사용자 원문. 아래가 정본임. - - -| 무엇 | 확정 | -| ------------ | ----------------------------------------- | -| **횡단도 표현방식** | **기슭막이와 같게.** 따로 그리지 않음 — 같은 그리기 경로를 씀 | -| **옵션(입력 칸)** | **기슭막이와 같은 벌.** 새 옵션 체계를 만들지 않음 | -| **형상** | **같음.** 단면 모양이 다르다고 보지 말 것 | -| **수량·데이터** | ⚠**분리 계산.** 원단위·공종코드·성분 줄은 **흙막이 자기 것**으로 | - - -**⇒ 그러니 일이 이렇게 갈림** - -``` -한 벌로 쓰는 것 횡단도 그리기 · 기하 · 옵션 칸 · 화면 표시 -따로 두는 것 수량 전개(형식별) · 원단위 · 공종코드 · 자재 줄 -``` - -⚠ **랩탑 보조가 「축이 달라 기슭막이 식을 안 빌리겠다」고 한 판단은 수량 쪽에서는 그대로 유효함** -(교본 앞면 1:0.3 · 뒷면 수직 · 천단 30㎝). **사용자 확정이 덮는 것은 「그림·옵션」이고, -「수량 계산」은 오히려 분리하라고 못 박은 것임.** 둘을 헷갈리지 말 것. - -⚠ **형식별 수량 원천** - -``` -떼 정본 「떼흙막이」(개소당) — 떼 1.39㎡ · 바닥파기 0.17㎥, 치수는 원문이 「평균」으로 붙박이 - (랩탑 보조가 확보. `soil_guard.form` 에 「떼」 추가됨 — 2026-09-09 랩탑 메인) -돌(찰)·돌(메) · 콘크리트 · 블록쌓기 · 돌망태 · 흙포대 · 통나무쌓기 - ⚠ 정본에 탭 **없음**. 수량 원단위는 여전히 미확보 — 지어내지 말 것 -``` - -**⇒ 즉 지금 수량이 서는 흙막이는 「떼」 하나뿐이고, 그림·옵션은 전 형식이 기슭막이와 한 벌임.** - -- [x] **구현 상태 (2026-09-13 전수 대조)** — 표현방식·옵션·형상은 기슭막이와 한 벌로 섬(`8c883564` · `common_util_structure_walls.ts:61`). 수량은 자기 전개식으로 갈라 섬(`cbadb7fd` 떼). 나머지 일곱 형식 원단위는 **자료 대기**(위 「형식별 수량 원천」 그대로). 검증 대기. - -### ⭐ 사용자 확정 2차 — 2026-09-09 저녁 (열한 건) - -**이 절이 정본임. 다시 묻지 말 것.** 근거·선택지는 결정 시트(`3afcfb05`)에 있음. - - -| # | 물음 | **확정** | 해야 할 것 | -| --- | ------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| ① | 층따기 단위 | **㎡ 유지.** 부피는 **사용자가 지정한 길이값을 곱해** 씀 | 면적이 정본.**길이(깊이) 입력 칸 하나** + `㎥ = 면적 × 길이`. 그러면 ㎥ 단가를 그대로 씀 — 단위 불일치가 풀림 | -| ② | 벽 평균두께 | **실무 도면 하단 계산값을 우선 적용** | 정본 0.83 계열을 먼저 넣고 대 볼 것. ⚠**방향** — 상단 도면 + 하단에 **엑셀 같은 수식이 든 표**, **사용자가 값을 바꿀 수 있게** | -| ③ | 기계 노임 | **기술문서 DB 먼저 뒤질 것.** 없으면 **실무 기준 + 노티스** | ⚠ 고용보험·기계감가상각 등**더 붙는 것이 있는지**부터 확인 | -| ④ | 터파기 | **횡단도에 표현부터 구현.** 교본·실무문서를 보고 만들 것 | 노티스 붙이고,**그다음 사용자가 고를 수 있게** | -| ⑤ | 돌 중량 | **기술지식 DB 확인 → 없으면 현재 유지** | 유지하되**나중에 프로그램에서 확인할 수 있게** 근거를 남길 것 | -| ⑥⑦⑧ | 막자갈 식 · 체적/석적 줄 · 기초·천단 축 | **연계된 하나로 봄.** 정본이면 **검증 프로젝트에 이미 계산·저장돼 있을 것** — 확인하고 말할 것 | 저장분 확인 +**기술정보 DB 추적**. 그 결과를 보고 정함 | -| ⑨ | 야면석 계수 | **품셈 열이 기본**, 사용자가 고를 수 있게 | 기본값만 바꾸고 덮어쓰기 칸 | -| ⑩ | 채움 콘크리트 | **기본 210**, 사용자가 고를 수 있게 | | -| ⑪ | 잡석다짐 폭 | **기준 구조물에서 유도** — 같은 값을 공유 | 예: 기슭막이면**하단 길이 × 종단방향 폭 × 높이**로 부피. 구조물 제원에서 끌어낼 것 | - - -**⇒ 방향 한 줄** — ②가 말하는 「상단 도면 + 하단 수식 표 + 사용자 편집」이 **표준도의 최종 모양**임. -계산식을 코드에 숨기지 말고 **표에 드러내고 고칠 수 있게** 하는 쪽으로 감. - -- [x] **구현 상태 (2026-09-13 전수 대조)** — ①(`b6bc9b9a` 층따기 길이 칸) · ③(`6d607934` 조종원 계수) · ④(`bec7e841` 터파기 횡단도+기초 선택) · ⑤(`a69f8af8`) · ⑥⑦⑧(`252e6b54`·`f6f9392e`·`d175c6e4`) · ⑨(야면석 계수 칸) · ⑩(채움 210) · ⑪(`fe032bcc` 잡석다짐 폭 유도) 코드에 섬. 검증 대기. -- [ ] ② 벽 평균두께 — 식(`8141eb34`)·두께 칸(`3a64bb5b`)·상단 그림+하단 표는 섬. **표 칸이 고칠 수 있는 수식이 아님** · 그림은 찰·메 돌쌓기만. 하루~이틀 규모라 이번 정리에서 안 함. - -### 확정 1~11 (정하신 것) - - -| # | 물음 | **확정** | 구현이 해야 할 것 | -| --- | ------------ | --------------------------------- | -------------------------------------------------- | -| 1 | 어떤 돌 | **구조물마다 고르게** | `stone_kind` 를 구조물별 입력 칸으로. 비어 있는 넷을 채우면 계수가 따라감 | -| 2 | 사나 캐나 | **기본 「캔다」, 구조물마다 바꿀 수 있게** | 법 문구·실무 관행이 둘 다 이쪽.**사토 「채집석 공제」도 함께 들어감** | -| 3 | 자재값 출처 | **둘 다** — 업체 견적·지역 상차가 **와** 물가지 | 출처를 고르는 칸 + 업체명·날짜·쪽수를 함께 받아 둘 것 | -| 4 | 콘크리트 타설 | **현장 조건에 따라 고르게**(㉰) | 몸체·채움 각각 고르는 칸. 실무 기본(몸체 레미콘 / 채움 기계비빔)은**제안값**으로 | -| 5 | 표준도 범위 | **진행** | 표(나흘) → 돌쌓기 그림(닷새) → 나머지 일곱(대엿새) 순서대로 | -| 6 | 값 고치는 자리 | **한 곳에서 정하고 도면은 비추기만**(㉮) | 자재 카탈로그가 정본. 도면 표에 [여기서 고치기] 단추 | -| 7 | 층따기 단위 | **㎡ (실무 관행)** | ⚠**대신 B06 횡단·종단 설계에서 그 면적이 실제로 나와야 함** | -| 8-1 | 야면석 채집 「인 부」 | **바꿔쓰기 허용** | 규정이 허용하는 「유사 직종으로 바꿔 쓰기」로 보통인부 적용 | -| 8-2 | 버림 콘크리트 | **기본 보이게, 뺄 수도 있게** | 두께 100㎜(KDS)·폭은 잡석다짐 폭. 넣고 빼는 칸 | -| 8-3 | 틈메우기돌 | **실무 구조물도를 보고 넣을 것** | 실무 표준도(구조물도) 확인이 선행 — 확인 전 임의 확정 금지 | -| 8-4 | 편책 | **별도 제작 후 연결** | 바자얽기(5-15)를 빌려 쓰지 않음.**일위대가를 따로 만들어 연결** | -| 9 | 돌쌓기 기울기 | **품셈 표준경사 표대로 자동 + 사용자가 바꿀 수 있게** | 높이·메찰·성절토로 자동 판정, 덮어쓰기 칸을 둠. 교본 축(시설 종류)은 덮어쓰기로 처리 | -| 10 | 물빼기 구멍 | **한 값이 기본, 구조물별로 다르게도 가능** | 기본 Ø50 · 2㎡당(국가기준). 구조물별 덮어쓰기 | -| 11 | 채움 콘크리트 강도 | **고를 수 있게** | 180(국가기준 하한) / 210 선택. 기본값은 아래 「남은 물음」 참조 | - - -**구현 상태 (2026-09-13 전수 대조)** - -- [x] 1(`6f87a947` 돌 종류 칸) · 2(`11394d40` 캔다 기본+채집석 공제) · 7(`86437ce7` B06 층따기 면적) · 9(`0d577cf4` 표준경사 자동+덮어쓰기) · 10(물빼기 기본+구조물별) · 11(180/210 칸) — 코드에 섬. 검증 대기. -- [x] 8-1 야면석 채집 「인 부」 → 보통인부 준용 — 커밋 `b5f7f3c0`. - - **검증** (2026-09-13 랩탑 메인) — 고치기 전 `cached_build().unattached['FP-13-02-04'] == ['인 부']` 로 그 공종 일위대가가 **한 벌도 안 섰음**. 고친 뒤 뒷길이 다섯 × 밑수 둘 = **일위대가 10벌**이 보통인부 노임으로 서고 산출기초에 「준용(유사 직종 · 재경원 회계 45101-45)」이 뜸. 바꿔쓰기는 **그 공종에만** 걸림(전역 별칭 아님). 시험 `test_b09_similar_occupation.py` 3건 · `test_b09_basis_sheet.py` 함께 통과 · 전체 `pytest resources/tester/` **1335 통과 · 22 건너뜀**(V-12·돌 무게 설명 수정까지 포함한 상태). ⚠ 계획 대비 차이 — 근거 문구는 일위대가 상세 줄이 아니라 **산출기초 ③** 에 실음(`B09_Estimation_UnitPrice.py` 가 이미 1,000줄을 넘어 거기에 줄을 더하지 않음). - -- ⏸ 4 몸체·채움 타설 각각 고르는 칸 — 지금은 프로젝트 한 칸(`concrete_placing_method`)뿐. **2026-09-13 착수 전 멈춤(선행 물음 있음)**: 채움콘크리트는 **타설 줄 자체를 일부러 안 세움**(`B08_Quantity_Engine_Handoff_Rows.py:472` — 찰쌓기 품에 타설 품이 들었는지 확인 전이라 이중계상 방지). 원문 대조 결과 큰돌쌓기 13-6 은 [주]① 「채움콘크리트 품 포함」이 있으나 **13-4-4 찰쌓기에는 그 [주]가 없음**(`산림사업 표준품셈.md:7148~7163`). ⇒ 지금 채움 칸을 만들면 **할증 이름만 바뀌고 타설 금액은 안 섬**. 「13-4-4 채움콘크리트 타설 품을 따로 세우나」가 먼저 정해져야 칸이 뜻을 가짐 — **사용자 답 대기**로 옮김. - -- [x] 6 도면 표 [여기서 고치기] 단추 · 8-2 버림 콘크리트 화면에서 빼는 칸 — 커밋 `af139d65`. - - **자체검증** (2026-09-13 랩탑 보조) - · **버림 칸** — 셈(`wants_blinding`)은 이미 서 있었고 **끄는 자리만 없던 것**임. 등록부 네 종류 - (돌쌓기 찰·메 · 큰돌쌓기 · 기슭막이)에 `blinding_concrete` 칸 + 표준도 입력(`EDITABLE_KEYS`) + - 제원 폼 + 라우터 본까지 이음. 기본 **넣음**(KDS 44 90 00 100㎜). - 화면 실측 — B06 구조물 폼에 「버림 콘크리트 = 넣음」이 뜨고, B07 표준도 3장 제원 폼에서 - **「안 넣음」으로 저장하니 그 장 하단표에서 버림콘크리트 줄이 사라짐**(다른 장은 그대로 남음). - ⚠ **기초잡석 줄도 함께 빠짐** — 잡석은 버림에서 유도되는 줄이라 그렇게 됨(`_rubble_base_component`). - 의도한 것인지 확인이 필요함. - · **[여기서 고치기]** — 하단표는 CAD 안에 그려져 단추를 못 달고, 제원 폼은 도면 목록 아래라 장이 - 많으면 화면 밖으로 밀림. 그래서 **고정 액션 줄**에 둠(떠 있는 띠는 2026-09-02 에 걷어낸 자리라 - 다시 띄우지 않음). 표준도 장에서만 뜨고 누르면 제원 폼으로 스크롤 + 첫 칸에 초점. - 화면 실측 — 표준도 3장에서 단추가 뜨고(누르면 초점이 「돌 종류」 칸으로 감), 다른 도면에서는 숨음. - **값 복사본은 만들지 않음** — 폼 한 벌이 그대로 정본 창구. - · 시험 `resources/tester/test_b07_standard_spec_blinding_weep.py` 6건(선택지 문구가 엔진이 읽는 - 말과 같은지까지 — 다르면 골라도 안 빠지는 자리). 전체 `pytest` **1344 통과 · 22 건너뜀**. - ⚠ 검증 중 내 프로젝트(`936be972`) 정본을 만졌고 **되돌려 놓음** — 물빼기 두 칸·뒷길이·돌 종류·버림을 - 지워 장 목록이 다섯 장 그대로임. 다만 돌쌓기(찰) 한 기에 폼 기본값 - (`stone_supply 채집` · `stone_coeff_basis 품셈` · `fill_concrete_mpa 180`)이 남음 — 값이 기본과 같아 - 수량·장 제목은 안 달라짐. - ⚠ **기슭막이는 버림 칸이 등록부에만 섬** — 표준도 제원 폼이 돌쌓기 세 종류만 그려서 화면에서 못 끔. - 폼 대상을 늘리면 돌 종류 등 다른 칸까지 함께 떠 판단이 필요함 — 손대지 않고 남김. - - [x] **딸림 버그 — 폼이 「비워 두는 것이 뜻인 칸」에 첫 보기를 박던 것** (2026-09-13, 커밋 `cfa7da20`) - - 구조물 폼 select 는 「기본값 없는 **필수**」에만 빈 보기를 두어, `empty_means` 가 적힌 칸도 - 첫 보기가 골라진 채 저장됐음. `fill_concrete_mpa` 가 **180** 으로 박혀 엔진 기준값 - **210**(확정 ⑩)과 갈림 — 채움콘크리트 규격·단가가 조용히 달라지는 자리. - 빈 보기 판정을 「필수 + `empty_means`」 한 줄(`keepEmpty`)로 합치고 초기값도 같은 판정을 씀. - 기본값이 **있는** 칸은 그대로 첫 보기를 씀(2026-08-17 지시 유지 — 버림 「넣음」이 그 예). - **자체검증** — 엔진 실측: 칸 비우면 `spec 210` + 근거 「안 정해 기본값(확정 ⑩)」, - 180 을 고르면 `spec 180` + 「저장 제원에서 고른 값」. - 화면 실측(ORCA 5174 · `랩탑_보조`) — 돌쌓기(찰) 폼의 **채움 강도·야면석 계수가 「— 안 정함 —」** - 으로 뜸(전에는 180·품셈). 조달·버림은 등록부 기본(채집·넣음)이 그대로 뜸. 필수 칸은 「— 선택 —」. - 표준도 하단표 — 두 찰쌓기 장 모두 채움콘크리트 근거가 **「강도 210 — 안 정해 기본값(확정 ⑩)」** - 로 섬(고치기 전 한 장은 180 이었음). - 시험 `resources/tester/test_b05_empty_means_select.py` 4건 · 빈 보기 글자가 바뀌어 - `test_b06_detail_options.py` 의 감시 줄 한 개를 새 판정에 맞춤. 전체 `pytest` **1348 통과 · 22 건너뜀**. - ⚠ 검증에 쓴 내 프로젝트(`936be972`)는 **원상태로 되돌림** — 돌쌓기(찰) 두 기 모두 - `{height_m, length_m, foundation}` 뿐이고 표준도 장도 다시 **네 장 · 찰쌓기 한 장(2개소)**. - ⚠ **딸려 나온 것** — 폼이 쓰던 `before_m`·`after_m` 가 `PER_PLACE_OPTION_KEYS` 에 없어 - **위치 칸 때문에 장이 갈렸음**(같은 제원인데 찰쌓기가 두 장). 지금은 지워 한 장으로 돌려놨으나 - **장 나눔 축에서 위치 칸을 빼는 것**이 맞아 보임 — 판단 필요. - - [x] 위 「딸려 나온 것」은 랩탑 메인이 버그로 고침(`913923a0`) — **화면 확인 끝**(2026-09-13 랩탑 보조): - 찰쌓기 두 기 중 한 기에 `before_m 3 · after_m 7` 을 넣어도 표준도는 **찰쌓기 한 장(2개소)·전체 네 장** 그대로. - B07 도면 목록도 표준도 네 장. 확인 뒤 `before_m`·`after_m` 를 지워 원상태로 돌려놨음. - -- ⏸ 3(출처 고르기·견적 입력) — 5차 8번(사급 설계) 선행 · 5(표준도 그림) — 찰·메 돌쌓기만 섬, 나머지는 자료 대기 · 8-3·8-4 — 실무 구조물도·편책 구성 자료 대기. - -## ⭐ 사용자 답 대기 — 한자리 목록 (2026-09-09 밤 모음) - -> **왜 모았나** — 코드로 할 수 있는 것이 오늘 거의 바닥났고, 남은 것은 대부분 **사용자가 -> 정해 줘야 움직이는 것**임. 흩어져 있으면 「무엇을 여쭤야 하는지」가 안 보여 한자리에 모음. -> **원문은 각 절에 그대로 있음** — 여기는 목록이고, 셋만 적음: -> **무엇을 정해야 하나 / 왜 우리가 못 정하나 / 정하면 어떻게 되나.** -> ⚠ 값은 **하나도 임의로 굳히지 않았음.** 지금은 전부 사유로 드러나 있음. - -### 금액이 크게 움직이는 것 — 먼저 여쭐 넷 - - -| 무엇을 정해야 하나 | 왜 우리가 못 정하나 | 정하면 어떻게 되나 | -| --------------------------------- | ------------------------------------------------------------ | ------------------------------ | -| **사급 자재 단가 — 누가 견적을 넣나** (9장) | 「못 구함」이 아니라 **누가 넣느냐**의 문제임. 물가정보 API 몫과 업체 견적 몫을 가르는 설계가 먼저 | 자재비 자리가 통째로 서고, 그 위에 제비율이 붙음 | -| **표토제거 축 셋 — 실무·원문이 우리와 다름** (8장) | 실무 시트와 원문이 서로 다르고 우리 축은 그 둘 어디와도 안 맞음 | 표토제거 2,359.03㎥ 가 어느 축으로 설지 정해짐 | -| **품 할증을 여럿 고를 때 합산인가 곱인가** (9장) | 품셈이 여러 할증을 함께 쓰는 법을 안 적어 둠 | 할증이 붙는 모든 줄의 품이 한 번에 갈림 | -| **노체다짐(9-16-2)을 셀 것인가** (9장) | 실무가 성토 다짐을 따로 세기도 하고 안 세기도 함 | 성토 구간 전체에 줄이 하나 서거나 안 섬 | - - -### 자료가 와야 닫히는 것 — 다섯 - - -| 무엇을 정해야 하나 | 왜 우리가 못 정하나 | 정하면 어떻게 되나 | -| ---------------------- | ---------------------------------- | -------------------------- | -| **소단 · 소형사방댐 원단위** | 소광리 53탭에 **탭 자체가 없음**(전수 확인) | 그 둘의 물량이 섬 | -| **BOX암거 원단위** | 실무 자료에 **없음이 확정**됨(관측·소광리 둘 다 0건) | 표준 단면이 오면 전개식이 섬 | -| **폐기물처리비 원문** | 「못 찾음」이 아니라 **원문을 안 갖고 있음** | 총원가 안팎 자리가 정해짐(V-18 과 한 벌) | -| **규준틀 재료량 · 층따기 높이·폭** | 실무 관측값은 찾았으나 **관행값 후보**라 확정 근거가 아님 | 두 공종의 밑수가 확정값으로 바뀜 | -| **종자·비료 단가** | 물가지·견적 품목이라 사급 미결과 같은 자리 | 씨앗뿜어붙이기 재료비가 섬 | - - -### 실무 관행을 물어야 하는 것 — 아홉 - - -| 무엇을 정해야 하나 | 왜 우리가 못 정하나 | 정하면 어떻게 되나 | -| ------------------------------- | -------------------------------------------------------- | --------------------- | -| **하단표 양식을 실무 것으로 맞출 것인가** (4장) | **납품 양식**이라 사무소마다 다름 — 표본이 한 곳뿐 | 표준도·횡단도 하단표 모양이 확정됨 | -| **옆도랑파기를 몇 갈래로 가를 것인가** | 우리 둘(토사·암) ↔ 실무 셋 | 측구터파기 줄 수가 갈림 | -| **「노면고르기」와 우리 「노면다짐」이 같은 공종인가** | 이름이 다르고 실무 값 3.0 의 출처를 모름 | 노면 줄이 하나로 합쳐지거나 둘로 남음 | -| **옹벽 기초잡석·터파기를 셀 것인가** | 품셈은 품만 주고 실무 안에서도 갈림 | 옹벽 줄에 잡석·터파기가 서거나 안 섬 | -| **물구멍 관 길이·규격·간격** | 정본은 평균두께(0.83m), 우리는 상수 0.5m — 정본 쪽이 이치에 맞으나 확정 목록에 없던 줄 | 물구멍 자재·단가가 확정됨 | -| **뒷채움 폭 칸을 둘 것인가** | 문서마다 0.30/0.45 ↔ 0.30/0.60 으로 다름 | 막자갈 밑수가 확정됨 | -| **녹화 반영률 100 %** (V-13) | **법은 100 %**, 실무 사례는 80 — 설계자 판단 자리 | 녹화 공종 물량이 갈림 | -| **버림을 빼면 기초잡석도 빠지나** (확정 8-2 · 2026-09-13) | 지금 코드는 잡석을 **버림 폭에서 유도**해 버림을 끄면 잡석 줄도 사라짐(`_rubble_base_component`). 두 확정(8-2 버림 빼기 · 3차 ② 잡석 0.2m)이 서로를 말하지 않음 | 버림만 빠지고 잡석이 남거나, 둘이 함께 빠짐 | -| **찰쌓기 채움콘크리트 타설 품을 따로 세우나** (확정 4 · 2026-09-13) | 큰돌쌓기 13-6 은 「품에 포함」이라 적었으나 **찰쌓기 13-4-4 엔 그 [주]가 없음** — 지금은 이중계상이 겁나 타설 줄을 안 세움 | 세우면 몸체·채움 타설 방식 칸을 가를 뜻이 생김(확정 4 가 풀림) | - - -### 우리 화면·표기 판단 — 아홉 - - -| 무엇을 정해야 하나 | 왜 우리가 못 정하나 | 정하면 어떻게 되나 | -| ----------------------------------------- | -------------------------------------------------------- | ------------------------ | -| **큰돌쌓기 그림 — 직경에서 두께를 내는 법** (4-12) | 품셈 13-6 은 **직경** 축, 우리 그림 식은 **뒷길이** 축 — 축을 잇는 것은 도메인 판단 | 표준도 1장에 그림이 섬(지금은 사유만 뜸) | -| **관 줄 셋 — 관종 칸 · 세월교 섞임 · 유출부 이중계상** (8장) | 실무 표기 관행을 모름 | 관 줄이 실무 모양으로 갈림 | -| **표 모양 넷에 깃발이 없음** (8장) | B09 판정 기준이 정해져야 함 | 전치형·2단 머리 등 네 모양이 자동 판정됨 | -| **미교차 측점만 반폭 +5m 로 다시 뜰 것인가** (3-10) | 다시 뜨는 비용과 값의 이득을 사용자가 저울질할 자리 | 사면이 원지반을 못 만나는 측점이 줄어듦 | -| **관급/사급 「발주기관 결정」 문구** (V-14) | 문구만 고치면 되나 **B08 화면은 데스크탑 메인 몫** | 사용자가 「미완성」으로 오해하지 않음 | -| **지장목제거 품셈 항목** (9장) | 품셈이 벌목을 **목적별로만** 갈라 맞는 공종이 없음 | 지장목제거 단가가 붙음 | -| **새 프로젝트 관급/사급 기본값을 사급으로** (확정 3차 ⑤ · 2026-09-13) | 확정은 「전부 사급」인데 코드 기본은 「미정(발주기관 결정)」 — 주석이 「발주 결정이라 비워 둠」으로 일부러 둠 | 새 프로젝트도 처음부터 사급으로 섬 | -| **기슭막이 횡단 그림도 품셈 표준경사표를 따르나** (4-5 · 2026-09-13) | 수량은 표준경사표로 자동 판정, 그림은 0.3 붙박이 — 잇는 순간 벽 발끝·노폭 연장·성토 면적이 바뀜. 표 스스로 「기슭막이는 축이 다름(교본 메 1:0.5)」이라 적음 | 그림과 수량의 기울기가 한 값이 됨 | -| **기슭막이 표준도 제원 폼을 열 것인가** (확정 8-2 · 2026-09-13) | 버림 칸이 등록부엔 섰으나 표준도 폼이 돌쌓기 세 종류만 그림 — 폼을 늘리면 돌 종류 등 다른 칸도 함께 뜸 | 기슭막이도 표준도 화면에서 버림·제원을 고침 | - - -⇒ **스물일곱**(2026-09-13 다섯 더함 — 계획서 줄이기 중 나온 것). 이 목록은 **모으기만 한 것**이고 값은 각 절에 그대로 있음. 답이 오면 -**그 절에서 닫고** 여기서는 지울 것. - -## 0. 공통 기반 — B05·B06이 한 페이지로 움직이기 위한 뼈대 - -### 0-5. 관 옵션 폼 — 세트를 짝으로 다시 만들게 배선 - -- [ ] **[반나절]** 관 옵션 폼이 바뀔 때 **세트 전체를 짝으로 다시 만들게** 배선 — 지금은 - - `B06_Section_UI_Page_Pipe_Options.ts` 가 스펙 칸을 하나씩 옮겨 적음(부분 사본). - - **2026-09-06 판단: 지금은 안 함.** 살아 있는 결함이 아니라 **유지보수 위험**임(새 옵션을 - 더할 때 폼 경로가 그것을 안 옮길 수 있음). 반면 지금 고치려면: - ① `buildCulvertSets` 는 관 지점의 **facility + 전체 options** 를 받는데 B06 에는 그 값이 - 없음(`section.culvert` 스펙만 있음) — 관 지점을 B06 까지 끌어와야 함 - ② 폼 → 조정창 되받기(높이·형태는 `revet_adjust` 로 감)와 **형태별 높이 한계 되돌리기**가 - 이 자리에 얽혀 있어 통째로 갈면 그 둘을 다시 세워야 함. - 새 옵션을 더할 일이 생기거나 값이 실제로 갈리는 것이 관찰되면 그때 할 것. - - **2026-09-09 다시 봄 — 아직 안 함(사유 갱신).** 까닭 ①은 **풀렸음**: B06 이 - `fetchDetailPipePoints` 로 관 지점(facility + 전체 options)을 이미 받아 옴 - (`B06_Section_Api_Culvert_Options.ts`). 까닭 ②는 **그대로임** — 폼 → 조정창 되받기 - (`revet_adjust` 의 높이·형태)와 형태별 높이 한계 되돌리기가 이 자리에 얽혀 있어, - 세트를 통째로 다시 만들면 그 둘을 다시 세워야 함. **하나가 남아 억지로 하지 않음.** - - **대신 오늘 한 것** — 폼 칸 20개를 캐시 경로와 대조해 **빠진 칸 셋**을 찾음. - · `revet_foundation`(기슭막이 기초) — **그리기가 읽는 값**(터파기 파선)인데 안 옮겨 - 적고 있었음 ⇒ 이어 붙였음(커밋 `e2380ea5`). - ⚠ **화면으로는 못 눌러 봄** — 이 칸은 상세(`phase: detail`) 값이라 B06 배치 폼에 - 아직 안 뜸(정본에도 전부 비어 있음). 칸이 화면에 서면 그때 실측할 것. - · `inlet_basin_form`·`inlet_basin_material` — **수량 전용**(B08 이 정본에서 읽음)이라 - 캐시에 안 실어도 됨. 사유를 시험에 적어 뒀음. - - 시험 `test_b06_pipe_form_keys.py` 추가 — **새 폼 칸이 캐시 경로에서 빠지면 잡음**. - 통짜 배선을 못 하는 동안 「조용히 안 닿는 값」을 막는 자리임. - -## 3. B06 횡단설계 - -### 3-9. 소단(berm) — 확정값과 남은 것 (2026-09-07 사용자 지시) - -**자리** — 소단·소단측구 둘 다 **구조물 배치 컨테이너 안**임(사용자 정정). 소단은 「사면안정」군, -소단측구는 「종단배수」군. 연장은 놓은 구간 길이로 다른 구조물과 같은 길에서 나옴. - -**폼 기본값 확정 (2026-09-07)** — **폭 0.5m · 간격(사면길이) 3.0m · 안쪽 기울기 0°** - -- 근거 — 별표2 범위(사면길이 2~~3m마다 · 폭 50~~100㎝) 안에서 **가장 적게 파는 조합**. -기본값은 **되돌리기 쉬운 쪽**이어야 함 — 더 넣는 것은 폼에서 한 번이지만 이미 판 것을 -되돌리면 전 측점 재계산임. -- ⚠ **소단은 비탈을 완만하게 만듦** — 1:1 절토면 기준 실효 경사가 0.5·3m 면 1:1.24 인데 -1.0·2m 면 **1:1.71** 로 서서 다른 비탈이 됨. 기본을 넓게 잡으면 안 되는 까닭. -- 소단측구를 나중에 올리려면 폭이 모자람(측구 0.5~1m) — 그때 사용자가 **1.0m 로 올리면 됨**. - -**벽이 선 측점은 소단을 안 놓음** — 성토측에 기슭막이가 서면 성토 설계선을 벽 상단에서 끊으므로 -소단이 끼어들 사면이 없고, 다단 벽은 단 사이 성토부선이 이미 소단 노릇을 함. -**판정 단위는 측점**(구간째 거부하면 배수관 유출 기슭막이 때문에 못 쓰게 됨 — 시험 48곳). - -- [ ] **[반나절 · 사용자가 뒤로 미룸]** **소단측구를 「그릴」지는 뒤로** — 사용자 확정 ㉯(「일단 수량만, 그림은 나중에 검토」). - - 지금은 **값만 받고 안 그림**이라 「사면 쪽 기울기」(소단과 반대 부호)는 기록만 되고 - 화면에 안 보임. 그리기로 하면 그때 **부호를 화면에서 확인**할 것(시험으로는 안 걸리는 자리). - -### 3-10. 사면이 원지반을 못 만나는 측점 — 실측과 판단 (2026-09-07 데스크탑 창 제기) - -**판단** — 현행(경고 표시) 유지가 맞음. 미교차 **22곳/105(21%)** 중 **절반 이상이 지형상 영원히** -**안 닫히고**(계곡·절벽 쪽으로 지반이 달아남), 닫히는 쪽도 중앙값 +3m 이나 **꼬리가 +292m** 라 -전역 확대는 값이 안 나옴. **수량이 적게 나오는 것은 사실**이므로 **표기로 막는 것이 맞음.** - -- [ ] **[답 대기]** **선택지(사용자 판단 대기)** — **미교차 측점만 반폭 +5m 로 다시 떠서 재계산**하면 - - 절반 정도가 실제 값으로 바뀜. 수단은 이미 있음(`ensureSampledWidth` — 측점별 반폭 재생성). - 비용은 그 측점만 백엔드 재샘플(20여 곳 × 1초 안팎). **전역 확대는 하지 말 것.** - -## 4. B07 도면 아래 표 — 표준도(구조물도) · 횡단도 (2026-09-08 사용자 지시) - -### 4-1. 무엇을 만드나 — 사용자 방향성 - -**표준도 = 구조물도임**(사용자 정정 「도면 내용 중에 표준도가 구조물도임」). -그 프로젝트에 들어간 구조물의 **표준을 적은 장**이고 다른 도면과 성격이 다름. - -- **한 장 = 상단 도면 + 하단 단위당 정보표**(단위 **길이 · 면적 · 단가**). -- **실무는 엑셀 복사·붙여넣기로 만들었음.** 우리는 **내장 CAD 에서 그림도 표도 고칠 수 있게** 함. -- **도각(테두리·표제란) 필요 없음.** -- 프로젝트에 들어간 **구조물을 하나씩 하단 탭**으로 늘어놓아 확인. -- 표 값은 **영구저장소가 필요할 수 있음** — 확인할 것(4-5). -- **이 표는 B08 로 이어질 것.** - -✅ **교본 근거도 있음** — 「구조물도는 … **표준도** … 등으로 **갈음할 수 있다**」(임도기술교본 3-3 -실시설계). **사용자 정정이 교본과 같음.** - -**실무 원본 실물** — 울진소광 `07-구조도-소광리.xlsx`, **보이는 22탭 + 숨긴 31탭**, -**탭 하나 = 구조물 하나**. 탭 안은 **위 치수조서 + 아래 부위별 수량표**. -표는 **가로 모양**(`공종 | 규격이 열 머리 | 단위`)이고 별도 「규격」 열이 없음. -일부 탭은 `공종 | 산출 논리 | 수량 | 단위`. -⚠ **「단위당」의 단위가 구조물마다 다름** — 날개벽·집수정·돌골막이 **개소당**, -돌기슭막이·수로류·옹벽류 **m당**, 돌붙임 **㎡당**. **통일하지 않음.** -⚠ **단가·금액 열이 원본 어디에도 없음** — 사용자가 말한 「단가」는 **새로 넣는 칸**임. 넣는 모양은 4-3 요약. - -### 4-3. ⭐ 조사·합의에서 정해진 것 — 요약 - - -| 무엇 | 정해진 것 | -| ------------- | -------------------------------------------------------------------------------------- | -| **장 나눔 축** | **제원 조합 하나 = 한 장**(종류 수가 아님). 제원에 기울기가 들어 있어 **기울기가 바뀌면 장이 갈림** | -| **하단표 값 출처** | B08`build_unit_table` 결과를 **표 모양으로 접기만** — 계산을 새로 만들지 않음 | -| **단위** | 구조물마다 다름(날개벽·집수정·돌골막이**개소당** · 돌기슭막이·수로류·옹벽류 **m당** · 돌붙임 **㎡당**). **통일하지 않음** | -| **단가 칸** | 실무 원본 53탭 어디에도 없음 —**우리가 새로 넣는 칸.** 공종 줄마다 단가 + 맨 아래 1m당 총액 **둘 다** | -| **단가를 넣는 자리** | 「기초자료」 탭**한 곳**. 도면은 **비추기만** (확정 6번) | -| **값을 고치는 동작** | **표 칸에서 바로.** 좌측 폼은 두지 않음 | -| **저장 자리** | `project_settings.json` 의 **자기 구획 하나**(`save_section()`, B08 이 이미 그 문을 씀). **DB 안 만듦** | -| **B08 과의 관계** | **안 겹침. 합치지 말 것** | -| **한 장의 모양** | 도각**없음** · 그림 6 : 표 4 · 상단 도면 + 하단 단위당 정보표 | -| **그림 본** | `cross_standard`(표준횡단도) 짜임을 본뜸. 여러 장 나눔은 `plan_lidar` 본 | -| **전면 기울기** | 품셈 13-4-4 「표준경사」로**자동 판정 가능**(직고·메/찰·성/절토로 갈림) + 사용자 덮어쓰기 (확정 9번) | -| **교본 근거** | 「구조물도는 …**표준도** … 등으로 **갈음할 수 있다**」(임도기술교본 3-3 실시설계) | - - -### 4-5. 아직 안 만든 것 — 명세 셋 - -#### 표 값을 어디에 저장하나 — ✅ DB 안 만듦 - -`project_settings.json` 의 `save_section()` 에 **자기 구획 하나**만 얻으면 됨(B08 이 이미 그 문을 씀). -도면 파일(`design/drawings/{id}.json`)에 남기면 **코드 판이 바뀔 때 날아감** — 그것이 문제였지 -**DB 가 필요한 것은 아니었음.** -⚠ 저장 키가 `drawing_id` 단위라 **프로젝트를 넘나들지 못함** — 공용 라이브러리는 별개 결정. - -#### 표에 세울 칸 여덟 — 요약 - -``` -전면 기울기 · 상단폭 · 뒷길이 · 재료 · 저판·벽체 두께 · 기초잡석 두께 · 물빼기 구멍 · 이음(줄눈) -``` - -**⇒ 지금 상태** — **뒷길이·재료·전면 기울기·물빼기는 등록부에 칸이 섰음**(2026-09-09). -남은 것은 **저판·벽체 두께**(옹벽만 실무 도면에서 나왔음) · **이음(줄눈)**(품셈에 줄은 있고 수량 칸이 빔). -⚠ **「재료」 칸 하나가 셋을 한꺼번에 풂** — 고임돌·뒤채움·공종 갈래가 다 돌 종류를 따라감. - -#### ⚠ 전면 기울기 이름이 넷으로 흩어져 있음 — 모으는 것이 이 일의 절반 - -`REVET_LEAN_RATIO`(TS · **실제 도는 값**) · `REVET_FACE_SLOPE`(파이썬 · 읽는 곳 없음) · -`options["face_slope_ratio"]`(등록부에 없는 키) · `data_masonry/*.json`(읽는 코드 없음). -`**data_masonry` 를 정본으로 삼고 넷이 그것을 읽게 할 것** — 파이썬이 이미 `face_slope` 를 -스펙에 실어 보내므로 **TS 가 상수 대신 그 값을 읽으면** 통로를 새로 안 파도 됨. **반나절 안쪽.** -⚠ 말풍선·도면 글자도 같은 값을 읽어야 함 — **글자만 0.3 으로 남으면 화면이 거짓말을 함.** -✅ 거울 시험은 필요 없음 — 벽 기하는 **TS 한 벌**이고 서버도 그 TS 를 Node 로 돌림. - -- ⏸ **2026-09-13 착수 전 멈춤 (랩탑 메인)** — 「반나절 · 통로만 잇기」가 아니었음. ① 수량(B08 `face_slope_ratio()`)은 기슭막이도 **품셈 표준경사표로 자동 판정**(메/찰 · 성/절토 · 직고)하는데 횡단 그림은 **0.3 붙박이** — 잇는 순간 **벽 발끝 자리·노폭 연장·성토 면적이 바뀜**(값이 움직임). ② 파이썬이 스펙에 싣는 `face_slope` 도 상수 0.3 이라 「그 값을 읽으면 끝」이 아님 — 성/절토 판정(측점 단면유형)을 관 세트 스펙까지 끌어와야 함. ③ `masonry_slope` 표 스스로 「기슭막이는 축이 다름(교본 메 1:0.5) — 사용자 덮어쓰기로 처리」라 적음. ⇒ **기슭막이 그림도 표준경사표를 따를지**가 먼저 정해져야 함 — 사용자 답 대기. - -### 4-12. ⭐ 표준도 만들기 — 착수 (랩탑 보조, 2026-09-09 사용자 「진행해줘」) - -**담당 랩탑 보조.** 순서는 결정 시트 확정 5번 그대로 — **1단계 하단표(나흘) → 2단계 돌쌓기 -그림(닷새) → 3단계 나머지 일곱(대엿새).** - -**⭐ 지금 어디까지 섰나 (2026-09-09 밤 전수 확인)** — **1단계 하단표는 네 장 다 섬**(V-9 닫음). -**2단계 그림은 절반 돌고 있음** — 코드가 있고 **뒷길이가 정해진 장에서는 실제로 그려짐**. -안 그려지는 장은 코드가 없어서가 아니라 **제원이 없어서**임. 못 서는 장에는 까닭을 화면에 -띄웠음(`dd8c86fa`). ⚠ 큰돌쌓기만은 규격 축이 **직경**이라 영영 못 그림 — 그림 대상에서 -빼고 사유만 띄웠고, 「직경에서 두께를 내는 법」은 **사용자 답 대기 목록**에 세웠음. - -#### ⚠ 횡단도 하단표 양식이 실무와 다름 — 답 대기 셋 - -출처를 못 찾았음(코드 주석·계획서·git 이력·지식DB 전부). **「우리 양식이 틀렸다」로 가지 않음** — -실무 표본이 **한 곳뿐**이고 사무소마다 다를 수 있음. **필요한 것은 판정이 아니라 출처**이고 -그 출처가 없음. - -- [ ] **[답 대기]** 하단표 양식을 실무 것으로 맞출 것인가 — **납품 양식이라 사용자 확정 자리.** -- [ ] **[답 대기]** 옆도랑파기를 **몇 갈래**로 가를 것인가 — 우리 둘(토사·암) ↔ 실무 **셋** - - (토사·연암·보통암). 4-9 ㉡ 이 「가를까」에서 「몇 갈래로」로 바뀜. -- [ ] **[답 대기]** 「노면고르기」와 우리 「노면다짐」이 같은 공종인가 — 실무 값 **3.0** 이 - - **노면 폭 3.0m 와 같음**(면적이 아니라 폭을 적은 것일 수 있음). 4-10 ㉪ 과 같은 줄. - -ⓘ **식생옹벽블럭도 터파기가 「기초 + 비탈」 두 줄**임(기초 0.82 + 비탈 1.77). 기슭막이 정본· - 옹벽에 이어 **세 번째 원본 근거** — 결정 시트 1번(비탈 터파기)에 힘이 실림. - -#### 3단계 — 나머지 일곱 종류: **그림 문제가 아님** - -그림을 못 그리는 게 아니라 **아래 표가 안 섬.** 기슭막이·골막이·바닥막이·개거·흙막이(떼)는 -3단계에서 섰고, 옹벽은 관측 원단위 **1규격뿐**이며 그 한 규격조차 **그림용 치수가 없음** -(원문에 두께·폭이 없음). 나머지는 원단위 미확보 사유가 화면에 뜸. - -**⇒ 3단계의 진짜 일감은 「그림 일곱 장」이 아니라 「수량 산출식 아홉 종류」임.** - -- [ ] **[답 대기]** 소단 · 소형사방댐 — 소광리 53탭에 **탭 자체가 없음**(2026-09-09 전수). - - BOX암거와 같은 자리 — 자료를 주셔야 물량이 섬. -- [ ] **[답 대기]** BOX암거 — **실무 자료에 없음이 확정됨**(2026-09-09): 관측 원단위 - - `not_found` 와 소광리 53탭 **둘 다 0개**. 「우리가 못 찾은 것」이 아니라 「실무에 없는 것」. - ⇒ 표준 단면(벽·저판·상판 두께)을 **사용자가 주셔야** 물량이 섬. -- [ ] **[답 대기]** 옹벽 기초잡석을 계상할지·두께를 얼마로 볼지 — 품셈 12-25 는 품만 주고 - - 두께를 안 정함. ⚠ 실무 「잡석 유/무」 축은 **dwg 파일 이름에만** 있고 계산표엔 없음. - -⚠ **구조물이 있는 프로젝트가 아직 없음**(내 `936be972` 는 0기). 표 칸이 서면 무엇을 심을지 -조율 창과 정할 것 — **심는 것은 아직 하지 않음.** - -### 4-13. ⛔ 중간 점검 시점의 상태 (2026-09-09 밤, 랩탑 보조) - -**표준도 — 지금 서 있는 것** - - -| 갈래 | 종류 | -| --------------- | ------------------------------------------------------------------------------------------------------------------------ | -| ✅**섬** | 돌쌓기(찰·메) · 큰돌쌓기 · 기슭막이(돌 계열) ·**골막이(돌)** · 바닥막이(돌붙임 찰·메) · 개거(두 규격) · **흙막이(떼)** | -| ⚠**칸만 오면 됨** | 옹벽 — 「식생옹벽블럭」 형식이 붙었고 치수는 소광리 「옹벽2.0」에 있음.**날개벽·집수정** — 정본 여섯 탭을 다 읽어 뒀고 개소당 7~8줄, 치수가 타입마다 붙박이라 **표로 옮기면 됨**(아직 시작 안 함) | -| ❌**자료가 없어 못 섬** | 소단 · BOX암거 · 소형사방댐 · 옹벽 H=1.6 · 흙막이 나머지 일곱 형식 · 골막이 나머지 다섯 형식 · 기슭막이 비(非)돌 형식 넷 | - - -⚠ **자료 없는 것은 일위대가를 임의로 만들지 않음**(확정 5차 3번 보류) — 사유만 화면에 뜸. - -- [x] **날개벽·집수정 하단표 — 이미 서 있음** (2026-09-13 확인, 랩탑 보조) - - **자체검증** — 표준도 하단표는 계산하지 않고 B08 전개를 접기만 하므로(`build_standard_sheets`), - 관측 원단위가 들어온 종류는 **저절로 섬**. 배수관에 형식을 채워 돌려 본 결과: - · `pipe_inlet_basin` (돌집수정 ㄷ형·콘크리트) — **개소당 5줄** (콘크리트 4.03㎥ · 모르터 0.157㎥ · - 터파기 21.1㎥ · 되메우기 2.6㎥ …), 단위당 못 낸 줄 0 - · `pipe_wing_wall` (C-TYPE Ø800) — **개소당 6줄** (기초잡석 0.6821㎥ · 콘크리트 1.109㎥ · - 유로폼 6.2309㎡ · 터파기 7.7269㎥ …), 단위당 못 낸 줄 0 - · 형식을 안 고르면 그 장 자체가 안 섬(빈 장을 만들지 않음) - · 옹벽 — **반중력식 H=2.0 은 섬**(8줄, 소광리 「옹벽2.0」 관측값). **식생옹벽블럭은 [자료 대기]** — - 관측 원단위가 없어 줄 0개 + 사유 「이 규격은 자료에 없습니다」만 뜸. 지어내지 않음. - ⇒ **치수를 표로 옮기는 일은 남아 있지 않음.** 굳히는 시험을 둠 — `resources/tester/test_b07_standard_sheet_rows.py` (3건). - 계획 대비 차이 — 「아직 시작 안 함」으로 적혀 있었으나 실제로는 관측 원단위·딸린 줄(`ATTACHMENTS`)이 - 이미 들어와 있었음. 표 행 정리는 조율 창 몫으로 남김. - -- [ ] **[답 대기]** **물구멍 관 길이** — 정본은 개소당 길이를 **평균두께**로 잡음 - - (H=2.0 에서 0.83m). 우리는 상수 **0.5m** 라 −40 %. **관이 벽을 가로지르므로 정본 - 쪽이 이치에 맞음.** 확정 5차 목록에 없던 줄이라 안 건드리고 주석·거울시험에 차이만 - 못박아 뒀음(`test_b08_stone_masonry_mirror.py`). -- [ ] **[답 대기]** **뒷채움 폭 칸** — 막자갈 밑수인데 제원에 칸이 없어 정본 0.30/0.45 - - 붙박이. 소광리는 0.30/0.60 이라 문서마다 다름 — 칸이 필요한지. - -### 4-10. 근거가 없어 막힌 것 — 요약 - -**⇒ 지금 살아 있는 것만 (2026-09-09 밤 기준)** - - -| 막힌 것 | 상태 | -| ------------------------------------ | ----------------------------------------- | -| 옹벽 H=1.6 원단위 · 소단 · BOX암거 · 소형사방댐 | **자료 없음이 두 원본으로 확정** — 사용자가 주셔야 함 (시트 8번) | -| 표토 축 셋 | **확정 대기** (시트 9번) | -| 큰돌쌓기 재료 원단위 | 13-6 [주]⑦ 「설계수량」 — 관측값 또는 확정 | -| 목재틀흙막이 원단위 | 각재·판재 카탈로그 보강 | -| 사급 자재 단가 · 관급/사급 | ✅**확정 5차로 닫힘** (전부 사급 · 물가정보 API) | -| 전면 기울기 · 측구 토사/암 · 기초잡석 · 제근 · 표토 두께 | ✅**확정·조사로 닫힘** | - - -⚠ **「빈 장」 목록과 「그릴 치수 없음」 목록은 같은 물음의 두 얼굴** — 치수를 정하면 수량·그림·표준도가 함께 섬. - -## 8. B08 수량·설계내역 - -### 8-35. 오솔길 대조 「채택 순서」 1~3 (2026-09-12, 데스크탑 보조) — 검증 대기 - -근거: 오솔길 토공로직 대조 아티팩트 06절. 데스크탑 메인 창이 배정, 세 건 다 끝내고 push 함 -(`1bfe1aa6` · `465dbb95`). - -- [ ] **④ 양식 갈아 끼우기 — 방향만 정하기** `[사용자 답 대기]` — 횡단도 아래 표의 열 구성을 - - 양식 파일로 뺄지. 「정답 양식 하나를 찾는다」에서 「갈아 끼운다」로 방향을 바꿀지만 정하면 됨. - 양식 목록은 사용자가 줘야 함. 법면보호공 2↔4갈래도 여기 딸림. **코드 착수 전임.** -- [ ] **⑤ 사방댐은 밑그림만 접어 둠** — 아티팩트 5절 ㉠~㉢. 착수 시점 미정, 지금 하지 말 것. - -### 8-29. ⚠ 사용자 확정 대기 — 요약 (원문은 옮겼음) - -**⇒ 그 목록이 지금 어떻게 됐나** - -``` -확정 5차(2026-09-09)로 **대부분 닫힘** — 돌 종류 · 콘크리트 타설 · 지장목제거 · 제근 단위 · - 돌 무게 · 관급/사급 · 층따기 단위 · 버림 콘크리트 -살아 있는 것 시트 8번(자료) · 시트 9번(표토 축) · 규준틀 손율 · 물빼기 길이 · 높은 벽 -아직 원문이 없는 것 폐기물처리비 · 중기 조종원 노임 계수(기재부 예규) -``` - -⚠ **다시 물으려면 그 아카이브부터 볼 것** — 「어디까지 찾아봤나」가 거기 있음. 안 보고 물으면 같은 조사를 두 번 함. - -### 8-32. 남은 손질 (2026-09-08 — 옛 8-30 을 접음) - -**B08 은 동작 상태임.** 아래는 손대다 만 것이 아니라 **확인은 끝났고 손을 안 댄 것**들이다. - -- [ ] **표 모양 넷에 깃발이 없음** `[사용자 답 대기 — B09 판정 기준]` — 전치형 21 · 2단 머리 6 · 좌우 두 판 9 · 뭉친 이름 7. - - 값이 틀린 것이 아니라 **마스터를 행-자원으로 읽는 다른 자리가 조용히 틀릴** 자리. - 깃발만 실으면 됨. ⚠ **B09 판정 기준을 먼저 물어 같은 잣대로 셀 것.** -- [ ] **관 줄 ㉠ — 관종(管種) 칸이 아예 없음** `[사용자 답 대기]` (2026-09-09 가름) - - 품셈이 관종으로 갈림 — `FP-12-11-02` 흄관(밑수 1 m · 1 개소, **표가 둘**) · - `FP-12-11-03` 파형강관(1 m). 지금은 **직경만** 있어 못 고름. 실무 울진이 파형강관인 것은 - **그 공사지 관행이지 우리 기본값이 아님.** ⇒ `pipe_material` 같은 칸 요청함. - 안 정하면 빈 값으로 두고 B08 이 「관종 미지정으로 공종을 못 고름」으로 드러냄(암 시공법과 같은 처리). -- [ ] **관 줄 ㉡ — 관이 아닌 점이 섞여 있음(세월교)** `[사용자 답 대기]` (2026-09-09 가름) - - 11점 중 **2점이 `facility: ford_bridge`(세월교)** 이고 `options` 가 비어 있음. - 그냥 세면 **세월교를 관으로 셈.** ⇒ 「`facility` 가 있으면 관이 아님」으로 봐도 되는지 확인 요청함 - (그러면 관은 9건). -- [ ] **관 줄 ㉢ — 유출부 기슭막이 이중계상 자리** `[사용자 답 대기]` (2026-09-09 가름) - - NO.85.05 에 `outlet_revet_length_m: 10` 이 있음. 기슭막이는 **구조물로도 배치될 수 있어** - 누가 세는지 정해야 함. 지금은 안 겹침(그 프로젝트 구조물은 돌쌓기(찰) 4 · 옹벽 1 · - 흙막이 1 · 큰돌쌓기 1). - ⚠ **관 줄이 서는 날 ㉡ 가드가 걸릴 자리임**(B09 지적) — 관 부설과 터파기·되메우기가 - 각각 오면 **같은 굴착을 두 번 셀 수 있음.** - -- [ ] **규준틀 재료량 — 실무 관측값을 찾았음(참고 후보)** `[사용자 답 대기]` (2026-09-08) - - ⚠ 2026-09-09 — 조율 창이 **「개소당 목재 규격·수량」 화면 칸**을 넘겼음(층따기 깊이·표토 - 두께와 같은 집안). 손율은 원문에 있음(비탈 50% · 수평 80%) — **규격만 받으면 바로 섬.** - 지금 규준틀 4,921,267원이 **인력 품만의 값**임. - 품셈 11-2·11-3 [주]④ 가 「재료량은 **설계수량에 따른다**」라 미확보로 두었는데, - 울진 라이브러리 §8 에 실측이 있음: - **규준틀 수평 | 개소 | 각재 50×50 0.0044㎥ · 판재 T12 0.0029㎥ · 못 0.03㎏** - ⚠ **실무값이라 후보이지 기본값이 아님**(★법대로). 비탈 규준틀 값은 그 시트에 없음. - **정할 것** — 이 값을 쓸지, 설계수량 입력 칸을 만들지. -- [ ] **⚠ 폐기물처리비 — 「못 찾음」이 아니라 「원문을 안 갖고 있음」** `[자료 없음 — 원문 확보 먼저]` (2026-09-08) — - - `법률/` 40개에 **폐기물 관계 법령이 한 건도 없음**(건설폐기물법·폐기물관리법 미보유). - **원문 확보가 먼저.** - -``` -국가지점번호판 500m마다 임도규정 제26조5항 ⚠ **법정 의무인데 줄 없음** · 품셈 공종도 없음 -안내판·준공표지판·차단기 제26조6항·교본11장 줄 없음 · 품셈 없음 -공사 입간판·현수막 교본 11장(견적) 줄 없음 · 품셈 없음 -가설창고(컨테이너) 〃 줄 없음 · ⭐ **품셈 FP-11-01 있음** -수방대책용 자재 〃 줄 없음 · 품셈 없음 -``` - -``` - ⚠⚠ **법 조문 성격이 갈림**(2026-09-08 원문) — **제26조는 「임도의 **보수·관리**」 조항**이고 - 원문이 「…국가지점번호판을 제작하여 **500미터 마다 설치·관리하되, 필요시 거리를 조정할 수 - 있으며**」임. **관리 의무인지 신설 설계 수량 의무인지 원문만으로 안 갈림** — 실무가 - 2개소·1km 였던 것과도 얽힘. **사용자 확인 자리.** - ✅ **안내판은 의무 맞음** — 제26조⑥ 「시점 및 종점에 안내판 … **설치하여야 한다**」. - ⚠ **차단기는 법령·행정규칙에 없음**(교본 11장만). - ⚠ **편책은 임도 법령엔 없고 사방 행정규칙에 있음**(`사방사업의 설계·시공 세부기준:147` - 「편책·바자얽기」) — **공법 설명뿐 수량 밑수 없음.** 그대로 막힘. - ✅ **실무 확인(2026-09-08) — 번호판만 실물 근거가 있고 나머지 넷은 실무에도 없음.** - · 국가지점번호판 — 울진 1공구 수량집계 「**2 개소**」 · 2공구 「취수정·**국가지점번호판 2**」 · - 3공구도 구조물 구성에 포함. 규격 참고도는 도면으로 따로 있음. - · ⚠ **법정 500m 와 안 맞음** — 종합비교는 「**1km 간격**」으로 적고, 1공구는 연장 자체가 - **380m(토적집계) vs 1.20km(내역서)** 로 갈려 있어(판정 보류) **개소를 연장으로 역산 불가.** - ⇒ **지식DB 가 「연장÷500 을 확정 산식으로 쓰지 말라」 한 까닭이 실물로 확인됨.** - 실무는 **개소를 직접 세어 적었음.** - ⇒ **만들 모양 = 「개소 수를 넣는 칸」 + 참고로 연장÷500 을 제안값으로 보이기.** - · **안내판·차단기·가설창고·수방자재 — 실무문서 전수 무출현.** 넣는다면 **본이 될 실물이 - 없어** 사용자 협의로 새로 만드는 것임. - ✅ **편책 ≠ 목책 확정**(2026-09-08) — 품셈 **13-15-2 목책 설치**는 작업조건이 - **「벌도목 직경 26~30㎝」**이고 **벌목부**가 들어가는 **베어 낸 나무를 쓰는 공종**임 - (앞 절이 13-15-1 「목재 껍질벗기기」). 편책(「말뚝 9할박기, **가로목** 비탈면 밀착」)과 - **재료도 작업도 다름.** - ⭐ **다만 편책이 산림 품셈에 아예 없지는 않음** — **10-6-3 기타 임업자재**의 운반 자재 열에 - **「편책용 말뚝(목재, 파이프)」**이 그대로 있음(품셈이 편책을 아는 시설로 다룸). - **공종으로는 `5-15. 바자얽기` 가 가장 가까움**(말뚝 직경4~6㎝ 길이120㎝ 20개 · - 보통인부 3.26 · 특별인부 0.22 · 말뚝 1m당 2개). ⚠ **엮는 재료가 다름** — 편책은 「가로목」, - 바자는 「나뭇가지」. - ⇒ **「근거 없음」에서 「바자얽기(5-15)를 빌려 쓸지」로 좁혀짐** — 「어느 품을 쓸까」가 아니라 - **「빌려 쓸까 말까」**가 됨. -``` - -- [ ] **층따기 높이·폭 — 치수표를 찾았음(관행값 후보)** `[사용자 답 대기 — 원본 그림 확인]` (2026-09-08) — - - ⚠ 2026-09-09 — **깊이는 화면 칸으로 받게 됐음**(확정 ① · `ab51fa38`). 이 줄은 **관행값을 - 제안값으로 보일지**만 남음. - `original/산림과임업기술(임도)/2. 임도/6. 시공.md:93~95` - 「층따기 치수(cm) — **토사 깊이 50 이상 · 암 깊이 40 이상 · 폭 100 이상**」 - (그림 5-2-81 편절토·편성토 접속부 횡단면에 딸린 표). - 조건도 일치 — 「지표횡단물매가 **1:4 이상**으로 급하면 표토 제거 후 계단식 층따기」. - ⚠ **교본·법정이 아니라 기술서적**임(교본 세 곳은 여전히 「설계도서에 명시된 높이와 폭으로」). - ⇒ **관행값 후보로만.** ⚠ **판독 주의** — 원문 표가 마크다운 변환에서 한 줄로 뭉개져 있어 - **원본 그림 확인 전에는 확정하지 말 것.** - -### 8-34. ⭐ 2026-09-09 밤 감사에서 새로 나온 것 (데스크탑 메인) - -준비공·부대시설 축과 구조물 묶음 축을 「자국 목록」으로 훑어 나온 것들. **값을 임의로 -고치지 않고 사유로 드러내 둔 상태**이며, 아래 둘은 **사용자 확정이 있어야 값이 움직임.** - -- [ ] **⚠⚠ 표토제거 축 셋 — 실무·원문이 우리와 다름** `[사용자 답 대기 — 시트 9번]` (2026-09-09) - - 실무 내역서(영월 2024)와 품셈 원문을 떠 보고 나온 것. **값은 그대로 두고 사유만 실어 둠.** - 1. **밑수가 다름** — 실무는 「표토제거 답외구간 **8,962 ㎡**」이고 우리는 ㎥(면적 × 두께). - 셈 9-15-2 도 **T(표토두께) 0.2m 를 품의 조건**으로 두는 면적 축임. - 2. **운반 줄이 겹침** — 9-15-2 원문에 **L(운반거리) 20m** 가 들어 있어 **20m 압토가 품에 - 함**임. 실무 내역서에 운반 줄이 따로 없는 까닭이 그것. 우리는 제거 물량 **전량**을 - 표토 운반·적치」로 다시 실어 보냄 ⇒ **20m 초과분만** 세야 맞음. - 3. **대상이 법 문언과 어긋남** — 별표2 는 「**노면·절토대상지**」인데 우리는 절토·성토 - *사면적을 다 더하고 노면은 안 셈. 성토대상지는 별표2 (7) 이 「제거·정리」로만 두어 - 반·적치 의무를 안 검. **넘치는 쪽과 빠지는 쪽이 동시에 있어** 합계가 그럴듯해 보였음. - 「실무대로」 한 마디면 셋이 함께 닫힘.* - 리고 `**FP-09-15` 는 부모 코드**임(잎이 답구간·답외구간). 실무가 「답외구간」을 쓰나 - 임의로 안 골랐음* — 3번 물음과 한 묶음. -- [ ] **⚠ 옹벽 터파기가 안 섬 — 실무 안에서도 갈림** `[사용자 답 대기]` (2026-09-09) - - 관측 원단위(울진 §7 반중력식 H=2.0)에 터파기 줄이 없어 **옹벽만 구조물터파기·되메우기· - 잔토가 0 줄**이었음(돌쌓기는 세 줄이 섬). **지금은 「터파기가 안 선 구조물: 옹벽」 줄을 - `in_bill: False` · `unit_data_missing` 로 세워 빠진 것이 보이게 해 둠.** - ⚠ 랩탑 보조 대조 — 소광리 「옹벽2.0」 여덟 줄에도 **터파기 없음**인데, 같은 시트 - 「식생옹벽블럭(H=2.0)」에는 **터파기 기초 0.82 + 비탈 1.77 · 되메우기 0.37 · 잔토 1.4** 가 있음. - ⇒ 여쭐 것은 「옹벽 터파기를 세나」가 아니라 **「반중력식만 왜 없나」**임 - (일위대가에 포함일 가능성 — 기초 콘크리트 밑수에 숨어 있는지 확인이 남음). - -**닫은 것 (2026-09-09 밤, 값이 움직였음)** - -### 8-7. ⚠ 이중계상 금지 규칙 — 원문을 남기는 자리 - -**담당 경계표는 두 페이지가 다 서면서 역할을 다해 이관했으나, 이 규칙 원문은 남긴다.** -오늘도 세 번 걸렸고 **B09 가드가 이 문장을 주석으로 인용**하고 있어 지우면 근거가 끊긴다. - -- **㉠ 할증은 `자재 총괄` 에서 딱 한 번.** 품셈 1-3-1 「품셈 항목에 할증 포함ㆍ표시된 경우 -**중복 적용 금지**」. `원단위표`·일위대가 재료비는 **할증 전 값**을 쓰고, 인계에는 -**할증 전/후 둘 다** 실어 역산 사고를 막는다. -- **㉡ `free_haul`(소운반 20m) 은 내역 줄을 만들지 않는다.** 품셈 1-2-7 「소운반 20m 이내는 -품에 포함」. **스위치 없이 무조건 제외** — 켜도 붙일 단가가 없다(인력운반 10-6 도 -「20m **초과분**」). 값은 내되 「내역 제외」로 표시하고 `무대+도자+덤프 = 총 운반토량` -검산에만 쓴다. -- ⚠⚠ **㉡ 정정 (2026-09-08 원문 판정) — 「20m 무조건 공짜」가 아님.** -품셈 **1-2-7의 1 가** 원문: 「품에서 **자재의 소운반은 포함**하며, 품에서 **포함된 것으로 -규정된** 소운반 거리는 20m 이내의 거리를 의미한다」 -⇒ **「그 품 표가 포함한다고 규정했을 때만」 0 임.** -⚠ **산림품셈 13-2-4 야면석채집 [주]에는 운반 얘기가 없음** — **「포함」이 규정되지 않았음.** -⇒ **별도 계상이 원문상 맞고, 20m 를 무조건 금액 0 으로 막는 우리 가드는 과함.** -실무도 두 사무소가 다르게 함 — **울진은 채집 단가에 운반을 넣었고**(채집 + 상차 + 덤프 L=0.1km -를 한 단가에), **영월은 갈랐음**(채집 8,999 / 소운반 27,094원, 인력운반 기본공식 그대로). -**어느 쪽도 이중계상이 아님 — 한 번만 세면 됨.** -⚠⚠ **운반이 두 다리로 갈림**(2026-09-08 실측): - -``` -㉮ 채취지 → 집적지 덤프 100m ← **별표2 「운반거리를 조사한다」가 요구하는 그 운반** -㉯ 집적지 → 시공지 인력 20m ← 품셈 1-2-7 소운반 -울진은 ㉮ 를 채집 단가에 **포함**, 영월은 ㉯ 를 **별도 줄**(27,094원/㎡)로 세움 -``` - - ⇒ **우리 무대 가드는 ㉯ 에만 걸어야 하고 ㉮ 는 새 줄임.** - ⚠ **둘을 다 세우면 이중계상** — 확정 문구에 **「어느 쪽이든 한 번만」**을 넣을 것. - **⇒ 고칠 문구** — 「**무대(free_haul) 20m 규칙을 토공과 ㉯(집적지→시공지)에만 적용**하고, - **자재 소운반은 품 표가 포함을 규정한 경우에만** 0 으로 볼 것. 규정이 없으면 **인력운반 - 기본공식**(1-2-7의 2)으로 별도 계상. **㉮ 채취지→집적지는 별도 줄이되 채집 단가에 이미 - 포함됐으면 또 세지 말 것.**」 **세 창 일치.** - -- **㉢ 배합(모르터·콘크리트) 분해는 B09 에서 한 번.** 원단위표는 「모르터 ㎥」까지만 낸다. -- **㉣ 작업효율 `E` 는 작업량 산정에만.** 시간당 사용료는 1일 8시간으로 나눈다(품셈 8-1-6). -양쪽에 넣으면 같은 효율이 두 번 곱해진다. -- **㉤ 열 방향 정합 검사** — `TC = NC + GC + JC` 는 행 방향이라 「같은 성분을 두 층에서 -세는」 어긋남을 못 잡는다. 열 합을 따로 본다. -- **㉥ 물빼기 파이프 ↔ 제잡비 윗단** — 물구멍을 자재로 세우고 제잡비는 아랫단으로 간다. -- **㉦ 큰돌쌓기 포함자재** — 품셈이 이미 품에 넣은 것을 자재로 또 세지 않는다. -- **㉧ 상태 환산은 내보내는 자리에서 한 번만** (2026-09-09 신설, 금액 직결). -「운반거리의 산정 시에 모든 수량은 **다짐상태**로 환산하여 계산하고, **내역서에 적용하는 -수량은 자연상태**로 한다」(설계실무 요령 — `config_system_design` 5-4-3 인용문). -⇒ 유토곡선 안쪽(띠·이동·잔량)은 **다짐 그대로**, 내역으로 나갈 때만 **÷C**. -⚠ `**L`(1.3·1.35·1.625)을 쓰지 않는다** — 품셈 10-11·10-12 가 `f = 1/L` 을 식 안에서 -**스스로** 곱하므로 우리가 또 들면 두 번 환산이다. 우리가 할 일은 **자연상태 물량을 -정확히 넘기는 것**뿐이다. -⚠ **방향은 나누기** — `C = 다짐 ÷ 자연` 이라 곱하면 뒤집힌다(거울 시험이 잠금). -⚠ 들어올 때도 같다 — 구조물 잔토는 **자연상태**로 오므로 곡선에 담기 전 **×C**(왕복 한 번씩). -⚠ **갈래를 모르는 몫은 환산하지 않는다** — 계수가 없다. 토사 계수로 눅이면 근거 없이 -금액이 움직인다(`ground_unknown_m3` 로 드러냄). -**실측 변화(내역 4줄)** — 도자 토사 15.65→17.39 · 리핑암 70.30→61.13 · -덤프 토사 33.76→37.51 · 리핑암 140.78→122.42 ㎥ (합 260.49→238.45, **−8.5 %**). -자체검증 — 새 시험 6 + TS 실행 시험 3 추가, 전체 **576 통과 / 22 건너뜀**. -공용 브라우저 실사용 경로로 API 재확인(`/quantity/earthwork-table`): 줄마다 -`volume_basis: compacted` + `natural_m3` + `conversion_c` 가 서고, 집계표 비고에 -「자연상태 환산(다짐 …㎥ ÷ C)」이 붙으며, 검산 차이는 **0** 유지(다짐끼리 비교). -사토 줄도 `natural_m3_by_ground` 를 냄(실측 rr 61.88 다짐 → 53.809 자연). - -### 8-31. 개발용 「확정 없이 다음으로」 단추 — 오해하지 말 것 - -**단계 확정 없이 다음 페이지로 넘어가는 개발 전용 우회로.** 서버가 정본이고 -(`ENVIRONMENT` 검사, 운영에서는 403) 화면은 보조(`import.meta.env.DEV`). -`project_workflow_stages.state` 한 칸만 바꾸며 **계산은 돌지 않는다.** -`DEV_UNLOCK:<옛상태>` 로 되돌리고, **이미 `COMPLETE` 인 단계는 건드리지 않는다.** - -## 9. B09 원가계산 - -> **표 다섯이 화면으로 섰고 코드 쪽에 남은 일은 없다** — 아래는 자료·결정이 채워져야 풀리는 것뿐이다. - -### 9-9. ⚠ 카탈로그가 서는 날 **한꺼번에 붙을 열한 줄** (2026-09-09 실측) - -품셈 표에 **「필요시 적용」·「별도 계상」·「별산」**이 적힌 줄들이다. **지금은 하나도 안 붙어 있다** — -다만 **안 붙는 까닭이 「조건부라서」가 아니라 「이름을 카탈로그에서 못 찾아서」**다. -⇒ **자재·기계 카탈로그를 세우는 날 조건 없이 다 붙는다.** 그날 「왜 금액이 늘었지」로 헤매지 -않도록 목록을 남긴다. **카탈로그 작업을 시작하는 사람이 이 목록을 손에 들고 시작할 것.** - - -| 공종 | 줄 | 조건 문구 | 내용 | -| ---------------------- | --- | ----------------- | ---------------------------- | -| FP-05-10 사방조림 | 3 | 별도 계상, 운반조견표 참조 | 운반비 72.4 kg | -| FP-10-08-03 케이블 크레인 운전 | 3 | 별도 계상 | 운반기구 손료 1식 | -| FP-12-10 맹암거 | 3 | 자재비 별산 | 부직포 ㎡ | -| FP-12-10 맹암거 | 5 | 별산(깬잡석 유용가능) | 잡석 구입 및 운반 ㎥ | -| FP-12-10 맹암거 | 6 | 필요시 적용 | 소운반 인부 리어카(L=50m)**2.0인** | -| FP-12-11-02 흄관 | 1 | 별산 | 흄관 1.0m | -| FP-12-11-02 흄관 | 3 | 별도 계상 | 잡재료비 | -| FP-12-11-03 파형강관 | 1 | 별산 | 파형강관 1.0m | -| FP-12-11-03 파형강관 | 2 | 필요시적용 | 커플링밴드 EA | -| FP-12-24-01 지수판 설치 | 0 | 뒷채움 자재비 및 운반비 별산 | — | -| FP-12-24-02 되메우기(노상재) | 0 | 뒷채움 자재비 및 운반비 별산 | — | -| FP-12-25 기초잡석 | 0 | **브레이커 사용할 때 제외** | 소할 할석공 0.06인 ⚠**금액이 서 있는 줄** | - - -**⇒ 그리고 「이름을 카탈로그에서 못 찾아」 안 붙는 기계** (2026-09-09 관부설에서 나옴) - - -| 기종 | 어디에 쓰이나 | 지금 | -| ------------- | ------------------------------ | ---------------- | -| **크레인 5ton** | 파형강관 관부설(12-11-3) | 카탈로그에 없어**안 붙음** | -| **크레인 10ton** | VR관(12-11-1) · 흄관(12-11-2) 관부설 | 〃 | - - -> ⓘ **원문 특이점 하나 — 손대지 않았음** (2026-09-09 대조) -> 파형강관 12-11-3 **배관공**이 ∅800 **0.25** · ∅1000 **0.22** · ∅1200 **0.41** 임 — -> 관경이 커지는데 **가운데만 작음**. 크레인·보통인부는 커질수록 늘어남. -> **원문 그대로**라 고치지 않았고, 나중에 「값이 이상하다」가 나오면 이 줄을 볼 것. -> ⚠ **지금 금액에 이미 반영돼 있음** — 내역서에 ∅800·∅1000 이 둘 다 서 있음 -> (2026-09-09 기준 79da822d 네 줄 427,254원 · 26275834 일곱 줄 734,498원). -> ⓘ **원문 오탈자일 수 있음** — 0.22 가 0.32 의 오식이면 그 자리에서만 값이 낮아짐. -> **우리가 판단할 것은 아니고** 실무자 확인·고시 정정 대상임. -> ⓘ **숨은 값 하나** — 커플링밴드는 표가 비었으나 [주]① 이 「**1EA/6m**」를 줌. -> 자재가 서면 m 당 1/6 EA 로 셀 수 있음(「필요시 별도 산정」 조건이 하나 더 붙음). - -⇒ 그래서 **관부설 세 공종이 인력 몫만**임(배수관 네 줄이 지금 그 값으로 서 있음). -카탈로그가 서는 날 **세 공종이 한꺼번에 굵어짐**. -⚠ 같은 표의 **기초콘크리트·거푸집·모래부설**은 값이 빈 칸이라 안 붙였음 — 위 「별산」 줄들과 같은 자리. - -> ⓘ **이 절이 「카탈로그가 서는 날 무엇이 붙나」의 지도임** — 조건부 열두 줄 + 크레인 둘 + -> 자재 여덟 줄. 그날 금액이 뛸 텐데 **왜 뛰는지를 이 목록이 미리 설명함.** - -⚠ **기본은 「안 붙임」으로 둘 것.** 붙여 놓고 빼는 것보다 **없다가 켜는 것**이 안전하다 -(2026-09-09 하루 내내 그 결이었다 — 지어낸 값이 나중에 확인된 값으로 읽힌다). -⚠ **맹암거 소운반 인부 2.0인이 제일 큼** — 붙으면 그 단가가 통째로 뒤집힌다. -ⓘ 곁들여: 맹암거 25,492원/m 안의 **보통인부 0.13인(22,369원)은 「부설인부」라는 정상 줄**이다. -2026-09-09 한때 이것을 조건부 줄로 잘못 짚었다가 줄 번호로 되짚어 걷어 냈다. - -### 9-10. 「막힌 줄일수록 이중계상이 숨는다」 — 확인된 셋 (2026-09-09) - -값이 0 이라 **어떤 검사에도 안 걸리던** 자리들이다. **막힌 줄을 풀 때는 그 줄의 성분부터 셀 것.** - -- [ ] `[대기: 카탈로그]` **운반** — 두 축에 두 줄 · 코드가 붙는 날 드러남 - - ⚠ **오늘 선 「기계 수송비」와 다른 축임**(2026-09-09 밤) — 수송비는 **기계를 현장까지** 나르는 것이고, - 여기 것은 **자재 운반**(맹암거 잡석 구입·운반 · 지수판 뒷채움 운반비 별산 등)임. 헷갈리면 - 같은 운반을 두 번 셈. 지금은 그 줄들이 **별산·조건부라 값이 0** 이라 안 걸림. -- [ ] `[대기: 카탈로그]` **조건부 열두 줄** — 위 9-9 · 카탈로그가 서는 날 드러남 - - ⚠ 그중 **기초잡석 소할**만은 **이미 금액이 서 있음** — 브레이커 갈래가 서는 날 **빠져야** 함 - (다른 열한 줄은 붙는 쪽, 이것만 빠지는 쪽) -- [ ] `[대기: 거리·설계수량]` **원문에는 있는데 못 실린 몫** — `B09_Estimation_KnownGaps` 에 세 자리를 적어 두었음 - - · 기초잡석 **운반(덤프트럭 15ton)** — 품셈 10-12 가 거리로 냄 ⇒ **사토장이 서면 함께 풀림** - · 규준틀 둘 — 지금 값은 **인력 품만**(손율은 원문에 있음: 비탈 50% · 수평 80%) - ⇒ 화면 칸으로 받을 것은 **개소당 목재 규격·수량** (층따기 깊이·표토 두께와 같은 집안) - -### 9-6. B09 미결 — 살아있는 것 - -2026-09-08 전수 재판정. **해소 2 · 성격바뀜 3 · 남의것 2 · 입력 문제 1** 은 지웠고 아래만 남았다. - -⚠ **미결이 아닌 것 하나를 여기 적어 둔다** — 「암 갈래별 시공법이 안 실려 온다」는 **입력 문제**임. -칸도 있고 저장도 되고 공종도 갈린다(`b269ea34` 에서 `FP-09-04`/`FP-09-05` 로 정확히 갈림). -값이 `None` 인 표본은 **시공법을 안 넣은 프로젝트**였다. 같은 오해가 또 나지 않게 남긴다. - -- [ ] `[답 대기]` **물구멍 관 규격·간격** — 자재로는 오는데(단위 m) 규격·간격이 빈칸이라 단가를 못 고름. - - · **설계 기준이 정해지면** 풀림. (8-29 ⭘ 의 잠정 Ø50·2.0㎡ 와 짝) -- [ ] `[자료 대기 · 이것이 제일 큼]` **⚠ 사급 자재 단가 — 「못 구함」이 아니라 「누가 견적을 넣느냐」** (2026-09-08 성격 바뀜) — - - 나라장터 스냅숏 **27,485건 실물 검색에서 야면석·막자갈·고임돌·잡석·유공관·물구멍 전부 0건**. - 문서가 그 자재군을 **「지역골재 = 물가지·견적 경로」**로 이미 분류해 둠 — **API 로 못 채우는 - 것이 맞음.** ⚠ **그러나 국가계약법 시행규칙 §7(품셈 1-2-4)이 「견적가격」을 인정**하므로 - **구독 없이도 합법**이고 그 통로가 **6번 슬롯(적용 단가)** 임. - **대안 셋이 문서에 명시돼 있음** — ① 유료지 **1종만** 구독 ② 실무 관측값 라이브러리 + - **업체 견적 입력 UI** ③ 관급 전환. **「선택은 사업 판단(사용자)」**로 적혀 있음. -- [ ] `[사용자 답 대기]` **수송비 회수(대수·왕복 횟수)** (2026-09-09 밤) — 단가는 「회당」으로 섰고 - - **몇 대를 몇 번 나르는지는 품셈이 안 정함.** 실무는 대개 기종당 1 왕복으로 잡는 것으로 보이나 - **원문 근거가 없어 임의로 정하지 않음.** ⇒ 수량 칸(설계 입력)으로 받을 것인지 여쭐 것. - ⚠ 곁들여 **트레일러(20t)와 트럭(10.5t) 가름**도 원문이 기계별로 안 정함 — 지금은 **두 갈래를 - 다 세워 두고 고르게** 했음. -- [ ] `[답 대기]` **지장목제거 품셈 항목** — 품셈이 벌목을 목적별로만 갈라 맞는 공종이 없음. - - · **어느 벌목 공종으로 볼지 사용자가 정하면** 풀림. (8-29 9-㉗ 과 한 벌) -- [ ] `[대기: 사토장]` **⚠ 덤프 운반(8-2-8)은 「운반거리」가 있어야 섬 — 사용자·설계 입력 대기** (2026-09-08 조사) — - - 원문·표는 다 찾았음(`FP-10-12-01` 두 표: 적재기계 굴착기 K 0.9·E0 0.60(토사)/0.35(파쇄암)· - ㎝ 22초 + 덤프 t1~t5, V1 5㎞/hr(적재)·V2 6㎞/hr(공차)). - **모자란 것은 품셈이 아니라 현장값 셋** — ① **운반거리 L**(노선·사토장에서 옴) ② - **덤프 적재용량 T**(몇 톤 차를 쓸지) ③ **자연상태 단위중량 γt**. - ⇒ q = T·L/γt 라 셋 중 하나만 없어도 적재량이 안 나옴. **8-29 ㉯ 13번으로 올렸음**(2026-09-08). -- [ ] `[대상 없음 — 2026-09-09 밤 재확인]` **모르터·콘크리트 배합 분해** - - 콘크리트 계열 일위대가는 **이제 여덟이 서 있음**(레디믹스트 타설 셋·펌프카 타설 둘 등). - ⚠ **그래도 분해할 대상은 아직 없음** — 그 여덟은 전부 **레미콘을 사서 치는** 공종이라 품(노무)만 - 들어 있고 **현장 배합이 아님**. 마스터에 「모르터」가 든 공종도 여전히 0건. - · **현장 배합 줄(시멘트·모래·자갈)이 서기 시작하면** 그때 ㉢ 가드와 함께 살아남. -- [ ] `[대기: 치수]` **⚠ 「다른 표를 가리키는 참조」를 이을 것 — 산마루측구·소단측구** (2026-09-08) — - - 품셈이 그 두 표에 **수량을 안 적고 참조만** 둠(「철근가공조립(간단)의 **30 %**」· - 「거푸집 합판4회」·「수축줄눈」). 그래서 연장은 오고 공종코드도 붙는데 **금액이 안 섬.** - ⇒ **이을 길은 보임** — `B-FP-12-03#간단` 919,146.7원/ton 에 × 0.30 · 거푸집은 - `B-FP-12-04` 81,321.9원/㎡ 에 사용횟수 비율(1-7-1). - ⚠ **막힌 것은 밑수 하나이고 그것은 사용자 확정 대기임**(2026-09-08 B08 전수 확인) — - 「1m당 콘크리트 몇 ㎥ · 거푸집 몇 ㎡ · 철근 몇 ton」이 **품셈·지식DB·구조물 옵션 어디에도 - 없음.** 8-29 ㉯ 12번 참조. **치수가 정해지면 B08 이 그날 전개함.** - (맹암거 `FP-12-10` 은 표에 수량이 있어 25,492.1원/m × 40m = 1,019,685원으로 이미 섬.) -- [ ] `[사용자 답 대기 · B08 이 줄을 내야 함]` **⚠ 노체다짐(9-16-2)을 셀 것인가** (2026-09-09 밤) - - **단가는 세웠음**(커밋 `87c710a2`) — `Q = 1000×V×W×E×D×f/N` 로 서는 **첫 다짐 공식** 공종. - `1000×4×1.9×0.6×0.3×1.0÷6 = 228 ㎥/시간` ⇒ **527.40원/㎥**. - ⇒ 넣으면 **13,150.2㎥ × 527.40 = 6,935,414원**. - - **왜 아직 안 서나 — B08 이 그 줄을 안 냄. 그것은 의도된 결정이었음**(2026-09-08 매핑 기록). - 실무 내역 셋에 「노체포설·노체다짐」으로 가른 줄이 **없어서**, 「성토 본체 한 줄 + 성토면다짐(㎡) - 따로」로 맞춰 두고 **다짐은 그 단가 안 단계**로 뒀음. - ⚠⚠ **그런데 우리 성토 단가는 포설(굴착기)뿐임** — 실무 영월의 그 한 줄은 단가 안에 - **적사→성토→다짐 3단계**를 품고 있음. **즉 지금은 다짐 몫이 빠져 있음.** - - **⇒ 여쭐 것 하나** — 층다짐을 **줄로 세울지**(B08 이 성토와 같은 물량으로 다짐 줄을 냄), - 아니면 **성토 단가 안에 넣을지**. 품셈 [주]⑤ 는 「**대규모 성토지로서 층다짐이 필요한 경우** - 적용」이라 **늘 서는 줄은 아님** — 현장 조건 판단임. - ⚠ **두 곳에 다 넣으면 이중계상**임. - ⓘ [주]③ 「굴착기와 진동롤러 **조합**」은 **포설과 다짐을 함께 쓰라는 뜻**으로 읽었음 — - 다짐 줄에 굴착기를 또 넣으면 포설에서 센 굴착기가 두 번 섬(시험으로 못 박아 뒀음). - -- [ ] `[사용자 답 대기]` **품 할증을 여럿 고를 때 합산인가 곱인가** (2026-09-09 밤) — - - **원문에 없음.** 지금은 **합산**(10%+5% = 15%)이고 `LaborSurcharge.COMBINE_RULE` **한 곳**만 - 갈아 끼우면 곱(1.10×1.05−1 = 15.5%)으로 바뀜. 화면 근거에 「우리가 정함·원문에 없음」을 적어 둠. -- [ ] `[자료 대기]` **종자·비료도 사급 미결에 듦** — `출력변수사전 C2` 가 물가지·견적 품목에 **종자·비료**를 - - 더 적음. ⇒ 씨앗뿜어붙이기(5-24) 종자 0.025kg/㎡ · 비료 0.1kg/㎡ 도 **같은 미결**임. -- [ ] `[위키 AI 몫]` 지식DB 정정 요청 (**위키 AI 몫**) — `현행_20260413.md` §3·§4 병합셀 복원. - -## 7. 검증 리스트 — 페이지별 (다 만들었고 **확인만** 남은 것) - -> 여기는 **무엇을 · 어떻게 · 안 하면**만 한 줄씩 둔다(원문을 되풀이하지 않음). -> **끝난 줄은 지우고** 검증 폴더에 날짜별 기록을 남긴다. 번호는 한 줄기 — 닫힌 번호는 다시 안 쓴다. -> ⚠ **[확정]·[저장]은 전 측점을 다시 계산해 정본에 씀** — 누르기 전에 다른 창에 알릴 것 -> (`OWNERS.md` 규칙 6). - -**⚠ 이 목록을 쓸 때 지킬 것 (2026-09-09 밤 재정비에서 얻은 것)** - -- **화면 확인은 DOM 이 아니라 도면 알맹이·갈무리로.** CAD 표는 캔버스에 그려져 DOM 에 안 남아 -V-9 를 한 번 「안 뜬다」로 잘못 봤음. -- **프로젝트마다 달라지는 수를 기준으로 쓰지 말 것.** 「도면 36장」이 실제로는 34장이었는데 -틀린 것이 아니라 **횡단 장수가 프로젝트마다 다른 것**이었음. -- **줄 수·항목 수는 늘어남.** 「찰 11줄 · 메 8줄」이 지금은 15·13 임 — 숫자를 박지 말고 -**무엇이 들어야 하는지**로 적을 것. -- **「있다」와 「돈다」는 다름** — 가드를 만들어 두고 아무 데서도 안 부르던 것이 둘 있었음. -- **부분 성공이 완전 실패보다 위험함** — 값이 그럴듯해 어떤 검사에도 안 걸림. -- **보내는 쪽과 받는 쪽을 마주 걸 것** — 한쪽만 보면 양쪽 다 조용히 틀림. - -### ⚠ [저장]·[확정] 잠금이 풀려야 보는 것 — 3건 - -> 표토 축 확정 전까지 사용자가 저장을 멈춰 둠. **잠금이 풀리면 한 번에 몰아서 볼 것.** - - -| # | 확인할 것 | 어떻게 | -| -------- | ------------------------------------ | ------------------------------------------------------------------ | -| **V-19** | 표준단면을 고치고 [저장] 하면 **전 측점 면적이 따라오나** | 2026-09-09 에 이은 자리(`2eb2c972`) — 측구 상폭을 고쳐 저장한 뒤 안 만진 측점 면적이 새 값인지 | -| **V-20** | 표준도 제원(두께·날개벽)을 고르고 저장하면 **수량에 실리나** | 상부 두께·`wing_wall_type` 을 넣고 저장 → 입적·날개벽 줄 대조 | -| **V-21** | 실제 업로드 중에 **잠금 띠가 뜨나** | 자료를 올리는 동안 B03 에서 「○○○ 님이 올린 자료를 분석하는 중입니다」 확인(`018ebe7f`) | - - -### ⚠ 실무자 눈이 있어야 닫히는 것 — 4건 (사용자 답 대기와 한 성격) - - -| # | 물어야 할 것 | 왜 우리가 못 정하나 | -| -------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **V-1** | B08·B09 화면 **13항목 수치가 실무에 맞나** | 규칙대로는 도는데 실무 값과 어긋나면 정본이 통째로 다시 나감 — 점검표 아티팩트 [https://claude.ai/code/artifact/64675be3-6e7d-40bb-8cda-68bc229bd394](https://claude.ai/code/artifact/64675be3-6e7d-40bb-8cda-68bc229bd394) | -| **V-13** | 녹화 반영률 **100 %** 가 실무에 맞나 | **법은 100 %**(별표2 타.(1)), 실무 사례는 80 — 설계자 판단 자리 | -| **V-18** | 폐기물처리비를 **총원가 밖**에 두는 것이 맞나 | 규정 근거 **0건**으로 확정됐고 남은 것은 관행뿐 | - - -### 조건이 갖춰져야 도는 것 — 2건 - - -| # | 확인할 것 | 조건 | -| ------- | ------------------------------ | --------------------------------------------------------------------------------------------------------- | -| **V-2** | **투영 이월 코드를 지워도 되나**(0-2) | ① 노선 재확정을 더 돌린 뒤에도 투영 WARNING **0건**(2026-09-09 로그 전수 0건, 이어지는 중) ② **관을 다시 놓는 경로**가 설 것 — **둘 다일 때만** 지움 | -| **V-5** | **값이 채워진 첫 인계** 여섯 가지(B08→B09) | `./venv/Scripts/python.exe tmp/snapshot_b09.py before | - - -## 6. 보류 - -- **타사 사용자에게 프로젝트 공유** — 2026-09-06 사용자 보류. 회사 밖 사람에게 열람·참여를 여는 길은 당분간 만들지 않음. -- **구조물 명칭 조정** — 바꿀 이름 목록 미정. 정본은 `B05_Profile/B05_Profile_Structure_Types.json` 한 곳이라 목록만 받으면 두 화면이 같이 따라옴. -- **노선 자동 제안** — 0-2 계획노선 편집 위에, 평면·종단·횡단·유토곡선을 다 보고 제안하는 방식으로 뒤에 붙임(2026-09-06 사용자). -- **B06 종단곡선도 제어** — 뜻이 불명해 2026-09-06 사용자 지시로 삭제. - diff --git a/docs/raw/verification/2026-09-13_축C_공종이름잇기_전수조사.md b/docs/raw/verification/2026-09-13_축C_공종이름잇기_전수조사.md deleted file mode 100644 index 32f57a6d..00000000 --- a/docs/raw/verification/2026-09-13_축C_공종이름잇기_전수조사.md +++ /dev/null @@ -1,412 +0,0 @@ -# 축 C 1장 첫 일감 — 공종을 이름으로 잇는 자리 전수 조사 - -작성 2026-09-13 · **랩탑 메인** · 읽기 전용 조사(코드 무변경) · 계약 문서는 `2026-09-13_축C_명세.md`(브레인 관리) - -> **무엇을 훑었나** — B05·B06·B07·B08·B09 의 `.py`·`.ts` 전부(openwebcad 제외) + `resources/data_*` 매핑·원단위·갈래표. -> **물음 셋** — ① 공종을 **문자열로 잇는 자리** ② 흩어진 **별칭** ③ 품셈에 **코드가 없는 공종**. -> **읽는 법** — 줄 번호는 조사 시점(`main_laptop_1`, dev 병합 직후) 기준. ✔ 표시는 랩탑 메인이 소스·실행으로 직접 대조한 것. - -**파일 줄임말** — 앞머리 `B08_Quantity_` · `B09_Estimation_` · `B07_DesignDetail_` 는 뗌. - -| 줄임 | 파일 | 줄임 | 파일 | -| --- | --- | --- | --- | -| `MAP` | `resources/data_work_item_mapping/work_item_mapping_2026-01-01.json` | `MST` | `resources/data_work_item_master/work_item_master_2026-01-01.json` | -| `Mapping` | `Engine_Handoff_Mapping.py` | `Rows` | `Engine_Handoff_Rows.py` | -| `Prep` | `Engine_Preparation.py` | `Trench`·`Spoil` | `Engine_Handoff_Trench.py`·`_Spoil.py` | -| `ESum` | `Engine_EarthworkSummary.py` | `UQ`·`REV` | `Engine_UnitQuantity.py`·`_UnitQuantity_Revetment.py` | -| `MAT`·`RM` | `Engine_MaterialSummary.py`·`Router_Material.py` | `HSUM`·`HIN` | `Engine_HaulSummary.py`·`Engine_HaulInputs.py` | -| `UP`·`BoQ` | B09 `UnitPrice.py`·`BillOfQuantities.py` | `BoQR` | B09 `BillOfQuantities_Rows.py` | -| `RAX` | B09 `ResourceAxis.py` | `STJ` | `B05_Profile/B05_Profile_Structure_Types.json`(레지스트리) | - ---- - -## 0. 한눈에 - -| 물음 | 결과 | -| --- | --- | -| ① 이름으로 잇는 자리 | **공종 찾기 12 · 성분 이름 24 · 갈래 이름 22 · 사유·상태 문구 5 · 자원 이름 11** (자리 단위, 4장 표) | -| ② 같은 것의 다른 이름 | **지반 갈래 어휘 8벌** · 공종 이름 별칭 **19묶음** · 별칭 사전 **11곳** · 정규화 규칙 사본 **4계열** | -| ③ 코드 없는 공종 | **품셈 밖 공종 11** · **구조물 일위대가 후보 17** · 코드는 있는데 줄에 안 붙는 것 **9** | -| 생산 쪽 코드 흐름 | **B05·B06·B07 에서 코드가 한 번도 안 흐름**(`FP-` 0건). 코드는 **B08 매핑표에서 처음 붙음** | - -**가장 무거운 것 셋** - -1. **부모 코드에 수량이 붙어 금액이 안 서는 공종이 실재함** ✔ — 흙깎기(리핑암) `FP-09-04` · 덤프·사토·표토 운반 `FP-10-12` · - 표토제거 `FP-09-15` 는 일위대가 제목이 **아예 없음**(2장 1-2) -2. **자원 축 파일 418/497 은 옛것·안 쓰는 것** ✔ — 지금 코드로 돌리면 **575줄 · 못 맞춤 508**(2장 1-1) -3. **이름이 한 글자만 어긋나도 값이 조용히 0·누락되는 자리 9곳** — 그중 **자재총괄에서 유로폼·면목·철근·떼가 빠지는 자리** ✔(7장) - ---- - -## 1. ⚠ 명세와 어긋나는 실측 — 브레인 판정 필요 - -> 명세는 **고치지 않았음.** 판정 거리만 적음. - -### 1-1. 자원 축 「418줄 · 못 맞춘 497줄」은 낡은 파일임 ✔ (명세 §1·§2③·§9·§11) - -- `write_resource_axis()`(`RAX:665`)를 **부르는 곳이 없음** — 파일은 옛날에 한 번 쓰이고 멈춤 -- 파일의 `source_master_file.sha256` = `3752af1e…` ≠ 지금 마스터 `34628999…` (마스터가 09-09 에 다시 생성됨) -- B09 는 파일을 안 읽고 **일위대가를 만들 때마다 메모리에서 새로 돌림**(`UP:594` → `build_resource_axis`) -- **지금 코드 · 지금 마스터로 돌린 값** (2026-09-13, 쓰기 없이 메모리 실행) - -``` -자원 줄 575 (노임 532 · 기계 43 · 자재 0) 공종 139 개에 붙음 -못 맞춤 508 (공종 166 개) -건너뛴 표 참조 63 · 미판정 73 · 계수 19 ← 명세의 64·75·19 와 다름 -``` - -| 못 맞춘 사유 | 줄 | STmate 목록(§11)으로 풀리나 | -| --- | --- | --- | -| 카탈로그에 없는 이름 | **271** | ✅ 풀릴 후보 | -| 뭉친 자원 줄의 이름을 못 풂 | **167** | ❌ **표 읽기 문제** — 목록이 와도 안 풀림 | -| 자원은 알았으나 값을 못 읽음 | 20 | ❌ 표 읽기 | -| 숫자 칸 수가 자원 열과 안 맞음(여러 모양) | 25 | ❌ 표 읽기 | -| 규격이 없어 같은 이름 중 못 고름 | 7 | △ `size` 칸이 있으면 | -| 작업조 표 · 같은 갈래 두 번 · 한 칸 밀림 등 | 18 | ❌ 표 읽기 | - -⚠ **자재 줄이 0** — 관급 자재 카탈로그 6,999건을 싣고 도는데 품셈 자재 이름이 하나도 안 맞음. - -### 1-2. 「부모 코드에 수량을 붙이지 말 것」(명세 §2) — 현행이 어기는 자리 ✔ - -부모에는 **두 모양**이 있어 규칙 한 줄로 못 닫음. - -| 공종(우리 이름) | 붙은 코드 | 잎 | 모양 | 일위대가 제목 실측 | -| --- | --- | --- | --- | --- | -| 흙깎기(리핑암) | `FP-09-04` 암절취 | 01 암파쇄 · 02 집토 | **단계 합산형** | **없음** | -| 흙깎기(발파암) | `FP-09-05` 발파암 | 01 절취(발파 10%) · 02 깍기(90%) · 03 집토 | **단계 합산형** | `-01` 하나뿐 | -| 유로폼(옹벽 묶음 조각) | `FP-12-38` | 01 사용횟수 · 02 사용수량 · 03 설치·해체 | **단계 합산형** | `-03#간단/보통/복잡` 만 | -| 덤프 운반 · 사토 운반 · 표토 운반 · 뿌리 운반 | `FP-10-12` | 01 토사 · 02 암절취 · 03 발파암 | 갈래 고르기형 | **없음** (`find_variant_code("FP-10-12","토사")` → `None`) | -| 표토제거 | `FP-09-15` | 01 답구간 · 02 답외구간 | 갈래 고르기형 | **없음** | -| 초류종자살포 | `FP-05-24` | 01 기계/일반 · 02 기계/마사토 | 갈래 고르기형 | 잎 둘 있음, 부모는 없음 | -| 구조물터파기(용수 미입력 때) | `FP-09-13` | 18구분 | 갈래 고르기형 | 잎만 있음 | - -- **갈래 고르기형** — 잎 하나를 고르면 됨. `Prep:441-447` 은 `FP-10-12` + `variant_value "토사"` 를 보내는데 - B09 는 `#갈래` 제목만 찾음(`UP:499-503`) → 잎 `FP-10-12-01` 로 못 내려감 → 「후보」에 머묾(`BoQR:214-233`) -- **단계 합산형** — **내역 한 줄이 곧 부모**이고 단가는 잎의 합. 잎에 수량을 붙이면 오히려 틀림 - ⇒ **판정 물음**: 합산형 부모를 「부모에 수량 허용 + 일위대가가 잎을 합침」으로 둘지, `AX-ST` 묶음으로 세울지 - -### 1-3. 별칭은 **표 안에서만** 참임 (명세 §5 「양방향 · 한 이름이 두 코드에 걸리면 오류」) ✔ - -- `UP:464-477` 원문 주석 — 「리핑암 = 파쇄암」은 **일반적으로 거짓**. 발파암도 캐고 나면 파쇄암 상태임. - **산림품셈 10-11 f 표 안에서만** 성립(10-12 [주]③ 암절취 1.35 = 10-11 f 파쇄암 1/1.35) -- ⇒ 전역 양방향 사전으로 두면 「파쇄암 → 리핑암」이 발파암 운반에도 걸릴 수 있음. - **별칭표 줄에 「어느 코드 범위에서」 칸이 필요함** (예: `리핑암 ↔ 파쇄암 @ FP-10-11`) -- 지금 별칭이 **세 벌이고 서로 다름** - - `MAP` `ground_aliases` — 리핑암 → [파쇄암, **암절취**] - - `UP:478-480` `VARIANT_ALIASES` — 리핑암 → 파쇄암 (**암절취 없음**) - - B08 인계본 `ground_class_aliases`(`Handoff.py:170`) — **B09 가 안 읽음**(시험만 읽음) - -### 1-4. `#갈래` 규약 자체가 「이름으로 잇기」임 (명세 §2 ④-5 ↔ §2 「이름으로 맞추면 결함」) ✔ - -- 일위대가 제목 **446개 중 202개**가 `B-<코드>#<한글 갈래 이름>` 꼴(`#파쇄암` · `#철근구조물` · `#굴착기(무한궤도) 0.2 · 소`) -- B08 이 보낸 원본값을 **공백 제거 + 물결표 통일** 뒤 글자 동등으로 맞춤(`UP:458-503`), 안 맞으면 수의 짝 · 「이하」 구간으로 내려감(`UP:506-537`) -- 마스터 표마다 **`variant_key` 칸이 이미 있음(456표)** — B09 는 안 읽고 원문에서 다시 뽑음 -- ⇒ **판정 물음**: `#갈래` 를 표시 이름 그대로 둘지, 갈래 번호(표 행 차례·`variant_key`)로 옮길지 - -### 1-5. 콘크리트가 어느 축인지 두 벌 (명세 §6) - -- 전개식 `UQ:387-393` — 콘크리트·채움·버림콘크리트 → `material`(사용자 확정 3차 ⑥) -- 관측 원단위 `resources/data_structure_unit/structure_unit_observed_2026-01-01.json` — 같은 이름 → `unit_price` -- 배합 성분 막이 `verify_no_mix_components`(`UQ:1363-1374`)는 **알리기만** 하고 막지 않음 - ---- - -## 2. 공종이 태어나 흘러가는 길 - -``` -B05 레지스트리(STJ) type_id · 한글 옵션값(흄관·찰쌓기·기초유…) 코드 없음 -B06 횡단 설계 soil/ripping_rock/blasting_rock · 영문 면적 키 코드 없음 -B07 횡단도 표 깍기·측구·쌓기·편책·노면다짐… (자기 이름) 코드 없음 · B08 이 안 읽음 - │ - ▼ -B08 토공집계(ESum) 「흙깎기」+「토사/연암…」 · 「성토면다짐」… ← 공종이 **이름으로 태어남** -B08 구조물 전개(UQ) 성분 이름 「터파기」「기초잡석」「콘크리트」… - │ - ▼ Mapping.for_earthwork(이름, 갈래이름) · for_structure(type_id) · kind_codes[한글] -MAP 이름 → FP 코드 ← **코드가 처음 붙는 곳** - │ - ▼ 인계 줄 = work_item_code + name + variant_value(한글) + ground_class(한글) -B09 내역(BoQ) 코드로 찾음 + `B-코드#한글갈래` 로 단가 제목 맞춤 + 이름 부분문자열 검사 -``` - ---- - -## 3. ① 이름으로 잇는 자리 - -표 끝 칸 — **곁에 코드**: 그 자리에서 코드가 이미 있는데 이름을 쓰나. **어긋나면**: 이름이 틀렸을 때 일어나는 일. - -### 3-1. 공종 찾기 — 이름 → 코드 (12) - -| 자리 | 문자열 | 무엇과 무엇을 잇나 | 곁에 코드 | 어긋나면 | -| --- | --- | --- | --- | --- | -| ✔ `Mapping:224-235` `for_earthwork` | (구분, 갈래) 한글 짝 | 집계 줄 → `MAP.earthwork[]` | ❌ | 코드 None → unmatched | -| ✔ `ESum:29, 108-221` | 흙깎기·측구터파기·보정량계·성토·성토면다짐·초류종자살포·지장목제거·층따기 | 공종 **이름이 태어나는 곳** | ❌ | — | -| ✔ `ESum:96` | 비율 없으면 갈래 이름 「암」 한 줄 | `MAP` 에 「암」 없음 | ❌ | 조용히 unmatched | -| ✔ `Trench:42-45, 176, 246, 292` | 구조물터파기·기초잡석·되메우기 | **성분 이름 = 구분 이름**으로 `for_earthwork` | ❌ | 코드 None | -| ✔ `Rows:111-118` | `GROUND_SPLIT_GROUPS` · `SLOPE_GROUPS` · `SUBTOTAL_GROUPS` · `HAUL_SUMMARY_GROUPS` | 구분 이름으로 줄 성격 판정 | ❌ | 합계 줄이 내역에 섬 | -| ✔ `Rows:88` | `AREA_TIMES_DEPTH_GROUPS {"층따기"}` | 면적×길이 환산 대상 | `FP-09-18` 있음 | 환산 안 됨 | -| ✔ `Rows:351-358` + `MAP:198-202` | 메쌓기·찰쌓기 | `bond` 옵션값 → `FP-13-06-01/02` | ❌ | 공종 미정 | -| `Engine_Pipe.py:122, 141-143` + `MAP:376-380` | 파형강관·흄관·VR관 | `pipe_kind` 옵션값 → `FP-12-11-0x` | ❌ | 막힘 사유 | -| `MAP:226-228` ↔ `Preparation_Ancillary.py:56-60` | 가설창고(컨테이너) | 매핑은 이름 키 · 파이썬은 코드 직접 | 두 벌 | 밑수 대조 누락 | -| `MAP:235-267` `pending_user` | 지장목제거 · 흙깎기/측구터파기 암 | 이름 키로 후보 목록 | — | — | -| `B09 MachineProductivity_Reference.py:130-133, 159` | 「…와 동일」 원문 → 마스터 **이름** → 코드 | 원문 참조 따라가기 | 원문에 코드 없음 | 이름 겹치면 실패(`:162`) | -| `B09 FactorChoices.py:200, 211, 223` | 흙깎기(기계)·노체포설·층따기 | 표시 이름 박힘(코드 키) | ✅ | 표시만 | - -### 3-2. 성분 이름 — 원단위 성분 → 축·공종·자재 (24) - -| 자리 | 문자열 | 무엇과 무엇을 잇나 | 곁에 코드 | 어긋나면 | -| --- | --- | --- | --- | --- | -| ✔ `UQ:377-416` `DESTINATION` | 성분 23개 | 성분 이름 → 축(토공·자재·일위대가·참조) | ❌ `Component` 에 코드 칸 없음 | KeyError 또는 기본값 | -| ✔ `REV:361, 481, 511, 584` | `DESTINATION.get(name, "quantity")` | 유로폼·면목·이형철근 D13·떼 → **없는 축** | ❌ | **자재총괄에서 빠짐**(7장) | -| `UQ:1004` | `DESTINATION.get(stone_name, "material")` | 돌 종류 → 축 | ❌ | 기본값이 `REV` 와 반대 | -| ✔ `UQ:1488` | `== "버림콘크리트"` | 버림 줄 → 기초잡석 줄 산출 | `FP-12-25` | **기초잡석 줄 사라짐** | -| `UQ:1601` · `HIN:43-44, 104, 106` | 채집석 · 잔토처리 | → 사토 공제 · 유토곡선 입력 | ❌ | **0 으로 감** | -| ✔ `Trench:165, 218-233` | 터파기·되메우기·잔토처리·기초잡석 | `destination=="earthwork"` + 이름 | 매핑엔 있음 | 줄 안 섬 | -| `REV:455-457` | 원문 「바닥파기」를 「터파기」로 개명 | 토공 축에 닿으려고 이름을 맞춤 | ❌ | 주석에만 있는 의존 | -| ✔ `Rows:320-330` + `MAP:160, 174, 195` + `UQ:751, 934` | 돌쌓기·큰돌쌓기 | `billing_component` 이름 → ㎡ 수량 | 코드 있음 | **㎡ 수량 잃음** | -| ✔ `Rows:476, 529` | 콘크리트·버림콘크리트·레미콘 | 타설 대상 성분 | ❌ | 타설 줄 누락 | -| ✔ `Mapping:128, 369-379` + `MAP:349` | 이형철근·원형철근·철근(앞머리) | 성분 이름 → 철근/무근구조물 | ❌ | **무근으로 조용히** | -| ✔ `MAP:279-322` + `Mapping:305-319` | 콘크리트·버림콘크리트·합판거푸집·유로폼·이형철근 D13/D16·기초잡석 | 묶음 조각 ← 성분 이름 | 조각은 코드 | 조각 물량 0(`MAP:327` 자인) | -| `UQ:1372` · `:421-423` | 시멘트·모래·자갈… 정확 이름 | 배합 성분 막이 | ❌ | 표기 변형이면 통과 | -| ✔ `MAT:115, 137, 234-237` | 이형철근 D13/D16→이형철근 · 콘크리트류→레미콘 | 성분 → 할증표 이름 | ❌ | 「할증률 미확보」 | -| ✔ `MAT:325` | `rate_for(lookup)` 조건 없이 부름 | 레미콘 무근/철근 · 철근 복잡 | — | **늘 기본 율**(7장) | -| `MAT:271-273` | 키 `(name, unit)` | 규격(채움콘크리트 180/210 · 관경) 버림 | ❌ | 다른 규격이 합쳐짐 | -| `MAT:316` · `MatGrid.ts:335-357` | 자재 이름 키 | 관급/사급 선택 저장 | ❌ | 이름 바뀌면 선택 고아 | -| ✔ `RM:265` | `.endswith("규준틀")` | 준비공 줄 → 규준틀 자재 | `FP-11-02/03` 곁에 있음 | **규준틀 자재 전부 빠짐** | -| `Prep:459-463, 468, 485, 509` ↔ `B08_Quantity_UI_Page.ts:131-141` | 각재 50×50 · 판재 T12 · 못 · 비탈 규준틀 | 재료 이름·손율·준용 주석 | `FP-11-02` | 사용자 값 무시 | -| `Engine_Formwork.py:30, 97` | 합판거푸집·유로폼·문양거푸집·거푸집 | 성분 → 전용 횟수 | 매핑엔 있음 | 횟수 없음 | -| `Engine_ObservedUnit.py:53-64, 117-131` | 반중력식·A-TYPE·「800」 · 단위 m/㎡ | 옵션값 ↔ 관측표 규격 · 단위 → 배율 | ❌ | 800.0≠"800" · **모르는 단위 ×1** | -| `UQ:1230, 1239` | 「A-TYPE+집수정」 | 날개벽 옵션 → 이중계상 경고 | ❌ | 경고 사라짐 | -| B09 `MaterialCatalog.py:80-95` | 이름·규격 정확 일치 | B08 자재 → 관급 품목 코드 | ❌ 인계 자재에 코드 없음 | 못 찾음 | -| B09 `Guards.py:230, 255-259, 272, 283, 293-297` | 물빼기파이프·물구멍·고임돌·채움콘크리트 · 「큰돌쌓기」 in source | 자재 이름 · 공종 이름 부분문자열 | 공종 쪽은 `FP-13-06` | 가드 빗나감 | -| B07 `Engine_Standard_Sheet.py:79-86, 102-120` · `Router_Standard.py:114` | `sheet_key` = json(type_id·높이·옵션) · 성분 이름 | 표준도 장 ↔ 편집 저장 | ❌ | 편집 고아 | - -### 3-3. 갈래 이름 — 지반·관종·구조물 종류 (22) - -| 자리 | 문자열 | 무엇과 무엇을 잇나 | 곁에 코드 | 어긋나면 | -| --- | --- | --- | --- | --- | -| ✔ `Rows:49-61` + `Mapping:122` | 연암… + ripping/blasting → 리핑암·발파암 | 사용자 갈래 → 매핑 갈래 이름 | ❌ | 「시공법 미지정」 | -| ✔ `Rows:55` · `Handoff.py:178` | `== "토사"` | 토사 판정 | ❌ | 안내 목록 틀림 | -| ✔ `Rows:260-261` | `variant_value = "리핑암"` | 운반 갈래 → B09 `#파쇄암` | 부모 코드만 | 별칭 없으면 단가 없음 | -| ✔ `Spoil:57, 168-169` | ea/rr/br → 토사·리핑암·발파암 · **`variant_axis None`** | 사토 운반 갈래 | ❌ | 운반 줄과 모양이 다름 | -| ✔ `Prep:441-447` | `FP-10-12` + 「토사」 | 표토 운반 갈래 | 부모만 | **금액 안 섬**(1-2) | -| ✔ `Trench:58-60, 68-79` | soil/ripping_rock/blasting_rock · 육상/용수 · 0~1m | 세 축 **자리 셈**으로 잎 코드 조립 | 부모 | 품셈 차례 바뀌면 조용히 틀림 | -| `Trench:106-111` · `UQ:820-821` · B06 `UI_Cross_Excavation.ts:30-35` · B07 `Engine_Cad_StandardFigure.py:193-195` | 기초유·기초버림 | 옵션값 → 기초 깊이 | ❌ | 비탈분만 셈 | -| ✔ `UP:483-537` `find_variant_code` | 정규화 갈래 이름 · 수의 짝 · 「이하」 | 원본값 → `B-코드#갈래` | 부모까지만 | 후보에 머묾 | -| `B09 MachineProductivity_Dozer.py:343-355, 410-418` | `"암" in label` · `.get("토사")` | f 표 파쇄암/발파암 ↔ E 표 암석 | ❌ | 계수 빠짐 | -| ✔ `BoQ:507-510` | `"깎기" in name or "절취" in name` | 줄 이름 → 총 절토량(운반 ≤ 절토 검산) | ✅ 코드 곁에 있음 | 검산 틀림 | -| ✔ `BoQR:31-36` | `row.name == item.name` | 운반 줄 이름(`"dozer 운반"`) → 첫 줄 단가 | ✅ | **토사·리핑암 줄 이름이 같아 엉뚱한 단가** | -| B09 `QuantityDigits.py:30-63, 76-85` | 공사연장·떼·돌쌓기·옹벽·콘크리트·철근 부분문자열 | 줄 이름 → 소수 자리 | ✅ | 자리수 틀림 | -| `HSUM:41-43, 192-198` | 토사·리핑암·발파암 차례 목록 | 운반 줄 갈래·정렬 | ❌ | 끝으로 밀림 | -| `Engine_EarthworkTable.py:59, 181` | `factors.get(kind) or factors["soil"]` | 저장 암 종류 → 환산계수 C | ❌ | **토사 계수로 조용히** | -| B06 `UI_Cross_Design.ts:80-84` · `Router_Design.py:189` | 「암」이면 모두 ripping_rock · 기본값 ripping_rock | 지반유형 저장 | ❌ | `FP-09-03-02` ↔ `FP-09-04` 갈림 | -| `B08_Quantity_UI_Page.ts:408-431` · `Router_Earthwork.py:141-142` | 「암」·「토사」 · 암 갈래 이름 키 | 입력 칸 · `rock_ratios_pct` 키 | ❌ | 세트 바꾸면 고아 | -| ✔ `Mapping:243-257` · `MAP.structure[]` | `type_id` | 구조물 → 공종(영문 id 가 공종 대리) | ❌ | unmatched | -| `REV:29-32, 63-85, 160, 263` | 돌쌓기(찰)·돌붙임(메)·「돌」·`spillway == "없음"` | 옵션값 → 계수·차감 | ❌ | 「없음」 외 글자면 **차감됨** | -| `UQ:97, 134, 221, 479, 519, 695` | 야면석·호박돌 · 성토/절토 · 찰/메 · 「40~60」 | 옵션값 → 표 키 | ❌ | 기본값 · 물결표 불일치 | -| B06 `Engine_Structures_Wall.py:33-39` ↔ `common_util_structure_walls.ts:56-62` | type_id → 돌쌓기(찰)/(메) · TS `includes("찰")` | 벽 높이 한계 | ❌ | 큰돌쌓기가 bond 무관하게 「메」 | -| B05 `STJ` `pipe_kind`·`bond`·`foundation`·`inlet_type`·`wing_wall_type` | 한글 옵션값 | B08 로 가서 코드·갈래가 됨 | ❌ | 위 각 줄 | -| B05 `Structures_Schema.py:120-122` · `Engine_Sections.py:198-207` · `Structures_Migration.py:53, 64-78` | 측점 이름표 `"{관종} D{관경}"` · 한글 이름 집합 | 측점 식별 | ❌ | 이관 누락 | - -### 3-4. 공종 밖 문자열 — 사유·상태 문구가 판정 키 (5) - -| 자리 | 문자열 | 무엇을 가르나 | -| --- | --- | --- | -| ✔ `Rows:295-304` `blocked_of` | 「입력되지 않았습니다」·「자료에 없습니다」·「산출식이 아직 없습니다」 | 사람 말 문구 조각 → 막힘 갈래 | -| `Prep:629-630` · `Engine_Preparation_Status.py:3-13` | `status == "값 있음"` | 한글 표시 문구가 상태값 | -| B09 `UI_Page.ts:318-319` | `note === L("…Adopted")`(채택) | 서버 문구 → CSS (곁에 `key` 있음) | -| B05 `STJ:490` · `RM:73-76` · `common_util_structure_lengths.py:73` | `design_owner == "횡단 설계"` | 한글 문구가 건너뛰기 깃발 | -| B07 `Engine_Cad_Table.py:24-58` → manifest `quantity_table(s)` | 깍기·편책·노면다짐… | **읽는 곳 없음**(막다른 길) | - -### 3-5. 자원 이름 — B09 자원 축 (11) - -품셈 칸에는 코드가 없어 **이름 잇기가 불가피한 자리**가 대부분임. 「곁에 코드」가 ✅ 인 줄만 고칠 거리. - -| 자리 | 무엇 | 곁에 코드 | -| --- | --- | --- | -| `RAX:124-143, 321-350` | 품셈 칸 → 공백 지운 이름 색인 → 카탈로그 코드(규격은 동률 깨기) | 불가피 | -| `B09 MachineProductivity.py:158-185` | 기계 별칭 → 이름 포함 → 궤도 낱말 → 용량 | 불가피 | -| `B09 ResourceAxis_Transposed.py:278-302` | 뭉친 칸 `startswith` | 불가피 | -| `B09 MachineProductivity_Reference.py:233-255` | 「대형브레이커(㎥/hr)」 부분문자열 | 불가피 | -| `B09 MachineProductivity_Dozer.py:205-211` | `"습지 불도저"`·`f"불도저({궤도})"` 조립 후 `==` | △ 코드표로 대체 가능 | -| `B09 ResourceAxis_ChooseOne.py:148-151` | 같은 이름 다른 규격 감지 | △ 코드 앞머리 | -| `UP:157, 290-293` | 브레이커·리퍼·집게 낱말 → 부착장비 | ✅ 코드 앞머리가 `:205` 에 이미 있음 | -| `UP:647-661` | 카탈로그 기계 이름 ⊂ 줄 이름 | 불가피 | -| `B09 MachineOperating.py:46, 157-169` | 덤프트럭·트럭·트레일러 → 운전 직종 | ✅ 기계 코드 앞머리 | -| `B09 Lists_Sources.py:159-164` | 건설기계운전사… 이름 → A10 표 | ✅ 노임 1048/1049/1050 | -| `RAX` `ResourceCatalog.aliases` | **읽어 오고 안 씀** | — | - ---- - -## 4. ② 흩어진 별칭 - -### 4-1. 지반 갈래 어휘 — **8벌** - -| # | 어휘 | 쓰는 자리 | -| --- | --- | --- | -| 1 | `soil` · `ripping_rock` · `blasting_rock` | B06 `Section_Schema.py:44` · `config_system_design.py:335-339` · `Trench:58` | -| 2 | 토사 · 리핑암 · 발파암 | `MAP.earthwork` · `ESum` · `HSUM:41` · `Spoil:57` · `B08_Quantity_UI_ConversionFactors.ts:39-43` | -| 3 | `ea` · `rr` · `br` (`_m3`) · EA/RR/BR | `HSUM:41` · `Spoil:57` · `Router_Earthwork.py:189` · `common_util_mass_haul_balance.ts:414-423` · locale | -| 4 | 암절취 · 발파암 (품셈 절 이름) | `MST` 9-12·10-12·9-13 잎 · **`UQ:1399-1403`·`HIN:130` 은 ripping_rock → 「암절취」** (1·2벌과 충돌) | -| 5 | 파쇄암 (품셈 10-11 f 표) | `UP:478-480` · `MAP.ground_aliases` · `Dozer` | -| 6 | 풍화암 · 연암 · 보통암 · 경암 · 「암」 | `config_system_design.py:389-392` · `common_util_project_settings.py:57-61` · `ESum:96` | -| 7 | `ripping` · `blasting` (시공법) | `Mapping:122` | -| 8 | 암석 (품셈 E 표) | `Dozer:343-355` | - -**기본값도 갈림** — B06 `Router_Design.py:189` ripping_rock · `B06 Engine_SpoilFill.py:195` soil · B07 `Router_Support.py:352` soil · `Engine_EarthworkTable.py:42` ripping_rock. - -### 4-2. 공종 이름 별칭 — 19묶음 - -| 같은 것 | 이름들 (자리) | -| --- | --- | -| 흙깎기 | 흙깎기(`ESum`) · **깍기**(B07 `Engine_Cad_Table.py:32`, 오기) · 절토(locale) · 토사깍기(`MST` 9-3) | -| 측구터파기 | 측구터파기 · 측구(B07) · 측구(옆도랑) · 옆도랑 · `ditch_side` — **갈래 수 답 대기** | -| 성토 | 성토 · 쌓기(B07) · 노체포설(`MST` 9-16-1) · `embankment`·`fill_area_m2` | -| 노면다짐 | 노면다짐(B07) · 노면고르기(실무) · 노체다짐(9-16-2) — **B08 줄 없음 · 답 대기** | -| 초류종자살포 | 초류종자살포(성토면/절토면) · 성토파종/절토살포(B07) · 법면보호공(종자파종) · 「초류종자 살포」 · 씨앗뿜어붙이기(`MST` 5-24) · `seed_spray_*`·`slope_protection` | -| 지장목제거 | 지장목제거 · `tree_removal` · `obstacle_removal` · 뿌리뽑기+잡관목제거(실무 두 줄) | -| 층따기 | 층따기 · `benching` · `bench_cut` | -| 면고르기 | 면고르기 · `grading_*` · `face_dressing` | -| 제근 | 제근 · `grubbing` · 제근·뿌리다듬기 | -| 운반 | 무대(종방향유용토)/도자운반/덤프운반(`ESum:238`) · `free_haul`/`dozer`/`dump_truck` · 종무대/**도쟈**/덤프(locale 오기) · 불도저 운반/덤프 운반(`MST`) · **「dozer 운반」**(인계 줄 이름 `Rows:237`) | -| 사토장 | 사토장 · 유용토운반작업장(구 사토장) · `spoil_bank`/`spoil_fill` · 사토 | -| 레미콘 | 콘크리트 · 레미콘 · 레디믹스트 · `ready_mixed` | -| 집수정 | 집수정(`MAP:185`) · 유입부 집수정(`UQ:1223`) · 배수관 유입부 집수정(`Wording.py:29`) | -| 가설창고 | 가설창고(컨테이너)(`MAP`·`Ancillary`) · 가설창고(개소)(locale) | -| 기슭막이·대피로 | 기성막이(옛) ↔ 기슭막이 · 대피로 ↔ 대피소 — py·ts 두 벌(`Structures_Migration.py:44` · `B05_Profile_UI_Page.ts:96`) | -| 배수관 | 배수관 · 배관 · 배수시설 · `"{관종} D{관경}"` · 관종 흄관/VR관/파형강관 ↔ config 이중벽관/삼중벽관/파형강관(`Section_Common.ts:69` 는 config 이름만 앎) | -| 돌쌓기 | 돌쌓기(찰/메) · 돌(찰/메) · 돌붙임(찰/메) · 찰/메쌓기 — `includes` 로만 붙음 | -| 규준틀 재료 | 각재 50×50 ↔ 각재 · 판재 T12 ↔ 판재 (할증표 이름과 안 맞음) | -| 철근 | 철근 현장가공 및 **조립**(`MAP`) ↔ **조림**(`MST` FP-12-03, 원문 오기) · 이형철근 D13/D16 ↔ 이형철근 | - -### 4-3. 별칭 사전·이름표 자리 — 11곳 - -| # | 자리 | 무엇 | 비고 | -| --- | --- | --- | --- | -| 1 | `MAP.ground_aliases` | 리핑암 → 파쇄암·암절취 | 공식 | -| 2 | `UP:478-480` `VARIANT_ALIASES` | 리핑암 → 파쇄암 | 1과 다름 | -| 3 | `Handoff.py:170` `ground_class_aliases` | 1을 인계본에 실음 | **B09 안 읽음** | -| 4 | `B09 MachineProductivity.py:53-59` | 유압식백호우·백호·굴삭기 → 굴착기 | BACK-HOE·B/H 없음 | -| 5 | `B09 ResourceAxis_UnitBasis.py:50, 111` | (FP-13-02-04, 인부) → 보통인부 | 코드 범위 있음 ⭕ | -| 6 | `B09 MachineProductivity_Reference.py:36, 92-93` | 용수 → 육상 | 이름 고쳐 쓰기 | -| 7 | `MAT:234-237` | 이형철근 D13/D16 · 콘크리트류 → 할증표 이름 | D 규격 둘뿐 | -| 8 | 운반 이름표 — `ESum:238` · `SummaryGrid.ts:85-89` · locale · B07 `Engine_Cad_MassHaul.py:100-104` | 4벌 | | -| 9 | 지반 이름표 — `HSUM:41-43` · `Router_Earthwork.py:189` · `ConversionFactors.ts:39-43` · `UQ:1399-1403` · `HIN:130` | 5벌, **값이 서로 다름** | | -| 10 | 구조물 이름표 — `STJ name` · `Wording.py:22-38` · `B05 Page_Helpers.ts:239-245` · `B07 Engine_Cad_Plan.py:74-78` · `Box_Panel.ts` · `Ford_Panel.ts` · locale | 6벌 이상 | | -| 11 | 관급·타설 이름표 — `MAT:70-83` ↔ `MatGrid.ts:216-226` · `UI_Page.ts:223-227` ↔ locale `:727-729` · `masonry_class` JSON ↔ `MAP` bond_codes | py·ts 두 벌씩 | | - -### 4-4. 정규화 규칙 사본 — 4계열 - -| 계열 | 사본 | 어긋남 | -| --- | --- | --- | -| 물결표·붙임표 | `RAX:152`(단일 정본이라 선언) · `B09 FactorChoices.py:43` · `B09 MachineProductivity_Reference.py:56` · `ThreeAxis.py:52` · `MachineOperating.py:138` | `FactorChoices` 는 `~` 빠짐 · `Reference` 는 `∼`·`‐` 빠짐 · 붙임표를 범위로 보는 곳과 뺄셈으로 보는 곳이 갈림 | -| 공백 제거 | 약 15곳 | `split()`(모든 공백) ↔ `replace(" ", "")`(ASCII 공백만) 두 방식 | -| 단위 표기 | `Engine_BasisUnit.py:27-37` · `BoQR:452-470` · `ResourceAxis_UnitBasis.py:44` · `MachineProductivity.py:191` · `ResourceAxis_Sources.py:160, 179` | 5벌. `MAT`·`ObservedUnit` 은 BasisUnit 안 씀. kg/㎏ 둘 다 쓰임 | -| 계수 기호 k·f·E·Cm | `Reference.py:39-47` = `FactorChoices.py:46-54` · `MachineProductivity.py:45-48` | 3벌 | - -### 4-5. 매핑표 밖에 박힌 공종 코드 — 두 번째 코드 장부 - -| 자리 | 코드 | -| --- | --- | -| `Prep:174, 189, 199, 291, 314, 317, 368, 388, 441, 443, 533, 553` | FP-09-15 · 09-21 · 08-11 · 14-02 · 09-20-02 · 10-12 · 11-02 · 11-03 | -| `Preparation_Ancillary.py:59` | FP-11-01 (`MAP` 과 두 벌) | -| `resources/data_masonry/masonry_class_2026-01-01.json:46-53` | FP-13-06-01/02 (`MAP` 과 두 벌) | -| B09 `Transport.py:41-60` · `BasisSheet.py:146` | FP-10-04 (+ 지어낸 갈래 `#트레일러20ton`) · 146 은 상수 대신 글자 | -| B09 `KnownGaps.py` · `FactorChoices.py:198-234` · `Compaction.py:48-71` · `WorkItemUnit.py:147-164` | 원문 [주] 를 코드 키로 옮겨 적은 곁표 | - ---- - -## 5. ③ 품셈에 코드가 없는 공종 - -갈래 칸은 **후보 제안**임(명세 §2 ② `AX-ST`·`AX-WK` 기준). 확정은 브레인·사용자. - -### 5-1. 품셈 밖 공종 — `AX-WK` 후보 (11) - -| 공종 | 지금 식별 | 자리 | -| --- | --- | --- | -| 지장목제거 — 뿌리뽑기 · 잡관목제거 | 이름 · 코드 None · `pending_user`(FP-04-01/02/03 후보) | `ESum:181-215` · `Prep:121-142` · `MAP:239-246` | -| 도수로·산비탈수로 (`chute`) | type_id · `pending_user` | `STJ:608` · `MAP:256` | -| 절토사면 배수로 (`slope_drain`) | type_id · `pending_user` | `STJ:640` · `MAP:262` | -| 노출형 횡단수로 (`cross_drain_exposed`) | type_id · 매핑 없음 | `STJ:451` | -| 콘크리트 포장 (`pavement_concrete`) | type_id · 매핑 없음 | `STJ:2347` | -| 편책 | B07 표 칸만 · 「별도 일위대가 필요」 | B07 `Engine_Cad_Table.py:48` · `Cross_Quantity.py:28` | -| 노면다짐 | B07 표 칸만 · B08 줄 없음 · 답 대기 | B07 `Engine_Cad_Table.py:57` | -| 국가지점번호판 · 임도 안내판 · 차단기 · 수방대책 자재 | `key` + 이름 · `code None` | `Preparation_Ancillary.py:24-73` | - -### 5-2. 구조물 — `AX-ST` 후보 (17) - -| 구조물 | 지금 식별 | 자리 | -| --- | --- | --- | -| 옹벽 | `composite` 묶음(조각은 FP) | `MAP:273-328` | -| BOX암거 · 세월교 · 소형사방댐 · 소단 | type_id · 매핑 없음 | `STJ:205, 339, 1803, 1481` | -| 기슭막이 · 골막이 · 흙막이 · 개거 · 바닥막이 | type_id · **원단위는 서는데 코드 없음** · 사유 문구 낡음(「원단위 없음」) | `UQ:1149-1168` · `Prep:586-597` | -| 관보호공 날개벽 | type_id · 매핑 없음 | `UQ:1146, 1224` | -| 대피소 · 작업장 · 회차로 · 가드레일 | type_id · 「quantity」 보기만 있음 | `STJ:2042, 2071, 2098, 2140` | -| 사토장 · 토취장 | type_id · 매핑 없음 | `STJ:2198, 2258` | - -### 5-3. 코드는 있는데 줄에 안 붙거나 금액이 안 서는 것 (9) - -| 공종 | 까닭 | 자리 | -| --- | --- | --- | -| 흙깎기·측구터파기 암(풍화암·연암·보통암·경암) | 시공법(리핑/발파) 미지정이면 코드 None | `Rows:49-61` · `MAP:248-254` | -| 흙깎기(리핑암) · 덤프 운반 · 표토제거 | 부모 코드 → 일위대가 제목 없음 | 1-2 | -| 뿌리 운반 | `FP-10-12` 부모 + **갈래 없음** | `Prep:376-389` | -| 표토 운반·적치 | 대기 상태일 때 코드 None, 값 서면 FP-10-12 — **코드가 상태에 따라 바뀜** | `Prep:406-441` | -| 뿌리 적재 | `FP-09-20-02` 인데 단위 ㎡ ↔ 원문 10주당 | `Prep:357-369` | -| 구조물터파기 | 용수 미입력이면 부모 `FP-09-13` | `Trench:246-264` | -| 물넘이포장 | `FP-12-06` 밑수가 「일당」(작업조형) · `thickness_cm` 옵션이 레지스트리에 없음 | `MAP:188-191` · `UQ:1141` | -| 노체다짐 `FP-09-16-02` | 줄로 안 셈 — 답 대기(PLAN 5장) | `MAP:65` | -| 돌붙임(골막이·바닥막이 안) | `FP-13-05-01/02` 가 마스터에 있으나 **매핑 없음** · 성분 이름으로만 감 | `REV:287-288, 552` | - -### 5-4. 공종이 아닌 것 — 설계상 코드 없음 (참고) - -- **내역에 안 서는 줄**: 무대(`MAP:147-151` null) · 보정량계 · 잔토처리(`Trench:307-317`) · 입적·석적(`UQ:942-981` reference) · 사방 시설 「해당 없음」 줄(`Prep:574-585`) -- **자원·자재 축**: 채집석(haul_deduction) · 모르터(unit_price, 코드 없음) · 고임돌·막자갈·깬돌·물구멍관 · 자재총괄 전 줄 -- **B09 금액 줄**: 법정경비 14종·안전관리비·관급자재대·폐기물처리비 — 영문 `key`(`B09 Statutory.py:59-105` · `Engine_Cost.py:314-521`) -- **B09 지어낸 코드**: `M-FUEL-경유`(`UP:72`) · `X-<코드>#조합`(`UP:354-376`) — 명세 §2 ①에 `#조합` 은 있음, `M-FUEL-*` 은 없음 - ---- - -## 6. B07 — 조사 결과 요약 - -- **횡단도 아래 표**(`Engine_Cad_Table.py:24-58`)는 **B07 만의 이름**(깍기·측구·쌓기·편책·노면다짐·사토장)이고 코드 없음 - - 층따기·면고르기·지장목제거·성토파종은 측점별 **사면 길이**를 읽음 — B08 집계(측점 사이 면적·반영률)와 **다른 값** - - 표토제거·편책·제근·노면다짐 칸은 `source["quantities"]` 를 읽는데 **그 키가 없어 늘 빈칸**(`Router_Support.py:288, 298-299`) -- **표준도**(3장 이관 대상)는 B08 `build_unit_table` 을 그대로 부름 — **계산 중복 없음**. 제목은 레지스트리 `name`, 줄 이름은 B08 성분 이름 -- **CAD 편집값**은 확정 때 manifest 에 저장되나 **읽는 곳 없음**(`Router.py:430-449` · `Router_Support.py:645-649`) - ---- - -## 7. 곁에서 드러난 것 — 이름 때문에 값이 조용히 빠지는 자리 - -조사 범위(이름 잇기)에서 드러난 **결함 후보**. 고치지 않았음. - -| # | 자리 | 무엇이 빠지나 | 확인 | -| --- | --- | --- | --- | -| 1 | `REV:361, 481, 511, 584` | 개거·흙막이의 유로폼·면목·이형철근 D13·떼가 `DESTINATION` 에 없어 축 「quantity」 → **자재총괄에서 빠짐**, 건너뛴 수는 화면에 안 뜸 | ✔ 소스 | -| 2 | `RM:265` | 준비공 줄 이름이 「…규준틀」로 안 끝나면 **규준틀 자재 전부 빠짐** | ✔ 소스 | -| 3 | `UQ:1488` | 「버림콘크리트」 이름이 다르면 **기초잡석 줄 사라짐** | ✔ 소스 | -| 4 | `MAT:325` | 할증 조건을 안 넘김 → 레미콘 늘 무근 율 · 철근 복잡 율 안 붙음 | ✔ 소스 | -| 5 | `BoQR:31-36` | 운반 단가를 **줄 이름**으로 찾음 — 토사·리핑암 줄 이름이 같아(「dozer 운반」) 첫 줄 단가로 무대 검산 | ✔ 소스 | -| 6 | `Prep:441-447` → `UP:499-503` | 표토·덤프·사토 운반 **금액 없음**(`FP-10-12` 제목 0) | ✔ 실행 | -| 7 | `Engine_EarthworkTable.py:59, 181` | 모르는 암 종류면 **토사 환산계수**로 조용히 | 도우미 조사 | -| 8 | `REV:263` | `spillway` 가 「없음」 외 글자면 관 단면을 **차감** | 도우미 조사 | -| 9 | `Engine_ObservedUnit.py:117-131` | 관측표 단위가 m·㎡ 가 아니면 **×1 개소**로 | 도우미 조사 | - -**범위 밖이나 무거운 것 하나** ✔ 소스 -B07 도면 확정(`Router.py:455-495` → `Router_Support.py:666-692`)이 B06 `compute_cross_design` 을 -**지반유형·단면유형·측구위치·곡선확폭만 넣고 다시 돌려** `cross_sections` 설계에 **덮어씀**. -암반 경계(`rock_boundary_offset_m`)·표준값·사토 성토·소단·측구 형식·포장·절토 경사가 빠짐 → -**B08 이 읽는 토사/암 나눔·측구 나눔·사토 공제가 확정 순간 바뀔 수 있음**. 수치 재현은 안 함. - ---- - -## 8. 1장 다음 일감에 넘기는 것 - -| 1장 일감 | 이 조사에서 넘길 것 | -| --- | --- | -| 별칭표를 한 파일로 | 4-3 의 11곳 · 4-1 의 8벌 · **「코드 범위」 칸**(1-3) | -| B08 ↔ B09 문자열 → 코드 | 3-1 의 12자리 · 3-3 의 `BoQ:507-510`·`BoQR:31-36`·`QuantityDigits` · **부모 코드 판정**(1-2) | -| 못 맞춘 줄 줄이기 | 기준 수치는 **508**(1-1) · 271 만 목록으로 풀림 · 167 은 표 읽기 | -| 이중계상 경계를 축으로 | 1-5 콘크리트 두 벌 · `UQ:1363-1374` 알리기뿐 · 3-2 성분 이름 막이 | -| `undetermined` 판정 | 지금 코드 기준 **73표**(명세 75) | diff --git a/docs/raw/verification/2026-09-13_축C_명세.md b/docs/raw/verification/2026-09-13_축C_명세.md index d920e7d8..66b8a9d2 100644 --- a/docs/raw/verification/2026-09-13_축C_명세.md +++ b/docs/raw/verification/2026-09-13_축C_명세.md @@ -241,6 +241,21 @@ AR-<종류>-<8자리 16진> 카탈로그에 없는 자원 `소운반인부` 는 **카탈로그에 아예 없음** ⇒ 보통인부로 붙이는 것은 **대체**이지 별칭이 아님. **대체는 도메인 판단이라 사용자 확인 자리임.** +### ⭐ 후보 넷 판정 (2026-09-13 브레인, 사용자 위임) + +랩탑 메인이 「범위 별칭 후보」로 올린 넷을 갈랐음. **별칭은 하나뿐임.** + +| 후보 | 판정 | 까닭 | +| --- | --- | --- | +| 화약공 → **화약취급공** | ✅ **별칭** · scope `FP-09-05` 계열 | 「화약취급공」이 건설업 노임 **표준 직종명**이고 품셈이 표 안에서 줄여 적은 것. 같은 사람이라 단가가 갈릴 이유 없음 | +| 소운반인부 → 보통인부 | ⛔ **별칭 아님 — 「표 읽기」로 옮김** | 품셈 원본에 **0건**이고 어느 사전에도 없음. 표준품셈에서 **소운반은 직종이 아니라 작업 성격**이고 품은 보통인부로 계상함. `FP-12-10`·`FP-12-15` 에서 나온 것으로 보아 **표의 한 칸을 자원 이름으로 읽었을** 가능성이 큼 | +| 소형브레이커 → (공압식) | ⛔ **별칭 아님 — 「규격 미정 · 후보 2」** | 공압식·전기식은 **다른 장비**이고 단가가 다름. 품셈이 형식을 안 정했다는 뜻 | +| 공기압축기(3.5㎥/min) → (이동식) | ⛔ **별칭 아님 — 「규격 미정 · 후보 N」** | 품셈은 **용량**으로, 카탈로그는 **형식**으로 부름 — 축이 다름. ⚠ 이동식 목록에 3.5㎥/min 이 있으면 **규격으로 바로 걸림**(별칭 불필요) — 그것부터 볼 것 | + +⇒ **별칭 1 · 표 읽기 1 · 규격 고르기 2.** +⚠ 「이름이 안 맞는다」를 전부 별칭으로 풀려 하면 **근거 없이 단가가 붙음.** +먼저 **표를 잘못 읽은 것인지**, 다음 **규격이 안 정해진 것인지**, 마지막이 별칭임. + 흩어진 세 벌(`Handoff_Mapping` 의 파쇄암·암절취 · B09 의 파쇄암만 · B08 인계본 `ground_class_aliases` — **B09 가 안 읽음**)을 한 벌로 모으되 **범위를 붙여 옮길 것.** 범위 없이 합치면 발파암이 리핑암으로 조용히 섞임. @@ -521,6 +536,107 @@ IF 36(비교식 11) · VLOOKUP 13(**전부 근사**) · SUM 47. --- +## 16. ⭐ 일위대가 레시피 사전 350개 — 확보 (2026-09-13) + +표준일위대가 배포본은 암호화라 못 읽지만 **실무에서 실제 쓴 조합은 출력 엑셀에 평문**으로 남음. + +``` +resources/knowledge/original/경쟁사 프로그램/STmate 분석/30_원자료/일위대가_레시피.json +350개 = 일위대가 132 · 단가산출 136 · 중기 82 · 구성행 1,729 (조합당 평균 4.9) +한 항목 = { 종류 · 명칭 · 규격 · 단위 · Q식 · 품셈근거 · 구성[{명칭·규격·단위·수량}] } +누락 감사 — 호표 526개 전수, **설명되지 않는 누락 0건** +``` + +### 우리 설계에 바로 걸리는 것 셋 + +1. **150/350 이 다른 호표를 참조**(2단 이상) — 명세 4장 「하위 일위대가 재귀」가 **실데이터로 확인됨**. + 예) `기슭막이 H=2.0m` → `깬잡석찰쌓기` → `석공 0.08인 + 보통인부 0.04인 + 굴삭기 0.3시간`. + ⇒ **위상순서 계산이 반드시 필요함.** 취향이 아니라 자료가 그럼 +2. ⭐ **규격이 바뀌면 구성 목록은 같고 수량만 비례함** + (기슭막이 H=2.0 ↔ 2.5 → 2.09/2.61 · 0.31/0.39). + ⇒ **「한 조합 + 규격별 수량표」로 접힘.** 4장 라이브러리 양식형 자료구조가 이 모양이어야 함 — + 규격마다 항목을 새로 만들면 350개가 수천 개로 불어남 +3. **품셈 근거문구를 가진 것은 82개뿐**(브레인 실측 — 그중 「건설표준품셈」을 대는 것 69). + ⇒ **나머지 268개는 근거가 없음.** 현행값으로 **임의 확정 금지**(지침 「미결 임의 확정 금지」). + 그 268개가 곧 **수동 확인 대기 목록**임 + +### ⚠⚠ 읽을 때 함정 둘 — 브레인 실측, 원문 문서에 없음 + +**① `종류`에 따라 `구성.수량`의 뜻이 다름** + +``` +일위대가 · 중기 수량 = 진짜 수량 (0.4 · 9.95 · 0.2085 · 5.0) +단가산출 수량 = ⚠ 금액 ("274,978" = 형틀목공 노임) +``` + +구성행 1,729 중 **511(29%)이 1,000 을 넘음** — 대부분 단가산출 줄임. +⛔ **일률적으로 수량으로 읽으면 29% 가 금액인 채 들어감.** `종류`로 먼저 가를 것. + +**② 중기 손료 줄은 단위가 「천원」인데 값은 율임** + +``` +{ "명칭": "굴삭기(0.2m3)", "규격": "무한궤도", "단위": "천원", "수량": 0.2085 } + ↑ 취득가가 아니라 시간당 손료율 +``` + +⇒ **손료 = 취득가(천원) × 0.2085** 임(7장 중기 조립과 같은 자리). +단위 칸만 보고 금액으로 읽으면 **취득가 자리에 율이 들어감.** + +### ⚠ 조합은 가져오되 값은 가져오지 말 것 + +**수량은 그 시점 품셈값임.** 「**조합 = STmate 에서, 값 = 현행 표준품셈에서**」 (사용자 확정 방향). +레시피는 **뼈대를 베끼는 자료**이지 값을 베끼는 자료가 아님. + +### 세 자료가 한 벌임 + +| 자료 | 무엇 | 명세 | +| --- | --- | --- | +| `stmate_code_name_list.csv` | 자원 **코드·명칭·규격** 894개 | 11장 | +| `일위대가_레시피.json` | **조합** 350개 | 16장 | +| `조달청_공사원가호환규정.xsd` | **납품 규격** | 12장 | + +--- + +## 17. ⚠⚠ 공종 코드는 **품셈 판에 묶임** — 2026-09-13 판정 + +**축 C 의 뿌리에 걸리는 것이라 여기 박음.** + +`FP-*` 는 품셈 **절 번호**를 그대로 싣는 코드임. 그런데 **절 번호는 판이 바뀌면 바뀜** — +과거 임도품셈의 절 번호가 현행 **산림사업 표준품셈**(산림청고시 2025-82호, 2026-01-01 시행)에서 +크게 달라졌음이 확인됐음(코덱스 32번). + +지금 마스터는 `effective_date = 2026-01-01` · `dataset = pum_forest` 한 판임. + +### 규칙 넷 + +1. **`FP-*` 는 그 판 안에서만 유일함.** 판을 넘어 같은 코드가 같은 공종이라고 **보장되지 않음** +2. ⛔ **번호만 보고 판을 잇지 말 것.** 판이 바뀌면 **절 대응표**(과거판 ↔ 현행판)로 이어야 함. + 대응표를 만드는 것이 **새 일감**임 +3. **라이브러리 항목은 자기가 본 판을 적을 것** — `AX-ST-*` 는 난수라 판에 안 묶이지만 + **그 안의 공종 참조(`FP-*`)는 판에 묶임**. 항목마다 `pum_edition` 칸을 둘 것. + 안 적으면 품셈이 갱신되는 날 **어느 항목이 흔들리는지 모름** +4. 판이 바뀐 뒤 **대응이 안 잡힌 참조는 「확인 대기」로 세우고 값을 쓰지 말 것.** + 조용히 이웃 절에 붙으면 품이 통째로 달라짐 + +### ⚠ 「숫자가 다르다」 = 「품이 바뀌었다」가 아님 + +코덱스가 레시피 350개를 현행 품셈과 전수 대조했는데 **확정은 2개뿐**임 +(`단끊기(절취없음)` ↔ 5-16-1 · `제근(밀림)` ↔ 9-21). +나머지를 **「변경」으로 찍지 않은 판정이 옳음** — 같은 숫자가 없다는 것만으로는 +**규격·토질·장비·일작업량 조건이 달라진 것인지 품이 개정된 것인지 못 가름.** + +``` +현행 원문까지 확인 2 +절은 찾음·수동대조 11 ← 손댈 순서는 여기부터 +후보 절만 찾음 161 +근거문구만 있음 69 +근거 미기재 107 +``` + +**우리도 같은 태도로 갈 것** — 대조가 안 닫힌 것은 **값을 바꾸지 말고 「확인 대기」로 세울 것.** + +--- + ## 10. 고칠 때 이 문서는 **브레인이 관리함.** 코드 창이 계약을 바꿔야 하면 **고치지 말고 브레인에게 알릴 것** — diff --git a/docs/raw/verification/2026-09-13_축C_자재0과_못맞춘줄_진단.md b/docs/raw/verification/2026-09-13_축C_자재0과_못맞춘줄_진단.md deleted file mode 100644 index 9ed418e8..00000000 --- a/docs/raw/verification/2026-09-13_축C_자재0과_못맞춘줄_진단.md +++ /dev/null @@ -1,121 +0,0 @@ -# 축 C 1장 — 자재 0 과 못 맞춘 줄 진단 - -작성 2026-09-13 · **랩탑 메인** · 읽기 전용 진단(코드 무변경) · 앞 조사 `2026-09-13_축C_공종이름잇기_전수조사.md` 의 이어짐 - -> **방법** — 지금 코드·지금 마스터로 `build_resource_axis` 를 메모리에서 돌림(쓰기 없음). -> 진단 스크립트는 세션 임시 폴더에만 두었음 — 같은 수치를 다시 내려면 이 문서의 기준을 따르면 됨. -> **기준** — 공종 마스터 477공종·456표 · 카탈로그 = 노임 132 + 기계 613 + 관급 자재 6,999 · -> STmate 목록 `…/STmate 분석/30_원자료/stmate_code_name_list.csv`(M 228 · X 96 · L 37). - ---- - -## 0. 한눈에 - -| 물음 | 답 | -| --- | --- | -| 자재가 왜 0 인가 | **사급 자재 카탈로그가 아예 없음.** 합친 카탈로그의 자재는 **관급(나라장터) 6,999건뿐**이고 품셈 자재(종자·비료·결속선·못·폭약)는 사급이라 이름부터 없음 | -| 못 맞춘 508 중 임도가 쓰는 공종 몫 | **138줄 · 42공종** (임도가 쓰는 코드 60개 기준). 나머지 370줄은 조림·방제·벌채 장 | -| 138 중 진짜 자원 이름 | **약 40종** — 나머지는 표의 갈래 딱지(보통암·깨기·치즐소모량·토질 이름)를 이름으로 읽은 것 = **표 읽기 문제** | -| STmate 목록이 풀어 주는 몫 | 40종 중 **이름이 겹치는 것 13종**, 그중 품셈 칸 규격만으로 1건이 정해지는 것 **거의 없음** — 규격은 **설계가 골라야 함** | - -**⇒ 명세 1장 「카탈로그에 없는 이름 271 = STmate 로 풀릴 후보」는 너무 넓음.** -271 대부분(체인오일·예취기·농약·벌채산물)은 **임도 밖 공종**이고, 임도 안 몫도 절반은 표 읽기 문제임. - ---- - -## 1. 자재 0 — 뿌리 넷 - -| # | 뿌리 | 실측 | 풀 길 | -| --- | --- | --- | --- | -| 1 | **사급 자재 원천 없음** | `load_combined_catalog()` = 노임+기계+관급. `B09_Estimation_MaterialCatalog.py` 머리말 「사급 = 없다(유료 물가지 미결 No.18)」 · 관급 파일도 철근·레미콘·아스콘 **빠짐** | 사급 자재 **이름·규격·단위 목록**(`AR-M`) — 단가는 보류(명세 §2③) | -| 2 | **품셈 칸에 규격이 없음** | 관급에 이름이 있어도(각재 8 · 철선 13 · 박리제 4 · 아스팔트 6) 품셈 칸은 「각재」 뿐 → `ResourceCatalog.resolve` 가 None | 규격은 **설계·라이브러리가 고름**. 매칭은 「규격 미정 — 후보 N」으로 드러냄(성공 아님) | -| 3 | **자재 칸에 자재 아닌 것이 섞임** | 공구손료(버켓손료·와이어손료) · 운반비 · 연료비 · 작업 단계(단끊기·골파기·씨덮기·새채집·모래부설·유공관설치·철근가공조립) | 자원 종류 가름(경비·하위 공종) — **이름 목록으로는 안 풀림** | -| 4 | **구조물 표는 값 없이 이름만** | 12장 측구·집수정·맨홀·날개벽 표 — 「콘크리트 \| 펌프차타설 \| ㎥ \| (빈칸)」. 숫자가 없어 머리 줄로 걸러짐(자원 0줄) | 수량은 **B08 구조물도 원단위**에서 옴 — 3장 구조물도가 이 자리를 채움 | - -**품셈 전체의 자재 후보 줄**(분류 딱지 「자재·재료·잡재료」 또는 자재 단위 + 숫자) — 약 90줄, 그중 값이 있고 -공종 형태가 쓸 수 있는 줄 **71줄(65종) 전부 못 맞춤 목록에 올라 있음**. 조용히 사라진 자재 줄은 없음(값 없는 머리 줄 제외). - ---- - -## 2. 임도 범위로 좁힌 못 맞춘 줄 — 138줄 - -**임도가 쓰는 코드** = 매핑표(`resources/data_work_item_mapping/…`) + B08·B09 소스에 박힌 `FP-` 60개와 그 잎. - -| 사유 | 줄 | -| --- | ---: | -| 카탈로그에 없는 이름 | 91 | -| 뭉친 자원 줄의 이름을 못 풂 | 27 | -| 자원은 알아봤으나 값을 못 읽음 | 12 | -| 규격이 없어 같은 이름 여럿 중 못 고름 | 3 | -| 값 묶음·갈래 수 안 맞음 · 장비 규격×갈래 · 작업조 표 | 5 | - -**맞춘 줄(임도 범위)** 244 = 노임 218 · 기계 26 · **자재 0**. - -### 2-1. 「카탈로그에 없는 이름」 91 의 속 — 둘로 갈림 - -| 갈래 | 예 | 공종 | 어느 일감 | -| --- | --- | --- | --- | -| **진짜 자원** | 종자·비료·피복제·침식안정제·색소 | FP-05-24-01/02 | **이름·규격 목록** | -| | 폭약·뇌관·비트·착암기·화약공 | FP-09-05-01 | 〃 | -| | 콘크리트커트·브레이드·잡자재 | FP-09-11-01 | 〃 | -| | 공기압축기(3.5㎥/min)·소형브레이커·어어호스(3/4인치) | FP-09-19-03 | 〃 | -| | VR관·고무링·지수활제·기초콘크리트·거푸집 · 흄관·접합몰탈·크레인 · 파형강관·커플링밴드 | FP-12-11-01/02/03 | 〃 | -| | 유공관설치·소운반인부 · 봉상후렉시블 다짐기·설치비 | FP-12-10 · FP-12-15 | 〃 (설치비는 경비) | -| **표 딱지를 이름으로 읽음** | 보통암·경암·연암·풍화암 | FP-09-04-01 · 09-05-02 · 09-19-01 | **표 읽기** | -| | 깨기 · 치즐소모량(본/hr) | FP-09-13-07~18 (12공종) | 〃 | -| | 모래ㆍ사질토ㆍ점토… (토질 갈래) | FP-09-19-01 | 〃 | -| | 단목·전간목·전목 | FP-04-01-01 | 〃 | -| | 대형브레이커+유압식백호우(무한…) (조합 딱지) | FP-09-04-01 | 〃 | - -### 2-2. 「뭉친 줄」 27 · 「값 못 읽음」 12 — 전부 표 읽기 - -- FP-04-02-01 100본당(흉고 구간 13줄) · FP-12-04 합판거푸집(합판·각재·철선·못·박리제) · FP-12-09-02/03 측구 · FP-13-04-04 찰쌓기 -- FP-09-13-02~18 「장비(90%) \| 유압식백호우…」 · 「들어내기 \| 유압식백호우…」 — **배분율·단계 딱지 줄의 값**을 못 읽음 - -⚠ **FP-12-04 합판거푸집은 두 일감에 걸림** — 뭉친 줄을 풀어도(표 읽기) 합판·각재·철선·못·박리제가 -사급이라 목록이 있어야 섬(자재 0 뿌리 1·2). - ---- - -## 3. 진짜 자원 약 40종 — 어디서 코드를 받을 수 있나 - -| 이름(품셈) | 우리 카탈로그 | STmate 목록 (`name 〔size〕`) | 판단 | -| --- | --- | --- | --- | -| 대형브레이커 | 기계 정확 6규격 | 대형브레이커 〔0.7㎥〕 | 규격을 **옆 칸·조합에서** 받으면 섬 | -| 소형브레이커 | 기계 「소형브레이커(공압식)/(전기식)」 | 없음 | **범위 별칭**(형식 고르기) | -| 공기압축기(3.5㎥/min) | 기계 「공기압축기(이동식)」 | 없음 | **범위 별칭** + 규격 | -| 크레인 | 기계 크레인(무한궤도/타이어) 45 | 크레인(타이어) 〔10톤〕 · 트럭탑재형 크레인 〔5톤·10톤〕 | 설계 고르기 | -| 화약공 | 없음 | L 목록에 **화약취급공** | **범위 별칭** — 근거 확인 필요 | -| 소운반인부 | 없음 | 없음 | 보통인부로 볼지 **답 필요** | -| 종자 | 없음 | 종자 〔생태복원형,초본류 / 목본류〕 6 | `AR-M` + **규격 설계 고르기** | -| 비료 | 없음 | 복합비료 〔21-17-17〕 · 인산질비료 | `AR-M` + 규격 | -| 폭약 · 뇌관 | 없음 | 폭약 〔28mm(메가마이트Ⅰ)〕 · 전기뇌관 〔3.5m〕 | `AR-M` | -| 합판 · 각재 · 철선 · 못 · 박리제 | 관급에 이름 있음(규격 여럿) | 합판(내수) 〔12×1220×2440〕 · 각재 〔외송〕 · 결속선(철선) 〔#20, 0.9mm〕 · 철못 〔N 50〕 | 관급 코드 또는 `AR-M` — **규격 고르기** | -| 파형강관 | 없음 | 파형강관 〔Φ800·Φ1000, 2.7t〕 7 | `AR-M` + 관경은 **B08 관 정본**에서 | -| 모래 | 없음 | 모래 〔지역별 상차가 6〕 | `AR-M` — 규격이 **지역**임 | -| 이형철근 | 없음(관급에서 빠짐) | 이형철근 D13 · SD400 15 | `AR-M` + 규격 | -| 치즐 | 없음 | 치즐 〔0.7m3〕 3 | `AR-M` | -| 피복제·침식안정제·색소·착암기·콘크리트커트·브레이드·잡자재·에어호스·VR관·고무링·지수활제·흄관·접합몰탈·커플링밴드·다짐기·유공관 | 없음 | **없음** | `AR-M/X` 새로 — 이름·단위는 **품셈 원문**에서 | - -⇒ **STmate 가 이름·규격을 대 주는 것 13종**, 나머지 약 27종은 **품셈 원문 이름으로 `AR-` 를 새로 냄**. -**규격은 대부분 한 벌로 안 정해짐** — 명세 §11 「(이름 + 규격) 한 쌍이 키」에 따라 품셈 칸만으로는 성공 아님. - ---- - -## 4. 곁 발견 - -- **기계 카탈로그 이름 5건에 표 머리글이 붙어 있음** — `5220-0015 소형브레이커(전기식)시 간 당(10-7)분류번호…` · - `6532-0220` · `7101-0450` · `7120-0746` · `7995-0050`. 원천 `mach_base_2026.json` 파싱 흔적. 이름으로 찾으면 안 걸림 -- **품셈 원문 오기가 이름으로 들어옴** — 「어어호스」(에어호스) · 「뿜어뿥이기」(FP-05-24-01) -- **요소·인산의 「46%·20%」** (FP-05-10 F0115) — 소요량이 아니라 **성분비**. 값으로 읽으면 틀림 - ---- - -## 5. 판정·답이 필요한 것 - -| # | 물음 | 누구 | -| --- | --- | --- | -| 1 | 못 맞춘 줄 일감의 **범위를 임도 60코드로 좁혀도 되나** (370줄은 뒤로) | 브레인 | -| 2 | 품셈 칸에 규격이 없는 자원 — **「규격 미정 · 후보 N」으로 드러내고 설계·라이브러리가 고르게** 두는가 | 브레인 | -| 3 | 범위 별칭 후보 — 화약공→화약취급공 · 소형브레이커→(공압식) · 공기압축기→(이동식) · 소운반인부→보통인부 | **사용자 확인** (도메인 판단) | -| 4 | 사급 자재 `AR-M` 목록의 자리 — 새 폴더 한 벌(이름·규격·단위·출처·STmate 코드) | 브레인 |