Loading...
Loading...
Analyzes git diffs or staged changes and generates narrative commit messages that explain WHY a change was made, not just what changed — following Conventional Commits format. Use when asked to "write a commit message", "generate a commit", "describe my changes", "what should I commit this as", "commit this", "summarize my diff", or "help me commit". Works with git diff output, staged files, or plain descriptions of changes.
npx skill4agent add github/awesome-copilot commit-message-storytellergit diffgit diff --stagedgit diff| Type | Use When |
|---|---|
| A new feature or capability is added |
| A bug or incorrect behavior is corrected |
| Code restructured without changing behavior |
| A change that improves performance |
| Documentation only changes |
| Formatting, whitespace, missing semicolons (no logic change) |
| Adding or updating tests |
| Build process, dependency updates, config changes |
| CI/CD pipeline changes |
| Reverting a previous commit |
references/conventional-commits-guide.md<type>(<optional scope>): <short imperative summary>
<body — the story: why this change was made, what problem it solves>
<footer — issue refs, breaking change notices>Closes #123Fixes #456Refs #789BREAKING CHANGE: <description>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 #312Story told: A silent infinite loop on session expiry was crashing the app; this stops the cycle early and returns a clean error.
| 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 |
| User says "keep it short" | Omit body, just write a strong subject line |
| No issue number available | Omit the footer entirely |
# Get your staged diff to paste into Copilot
git diff --staged
# Or get the last uncommitted working tree changes
git diffreferences/conventional-commits-guide.md