Agent skill
draft-commit
Create a thoughtful, supportive commit message from your staged changes.
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/abejitsu/draft-commit
SKILL.md
Draft a Commit
Create a thoughtful, supportive commit message from your staged changes.
Welcome
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.
What You're Doing
You're about to:
- Review what you've staged
- Understand the nature of your changes
- Create a commit message that captures both what AND why
- Copy that message and use it when you commit
How It Works
Step 1: Analyzing Staged Changes
First, we'll look at your staged changes using git diff --cached.
This shows us:
- What files changed: Which files did you touch?
- What changed in them: Added lines? Deleted? Refactored?
- Patterns: Can we detect what you were working on?
Step 2: Understanding Intent
From the changes, we infer:
- Type of work: Feature? Bug fix? Refactoring? Documentation?
- Scope: Which part of the system?
- Impact: What improves? What does this enable?
Step 3: Drafting the Message
We craft a message that:
- Is specific: Not "Update files" but "Add StandardsRepository abstraction"
- Explains why: Not just what changed, but why it matters
- Shows confidence: Your changes are worth celebrating
- Invites understanding: Future readers will understand your intent
Step 4: Sharing with You
We display the drafted message so you can:
- Review it
- Copy it
- Use it in your git commit command
Configuration
Loading Configuration
The skill reads from .claude/skills/draft-commit/config.json:
- style: How the message sounds ("supportive" or "concise")
- format: Message structure ("descriptive" or "conventional")
- messageLength: How much detail ("concise" or "detailed")
- includeContext: Add explanatory context (true/false)
- includeFileCounts: Show file/line counts (true/false)
Customizing Behavior
Edit config.json to change defaults:
{
"style": "supportive", // or "concise"
"format": "descriptive", // or "conventional"
"messageLength": "concise", // or "detailed"
"includeContext": true,
"includeFileCounts": true
}
Process
Get Staged Changes
Run: git diff --cached
Returns: All staged changes in unified diff format
Categorize Changes
Analyze the diff to understand:
- Added files, deleted files, modified files
- Lines added, lines deleted
- Change patterns (new feature, bug fix, refactoring, docs, etc.)
Infer Work Type
From patterns, detect:
feat— New functionalityfix— Bug fixesdocs— Documentation changesrefactor— Code structure improvementstest— Test additions/changeschore— Dependency updates, config changesstyle— Formatting, cleanupperf— Performance improvements
Determine Scope
Identify what part of the system:
- Components affected
- Modules changed
- Features impacted
Draft the Message
For Supportive Style + Descriptive Format
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.
For Concise Style
Template:
[Concise description]
[Brief context if needed]
Example:
Centralize standards access
Standards scattered across 7 files now use single repository pattern.
For Conventional Format
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.
Output Format
The skill displays the drafted message like this:
## 📝 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
Important Notes
What This Does
- Analyzes your staged changes only
- Drafts a message for you to review
- Shows the message in chat for easy copying
- Does NOT commit automatically
What This Doesn't Do
- Does NOT make the commit (you do that)
- Does NOT stage changes (you do that)
- Does NOT modify your repository
Why This Matters
This keeps you in control. You:
- Stage your changes carefully
- See what we're proposing
- Decide if it's right
- Make the commit yourself
Error Handling
If we encounter issues:
- No staged changes: We'll let you know and suggest staging first
- Unclear intent: We'll ask for clarification or offer suggestions
- Config issues: We'll use defaults and let you know
Tips for Great Commit Messages
- Stage intentionally: Group related changes together
- Small commits: Easier to understand and review
- Specific: "Add validation" not "Update files"
- Why matters: Explain the reasoning, not just the changes
- Present tense: "Add feature" not "Added feature"
Examples
Example 1: Feature Addition
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.
Example 2: Bug Fix
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.
Example 3: Documentation
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.
Configuration Examples
For Conventional Commits
{
"style": "concise",
"format": "conventional",
"messageLength": "concise",
"includeContext": true,
"includeFileCounts": false
}
Output: feat: Add authentication module
For Detailed Messages
{
"style": "supportive",
"format": "descriptive",
"messageLength": "detailed",
"includeContext": true,
"includeFileCounts": true
}
Output: Long, detailed message with full context
For Concise Updates
{
"style": "concise",
"format": "descriptive",
"messageLength": "concise",
"includeContext": false,
"includeFileCounts": false
}
Output: Brief, to-the-point message
Troubleshooting
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.
Integration with HQB
This skill demonstrates HQB patterns:
- Supportive tone: Guides without judgment
- Focused clarity: One clear purpose
- Considerate approach: Respects your autonomy
- Skill architecture: Reusable, configurable logic
Next Steps After Using This
- Copy the drafted message
- Review your changes one more time
- Make your commit with
git commit -m "your message" - Continue building awesome things!
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?