Pre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate structured release notes from git history and closed issues within Claude Code session
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Generate structured release notes directly within the Claude Code session, using git history and GitHub issues. No external API calls needed — Claude Code itself analyzes and generates the notes.
Replaces the CI-based release-notes.yml workflow that previously used Claude API (ANTHROPIC_API_KEY). The release notes are now generated in-session and passed directly to gh release create --notes.
/omcustom-release-notes 0.36.0
/omcustom-release-notes 0.36.0 --previous-tag v0.35.3
/omcustom-release-notes --backfill v0.36.0..v0.127.0
# 1. Determine previous tag
PREV_TAG=$(git tag --sort=-version:refname | grep -v "^v${VERSION}$" | head -1)
# 2. Get commit history
git log ${PREV_TAG}..HEAD --pretty=format:"%h %s"
# 3. Get changed files
git diff --name-status ${PREV_TAG}..HEAD
# 4. Get closed issues since previous tag
gh issue list --state closed --search "closed:>$(git log -1 --format=%ci ${PREV_TAG} | cut -d' ' -f1)" --json number,title,labels
Categorize commits using Conventional Commits:
| Prefix | Category | Emoji |
|---|---|---|
| feat: | Features | :rocket: |
| fix: | Bug Fixes | :bug: |
| docs: | Documentation | :books: |
| refactor: | Refactoring | :recycle: |
| test: | Tests | :test_tube: |
| chore: | Chores | :wrench: |
| security | Security | :lock: |
Output format:
# Release v{VERSION}
## Highlights
(1-3 key features/changes)
## :rocket: Features
- **{title}** (#{issue}): {description}
## :bug: Bug Fixes
- **{title}** (#{issue}): {description}
## :lock: Security
- {security changes}
## :books: Documentation
- {doc changes}
## :recycle: Other Changes
- {other changes}
## Resource Changes
| Resource | Before | After | Delta |
|----------|--------|-------|-------|
| Rules | {n} | {n} | {delta} |
| Skills | {n} | {n} | {delta} |
| Agents | {n} | {n} | {delta} |
## Breaking Changes
{if any, otherwise omit section}
---
_Release notes generated with Claude Code_
The generated notes can be:
gh release create --notes "{notes}"release_notes.md for review before usegh release edit v{VERSION} --notes "{notes}"## [Unreleased] in CHANGELOG.md (Optional but Recommended)After generating release notes, promote any pending ## [Unreleased] entries to a versioned section so release.yml (awk extract at line ~217) finds the authored notes instead of falling back to GitHub auto-generated content.
# Promote [Unreleased] to [VERSION] with today's date
DATE=$(date -u +%Y-%m-%d)
python3 - "$VERSION" "$DATE" <<'PY'
import sys, re, pathlib
version, date = sys.argv[1], sys.argv[2]
path = pathlib.Path("CHANGELOG.md")
text = path.read_text()
header = f"## [{version}] - {date}"
if re.search(rf"^## \[{re.escape(version)}\]", text, flags=re.M):
print(f"[skip] [{version}] section already exists — manual reconciliation needed")
sys.exit(0)
new = re.sub(
r"^## \[Unreleased\]\s*\n",
f"## [Unreleased]\n\n{header}\n",
text,
count=1,
flags=re.M,
)
if new == text:
print("[error] [Unreleased] section not found — CHANGELOG.md format unexpected")
sys.exit(1)
path.write_text(new)
print(f"[ok] promoted [Unreleased] -> [{version}]")
PY
Behavior:
## [Unreleased] content is empty, the promoted ## [VERSION] will also be empty — release.yml falls back to auto-generated notes (existing behavior preserved).## [VERSION] already exists (re-run, manual edit), the script skips with a log message — no overwrite.git add CHANGELOG.md && git commit -m "chore(changelog): promote [Unreleased] to [VERSION]"This is optional — the skill's release-notes generation (Phases 1-4) works independently. Phase 5 only ensures CHANGELOG consistency for projects that maintain Keep a Changelog format.
For projects with historical CHANGELOG.md gaps (releases shipped without [Unreleased] promotion), the skill provides a deterministic batch backfill.
python3 scripts/backfill_changelog.py <START_TAG>..<END_TAG> [--output FILE]
Or invoked via skill: /omcustom-release-notes --backfill v0.36.0..v0.127.0
For each tag in range (in reverse semver order), the script:
git log <prev>..<tag> --pretty=%s --no-merges to extract commit subjectsfeat → Addedfix → Fixedsecurity → Securityperf, refactor, chore, build, deps, revert → Changeddocs, test, ci, style → SKIPPED (internal-only, unless ! breaking marker)release: / chore(release): commits — extracts description after version (e.g., release: v0.127.0 — DESC → DESC under Changed)#NNN) and appends as (#1, #2) suffix_No user-visible changes (internal only)._Markdown text suitable for prepending to CHANGELOG.md between ## [Unreleased] and the first existing version section.
tests/scripts/test_backfill_changelog.py covers parser correctness, semver sorting, category mapping, edge cases (40 tests).
This skill is designed to be used during the release process:
/omcustom:npm-version patch|minor|major -> version bump
/omcustom-release-notes {version} -> generate notes + promote [Unreleased] (Phase 5)
mgr-gitnerd: gh release create -> create release with notes
## [VERSION] existsCONTRIBUTING.md for [Unreleased] entry guidance during PR authoringscripts/backfill_changelog.py)When spawning agents via the Agent tool during this skill's execution, always pass mode: "bypassPermissions". The Agent tool default (acceptEdits) overrides agent frontmatter permissionMode, causing permission prompts during unattended execution.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Pre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Auto-detect project context and optimize harness — deactivate unused agents/skills, suggest missing experts, generate project profile
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Adversarial code review using attacker mindset — trust boundary, attack surface, business logic, and defense evaluation
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Apache Airflow best practices for DAG authoring, testing, and production deployment
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Alembic migration patterns for naming conventions, safety checks, expand-contract, env.py configuration, and CI integration
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Pre-routing ambiguity analysis — scores request clarity and asks clarifying questions when needed (inspired by ouroboros)
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.