From 9250e1c148b0f470f0ee7081c0ebada4db64b03a Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Tue, 10 Mar 2026 22:56:31 +0900 Subject: [PATCH] docs: finalize calendar holiday control details --- ...ndar_skill_자동_휴일감지_행동제어_구축.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/journey/plans/260214_calendar_skill_자동_휴일감지_행동제어_구축.md b/journey/plans/260214_calendar_skill_자동_휴일감지_행동제어_구축.md index 9e3573c..3f07ecc 100644 --- a/journey/plans/260214_calendar_skill_자동_휴일감지_행동제어_구축.md +++ b/journey/plans/260214_calendar_skill_자동_휴일감지_행동제어_구축.md @@ -58,12 +58,16 @@ tags: [calendar, scheduler, holiday, blackout, plans] - `skill-calendar`에 `GET /api/workday/check` 엔드포인트를 추가한다. - 입력: `date`, `timezone`, `country`, `blackout_ranges`. - 출력: `is_workday`, `is_blackout`, `should_run`, `reason`. +- 응답 계약은 아래 최소 형태로 고정한다. + - `{"date":"YYYY-MM-DD","country":"KR","timezone":"Asia/Seoul","is_workday":bool,"is_blackout":bool,"should_run":bool,"reason":"holiday|blackout|workday|weekend"}` - 결과 캐시를 1일 단위로 저장해 반복 조회 부하를 줄인다. ### Phase 3: rb8001 실행 가드 - `db_loader`에서 잡 등록 시 `schedule_policy`를 실행 함수 인자로 전달한다. - 각 `_run_*_with_logging` 진입점에서 공통 가드 함수를 먼저 호출한다. - `should_run=false`면 작업 본문을 실행하지 않고 스킵 로그를 남긴다. +- 스킵 로그 최소 필드는 아래로 고정한다. + - `job_name`, `job_type`, `scheduled_at`, `policy_mode`, `date`, `country`, `timezone`, `should_run`, `reason` ### Phase 4: 운영 API/관리 UI 정합화 - `rb8001 /api/scheduler/jobs` 응답에 `schedule_policy`를 포함한다. @@ -74,6 +78,11 @@ tags: [calendar, scheduler, holiday, blackout, plans] - 단위 테스트: 휴일/평일/블랙아웃 케이스 판정 테스트. - 통합 테스트: 잡 실행 시 스킵/실행 분기 테스트. - 운영 검증: 연휴 날짜(2026-02-16~2026-02-18) `should_run=false` 확인. +- 고정 테스트 케이스: + - `2026-02-16` ~ `2026-02-18` -> `should_run=false` + - 일반 평일 1건 -> `should_run=true` + - 토요일 1건 -> `should_run=false` + - 수동 블랙아웃 날짜 1건 -> `should_run=false` ## 6. 기대효과 - 연휴/공휴일 기간의 자동 실행 충돌을 제거한다.