Install
$ agentstack add skill-octivi-skills-git-commits ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Git Commits
Write clear, structured commit messages that explain what changed and why.
Goal
Help readers and tools quickly understand commit intent, impact, and context.
Canonical rules table
Use this table as the single source of truth.
| ID | Scope | Requirement | | -------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | FMT-1 | Message shape | Commit message MUST follow: [optional scope]: , optional body, optional footer(s), with blank lines between sections. | | FMT-2 | Allowed types | Type MUST be one of: feat, fix, docs, refactor, chore, revert. | | FMT-3 | Header length | Header SHOULD be with migration impact. | | FMT-6 | Scope | Scope is optional and SHOULD be used when it improves clarity. | | FMT-7 | Unsupported type requests | If the requested type is outside the allowed set, output MUST map to the closest allowed type. In rewrite and review modes, output MUST explicitly explain the mapping; in draft mode, explanation SHOULD be omitted unless the user asks for rationale. | | FMT-8 | Non-subject line length | Every commit message line after the header SHOULD be trailers when multiple people co-authored the change. | | REV-1 | Reverts | revert commits SHOULD repeat reverted header and body SHOULD include This reverts commit . | | HYG-1 | Atomicity | Commits SHOULD be small, logical, and atomic; avoid mixing unrelated changes. | | HYG-2 | Whitespace changes | Significant whitespace-only changes SHOULD be in a separate commit. | | HYG-3 | Tests | If code changes require test updates, include test updates in the same commit. |
Semver intent by type
feat-> minor version intentfix-> patch version intentdocs-> patch version intentrefactor-> no release bump intentchore-> no release bump intentrevert-> depends on reverted change impact
Input model
[optional scope]:
[optional body]
[optional footer(s)]
Output contract
Choose exactly one mode based on user intent:
draft
- Output only one final commit message, ready to paste into
git commit. - Do not add explanatory prose unless the user explicitly asks for explanation.
rewrite
- Output one rewritten commit message first.
- Then provide a short
Why this is betterlist focused on violated rule IDs.
review
- Output
Findingsfirst, ordered by severity and linked to rule IDs. - If fixes are needed, include
Proposed messageafter findings.
Unsupported type mapping
If a user asks for a non-supported type, keep the intent but map to allowed types:
feature->featbugfix,hotfix->fixperf->refactorstyle,test,ci,build->chore
When mapping is used in rewrite or review, explicitly state: Mapped requested type to to satisfy FMT-2.
Type compatibility with other skills
- This skill enforces a strict output type set (
feat,fix,docs,refactor,chore,
revert) per FMT-2.
- This restriction applies to messages authored/rewritten by this skill, not to historical commits
that may already use broader Conventional Commit variants.
- The
common-changelogskill MAY ingest broader input types from history (perf,style,test,
ci, build) and classify them for changelog purposes.
Authoring workflow
- Identify the smallest logical change set; recommend split commits if input is too broad.
- Choose
type(and optionalscope) by user impact. - If requested type is unsupported, apply
Unsupported type mapping.
Explain mapping in rewrite/review; in draft, explain only when user asks for rationale.
- Draft concise imperative subject.
- Add body only when extra context is needed; explain why and behavior delta.
- Add footers/trailers (
See:,Co-authored-by:,BREAKING CHANGE:) as needed. - Run
Quality checklist.
Quality checklist
- Validate all applicable
FMT-*,BODY-*,FTR-*,REV-*, andHYG-*rules. - Ensure final message is copy-paste ready for
git commit. - Ensure unsupported type requests are mapped and explained when required by output mode.
- For detailed conventions and more examples, verify against
references/git-commit.md.
Prompt templates
Write a Conventional Commit message for these staged changes.Rewrite this commit message to follow Conventional Commits and explain why your version is better.Split this change into 2-3 atomic commits and propose a commit message for each.
References
references/git-commit.md(local detailed guide and examples)- https://conventionalcommits.org
- https://git-scm.com/docs/git-interpret-trailers
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: octivi
- Source: octivi/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.