Skip to content
Back to skills

Claude Native

ASecurity

Monitor Claude Code releases and auto-generate GitHub issues for each new version

  • 43 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
toolsgobashgitapi

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add baekenough/oh-my-customcode --skill claude-native --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claude Native?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Claude Native
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/baekenough-claude-native/badge)](https://www.skillsdirectory.com/skills/baekenough-claude-native)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: claude-native
description: Monitor Claude Code releases and auto-generate GitHub issues for each new version
scope: core
user-invocable: true
argument-hint: "[--backfill] [--dry-run]"
version: 1.0.0
---

# Claude Native Skill

Monitor Claude Code (the CLI tool) release history and auto-generate GitHub issues for each new version that has not yet been tracked. Replaces the deprecated customclaw Airflow-based monitoring (deprecated 2026-03-18).

## Options

```
--backfill    Process ALL versions >= v2.1.86 (default behavior when flag is present)
              Without flag: only check the latest 5 releases
--dry-run     Show what issues would be created without actually creating them
```

## Workflow

### Phase 1: Fetch CC Releases

Fetch all Claude Code releases from the GitHub API:

```bash
gh api repos/anthropics/claude-code/releases \
  --paginate \
  --jq '.[] | {tag_name: .tag_name, published_at: .published_at, html_url: .html_url, body: .body}'
```

- Without `--backfill`: fetch only the latest 5 releases (`--limit 5` or first 5 results)
- With `--backfill`: fetch all releases (use `--paginate`)
- Filter: only process versions >= v2.1.86 (monitoring stopped after v2.1.85 / issue #683)

### Phase 2: Check Existing Issues

Search for existing tracking issues to avoid duplicates:

```bash
gh issue list \
  --state all \
  --search "Claude Code v" \
  --json number,title \
  --limit 100
```

Build a set of already-tracked versions by extracting version strings from issue titles matching the pattern `Claude Code v(\d+\.\d+\.\d+)` (no brackets).

### Phase 3: Dedup

For each fetched release version:
- Parse the version string from `tag_name` (e.g., `v2.1.86`)
- If an issue title matching `Claude Code v{version}` already exists → skip (already tracked)
- If no matching issue → add to "needs issue" list

### Phase 4: Create Issues (or Dry-Run Report)

#### Dry-Run Mode (`--dry-run`)

Print a report of what would be created:

```
[Dry Run] Would create issues for:
  - v2.1.86 (published: 2026-01-15)
  - v2.1.87 (published: 2026-01-22)
  ...
No issues were created.
```

#### Live Mode

For each version in the "needs issue" list, create a GitHub issue:

```bash
gh issue create \
  --title "Claude Code v{version}" \
  --label "automated,claude-code-release" \
  --body "{body}"
```

Issue body format (matching the pattern established by issue #683):

```markdown
# Claude Code v{version}

**Release:** v{version}
**Published:** {published_at}
**Link:** {html_url}

## 릴리즈 요약

{release_notes_body — truncated to first 2000 chars if too long}

---

## 액션 아이템

- [ ] oh-my-customcode 영향도 관점에서 릴리즈 노트 검토
- [ ] 새 지식은 `guides/claude-code/15-version-compatibility.md`(+ `templates/` 미러)에 규칙별 절로 기록 (서사·근거는 가이드, 룰에 쌓지 않는다 — R016 「버전노트 보존정책」)
- [ ] 이 릴리즈가 **현재 에이전트 행동을 바꾸는 규범**이면 해당 룰에 최대 1줄만 추가 — 추가 전 `CLAUDE.md`+`.claude/rules/*.md` 주석 제외 합계가 R016 예산(140,000자)을 넘지 않는지 확인, 넘으면 다른 조항을 은퇴·DETAIL화
- [ ] 새 Claude Code 기능이 에이전트에 영향을 주면 에이전트 정의 갱신
- [ ] 현재 oh-my-customcode 버전과의 호환성 테스트
- [ ] 새 기능이 관련되면 CLAUDE.md 갱신

---

_이 이슈는 cc-release-monitor 워크플로우(claude-native 스킬)가 자동 생성했습니다._
```

**Notes:**
- If `body` from the release is empty, use `_릴리즈 노트가 제공되지 않았습니다._`
- Truncate release body at 2000 characters and append `... (truncated)` if needed
- The `automated` and `claude-code-release` labels must exist in the repository; create them if missing:
  ```bash
  gh label create "automated" --color "#0075ca" --description "Automated issue" 2>/dev/null || true
  gh label create "claude-code-release" --color "#e4e669" --description "Claude Code release tracking" 2>/dev/null || true
  ```

### Phase 5: Report Results

After processing all versions:

```
[claude-native] Scan complete

Versions checked: {N}
New issues created: {M}

Created:
  - #1234 Claude Code v2.1.86
  - #1235 Claude Code v2.1.87

Already tracked (skipped):
  - v2.1.85 → #683
```

If no new releases found:

```
[claude-native] No new releases found. All versions >= v2.1.86 are already tracked.
```

## Version Filtering Logic

```
MIN_VERSION = "2.1.86"

For each release:
  version = strip_v_prefix(tag_name)   # "v2.1.86" → "2.1.86"
  parts = split(version, ".")           # ["2", "1", "86"]
  if compare_semver(version, MIN_VERSION) >= 0:
    include
  else:
    skip
```

Semver comparison: major → minor → patch (all numeric). Pre-release suffixes (e.g., `-beta`) are included and compared lexicographically after numeric parts.

**Note on non-contiguous patch numbers**: Claude Code skips some patch numbers (e.g., v2.1.151 and v2.1.155 were never released publicly). The skill MUST act only on versions that actually appear in the GitHub releases API response — never assume contiguous numbering or attempt to fill gaps.

## Error Handling

| Error | Action |
|-------|--------|
| `gh` not authenticated | Report: "Error: gh CLI not authenticated. Run `gh auth login` first." |
| Rate limit hit | Report current status, list remaining versions |
| Label creation fails | Warn and continue (issue created without label) |
| Release body parse error | Use empty body fallback, continue |

## Integration Options

### Manual

```
/claude-native
/claude-native --backfill
/claude-native --dry-run
```

### Automatic (SessionStart Hook)

Can be integrated into the SessionStart hook to check for new releases at session start (illustrative example — `claude-native-check.sh` is a hypothetical script you would write yourself; it is not shipped or registered in `hooks.json`):

```json
{
  "SessionStart": [
    {
      "command": "bash \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/scripts/claude-native-check.sh\""
    }
  ]
}
```

A lightweight wrapper script can run a `--dry-run` check and notify if new releases exist.

### Scheduled (CronCreate)

Can be set up as a scheduled remote agent using `/schedule`:

```
/schedule "daily at 9am: /claude-native"
```

Or via CronCreate MCP tool for programmatic scheduling.

## Prerequisites

- `gh` CLI installed and authenticated (`gh auth status`)
- Repository: `baekenough/oh-my-customcode` (default, detected from git remote)
- Labels `automated` and `claude-code-release` (auto-created if missing)

## Background

- Last manually tracked release: v2.1.85 (issue #683)
- Monitoring gap: v2.1.86 onwards (customclaw deprecated 2026-03-18)
- This skill fills the monitoring gap and provides ongoing tracking

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…