chore(data): 기계 다리 선 뒤 건설 공종 마스터 다시 지음 — 금액 그대로 · 빨강 하나 풀림

랩탑 메인이 손료 387 → 611(되살아난 표 221 코드)·뭉개진 이름 30 을 세워 기계 다리가 붙었고,
코덱스 8-4 손질로 `pum_const` 네 표가 바뀌어 원천 벌이 다시 뽑혔음. 그 위에서 다시 지음.

- **금액 안 움직임** — 직접공사비 5,983,724 시험 통과
- 건설 산출은 **원문 셀 네 표만 바뀜**(C0727·C0729·C0736·C0737 — 8-4 운전경비 몫) ·
  표 2,202 귀속 2,202 · 형태 미판정 891 · 밑수 538/439 그대로
- 옛 산출로 뜨던 빨강(`test_work_item_master_const`)이 풀림
- ⚠ 앞 바퀴에 「건설 997/1,293 → 991/1,287 로 줄었다」고 적은 것은 **산출 파일이 옛 것**이어서였음 —
  다시 지으니 997/1,293 제자리. 시험 상수도 되돌리고 까닭을 적음

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
This commit is contained in:
2026-09-18 05:31:31 +09:00
co-authored by Claude Opus 5
parent 60199f7393
commit ccfb8d9940
7 changed files with 1656 additions and 937 deletions
@@ -1,7 +1,7 @@
{
"schema_version": "1.0",
"dataset_id": "data_work_item_master_manifest",
"generated_at": "2026-09-18T04:09:14+09:00",
"generated_at": "2026-09-18T05:20:39+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": "877ab6149ea64cd4e8428ce3e0e426f2cd529784e438d8034e73993522e89ea3",
"sha256": "8bf71f9eefcfdf970eec4bf82e0249cf94620188b54ce5f3ae4df15b8f33dab7",
"size_bytes": 1081872
},
{
@@ -1,28 +1,28 @@
{
"schema_version": "1.0",
"dataset_id": "data_work_item_master_manifest",
"generated_at": "2026-09-18T04:10:04+09:00",
"generated_at": "2026-09-18T05:21:44+09:00",
"built_by": "B08_Quantity/B08_Quantity_Build_WorkItemMaster.py",
"source": {
"dataset_id": "pum_const",
"effective_date": "2026-01-01",
"sha256": "615628a5eba6109ce5f2bed96a1375486ce950ae6398f72d61285842947dc39f",
"sha256": "67285a536e7edd6655fceb6844c08fa237c443fdea720a4454fd53ac6d297d1d",
"file": "pum_const_2026.json"
},
"files": [
{
"file": "const_work_item_master_2026-01-01.json",
"sha256": "057dfceb23ea63f6f1dce25846f53ca39a2abaf6ec92c85738ffad99e4640886",
"size_bytes": 4501207
"sha256": "c8446c68afa521c6f1817346371c359304075d218f79fb38b3507d1e9f07cf42",
"size_bytes": 4508691
},
{
"file": "const_form_undetermined_2026-01-01.json",
"sha256": "48a7262f96ff1e44931685d6cdedc4a912413bbec21a601438b8c78223254bad",
"size_bytes": 493465
"sha256": "aa75542987d4421fe26e0e6653c5fd7d393a153b5ad9470fcd7b605b5f9c5cb8",
"size_bytes": 493520
},
{
"file": "const_basis_missing_2026-01-01.json",
"sha256": "5d90f7894d6306eb493325ef6759116238839a0c6b183073d3f83c452508fe15",
"sha256": "e5f1683980debbb3a3d83eedffc32533f7305313cd668e7ac40ae171287ee3b0",
"size_bytes": 110670
}
]
@@ -988,119 +988,119 @@
"pum_table_id": "C0728",
"section": "8-4 운전경비 산정('08, '09, '10, '11, '12, '13, '14, '15, '16, '17년 보완)8-4-1 [00]토공기계",
"pum_form": "requirement",
"line": 3508,
"line": 3538,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0729",
"section": "8-4-2 [10]다짐기계",
"pum_form": "requirement",
"line": 3514,
"line": 3544,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0730",
"section": "8-4-3 [20]운반 및 하역기계('21년 보완)",
"pum_form": "requirement",
"line": 3520,
"line": 3581,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0731",
"section": "8-4-3 [20]운반 및 하역기계('21년 보완)",
"pum_form": "requirement",
"line": 3526,
"line": 3587,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0732",
"section": "8-4-4 [30]포장기계",
"pum_form": "requirement",
"line": 3532,
"line": 3593,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0733",
"section": "8-4-5 [40]콘크리트기계",
"pum_form": "requirement",
"line": 3538,
"line": 3599,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0734",
"section": "8-4-5 [40]콘크리트기계",
"pum_form": "requirement",
"line": 3544,
"line": 3605,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0735",
"section": "8-4-6 [50]골재생산기계 등",
"pum_form": "requirement",
"line": 3550,
"line": 3611,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0736",
"section": "8-4-6 [50]골재생산기계 등",
"pum_form": "requirement",
"line": 3556,
"line": 3617,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0737",
"section": "8-4-7 [60]기초공사용 기계('21년 보완)",
"pum_form": "requirement",
"line": 3562,
"line": 3631,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0738",
"section": "8-4-8 [70]기타기계('24년 보완)",
"pum_form": "requirement",
"line": 3568,
"line": 3657,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0739",
"section": "8-4-8 [70]기타기계('24년 보완)",
"pum_form": "requirement",
"line": 3574,
"line": 3663,
"why": "미판독 — 원문이 적었는데 우리가 못 읽음"
},
{
"pum_table_id": "C0740",
"section": "8-4-9 [90]해상기계(9010) 펌프준설선 ('10, '11년 보완)",
"pum_form": "requirement",
"line": 3588,
"line": 3677,
"why": "원문 부재 — 원문에 밑수가 아예 없음(채우면 지어내는 꼴)"
},
{
"pum_table_id": "C0741",
"section": "8-4-9 [90]해상기계(9010) 펌프준설선 ('10, '11년 보완)",
"pum_form": "requirement",
"line": 3601,
"line": 3690,
"why": "원문 부재 — 원문에 밑수가 아예 없음(채우면 지어내는 꼴)"
},
{
"pum_table_id": "C0743",
"section": "8-4-9 [90]해상기계(9010) 펌프준설선 ('10, '11년 보완)",
"pum_form": "requirement",
"line": 3617,
"line": 3706,
"why": "원문 부재 — 원문에 밑수가 아예 없음(채우면 지어내는 꼴)"
},
{
"pum_table_id": "C0746",
"section": "8-4-9 [90]해상기계(9010) 펌프준설선 ('10, '11년 보완)",
"pum_form": "requirement",
"line": 3641,
"line": 3730,
"why": "원문 부재 — 원문에 밑수가 아예 없음(채우면 지어내는 꼴)"
},
{
"pum_table_id": "C0747",
"section": "8-4-9 [90]해상기계(9010) 펌프준설선 ('10, '11년 보완)",
"pum_form": "requirement",
"line": 3653,
"line": 3742,
"why": "원문 부재 — 원문에 밑수가 아예 없음(채우면 지어내는 꼴)"
},
{
@@ -10289,7 +10289,7 @@
},
{
"pum_table_id": "C0742",
"section": "8-4-5 [40]콘크리트기계",
"section": "8-4-9 [90]해상기계",
"headers": [
"명 칭",
"단위",
@@ -10330,7 +10330,7 @@
},
{
"pum_table_id": "C0744",
"section": "8-4-6 [50]골재생산기계 등",
"section": "8-4-9 [90]해상기계",
"headers": [
"명 칭",
"단위",
@@ -10365,7 +10365,7 @@
},
{
"pum_table_id": "C0745",
"section": "8-4-7 [60]기초공사용 기계",
"section": "8-4-9 [90]해상기계",
"headers": [
"명 칭",
"단위",
@@ -10392,7 +10392,7 @@
},
{
"pum_table_id": "C0748",
"section": "8-4-8 [70]기타기계",
"section": "8-5-1 [00]토공기계",
"headers": [
"기 종",
"분류번호",
@@ -10409,7 +10409,7 @@
},
{
"pum_table_id": "C0749",
"section": "8-4-8 [70]기타기계",
"section": "8-5-1 [00]토공기계",
"headers": [
"기 종",
"분류번호",
@@ -10426,7 +10426,7 @@
},
{
"pum_table_id": "C0750",
"section": "8-4-8 [70]기타기계",
"section": "8-5-1 [00]토공기계",
"headers": [
"기 종",
"분류번호",
@@ -10443,7 +10443,7 @@
},
{
"pum_table_id": "C0751",
"section": "8-4-9 [90]해상기계",
"section": "8-5-2 [10]다짐기계",
"headers": [
"기 종",
"분류번호",
@@ -10460,7 +10460,7 @@
},
{
"pum_table_id": "C0752",
"section": "8-4-9 [90]해상기계",
"section": "8-5-3 [20]운반 및 하역기계",
"headers": [
"기 종",
"분류번호",
@@ -10477,7 +10477,7 @@
},
{
"pum_table_id": "C0753",
"section": "8-4-9 [90]해상기계",
"section": "8-5-3 [20]운반 및 하역기계",
"headers": [
"기 종",
"분류번호",
@@ -10494,7 +10494,7 @@
},
{
"pum_table_id": "C0754",
"section": "8-4-9 [90]해상기계",
"section": "8-5-4 [30]포장기계",
"headers": [
"기 종",
"분류번호",
@@ -10511,7 +10511,7 @@
},
{
"pum_table_id": "C0755",
"section": "8-4-9 [90]해상기계",
"section": "8-5-5 [40]콘크리트기계",
"headers": [
"기 종",
"분류번호",
@@ -10528,7 +10528,7 @@
},
{
"pum_table_id": "C0756",
"section": "8-4-9 [90]해상기계",
"section": "8-5-6 [50]골재생산기계 등",
"headers": [
"기 종",
"분류번호",
@@ -10545,7 +10545,7 @@
},
{
"pum_table_id": "C0757",
"section": "8-4-9 [90]해상기계",
"section": "8-5-6 [50]골재생산기계 등",
"headers": [
"기 종",
"분류번호",
@@ -10562,7 +10562,7 @@
},
{
"pum_table_id": "C0758",
"section": "8-4-9 [90]해상기계",
"section": "8-5-6 [50]골재생산기계 등",
"headers": [
"기 종",
"분류번호",
@@ -10579,7 +10579,7 @@
},
{
"pum_table_id": "C0759",
"section": "8-4-9 [90]해상기계",
"section": "8-5-7 [60]기초공사용기계",
"headers": [
"기 종",
"분류번호",
@@ -10596,7 +10596,7 @@
},
{
"pum_table_id": "C0760",
"section": "8-4-9 [90]해상기계",
"section": "8-5-7 [60]기초공사용기계",
"headers": [
"기 종",
"분류번호",
@@ -10613,7 +10613,7 @@
},
{
"pum_table_id": "C0761",
"section": "8-4-9 [90]해상기계",
"section": "8-5-7 [60]기초공사용기계",
"headers": [
"기 종",
"분류번호",
@@ -10630,7 +10630,7 @@
},
{
"pum_table_id": "C0762",
"section": "8-4-9 [90]해상기계",
"section": "8-5-8 [70]기타기계",
"headers": [
"기 종",
"분류번호",
@@ -10647,7 +10647,7 @@
},
{
"pum_table_id": "C0763",
"section": "8-5-1 [00]토공기계",
"section": "8-5-8 [70]기타기계",
"headers": [
"기 종",
"분류번호",
@@ -10664,7 +10664,7 @@
},
{
"pum_table_id": "C0764",
"section": "8-5-1 [00]토공기계",
"section": "8-5-8 [70]기타기계",
"headers": [
"기 종",
"분류번호",
@@ -10681,7 +10681,7 @@
},
{
"pum_table_id": "C0765",
"section": "8-5-1 [00]토공기계",
"section": "8-5-8 [70]기타기계",
"headers": [
"기 종",
"분류번호",
@@ -10698,7 +10698,7 @@
},
{
"pum_table_id": "C0766",
"section": "8-5-2 [10]다짐기계",
"section": "8-5-9 [80]스마트 건설장비",
"headers": [
"기 종",
"분류번호",
@@ -10720,7 +10720,7 @@
},
{
"pum_table_id": "C0767",
"section": "8-5-3 [20]운반 및 하역기계",
"section": "8-5-10 [90]해상기계",
"headers": [
"기 종",
"분류번호",
@@ -10737,7 +10737,7 @@
},
{
"pum_table_id": "C0768",
"section": "8-5-4 [30]포장기계",
"section": "8-5-10 [90]해상기계",
"headers": [
"기 종",
"분류번호",
@@ -10754,7 +10754,7 @@
},
{
"pum_table_id": "C0769",
"section": "8-5-5 [40]콘크리트기계",
"section": "8-5-10 [90]해상기계",
"headers": [
"기 종",
"분류번호",
File diff suppressed because it is too large Load Diff
@@ -4,7 +4,7 @@
"effective_date": "2026-01-01",
"pum_edition": "2026-01-01",
"toc_edition": "산림청고시제2025-82호",
"generated_at": "2026-09-18T04:09:14+09:00",
"generated_at": "2026-09-18T05:20:39+09:00",
"dataset_version": {
"dataset_id": "pum_forest",
"effective_date": "2026-01-01",
+3 -2
View File
@@ -79,8 +79,9 @@ def test_건설_공종_축도_같은_길(client: TestClient) -> None:
"""건설(2026-09-17 뽑음) — 부문이 뿌리라 경로가 부문부터 · 열쇠 CW- · 계산 규칙은 전부 choose_one.
갈래도 산림과 같은 표 읽기로 폄(④ · 공종 997 → 줄 1,293 · 갈래 열쇠 `CW-00063#01`)."""
table = _get(client, "work_item_const", size=500, axis_role="")
# 2026-09-18 997/1,293 991/1,287 — 코덱스 8-4 전사·[주] 경계 손질 뒤 줄어듦
assert table["stats"] == {"work_items": 991, "units": 1287} and table["total"] == 1287
# 2026-09-18 997/1,293 그대로 — 앞서 991/1,287 로 보였던 것은 **산출 파일이 옛 것**이어서였다
# (기계 다리가 선 뒤 다시 지으니 제자리로 돌아옴).
assert table["stats"] == {"work_items": 997, "units": 1293} and table["total"] == 1293
assert sum(1 for r in table["rows"] if "#" in r["@id"]) > 0
rows = table["rows"]
assert all(r["@id"].startswith("CW-") for r in rows)