Dotfiles claude-code-release-tracker
install
source · Clone the upstream repo
git clone https://github.com/msbaek/dotfiles
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/msbaek/dotfiles "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/claude-code-release-tracker" ~/.claude/skills/msbaek-dotfiles-claude-code-release-tracker && rm -rf "$T"
manifest:
.claude/skills/claude-code-release-tracker/SKILL.mdsource content
Claude Code Release Tracker
개요
X(@claudecodelog)에서 Claude Code 릴리스 노트를 수집하여 한글로 번역/구조화하고 Obsidian vault에 월별 파일로 저장한다.
인수
| 인수 | 설명 | 기본값 |
|---|---|---|
| --backfill | 3개월치 소급 수집 | false (최근 미수집분만) |
필수 도구
이 skill은 Playwright MCP 도구를 사용한다. 도구명은 반드시
mcp__playwright__ 접두사를 붙여야 한다:
— URL로 이동mcp__playwright__browser_navigate
— 현재 페이지의 접근성 스냅샷 (텍스트 추출)mcp__playwright__browser_snapshot
— 요소 클릭mcp__playwright__browser_click
— 브라우저 닫기mcp__playwright__browser_close
주의:
, browser_navigate
등 접두사 없는 이름은 사용할 수 없다. 반드시 browser_snapshot
접두사를 사용해야 한다.mcp__playwright__
스크롤이 필요하면
mcp__playwright__browser_click으로 페이지 하단 요소를 클릭하거나, mcp__playwright__browser_navigate로 JavaScript를 실행한다:
- 스크롤 다운:
에서 "Show more" 또는 타임라인 하단의 트윗을 클릭mcp__playwright__browser_click
실행 절차
Phase 1: 상태 파일 읽기
- Read 도구로
읽기~/DocumentsLocal/msbaek_vault/scripts/claude-release-tracker-state.json
날짜 확인 (null이면 backfill 모드와 동일하게 처리)lastChecked
배열에서 이미 수집된 트윗 URL 목록 추출 →releases
집합으로 보관collectedUrls
Phase 2: X 타임라인 수집
사용mcp__playwright__browser_navigate- URL:
https://x.com/claudecodelog - storage state는 Playwright MCP 설정에서 자동 적용됨
- URL:
- 페이지 로드 후
으로 현재 보이는 트윗 목록 확인mcp__playwright__browser_snapshot - 로그인 필요 화면이 감지되면:
- "X 로그인 세션 만료. Chrome에서 x.com에 로그인 후 재실행 필요" 출력
- 즉시 종료
- 각 트윗에서 추출할 정보:
- 트윗 텍스트 (릴리스 내용)
- 트윗 날짜
- 트윗 URL (permalink) — 트윗 내 링크에서
포함된 URL/status/ - 버전 번호 (텍스트에서 패턴 매칭: vX.Y.Z 또는 X.Y.Z)
에 이미 있는 트윗 URL은 스킵collectedUrls- lastChecked 이후 트윗만 수집 (backfill 또는 lastChecked가 null이면 3개월 전까지)
- 더 오래된 트윗이 필요하면
으로 타임라인 하단 트윗 클릭 후mcp__playwright__browser_click
반복mcp__playwright__browser_snapshot- 최대 스크롤 횟수: 일반 모드 5회, backfill 모드 30회
- 새로운 트윗이 더 이상 나타나지 않으면 중단
Phase 3: 버전별 그룹핑
- 수집된 트윗을 버전 번호로 그룹핑
- 버전 번호가 있는 트윗: 해당 버전 그룹에 포함
- 버전 번호가 없는 트윗: 날짜를 기준으로 가장 가까운 버전에 포함
- 어떤 버전에도 속하지 않으면 "misc-YYYY-MM-DD" 로 분류
- 각 버전에 대해 트윗 내용을 카테고리별로 분류:
- 새로운 기능 (New Features)
- 개선사항 (Improvements)
- 버그 수정 (Bug Fixes)
- 기타 (Other)
Phase 4: Obsidian 문서 생성/업데이트
설정 확인 (기본: "monthly")groupBy- 대상 파일 경로 결정:
~/DocumentsLocal/msbaek_vault/001-INBOX/claude-code-releases-YYYY-MM.md - 기존 파일이 있으면 Read 도구로 읽기
- 새 버전 섹션을 기존 내용에 추가 (날짜 역순 — 최신이 위, frontmatter 바로 다음)
- 기존 파일이 없으면 프론트매터 포함하여 새로 생성
문서 템플릿:
--- tags: - claude-code - release-note period: YYYY-MM source: https://x.com/claudecodelog --- # Claude Code 릴리스 노트 — YYYY년 M월 ## vX.Y.Z (YYYY-MM-DD) ### 새로운 기능 - **기능명**: 한글 설명 ### 개선사항 - **항목**: 한글 설명 ### 버그 수정 - **항목**: 한글 설명 ### 원문 - [트윗](https://x.com/claudecodelog/status/xxx) ---
- 카테고리에 해당 항목이 없으면 해당 섹션을 생략한다
- Write 도구로 파일 저장
Phase 5: 상태 파일 업데이트
- 새로 수집한 릴리스 정보를
배열에 추가:releases{ "version": "X.Y.Z", "date": "YYYY-MM-DD", "tweets": ["https://x.com/claudecodelog/status/xxx"], "processed": true }
를 오늘 날짜(YYYY-MM-DD)로 업데이트lastChecked- Write 도구로 상태 파일 저장
Phase 6: 결과 보고
수집 결과를 요약하여 출력:
- 새로 수집된 릴리스 수
- 생성/업데이트된 파일 목록
- 새 트윗이 없었으면 "새로운 릴리스 노트 없음"
에러 처리
- Playwright 페이지 로드 실패 → "X 접속 실패" 로그 출력 후 종료
- 로그인 필요 화면 감지 → "X 로그인 세션 만료. Chrome에서 x.com 로그인 후 재실행 필요" 출력 후 종료
- 트윗 파싱 실패 → 원문 텍스트 그대로 "기타" 카테고리에 저장
- 새 트윗 없음 → "새로운 릴리스 노트 없음" 출력 후 정상 종료
중요 규칙
- 이미 수집된 트윗(상태 파일의 releases[].tweets에 URL 존재)은 절대 재처리하지 않는다
- 월별 파일에 이미 존재하는 버전 섹션은 덮어쓰지 않는다
- 한글 번역 시 기술 용어(API, CLI, MCP, SDK 등)는 영문 그대로 유지한다
- 트윗 원문 링크는 반드시 각 버전 섹션의 "원문" 하위에 포함한다