08:00 - 다이제스트 프롬프트 표준화 & Notebook LM Sources 100% 보장
Problem: Contents Hub 다이제스트 형식이 혼재(대화체 vs 구조화)되고, AI가 Notebook LM Sources 섹션을 지속적으로 누락하는 문제 발생.
Solution:
- 최근 5개 다이제스트 분석 → 표준 6단계 형식 수립 (SUBJECT → 한 줄 요약 → 에디터 노트 → 오늘의 픽 → 더 보기 → Notebook LM Sources)
- AI 실패 대비 후처리 fallback 구현 — AI/ML 키워드(ai, ml, llm, agent 등)로 URL 자동 선별, 플랫폼별 최소 1개/최대 3개 선정
_strip_notebook_section()비활성화 → 이메일 본문에도 섹션 유지
Result: 프롬프트 강화 + 후처리 fallback으로 Notebook LM Sources 100% 보장, v1.0.18 배포 완료.
08:05 - 개발 워크플로우 개선 & Git 정리
Problem:
- 배포 전 Git commit 누락 사건 (v1.0.18)
- 로컬 서버 실행 중 배포 → 중복 다이제스트 메일 발송
- Untracked 파일 7개 방치
Solution:
- CLAUDE.md에 명확한 순서 추가: 개발 → 커밋 → 로컬서버중지 → 배포 → 원격테스트
- 배포 체크리스트 문서화 (5단계)
- Untracked 파일 정리:
- 커밋:
crawl_longblack_urls.py,test_new_prompt.py,notebook-sources/(가치 있는 유틸리티) - 삭제:
test_new_prompt_result.md,docs/prompt.txt,docs/blog-*.md(임시/중복 파일)
- 커밋:
Result: 워크플로우 문서화 완료, Git 저장소 깔끔하게 정리 (untracked 0개), 향후 배포 실수 방지.
08:16 - Longblack 쿠키 갱신
Problem: Longblack 쿠키 만료 알림 도착 — "Please re-login to continue crawling"
Solution:
- 로컬에서
longblack_login.py실행 → 브라우저 로그인 → 쿠키 저장 (4.1K) - 쿠키 파일을 운영 서버로 복사 (
scp) - Docker 컨테이너 재시작 → Health check 확인 (server/db/redis 모두 OK)
Result: Longblack 구독 재개, 다음 크롤링(10:00 KST)부터 정상 수집. 현재 128개 콘텐츠 누적 중.
08:25 - 세션 작업 정리 & 블로그 발행
Problem: 이번 세션에서 진행한 4가지 개선 작업(다이제스트 개선, 워크플로우 정비, Git 정리, 쿠키 갱신)을 체계적으로 정리하고 공유할 필요.
Solution:
- Sparks
/spark blog명령으로 블로그 글 작성 프로세스 시작 - 제목 선택: "Contents Hub 운영 안정화 작업기"
- Claude가 2,100자 분량 글 작성 — 배경, 4가지 개선 작업, 4가지 교훈, 다음 단계 정리
- README.md 업데이트 + Git commit & push
Result: 블로그 글 발행 완료. 이번 세션의 핵심 개선사항과 교훈이 모두 문서화되어 향후 참조 가능. 특히 "AI는 100% 신뢰할 수 없다", "체크리스트는 실수를 막는다" 같은 교훈 추출.
08:35 - 시크릿 백업/복구 파이프라인 E2E 테스트
Problem: /secrets backup과 /secrets restore 커맨드가 설계만 완료되고 실제 테스트를 한 번도 하지 않은 상태. rclone gdrive remote도 미설정.
Solution:
- rclone gdrive remote 설정 —
rclone config create+ Google OAuth 브라우저 인증 - 전체 백업 실행:
secrets-index.md에서 18개 파일 경로 추출- 14개 파일 스테이징 성공, 3개 건너뜀 (church-finance .env 없음, gdrive-token.json 없음)
manifest.json생성 (원본 경로 매핑)- tar 압축 (14KB) → gpg AES-256 암호화 → Google Drive 업로드
- 복구 테스트 실행:
- Drive에서 다운로드 → gpg 복호화 → tar 해제
manifest.json기반 14개 파일 전부 diff 비교 — 14/14 원본과 동일 확인- 임시 디렉토리 정리
- 1password 프로젝트 git init + initial commit (6 files)
- 블로그 작성: "시크릿 백업 파이프라인: gpg + rclone으로 Google Drive에 암호화 백업하기"
Result: 백업/복구 파이프라인 전 구간 검증 완료. gpg 비대화형 모드(--batch --passphrase)로 Claude Code 내에서도 직접 실행 가능 확인. 실사용 시 안전한 패스프레이즈로 교체 필요.