diff --git a/resources/data_cost_input_value/mach_base_2026.json b/resources/data_cost_input_value/mach_base_2026.json index f219ed1c..b7c12eac 100644 --- a/resources/data_cost_input_value/mach_base_2026.json +++ b/resources/data_cost_input_value/mach_base_2026.json @@ -15234,14 +15234,6 @@ "misc_material_percent_of_fuel": 2, "specification": "0.3㎥" }, - { - "machine_code": "7993-0020", - "machine_name": "양수기", - "fuel_type": "gasoline", - "fuel_rate_l_per_hour": 1.3, - "parse_method": "verified_source_row_alignment", - "specification": "1.49㎾" - }, { "machine_code": "7994-0050", "machine_name": "POWER TLOWEL", diff --git a/resources/tester/fixtures/base_prices_source_known.json b/resources/tester/fixtures/base_prices_source_known.json index 792897b1..be2c8d16 100644 --- a/resources/tester/fixtures/base_prices_source_known.json +++ b/resources/tester/fixtures/base_prices_source_known.json @@ -10,45 +10,7 @@ "why: 사람이 적은 까닭 — 시험은 맞대기에서 뺌." ], "labor": {}, - "machine": { - "셈 연료 원문에 없는 자료 줄": { - "source": 0, - "data": 1, - "why": "⭐ **원문 쪽은 닫힘** — 랩탑 서브가 PDF 를 보고(cae43718) 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고, md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`). ⇒ **원문에 기름 값(리터)이 없음.**\n남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고, 그것은 원문에 없는 값을 **옛 벌에서 이어받은 것**(`_build_mach.py` 의 이어받기 · 다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.\n⭐ **잠정 처리(2026-09-18 브레인 B28) — 남김.** 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** 비울지 사람값 자리로 굳힐지는 **사용자 판단 목록 일곱째**로 올라가 있음 — 회신 오면 확정. ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것.**", - "class": "㉰ 사용자·브레인 판단", - "갈래": "원문 부재", - "class_why": "⭐ **원문 쪽은 닫힘** — 랩탑 서브가 PDF 를 보고(cae43718) 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고, md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`). ⇒ **원문에 기름 값(리터)이 없음.**\n남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고, 그것은 원문에 없는 값을 **옛 벌에서 이어받은 것**(`_build_mach.py` 의 이어받기 · 다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.\n⭐ **잠정 처리(2026-09-18 브레인 B28) — 남김.** 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** 비울지 사람값 자리로 굳힐지는 **사용자 판단 목록 일곱째**로 올라가 있음 — 회신 오면 확정. ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것.**", - "표시": "원문 부재 · 옛 벌 이어받음 · 사람 확인 필요", - "잠정": "남김 — 사용자 판단 목록 일곱째" - }, - "셈 연료 코드 수": { - "source": 275, - "data": 276, - "why": "⭐ **원문 쪽은 닫힘** — 랩탑 서브가 PDF 를 보고(cae43718) 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고, md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`). ⇒ **원문에 기름 값(리터)이 없음.**\n남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고, 그것은 원문에 없는 값을 **옛 벌에서 이어받은 것**(`_build_mach.py` 의 이어받기 · 다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.\n⭐ **잠정 처리(2026-09-18 브레인 B28) — 남김.** 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** 비울지 사람값 자리로 굳힐지는 **사용자 판단 목록 일곱째**로 올라가 있음 — 회신 오면 확정. ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것.**", - "class": "㉰ 사용자·브레인 판단", - "갈래": "원문 부재", - "class_why": "⭐ **원문 쪽은 닫힘** — 랩탑 서브가 PDF 를 보고(cae43718) 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고, md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`). ⇒ **원문에 기름 값(리터)이 없음.**\n남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고, 그것은 원문에 없는 값을 **옛 벌에서 이어받은 것**(`_build_mach.py` 의 이어받기 · 다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.\n⭐ **잠정 처리(2026-09-18 브레인 B28) — 남김.** 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** 비울지 사람값 자리로 굳힐지는 **사용자 판단 목록 일곱째**로 올라가 있음 — 회신 오면 확정. ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것.**", - "표시": "원문 부재 · 옛 벌 이어받음 · 사람 확인 필요", - "잠정": "남김 — 사용자 판단 목록 일곱째" - }, - "연료 7993-0020": { - "source": null, - "data": { - "machine_code": "7993-0020", - "machine_name": "양수기", - "fuel_type": "gasoline", - "fuel_rate_l_per_hour": 1.3, - "parse_method": "verified_source_row_alignment", - "specification": "1.49㎾" - }, - "why": "⭐ **원문 쪽은 닫힘** — 랩탑 서브가 PDF 를 보고(cae43718) 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고, md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`). ⇒ **원문에 기름 값(리터)이 없음.**\n남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고, 그것은 원문에 없는 값을 **옛 벌에서 이어받은 것**(`_build_mach.py` 의 이어받기 · 다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.\n⭐ **잠정 처리(2026-09-18 브레인 B28) — 남김.** 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** 비울지 사람값 자리로 굳힐지는 **사용자 판단 목록 일곱째**로 올라가 있음 — 회신 오면 확정. ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것.**", - "class": "㉰ 사용자·브레인 판단", - "갈래": "원문 부재", - "class_why": "⭐ **원문 쪽은 닫힘** — 랩탑 서브가 PDF 를 보고(cae43718) 「원문이 규격·주연료 두 칸에 같은 ㎾ 를 적는 자리」로 판정했고, md 도 그대로임(`| 7993-0020 | 양수기 | 1.49㎾ | 1.49㎾ | - | - |`). ⇒ **원문에 기름 값(리터)이 없음.**\n남은 것은 **자료 쪽** — `mach_fuel_rate` 가 휘발유 1.3ℓ 를 담고 있고, 그것은 원문에 없는 값을 **옛 벌에서 이어받은 것**(`_build_mach.py` 의 이어받기 · 다시 뽑을 때마다 `이어받음 {'fuel': 1}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.\n⭐ **잠정 처리(2026-09-18 브레인 B28) — 남김.** 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라(계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** 비울지 사람값 자리로 굳힐지는 **사용자 판단 목록 일곱째**로 올라가 있음 — 회신 오면 확정. ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것.**", - "표시": "원문 부재 · 옛 벌 이어받음 · 사람 확인 필요", - "잠정": "남김 — 사용자 판단 목록 일곱째" - } - }, + "machine": {}, "material": {}, "oil": {}, "rate": {}, @@ -180,7 +142,6 @@ "갈래별": { "낳은 값": 1, "메모": 1, - "살림살이": 1, "요약 이름": 2, "원문 부재": 25, "자리 표시": 2, @@ -188,7 +149,7 @@ }, "셈": { "labor_blind": 5, - "machine_blind": 9, + "machine_blind": 8, "material_blind": 2, "oil_blind": 7, "rate_blind": 11 @@ -215,15 +176,6 @@ "class_why": "자료가 낳은 값 — 「계」 계수(10-7)를 10,000,000 으로 나눈 것이다. 낳은 밑값인 계수 넷은 이미 줄마다 맞대고 있어 여기서 또 맞대면 같은 것을 두 번 세는 셈이다.", "갈래": "낳은 값" }, - "안 잰 칸 mach_fuel_rate.parse_method": { - "what": "원문과 안 맞댐", - "why": "추출기 살림살이 — 그 줄을 어떻게 읽었나 적어 둔 표시(`verified_source_row_alignment`)다. 원문에 없는 말이다.", - "class": "㉮ 영영 할 일 아님", - "owner": "랩탑 메인", - "owner_ask": "기계 원천 벌(mach_base_2026.json) 재추출 — 그 추출기가 이 저장소에 없어 우리가 못 돌림", - "class_why": "추출기 살림살이 — 그 줄을 어떻게 읽었나 적어 둔 표시(`verified_source_row_alignment`)다. 원문에 없는 말이다.", - "갈래": "살림살이" - }, "안 잰 칸 mach_fuel_rate.source_tables.section": { "what": "원문과 안 맞댐", "why": "표를 가리키는 이름표일 뿐 — 8-4 표의 머리와 줄은 이미 **표째 통째로** 맞대고 있다(`운전경비 원표 N번째`).", @@ -494,10 +446,18 @@ "_갈래": { "센 날": "2026-09-18", "셈": { - "원문 부재 / ㉰": 10, + "원문 부재 / ㉰": 7, "잣대 못 알아봄 / ㉯": 7 }, "잣대": "두 갈래로 가름 — **원문 부재**: 값이 원문·원천에 없거나 원문 밖 말이라 채울 것이 없음 · **잣대 못 알아봄**: 값은 원문에 있는데 전사·읽기가 못 가름 ⇒ 고치면 풀림. ㉮ 영영 할 일 아님 · ㉯ 남이 고쳐야 풀림 · ㉰ 사용자·브레인 판단.", - "할 일 아님으로 뺀 줄": 34 + "할 일 아님으로 뺀 줄": 33, + "닫힌 자리": [ + { + "날": "2026-09-18", + "무엇": "양수기 7993-0020 휘발유 1.3ℓ (어긋남 세 줄)", + "어떻게": "원문 규명으로 닫힘(브레인 B30) — PDF 340쪽 주연료표의 「휘발유1.3」은 **바로 윗줄 7992(모르타르 믹서)** 것이고 양수기 줄은 전력 1.49㎾ 뿐이었음. 옛 추출이 **이웃 줄 값을 물려받은 자리 틀림**. ⇒ 「원문 부재」가 아니라 **이웃 줄 오귀속**이었음.", + "처리": "`mach_base_2026.json` 의 양수기 연료 줄을 지우고 다시 뽑음. 이어받기는 **옛 벌을 보고 되살리므로** 한 번 지워야 영영 안 돌아옴(`이어받음 {'fuel': 1}` → **0**). 7992 쪽 휘발유 1.3 은 이미 갈라 들어가 있음." + } + ] } }