From 7797a2ffc1bab097321db358d8cffbb714e1dadf Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 15 Sep 2026 19:01:52 +0900 Subject: [PATCH] =?UTF-8?q?fix(z01):=20=ED=8F=B4=EB=8D=94=20=EC=A7=80?= =?UTF-8?q?=EB=AC=B8=20`=5Fmanifest`=20=EC=85=8B=EC=9D=84=20=EB=B6=80?= =?UTF-8?q?=EC=82=B0=EB=AC=BC=EC=97=90=EC=84=9C=20=E3=80=8C=EC=A7=80?= =?UTF-8?q?=EB=AC=B8=E3=80=8D=20=EA=B0=88=EB=9E=98=EB=A1=9C=20=EC=98=AE?= =?UTF-8?q?=EA=B9=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 부산물 설명이 「정본 아님 · 계산이 남긴 기록」인데 `_manifest` 는 **어느 판으로 셈했는지 못박는 표**라 딱지가 거꾸로 붙어 있었음(브레인 ②) - 갈래 하나 더 둠 — `fingerprint` 「지문」: 값도 규칙도 아니고 판을 가리키는 자리 · 고치지 않음 - 시험 한 건 더 — 지문이 부산물로 돌아가면 빨강 · 「정본」 딱지가 다시 붙어도 빨강 - 표·열·값 묶음 수는 그대로(표 91 · 열 447 · 값 묶음 172 · 뜻 못 밝힌 열 0) Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01FFCnEYNH4tsS2MbHvzBhZk --- .../data_master_labels/labels_2026-01-01.json | 26 +++++++++++-------- resources/tester/test_master_labels_cover.py | 10 +++++++ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/resources/data_master_labels/labels_2026-01-01.json b/resources/data_master_labels/labels_2026-01-01.json index 6875d5b8..4e79b5b9 100644 --- a/resources/data_master_labels/labels_2026-01-01.json +++ b/resources/data_master_labels/labels_2026-01-01.json @@ -2,7 +2,7 @@ "schema_version": "1.0", "dataset_id": "data_master_labels", "effective_date": "2026-01-01", - "generated_at": "2026-09-15T18:55:59+09:00", + "generated_at": "2026-09-15T18:59:13+09:00", "note": "마스터 자료의 **사람이 읽을 이름표**. 값이 아니라 이름만 담는다 — 여기를 고쳐도 계산은 안 바뀐다. Z01 마스터 관리 화면이 표·열 이름을 여기서 읽는다.", "policy": { "labels_only": "값·수식·단가를 담지 않는다. 마스터 파일은 손대지 않는다.", @@ -10,7 +10,7 @@ "unit_is_label_only": "unit 은 이름표에서만 정한다. 자료에 없는 단위를 만들어 붙이지 않는다.", "counting_rule": "표 = 화면이 표로 그릴 마디(줄이 여럿인 마디). 값 묶음 = 표가 아닌 마디(설명·방침·한 값짜리 요율 따위).", "brain_kind_table": "갈래는 2026-09-15 브레인 갈래 나눔표를 그대로 따른다(로직 17 · 기초값 9 · 부산물 4 · 씨앗 1).", - "out_of_31": "폴더 장부(_manifest.json) 셋은 브레인 31 밖이라 부산물로 둔다.", + "out_of_31": "폴더 지문(_manifest.json) 셋은 브레인 31 밖이다. 부산물이 아니라 **지문** 갈래로 둔다 — 계산이 남긴 기록이 아니라 어느 판으로 셈했는지 못박는 표라 「정본 아님」 딱지가 안 맞는다(2026-09-15 브레인 ②).", "excluded": "강우 IDF 캐시(resources/data_rainfall_idf_cache, 96 파일)는 배수용이라 뺀다." }, "lookup_order": { @@ -38,6 +38,10 @@ "name_ko": "부산물", "summary": "다른 벌에서 나온 기록. ⚠ 정본이 아니다 — 고쳐도 정본이 안 바뀐다." }, + "fingerprint": { + "name_ko": "지문", + "summary": "어느 판으로 셈했는지 못박는 자리. 값도 규칙도 아니고 **판을 가리키는 표**다 — 고치지 않는다." + }, "seed": { "name_ko": "씨앗", "summary": "앞으로 늘려 갈 첫 벌. 모양을 잡아 두려고 먼저 놓은 것이다." @@ -4552,9 +4556,9 @@ { "file_id": "manifest_cost_input_value", "path": "resources/data_cost_input_value/_manifest.json", - "name_ko": "원가 입력변수 — 파일 장부", - "summary": "실린 파일·적용일·지문 목록. 브레인 갈래표 31 밖의 장부다.", - "kind": "byproduct", + "name_ko": "원가 입력변수 — 판 지문", + "summary": "이 폴더를 어느 판으로 셈했는지 못박는 지문. 값이 아니라 판을 가리키는 자리다.", + "kind": "fingerprint", "tables": [ { "key": "deferred", @@ -4694,9 +4698,9 @@ { "file_id": "manifest_material_surcharge", "path": "resources/data_material_surcharge/_manifest.json", - "name_ko": "재료 할증률 — 파일 장부", - "summary": "실린 파일·지문 목록. 브레인 갈래표 31 밖의 장부다.", - "kind": "byproduct", + "name_ko": "재료 할증률 — 판 지문", + "summary": "이 폴더를 어느 판으로 셈했는지 못박는 지문. 값이 아니라 판을 가리키는 자리다.", + "kind": "fingerprint", "tables": [ { "key": "files", @@ -4737,9 +4741,9 @@ { "file_id": "manifest_work_item_master", "path": "resources/data_work_item_master/_manifest.json", - "name_ko": "공종 마스터 — 파일 장부", - "summary": "실린 파일·지문 목록. 브레인 갈래표 31 밖의 장부다.", - "kind": "byproduct", + "name_ko": "공종 마스터 — 판 지문", + "summary": "이 폴더를 어느 판으로 셈했는지 못박는 지문. 값이 아니라 판을 가리키는 자리다.", + "kind": "fingerprint", "tables": [ { "key": "files", diff --git a/resources/tester/test_master_labels_cover.py b/resources/tester/test_master_labels_cover.py index e10346b7..3e9ec49a 100644 --- a/resources/tester/test_master_labels_cover.py +++ b/resources/tester/test_master_labels_cover.py @@ -133,6 +133,16 @@ def test_갈래_이름이_다_풀려_있다(labels): assert used <= known, f"뜻을 안 적은 갈래: {sorted(used - known)}" +def test_폴더_지문은_부산물이_아니다(labels): + """`_manifest` 는 계산이 남긴 기록이 아니라 **어느 판으로 셈했는지 못박는 표**다 — + 「정본 아님」 딱지가 붙으면 안 된다(2026-09-15 브레인 ②).""" + manifests = [f for f in labels["files"] if f["file_id"].startswith(MANIFEST_PREFIX)] + assert manifests, "폴더 지문이 이름표에 하나도 없다" + for entry in manifests: + assert entry["kind"] == "fingerprint", f"{entry['file_id']} 갈래가 {entry['kind']} 다" + assert "정본" not in labels["kinds"]["fingerprint"]["summary"] + + def test_마스터의_표가_이름표에_다_있다(labels): missing = [] for entry in labels["files"]: