From oh-my-daily-skills
Fetches Claude Code GitHub release notes via gh CLI, filters out bug fixes, summarizes Added/Improved/Changed/Deprecated items in Chinese, detects running session version with lsof on PPID. For update checks.
npx claudepluginhub shiqkuangsan/oh-my-daily-skillsThis skill uses the workspace's default tool permissions.
Extract feature-level changes from Claude Code release notes, translate to Chinese, and present concisely.
Reviews Claude Code release notes, filtering for relevance to your installed plugins, skills, tools, and platform. Use for 'what's new?', update checks, or changelog queries.
Analyzes Claude Code changelog for breaking changes, new features, deprecations, and impacts on plugins. Identifies required updates and opportunities after releases.
Analyzes Claude Code CLI (CC) version upgrade impacts on bkit plugins: researches changes via docs/GitHub, assesses architecture effects, brainstorms improvements, generates Korean reports.
Share bugs, ideas, or general feedback.
Extract feature-level changes from Claude Code release notes, translate to Chinese, and present concisely.
GitHub Releases API via gh CLI:
# Get release notes and date for a specific version
gh release view v{version} --repo anthropics/claude-code --json body,publishedAt --jq '[.publishedAt, .body] | join("\n")'
# List recent releases (tag + date)
gh release list --repo anthropics/claude-code --limit 50 --json tagName,publishedAt
Claude Code auto-updates the binary silently. claude --version spawns a new process that reads the updated binary on disk, so it always returns the latest installed version — NOT the version of the current running session.
To get the real running version, use lsof on $PPID (the parent Claude Code process):
# Primary: extract running session version from the process binary path
# Claude stores versions at ~/.local/share/claude/versions/{version}
# The running process holds a file handle to its original binary
RUNNING=$(lsof -p $PPID 2>/dev/null | awk '/txt.*versions\/[0-9]/{gsub(/.*versions\//, ""); print}' | head -1)
# Fallback: claude --version (accurate only when no auto-update has occurred)
[ -z "$RUNNING" ] && RUNNING=$(claude --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
# Last resort: if both fail, treat as "last 3"
Why this works per-window: $PPID is process-specific. If the user has 3 sessions (v2.1.74, v2.1.75, v2.1.76), each session's Bash tool gets a different $PPID, and lsof reads the correct binary for that process.
Parse the ARGUMENTS to determine which versions to fetch:
| Argument | Behavior |
|---|---|
| (empty) | Versions after currently running session version. Detect current via lsof method above, list all releases via gh release list, then select versions newer than current. If already on latest, show current version's release notes |
2.1.73 | Single version |
2.1.72 2.1.73 or 2.1.72,2.1.73 | Multiple specific versions |
2.1.70-2.1.74 or 2.1.70..2.1.74 | Version range (inclusive) |
latest or last 3 | Latest N versions |
From each version's release notes, KEEP lines matching:
- Added ... → New feature- Improved ... → Enhancement (including IDE-prefixed like [VSCode] Improved ...)- Changed ... → Behavior change- Deprecated ... → Deprecation noticeDISCARD everything else, including:
- Fixed ... → Bug fix (skip)- [VSCode] Fixed ... → IDE bug fix (skip)For each version, output in Chinese:
## v{version}({date})
- **新功能**:xxx(translated to Chinese, keep technical terms in English)
- **增强**:xxx
- **变更**:xxx
- **废弃**:xxx
(本版本无功能级变更,均为 bug 修复)列完所有版本后,在最末尾追加一段亮点总结。无论列出几个版本、几条变更,此段必出,不可省略。
## 🌟 本次更新亮点
> 从以上 {N} 个版本 / {M} 条变更中,挑出最值得关注的 {K} 项:
- **{亮点标题}**(v{version}):{为什么值得关注 / 对用户的影响}
- ...
挑选原则(按优先级排序):
Added > Improved > Changed > DeprecatedChanged / Deprecated 必须单列一项标为 ⚠️配额规则(按"版本数"弹性配额,不按总条数一刀切):
配额示例:
| 列出版本数 | 建议亮点条数 K | 场景 |
|---|---|---|
| 1 | 1-3 | 单版查看 |
| 2-3 | 3-6 | 常规跨版 |
| 4-6 | 6-10 | 中期跨版 |
| 7+ | 10(硬顶) | 长时间未看 |
聚类规则:列出版本 ≥ 5 时,亮点按主题聚类呈现(如"IDE 集成"、"Hooks"、"MCP"),避免平铺淹没重点。
边界条件:
> 本次范围内无功能级更新,全部为 bug 修复。lsof -p $PPID method (with fallback chain), then gh release list --limit 50 to get release list, select all versions newer than current. If detection fails entirely, default to last 3. If already on latest, show current version's release notesgh release viewgh not authenticated → prompt user to run gh auth login(未找到 v{version} 的 release)(当前已是最新版本,以下为 v{version} 的更新内容)lsof detection fails → fall back to claude --version, then to last 3 as final resort