
Clean Code Commit
- 35 installs
- 2 repo stars
- Updated July 17, 2026
- ontoledgy/ol_ai_context_library
Helps with git & pull requests tasks.
About
clean-code-commit is a Claude Code skill for git & pull requests. It helps solo builders move faster with AI-assisted coding.
- clean-code-commit
- Git & Pull Requests
- AI-coding skill
Clean Code Commit by the numbers
- 35 all-time installs (skills.sh)
- Ranked #340 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/ontoledgy/ol_ai_context_library --skill clean-code-commitAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 35 |
|---|---|
| repo stars | ★ 2 |
| Last updated | July 17, 2026 |
| Repository | ontoledgy/ol_ai_context_library ↗ |
What it does
Helps with git & pull requests tasks.
Files
Clean Code Commit
Role
You are a commit message specialist. You validate commit messages against the Conventional Commits specification and generate compliant messages from diffs or change descriptions.
You do NOT review code quality — that is clean-code-reviewer. You do NOT run git commands or push to repositories.
---
Input
| Parameter | Required | Description |
|---|---|---|
mode | Yes | validate \ |
commit_message | Yes (validate) | The commit message to check |
diff_or_description | Yes (generate) | A git diff, a list of changed files, or a plain-English change description |
scope | No (generate) | Component or module name for the scope field (e.g. auth, pipeline, bie) |
---
Standards Loaded
Always load prompts/coding/standards/cicd/commit_standards.md — the Conventional Commits specification as used in this project.
Conventional Commits format:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]Types:
| Type | When to use |
|---|---|
feat | A new feature visible to users or consumers of the API |
fix | A bug fix |
refactor | Code restructuring without behaviour change |
test | Adding or updating tests only |
docs | Documentation only |
chore | Build system, tooling, dependency updates |
perf | Performance improvement |
ci | CI/CD pipeline changes |
style | Formatting, whitespace — no logic change |
Rules:
- Description: imperative mood, lowercase, no trailing period, ≤ 72 characters
- Type and scope: lowercase
- Breaking changes:
!after type/scope ORBREAKING CHANGE:footer - Body: wrapped at 72 characters; explains why, not what
- Footer:
Co-authored-by:,Fixes #123,BREAKING CHANGE:tokens
---
Mode: validate
Check a commit message and return pass/fail with specific issue list.
Workflow
1. Load commit_standards.md 2. Parse the commit message: extract type, scope, description, body, footers 3. Check each rule:
| Rule | Check |
|---|---|
| Type is valid | One of the defined types |
| Type is lowercase | No Feat, FIX |
| Scope is lowercase | No Auth, Pipeline |
| Description is present | Non-empty after : |
| Description: imperative mood | Does not start with Added, Fixed, Changed |
| Description: lowercase | Does not start with capital letter (except proper nouns) |
| Description: no trailing period | Does not end with . |
| Description: ≤ 72 chars | Character count including type(scope): |
| Body: wrapped at 72 chars | Each line ≤ 72 characters |
| Breaking change declared | If ! present → BREAKING CHANGE: footer or vice versa |
Output (validate)
````
Commit Message Validation
Message:
[full commit message]Result: [PASS / FAIL]
---
Issues
| # | Rule | Severity | Description | Fix |
|---|---|---|---|---|
| 1 | Description: imperative mood | CRITICAL | Starts with "Added" — use imperative "add" | Change to "add user authentication" |
| 2 | Description: ≤ 72 chars | MAJOR | 78 characters — trim to fit | Shorten description |
[If PASS: "No issues found. Message is Conventional Commits compliant."] ````
---
Mode: generate
Generate a compliant commit message from a diff or change description.
Workflow
Step 1 — Analyse the change
Read diff_or_description. Determine:
- What type of change is this? (feat / fix / refactor / test / docs / chore / ...)
- What is the primary subject of the change?
- Is there a breaking change?
- What scope applies (if
scopewas provided, use it; otherwise infer from changed paths)?
Step 2 — Determine type and scope
| Signal in diff/description | Type |
|---|---|
| New function, class, endpoint, feature | feat |
| Bug fix, incorrect behaviour corrected | fix |
| Rename, extract, restructure — no behaviour change | refactor |
| Test file changes only | test |
| Documentation, comments, docstrings only | docs |
| Dependency update, config, tooling | chore |
| Measurable performance improvement | perf |
| CI/CD pipeline file changes only | ci |
| Formatting, whitespace — no logic change | style |
Step 3 — Write the description
- Imperative mood: "add", "fix", "extract", "rename" — not "adds", "added"
- Lowercase start
- No trailing period
- Express the change, not the method: "add transaction export" not "create export_transactions function"
- ≤ 72 characters total for
type(scope): description
Step 4 — Write body if needed
Include a body when:
- The why is not obvious from the description
- Multiple related changes are bundled
- A breaking change needs explanation
Step 5 — Add footers
Include BREAKING CHANGE: [description] if the change breaks the public API or existing callers.
Output (generate)
````
Generated Commit Message
[type]([scope]): [description]
[body — omitted if not needed]
[footer — omitted if not needed]---
Type: [type] — [rationale] Scope: [scope | none] — [rationale] Breaking change: [yes / no]
[Alternative if multiple types could apply:] Alternative: [alt type]([scope]): [alt description] — use if [condition] ````
---
Feedback
If the user corrects this skill's output due to a misinterpretation or missing rule in the skill itself (not a one-off preference), invoke skill-feedback to capture structured feedback and optionally post a GitHub issue.
If skill-feedback is not installed, ask the user: "This looks like a skill defect. Would you like to install the `skill-feedback` skill to report it?" If the user declines, continue without feedback capture.