diff --git a/resources/data_work_item_master/_manifest.json b/resources/data_work_item_master/_manifest.json index 30ff4900..1b5ad8bb 100644 --- a/resources/data_work_item_master/_manifest.json +++ b/resources/data_work_item_master/_manifest.json @@ -1,7 +1,7 @@ { "schema_version": "1.0", "dataset_id": "data_work_item_master_manifest", - "generated_at": "2026-09-18T14:37:31+09:00", + "generated_at": "2026-09-18T16:52:57+09:00", "built_by": "B08_Quantity/B08_Quantity_Build_WorkItemMaster.py", "source": { "dataset_id": "pum_forest", @@ -12,7 +12,7 @@ "files": [ { "file": "work_item_master_2026-01-01.json", - "sha256": "eba4d71093f730296ff74de519949e8bfb573fea129b45b9be31b763db20307a", + "sha256": "bc1e5b301f79247bf44bb3dfa51e409a22e059771eba53670a599753a235e1b4", "size_bytes": 1095122 }, { diff --git a/resources/data_work_item_master/_manifest_const.json b/resources/data_work_item_master/_manifest_const.json index cde09ad8..6ec7fe0e 100644 --- a/resources/data_work_item_master/_manifest_const.json +++ b/resources/data_work_item_master/_manifest_const.json @@ -1,7 +1,7 @@ { "schema_version": "1.0", "dataset_id": "data_work_item_master_manifest", - "generated_at": "2026-09-18T14:38:23+09:00", + "generated_at": "2026-09-18T16:54:24+09:00", "built_by": "B08_Quantity/B08_Quantity_Build_WorkItemMaster.py", "source": { "dataset_id": "pum_const", @@ -12,7 +12,7 @@ "files": [ { "file": "const_work_item_master_2026-01-01.json", - "sha256": "717ed8edf3aa8f0ecf38634f28ae0ed8c7f47bffbe3a4ede8af6a279396d9933", + "sha256": "7117fdb70e26e65671002dad427f155ba0782e02ad10ba9c2f4729d5c22f9c4e", "size_bytes": 4730739 }, { diff --git a/resources/data_work_item_master/const_work_item_master_2026-01-01.json b/resources/data_work_item_master/const_work_item_master_2026-01-01.json index bbfb254b..c88a252a 100644 --- a/resources/data_work_item_master/const_work_item_master_2026-01-01.json +++ b/resources/data_work_item_master/const_work_item_master_2026-01-01.json @@ -4,7 +4,7 @@ "effective_date": "2026-01-01", "pum_edition": "2026-01-01", "toc_edition": "2026-01-01", - "generated_at": "2026-09-18T14:38:23+09:00", + "generated_at": "2026-09-18T16:54:24+09:00", "dataset_version": { "dataset_id": "pum_const", "effective_date": "2026-01-01", diff --git a/resources/data_work_item_master/work_item_master_2026-01-01.json b/resources/data_work_item_master/work_item_master_2026-01-01.json index 3ab2d533..74adb542 100644 --- a/resources/data_work_item_master/work_item_master_2026-01-01.json +++ b/resources/data_work_item_master/work_item_master_2026-01-01.json @@ -4,7 +4,7 @@ "effective_date": "2026-01-01", "pum_edition": "2026-01-01", "toc_edition": "산림청고시제2025-82호", - "generated_at": "2026-09-18T14:37:31+09:00", + "generated_at": "2026-09-18T16:52:57+09:00", "dataset_version": { "dataset_id": "pum_forest", "effective_date": "2026-01-01", diff --git a/resources/tester/fixtures/base_prices_source_known.json b/resources/tester/fixtures/base_prices_source_known.json index e04c0061..145d5bd3 100644 --- a/resources/tester/fixtures/base_prices_source_known.json +++ b/resources/tester/fixtures/base_prices_source_known.json @@ -55,19 +55,31 @@ "source": "불도저(19톤이상제외)", "data": "2510", "why": "원문 8-1-7 가산비율 표가 글로 뭉개져 이름 칸에 수(`2510`)가 들어앉음 — 25·10 인지 2·510 인지 못 가름(같은 자리를 「손료보정 수 자리 가름」으로 이미 적어 둠). md 가 풀리면 저절로 맞음", - "class": "㉯ 남이 고쳐야 풀림" + "class": "㉯ 남이 고쳐야 풀림", + "갈래": "잣대 못 알아봄", + "class_why": "원문 8-1-7 가산비율 표가 **글로 뭉개져** 기종 이름 칸에 수(`2510`)가 들어앉음 — 25·10 인지 2·510 인지 가를 수 없음. 값은 원문에 있으나 꼴이 뭉개져 못 읽는 자리(같은 뿌리를 「손료보정 수 자리 가름」 으로도 셈).", + "owner": "랩탑 메인", + "owner_ask": "8-1-7 가산비율 표가 글로 뭉개진 자리 — 기종 이름과 두 수(암석작업·전석섞인토사)를 갈라 줄 것. `손료보정 수 자리 가름` 과 한 자리라 함께 풀림." }, "손료보정 crawler_excavator_or_loader": { "source": "굴착기(무한궤도)및로더(무한궤도)", "data": "2010", "why": "원문 8-1-7 가산비율 표가 글로 뭉개져 이름 칸에 수(`2510`)가 들어앉음 — 25·10 인지 2·510 인지 못 가름(같은 자리를 「손료보정 수 자리 가름」으로 이미 적어 둠). md 가 풀리면 저절로 맞음", - "class": "㉯ 남이 고쳐야 풀림" + "class": "㉯ 남이 고쳐야 풀림", + "갈래": "잣대 못 알아봄", + "class_why": "원문 8-1-7 가산비율 표가 **글로 뭉개져** 기종 이름 칸에 수(`2510`)가 들어앉음 — 25·10 인지 2·510 인지 가를 수 없음. 값은 원문에 있으나 꼴이 뭉개져 못 읽는 자리(같은 뿌리를 「손료보정 수 자리 가름」 으로도 셈).", + "owner": "랩탑 메인", + "owner_ask": "8-1-7 가산비율 표가 글로 뭉개진 자리 — 기종 이름과 두 수(암석작업·전석섞인토사)를 갈라 줄 것. `손료보정 수 자리 가름` 과 한 자리라 함께 풀림." }, "손료보정 dump_truck": { "source": "덤프트럭", "data": "2510", "why": "원문 8-1-7 가산비율 표가 글로 뭉개져 이름 칸에 수(`2510`)가 들어앉음 — 25·10 인지 2·510 인지 못 가름(같은 자리를 「손료보정 수 자리 가름」으로 이미 적어 둠). md 가 풀리면 저절로 맞음", - "class": "㉯ 남이 고쳐야 풀림" + "class": "㉯ 남이 고쳐야 풀림", + "갈래": "잣대 못 알아봄", + "class_why": "원문 8-1-7 가산비율 표가 **글로 뭉개져** 기종 이름 칸에 수(`2510`)가 들어앉음 — 25·10 인지 2·510 인지 가를 수 없음. 값은 원문에 있으나 꼴이 뭉개져 못 읽는 자리(같은 뿌리를 「손료보정 수 자리 가름」 으로도 셈).", + "owner": "랩탑 메인", + "owner_ask": "8-1-7 가산비율 표가 글로 뭉개진 자리 — 기종 이름과 두 수(암석작업·전석섞인토사)를 갈라 줄 것. `손료보정 수 자리 가름` 과 한 자리라 함께 풀림." }, "연료 7993-0020": { "source": null, @@ -167,31 +179,25 @@ "운전사 기종별 판단": { "what": 121, "why": "기종→운전사 구분(explicit_mappings)은 사람 판단 — 원문 8-1-3 5호는 기종 이름 글만 있음", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "원문 8-1-3 5호는 기종 이름 글만 두고 운전사 구분을 안 적음 — 기종→운전사 짝(`explicit_mappings`)은 사람이 정한 것. 원문에 견줄 것이 없음.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "원문 8-1-3 5호는 기종 이름 글만 두고 운전사 구분을 안 적음 — 기종→운전사 짝(`explicit_mappings`)은 사람이 정한 것. 원문에 견줄 것이 없음." } }, "material_blind": { "같은 때 공시 20696249": { "what": 2, "why": "같은 공시 일시에 값 실린 공시가 둘 — 원천이 어느 것이 정본인지 안 알려 줌 · 자료는 그중 하나와 같음", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "같은 공시 일시에 값 실린 공시가 둘인데 **원천이 어느 것을 정본으로 보는지 안 알려 줌** — 자료는 그중 하나와 같음. 어느 것을 취할지 정해야 닫힘.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "같은 공시 일시에 값 실린 공시가 둘인데 **원천이 어느 것을 정본으로 보는지 안 알려 줌** — 자료는 그중 하나와 같음. 어느 것을 취할지 정해야 닫힘." }, "같은 때 공시 20696250": { "what": 2, "why": "같은 공시 일시에 값 실린 공시가 둘 — 원천이 어느 것이 정본인지 안 알려 줌 · 자료는 그중 하나와 같음", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "위와 한 자리.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "위와 한 자리." }, "원천 없는 묶음": { "what": [ @@ -200,11 +206,9 @@ "asphalt_concrete" ], "why": "철근·레미콘·아스콘은 종합쇼핑몰 원천이 저장소에 없음 — 값 못 봄", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "철근·레미콘·아스콘은 종합쇼핑몰 원천이 저장소에 없어 값을 볼 수 없음 — 원천을 들여올지 정해야 닫힘.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "철근·레미콘·아스콘은 종합쇼핑몰 원천이 저장소에 없어 값을 볼 수 없음 — 원천을 들여올지 정해야 닫힘." } }, "oil_blind": {}, @@ -212,29 +216,23 @@ "안 잰 칸 rate_environment.forest_road_selection_status": { "what": "pending", "why": "임도 공종 선택 미결 표시 — 사용자 협의 몫", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "임도 공종 선택 미결 표시 — 사용자 협의로 닫을 자리.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "임도 공종 선택 미결 표시 — 사용자 협의로 닫을 자리." }, "안 잰 칸 rate_environment.minimum_estimated_amount_krw": { "what": 100000000, "why": "xlsx 환경보전비 칸에 1억 기준이 없음(1억은 퇴직공제부금 칸) — 근거 원문이 sources 에 없어 못 봄", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "xlsx 환경보전비 칸에 1억 기준이 없음(1억은 퇴직공제부금 칸) — 근거 원문이 `sources` 에 없어 볼 수 없음. 근거를 들여올지 정해야 닫힘.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "xlsx 환경보전비 칸에 1억 기준이 없음(1억은 퇴직공제부금 칸) — 근거 원문이 `sources` 에 없어 볼 수 없음. 근거를 들여올지 정해야 닫힘." }, "안 잰 칸 rate_performance_guarantee_fee.typical_forest_road_applicability": { "what": "not_applicable", "why": "임도 적용 판단 — 원문 칸 아님", - "class": "㉯ 남이 고쳐야 풀림", + "class": "㉰ 사용자·브레인 판단", "갈래": "원문 부재", - "class_why": "임도에 적용되는지 판단 — 원문 칸이 아님.", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림" + "class_why": "임도에 적용되는지 판단 — 원문 칸이 아님." } }, "_할일_아님": { @@ -556,7 +554,7 @@ "센 날": "2026-09-18", "셈": { "원문 부재 / ㉰": 7, - "잣대 못 알아봄 / ㉯": 17 + "잣대 못 알아봄 / ㉯": 16 }, "잣대": "두 갈래로 가름 — **원문 부재**: 값이 원문·원천에 없거나 원문 밖 말이라 채울 것이 없음 · **잣대 못 알아봄**: 값은 원문에 있는데 전사·읽기가 못 가름 ⇒ 고치면 풀림. ㉮ 영영 할 일 아님 · ㉯ 남이 고쳐야 풀림 · ㉰ 사용자·브레인 판단.", "할 일 아님으로 뺀 줄": 34