Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Draft clear commit messages from staged Git changes without modifying the repository.
.claude/skills/aiskillstore-draft-commit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 906% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 153% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 156% | 0% |
Create a thoughtful, supportive commit message from your staged changes.
Writing good commit messages is an art. This skill helps you capture the essence of your changes in a clear, inviting way that your future self (and teammates) will appreciate.
Your staged changes tell a story. Let's write that story together.
You're about to:
First, we'll look at your staged changes using git diff --cached.
This shows us:
From the changes, we infer:
We craft a message that:
We display the drafted message so you can:
The skill reads from .claude/skills/draft-commit/config.json:
Edit config.json to change defaults:
json{ "style": "supportive", // or "concise" "format": "descriptive", // or "conventional" "messageLength": "concise", // or "detailed" "includeContext": true, "includeFileCounts": true }
Run: git diff --cached
Returns: All staged changes in unified diff formatAnalyze the diff to understand:
From patterns, detect:
feat — New functionalityfix — Bug fixesdocs — Documentation changesrefactor — Code structure improvementstest — Test additions/changeschore — Dependency updates, config changesstyle — Formatting, cleanupperf — Performance improvementsIdentify what part of the system:
Template:
[Brief description of what you did]
[Why this matters — what improves or what it enables]
[Optional: More context if helpful]
[Optional: File counts if configured]Example:
Add StandardsRepository abstraction
Centralizes standards access into a single, reliable interface.
This eliminates duplication and makes the system easier to maintain.
Files:
- Added: lib/standards-repository.md, lib/schemas/standards-schema.json
- Modified: 7 agent/skill files updated to use new pattern
Why: Standards were scattered across multiple files, creating duplication
and coupling. Now there's one clear way to access standards with validation.Template:
[Concise description]
[Brief context if needed]Example:
Centralize standards access
Standards scattered across 7 files now use single repository pattern.Template:
[type]: [description]
[Why this matters / additional context]Example:
refactor: Centralize standards access with repository pattern
Consolidates standards loading into single interface.
Eliminates duplication and improves testability.The skill displays the drafted message like this:
markdown## 📝 Drafted Commit Message [The actual message, ready to copy] --- ## How to Use It 1. Copy the message above 2. Stage your changes: `git add .` (or select specific files) 3. Create the commit: `git commit -m "your message"` Or paste into your editor's commit message prompt. --- **Changes analyzed**: - [X files] changed - [+Y lines] added - [-Z lines] deleted
This keeps you in control. You:
If we encounter issues:
Staged changes: New function + tests + docs
Drafted message:
Add user authentication module
Implements JWT-based authentication for API.
Includes token generation, validation, and refresh logic.
Files:
- auth/jwt-handler.ts (main implementation)
- auth/__tests__/jwt-handler.test.ts (comprehensive tests)
- docs/AUTHENTICATION.md (usage guide)
Why: Enables secure API access. Provides foundation for role-based access control.Staged changes: Fixed bug in error handler
Drafted message:
Fix error handling in API response middleware
Error messages weren't being properly serialized, causing 500 errors
to appear as malformed JSON. Now returns clean error objects.
Files:
- middleware/error-handler.ts (fixed serialization)
- __tests__/error-handler.test.ts (added test case)
This fixes issue #245.Staged changes: Added README and guides
Drafted message:
Document setup and deployment process
Adds comprehensive guides for:
- Local development setup
- Running tests
- Building for production
- Deployment procedures
Files:
- SETUP.md (new)
- DEPLOYMENT.md (new)
- README.md (updated with links)
Why: New contributors need clear guidance. This reduces time to productivity.json{ "style": "concise", "format": "conventional", "messageLength": "concise", "includeContext": true, "includeFileCounts": false }
Output: feat: Add authentication module
json{ "style": "supportive", "format": "descriptive", "messageLength": "detailed", "includeContext": true, "includeFileCounts": true }
Output: Long, detailed message with full context
json{ "style": "concise", "format": "descriptive", "messageLength": "concise", "includeContext": false, "includeFileCounts": false }
Output: Brief, to-the-point message
Q: What if I staged wrong changes? A: Unstage them with git reset HEAD <file> and run /dac again.
Q: Can I edit the drafted message? A: Absolutely! Copy it, edit it, and use your version. It's a draft!
Q: Does this work with conventional commits? A: Yes! Set format: "conventional" in config.json.
Q: Can I configure it differently per project? A: Yes! Each project's config.json is independent. Just edit the file.
This skill demonstrates HQB patterns:
git commit -m "your message"| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-19 | fail→pass | 11,175 | 5,005 | -55% | 1 | 1 | 0% | 2,069 | 3,142 | +52% | 0 | 0 | — |
case-01 | fail→fail | 3,598 | 4,895 | +36% | 1 | 1 | 0% | 619 | 2,453 | +296% | 0 | 0 | — |
case-02 | fail→fail | 6,011 | 5,172 | -14% | 1 | 1 | 0% | 941 | 2,460 | +161% | 0 | 0 | — |
case-03 | fail→fail | 5,051 | 4,192 | -17% | 1 | 1 | 0% | 791 | 2,534 | +220% | 0 | 0 | — |
case-04 | pass→pass | 2,058 | 3,483 | +69% | 1 | 1 | 0% | 295 | 2,781 | +843% | 0 | 0 | — |
case-13 | pass→pass | 7,434 | 2,682 | -64% | 1 | 1 | 0% | 1,373 | 2,692 | +96% | 0 | 0 | — |
case-05 | fail→pass | 1,974 | 4,015 | +103% | 1 | 1 | 0% | 291 | 2,927 | +906% | 0 | 0 | — |
case-06 | fail→fail | 6,205 | 11,287 | +82% | 1 | 1 | 0% | 1,099 | 4,000 | +264% | 0 | 0 | — |
case-07 | fail→pass | 16,588 | 3,315 | -80% | 1 | 1 | 0% | 3,466 | 2,843 | -18% | 0 | 0 | — |
case-08 | fail→pass | 6,107 | 3,211 | -47% | 1 | 1 | 0% | 1,135 | 2,876 | +153% | 0 | 0 | — |
case-14 | pass→pass | 9,810 | 4,748 | -52% | 1 | 1 | 0% | 1,767 | 3,072 | +74% | 0 | 0 | — |
case-09 | fail→pass | 5,869 | 2,694 | -54% | 1 | 1 | 0% | 1,066 | 2,728 | +156% | 0 | 0 | — |
case-10 | pass→pass | 6,758 | 4,047 | -40% | 1 | 1 | 0% | 1,206 | 2,830 | +135% | 0 | 0 | — |
case-11 | pass→pass | 2,784 | 2,847 | +2% | 1 | 1 | 0% | 511 | 2,634 | +415% | 0 | 0 | — |
case-12 | pass→pass | 5,209 | 1,844 | -65% | 1 | 1 | 0% | 867 | 2,526 | +191% | 0 | 0 | — |
case-15 | fail→fail | 7,706 | 5,751 | -25% | 1 | 1 | 0% | 1,305 | 3,120 | +139% | 0 | 0 | — |
case-16 | pass→pass | 2,883 | 1,931 | -33% | 1 | 1 | 0% | 417 | 2,560 | +514% | 0 | 0 | — |
case-17 | pass→pass | 7,486 | 3,383 | -55% | 1 | 1 | 0% | 1,215 | 2,852 | +135% | 0 | 0 | — |
case-18 | pass→pass | 5,264 | 2,376 | -55% | 1 | 1 | 0% | 902 | 2,577 | +186% | 0 | 0 | — |
case-20 | pass→pass | 7,023 | 4,278 | -39% | 1 | 1 | 0% | 1,278 | 2,845 | +123% | 0 | 0 | — |
case-21 | pass→pass | 10,021 | 3,579 | -64% | 1 | 1 | 0% | 1,654 | 2,812 | +70% | 0 | 0 | — |
case-22 | fail→pass | 8,880 | 3,024 | -66% | 1 | 1 | 0% | 1,598 | 2,746 | +72% | 0 | 0 | — |
case-23 | fail→pass | 8,196 | 3,127 | -62% | 1 | 1 | 0% | 1,338 | 2,717 | +103% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +30 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.