skillby yi-john-huang
sdd-commit
Guide commit message and PR creation for SDD workflow. Use when committing changes, creating pull requests, or documenting changes. Invoked via /sdd-commit.
Installs: 0
Used in: 1 repos
Updated: 1w ago
$
npx ai-builder add skill yi-john-huang/sdd-commitInstalls to .claude/skills/sdd-commit/
# SDD Commit & PR Guidelines
Create clear, consistent commit messages and pull requests that document changes effectively.
## Commit Message Format
Follow the Conventional Commits specification:
```
<type>(<scope>): <subject>
[optional body]
[optional footer(s)]
```
### Type Prefixes
| Type | When to Use | Example |
|------|-------------|---------|
| `feat` | New feature | `feat(auth): add JWT refresh token` |
| `fix` | Bug fix | `fix(api): handle null user response` |
| `docs` | Documentation only | `docs(readme): update installation steps` |
| `style` | Formatting, no code change | `style(lint): fix linter warnings` |
| `refactor` | Code change, no new feature or fix | `refactor(user): extract validation logic` |
| `perf` | Performance improvement | `perf(query): add index for user lookup` |
| `test` | Adding/updating tests | `test(auth): add login failure tests` |
| `build` | Build system changes | `build(deps): update dependencies` |
| `ci` | CI/CD changes | `ci(github): add test workflow` |
| `chore` | Other changes | `chore(deps): bump lodash version` |
| `revert` | Revert previous commit | `revert: feat(auth): add JWT refresh` |
### Scope
The scope should indicate the area affected:
```
feat(auth): # Authentication module
fix(api/users): # Users API endpoint
docs(readme): # README file
test(e2e): # End-to-end tests
refactor(db): # Database layer
```
### Subject Line
- Use imperative mood: "add" not "added" or "adds"
- Don't capitalize first letter
- No period at the end
- Max 50 characters
```
# GOOD
feat(auth): add password reset flow
fix(cart): prevent duplicate items
# BAD
feat(auth): Added password reset flow.
fix(cart): Fixes the duplicate items bug
```
### Body (Optional)
Use for explaining:
- **What** changed and **why**
- Breaking changes
- Related issues
```
feat(auth): add multi-factor authentication
Implement TOTP-based 2FA for enhanced security.
Users can now enable 2FA from their profile settings.
- Add TOTP secret generation
- Add QR code for authenticator apps
- Add backup codes for recovery
Closes #123
```
### Footer (Optional)
```
BREAKING CHANGE: API endpoint changed from /users to /api/v1/users
Refs: #123, #456
Co-authored-by: Name <email@example.com>
```
## Pull Request Template
```markdown
## Summary
<!-- 1-3 bullet points describing the changes -->
- Add user authentication with JWT
- Implement password reset flow
- Add comprehensive test coverage
## Motivation
<!-- Why is this change needed? -->
Users need secure authentication to access protected resources.
## Changes
<!-- Detailed list of changes -->
### Added
- `AuthService` for handling authentication logic
- `JWTProvider` for token generation/validation
- Unit and integration tests for auth flow
### Changed
- Updated `UserController` to use AuthService
- Modified API routes to require authentication
### Removed
- Deprecated session-based authentication
## Testing
<!-- How was this tested? -->
- [x] Unit tests pass
- [x] Integration tests pass
- [x] Manual testing completed
- [ ] E2E tests (pending)
## Screenshots
<!-- If applicable -->
## Checklist
- [x] Code follows project style guidelines
- [x] Tests added/updated
- [x] Documentation updated
- [x] No breaking changes (or documented)
- [x] Security considerations reviewed
## Related Issues
Closes #123
Refs #456
```
## Commit Best Practices
### Atomic Commits
Each commit should be one logical change:
```bash
# GOOD: Separate commits for separate changes
git commit -m "feat(user): add email validation"
git commit -m "test(user): add email validation tests"
# BAD: Multiple unrelated changes
git commit -m "add email validation, fix bug, update docs"
```
### Commit Frequency
- Commit when a logical unit is complete
- Don't commit broken code
- Small, frequent commits are better than large, infrequent ones
### Commit Message Examples
#### Feature
```
feat(cart): add quantity update functionality
Allow users to update item quantities directly from the cart.
Includes optimistic UI updates and error handling.
- Add updateQuantity method to CartService
- Add quantity input component
- Add debounced API calls
Closes #234
```
#### Bug Fix
```
fix(auth): prevent session fixation attack
Regenerate session ID after successful login to prevent
session fixation attacks.
Security: OWASP A7 - Identification and Authentication Failures
```
#### Refactor
```
refactor(api): extract common error handling
Move error handling logic to middleware for consistency
across all API endpoints.
- Create ErrorHandlerMiddleware
- Add custom error classes
- Update all controllers to throw custom errors
No functional changes.
```
#### Breaking Change
```
feat(api)!: change user endpoint response format
BREAKING CHANGE: The /api/users endpoint now returns
a paginated response instead of an array.
Before:
[{ id: 1, name: "John" }, ...]
After:
{
data: [{ id: 1, name: "John" }, ...],
pagination: { page: 1, total: 100 }
}
Migration: Update all clients to handle the new response format.
```
## Branch Naming
```
<type>/<ticket>-<description>
Examples:
feature/AUTH-123-jwt-authentication
bugfix/CART-456-duplicate-items
hotfix/PROD-789-security-patch
chore/update-dependencies
```
## Git Workflow
### Before Committing
```bash
# Check status
git status
# Review changes
git diff
# Stage specific files
git add src/auth/
# Or stage all
git add -A
```
### Creating Commit
```bash
# With message
git commit -m "feat(auth): add login endpoint"
# Open editor for longer message
git commit
```
### Before PR
```bash
# Update from main
git fetch origin main
git rebase origin/main
# Run tests
{your test command} # e.g., npm test, pytest, cargo test, go test
# Push
git push origin feature/AUTH-123-jwt-auth
```
## Quality Checklist
- [ ] Commit message follows format
- [ ] Type prefix is appropriate
- [ ] Scope is specific
- [ ] Subject is imperative and concise
- [ ] Body explains why (if needed)
- [ ] Breaking changes documented
- [ ] Related issues linked
- [ ] Branch name follows convention
- [ ] Tests pass before commit
- [ ] PR description completeQuick Install
$
npx ai-builder add skill yi-john-huang/sdd-commitDetails
- Type
- skill
- Author
- yi-john-huang
- Slug
- yi-john-huang/sdd-commit
- Created
- 1w ago