← Back to Skills

commit-linter

v1.0.0 approved Development ⬇ 11 ↑ 11/7d updated today
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o commit-linter.skill   "https://aiskillstore.io/v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "15009196-4c60-418d-85dc-01d27e554c41",
    "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

Conventional Commits v1.0 linter with 5 actions: lint, parse, suggest_fix, audit, generate_template. Zero external dependencies, breaking-change detection, 50/72 rule, Korean support.

# git # commit # conventional-commits # linter # development # korean # code-quality

Basic Info

Owner 👤 aiskillstore-team Category Development Registered 2026-05-05 Last Updated 2026-05-05 Latest Version 1.0.0 Packaged At 2026-05-05 Vetting Status approved Downloads 11 Checksum (SHA256) ecb066fe70c2da90bd82c3a4337ebce8b66bbada7ca780b7e4c9e29f279bb166

⚡ AGENT INFO USK v3

Capabilities
commit_message_linting conventional_commits_validation breaking_change_detection commit_audit korean_commit_support
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=OpenClaw GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=ClaudeCode GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=Cursor GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=GeminiCLI GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=CodexCLI GET /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install commit-linter
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install commit-linter --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/15009196-4c60-418d-85dc-01d27e554c41/download
2
Place it in the Claude Code commands directory.
unzip commit-linter.skill -d ~/.claude/commands/commit-linter/
3
Use it as a slash command in Claude Code.
/commit-linter
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip commit-linter-agent-skill-*.skill -d ~/.claude/skills/commit-linter/
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/15009196-4c60-418d-85dc-01d27e554c41/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip commit-linter-cursor-*.skill -d ~/.cursor/skills/commit-linter/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/commit-linter/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip commit-linter-geminicli-*.skill -d ~/.gemini/skills/commit-linter/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/commit-linter/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip commit-linter-codexcli-*.skill -d ~/.codex/skills/commit-linter/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/commit-linter/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/15009196-4c60-418d-85dc-01d27e554c41/download
2
Place it in your agent platform's skills directory.
cp commit-linter.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/15009196-4c60-418d-85dc-01d27e554c41/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result CAUTION

🚨 Security risks detected:

  • main.py: __import__(

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

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary Conventional Commits v1.0 표준을 준수하는 커밋 메시지 린터 스킬입니다. 선언된 권한을 잘 준수하며, 악의적인 코드가 발견되지 않았습니다.

Issues Found

  • 정적 분석에서 'main.py: __import__(' 사용이 감지되었으나, 이는 'os' 모듈을 동적으로 로드하여 현재 파일의 경로를 얻는 용도로, 로컬 모듈 임포트를 위한 일반적인 파이썬 관용구이며 보안 위험으로 간주되지 않습니다.
Reasoning

스킬 메타데이터에 따르면 네트워크, 파일 시스템, 서브프로세스 접근 권한이 모두 'false'로 선언되어 있습니다. 코드(`main.py`, `lib/parser.py`)를 분석한 결과, 이 선언을 충실히 준수하고 있음을 확인했습니다. `main.py`의 `sys.path.insert(0, __import__('os').path.dirname(__file__))` 구문은 정적 분석에서 플래그되었지만, 이는 `lib/parser.py`와 같은 로컬 모듈을 올바르게 임포트하기 위해 현재 스크립트의 디렉토리를 `sys.path`에 추가하는 안전한 용도로 사용됩니다. 이는 임의의 파일 시스템 접근이나 악의적인 코드 로딩과는 무관합니다. 스킬의 모든 기능은 순수하게 입력된 커밋 메시지 문자열을 처리하는 계산 작업으로 이루어져 있으며, 외부 통신이나 사용자 데이터 무단 수집/전송의 흔적은 발견되지 않았습니다. 코드 품질은 양호하며 스킬의 목적과 일치합니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-05-05 ⬇ 11

Examples 8

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

lint_valid
# lint# valid# feat

정상 커밋 메시지 lint 성공 / Valid conventional commit passes lint

📥 Input
{
  "action": "lint",
  "message": "feat(auth): add OAuth2 login support"
}
📤 Output
{
  "action": "lint",
  "errors": [],
  "valid": true,
  "warnings": []
}
lint_invalid_type
# lint# invalid# type-error

잘못된 타입 감지 / Invalid commit type detected

📥 Input
{
  "action": "lint",
  "message": "update: fixed the login bug"
}
📤 Output
{
  "action": "lint",
  "errors": [
    {
      "code": "CC-001",
      "fix_hint": {
        "action": "replace",
        "field": "type",
        "reference": "https://www.conventionalcommits.org/en/v1.0.0/",
        "suggested_replacement": "fix"
      },
      "message": "\ucee4\ubc0b \ud0c0\uc785 \u0027update\u0027\uac00 Conventional Commits \ud45c\uc900\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4 / Type \u0027update\u0027 is not a valid Conventional Commits type"
    }
  ],
  "valid": false,
  "warnings": []
}
lint_breaking_change
# lint# breaking-change# warning

파괴적 변경(!) 자동 감지 / Breaking change detected via ! notation

📥 Input
{
  "action": "lint",
  "message": "feat(api)!: remove deprecated v1 endpoints"
}
📤 Output
{
  "action": "lint",
  "errors": [],
  "valid": true,
  "warnings": [
    {
      "code": "CC-W001",
      "fix_hint": {
        "action": "review",
        "field": "breaking",
        "reference": "https://www.conventionalcommits.org/en/v1.0.0/#specification",
        "suggested_replacement": "BREAKING CHANGE: footer or \u0027!\u0027 notation confirmed"
      },
      "message": "\ud30c\uad34\uc801 \ubcc0\uacbd\uc774 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4 \u2014 \uba54\uc774\uc800 \ubc84\uc804 \uc5c5\uc774 \ud544\uc694\ud569\ub2c8\ub2e4 / Breaking change detected \u2014 major version bump required"
    }
  ]
}
parse_full
# parse# footer# breaking

body + footer 포함 커밋 전체 파싱 / Full commit message parsing with body and footer

📥 Input
{
  "action": "parse",
  "message": "fix(db)!: correct connection pool timeout\n\nPrevious default of 30s caused hangs under load.\nIncreased to 120s with configurable override.\n\nBREAKING CHANGE: DB_TIMEOUT env var now required\nCloses #42"
}
📤 Output
{
  "action": "parse",
  "parsed": {
    "body": "Previous default of 30s caused hangs under load.\nIncreased to 120s with configurable override.",
    "breaking": true,
    "footers": [
      {
        "token": "BREAKING CHANGE",
        "value": "DB_TIMEOUT env var now required"
      },
      {
        "token": "Closes",
        "value": "#42"
      }
    ],
    "scope": "db",
    "subject": "correct connection pool timeout",
    "type": "fix"
  }
}
suggest_fix_multiple_issues
# suggest_fix# autofix# multiple

여러 문제 자동 수정 제안 / Suggest fix for multiple issues at once

📥 Input
{
  "action": "suggest_fix",
  "message": "Update(API) : Added new payment endpoint and updated docs and fixed small bugs"
}
📤 Output
{
  "action": "suggest_fix",
  "errors": [],
  "explanation": [
    "\ud0c0\uc785 \u0027Update\u0027 \u2192 \uc18c\ubb38\uc790 \u0027feat\u0027 \ub85c \uc218\uc815 / Lowercased type \u0027Update\u0027 \u2192 \u0027feat\u0027",
    "\uc2a4\ucf54\ud504 \u0027API\u0027 \u2192 \uc18c\ubb38\uc790 \u0027api\u0027 / Lowercased scope \u0027API\u0027 \u2192 \u0027api\u0027",
    "\ud5e4\ub354\uc640 \uc124\uba85 \uc0ac\uc774\uc758 \ubd88\ud544\uc694\ud55c \uacf5\ubc31 \uc81c\uac70 / Removed extra space after colon",
    "subject 54\uc790 \u2192 47\uc790\ub85c \ub2e8\ucd95 \uad8c\uc7a5 / Subject length 54 \u2192 47 chars (guideline: \u226450)"
  ],
  "suggested_message": "feat(api): add new payment endpoint, update docs, and fix small bugs",
  "valid": false,
  "warnings": []
}
audit_batch
# audit# batch# summary

여러 커밋 일괄 감사 / Batch audit of multiple commit messages

📥 Input
{
  "action": "audit",
  "messages": [
    "feat: add user profile page",
    "WIP saving progress",
    "fix(auth): resolve token expiry edge case",
    "docs: update README",
    "cleanup stuff"
  ]
}
📤 Output
{
  "action": "audit",
  "results": [
    {
      "errors": [],
      "message": "feat: add user profile page",
      "valid": true
    },
    {
      "errors": [
        {
          "code": "CC-001",
          "message": "\ucee4\ubc0b \ud0c0\uc785 \u0027WIP\u0027\uac00 \ud45c\uc900\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4 / Type \u0027WIP\u0027 not in standard list"
        }
      ],
      "message": "WIP saving progress",
      "valid": false
    },
    {
      "errors": [],
      "message": "fix(auth): resolve token expiry edge case",
      "valid": true
    },
    {
      "errors": [],
      "message": "docs: update README",
      "valid": true
    },
    {
      "errors": [
        {
          "code": "CC-002",
          "message": "\ud5e4\ub354 \ud615\uc2dd \uc624\ub958 \u2014 \u0027type: subject\u0027 \uad6c\uc870\uac00 \uc544\ub2d9\ub2c8\ub2e4 / Header format error \u2014 not \u0027type: subject\u0027 structure"
        }
      ],
      "message": "cleanup stuff",
      "valid": false
    }
  ],
  "summary": {
    "breaking_count": 0,
    "invalid": 2,
    "total": 5,
    "type_distribution": {
      "docs": 1,
      "feat": 1,
      "fix": 1
    },
    "valid": 3
  }
}
generate_template
# generate# template# chore

커밋 템플릿 생성 / Generate a properly formatted commit message

📥 Input
{
  "action": "generate_template",
  "body": "Required for Python 3.13 compatibility.",
  "is_breaking": false,
  "scope": "deps",
  "subject": "upgrade pytest to 8.x",
  "type": "chore"
}
📤 Output
{
  "action": "generate_template",
  "template": "chore(deps): upgrade pytest to 8.x\n\nRequired for Python 3.13 compatibility."
}
lint_korean_commit
# lint# korean# feat

한국어 커밋 메시지 검증 / Korean commit message validation

📥 Input
{
  "action": "lint",
  "message": "feat(\uacb0\uc81c): \uce74\uce74\uc624\ud398\uc774 \uc5f0\ub3d9 \ucd94\uac00"
}
📤 Output
{
  "action": "lint",
  "errors": [],
  "valid": true,
  "warnings": []
}

All examples are also available via the agent API: /v1/agent/skills/15009196-4c60-418d-85dc-01d27e554c41/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review