Commit Graph

5 Commits

Author SHA1 Message Date
ttipo 4c049d2fec feat(backend): AI 코스 평가 실행기와 후보 스냅샷, 기준선 결과 추가
CI / Backend (lint · test · e2e · build) (pull_request) Successful in 12m46s
CI / Frontend (lint · type-check · test) (pull_request) Successful in 11m26s
CI / 에러 코드 SSOT 동기화 검사 (pull_request) Successful in 11m28s
CI / Frontend (lint · type-check · test) (push) Has been cancelled
CI / 에러 코드 SSOT 동기화 검사 (push) Has been cancelled
CI / Backend (lint · test · e2e · build) (push) Has been cancelled
모델과 effort 를 정하려면 같은 후보로 평가셋 62개를 돌려 목표(설계 §9)와 견줄 도구가 필요했다.
평가가 서버와 다른 길을 돌면 결과를 믿을 수 없어서, 파이프라인의 'AI 초안 → 시간표 → 다시 부르기'를
course-planning.ts 로 떼어 파이프라인 · ai:check · ai:eval 이 같은 함수를 쓰게 했다.

Haiku 5.5 와 Sonnet 5.5 기준선을 재 보니 자동 채점 실패의 3분의 2가 시간표 코드가 식당을
식사 시간대로 밀지 않아서였다. 모델 결정은 그 고치기와 프롬프트 v2 뒤로 미룬다(설계 §9.1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 22:42:42 +09:00
ttipo f752bf28f5 fix(backend): 계절별 영업시간을 날짜의 달로 골라 영업 중 표시를 바로잡음
CI / Backend (lint · test · e2e · build) (pull_request) Successful in 12m4s
CI / Frontend (lint · type-check · test) (pull_request) Successful in 14m24s
CI / 에러 코드 SSOT 동기화 검사 (pull_request) Successful in 12m14s
CI / Backend (lint · test · e2e · build) (push) Successful in 12m25s
CI / Frontend (lint · type-check · test) (push) Successful in 11m3s
CI / 에러 코드 SSOT 동기화 검사 (push) Successful in 11m25s
하절기·동절기처럼 계절마다 시간표가 다른 곳을 어느 계절인지 모른 채 읽고 있었다.
23곳은 영업 중인지 판단하지 못해 '영업시간 미확인'으로 나왔고(대구미술관·수창청춘맨숀·향촌문화관 등),
7곳은 두 계절 시간을 합쳐 읽어 닫혀 있는 시각에도 영업 중으로 보였다
(대구수목원 9~4월 아침 8시, 달성 한일우호관 11~2월 17시, 상주식당 12~3월 휴업 등).
영업시간 미확인은 AI 코스가 문화시설·식당·카페를 후보에서 빼는 기준이기도 하다(설계 §3.3).

시간표를 계절별로 따로 두고(seasons) 그날 날짜의 달에 맞는 것을 고른다. isOpenAt 은 요일 대신
날짜를 받는다. 시기별 쉬는 요일(restSeasons)과 문을 열지 않는 기간(closedPeriods)도 따로 읽는다.
달 없이 "하절기/동절기"만 적은 곳은 하절기 4~9월·동절기 12~2월만 확실하다고 보고, 3·10·11월에는
두 시간표의 답이 같을 때만 판단한다. 대구 원문의 계절 범위가 기관마다 3~10월·4~11월 등으로 달라서다.

개발 DB 1,117곳을 이전 파서와 비교(2026년 달마다 7일 × 30분)해 30곳의 판단이 바뀌었다.
닫힘에서 영업 중으로, 판단에서 미확인으로 바뀐 곳은 없고, 계절과 상관없는 곳의 해석도 그대로다.
이전 형식으로 저장된 계절 구분 값은 reparse-hours 로 다시 해석하기 전까지 지금처럼 미확인이다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 08:12:29 +09:00
ttipo 542732257c docs: AI 평가셋 검토 결과를 적고 확정함
CI / Backend (lint · test · e2e · build) (pull_request) Successful in 12m24s
CI / Frontend (lint · type-check · test) (push) Successful in 11m26s
CI / 에러 코드 SSOT 동기화 검사 (push) Successful in 12m36s
CI / Frontend (lint · type-check · test) (pull_request) Successful in 11m15s
CI / 에러 코드 SSOT 동기화 검사 (pull_request) Successful in 11m51s
CI / Backend (lint · test · e2e · build) (push) Successful in 12m12s
반려동물·경계 사례를 검토하며 정한 정책을 평가셋 README 와 설계 §9 에 남긴다.
요청의 핵심을 맞출 후보가 없으면 다른 곳으로 채우지 않고 만들지 않으며, 일부만 못 맞추면 맞출 수 있는 만큼
만들고 알린다. '돈 안 쓰는 코스'는 식당·카페를 뺀다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:37:29 +09:00
ttipo a15bc9982b docs: AI 평가셋을 대구판(v2)으로 옮김
CI / Backend (lint · test · e2e · build) (pull_request) Successful in 12m17s
CI / 에러 코드 SSOT 동기화 검사 (pull_request) Has been cancelled
CI / Frontend (lint · type-check · test) (pull_request) Has been cancelled
v1 은 62개 중 60개가 서울·부산·제주 등 대구 밖 지역이라 장소 DB(대구)로는 돌릴 수 없었다.
지역을 대구 동네(도심·수성못·앞산)와 대표 장소로, 날짜를 2026-11-05 기준으로 바꿨다.
사례마다 확인한 조건(conditions)과 문장에서 뽑을 항목(inferred)을 적어 조건 해석도 채점한다.

개발 DB 로 사례마다 거른 뒤 후보가 남는지 확인했다. 그때 본 데이터 사정 — 반려 동반이 확인된 실내 장소 0곳,
전통시장은 큐레이션해야 AI 후보, 11월 대구 축제 없음, 계절별 시간표는 미확인 — 을 README 에 적었다.
v1 은 지역을 넓힐 때 다시 쓰려고 남긴다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:23:16 +09:00
ttipo 5535ba19ed docs: AI 코스 추천 평가셋 초안 추가
AI 코스 생성 품질을 프롬프트·모델을 바꿀 때마다 같은 기준으로 재기 위한
62개 사례(데이트·축제·반려동물·카카오 데이터 경계·날씨·예외 입력)와
사례별 확인 항목·기대 동작이다. 대구 사례는 아직 넣지 않았다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:53:25 +09:00