{ "schema_version": "1.0", "dataset_id": "work_item_axis_policy", "effective_date": "2026-01-01", "note": "공종 축의 줄 구실(axis_role) 잣대. 코드에 박지 않고 여기 둔다 — 기관이 정하는 범위라 시스템관리자가 고칠 값이다.", "policy": { "never_delete": true, "why": "표 없는 마디 가운데 상당수가 `parent_mode`(계산 규칙)를 지니고, 총칙 장에는 원가가 실제로 읽는 값표가 붙어 있다. 지우면 계산 규칙과 값이 함께 사라진다(2026-09-17 산림에서 확인 · 브레인 승인).", "flat_list_filter": "pum_tables > 0", "flat_list_why": "「잎」으로 거르면 부모 마디에 붙은 표가 통째로 안 뜬다(산림 5건)." }, "roles": { "work_item": { "name_ko": "공종", "rule": "품셈 표가 붙은 줄", "keep": true, "list_label": "공종", "hidden_by_default": false }, "group": { "name_ko": "묶는 마디", "rule": "표는 없고 아래를 묶는 줄", "keep": true, "why": "`parent_mode`(choose_one·sum_steps)가 여기 붙는다 — 계산 규칙을 지닌 줄이다.", "list_label": "묶는 마디", "hidden_by_default": true }, "general_provision": { "name_ko": "총칙", "rule": "`general_provision` 뿌리 아래의 줄", "keep": true, "why": "문서 구역이나 값표가 붙어 원가가 읽는다.", "list_label": "공종 아님 · 규정·기준", "hidden_by_default": true }, "empty": { "name_ko": "빈 잎", "rule": "표도 아래도 없는 잎", "keep": true, "why": "원문에 표가 안 붙은 자리. 지우면 「있었는지 없었는지」가 안 남는다.", "list_label": "빈 잎", "hidden_by_default": true } }, "decision_order": [ "general_provision", "work_item", "group", "empty" ], "axes": { "forest": { "name_ko": "산림 공종", "settled": true, "source": "resources/data_cost_input_value/pum_forest_2026.json", "toc_source": "목차표 F0001 — 원문이 목차를 표로 싣는다", "code_prefix": "FP", "key_prefix": "FW", "general_provision_roots": [ "FP-01", "FP-02" ], "general_provision_basis": "FP-01 적용기준 51줄 · FP-02 소요재료 및 기계손료 27줄. ⚠ 지우면 안 됨 — `B09_Estimation_Consumables.py` 가 FP-02-01-01·FP-02-01-08(연료 F0042·F0043·F0058)과 FP-02-02-01/02/04/05/06(손료계수 F0064~F0069)을 읽는다.", "counts": { "rows": 477, "work_item": 304, "group": 82, "general_provision": 78, "empty": 13 }, "known_defects": [ "갈래 문자열이 그대로 줄 열쇠가 됨(`@id` = `FW-00105#1.1∼1.5`) — 품셈 원문이 물결표를 두 가지로 쓰고(∼ U+223C · ~ U+FF5E) 자간 공백만 다른 짝도 있어, 문자열이 손질되면 열쇠가 갈린다. ⬜ 갈래도 장부에 올릴지 판정 대기(2026-09-17 데스크탑 서브)." ] }, "const": { "name_ko": "건설 공종", "settled": true, "source": "resources/data_cost_input_value/pum_const_2026.json", "toc_source": "합본 원문 머리 「목 차」 글줄 — 목차표가 없어 랩탑 메인이 글에서 읽음(부문 5 · 장 45 · 1,367줄)", "code_prefix": "CP", "key_prefix": "CW", "code_shape": "CP-<부문2>-<장2>-<절…>", "code_shape_why": "⚠ **부문마다 장 번호가 1부터 다시 시작한다** — 공통 1장은 적용기준, 토목 1장은 도로포장공사다. 부문 자리가 없으면 부문이 다른 공종끼리 덮는다(산림에서 목차 번호 겹침 둘이 실제로 덮고 있었다).", "general_provision_roots": [ "01_공통부문/제1장_적용기준.md", "01_공통부문/제8장_건설기계.md" ], "general_provision_basis": "공통부문 제1장 적용기준(`CP-01-01`) 줄 37 · 표 46 — 산림 FP-01 과 짝. 공통부문 제8장 건설기계(`CP-01-08`) 줄 75 · 표 351 — 산림 FP-02(소요재료 및 기계손료)와 짝. 시공능력·손료 파라미터라 값을 정하는 자리다(C0426·C0427 은 이미 기초데이터로 꺼냈다). 2026-09-17 안티그래비티 조사 · 브레인 확정.", "general_provision_pending": [], "known_defects": [ "형태 미판정 881 / 2,192 — B09 표 읽기가 산림 표로만 검증됨", "밑수 미확보 447 — 곱하면 안 되는 줄이라 받는 쪽이 가려야 함", "갈래 키 비어 있음 — 랩탑 메인이 뒤로 미룸" ], "roots_are": "**장 파일 이름**(「01_공통부문/제1장_적용기준.md」). 뽑는 코드가 목차 코드(`CP-01-01`)로 바꿔 준다 — 관리자가 부문 번호를 셀 필요가 없다.", "counts": { "rows": 1367, "work_item": 997, "group": 270, "general_provision": 0, "empty": 100, "note": "총칙 표시 전 셈(랩탑 메인 첫 산출). 뿌리를 붙이면 `general_provision` 으로 옮겨 간다 — 줄이 줄지는 않는다." }, "settled_note": "유지관리부문 제1장 「공 통」(`CP-05-01`) 표 40 은 **공종**으로 둔다 — 총칙이 아니다(2026-09-17 안티그래비티 조사 · 브레인 확정)." } }, "list_default": { "filter": "axis_role", "value": "work_item", "why": "목록 기본은 **공종만**(산림 306 · 건설 983). 총칙 줄은 표가 붙어 있어 목록에 섞여 뜨는데, 공종이 아니라 규정·기준이다. 상자를 따로 만들지 않고 **기본 감춤 + 고르면 보임**으로 간다 (2026-09-17 브레인). ⚠ 지운 것이 아니라 감춘 것이다." } }