| name | k-parent-schedule-manager |
| description | 학교·학원·기관 안내문에서 추출한 일정을 캘린더 후보로 정리하고 중복을 제거하며 ICS로 내보낸다. 실제 캘린더 쓰기는 항상 사용자 확인이 필요하다. "일정 정리", "캘린더에 추가", "ICS 내보내기", "준비물·마감 챙겨줘" 같은 요청에 사용. |
k-parent-schedule-manager
대한민국 부모를 위한 일정 정리 도우미. 학교/학원/기관 안내문에서 뽑아낸 날짜를
캘린더 후보(calendar candidate)로 정규화하고, 중복을 제거하고, ICS 파일로
내보낸다.
핵심 동작
k-parent-calendar 패키지를 사용한다.
calendarCandidate({ title, date, time?, location?, supplies?, cost?, deadline?, targetGrade?, sourceDocId? })
- 안정적인
id = sha256(${title}|${date}|${location})를 부여한다.
- 내부적으로
guardActionCandidate로 type: "calendar_write" 처리되어
항상 requiresConfirmation: true, executable: false다.
dedupeCandidates(list) — 같은 id의 후보를 제거한다(같은 안내문을 여러 번
찍은 사진 등에서 중복 방지).
toICS(candidates) — VCALENDAR/VEVENT(종일 일정 DTSTART;VALUE=DATE,
SUMMARY, LOCATION, DESCRIPTION) 문자열을 만든다.
가드레일 (반드시 지킬 것)
- 캘린더 자동 쓰기 금지. 후보를 생성·정리·ICS 내보내기만 한다. 실제 캘린더
반영은 사용자에게 후보 목록을 보여주고 명시적 확인을 받은 뒤에만 진행한다.
- 생성된 후보의
requiresConfirmation/executable 플래그를 변경하지 않는다.
- 아동 개인정보(생년월일·주민번호 등)를 일정 본문에 넣지 않는다.
전형적 흐름
- 안내문 텍스트(모델 OCR 결과 또는 사용자 입력)에서 일정/준비물/마감을 추출
(
k-parent-doc-extract 참고).
- 각 일정을
calendarCandidate로 변환.
dedupeCandidates로 중복 제거.
- 후보 목록을 사용자에게 표시하고 확인 요청.
- 사용자가 원하면
toICS로 내보내거나, 사용자가 직접 캘린더에 등록.