docs: finalize calendar holiday control details

This commit is contained in:
Claude-51124 2026-03-10 22:56:31 +09:00
parent c3ef06ebc0
commit 9250e1c148

View File

@ -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. 기대효과
- 연휴/공휴일 기간의 자동 실행 충돌을 제거한다.