← Back to Skills

changelog-generator

v1.0.0 approved Development ⬇ 3 ↑ 3/7d updated today
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o changelog-generator.skill   "https://aiskillstore.io/v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "b8e8d895-85fa-4ecb-9175-e4ce563cfab7",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

Convert git commit lists into Conventional Commits-based changelogs (Markdown/JSON, English+Korean), parse/classify/audit commit messages — zero external dependencies.

# git # changelog # conventional-commits # development # korean

Basic Info

Owner 👤 aiskillstore-team Category Development Registered 2026-04-30 Last Updated 2026-04-30 Latest Version 1.0.0 Packaged At 2026-04-30 Vetting Status approved Downloads 3 Checksum (SHA256) 5422f6bbf8ee7033203e3c6c53aaab750f274a58818a84a4397cae9d0f16c168

⚡ AGENT INFO USK v3

Capabilities
conventional_commits_parsing changelog_generation commit_classification commit_quality_audit korean_language_support
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=OpenClaw GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=ClaudeCode GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=Cursor GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=GeminiCLI GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=CodexCLI GET /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install changelog-generator
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install changelog-generator --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download
2
Place it in the Claude Code commands directory.
unzip changelog-generator.skill -d ~/.claude/commands/changelog-generator/
3
Use it as a slash command in Claude Code.
/changelog-generator
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip changelog-generator-agent-skill-*.skill -d ~/.claude/skills/changelog-generator/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip changelog-generator-cursor-*.skill -d ~/.cursor/skills/changelog-generator/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/changelog-generator/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip changelog-generator-geminicli-*.skill -d ~/.gemini/skills/changelog-generator/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/changelog-generator/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip changelog-generator-codexcli-*.skill -d ~/.codex/skills/changelog-generator/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/changelog-generator/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/download
2
Place it in your agent platform's skills directory.
cp changelog-generator.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result APPROVED

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary Conventional Commits 기반의 변경 이력 및 커밋 감사 스킬로, 선언된 권한을 준수하며 악의적인 코드나 외부 통신 없이 안전하게 동작합니다.
Reasoning

스킬 메타데이터에 선언된 `network: false`, `filesystem: false`, `subprocess: false` 권한을 코드에서 충실히 준수하고 있습니다. `main.py`에서 `os` 모듈은 `sys.path` 조작에만 사용되며, 파일 시스템 접근이나 외부 네트워크 통신, 서브프로세스 실행 코드는 발견되지 않았습니다. 스킬 설명과 코드 주석에서 'zero external dependencies'를 명시하고 있으며, 실제 코드도 Python 표준 라이브러리(`json`, `sys`, `os`, `re`, `datetime`, `typing`)만을 사용합니다. `lib/auditor.py`에서 시크릿/해시 패턴 및 이메일 패턴을 감지하는 기능은 사용자 데이터를 무단으로 수집하거나 전송하는 것이 아니라, 커밋 메시지 내 잠재적 보안 위험을 경고하는 스킬의 핵심 보안 기능으로 판단됩니다. 입력 데이터에 대한 길이 제한(`_MAX_MESSAGE_LEN`, `_MAX_VERSION_LEN`, `_MAX_COMMITS`, `_MAX_COMMIT_MSG`) 등 기본적인 입력 유효성 검사 및 보안 조치도 포함되어 있습니다. 코드 난독화나 악의적인 행위의 징후는 없으며, 코드 품질 또한 양호합니다. 정적 분석 결과에서도 특이사항이 발견되지 않았습니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-04-30 ⬇ 3

Examples 5

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

generate_markdown_both
# generate# markdown# both# breaking

Generate changelog from commits in English+Korean Markdown. / 커밋 목록에서 영한 Markdown changelog 생성.

📥 Input
{
  "action": "generate",
  "commits": [
    {
      "author": "Alice",
      "date": "2026-04-28",
      "hash": "a1b2c3d",
      "message": "feat(auth): add OAuth2 login support"
    },
    {
      "author": "Bob",
      "date": "2026-04-27",
      "hash": "e4f5g6h",
      "message": "fix(api): handle null response from upstream"
    },
    {
      "author": "Charlie",
      "date": "2026-04-26",
      "hash": "i7j8k9l",
      "message": "chore: update dependencies"
    },
    {
      "author": "Alice",
      "date": "2026-04-25",
      "hash": "m1n2o3p",
      "message": "feat!: drop support for Python 3.8"
    }
  ],
  "format": "markdown",
  "lang": "both",
  "version": "1.3.0"
}
📤 Output
{
  "changelog_ko": "# \ubcc0\uacbd \uc774\ub825\n\n## [1.3.0] - 2026-04-30\n\n### \ud638\ud658\uc131 \ubcc0\uacbd\n- Python 3.8 \uc9c0\uc6d0 \uc911\ub2e8 (m1n2o3p)\n\n### \uc0c8 \uae30\ub2a5\n- **auth**: OAuth2 \ub85c\uadf8\uc778 \uc9c0\uc6d0 \ucd94\uac00 (a1b2c3d)\n\n### \ubc84\uadf8 \uc218\uc815\n- **api**: \uc5c5\uc2a4\ud2b8\ub9bc null \uc751\ub2f5 \ucc98\ub9ac (e4f5g6h)\n\n### \uae30\ud0c0\n- \uc758\uc874\uc131 \uc5c5\ub370\uc774\ud2b8 (i7j8k9l)\n",
  "changelog_md": "# Changelog\n\n## [1.3.0] - 2026-04-30\n\n### Breaking Changes\n- drop support for Python 3.8 (m1n2o3p)\n\n### Features\n- **auth**: add OAuth2 login support (a1b2c3d)\n\n### Bug Fixes\n- **api**: handle null response from upstream (e4f5g6h)\n\n### Chores\n- update dependencies (i7j8k9l)\n",
  "sections": {
    "breaking": [
      {
        "breaking": true,
        "description": "drop support for Python 3.8",
        "hash": "m1n2o3p",
        "type": "feat"
      }
    ],
    "chores": [
      {
        "description": "update dependencies",
        "hash": "i7j8k9l",
        "type": "chore"
      }
    ],
    "features": [
      {
        "description": "add OAuth2 login support",
        "hash": "a1b2c3d",
        "scope": "auth",
        "type": "feat"
      }
    ],
    "fixes": [
      {
        "description": "handle null response from upstream",
        "hash": "e4f5g6h",
        "scope": "api",
        "type": "fix"
      }
    ]
  }
}
parse_commits_valid
# parse_commits# breaking# valid

Parse a valid Conventional Commits message. / 유효한 CC 메시지 파싱.

📥 Input
{
  "action": "parse_commits",
  "message": "feat(api)!: redesign response schema\n\nBREAKING CHANGE: fields renamed from snake_case to camelCase."
}
📤 Output
{
  "body": "BREAKING CHANGE: fields renamed from snake_case to camelCase.",
  "breaking": true,
  "description": "redesign response schema",
  "scope": "api",
  "type": "feat",
  "valid_conventional": true
}
parse_commits_invalid
# parse_commits# invalid

Parse a non-conventional commit message. / CC 미준수 메시지 파싱.

📥 Input
{
  "action": "parse_commits",
  "message": "fixed the bug"
}
📤 Output
{
  "body": "",
  "breaking": false,
  "description": "fixed the bug",
  "scope": null,
  "type": null,
  "valid_conventional": false
}
classify_mixed
# classify# mixed

Classify a mixed list of commits. / 혼합 커밋 목록 분류.

📥 Input
{
  "action": "classify",
  "commits": [
    {
      "message": "feat: new dashboard"
    },
    {
      "message": "feat: dark mode"
    },
    {
      "message": "fix: login crash"
    },
    {
      "message": "chore: bump version"
    },
    {
      "message": "random commit without type"
    },
    {
      "message": "feat!: remove legacy API"
    }
  ]
}
📤 Output
{
  "breaking_count": 1,
  "by_type": {
    "chore": 1,
    "feat": 3,
    "fix": 1,
    "unknown": 1
  },
  "non_conventional_count": 1,
  "summary": {
    "conventional_ratio": 0.833,
    "most_common_type": "feat"
  },
  "total": 6
}
audit_quality
# audit# quality# security

Audit commit messages for quality issues. / 커밋 메시지 품질 감사.

📥 Input
{
  "action": "audit",
  "commits": [
    {
      "hash": "aaa1111",
      "message": "fix."
    },
    {
      "hash": "bbb2222",
      "message": "feat(Auth): Added the new login page with OAuth2 integration."
    },
    {
      "hash": "ccc3333",
      "message": "wip"
    },
    {
      "hash": "ddd4444",
      "message": "update password_hash=abc123def456 in config"
    }
  ]
}
📤 Output
{
  "findings": [
    {
      "code": "QUAL001",
      "commit_index": 0,
      "fix_hint": {
        "action": "rewrite",
        "field": "subject",
        "reference": "https://www.conventionalcommits.org/",
        "suggested": "fix: \u003cdescribe what was fixed\u003e"
      },
      "hash": "aaa1111",
      "message": "Conventional Commits \ud615\uc2dd\uc774 \uc544\ub2d9\ub2c8\ub2e4.",
      "message_en": "Message does not follow Conventional Commits format.",
      "severity": "QUAL"
    },
    {
      "code": "QUAL003",
      "commit_index": 0,
      "fix_hint": {
        "action": "expand",
        "field": "description",
        "reference": "https://www.conventionalcommits.org/",
        "suggested": "Add more context: what was fixed and why"
      },
      "hash": "aaa1111",
      "message": "\uc124\uba85\uc774 \ub108\ubb34 \uc9e7\uc2b5\ub2c8\ub2e4 (10\uc790 \ubbf8\ub9cc).",
      "message_en": "Description is too short (\u003c 10 chars).",
      "severity": "QUAL"
    },
    {
      "code": "STR002",
      "commit_index": 1,
      "fix_hint": {
        "action": "rename",
        "field": "scope",
        "reference": "https://www.conventionalcommits.org/",
        "suggested": "auth"
      },
      "hash": "bbb2222",
      "message": "scope \ub300\uc18c\ubb38\uc790\uac00 \ud63c\uc6a9\ub429\ub2c8\ub2e4 (\u0027Auth\u0027). \uc18c\ubb38\uc790\ub97c \uad8c\uc7a5\ud569\ub2c8\ub2e4.",
      "message_en": "Scope uses mixed case (\u0027Auth\u0027). Lowercase is recommended.",
      "severity": "STR"
    },
    {
      "code": "SEC001",
      "commit_index": 3,
      "fix_hint": {
        "action": "remove",
        "field": "message",
        "reference": "https://docs.github.com/en/code-security/secret-scanning",
        "suggested": "Remove sensitive data from commit message and rotate credentials"
      },
      "hash": "ddd4444",
      "message": "\ucee4\ubc0b \uba54\uc2dc\uc9c0\uc5d0 \uc2dc\ud06c\ub9bf/\ud574\uc2dc \ud328\ud134\uc774 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
      "message_en": "Potential secret or hash pattern detected in commit message.",
      "severity": "SEC"
    }
  ],
  "summary": {
    "clean_commits": 1,
    "commits_audited": 4,
    "qual": 2,
    "sec": 1,
    "str": 1,
    "total": 5
  }
}

All examples are also available via the agent API: /v1/agent/skills/b8e8d895-85fa-4ecb-9175-e4ce563cfab7/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review