Daily Newsletter
Daily Newsletter는 로컬 우선(Local-first) 데일리 인박스 운영 파이프라인입니다. 소스 자료를 가져와 하나의 항목 Markdown으로 정규화하고, AI가 이벤트 이해/병합/선택/작성을 수행한 후 Markdown/HTML/PNG 아티팩트를 완성합니다. 소스 상태를 기록하고, 선택적으로 완성된 다이제스트를 Feishu에 전송합니다.
사용 시기
사용자가 다음을 요청할 때 이 스킬을 사용하세요:
- 데일리 AI 뉴스레터 파이프라인을 실행하거나 확인할 때
- 누락, 지연 또는 품질 저하된 소스 항목을 디버깅할 때
- Feishu 전달 또는 로컬 전송 아티팩트를 검사할 때
- 리더(reader) 대상 데일리 인박스 출력을 변경할 때
- 파이프라인 상태, 워크플로 그래프, 태스크 그래프 또는 회귀 불변 조건을 검토할 때
- 이 저장소를 공개 에이전트 스킬로 패키징할 때
이 저장소와 관련 없는 뉴스레터 카피라이팅, 일반 RSS 조언, 또는 실시간 콘텐츠 스크래핑에는 이 스킬을 사용하지 마십시오.
입력
- 저장소 루트:
daily-newsletter체크아웃 - 소스 레지스트리:
$PARKIO_HOME/_source management/sources.md - 런타임 데이터:
$PARKIO_HOME/_inbox/{raw,unprocessed,processed} - 전송 아티팩트:
$PARKIO_HOME/001_daily newsletter/ai/ - 비밀: 환경 변수 또는
$PARKIO_HOME/_secrets/* - 선택적 인증/런타임 도구: X 인증 환경 변수, YouTube 쿠키, WeWe RSS, content-toolkit, Chrome, MLX Whisper
기본 $PARKIO_HOME은 ~/park-io입니다.
워크플로
- 동작을 변경하기 전에
README.md,AGENTS.md,GOTCHAS.md를 읽으십시오. - git 상태를 확인하고 커밋되지 않은 사용자 변경 사항을 보존하십시오.
- 읽기 전용 진단을 위해, 프로덕션 명령을 다시 실행하기 전에 생성된 아티팩트와 로그부터 확인하십시오.
- 공개 검증을 위해 다음을 실행하십시오:
python3 -m pytest -q
python3 scripts/task_graph_validate.py
python3 scripts/workflow_graph_validate.py
python3 scripts/workflow_graph_dry_run.py
python3 scripts/n8n_import_diff.py
- 수동 프로덕션 실행을 위해 단계별 경로를 사용하십시오:
./fetch-all.sh
python3 stages/to_md/run.py
BATCH=$(python3 stages/coarse_filter/run.py | tail -1)
PARKIO_BATCH_ID=$BATCH python3 build-digest.py
PARKIO_BATCH_ID=$BATCH python3 stages/archive/run.py
PARKIO_BATCH_ID=$BATCH python3 finalize-local.py
python3 build-product-radar.py --date "$(date +%F)"
python3 build-daily-bundle.py --date "$(date +%F)"
python3 reader_quality.py --date "$(date +%F)"
python3 send-feishu-digest.py --date "$(date +%F)"
- 리더 대상 또는 라우팅 변경 후에는 테스트와 최소한 워크플로 그래프 검증기를 다시 실행하십시오.
출력
processed/<YY-MM-DD>/run-report.jsonprocessed/receipts/feishu/*.jsonsent/YY-MM-DD.{md,html,png}sent/deep-YY-MM-DD.{md,html,png}(딥 후보가 있을 경우)sent/product-radar-YY-MM-DD.{md,html,png}sent/daily-YY-MM-DD.{md,html,png}status.html및 운영자 가시성을 위한 소스 상태 JSON
안전
- API 키, 쿠키, Feishu 웹훅 시크릿, Telegram 토큰 또는 X 인증 값을 절대 출력하거나 커밋하지 마십시오.
- 사용자가 명시적으로 전송을 요청하거나 현재 작업이 전송 확인이 아닌 한 Feishu 또는 Telegram 메시지를 보내지 마십시오.
- 소스 실패를 "업데이트 없음"으로 숨기지 마십시오.
channel-health.py,run-report.json및 상태 아티팩트를 사용하십시오. - AI JSON 또는 최종 Markdown 구조가 실패할 경우 가짜 성공 뉴스레터를 만들지 마십시오.
- 조잡한 가비지 필터링을 제외하고, 콘텐츠 판단을 AI 프롬프트에서 결정론적 스크립트 임계값으로 옮기지 마십시오.
- Markdown과 별도로 HTML 또는 PNG를 다시 작성하지 마십시오. Markdown은 유일한 리더 대상 단일 소스입니다.
회귀 불변 조건
GOTCHAS.md가 신뢰할 수 있는 소스입니다. 가장 중요한 불변 조건은 다음과 같습니다:
- AI가 병합, 점수, 분류, 선택 및 최종 작성을 담당합니다.
- 구조적 AI 출력 실패는 실행을 중단하고 오류 아티팩트를 기록합니다.
- 딥 리드는 간략한 유니버스의 추적 가능한 하위 집합이어야 합니다.
- Product Radar는 별도의 제품 트랙이며 데일리 우산 아래에 링크됩니다.
- 소스 상태는 상태/실행-보고서/알림에 남아 있으며, 소비자 다이제스트 본문 안에는 포함되지 않습니다.