commit-message-storyteller skill
✓ 인증됨코드 diff 또는 변경 사항 설명을 바탕으로 Conventional Commits 규격을 따르는 서사 중심의 스토리 기반 git commit 메시지를 생성합니다.
- GitHub 스타
- 41,038
- 파일
- 2
- 마지막 커밋
- 2026년 11월 11일
- 라이선스
- MIT
- 허용된 도구
- —
commit-message-storyteller skill은 무엇을 하나요?
commit-message-storyteller은(는) agent skill입니다. 코드 diff 또는 변경 사항 설명을 바탕으로 Conventional Commits 규격을 따르는 서사 중심의 스토리 기반 git commit 메시지를 생성합니다.
skill의 SKILL.md에서 생성된 요약입니다.
commit-message-storyteller skill 정보
가공되지 않은 코드 변경 사항으로부터 의도가 담긴 서사 중심의 git commit 메시지를 작성할 수 있습니다. 개발자는 이 SKILL을 사용하여 기술적인 diff를 Conventional Commits 규격에 맞는 구조화된 문서로 변환할 수 있습니다. 단순한 설명을 넘어 수정의 이유와 맥락을 설명하는 메시지를 생성하므로, 팀원들이 버전 히스토리를 훨씬 쉽게 파악할 수 있습니다.
사용자가 git diff, 수정된 파일 목록 또는 최근 작업 내용을 제공하면 에이전트가 이 도구를 로드해야 합니다. 제공된 입력을 분석하여 feat, fix, refactor와 같은 커밋 type을 식별하고, subject line, 상세한 body, 이슈 참조를 위한 footer를 구성합니다. 제공된 diff 출력이나 수동 변경 설명을 바탕으로 해결하려는 근본적인 문제를 추론합니다.
이 도구는 메시지 생성에만 집중하며 git commit 명령을 직접 실행하지 않습니다. 단일 diff에 논리적으로 분리된 변경 사항이 포함된 경우 여러 개의 커밋을 제안함으로써, 사용자가 의미 있는 pull request를 준비하거나 깔끔한 오픈소스 히스토리를 유지할 수 있도록 설계되었습니다.
agent가 수행할 수 있는 작업
- 1diff로부터 메시지 생성가공되지 않은 git diff를 의도가 설명된 구조화된 커밋 메시지로 변환합니다.
- 2커밋 type 식별코드 변경 사항을 기능 추가, 버그 수정 또는 성능 개선과 같은 특정 카테고리로 분류합니다.
- 3breaking changes 문서화breaking changes를 유발하는 수정을 자동으로 감지하여 footer에 표시합니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
commit-message-storyteller skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.Claude Code에 commit-message-storyteller skill 설치
~/.claude/skills/commit-message-storyteller/SKILL.md
$ npx degit github/awesome-copilot/skills/commit-message-storyteller ~/.claude/skills/commit-message-storytellerClaude Code (project)에 commit-message-storyteller skill 설치
.claude/skills/commit-message-storyteller/SKILL.md
$ npx degit github/awesome-copilot/skills/commit-message-storyteller .claude/skills/commit-message-storytellerCodex에 commit-message-storyteller skill 설치
~/.agents/skills/commit-message-storyteller/SKILL.md
$ npx degit github/awesome-copilot/skills/commit-message-storyteller ~/.agents/skills/commit-message-storytellerGemini CLI에 commit-message-storyteller skill 설치
~/.gemini/skills/commit-message-storyteller/SKILL.md
$ npx degit github/awesome-copilot/skills/commit-message-storyteller ~/.gemini/skills/commit-message-storytellerClaude.ai에 commit-message-storyteller skill 설치
npx degit github/awesome-copilot/skills/commit-message-storyteller commit-message-storyteller && zip -r commit-message-storyteller.zip commit-message-storyteller # claude.ai → Customize → Skills → + → Create skill → Upload a skill → commit-message-storyteller.zip
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 보안 감사는 아닙니다. 에이전트가 실행하기 전에 스크립트를 읽어 보세요. 검사 방식
- 소스 저장소 연결 및 접근 가능github/awesome-copilot/skills/commit-message-storyteller is public and reachablegithub.com/github/awesome-copilot/tree/HEAD/skills/commit-me ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit 2026-11-11github.com/github/awesome-copilot/commits ↗통과
- 스크립트에 다운로드 후 실행이나 자격 증명 탈취가 없음No scripts in the skill folder통과
- SKILL.md에 숨겨진 지침 없음No override phrases, safeguard switches, credential requests or hidden charactersgithub.com/github/awesome-copilot/blob/HEAD/skills/commit-me ↗통과
- 사전 허용 도구가 제한됨No pre-approved tools; the agent asks before using onegithub.com/github/awesome-copilot/blob/HEAD/skills/commit-me ↗통과
SKILL.md
GitHub에서 보기Commit Message Storyteller
Transforms raw git diffs and change descriptions into clear, story-driven commit messages that follow the Conventional Commits specification. Instead of "update file.js", you get messages that communicate intent, context, and impact.
When to Use This Skill
- User says "write a commit message"
- User pastes a git diff or describes code changes
- User says "what should I commit this as?" or "summarize my diff"
- User wants better commit history for their team or open-source project
- User is preparing a pull request and wants meaningful commit messages
Prerequisites
Have at least one of the following ready:
- Output from
git difforgit diff --staged - A description of what you changed and why
- A list of modified files
How It Works
Step 1: Gather the Change Context
Ask the user (or infer from the diff) for:
- What changed — files, functions, logic affected
- Why it changed — bug fix, new feature, refactor, performance, etc.
- Who/what triggered it — issue number, user request, tech debt, etc.
If the user provides a raw git diff, extract this context automatically from the diff.
Step 2: Identify the Commit Type
Map the change to a Conventional Commits type using this guide:
| Type | Use When |
|---|---|
feat |
A new feature or capability is added |
fix |
A bug or incorrect behavior is corrected |
refactor |
Code restructured without changing behavior |
perf |
A change that improves performance |
docs |
Documentation only changes |
style |
Formatting, whitespace, missing semicolons (no logic change) |
test |
Adding or updating tests |
build |
Build system or dependency changes |
chore |
Other maintenance that does not change source or tests |
ci |
CI/CD pipeline changes |
revert |
Reverting a previous commit |
See references/conventional-commits-guide.md for detailed examples.
Step 3: Write the Commit Message
Follow this structure:
<type>(<optional scope>): <short imperative summary>
<body — the story: why this change was made, what problem it solves>
<footer — issue refs, breaking change notices>
Rules for Each Part
Subject line (first line):
- Use imperative mood: "add", "fix", "remove" — not "added" or "fixes"
- Max 72 characters
- No period at the end
- Lowercase after the colon
Body (the story):
- Explain the why, not the what (the diff already shows the what)
- Describe the problem that existed before this change
- Mention any alternatives considered if relevant
- Keep lines under 100 characters
- Separate from subject with a blank line
Footer:
- Reference issues:
Closes #123,Fixes #456,Refs #789 - Mark breaking changes:
BREAKING CHANGE: <description>
Step 4: Generate Output
Produce the commit message in a copyable code block, followed by a one-line plain-English explanation of the story you told.
Example output:
fix(auth): prevent token refresh loop on expired sessions
When a user's session expired mid-request, the auth middleware was
triggering a token refresh, which itself failed validation and triggered
another refresh — causing an infinite retry loop that crashed the app.
This adds a recursion guard flag that aborts the refresh cycle if a
refresh is already in progress, returning a clean 401 instead.
Closes #312
Story told: A silent infinite loop on session expiry was crashing the app; this stops the cycle early and returns a clean error.
Multiple Commits from One Diff
If the diff contains logically separate changes, split them into multiple commit messages and tell the user. Use this heuristic:
- Different files with unrelated purposes → likely separate commits
- Same file but distinct concerns (e.g., bug fix + refactor) → suggest splitting
- Everything tightly coupled → one commit is fine
Edge Cases
| Situation | How to Handle |
|---|---|
| User provides no context beyond a diff | Infer type and scope from file names and changed symbols |
| Changes span many files with no clear theme | Ask: "Is this one logical change, or multiple?" |
| Breaking change detected | Add BREAKING CHANGE: footer automatically |
| User says "keep it short" | Omit body, just write a strong subject line |
| No issue number available | Omit the footer entirely |
Quick Reference
# Get your staged diff to paste into Copilot
git diff --staged
# Or get the last uncommitted working tree changes
git diff
See references/conventional-commits-guide.md for type examples and scope guidelines.
이 스킬의 파일
2commit-message-storyteller skill 질문
Claude Code에 commit-message-storyteller skill을 어떻게 설치하나요?
npx degit github/awesome-copilot/skills/commit-message-storyteller ~/.claude/skills/commit-message-storyteller를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
commit-message-storyteller skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
이 SKILL이 실제로 git commit 명령을 수행하나요?
아니요, 메시지 텍스트만 생성합니다. 파일을 스테이징하고 커밋을 실행하려면 git-commit과 같은 별도의 SKILL을 사용해야 합니다.
생성된 커밋 메시지는 어떤 형식을 따르나요?
이 SKILL은 type, optional scope, subject line, body, footer를 포함하는 Conventional Commits 규격을 따릅니다.