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 Skillsです。 コードのdiffや変更内容の説明に基づき、Conventional Commits仕様に準拠した、ストーリー性のある意図が伝わるgit commitメッセージを生成します。.
skillのSKILL.mdから生成された要約。
commit-message-storyteller skill について
このSKILLは、生のコード変更から、物語的で意図に焦点を当てたgit commitメッセージの作成を可能にします。開発者はこれを利用して、技術的なdiffをConventional Commits仕様に沿った構造化されたドキュメントへと変換できます。単なる説明ではなく、変更の背後にある理由や文脈を説明するメッセージを生成するため、チームにとってバージョン履歴が非常に読みやすくなります。
ユーザーがgit diff、変更されたファイルの一覧、または最近の作業内容の説明を提供した際、エージェントはこのツールをロードすべきです。提供された入力を分析して、feat、fix、refactorなどのコミットタイプを特定し、subject line、詳細なbody、およびIssue参照用のfooterを構築します。提供されたdiffの出力や手動による変更説明に基づいて、解決しようとしている根本的な問題を推論します。
このツールはメッセージの生成に完全に特化しており、git commitコマンドを実行することはありません。単一のdiffに論理的に分離された複数の変更が含まれている場合に複数のコミットを提案することで、意味のあるプルリクエストの準備や、クリーンなオープンソースの履歴維持を支援するように設計されています。
エージェントができること
- 1diffからメッセージを生成生のgit diffを、意図を説明する構造化されたコミットメッセージに変換します。
- 2コミットタイプの特定コードの変更を、機能追加、バグ修正、パフォーマンス改善などの特定のカテゴリにマッピングします。
- 3破壊的変更のドキュメント化破壊的変更を導入する修正を自動的に検出し、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、任意のscope、subject line、body、footerを含むConventional Commits仕様に従います。