Generate conventional commit messages from staged changes with correct type/scope. Use when generating commit messages in conventional commits format. DO NOT use when: full PR preparation - use pr-prep instead.
Gather context (run in parallel):
git status -sbgit diff --cached --statgit diff --cachedgit log --oneline -5leyline:sem-integration):
sem diff --staged --json for entity-level changesIf nothing is staged, tell the user and stop.
When sem output is available, use entity names (function, class, method) in the commit subject and body instead of parsing raw diff hunks. For example, "add function validate_webhook_url" instead of "add validation logic to notify.py".
Classify: Pick type (feat, fix, docs, refactor,
test, chore, style, perf, ci) and optional scope.
Draft the message:
<type>(<scope>): <imperative summary> (50 chars max)Slop check: reject these words and replace with plain alternatives:
| Reject | Use instead |
|---|---|
| leverage, utilize | use |
| seamless | smooth |
| comprehensive | complete |
| robust | solid |
| facilitate | enable |
| streamline | simplify |
| optimize | improve |
| delve | explore |
| multifaceted | varied |
| pivotal | key |
| intricate | detailed |
Also reject: "it's worth noting", "at its core", "in essence", "a testament to"
Write to ./commit_msg.txt and preview.
git commit --no-verify or -n