Skip to content

Commit 3b43df9

Browse files
committed
feat(skills): add 11 Agent Skills for language and framework standards
- Add javascript-typescript-standards skill with ES2022 and Node.js patterns - Add vue-development skill for Vue 3 Composition API - Add nuxt-development skill for Nuxt 3 with SSR/SSG - Add css-standards skill with organization and best practices - Add tailwind-css skill for Tailwind v4+ configuration - Add html-standards skill with semantic markup and accessibility - Add csharp-standards skill with C# naming conventions - Add dotnet-development skill with .NET architecture patterns - Add markdown-standards skill for documentation formatting - Add testing-tdd skill with TDD workflow and best practices - Add commit-conventions skill with Conventional Commits standard Skills follow Agent Skills specification (https://agentskills.io/specification) for dynamic loading and progressive disclosure (~70% token reduction).
1 parent 696b737 commit 3b43df9

12 files changed

Lines changed: 3285 additions & 0 deletions

File tree

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
---
2+
name: commit-conventions
3+
description: Standards for writing clear and consistent commit messages using Conventional Commits format. Use when making git commits, reviewing commit history, creating pull requests, or when the user asks about commit message formatting, git workflows, or version control best practices.
4+
metadata:
5+
author: devbyray
6+
version: "1.0"
7+
standard: "conventional-commits"
8+
tool: "git"
9+
---
10+
11+
# Commit Message Conventions
12+
13+
Writing clear and consistent commit messages is essential for maintaining an understandable and traceable code history. Follow the **Conventional Commits** format.
14+
15+
## Commit Message Structure
16+
17+
```
18+
<type>[scope]: <short description>
19+
20+
[optional body]
21+
22+
[optional footer]
23+
```
24+
25+
### Components
26+
27+
**`<type>`** (required) - The type of change:
28+
- `feat`: New feature
29+
- `fix`: Bug fix
30+
- `docs`: Documentation changes
31+
- `style`: Code formatting without functional changes
32+
- `refactor`: Code improvements without new features
33+
- `test`: Adding or updating tests
34+
- `chore`: Maintenance tasks (dependency updates, config changes)
35+
- `perf`: Performance improvements
36+
- `ci`: CI/CD configuration changes
37+
- `build`: Build system or dependency changes
38+
39+
**`[scope]`** (optional) - The component, module, or section affected:
40+
- Examples: `(auth)`, `(api)`, `(ui)`, `(header)`, `(footer)`
41+
42+
**`<short description>`** (required) - Brief description of the change:
43+
- Max 50-72 characters
44+
- Use present tense
45+
- Lowercase start (after type)
46+
- No period at the end
47+
48+
**`[body]`** (optional) - Detailed explanation:
49+
- Wrap at 72 characters
50+
- Explain what and why, not how
51+
- Separate from description with blank line
52+
53+
**`[footer]`** (optional) - Breaking changes or issue references:
54+
- `BREAKING CHANGE:` for breaking changes
55+
- Issue references: `Closes #123`, `Fixes #456`
56+
57+
## Commit Message Rules
58+
59+
1. **Concise and specific**: Keep description under 72 characters
60+
2. **Present tense**: Use "Add" not "Added", "Fix" not "Fixed"
61+
3. **No period**: Don't end the description with a period
62+
4. **Imperative mood**: Write as if giving a command
63+
5. **Clear scope**: Use scope to indicate what part of the codebase changed
64+
65+
## Examples
66+
67+
### New Feature
68+
```
69+
feat(header): add dropdown menu to navbar
70+
```
71+
72+
### Bug Fix
73+
```
74+
fix(api): resolve error when fetching user data
75+
```
76+
77+
### Documentation
78+
```
79+
docs(readme): add installation instructions
80+
```
81+
82+
### Code Refactor
83+
```
84+
refactor(utils): restructure formatting logic
85+
```
86+
87+
### Tests
88+
```
89+
test(auth): add tests for password recovery
90+
```
91+
92+
### Maintenance
93+
```
94+
chore(dependencies): update axios to v1.3.0
95+
```
96+
97+
### Performance
98+
```
99+
perf(images): optimize image loading with lazy loading
100+
```
101+
102+
### Breaking Change
103+
```
104+
feat(api): change authentication endpoint structure
105+
106+
BREAKING CHANGE: The /auth endpoint now returns a different response structure.
107+
Clients must update to handle the new format.
108+
```
109+
110+
### With Issue Reference
111+
```
112+
fix(login): prevent memory leak on logout
113+
114+
The logout function was not properly cleaning up event listeners,
115+
causing a memory leak after repeated login/logout cycles.
116+
117+
Fixes #234
118+
```
119+
120+
### Multiple Scopes
121+
```
122+
feat(api, ui): add user profile avatar upload
123+
```
124+
125+
## Bad Examples (Don't Do This)
126+
127+
`Fixed bug` - Too vague, missing type and scope
128+
`feat: Added new feature.` - Has period, past tense
129+
`update readme` - Missing type
130+
`feat(API): Add Feature` - Uppercase scope and description
131+
`WIP commit` - Not descriptive, use proper type
132+
133+
## Good Examples (Do This)
134+
135+
`feat(auth): add two-factor authentication`
136+
`fix(cart): resolve total calculation error`
137+
`docs(api): update endpoint documentation`
138+
`refactor(user-service): simplify user validation logic`
139+
`test(checkout): add integration tests for payment flow`
140+
141+
## Commit Frequency
142+
143+
- Commit early and often
144+
- Each commit should be a logical unit of work
145+
- Commits should not break the build
146+
- Group related changes together
147+
148+
## When to Apply
149+
150+
Apply these conventions when:
151+
- Making any git commit
152+
- Creating pull requests
153+
- Reviewing commit history
154+
- Setting up git hooks
155+
- Generating changelogs
156+
- User asks about commit standards
157+
158+
## Tools
159+
160+
Consider using these tools to enforce commit conventions:
161+
- **commitlint**: Lint commit messages
162+
- **husky**: Git hooks for validation
163+
- **commitizen**: Interactive commit message builder
164+
- **standard-version**: Automated versioning and changelog
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
# Validates commit message format according to Conventional Commits
3+
4+
commit_msg_file=$1
5+
commit_msg=$(cat "$commit_msg_file")
6+
7+
# Conventional Commits pattern
8+
pattern="^(feat|fix|docs|style|refactor|test|chore|perf|ci|build)(\([a-z0-9-]+\))?: .{1,72}$"
9+
10+
if ! echo "$commit_msg" | grep -qE "$pattern"; then
11+
echo "❌ Invalid commit message format!"
12+
echo ""
13+
echo "Expected format: <type>[scope]: <description>"
14+
echo ""
15+
echo "Examples:"
16+
echo " feat(auth): add login feature"
17+
echo " fix(api): resolve data fetching error"
18+
echo " docs(readme): update installation steps"
19+
echo ""
20+
echo "Your message: $commit_msg"
21+
exit 1
22+
fi
23+
24+
echo "✅ Commit message format is valid"
25+
exit 0

0 commit comments

Comments
 (0)