From 949db1aa18add530062c81963e43aa2028905b33 Mon Sep 17 00:00:00 2001 From: Msystech Date: Wed, 19 Aug 2026 13:00:37 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=201?= =?UTF-8?q?=EC=B0=A8=20=EA=B2=B0=EA=B3=BC=EB=A5=BC=20=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=EC=86=8C=EB=A1=9C=20=EC=98=AE=EA=B8=B4=EB=8B=A4=20=E2=80=94=20?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=EC=9D=B4=2010=EA=B1=B4=EC=9D=84=20=EB=B0=98?= =?UTF-8?q?=EB=B0=95=ED=96=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 오케스트레이션으로 레거시 본문을 병렬로 읽고 각 매핑을 다른 에이전트가 반박하도록 시킨 결과. 에이전트 11개, 103만 토큰, 도구 299회. 내 컨텍스트는 거의 쓰지 않았다 — 오케스트레이션을 쓴 이유가 그것이다. ok 94 / wrong 10 / unsure 1, 고유 태그 84종 검증을 "통과시키는" 임무로 줬다면 wrong 10건이 그대로 코드에 들어갔을 것이다. 이 세션에서 당한 사고가 전부 "확인 없이 넣은 것"이었다. ## 이번 배치는 환자 태그가 아니다 대부분 ETC_ 계열(시각·로그인 사용자)이고, 상당수는 SessionTagResolver 가 이미 처리하고 있을 수 있다. 통합 전에 중복을 걸러야 한다 — 그대로 넣으면 같은 태그를 두 곳에서 처리하게 된다. ## 건진 것 - ETC_건강보험증번호_Refer 는 죽은 코드다(본문 전체가 주석, Return "" 하나). - ETC_현재일시_MaskBox 는 마스크 때문에 일과 시가 붙는다(2026-08-1914:30). - ETC_로그인_원내연락처 의 컬럼은 UIDOFFTEL 대문자다(형제는 파스칼). - 검증이 기존 SheetMe 코드의 차이도 잡았다 — 레거시는 GetAdpDtm 앞 8자, SheetMe 는 SYSDATE 로 사용자 유효기간을 본다. 배치 6개 중 1개는 API 521 로 미실행이라 재실행이 필요하다. 문서만 변경. 게이트는 앞 커밋 상태 그대로다. Co-Authored-By: Claude Opus 5 --- docs/WORKFLOW-CTX-ROUND1.md | 145 ++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 docs/WORKFLOW-CTX-ROUND1.md diff --git a/docs/WORKFLOW-CTX-ROUND1.md b/docs/WORKFLOW-CTX-ROUND1.md new file mode 100644 index 0000000..0102c71 --- /dev/null +++ b/docs/WORKFLOW-CTX-ROUND1.md @@ -0,0 +1,145 @@ +# 워크플로 1차 결과 — CTX 태그 검증 + +오케스트레이션(에이전트 11, 103만 토큰, 도구 299회)으로 레거시 본문을 병렬로 읽고, +각 매핑을 다른 에이전트가 반박하게 한 결과다. + +| 판정 | 수 | +| --- | --- | +| ok | 94 | +| wrong | 10 | +| unsure | 1 | + +고유 태그 84종. 배치 6개 중 1개(읽기:2)는 API 521 로 실패해 미실행이다 — 재실행이 필요하다. + +## 검증이 실제로 반박했다 + +wrong 10건. 검증을 "통과시키는" 임무로 줬다면 그대로 코드에 들어갔을 것이다. + +## 이번 배치의 성격 + +대부분 `ETC_` 계열(시각·로그인 사용자)이라 환자 태그가 아니다. +상당수는 `SessionTagResolver` 가 이미 처리하고 있을 수 있다 — +통합 전에 `TagPreviewCatalog` 와 대조해 중복을 걸러야 한다. + +## 건진 것 중 눈에 띄는 것 + +- `ETC_건강보험증번호_Refer` 는 죽은 코드다. 본문 전체가 주석이고 실행문은 `Return ""` 하나뿐. +- `ETC_현재일시_MaskBox` 는 마스크가 `9999-99-9999:99` 라 일과 시가 붙는다(`2026-08-1914:30`). 오타처럼 보이지만 레거시 동작이다. +- `ETC_로그인_원내연락처` 의 컬럼명은 `UIDOFFTEL` 대문자다(형제 태그는 파스칼 `UidMblPhn`). +- `ETC_로그인사용자_서명` 은 서버에서 이미지 파일을 내려받는다 — `needs-lookup` 으로 격리. +- 검증이 기존 SheetMe 코드의 차이도 잡았다: 레거시는 로그인 사용자 조회에 `GetAdpDtm` 앞 8자를 쓰는데 SheetMe 는 `SYSDATE` 를 쓴다 — 같은 행이라도 기준일이 다르다. + +## 다음 단계 + +1. 실패한 배치(읽기:2) 재실행 +2. ok 94건에서 `SessionTagResolver` 가 이미 처리하는 것 제외 +3. 남은 것 통합 후 게이트(--edit-smoke 이름 검사 · --db-patient · md5) + +## 판정 표 + +| 판정 | 태그 | kind | row | column | +| --- | --- | --- | --- | --- | +| ok | `ETC_건강보험증번호_Refer` | - | - | - | +| ok | `ETC_건강보험증번호_Refer` | computed | - | - | +| ok | `ETC_로그인_사용자ID_사용자명` | - | - | - | +| ok | `ETC_로그인_사용자ID_사용자명` | computed | - | UidCod,UidNam | +| ok | `ETC_로그인_사용자ID` | - | - | - | +| ok | `ETC_로그인_사용자ID` | context-scalar | - | UidCod | +| ok | `ETC_로그인_사용자명` | - | - | - | +| ok | `ETC_로그인_사용자명` | context-scalar | - | UidNam | +| ok | `ETC_로그인_사용자연락처` | - | - | - | +| ok | `ETC_로그인_사용자연락처` | context-scalar | - | UidMblPhn | +| ok | `ETC_로그인_원내연락처` | - | - | - | +| ok | `ETC_로그인사용자_서명` | - | - | - | +| ok | `ETC_로그인사용자_서명` | needs-lookup | - | UidImgPth | +| ok | `ETC_현재년도` | - | - | - | +| ok | `ETC_현재년도` | formatted | - | - | +| ok | `ETC_현재시간` | - | - | - | +| ok | `ETC_현재시간` | formatted | - | - | +| ok | `ETC_현재일시_1_년` | - | - | - | +| ok | `ETC_현재일시_1_년` | formatted | - | - | +| ok | `ETC_현재일시_2_월` | - | - | - | +| ok | `ETC_현재일시_2_월` | formatted | - | - | +| ok | `ETC_현재일시_3_일` | - | - | - | +| ok | `ETC_현재일시_3_일` | formatted | - | - | +| ok | `ETC_현재일시_4_몇시` | - | - | - | +| ok | `ETC_현재일시_4_몇시` | formatted | - | - | +| ok | `ETC_현재일시_5_몇분` | - | - | - | +| ok | `ETC_현재일시_5_몇분` | formatted | - | - | +| ok | `ETC_현재일시_MaskBox` | - | - | - | +| ok | `ETC_현재일시_MaskBox` | formatted | - | - | +| ok | `ETC_현재일시` | - | - | - | +| ok | `ETC_현재일시` | formatted | - | - | +| ok | `ETC_현재일자_영문` | - | - | - | +| ok | `ETC_현재일자_영문` | formatted | - | - | +| ok | `ETC_현재일자` | - | - | - | +| ok | `ETC_현재일자` | formatted | - | - | +| ok | `OCM_OPNAME` | - | - | - | +| ok | `OCM_OPNAME` | needs-lookup | - | OPNAME | +| ok | `OCM_OPRCODNAM` | needs-lookup | - | OPRCODNAM | +| ok | `OCM_병동` | needs-lookup | CowInf | CowWadCod | +| ok | `OCM_병실베드` | needs-lookup | CowInf | CowBedCod | +| ok | `OCM_부상병POA_Refer` | needs-lookup | - | OkdPoaTyp | +| ok | `OCM_부상병명_Refer` | needs-lookup | - | KcdKorNam | +| ok | `OCM_부상병코드_Refer` | needs-lookup | - | KcdElcCod | +| ok | `OCM_부상병코드` | needs-lookup | - | KcdElcCod | +| ok | `OCM_상병명_가로_Refer` | needs-lookup | - | KcdKorNam + OkdCfmSus | +| ok | `OCM_상병명_영어_가로_Refer` | needs-lookup | - | KcdEngNam | +| ok | `OCM_상병명_영어_가로` | needs-lookup | - | KcdEngNam | +| ok | `OCM_상병명_영어_세로_Refer` | needs-lookup | - | KcdEngNam | +| ok | `OCM_상병명_영어_세로` | needs-lookup | - | KcdEngNam | +| ok | `OCM_상병코드_가로_Refer` | needs-lookup | - | KcdElcCod | +| ok | `OCM_상병코드_가로` | needs-lookup | - | KcdElcCod | +| ok | `OCM_상병코드_세로_Refer` | needs-lookup | - | KcdElcCod | +| ok | `OCM_상병코드_세로` | needs-lookup | - | KcdElcCod | +| ok | `OCM_수술_OprPatETC` | needs-lookup | - | OprPatEtc | +| ok | `OCM_수술부위` | needs-lookup | - | OprRegionName | +| ok | `OCM_수술일자_Refer` | computed | - | - | +| ok | `OCM_심사_부상병명` | needs-lookup | - | - | +| ok | `OCM_심사_부상병코드` | needs-lookup | - | - | +| ok | `OCM_심사_주상병명` | needs-lookup | - | - | +| ok | `OCM_심사_주상병코드` | needs-lookup | - | - | +| ok | `OCM_외래내원일시_Refer` | formatted | ComInf | ComAcpDtm | +| ok | `OCM_외래내원일시` | formatted | ComInf | ComAcpDtm | +| ok | `OCM_외래내원일자_Refer` | formatted | ComInf | ComAcpDtm | +| ok | `OCM_외래내원일자_영문` | formatted | ComInf | ComAcpDtm | +| ok | `OCM_의사퇴원예고일시` | computed | ComInf | ComSchLev | +| ok | `OCM_입실시간` | formatted | ComInf | ComTrsDtm | +| ok | `OCM_입원내원일시_Refer` | formatted | ComInf | ComAcpDtm | +| ok | `OCM_입원시간_Refer` | computed | ComInf | ComAcpDtm | +| ok | `OCM_입원일시_Refer` | computed | ComInf | ComAcpDtm | +| ok | `OCM_입원전환일시_Refer` | formatted | ComInf | ComTrsDtm | +| ok | `OCM_입원전환일자_Refer` | formatted | ComInf | ComTrsDtm | +| ok | `OCM_입통원구분_입원` | computed | ComInf | ComPatTyp | +| ok | `OCM_입통원구분_통원_Refer` | computed | ComInf | ComPatTyp | +| ok | `OCM_입통원구분_통원` | computed | ComInf | ComPatTyp | +| ok | `OCM_적용진료의사` | needs-lookup | - | - | +| ok | `OCM_전과일시` | formatted | CodInf | CodStrDtm | +| ok | `OCM_전과일자` | formatted | CodInf | CodStrDtm | +| ok | `OCM_주상병POA_Refer` | needs-lookup | - | - | +| ok | `OCM_주상병POA` | needs-lookup | - | - | +| ok | `OCM_주상병명_Refer` | needs-lookup | - | - | +| ok | `OCM_주상병명_영어_Refer` | needs-lookup | - | - | +| ok | `OCM_주상병명_영어` | needs-lookup | - | - | +| ok | `OCM_주상병일자_Refer` | needs-lookup | - | - | +| ok | `OCM_주상병일자` | needs-lookup | - | - | +| ok | `OCM_주상병코드_Refer` | needs-lookup | - | - | +| ok | `OCM_주상병특정기호_Refer` | needs-lookup | - | - | +| ok | `OCM_주상병특정기호` | needs-lookup | - | - | +| ok | `OCM_진단구분_상병명` | needs-lookup | - | - | +| ok | `OCM_진단구분_상병코드_상병명_Refer` | needs-lookup | - | - | +| ok | `OCM_진단구분_상병코드_상병명` | needs-lookup | - | - | +| ok | `OCM_진단서의사_영문_Refer` | needs-lookup | - | - | +| ok | `OCM_진단서의사_영문` | needs-lookup | - | - | +| ok | `OCM_진단서의사면허번호_Refer` | needs-lookup | - | - | +| ok | `OCM_진단서의사면허번호` | needs-lookup | - | - | +| unsure | `ETC_로그인_원내연락처` | context-scalar | - | UIDOFFTEL | +| wrong | `OCM_DX` | needs-lookup | - | DX | +| wrong | `OCM_OPRCODNAM` | needs-lookup | - | OPRCODNAM | +| wrong | `OCM_부상병POA` | needs-lookup | - | OkdPoaTyp | +| wrong | `OCM_상병명_가로` | needs-lookup | - | KcdKorNam + OkdCfmSus | +| wrong | `OCM_수술상병` | needs-lookup | - | OkdNam | +| wrong | `OCM_수술주상병` | needs-lookup | - | - | +| wrong | `OCM_수술집도의` | needs-lookup | - | - | +| wrong | `OCM_입통원구분_입원_Refer` | computed | ComInf | ComPatTyp | +| wrong | `OCM_전과` | needs-lookup | - | - |