
Projects프로젝트cuAlign: stopping wrong tooth numbers on the servercuAlign 보완: 잘못된 치아 번호를 서버에서 막기
cuAlign: stopping wrong tooth numbers on the servercuAlign 보완: 잘못된 치아 번호를 서버에서 막기
A fix after a team hackathon: approval is blocked when the plan doesn't match the request.팀 해커톤이 끝난 뒤 보완했습니다. 계획이 요청과 다르면 승인을 막습니다.
What was wrong.문제
cuAlign drafts a tooth-movement plan from a dentist's words. It began as a team hackathon project and did not pass the preliminary round. Afterwards, we fixed one flaw on our own: the AI model mixed up tooth-numbering systems and fixed a tooth other than the requested #13 — and the plan still passed every automatic check.cuAlign은 치과의사가 말로 설명하면 치아 이동 계획 초안을 만들어 주는 팀 해커톤 프로젝트로, 예선은 통과하지 못했습니다. 이후 결함 하나를 자체적으로 고쳤습니다. AI 모델이 치아 번호 체계를 헷갈려 요청한 13번 대신 다른 치아를 고정했는데, 이런 계획도 자동 검사를 모두 통과하고 있었습니다.
What we built만든 것
- Moved tooth-number conversion from the model to the server.치아 번호 변환을 모델이 아닌 서버가 맡도록 옮겼습니다.
- Compared the request text with the plan's conditions, and blocked approval when they differ.요청 문장과 계획의 조건을 서로 맞춰 보고, 다르면 승인을 막습니다.
- Approval goes through only after the dentist confirms the fixed tooth on screen.치과의사가 화면에서 고정 치아를 확인해야만 승인됩니다.
Not done, a stand-in: an edit of existing real screenshots · recorded replay, internal test · the original needs an outside API key, so it wasn't re-run미완료 · 대체(기존 실제 캡처 편집) · 녹화 재생 · 내부 시험 · 원본 실행에 바깥 API 키가 필요해 다시 돌리지 않음


Result.결과
- 01
Before: a tooth other than #13 was fixed, yet the plan passed every in-app review (rule check, automated review, safety guard) and was approved. Measured with the new checks, 5 items failed.보완 전에는 13번이 아닌 치아가 고정됐는데도 앱의 검토(규칙 검사·자동 검토·안전 장치)를 모두 통과해 승인됐습니다. 새로 만든 검사 기준으로는 5개 항목이 실패하는 상태였습니다.
- 02
After: all 18 new checks — including whether #13 is the tooth that's fixed — passed in each of 3 runs.보완 후에는 13번 치아가 제대로 고정됐는지를 포함한 새 검사 18개 항목을 3번 돌려, 매번 모두 통과했습니다.
- 03
Sending a mismatched number on purpose gets caught by the request check, and approval is blocked.일부러 요청과 다른 번호를 보내면 요청 대조 단계에서 걸러져 승인되지 않습니다.
Limits & next한계와 다음 단계
- Did not pass the preliminary round · internal test · not checked on the real model예선 탈락 · 내부 시험 · 실제 모델 미검증
- Team hackathon project · fixed after the preliminary round · internal test팀 해커톤 프로젝트 · 예선 탈락 뒤 보완 · 내부 시험
- Internal test under fake-model conditions. Not re-measured with real model calls after the fix; clinical validity not measured. All numbers are internal test results — no market validation yet.가짜 모델을 쓴 내부 시험입니다. 고친 뒤 실제 모델을 불러 다시 재지는 않았고, 임상적으로 타당한지도 확인하지 않았습니다. 여기 나온 숫자는 모두 내부 시험 결과이며, 시장 검증은 아직 거치지 않았습니다.