commit 677bd07bed153943f43170c244833b4878fcf685 Author: zlei9 Date: Sun Mar 29 08:35:39 2026 +0800 Initial commit with translated description diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..668bb95 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,186 @@ +--- +name: conventional-commits +description: "使用Conventional Commits规范格式化提交消息。在创建提交、编写提交消息或用户提及提交、git提交或提交消息时使用。确保提交遵循自动化工具、变更日志生成和语义版本控制的标准格式。" +license: MIT +metadata: + author: github.com/bastos + version: "2.0" +--- + +# Conventional Commits + +Format all commit messages according to the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. This enables automated changelog generation, semantic versioning, and better commit history. + +## Format Structure + +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +## Commit Types + +### Required Types + +- **`feat:`** - A new feature (correlates with MINOR in Semantic Versioning) +- **`fix:`** - A bug fix (correlates with PATCH in Semantic Versioning) + +### Common Additional Types + +- **`docs:`** - Documentation only changes +- **`style:`** - Code style changes (formatting, missing semicolons, etc.) +- **`refactor:`** - Code refactoring without bug fixes or new features +- **`perf:`** - Performance improvements +- **`test:`** - Adding or updating tests +- **`build:`** - Build system or external dependencies changes +- **`ci:`** - CI/CD configuration changes +- **`chore:`** - Other changes that don't modify src or test files +- **`revert:`** - Reverts a previous commit + +## Scope + +An optional scope provides additional contextual information about the section of the codebase: + +``` +feat(parser): add ability to parse arrays +fix(auth): resolve token expiration issue +docs(readme): update installation instructions +``` + +## Description + +- Must immediately follow the colon and space after the type/scope +- Use imperative mood ("add feature" not "added feature" or "adds feature") +- Don't capitalize the first letter +- No period at the end +- Keep it concise (typically 50-72 characters) + +## Body + +- Optional longer description providing additional context +- Must begin one blank line after the description +- Can consist of multiple paragraphs +- Explain the "what" and "why" of the change, not the "how" + +## Breaking Changes + +Breaking changes can be indicated in two ways: + +### 1. Using `!` in the type/scope + +``` +feat!: send an email to the customer when a product is shipped +feat(api)!: send an email to the customer when a product is shipped +``` + +### 2. Using BREAKING CHANGE footer + +``` +feat: allow provided config object to extend other configs + +BREAKING CHANGE: `extends` key in config file is now used for extending other config files +``` + +### 3. Both methods + +``` +chore!: drop support for Node 6 + +BREAKING CHANGE: use JavaScript features not available in Node 6. +``` + +## Examples + +### Simple feature + +``` +feat: add user authentication +``` + +### Feature with scope + +``` +feat(auth): add OAuth2 support +``` + +### Bug fix with body + +``` +fix: prevent racing of requests + +Introduce a request id and a reference to latest request. Dismiss +incoming responses other than from latest request. + +Remove timeouts which were used to mitigate the racing issue but are +obsolete now. +``` + +### Breaking change + +``` +feat!: migrate to new API client + +BREAKING CHANGE: The API client interface has changed. All methods now +return Promises instead of using callbacks. +``` + +### Documentation update + +``` +docs: correct spelling of CHANGELOG +``` + +### Multi-paragraph body with footers + +``` +fix: prevent racing of requests + +Introduce a request id and a reference to latest request. Dismiss +incoming responses other than from latest request. + +Remove timeouts which were used to mitigate the racing issue but are +obsolete now. + +Reviewed-by: Z +Refs: #123 +``` + +## Guidelines + +1. **Always use a type** - Every commit must start with a type followed by a colon and space +2. **Use imperative mood** - Write as if completing the sentence "If applied, this commit will..." +3. **Be specific** - The description should clearly communicate what changed +4. **Keep it focused** - One logical change per commit +5. **Use scopes when helpful** - Scopes help categorize changes within a codebase +6. **Document breaking changes** - Always indicate breaking changes clearly + +## Semantic Versioning Correlation + +- **`fix:`** → PATCH version bump (1.0.0 → 1.0.1) +- **`feat:`** → MINOR version bump (1.0.0 → 1.1.0) +- **BREAKING CHANGE** → MAJOR version bump (1.0.0 → 2.0.0) + +## When to Use + +Use this format for: +- All git commits +- Commit message generation +- Pull request merge commits +- When the user asks about commit messages or git commits + +## Common Mistakes to Avoid + +❌ `Added new feature` (past tense, capitalized) +✅ `feat: add new feature` (imperative, lowercase) + +❌ `fix: bug` (too vague) +✅ `fix: resolve null pointer exception in user service` + +❌ `feat: add feature` (redundant) +✅ `feat: add user profile page` + +❌ `feat: Added OAuth support.` (past tense, period) +✅ `feat: add OAuth support` diff --git a/_meta.json b/_meta.json new file mode 100644 index 0000000..19d7012 --- /dev/null +++ b/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn7ft0vddm5dawrq74as09ccf97ypw9v", + "slug": "conventional-commits", + "version": "1.0.1", + "publishedAt": 1769695599193 +} \ No newline at end of file