Commit Graph
4432 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5 3a4823b6da perf(M01): 요소·표 저장도 흔들리는 로직만 검사 — 「어느 로직이 무엇을 보는지」 지도 (일감 33)
- 인력 한 줄 저장 7.0초 → 0.9초 · 자재품목 7.2초 → 2.0초 · 소요량 표 1.7초 ·
  자재품목 저장 뒤 목록 2.5초 → 0.45초 · 켠 뒤 첫 목록 3.4초 → 1.6초
- 로직 줄을 셀 때 `Master.get` 을 덧옷(`_Watch`)으로 감싸 그 줄이 본 자리를 모음 —
  키 · 「ID:원문번호」 · 없는 키를 물은 것까지 · 재료 고르기 줄은 자재품목 묶음 통째
- 저장은 그 지도로 흔들리는 줄만 검사(고친 키 · 고치기 전후 원문번호 · 지운 줄) ·
  요소를 고친 저장은 연결·준용 검사를 그대로 돌림
- 저장 뒤 목록은 흔들린 자리를 알려 받아(`stale(names, marks)`) 그 줄만 다시 셈 ·
  다른 창이 고친 파일이면 예전처럼 통째로 다시 셈
- 자재품목을 「구분」 으로 미리 갈라 둠(`master_material.by_class`) — 고르기 후보를
  3만 줄에서 훑지 않음 · 가른 차례는 파일 차례 그대로라 고르는 줄은 안 바뀜
- 전수 확인 — 요소·표 파일 90 개마다 줄을 통째로 비우고 로직 1,354 줄을 다시 검사,
  달라진 줄이 모두 지도 안(지도 밖 0)
- 시험 `test_m01_cache.py` 에 셋 더함(열둘) — 쓰이는 요소를 지우면 저장이 막힘 ·
  요소를 고쳐 저장한 뒤 막힘 표시가 줄마다 검사한 것과 같음 · 인력 줄을 비운 전수 대조

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 02:59:52 +09:00
eomsangdon 589403f536 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-22 02:41:27 +09:00
eomsangdonandClaude Opus 5 ef7dc80198 perf(M01): 저장 검사를 고친 줄 둘레로 좁히고 서버가 뜰 때 마스터를 미리 읽음 (일감 33)
- 저장(`POST /save`) 6.8초 → 0.8초 — 고친 줄과 그 줄을 부르던 줄만 검사
  (안 보는 줄이 부르는 키는 목록이 미리 세어 둔 것을 씀 · 돌고 도는 길은 전체 그림으로)
- 로직 줄만 고쳤으면 품셈재료 연결 · 인력 준용 검사(`check_links`)도 건너뜀
- 로직 밖 파일(요소 · 표)이 섞인 저장은 예전처럼 전부 검사 — 전체 검사는 `check_master` 몫
- 켠 뒤 첫 목록 3.4초 → 0.03초 — M01 라우터가 뜰 때 뒤에서 한 번 읽어 둠(`cache.warm`)
- 저장 전 검사(`check_saved`)를 M01 쪽(`_Store_Cache`)으로 옮김 — 좁히는 값이 있는 자리 ·
  `check_master` 가 700줄에 닿음
- 시험 `test_m01_cache.py` 에 넷 더함 — 없는 로직 키 · 없는 요소 키 · 돌고 도는 참조 ·
  다른 파일에서 그 줄을 부르던 줄이 깨짐(모두 422) · 미리 읽은 뒤 첫 목록

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 02:39:33 +09:00
eomsangdonandClaude Sonnet 5 6767b00137 knowledge(M01): 밤 작업 요약 갱신 — 새벽 화면 변화 · 빨라진 수 · 시험 100 통과 · 계수 표 셋 · 정할 것 둘 (일감 31)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 02:34:36 +09:00
eomsangdonandClaude Sonnet 5 d0d287c4be test(M01): 조합 시험이 정본 견본 조합에 안 깨지게 — 사본 조합 줄을 비워 시작 (일감 30)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 02:30:38 +09:00
eomsangdonandClaude Opus 5 3c6e68231c perf(M01): 로직·조합 목록이 마스터를 한 번만 읽고 막힘은 미리 세어 둠 (일감 32)
- `_Store_Cache` 신설 — 자국(시각·크기)이 바뀐 파일만 다시 읽음 · 목록은 검사를 돌리지 않고 세어 둔 막힘을 씀
- 요소·표가 바뀌면 모든 로직을, 로직 파일이 바뀌면 그 파일과 그 로직을 부르던 줄만 다시 셈
- 저장 뒤에는 고친 파일을 바로 다시 읽게 알려 줌 — 저장 직후 목록 2.5초 → 0.06초
- `/logics` 둘째 번부터 2.5초 → 0.02초 · `/combos` 0.3초 → 0.01초 · 켠 뒤 첫 번만 3.4초
- 시험 `test_m01_cache.py` 다섯 — 세어 둔 막힘이 줄마다 검사한 값과 같음 · 거름 그대로 · 저장 직후 비침

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 02:17:49 +09:00
eomsangdonandClaude Sonnet 5 e3e8fc15e2 feat(M01): 견본 조합 하나를 정본에 넣음 — 이름에 견본 표시 · 담은 로직 셋 · 서버 길로 저장 (일감 31)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 01:51:48 +09:00
eomsangdonandClaude Sonnet 5 3b94c5e6a5 fix(M01): 재료 처음 펼치면 자재품목 목록 바로 열림 · 좁은 화면 넓은 표 안내 한 줄 (일감 30)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 01:44:44 +09:00
eomsangdon 67cc8d291c Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-22 01:42:28 +09:00
eomsangdon b98949effd Merge remote-tracking branch 'origin/dev' into main_desktop_1 2026-09-22 01:42:25 +09:00
eomsangdon cce77d16a7 auto: 2026-09-22 01:42 (EOMSANGDON-HOME) 2026-09-22 01:42:02 +09:00
eomsangdon 5b2f678147 knowledge(M01화면): 화면 늦음 점검 — 2초 넘는 자리는 /api/m01/logics 하나
읽기 전용 점검(일감 28). 자재품목·소요량·계수·조합은 0.5~1.6초, 단가산출 로직과
로직 개선 시험만 6초대(같은 /api/m01/logics 길 — 쪽 나누기 전에 1,354줄 전부
막힘 검사 + 요청마다 마스터 전부 재색인). 그리기는 어디서도 안 느림. 고치지 않고
표·원인·제안만 기록.
2026-09-22 01:41:54 +09:00
eomsangdon 5a80dc4eb2 fix(마스터화면): 화면 글 고침 — 자재→재료·결과단위 띄어쓰기·죽은 글 지움
_검증_화면글.md 의 「사용자 확정 필요 없는 것만」 고침(브레인 판정) —
「단가산출 상세」 대 「호표」·「키」는 확정 거리라 그대로 둠.

① 자재 → 재료(LogicLab_Text.ts G_material) — 왼쪽 패널 묶음 이름과 맞춤.
② 결과단위 → 결과 단위 — Logic_Text.ts Head_Unit 뿐 아니라 화면을 열어
   실제 표 머리글로 쓰이던 Logic_List.ts COLS 하드코딩 글자도 같이 고침
   (점검 문서엔 안 적혀 있던 자리 — 화면 확인 중 찾음).
③ 죽은 글 지움 — locale_m1.ts M01_GroupTest(부르는 화면 코드 없음) ·
   Logic_Text.ts Edit_OwnOnly·Edit_Copy·Edit_Copied·Edit_CopySoon
   (API 라는 프로그래머 말 포함, 다 같은 안 쓰이는 무리 — grep 으로
   재확인 뒤 지움. 같은 이름의 로직개선시험 쪽 버튼은 살아 있어 안 건드림).

typecheck(tsc --noEmit) 전후 0건. ORCA 로 화면 열어 확인 — 4곳 다 바뀐 글
그대로 보임. 390px 확인은 ORCA CLI 에 뷰포트 폭을 바꾸는 명령이 없어 못 함
(CSS 로 흉내내면 실제 media query 가 안 걸려 참값이 아님) — ref 문서에
그 사정과 글자수 견줌(줄바꿈 위험 낮음)을 적어 둠.
2026-09-22 01:40:10 +09:00
eomsangdon 767b1ed378 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_desktop_1 2026-09-22 01:29:52 +09:00
eomsangdon 7503c85a71 auto: 2026-09-22 01:28 (ESD_LAPTOP) 2026-09-22 01:28:37 +09:00
eomsangdon 8d3e5f82f5 knowledge(마스터화면): 화면 글 점검 — 용어 뒤섞임·죽은 글·오류 안내 부족 적음
M01 문구 파일 4개(Combo·Logic·LogicLab·LogicLab_New Text.ts)와
ui_template_locale_m1.ts 를 읽어 찾음(읽기 전용, 코드·데이터 안 고침).

① 용어 뒤섞임 — 「자재」(재료 아닌 한 자리) · 「단가산출 상세」 대 「호표」(같은
표를 화면마다 다른 말로) · 안 쓰는 M01_GroupTest 가 다른 제목으로 남음.
② API 라는 프로그래머 말이 남은 죽은 글(Edit_CopySoon).
③ 「결과단위」 붙여 쓴 한 자리(다른 곳은 「결과 단위」).
④ Pill_NoPick·Pill_NoValue 가 할 일을 안 알려 줌(다른 멈춤 글은 알려 줌).
2026-09-22 01:27:03 +09:00
eomsangdon aa9a167590 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into main_laptop_1 2026-09-22 01:19:36 +09:00
eomsangdonandClaude Sonnet 5 a674b92512 knowledge(M01): 계수 1-2-4 5·6항 표 셋 올림 — 발생재 공제율 · 강관배관 부자재율(일반업무용·병원) · 본문 대조 절 전체로 복원
- CC000338~340 · 원문 수 그대로 · 쓰는 로직 없음(로직키 빈 목록) · 본문 대조 0건

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 01:18:19 +09:00
eomsangdonandClaude Sonnet 5 807124e80f knowledge(M01): 단가 빈 로직 63 갈래 정리 — 고칠 수 있는 줄 0 (일감 28)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 01:17:55 +09:00
eomsangdon 0066a5a30e Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-22 01:16:06 +09:00
eomsangdonandClaude Sonnet 5 d3f48bce11 knowledge(M01): 본문 대조 오탐 둘 정리 — 1-2-4 미올림 뒷항 제외 · 칸 안 줄바뀜 수 이어 읽기
- CC000337 결손 18 = 1-2-4 5·6항 표 미올림 · CC000074 결손 51 = 원문 규격 5,150 줄바뀜 · 본문 대조 0건

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 01:14:30 +09:00
eomsangdonandClaude Sonnet 5 bbee6118e6 knowledge(M01): 밤 작업 요약 — 사용자 아침 보고용 (일감 27)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 01:11:53 +09:00
eomsangdonandClaude Sonnet 5 db76fa1878 knowledge(M01): 변수 참조 20줄 이관 검증 — 어긋남 0 · 잡지 못하는 것 셋
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 01:07:01 +09:00
eomsangdonandClaude Sonnet 5 fb503d6b5f fix(M01): 일위대가 조합 — 첫 펼침 불러오는 중 · 늦은 답 버림 · 열어 둔 상세 기억 · 로직 상세 이동 전 확인
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 00:59:19 +09:00
eomsangdon 8c2751ca96 Merge remote-tracking branch 'origin/main_desktop_1' into sub_laptop_3 2026-09-22 00:55:48 +09:00
eomsangdon 04cd36ba19 Merge remote-tracking branch 'origin/dev' into sub_laptop_3 2026-09-22 00:55:46 +09:00
eomsangdonandClaude Sonnet 5 e31d7c75e5 knowledge(M01): 밤 작업 마감 수치 — 시험 190 통과 · 검사 · 줄 수 표
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 00:54:43 +09:00
eomsangdon db519dcbd9 fix(M01): 조합 메모·이름 검사 흠 둘 고침
메모 칸이 글자 아닌 값(수량 등)을 받아도 저장되던 것 · 이름이 글자 아니어도
저장되던 것을 막음(sub2 검증 `ref/_검증_조합.md` 일감 24). 메모는 글자·null만,
이름은 서버 400(글자 아님) + check_combo_form 422(빈 이름·60자 넘음·겹침)로
까닭과 함께 거절. _틀.md 10장 갱신 · 재현 시험 포함 4건 추가(21 통과).
2026-09-22 00:54:20 +09:00
eomsangdonandClaude Sonnet 5 c4d6ba3949 fix(M01): 일위대가 조합 — 390px 에서 담은 로직 표·미리 보기 표가 넘치던 것을 옆 스크롤로 · 사용자 경로 검증 기록
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 00:53:06 +09:00
eomsangdon 2e14beec8a Merge remote-tracking branch 'origin/sub_desktop_1' into main_desktop_1 2026-09-22 00:46:01 +09:00
eomsangdon ded5456671 feat(마스터엔진): 고르기 조건에 로직 입력 변수 허용 확인·옛 {변수} 참조 20줄 이관
엔진은 이미 됐음 — run() 이 조건 칸을 fill() 로 채우고 static() 이 검사에서 뺌.
표본으로 확인한 뒤 22줄 가운데 20줄을 고르기 조건으로 옮김(MT 19 · 고무링 1).
못 옮긴 2줄 — VR관(자재 단위 「본」 대 호표 「m」 환산 미확정) ·
커플링밴드(자재품목 표기 두 갈래라 규격으로 접속티와 못 가름).

검사 넓힘 — check_logic 이 조건 칸 {이름} 이 입력·중간인지 봄 ·
check_pick 이 구분 자체가 {입력} 이면 건너뜀(옛 코드는 「후보 0」 오탐).

앞뒤 견주기 — 시험 계산 통과 1,291 · 멈춤 63 그대로 · 금액 달라진 로직 0(1,354 전수) ·
check_master 전부 같음 · 로직의 MT 직접 참조 19 → 0 · MP 160 → 158.
2026-09-22 00:41:55 +09:00
eomsangdon 7127515d41 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-22 00:38:49 +09:00
eomsangdonandClaude Sonnet 5 9d0ecac0ae knowledge(M01): 3장 마감 전수 검증 — 어긋남 2건(줄 이름 글자)뿐
로직 1,354 전수 /text 대 /calc · 별칭 되돌리기 30개 · check_master 틀·로직 0 · 통과 1,291 멈춤 63.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-22 00:36:59 +09:00
eomsangdon 75603e3620 Merge remote-tracking branches 'origin/sub_laptop_2' and 'origin/sub_laptop_4' into sub_desktop_1 2026-09-22 00:20:41 +09:00
eomsangdonandClaude Sonnet 5 df4aa43026 knowledge(M01): 조합 마감 검증 — 메모 칸 모양 · 이름 모양 두 곳 어긋남 (일감 24)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-22 00:18:22 +09:00
eomsangdon 39ac800895 knowledge(마스터값): 관급 확정거리 모음·ref 문서 목록 새로 만듦
_확정거리_관급.md — 남은 112줄을 갈래별(소형고압블록49·KP접합부속17·
레미콘오기1·중온아스콘28·그밖13) 정리, 결정하면 몇 줄 채워지는지 수로 적음.
_목록.md — ref/ 문서 35개 한 줄 요약(잰 것·결론·열림/닫힘) 새로 만듦.
값·데이터는 안 고침.
2026-09-22 00:15:08 +09:00
eomsangdonandClaude Sonnet 5 fc6bb7240e feat(M01): 로직 개선 시험 알약에서 마스터 화면으로 잇기 · 단가 없는 재료 알약에 이유 한 마디 (PLAN 5-3 · 5-4)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 00:09:49 +09:00
eomsangdon 6cb6baabd6 Merge remote-tracking branch 'origin/sub_laptop_3' into sub_laptop_4 2026-09-22 00:03:48 +09:00
eomsangdon 6da85ca8dc Merge remote-tracking branch 'origin/dev' into sub_laptop_4 2026-09-22 00:03:47 +09:00
eomsangdonandClaude Sonnet 5 ca805b3076 fix(M01): 일위대가 조합 화면 — 계약 9장대로 맞춤 · 수량은 저장하지 않고 미리 보기 때만 보냄
- 담은 로직 줄 = {로직, 메모} 뿐 · 입력값(수량)은 화면 안 메모로만 두고 조합에 안 저장
- 서버 길 실제 이름으로 맞춤: /combo/new · /combo/edit(판본) · /combo/delete(판본) · 422 검사 글·409 낡은 판본 안내
- 미리 보기는 화면이 로직마다 부르지 않고 POST /combo/preview 한 번에 받아 비목별 합계를 찍음

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
2026-09-22 00:01:48 +09:00
eomsangdonandClaude Sonnet 5 c4a5087fb1 feat(M01): 로직 개선 시험 텍스트 수식 두 칸 — 왼쪽 변수 이름 식 · 오른쪽 값 식 · 짝 번호 줄 맞춤과 밝히기 (PLAN 5-1)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
2026-09-22 00:00:50 +09:00
eomsangdon b6b0996344 Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_1 2026-09-21 23:58:18 +09:00
eomsangdon 07e5d60435 Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-09-21 23:58:16 +09:00
eomsangdonandClaude Sonnet 5 60d67b310a knowledge(M01): 관급 남은 못 채움 정리 — 중온 아스콘 · KP 접합부속 · 그 밖 14줄 까닭 (일감 22)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-21 23:56:59 +09:00
eomsangdonandClaude Sonnet 5 f50bf7e494 fix(M01): 이름 꼴 식이 표 열쇠 별칭을 밑이름으로 풀어쓰던 흠 고침
별칭 이름이 QC001882 처럼 표 열쇠 그대로면 요소 열쇠로 읽혀 밑이름 풀어쓴 글자가 나옴. 요소 테이블(LB·EQ·MT·MP·MO)만 이름으로 풀고 그 밖은 별칭 이름 그대로.
로직 전수 1,291 — 새는 줄 0 (옛 동작과 다른 로직 196) · 값 식·계 그대로 · 시험 추가(21 통과).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
2026-09-21 23:56:03 +09:00
eomsangdon 29fad2057c Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-09-21 23:54:28 +09:00
eomsangdonandClaude Sonnet 5 82391b7f5b knowledge(M01): 관급 가까운줄 검증 반영 — 접속티 4줄 null · 제조사 표기 6줄 바로잡음 · 소형고압블록 50줄 대조 (일감 21)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
2026-09-21 23:52:36 +09:00
eomsangdon 2aeb3d4937 Merge remote-tracking branches 'origin/main_desktop_1' and 'origin/sub_desktop_1' into sub_laptop_1 2026-09-21 23:51:51 +09:00
eomsangdonandClaude Sonnet 5 a4b3e7d77a feat(M01): 일위대가 조합 마스터 — 데이터 · 엔진 · 서버 길(화면은 아직)
PLAN 4-2. 조합 = 관리자가 이름을 붙이고 단가산출 로직을 골라 담은 묶음.
마스터에는 담은 로직 목록만 두고 수량·비율·계산은 두지 않음(4-0 확정 · 계산은 프로젝트 몫).

- 새 파일 `일위대가조합.json`(빈 채 · 줄은 사용자가 화면에서 만듦) · 테이블ID `UA`
  · 원문이 없어 머리 `원문` 과 줄 `원문번호` 를 두지 않음(`mk.NO_NUMBER` 에 `UA`)
- 엔진 `scripts/master_combo.py` — 검사 넷(없는 로직 키 · 같은 로직 두 번 · 빈 조합
  · 조합이 조합을 담음) · 「이 로직을 쓰는 조합」 거꾸로 찾기 · 미리 보기 계산
- `check_master.py` 에 「조합」 갈래 더함 · 저장 전 검사(`check_saved`)에도 얹어 422 로 막음
- 서버 `M01_MasterData_Store_Combo.py` — `GET /combos`·`/combo`·`/logic/combos`
  · `POST /combo/new`·`/edit`·`/delete`·`/preview`(저장 없음)
- 조합은 요소 그룹이 아님 — `/groups` 는 여덟 그대로 두고 제 길로만 다룸
- 틀 `_틀.md` 10장 · 계약 `_화면_계약.md` 9장 · 시험 `test_m01_combo.py` 17

검증 — 견본 조합(13-4-1 · 13-4-2 · 13-2-1) 미리 보기 합계가 그 로직 셋의 시험 계산을
비목별로 더한 값과 같음 · 못 도는 줄은 그 줄만 멈추고 나머지 합계는 그대로 ·
저장 전 조합 줄로도 미리 보기 되고 아무것도 안 생김 · 검사 넷 다 422 · 낡은 판본 409 ·
정본 로직 안 바뀜 · `check_master 틀`·`조합` 0건 · pytest 44 통과(조합 17 + api 27)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaS48Nvs26o3aFUpcfJxVv
2026-09-21 23:50:42 +09:00
eomsangdon 19fa8d9765 knowledge(마스터값): 이름식·값식 짝 검증 — 로직 27개 중 어긋난 것 2건
서버 길(FastAPI TestClient, /calc·/text)만 불러 읽기 전용 검증.
줄 수·차례 짝(①)·함수글자·요소키 새나감(②)·계 합계(④)는 27개 전부 통과.
찾기() 별칭을 쓴 덧줄 비율식 2곳(GC001008·GC001017)에서 이름 식이 별칭 목록의
실제 이름(QC…) 대신 밑이름을 풀어 이은 다른 글자를 씀 — 값은 맞고 라벨만 어긋남.
2026-09-21 23:50:18 +09:00