From 8ddfcd6e5754467f5fad5f0d2e73f5f4b3d85712 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 18 Sep 2026 17:08:24 +0900 Subject: [PATCH] =?UTF-8?q?chore(tester):=20=EC=96=91=EC=88=98=EA=B8=B0=20?= =?UTF-8?q?7993-0020=20=E2=80=94=20=E3=80=8C=EB=82=A8=EA=B9=80=E3=80=8D?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9E=A0=EC=A0=95=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=ED=95=98=EA=B3=A0=20=ED=91=9C=EC=8B=9C=EB=A5=BC=20=EB=8B=AE(?= =?UTF-8?q?=EC=A7=80=EC=9A=B0=EC=A7=80=20=EC=95=8A=EC=9D=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 브레인 B28 — 「지우는 것보다 남기는 것이 안전 · 애매하면 남기고 사유」가 이 판의 확정 잣대라 (계수 절단 사고 뒤 세운 것) 휘발유 1.3ℓ 를 **지우지 않고 표시만 단다.** · 세 줄에 `표시`(「원문 부재 · 옛 벌 이어받음 · 사람 확인 필요」)와 `잠정`(「남김 — 사용자 판단 목록 일곱째」)을 붙임 · 비울지 사람값 자리로 굳힐지는 사용자 회신 뒤 확정 · ⚠ 다시 뽑을 때 보고에 뜨는 `이어받음 {'fuel': 1}` 은 **표시가 일이니 끄지 말 것** · 메모 칸(`_MEMO_FIELDS`)에 `표시`·`잠정` 을 더해 맞대기에서 뺌 — 사람이 적은 글이라 어긋남 판정에 안 씀 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF --- .../fixtures/base_prices_source_known.json | 18 ++++++++++++------ .../test_work_item_master_source_match.py | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/resources/tester/fixtures/base_prices_source_known.json b/resources/tester/fixtures/base_prices_source_known.json index a6db28e6..792897b1 100644 --- a/resources/tester/fixtures/base_prices_source_known.json +++ b/resources/tester/fixtures/base_prices_source_known.json @@ -14,18 +14,22 @@ "셈 연료 원문에 없는 자료 줄": { "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}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.", + "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}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음." + "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}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.", + "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}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음." + "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, @@ -37,10 +41,12 @@ "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}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음.", + "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}` 로 보고됨). 닫는 길은 둘 — ㉠ 원문에 없으니 **비움**(랩탑 메인이 이 줄만 이어받지 않게) · ㉡ 전력 기종의 기름 값을 사람이 정해 넣는 자리로 **남김**(그러면 「사람이 넣은 값」 표시를 달 것). 어느 쪽인지는 판정 자리라 그대로 둠 — 지어 채우지 않음." + "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}` 은 **표시가 일이니 끄지 말 것.**", + "표시": "원문 부재 · 옛 벌 이어받음 · 사람 확인 필요", + "잠정": "남김 — 사용자 판단 목록 일곱째" } }, "material": {}, diff --git a/resources/tester/test_work_item_master_source_match.py b/resources/tester/test_work_item_master_source_match.py index 3647598a..0f9a7476 100644 --- a/resources/tester/test_work_item_master_source_match.py +++ b/resources/tester/test_work_item_master_source_match.py @@ -374,7 +374,7 @@ def load_known() -> dict[str, dict]: #: 비교에서 뺄 칸 — **사람이 적은 메모**다. 자료가 아니라 설명이라 어긋남 판정에 안 쓴다. #: `class`·`class_why` 는 2026-09-18 에 붙인 갈래(㉮ 영영 아님 · ㉯ 남의 몫 · ㉰ 사용자 판단). -_MEMO_FIELDS = ("why", "class", "class_why", "was", "owner", "owner_ask", "갈래") +_MEMO_FIELDS = ("why", "class", "class_why", "was", "owner", "owner_ask", "갈래", "표시", "잠정") def _without_why(entry: dict) -> dict: