<< All versions
Skill v1.0.1
currentAutomated scan100/100gentleman-programming/engram/commit-hygiene
2 files
──Details
PublishedJune 21, 2026 at 03:35 PM
Content Hashsha256:c605c942b213de4b...
Git SHA44faeee1fb4f
Bump Typepatch
──Files
Files (1 file, 4.1 KB)
SKILL.md4.1 KBactive
SKILL.md · 139 lines · 4.1 KB
version: "1.0.1" name: engram-commit-hygiene description: > Commit and branch naming standards for Engram contributors, enforced by GitHub rulesets. Trigger: Any commit creation, review, or branch cleanup. license: Apache-2.0 metadata: author: gentleman-programming version: "2.0"
When to Use
Use this skill when:
- Creating commits
- Creating or naming branches
- Reviewing commit history in a PR
- Cleaning up staged changes
Critical Rules
- Commit messages MUST follow Conventional Commits — enforced by GitHub ruleset, rejected on push if invalid
- Branch names MUST follow `type/description` format — enforced by GitHub ruleset, rejected on push if invalid
- Keep one logical change per commit
- Message should explain why, not only what
- NEVER include
Co-Authored-Bytrailers - NEVER commit generated/temp/local files
Commit Message Format (enforced by GitHub ruleset)
Regex: ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([a-z0-9\._-]+\))?!?: .+
<type>(<optional-scope>): <description><type>(<optional-scope>)!: <description> ← breaking change
Allowed Types
| Type | Purpose | |
|---|---|---|
feat | New feature | |
fix | Bug fix | |
docs | Documentation only | |
refactor | Code refactoring (no behavior change) | |
chore | Maintenance, dependencies | |
style | Formatting, whitespace | |
perf | Performance improvement | |
test | Adding or fixing tests | |
build | Build system changes | |
ci | CI/CD pipeline changes | |
revert | Revert a previous commit |
Rules
- Type MUST be lowercase, one of the listed values
- Scope is optional, lowercase, allows
a-z,0-9,.,_,- !before:marks a breaking change- Description MUST start after
:(colon + space) - Description should be imperative mood ("add", not "added" or "adds")
Valid Examples
feat(cli): add --json flag to session list commandfix(store): prevent duplicate observation insert on retrydocs(contributing): update workflow documentationrefactor(internal): extract search query sanitizerchore(deps): bump github.com/charmbracelet/bubbletea to v0.26style(tui): fix alignment in session detail viewperf(store): optimize FTS5 query for large datasetstest(sync): add coverage for conflict resolutionci(workflows): split e2e into separate jobfix!: change session ID format
Invalid Examples (push will be rejected)
Fix bug ← no type prefixfeat: Add login ← description should be lowercaseFEAT(cli): add flag ← type must be lowercasefeat (cli): add flag ← no space before scopefeat(CLI): add flag ← scope must be lowercaseupdate docs ← no conventional commit format
Branch Naming Format (enforced by GitHub ruleset)
Regex: ^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)\/[a-z0-9._-]+$
<type>/<description>
Allowed Types
feat, fix, chore, docs, style, refactor, perf, test, build, ci, revert
Rules
- Type MUST be one of the listed values
- Description MUST be lowercase
- Only
a-z,0-9,.,_,-allowed in description - No uppercase, no spaces, no special characters
Valid Examples
feat/json-export-commandfix/duplicate-observation-insertdocs/api-reference-updaterefactor/extract-query-sanitizerchore/bump-bubbletea-v0.26ci/split-e2e-job
Invalid Examples (push will be rejected)
feature/add-login ← "feature" not allowed, use "feat"fix/Add-Login ← uppercase not allowedmy-branch ← no type prefixfix_something ← missing "/" separator
Pre-Commit Checklist
- [ ] Commit message matches conventional commits format
- [ ] Branch name matches
type/descriptionformat - [ ] Diff matches commit scope (no unrelated changes)
- [ ] No secrets, credentials, or
.envfiles - [ ] No binaries, coverage outputs, or local artifacts
- [ ] No
Co-Authored-Bytrailers - [ ] Tests relevant to the change pass