diff --git a/docs/raw/plans/2026-11-05_plan_782_784_785.md b/docs/raw/plans/2026-11-05_plan_782_784_785.md new file mode 100644 index 000000000..59139c8e2 --- /dev/null +++ b/docs/raw/plans/2026-11-05_plan_782_784_785.md @@ -0,0 +1,54 @@ +# 계획 이관 782 · 784 · 785 (2026-11-05) + +## 782 건설품셈 공통부문 단가산출 기초 확보 (요구 629 · 632 · 633 · _분석_629 · _분석_628) + +- 사용자 확정: 건설품셈 1-2-2 부터 전체 = 기초 확보 대상(1-1 · 1-2-1 = 가이드) · 기초가 없으면 잇기 전에 기초부터(요구 633). +- 정함(브레인): 새 파일 로직_건설품셈_01장_적용기준.json(계수 파일과 짝) · α 지게운반에도 · 엑셀 n 값 = n 직접 입력 갈래 · 나머지 1장 · 8-2 = 목차 대조(_대조_632) 나온 뒤 차례로. +- [x] 782-1 건설 공통 1-2-7 운반 기초(계수 표 · 인력운반 로직 · 재현 넷 0.547619 · 0.163556 · 0.654222 · 0.0132) — sub2 + - 이음(sub2 → sub1 781): 새 로직 = 로직_건설품셈_01장_적용기준.json · 구분 「건설품셈 공통」 · 원문번호 1-2-7 · GC001140 인력운반(지게) · GC001141 인력운반(기계설비) · GC001142 벽돌운반 · 계수 CC000341~348 1-2-7 표 + - 검증완료 — 재현 0.547619(94,227.7) · 0.163556 · 0.654222 · 0.0132 · test_782_1 8 · 엔진 시험 94 · 호표 골든 31 통과 · check_master 전후 같음 · 계산전부 1464 멈춤 0 · ORCA 8004 M01 목록 · 시험 계산 0.5476 → 94,227.7 (검증 대기) +- 대조(_대조_632): 건설 1,101 절 = 가이드 4 · 계산 대상 1,097 · 로직 있음 951 · 계수만 81 · 없음 65(품 · 표 · 식 32 = 공통 1장 다섯 1-2-7 · 1-2-9 · 1-4-2 · 1-5-4 · 1-5-6 · 8-1-4 · 8-2 25 · 기계설비 13-2-7 · 규칙 · 계수만 33). +- [x] 782-2 1장 나머지(1-5-4 환경관리비 · 1-5-6 사용료 로직 · 1-2-9 소규모 · 1-4-2 중복가산 = 공통 규칙 꼴 사용자 답 뒤 · 규칙 · 계수만 절) — 782-1 뒤 — sub3 + - 이음(sub3): 새 계수 = 계수_건설품셈_01장_적용기준.json 덧 CC000495~CC000527(1-2-2 · 1-2-3 · 1-2-4 · 1-2-5 · 1-2-6 · 1-2-8 · 1-2-9 · 1-3-2 · 1-4-1 · 1-4-2 · 1-5-1~10 — 절마다 「규칙 글」 표 + 수 표) · 표 칸 「성격」(1-3 · 1-4 기존 33 표 + 1-2-9 둘 · 1-2-9 ↔ 1-4-6 작업시간 제한 = 「작업시간 제한 · 소규모」) · 새 로직 GC001192 건설폐기물 발생량(1-5-4) · GC001193 공사용수(1-5-6) · check_master 「목차」(check_master_toc.py · 1-2-9 · 1-4-2 = 783-1 로 미룸 표지) · 1-2-9 · 1-4 로직 없음(783-1) + - 검증완료 — test_782_2 11 · test_782_1 8 · test_782_3 21 · test_masterdata_check 72 · 엔진 · M01 시험 102/103(test_712_3 fill_ratio 0.7683 < 0.78 = 782-3 뒤 이미 실패 · 이번 전 0.7683) · check_master 전후 같음 + 목차 0 · 기존 로직 1513 셈 값 전후 같음 · 계산전부 1515 멈춤 0 · ORCA 8005 M01 목록 GC001192 · 시험 계산 56.212 TON · 빈 칸 멈춤 문구 (검증 대기) +- [x] 782-3 8-1-4 시공능력 기본식 · 8-2 시공능력 25 절 로직 · 기계설비 13-2-7 — 782-1 뒤(_키대장 겹침 피함) — sub3 + - 이음(sub3): 새 계수 = 계수_건설품셈_08장_건설기계.json 덧 CC000349~CC000494(8-2-2~33 원문 표 전부 + 글 속 상수 146) · 새 로직 = 로직_건설품셈_08장_건설기계.json 덧 GC001143~GC001190(8-1-4 기본식 · 8-2 시간당 작업량 · 1본당 시공시간 · 작업량당 기계경비 — 굴착기 GC001147/1148 · 불도저 1144/1145 · 로더 1150/1151 · 덤프트럭 1155/1156 · 롤러 1157~1159 · 브레이커 경비 1166) · 13-2-7 GC001191(로직_건설품셈_13장_플랜트설비공사.json 끝) · 구분 「건설품셈 공통」 · 원문번호 8-1-4 · 8-2-x + - 검증완료 — 엑셀 Q 재현 18/21(굴착기 12 · 덤프트럭 4 · 롤러 면적 2,280 · 임목파쇄 6 · 0.5% 안 · 영덕계류 셋 = 엑셀이 0.6∼0.8㎥ 줄 싸이클) · test_782_3 21 · 엔진 시험 43 · test_masterdata_check 72 통과 · check_master 전후 같음 · 계산전부 1464 → 1513 멈춤 0 · 기존 로직 셈 값 전후 같음 · ORCA 8005 M01 목록 · 시험 계산 81 ㎥/hr (검증 대기) + - 가드 칸(분석 635 · 8ddb5bbda) — 범위 [0, 원문 끝] = 자동값 0: E입력 · 싸이클입력 · α입력 둘 · q입력(펌프준설) · f입력 · k입력 · 배출 · 대기 · 하역시간입력 / 범위 없음(1 이어도 3배 안): 전진 · 후진거리 · 주행거리 · 혼합횟수 · 플랜트싸이클 · 검증완료 — test_782_3 22 · 엔진 시험 통과 · check_master 전후 같음 · 계산전부 1513 멈춤 0 + +## 784 「우리 품」 잘못 보임 뿌리 고침 · 배수 칸 = 단위 환산 (요구 635 · 636 · 637 · _분석_635) + +- 사용자 확정: 하나만 보지 말고 관련 로직 전수 · 배수 칸 의미 없어 보임. +- 정함(브레인): 못 맞추면 우리 품 · 입력 안 보임(뿌리 한 곳) · 가드 칸 자동값 0 · D · F · I 함께 · 배 칸 없애지 않고 보이기 · 이름만(단위 환산) · 단산10 「맞음」 승격 · 골든 N006 정답 = 사용자 답 기다림. +- [x] 784-1(→ 785 로 갈음) 서버 A · B · C · E · G · H + D · F · I · 지킴 시험 test_635 — sub1 + - 이음(sub2): 옵션 「못맞춤」 true = 우리품 빈 · 입력 {} · 환산 갈래 새 값 「자재 단위」(배 1) · 공/㎥ ≡ 공㎥ = 「같음」 +- [x] 784-2 화면 배 칸 = 「단위 환산 — 엑셀 1 ㎡ = 우리 [ ] 본」 · 같으면 숨김 · 장부 같은 꼴 — sub2 + - 검증완료 — test_m02_hopyo_screen 21 통과(단위 환산 판정 11 사례) · typecheck 0 · ORCA 북부청임도 제2호표 확인 창: 단위 같음 줄 「단위 같음 ×1」 · 몫 0.1 줄 「몫 0.1」 · 단위 다른 줄 「엑셀 1 ㎡ = 우리 [ ] 자재」 · 밝음 · 어두움 확인 · 올린 파일 지움 +- [x] 784-3(→ 785 로 갈음) 블록 안 여러 절 = 로직마다 「맡은 절」(Combine) · 옵션 · 판정 · 품 비교를 그 절 지문으로(Verdict.block · Line._qty) · 맡은 절 없는 1순위 뺌 · 진짜 겹침 셋(강관비계 산림 + 건설 · 연결철근 현장가공 + 공장가공) — sub1(784-1 뒤 · _분석_638) + +## 785 M02 엑셀 불러오기 다시 짬 — 글 먼저 · 결정적 매칭 · 화면 단순화 (요구 641 · 642 · 요구서_642 · _설계_642-A) + +- 사용자 확정: 로직 전체 지워도 됨 · 조합 = M01 기초 + M02 SK + M02 SC(한 줄) + M01 인력 · 재료 · 유가전력 · 기계 · 소요량 · 계수 · 환율(복수) · 1차 품명 · 규격 · 비고 → 2차 비고 → 단산 상세 → 품셈 번호 → 기본공식 · 단산 줄 수량 그대로 + M01 기초 옵션값 · 화면 = 고르면 바로 엑셀 + 오른쪽 호표. +- 정함(브레인): 623-1 → 642 로 바꿈(기초 찾으면 기초 + 옵션 · 못 찾으면 줄 조합) · 한 줄 기초 둘 = 줄 둘 · 새 파일 먼저 → 화면 → 지움 · 639-1a 만 묶음 · 784-1 · 784-3 갈음 · 나머지 = 요구서_642 3장. +- [x] 785-1(642-1) Clause · Formula — sub1 / 785-2(642-2) Bind · Solve · defaults — sub2 / 785-3(642-3) Row · MO — sub3 / 785-4(642-4) 화면 껍데기 — sub4 + - 검증완료 — 785-1 932acba90 · 02cabeccf(Clause · Formula · test_642_1 16) · 785-2 d516d09fd · bf140c29f(Bind · Solve · defaults · test_642_2 14) · 785-3 553c9169c(Row · MO · 415 줄 100 %) · 785-4 73f113ba3(Wizard 지움 · Import · 본 칸 엑셀) + - 785-4 이음(sub4): 새 Hopyo_Import.ts · 새 Hopyo_SheetMake.ts · Wizard.ts 지움 · Sheet.ts 는 `buildHopyoSheet(opt) → {parts, destroy, lower, skCount, showSk}` + 모달 껍데기 `openHopyoSheet` · 옵션 `headExtra` · `onRead` · `onSkChange` 더함(`onDeleted` 걷음) · 785-6 자리 = 시트 아래 줄 판 `[data-hopyo-lines]`(WizardSk `lines` 옵션 · 지금 단산 줄 표 그림) · 오른쪽 판 아래 옮기기 단추 = Sheet 목록 판 · WizardSk `narrow` 옵션 걷음(좁은 꼴 하나) + - [x] 785-4 화면 껍데기 — sub4 + - 검증완료 — 시험 55(785-4 새 7 · hopyo 화면 · 729-3 · 627 · 778-5 · 782-1 · 720 · 779-4 · 779-5) 통과 · typecheck 0 · 일반 계정 개인 층 북부청 xls → 가운데 페이지 없이 엑셀(탭 셋) + 호표 68 + 머리 막대 · 안 이은 줄 198 오표시 0 고침 · 끝내기(0 → 물음 → 올린 파일 지움) · 떠남 지움 · 1920 · 1366 · 390 밝음 · 어두움 · ORCA 한 번 확인 · Hopyo_Check 662 · Api 632 그대로 + - 이음(785-1 꼴 · sub1): `M02_Hopyo_Formula.tree(글, 글행=None, 항목=None)` → [절] · 절 = {번 「1」·「가」·「1)」, 층 1~3, 제목, 갈래 일|비목|합계, 행 [시작, 끝], 글 [첫, 끝](글 차례), 상수 [{기호, 값, 단위, 덧?(「90˚」), 이름?(「운반회수」), 행}], 식 [{기호, 글, 값, 단위, 분자 [{수|기호, 단위}], 분모 [같은 꼴], 대입 {기호: 수}, 꼴 곱|합|분수, 행}], 선택값 [{글, 행}](「※ …」 · 작업조건), 몫 {글, 값, 행}|None(비목 줄 「÷ Q」 뒤 곱수 · 직종 줄 품 뒤 %), 소계 {노무비, 재료비, 경비, 계}, 항목 [단위 줄 차례], 아래 [절]} · `head(글, 글행)` = 첫 절 앞 {상수, 식, 선택값, 행} · `works(나무)` = 일 절(아래가 비목 · 합계뿐이면 그 절 · [] = 블록 통째) · 빠진 번호 그대로 · Book EST 단산 블록에 `글행` · `절` 칸 더함 · `M02_Hopyo_Clause.basis(블록)` → {표지 준용|옛 번호|기초 없음|번호 없음|None, 글, 출처 [[책, 번호]], 후보 [{키, 이름, 구분, 원문번호, 결과단위, 맞음 같음|윗마디, 출처 [책, 번호], 절 「1」|None}], 뺌 [{키, 까닭}]} · `index()` = {(구분, 원문번호): [키]} · 옛 Basis 이름(settle · resolve · ours · clause · no_basis …)은 Clause 가 정본 · Basis 는 다시 내보냄 + - [x] 785-1 Clause · Formula — sub1 + - 검증완료 — test_642_1 16 · 628 · basis · excel · stmate · 621 S1 69 통과(울진소광 S1 해시 = 옛 HEAD 에서도 실패 · 785-1 밖) · 북부청 95 블록 표지 번호 없음 6 · 준용 2 · 옛 8 · 기초 없음 4 · 커밋 02cabeccf · 932acba90 + - 이음(sub2 785-2): Solve.parts(블록, 후보 [키 | Clause 후보 {키, 절}]) → 풂 절 [{제목, 번?, 후보 [키], 항목, 상수, 식, 선택값, 몫}](절 표 있는 후보가 있으면 Formula.works 절마다 · 없으면 블록 통째) · Solve.block(master, 블록, 풂 절, {줄 부르는 호표 줄, 같은줄 []}) → {번, 판정 기초로 풂|기초+덧|줄 조합|고를 것, 고를수, 절 [{제목, 판정 기초 풂|후보 여럿|기초 없음, 고름 키|None, 후보 [{키, 이름, 바인딩, 줄 [{엑셀 {묶음, 이름, 품, 행, 별도?}|None, 우리 {이름, 종류, 단위, 품, 까닭?}|None, 판정 품 같음|품 다름|입력 필요|엑셀만|우리만, 표지?}], 셈 {판정: 수}, 판정, 금액 {노무비, 재료비, 경비, 계}|{계 None, 까닭}}]}], 덧 [{절, 행, 이름, Units 잇기}]} · 바인딩 = Bind.bind(master, 키, 글감, fit?) → {입력값(엇갈림 뺌), 출처 {이름: {길 B1~B6, 행, 글}}, 엇갈림 {이름: [{값, 길, 행}]}, 안씀[], 입력필요[], 비움[지역 · 자재지역 · 조종원직종], 기본 {이름: 값|None}} · 상수 줄 L · 경사도 = B3 · Solve.same(엑셀, 우리) 품 같음 · Bind.quantities(master, 키, 입력) 품만 · master_auto.defaults(master, 줄) → {이름: 값|None} + - 검증완료(785-2) — test_642_2 14 통과(예시 1 GC001140 다섯 칸 B3 · B4 · 0.547619 · 94,227.7 · 예시 2 GC000206 + GC000207 호 Ⅰ-1 · 소량감률 50 · 구분 토목|건축 고를 것 · 예시 3 GC000211 유형 보통 B2 · 입력 필요 높이감률 · 구멍땜 → 0 넣으면 노무 38,291 · 단산46 소량감률 50 · 굴착기 입력 필요 · 단산39 GF000225 B6 넷 · 지어 넣은 값 0) · M01 엔진 시험 14 통과 · values · run_line 그대로 (검증 대기) +- [x] 785-5(642-5) Make · Router — 785-1~3 뒤 / 785-6(642-6) 판정 화면 — 785-4 · 785-5 길 꼴 뒤 + - 검증완료 — 785-5 a22af84b6(Router · Judge · Make · 예시 1 94,227 = 엑셀 · 예시 3 38,290 · 제2호표 494,165 = 엑셀 · 옛 hopyo 시험 211) · 785-6 0117dbdf2 … 0ec931dcd(줄 판 · 블록 판 · 칠 · 옮기기 SC 2 · SK 1 · ORCA 밝음 · 어두움 · 1366 · 390) + - 이음(785-5 길 꼴 · sub1): 새 `M02_Hopyo_Router`(옛 hopyo 길 그대로 옮김 · 785-7 까지 돎) · 경로 층 = 파일 층 · `to` · `to_owner` = 만들 층(없으면 파일 층) · `GET /api/m02/layers/{층}/hopyo-judge/{키}` → `{키, 파일, 호표 [{번, 이름, 규격, 단위, 줄수, 판정 {제안 있음|2차 필요|후보 여럿|후보 없음: 수}, 만든 SC|None}], 블록 [{번, 이름, 단위, 금액(엑셀), 부름 [호표 번], 표지, 판정|None, 고를수|None, 만든 SK|None}], 셈중}`(셈중 = 블록 풀이 뒤 셈 중 · 판정 · 고를수 None) · `GET …/hopyo-judge/{키}/{번}` → `{번, 이름, 규격, 단위, 단가, 만든, 줄 [785-3 줄 판 + 엑셀 이름 · 규격 · 단위 · 단가 + 단산 줄 `풀이` = 블록 풀이]}` · `GET …/hopyo-judge/{키}/block/{번}` → `Solve.block` 꼴 `{번, 판정, 고를수, 절 [+ 몫 · 번], 덧}` + `{이름, 단위, 금액(엑셀), 부름, 근거(Clause.basis), 만든}` · 블록 풀이 = 파생 저장본(HP 폴더 `_derived/hopyo_judge_{키}` · 지문 = HP + M01 파일 내용 + 풀이 판 · 올림 뒤 한 번 뒤에서 · GET 안 지움 · [끝내기] 지움) · `M02_Hopyo_Judge.judged(folder, key)` → `{번: {판정, 고를수}}` | None(셈 중 · 뒤 셈 시작 · Marks 가 부름) · `POST …/hopyo/{키}/check` 몸 `{호표?, 차례?, 블록?, 고른 [고른 것]}` → `{고른 [{차례, 갈래, 키, 입력값(엔진이 쓴 칸 모두), 입력필요 [칸], 줄 [Solve.pair 줄]?, 판정 품 같음|품 다름|입력 필요|확인, 금액 {노무비, 재료비, 경비, 계}|{계 None, 까닭}}], 수량 {엑셀, 배, 몫}}`(저장 없음 · 서버 셈) · `POST /api/m02/layers/{만들 층}/hopyo/{키}/move` 몸 `{층, 주인?, 호표 {번: {차례: [고른 것]}}, 블록 {번: [고른 것]}, 덮음?}`(이미 옮긴 호표 · 블록 = 덮음 없으면 409 `{까닭, 호표 [{번, 키}], 블록 [{번, 키}]}` 아무것도 안 씀 · 몸 층 = 파일 층 · 고른 것 금액 · 품 · 수량 칸 422 · 서버가 다시 셈) → `{만듦 [{번, 키, 이름, 다시씀, 재사용, 비교}], 단가산출 [{번, 키, 이름}], 막힘 [{호표|블록, 차례?, 까닭, 칸 []}], 하위 [{번, 키, 새로}], 장부 {씀}}` · 고른 것 = 785-3 꼴 + `배?`(단위 환산 사용자 값) · 단가산출 키 = `SK-…` | `단산N`(같은 옮기기 블록 먼저) · 일위대가 키 = `SC-…` | `제N호표`(같은 HP · 하위 먼저) · 입력 필요 남은 고른 것 = 그 줄만 막힘(고정 줄로 남음) + - [x] 785-5 Make · Router · Judge — sub1 + - 검증완료 — test_642_5 2 · 707_7 · 777_1 · 778_4 · 642_1 · 642_2 · 642_3 88 통과 · 옛 길 hopyo 시험 211 통과(낡은 넷 고침) · 8001 일반 계정 북부청 사본 xls: 블록 풀이 저장본 5 s · 예시 1 GC001140 품 같음 94,227 = 엑셀 · 예시 2 GC000206 · 207 품 같음 · 예시 3 GC000211 높이감률 · 구멍땜 입력 필요 → 0 · 노무 38,290(엑셀 38,291 · 끝수) · 옮기기 SC 둘 · 제2호표 금액 494,165 = 엑셀 · 만든 것 지움 · 커밋 a22af84b6 (검증 대기) + - 이음(785-6 화면 · sub3): 새 `Hopyo_JudgeApi.ts`(785-5 길 다섯 타입 · `readJudge` · `readJudgeOne` · `readJudgeBlock` · `checkJudge` · `moveJudge`) · 새 `logic/Hopyo_Picks.ts`(고름 캐시 `{호표 {번: {차례: {고른 [고른 것 + 필요?], 확인, 배?}}}, 블록 {번: 같은 꼴}}` · sessionStorage 열쇠 `m02-hopyo-judge:{층}:{주인}:{키}` · `moveBody` = 확인한 것만 · 입력 필요 남은 줄 막음) · 새 `Hopyo_Rows.ts` `createJudgeRows({host, scope, key, target, no, onSheet})`(시트 아래 `[data-hopyo-lines]` 에 꽂음) · `createJudgeMove`(오른쪽 판 아래 [옮기기]) · 새 `Hopyo_Block.ts` `createJudgeBlock`(단가산출 탭 줄 판) · 화면이 길에서 더 읽는 칸 = 줄 판 줄 `이름 · 규격 · 단위 · 단가(엑셀)` · 블록 `금액(엑셀)` · 절 `몫`(없으면 비워 보임) · 칠 = `Marks` 가 `M02_Hopyo_Make.judged(folder, key) → {번: {판정, 고를수}} | None`(셈 전 None · 블록 풀이 파생 저장본 · 785-5 몫) 만 부름 · 목록 블록 줄 `판정 · 고를수` + - [x] 785-6 판정 화면 — 줄 판 · 블록 판 · 고름 캐시 · [확인] · [옮기기] · 칠(sub3) + - 검증완료 — test_642_6 12 · 관련 시험 63 통과 · typecheck 0 · 일반 계정 개인 층 북부청 사본(headless + ORCA): 제1호표 줄 판 6 줄 칩 · 예시1 GC001140 다섯 칸 94,227 = 엑셀 · 입력 필요 0 · 예시2 기초 둘 · 맡은 절 둘 · 구분 엇갈림 → 토목 → 품 같음 · 예시3 GC000211 입력 필요 2 → 0 → 노무 38,290(엑셀 38,291 · 일위대가 줄 끝수 버림 1 원) · [확인] → [옮기기] 일위대가 2(새 1 · 이미 옮김 409 물음 → 덮음 1) · 단산48 → SK · 칠 초록 · 밝음 · 어두움 · 1366 · 390 · 만든 SC · SK · HP 지움 · 장부 되돌림 (검증 대기) +- [x] 785-7(642-7) 지움 · 시험 정리 → 검증(요구서_642 5장) + - 검증완료 — 지움 Python 10 파일 3,374 줄 · TS 15 파일 3,318 줄 · CSS 194 줄 · 시험 14 파일 + 도우미 4(낡은 함수 까닭 커밋 글) · 서버 8004 import 오류 0 · hopyo · 642 · 707 · M01 Alias 시험 490 통과(실패 둘 = 621 울진소광 S1 · m02_layer_screen UI_Main — 둘 다 785-7 전부터) · typecheck 0 · 일반 계정 개인 층 사본 xls: 엑셀 + 호표 68 · 제안 98 / 줄 415 · 줄 판 6 줄 · 블록 판 · 콘솔 오류 0 · 390 줄 판 360 px · 옛 단추 0 · 끝내기로 지움(ORCA · headless) · 커밋 48848bb28 · cf4e2a033 (검증 대기) + - 이음(785-3 · sub3): 새 `M02_Hopyo_Row` — `SHEETS`(사전 시트) · `lexicon(sheets)` → 엑셀 사전 `{꼴, 줄 [{갈래, 이름, 규격, 단위, 단가, 시트, 행, 코드?, 후보 [고른 것]}]}`(올림 때 Book `사전` 에 두는 한 줄 = 785-1/785-5 몫) · `rows(book, folder, doc?)` → `{호표 번: [줄 판]}` · 줄 판 `{차례, 행, 갈래 [..], 근거, 번?, 후보 [고른 것], 판정 제안 있음|2차 필요|후보 여럿|후보 없음, 수량 {엑셀, 배, 갈래}}` · 고른 것 `{갈래 기초|단가산출|일위대가|인력|재료|유가|기계|율|고정, 키, 이름, 규격, 단위, 단가?, 입력값, 출처, 몫, 비목?, 기준?, 별도계상?, 층?, 주인?}` · 장부 짝 = 고른 것 꼴도 읽음(옛 `{로직|자재}` 그대로) · 고정 줄 `이음.유가 = MO`(묶음 재료) · 자재 목록 MO 됨 · `factor` = Row 로 옮김(Match 는 부름만). + - [x] 785-3 Row · MO(sub3) — 검증완료 — 북부청 415 줄 1차 = 단산 268 · 일위 1 · 별도계상 64 · 재료 78 · 기계 3 · 율 1(판정 2차 필요 268) · 사방 201 · 거창 68 갈래 하나 100 % · 사전 노임 19/19 LB · 경유 MO · MO 고정 셈 1,846.39 · 율 TS 거울 같음 · test_642_3 10 · 관련 시험 55 통과 · typecheck 0 · ORCA 찾아 넣기 유가 줄 → 고정 줄 이음 확인(만든 SC 지움)