Skip to content

πŸ”„ latest β†’ μž‘μ—… 브랜치 동기화 (git add μˆ˜μ • 반영) - #30

Merged
Kevinlee7250 merged 189 commits into
claude/blog-automation-system-KAbtEfrom
latest
Aug 25, 2026
Merged

Kevinlee7250 merged 189 commits into
claude/blog-automation-system-KAbtEfrom
latest

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

μ™œ

μ›Œν¬ν”Œλ‘œ μ •μ˜λŠ” κΈ°λ³Έ 브랜치(latest)μ—μ„œ μ½νžˆμ§€λ§Œ, image-backfill.yml의 checkout은 ref: claude/blog-automation-system-KAbtE둜 μ½”λ“œλ₯Ό μž‘μ—… λΈŒλžœμΉ˜μ—μ„œ κ°€μ Έμ˜΅λ‹ˆλ‹€. PR #29의 μˆ˜μ •(git add 문제 + dry-run μž₯수 λ‘œκΉ…)이 latestμ—λ§Œ μžˆμ–΄, μ§€κΈˆ λ‹€μ‹œ λŒλ €λ„ μ˜› μ½”λ“œκ°€ μ‹€ν–‰λ©λ‹ˆλ‹€.

μž‘μ—… λΈŒλžœμΉ˜λŠ” latest보닀 104컀밋 λ’€μ‘Œκ³ , μ•žμ„  컀밋은 0κ°œμž…λ‹ˆλ‹€ (fast-forward).

λ‚΄μš©

  • πŸ› git add 닀쀑 경둜 β†’ νŒŒμΌλ³„ 확인 (μ›Œν¬ν”Œλ‘œ 17개)
  • dry-run이 볡제 μ˜ˆμ • Nμž₯을 찍도둝
  • κ·Έ 사이 μŠ€μΌ€μ€„ 싀행이 λ§Œλ“  데이터 컀밋

πŸ€– Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

Kevinlee7250 and others added 30 commits June 2, 2026 21:10
* feat: ꡬ글 λΈ”λ‘œκ·Έ μˆ˜μ΅ν˜• μžλ™ ν¬μŠ€νŒ… μ‹œμŠ€ν…œ μΆ”κ°€

Google Trends νŠΈλ Œλ“œ 탐색 β†’ Claude AI κΈ€ 생성 β†’ Blogger API μžλ™ ν¬μŠ€νŒ…
μŠ€μΌ€μ€„λŸ¬(cron) 기반으둜 맀일 μ§€μ • μ‹œκ°„μ— SEO μ΅œμ ν™” 글을 μžλ™ λ°œν–‰

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* chore: .gitignore에 blog-automation 디렉토리 μ˜ˆμ™Έ μΆ”κ°€

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: Windows μžλ™ μ„€μΉ˜ PowerShell 슀크립트 μΆ”κ°€

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* fix: PowerShell 슀크립트 λ”°μ˜΄ν‘œ 인코딩 였λ₯˜ μˆ˜μ •

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* fix: bytes literalμ—μ„œ ν•œκΈ€ 제거 (ASCII only)

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* fix: 둜그 파일 인코딩 utf-8-sig둜 λ³€κ²½ (Windows ν•œκΈ€ 깨짐 λ°©μ§€)

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: μžλ™ ν¬μŠ€νŒ… μ‹œκ°„ μ˜€μ „8μ‹œ/μ˜€ν›„1μ‹œ/μ˜€ν›„6μ‹œ ν•˜λ£¨ 3회둜 λ³€κ²½

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: λΈ”λ‘œκ·Έ μžλ™ν™” μ›Ή λŒ€μ‹œλ³΄λ“œ μΆ”κ°€ (Flask)

포슀트 ν˜„ν™©, 둜그 λ·°μ–΄, μ¦‰μ‹œ μ‹€ν–‰ λ²„νŠΌ, μŠ€μΌ€μ€„ 확인

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: λŒ€μ‹œλ³΄λ“œ μ‹€ν–‰ μ‹œ Chrome μžλ™ μ—΄κΈ°

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: λŒ€μ‹œλ³΄λ“œ 헀더에 λΈ”λ‘œκ·Έ μ£Όμ†Œ 링크 μΆ”κ°€

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: κΈ€ 생성 ν”„λ‘¬ν”„νŠΈ κ°•ν™” - μ΅œμ‹  데이터 + ν›„ν‚Ή μš”μ†Œ λŒ€ν­ μΆ”κ°€

좩격 톡계/FOMO/λ°˜μ „ν¬μΈνŠΈ/κΈ΄κΈ‰μ„± λ“± λ°”μ΄λŸ΄ μš”μ†Œ μ˜λ¬΄ν™”
μ„Ήμ…˜ ꡬ쑰 4개둜 ν™•μž₯, λΆ„λŸ‰ 1800~2500자둜 증가
연도/μ›” μžλ™ 반영으둜 μ΅œμ‹ μ„± 확보

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: GitHub Actions μžλ™ ν¬μŠ€νŒ… μ›Œν¬ν”Œλ‘œμš° μΆ”κ°€

컴퓨터 κΊΌμ Έ μžˆμ–΄λ„ μ˜€μ „8μ‹œ/μ˜€ν›„1μ‹œ/μ˜€ν›„6μ‹œ μžλ™ μ‹€ν–‰
GitHub Secrets에 API ν‚€ μ €μž₯, 쀑볡 λ°©μ§€ νžˆμŠ€ν† λ¦¬ μœ μ§€

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

* feat: GitHub Secrets μžλ™ 등둝 슀크립트 (.envμ—μ„œ 읽어 등둝)

https://claude.ai/code/session_01DD2fupQzzx4BWodSMBJum6

---------

Co-authored-by: Claude <noreply@anthropic.com>
Kevinlee7250 and others added 25 commits August 9, 2026 20:57
GitHub은 scheduleΒ·workflow_dispatch 트리거λ₯Ό κΈ°λ³Έ 브랜치의 μ›Œν¬ν”Œλ‘œ
νŒŒμΌμ—μ„œλ§Œ μΈμ‹ν•©λ‹ˆλ‹€. 두 파일이 κΈ°λŠ₯ λΈŒλžœμΉ˜μ—λ§Œ μžˆμ–΄ μžλ™ μŠ€μΌ€μ€„μ΄
λŒμ§€ μ•Šκ³  λŒ€μ‹œλ³΄λ“œ λ²„νŠΌλ„ 404κ°€ λ‚©λ‹ˆλ‹€.

- pending-cleanup.yml: κ²€ν†  λŒ€κΈ° κΈ€ μ •λ¦¬Β·μž¬κ²€μ¦ (μ£Ό 1회)
- alert-watchdog.yml: 운영 μ•Œλ¦Ό μ›ŒμΉ˜λ… (6μ‹œκ°„λ§ˆλ‹€)

μ‹€ν–‰ μžμ²΄λŠ” κΈ°μ‘΄κ³Ό λ™μΌν•˜κ²Œ claude/blog-automation-system-KAbtEλ₯Ό
체크아웃해 μˆ˜ν–‰ν•˜λ―€λ‘œ, κΈ°λ³Έ λΈŒλžœμΉ˜μ—λŠ” 트리거 μ •μ˜λ§Œ μ˜¬λΌκ°‘λ‹ˆλ‹€.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
μŠ€μΌ€μ€„ 싀행은 κΈ°λ³Έ 브랜치의 μ›Œν¬ν”Œλ‘œ μ •μ˜λ₯Ό μ“°λŠ”λ°, μ—¬κΈ° μžˆλŠ” 사본은
`git add`에 `-f`κ°€ λΉ μ Έ μžˆμŠ΅λ‹ˆλ‹€. docs/.gitignore(npm/cli ν…œν”Œλ¦Ώ)κ°€ docs/*λ₯Ό
λ¬΄μ‹œν•˜λ―€λ‘œ 아직 μΆ”μ λ˜μ§€ μ•Šμ€ analytics_summary.json은 λ§€μ£Ό 쑰용히
μ»€λ°‹μ—μ„œ 빠쑌고, λŒ€μ‹œλ³΄λ“œ 뢄석 화면에 μ“Έ μš”μ•½ 데이터가 μ €μž₯μ†Œμ— μ—†μŠ΅λ‹ˆλ‹€.
(2026-08-17 뢄석 컀밋에도 posts.jsonκ³Ό 둜그만 λ“€μ–΄ 있음)

- git add -f 둜 κ΅μ²΄ν•˜κ³  adsense_revenue.json / adsense_rpm.json μΆ”κ°€
- 뢄석 직전 μ‹€μ œ AdSense 수읡 μˆ˜μ§‘ 단계 μΆ”κ°€ (κΆŒν•œ μ—†μœΌλ©΄ κ±΄λ„ˆλœ€)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
μŠ€μΌ€μ€„ 싀행은 κΈ°λ³Έ 브랜치의 μ›Œν¬ν”Œλ‘œ μ •μ˜λ₯Ό μ“°λ―€λ‘œ, 진단 단계가 여기에도
μžˆμ–΄μ•Ό 맀일 μ‹€ν–‰λ©λ‹ˆλ‹€.

- μ‚¬μ΄νŠΈλ§΅ 제좜 전에 gsc_diagnose.py μ‹€ν–‰ (읽기 μ „μš©)
- gsc_diagnosis.json 컀밋 λŒ€μƒ μΆ”κ°€

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
κΈ°λŠ₯ λΈŒλžœμΉ˜μ—μ„œ μ§€μ›Œλ„ κΈ°λ³Έ λΈŒλžœμΉ˜μ— 남아 있으면 workflow_dispatch둜
계속 μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 곡개 μ €μž₯μ†Œμ—μ„œ refresh_token을 κ΅ν™˜ν•΄
μ•„ν‹°νŒ©νŠΈλ‘œ μ˜¬λ¦¬λŠ” κ²½λ‘œμ΄λ―€λ‘œ μ—¬κΈ°μ„œλ„ μ œκ±°ν•©λ‹ˆλ‹€.

토큰 λ°œκΈ‰μ€ 둜컬 get_refresh_token.py둜만 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
이 λΈŒλžœμΉ˜μ— λ™κΈ°ν™”ν•œ λ’€ κΈ°λŠ₯ λΈŒλžœμΉ˜μ— index_priority.py μ‹€ν–‰ 단계가
좔가돼, κΈ°λ³Έ 브랜치 μ‚¬λ³Έμ—λ§Œ λΉ μ Έ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μŠ€μΌ€μ€„ 싀행은 κΈ°λ³Έ
브랜치 μ •μ˜λ₯Ό μ“°λ―€λ‘œ μ΄λŒ€λ‘œλ©΄ 색인 μš”μ²­ νŒ¨λ„μ΄ κ°±μ‹ λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

- python index_priority.py μ‹€ν–‰ μΆ”κ°€
- docs/data/index_priority.json 컀밋 λŒ€μƒ μΆ”κ°€

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
μ‹ κ·œ: pending-cleanup.yml, alert-watchdog.yml
μˆ˜μ •: blog-analytics.yml (git add -f + 수읡 μˆ˜μ§‘), gsc-indexing.yml (진단 + 색인 μš°μ„ μˆœμœ„)
μ‚­μ œ: get-oauth-token.yml β€” 곡개 μ €μž₯μ†Œμ—μ„œ refresh_token을 κ΅ν™˜Β·μ—…λ‘œλ“œν•˜λ˜ 경둜

κΈ°λ³Έ λΈŒλžœμΉ˜μ—λŠ” 트리거 μ •μ˜λ§Œ μ˜¬λΌκ°€λ©°, μ‹€ν–‰ λ³Έμ²΄λŠ” claude/blog-automation-system-KAbtEλ₯Ό μ²΄ν¬μ•„μ›ƒν•©λ‹ˆλ‹€.
3μ°¨ μ„Έμ…˜(08-19)이 blog-run.yml의 cron을 3νšŒβ†’1회둜 쀄이고 rotation μž‘μ„
μΆ”κ°€ν–ˆμ§€λ§Œ κΈ°λŠ₯ λΈŒλžœμΉ˜μ—λ§Œ μ˜¬λΌκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μŠ€μΌ€μ€„ 싀행은 κΈ°λ³Έ 브랜치의
μ›Œν¬ν”Œλ‘œ μ •μ˜λ₯Ό μ“°λ―€λ‘œ, 감좕은 ν•˜λ£¨λ„ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ‹€μ œ λ°œν–‰λŸ‰ (post_registry κΈ°μ€€):
  08-17 11건 / 08-18 10건 / 08-19 8건 / 08-20 3건(μ§„ν–‰ 쀑)

색인 회볡 μ „λž΅ 전체가 이 감좕을 μ „μ œλ‘œ ν•˜λŠ”λ° μ „μ œκ°€ μ„±λ¦½ν•˜μ§€ μ•Šμ€
μƒνƒœμ˜€μŠ΅λ‹ˆλ‹€. κ³Όλ‹€ λ°œν–‰μ€ "Discovered - currently not indexed"κ°€ μœ μ§€λ˜λŠ”
μ£Όμš” 원인 쀑 ν•˜λ‚˜μ΄λ―€λ‘œ, 반영이 λŠ¦μ–΄μ§ˆμˆ˜λ‘ νšŒλ³΅λ„ λŠ¦μ–΄μ§‘λ‹ˆλ‹€.

- cron 3쀄 β†’ 1쀄 (μ˜€μ „ 7μ‹œ KST)
- rotation 작: 연쀑일 % 3으둜 λ‹Ήλ²ˆ λΈ”λ‘œκ·Έ 1개만 λ°œν–‰
- μˆ˜λ™ μ‹€ν–‰(workflow_dispatch)은 κΈ°μ‘΄λŒ€λ‘œ blog_id μ§€μ • κ°€λŠ₯

latestμ—μ„œ μ‚¬λΌμ§€λŠ” 것은 cron 2쀄과 무쑰건 μ‹€ν–‰ 게이트뿐이며 그것이 κ³§
κ°μΆ•μ˜ λ‚΄μš©μž…λ‹ˆλ‹€. λ‹€λ₯Έ 변경은 λ˜λŒμ•„κ°€μ§€ μ•ŠμŒμ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
cron 3회 β†’ 1회 (μ˜€μ „ 7μ‹œ KST) + rotation 작으둜 λ‹Ήλ²ˆ λΈ”λ‘œκ·Έ 1개만 λ°œν–‰.

08-19에 κ°μΆ•ν–ˆμœΌλ‚˜ κΈ°λŠ₯ λΈŒλžœμΉ˜μ—λ§Œ μžˆμ–΄ μŠ€μΌ€μ€„μ— μ μš©λ˜μ§€ μ•Šμ•˜κ³ ,
μ‹€μ œλ‘œλŠ” ν•˜λ£¨ 8~11건이 계속 λ°œν–‰λ˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
μŠ€μΌ€μ€„ 싀행은 κΈ°λ³Έ 브랜치의 μ›Œν¬ν”Œλ‘œ μ •μ˜λ₯Ό μ“°λ―€λ‘œ 여기에도 μ˜¬λ €μ•Ό
맀일 μ‹€ν–‰λ©λ‹ˆλ‹€. μ–΄μ œ λ°œν–‰λŸ‰ 감좕이 κΈ°λŠ₯ λΈŒλžœμΉ˜μ—λ§Œ μžˆμ–΄ ν•˜λ£¨ λ„˜κ²Œ
μ μš©λ˜μ§€ μ•Šμ•˜λ˜ 것과 같은 함정을 ν”Όν•˜κΈ° μœ„ν•΄ μ¦‰μ‹œ λ°˜μ˜ν•©λ‹ˆλ‹€.

- internal_link_audit.py μ‹€ν–‰ (읽기 μ „μš© 진단)
- docs/data/internal_links.json 컀밋 λŒ€μƒ μΆ”κ°€

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
internal_link_audit.py μ‹€ν–‰ + docs/data/internal_links.json 컀밋 λŒ€μƒ μΆ”κ°€.

읽기 μ „μš© μ§„λ‹¨μœΌλ‘œ, λ“€μ–΄μ˜€λŠ” λ‚΄λΆ€ 링크가 0개인 κ³ μ•„ νŽ˜μ΄μ§€λ₯Ό 집계해
"Discovered - currently not indexed"의 원인 가섀을 숫자둜 κ²€μ¦ν•©λ‹ˆλ‹€.
μ‹ κ·œ μ›Œν¬ν”Œλ‘œλŠ” κΈ°λ³Έ λΈŒλžœμΉ˜μ— μžˆμ–΄μ•Ό scheduleΒ·workflow_dispatchκ°€
μΈμ‹λ©λ‹ˆλ‹€. μ—†μœΌλ©΄ Actions λͺ©λ‘μ— λœ¨μ§€λ„ μ•Šκ³  λŒ€μ‹œλ³΄λ“œ λ²„νŠΌμ€ 404κ°€ λ‚©λ‹ˆλ‹€.

μ‹€ν–‰ λ³Έμ²΄λŠ” claude/blog-automation-system-KAbtEλ₯Ό μ²΄ν¬μ•„μ›ƒν•˜λ―€λ‘œ
κΈ°λ³Έ λΈŒλžœμΉ˜μ—λŠ” 트리거 μ •μ˜λ§Œ μ˜¬λΌκ°‘λ‹ˆλ‹€.

- μ£Ό 1회(ν† μš”μΌ 08μ‹œ KST) μžλ™ + μˆ˜λ™ μ‹€ν–‰
- μˆ˜λ™ μ‹€ν–‰ 기본값은 미리보기 (λ°œν–‰λœ 글을 μˆ˜μ •ν•˜λŠ” μž‘μ—…)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
κ³ μ•„ νŽ˜μ΄μ§€ 175건(40.6%)에 μΈλ°”μš΄λ“œ 링크λ₯Ό λ§Œλ“œλŠ” μ›Œν¬ν”Œλ‘œ.
μ£Ό 1회 ν† μš”μΌ 08μ‹œ KST + μˆ˜λ™ μ‹€ν–‰(κΈ°λ³Έ 미리보기).

색인 해결책이 μ•„λ‹ˆλΌ μ‚¬μ΄νŠΈ ꡬ쑰상 κ°œμ„ μœΌλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€ β€”
색인 κ΅μ°¨ν‘œμ—μ„œ 링크 μžˆλŠ” 글도 λ˜‘κ°™μ΄ λ―Έμƒ‰μΈμ΄μ—ˆκ³ , ν‘œλ³Έμ΄ μ „λΆ€
미색인이라 인과λ₯Ό νŒμ •ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
μ‹ κ·œ μ›Œν¬ν”Œλ‘œλŠ” κΈ°λ³Έ λΈŒλžœμΉ˜μ— μžˆμ–΄μ•Ό scheduleΒ·workflow_dispatchκ°€
μΈμ‹λ©λ‹ˆλ‹€. μ—†μœΌλ©΄ Actions λͺ©λ‘μ— λœ¨μ§€ μ•Šκ³  λŒ€μ‹œλ³΄λ“œ λ²„νŠΌμ€ 404κ°€ λ‚©λ‹ˆλ‹€.

- μ£Ό 1회(μΌμš”μΌ 07μ‹œ KST) + μˆ˜λ™ μ‹€ν–‰
- μˆ˜λ™ μ‹€ν–‰ 기본값은 검사 μ „μš© (λ°œν–‰λœ 글을 μˆ˜μ •ν•˜λŠ” μž‘μ—…μ΄λ―€λ‘œ)
- μŠ€μΌ€μ€„ 싀행은 AI νŒμ • 없이 λŒμ•„ broken/missing만 κ³ μΉ©λ‹ˆλ‹€
  (κ΄€λ ¨μ„± μ˜μ‹¬μ€ μ†λŒ€μ§€ μ•Šμ•„ μ˜€μ‚­μ œλ₯Ό λ§‰μŠ΅λ‹ˆλ‹€)

μ‹€ν–‰ λ³Έμ²΄λŠ” claude/blog-automation-system-KAbtEλ₯Ό μ²΄ν¬μ•„μ›ƒν•˜λ―€λ‘œ
κΈ°λ³Έ λΈŒλžœμΉ˜μ—λŠ” 트리거 μ •μ˜λ§Œ μ˜¬λΌκ°‘λ‹ˆλ‹€.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
κ²Œμ‹œκΈ€ 이미지 검증 μ›Œν¬ν”Œλ‘œ. μ£Ό 1회 μΌμš”μΌ 07μ‹œ KST + μˆ˜λ™ μ‹€ν–‰.

μˆ˜λ™ 기본값은 검사 μ „μš©μ΄λ©°, μŠ€μΌ€μ€„ 싀행은 AI νŒμ • 없이 λŒμ•„
broken/missing만 κ³ μΉ©λ‹ˆλ‹€ β€” κ΄€λ ¨μ„± μ˜μ‹¬μ€ μ†λŒ€μ§€ μ•Šμ•„ μ˜€μ‚­μ œλ₯Ό λ§‰μŠ΅λ‹ˆλ‹€.
Actionsκ°€ κΈ°λ³Έ GITHUB_TOKEN으둜 λ§Œλ“  컀밋은 λ‹€λ₯Έ μ›Œν¬ν”Œλ‘œλ₯Ό νŠΈλ¦¬κ±°ν•˜μ§€
μ•ŠμœΌλ―€λ‘œ, deploy-dashboard의 push νŠΈλ¦¬κ±°λŠ” μžλ™ν™”κ°€ λ§Œλ“  docs/data 컀밋에
λ°˜μ‘ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 데이터λ₯Ό μ“°λŠ” μ›Œν¬ν”Œλ‘œ 33개λ₯Ό workflow_run에 λ“±λ‘ν•˜κ³ ,
if 쑰건을 successμ—μ„œ not-cancelled둜 μ™„ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

이미지 검증 μ›Œν¬ν”Œλ‘œ 주석은 μ‹€μ œ μˆ˜μ • λ²”μœ„(DEFAULT_FIX_KINDS)에 λ§žμ·„μŠ΅λ‹ˆλ‹€.
blog-verifyκ°€ 38회 싀행돼 38회 λͺ¨λ‘ μ‹€νŒ¨ν•˜κ³  08-13 μ΄ν›„λ‘œλŠ” 트리거쑰차
λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

- workflow_run 브랜치 필터에 latest μΆ”κ°€ (blog-run은 μŠ€μΌ€μ€„ μ‹œ κΈ°λ³Έ
  λΈŒλžœμΉ˜μ—μ„œ 싀행됨)
- 검증 μŠ€ν…μ—μ„œ μ˜λ„λœ μ’…λ£Œ μ½”λ“œ(1=ν’ˆμ§ˆ 미달, 2=μž¬κ²Œμ‹œ ν•„μš”)λ₯Ό μ‚΄λ¦Ό.
  bash -eκ°€ κ·Έ μžλ¦¬μ—μ„œ μŠ€ν…μ„ μ£½μ—¬ μž¬κ²Œμ‹œ 단계가 μ‹€ν–‰λ˜μ§€ μ•Šμ•˜μŒ
μŠ€μΌ€μ€„ 싀행은 μ›Œν¬ν”Œλ‘œ νŒŒμΌμ„ κΈ°λ³Έ λΈŒλžœμΉ˜μ—μ„œ μ½μŠ΅λ‹ˆλ‹€. μž‘μ—… λΈŒλžœμΉ˜μ—λ§Œ
μ»€λ°‹λœ μˆ˜μ •μ€ μˆ˜λ™ μ‹€ν–‰μ—μ„œλ§Œ λ™μž‘ν–ˆκ³ , 맀일 λ„λŠ” μ‹€ν–‰μ—λŠ” λ°˜μ˜λ˜μ§€
μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

- μͺΌκ°  데이터 파일의 짝을 ν•¨κ»˜ 컀밋 (pending_bodiesΒ·pending_archive,
  post_detailsΒ·feature_flags, sitemap_status, code_repair_mark)
- git add에 -f μΆ”κ°€ 7개 β€” docs/.gitignoreκ°€ /* 둜 μ „λΆ€ λ¬΄μ‹œν•©λ‹ˆλ‹€
- λŒ“κΈ€ μžλ™ν™” κΈ°λŠ₯ μŠ€μœ„μΉ˜ gate + force μž…λ ₯
- blog-run article_type μž…λ ₯, μ‚¬μ΄νŠΈλ§΅ 재제좜 단계
- 빈 CLAUDE_MODEL μ‹œν¬λ¦Ώ κΈ°λ³Έκ°’

cron νŠΈλ¦¬κ±°λŠ” 19개 μ „λΆ€ λ³€κ²½ μ—†μŠ΅λ‹ˆλ‹€.
μŠ€μΌ€μ€„ 싀행은 μ›Œν¬ν”Œλ‘œ νŒŒμΌμ„ κΈ°λ³Έ λΈŒλžœμΉ˜μ—μ„œ μ½μœΌλ―€λ‘œ, μž‘μ—… λΈŒλžœμΉ˜μ—λ§Œ
있으면 맀일 λ„λŠ” 싀행에 λ°˜μ˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

- blog-run: λ°œν–‰ 직후 μ—­λ°©ν–₯ λ‚΄λΆ€ 링크 단계 (λΈ”λ‘œκ·Έ 3개 각각)
  진단 β†’ 링크 μˆœμ„œ. μ‚°μΆœλ¬Ό 2개λ₯Ό 컀밋 λͺ©λ‘μ— μΆ”κ°€
- inbound-links: μ£Όκ°„ β†’ 맀일, μ²˜λ¦¬λŸ‰ 10 β†’ 25건
  μŠ€μΌ€μ€„ 싀행이 μ‹€μ œλ‘œ μ“°λŠ” `inputs.limit || 'N'` 기본값도 ν•¨κ»˜ μˆ˜μ •

cron 변경은 inbound-links ν•˜λ‚˜λΏμ΄λ©° 주간→맀일 상ν–₯μž…λ‹ˆλ‹€.

Co-authored-by: Claude <noreply@anthropic.com>
adsense-audit은 μ£Όκ°„ μŠ€μΌ€μ€„λ‘œ λ„λŠ”λ°, μŠ€μΌ€μ€„ 싀행은 μ›Œν¬ν”Œλ‘œ νŒŒμΌμ„ κΈ°λ³Έ
λΈŒλžœμΉ˜μ—μ„œ μ½μœΌλ―€λ‘œ μž‘μ—… λΈŒλžœμΉ˜μ—λ§Œ 두면 λ°˜μ˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

- required_pages_check.py μ‹€ν–‰ 단계 (읽기 μ „μš©, νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ§€ μ•ŠμŒ)
- docs/data/required_pages.json 컀밋 λͺ©λ‘ μΆ”κ°€

μŠ€μΌ€μ€„ λ³€κ²½ μ—†μŒ.

Co-authored-by: Claude <noreply@anthropic.com>
λΈ”λ‘œκ·Έ μžλ™ν™” μž‘μ—… 브랜치λ₯Ό κΈ°λ³Έ λΈŒλžœμΉ˜μ— 병합
πŸ”„ μž‘μ—… 브랜치 β†’ latest 동기화 (이미지 자체 ν˜ΈμŠ€νŒ… + ν…ŒμŠ€νŠΈ CI)
μ†ŒκΈ‰ 볡제 1회차(dry-run)κ°€ 초둝으둜 λλ‚¬λŠ”λ° κ²°κ³Ό 파일이 μ»€λ°‹λ˜μ§€
μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 원인:

  git add -f docs/data/image_backfill.json docs/data/image_mirror.json || true

image_mirror.json이 아직 μ—†μœΌλ‹ˆ git addλŠ” pathspec 였λ₯˜λ‘œ 128을 λ‚΄λ©°
**아무것도 μŠ€ν…Œμ΄μ§•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€**. μ•žμ˜ image_backfill.jsonκΉŒμ§€ ν•¨κ»˜
λ‚ μ•„κ°€κ³ , λ’€μ˜ `|| true`κ°€ κ·Έ μ‹€νŒ¨λ₯Ό μ‚ΌμΌœ μ›Œν¬ν”Œλ‘œλŠ” 초둝으둜 λλ‚©λ‹ˆλ‹€.

μ œκ°€ μ΄λ²ˆμ— 넣은 5μ€„λ§Œμ˜ λ¬Έμ œκ°€ μ•„λ‹ˆμ—ˆμŠ΅λ‹ˆλ‹€. μ €μž₯μ†Œ μ „μ²΄μ—μ„œ 같은 ν˜•νƒœλ₯Ό
17개 μ›Œν¬ν”Œλ‘œμ—μ„œ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€ (posts.json + post_details.json,
pending_* 3μ’…, gsc 5μ’… λ“±). 쑰건이 λ§žμ„ λ•Œλ§Œ μƒκΈ°λŠ” 파일이 ν•˜λ‚˜λΌλ„ μ„žμ—¬
있으면 κ·Έ 컀밋 전체가 쑰용히 λΉ„μ–΄μ„œ λ‚˜κ°‘λ‹ˆλ‹€.

μ „λΆ€ νŒŒμΌλ§ˆλ‹€ ν™•μΈν•˜κ³  λ„£λŠ” ν˜•νƒœλ‘œ λ°”κΏ¨μŠ΅λ‹ˆλ‹€:

  for f in A B C; do [ -f "$f" ] && git add -f "$f"; done

이미 blog-run λ“±μ—μ„œ μ“°λ˜ 방식이고, set -e μ•„λž˜μ—μ„œλ„ μ•ˆμ „ν•œ 것을
ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

ν•¨κ»˜: dry-run이 "볡제 μ˜ˆμ • Nμž₯"을 찍도둝 ν–ˆμŠ΅λ‹ˆλ‹€. 1회차 λ‘œκ·Έμ—λŠ” λŒ€μƒ
κΈ€ 편수(298편)만 있고 이미지 μž₯μˆ˜κ°€ μ—†μ–΄, μš©λŸ‰μ„ κ°€λŠ ν•  수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ 808개 톡과 (μ‹ κ·œ 67개 β€” μ›Œν¬ν”Œλ‘œλ§ˆλ‹€ 이 ν˜•νƒœλ₯Ό 검사).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
πŸ› git addκ°€ 파일 ν•˜λ‚˜ μ—†λ‹€κ³  λ‚˜λ¨Έμ§€κΉŒμ§€ λ²„λ¦¬λ˜ 문제 (μ›Œν¬ν”Œλ‘œ 17개)
@Kevinlee7250
Kevinlee7250 merged commit 97e3b39 into claude/blog-automation-system-KAbtE Aug 25, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants