Merge remote-tracking branch 'origin/sub_desktop_1' into main_laptop_1 — 갈래 불변 열쇠(FW-00105#01 꼴 · 데스크탑 서브) 받음 · 자료 파일 충돌은 합친 코드로 다시 뽑아 풂 · 갈래 수 335 → 332(헛단위 13-3 갈래 뺀 것 반영)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
This commit is contained in:
2026-09-17 18:23:43 +09:00
co-authored by Claude Opus 5
13 changed files with 4598 additions and 137 deletions
+6 -4
View File
@@ -91,17 +91,19 @@ def base_rows(kind: str) -> list[dict[str, Any]]:
)
key = _key(item)
# 갈래마다 한 줄 — 일위대가가 갈래마다 달라 집는 단위가 갈래임(교목굴취 나무높이 9 · 2026-09-17 브레인 ③).
# 열쇠 = 공종 열쇠#갈래 키(B08·B09 `코드#갈래` 꼴) · 갈래 키 글자는 마스터 것 그대로(조립 두 벌 금지).
for variant in item.get("variant_keys") or [None]:
# 열쇠 = `공종 열쇠#갈래 번호`(`FW-00105#01`) — **갈래 글자를 열쇠에 담지 않는다.**
# 담으면 원문 자간·물결표가 다듬어지는 날 열쇠가 갈린다(2026-09-17 브레인 · 장부가 번호를 준다).
for variant in item.get("variants") or [None]:
rows.append(
{
"@id": f"{key}#{variant}" if variant else key,
"@id": f"{key}#{variant['variant_key']}" if variant else key,
"@key": key, # 공종 열쇠 — 거르기·줄 수는 공종 단위로
"@source": name,
"work_item_code": item["work_item_code"], # 목차 코드 — 열쇠 아님, 칸으로만
"number": item["number"],
"name": _path(item, by),
"variant": variant,
"variant": variant["name"] if variant else None, # 원문 그대로
"variant_clean": variant["name_clean"] if variant else None, # 다듬은 것
"pum_tables": [t["pum_table_id"] for t in item["tables"]],
"rule": (named.get(f"work_item_master::{parent.get('parent_mode')}") or {}).get(
"name_ko"