prepare-semantic-commit
Prepare semantic commit (session → Conventional Commits + release bump)
What “last chat” means
- Primary source of truth:
git status,git diff(unstaged), andgit diff --cached(staged). Run these in the repo root (or the paths the user changed). - Context: use the current conversation to summarize intent and to spot breaking API/behavior changes that diff alone may not show.
- If the user tracks a session baseline (e.g. branch, tag, or
git stash createat start), you maygit diff <baseline>..HEADplus uncommitted diffs; otherwise use only the index and working tree.
Quick workflow
- Inventory — List changed paths; group by feature vs chore vs docs vs test-only.
- Decide commit shape — One atomic commit is ideal. If the diff mixes unrelated concerns, recommend multiple commits (each with its own type/scope) before suggesting one message.
- Classify for semantic release — Using the default analyzer-style mapping (same idea as semantic-release / Conventional Commits):
fix→ patch,feat→ minor, breaking → major. - Write the message —
type(optional-scope)!: description(see REFERENCE.md). Use!or aBREAKING CHANGE:footer when behavior contracts change. - Deliver — Output:
- Proposed full commit message (title + optional body + footers).
- Release bump this commit would drive under typical defaults:
patch|minor|major|none(e.g.chore/ci/docsthat do not trigger a version in many setups — say “project-dependent”). - Optional:
git add …andgit commit -m/git commit(file) instructions; do not run destructive git commands unless the user asked.
Checklist before finalizing
- Type matches the dominant user-visible outcome (
featvsfixvsperf, etc.). - Scope is a short noun in parentheses if it helps (e.g.
fix(api): …). - Breaking changes are explicit (
!and/orBREAKING CHANGE:in the body/footer). - Description is imperative, lowercase start after the prefix, no trailing period in the title line (common style; match repo if different).
When not to invent a bump
If the repo uses a custom @semantic-release/commit-analyzer preset, note that your bump is heuristic and they should match .releaserc / release.config.*. See REFERENCE.md.
Further reading
- REFERENCE.md — Message shape, footers, release mapping, squashing notes.
More from danielvm-git/skills
triage-issue
Triage a bug or issue by exploring the codebase to find root cause, then create a GitHub issue with a TDD-based fix plan. Use when user reports a bug, wants to file an issue, mentions "triage", or wants to investigate and plan a fix for a problem.
11ubiquitous-language
Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".
11write-a-skill
Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.
11setup-pre-commit
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
11tdd
Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
10to-prd
Turn the current conversation context into a PRD and submit it as a GitHub issue. Use when user wants to create a PRD from the current context.
10