원클릭으로
commit-messages
WHEN writing git/conventional commits; NOT for PR text; returns concise, why-first commit lines with proper type/scope.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
WHEN writing git/conventional commits; NOT for PR text; returns concise, why-first commit lines with proper type/scope.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
WHEN scraping iOS/macOS App Store data (apps, reviews, ratings, search); NOT for installing or testing apps; retrieves structured JSON data using iTunes/App Store APIs with curl and jq formatting
Comprehensive guide for implementing on-device AI models on iOS using Foundation Models and MLX Swift frameworks. Use WHEN building iOS apps with (1) Local LLM inference, (2) Vision Language Models (VLMs), (3) Text embeddings, (4) Image generation, (5) Tool/function calling, (6) Multi-turn conversations, (7) Custom model integration, or (8) Structured generation.
WHEN building ChatGPT apps using the OpenAI Apps SDK and MCP; create conversational, composable experiences with proper UX, UI, state management, and server patterns.
WHEN building SwiftUI views, managing state, setting up shared services, or making architectural decisions; NOT for UIKit or legacy patterns; provides pure SwiftUI data flow without ViewModels using @State, @Binding, @Observable, and @Environment.
WHEN building design systems or component libraries with Tailwind CSS; covers design tokens, CVA patterns and dark mode.
WHEN building React components/pages/apps; enforces scalable architecture, state management, API layer, performance patterns.
| name | commit-messages |
| description | WHEN writing git/conventional commits; NOT for PR text; returns concise, why-first commit lines with proper type/scope. |
Use this skill to generate clear, conventional commit messages that explain the "why" not just the "what". Follow this guide when writing commit messages or helping users structure their commits.
git log --grepFollow Conventional Commits:
type(scope): subject
body (optional)
footer (optional)
| Type | When to Use | Example |
|---|---|---|
feat | New feature for the user | feat(auth): add password reset flow |
fix | Bug fix for the user | fix(cart): correct quantity calc |
docs | Documentation only changes | docs: update API examples |
style | Formatting, white-space (not CSS) | style: format with biome |
refactor | Code change that neither fixes nor adds | refactor: extract validation utils |
perf | Performance improvement | perf: memoize expensive calculation |
test | Adding or updating tests | test: add auth integration tests |
build | Build system or dependencies | build: upgrade to node 22 |
ci | CI configuration | ci: add playwright to pipeline |
chore | Other changes that don't modify src/test files | chore: update .gitignore |
| Rule | Good | Bad |
|---|---|---|
| Imperative mood | add user profile | added user profile |
| No capitalization | fix login bug | Fix login bug |
| No period | update readme | update readme. |
| Be specific | fix redirect loop on session expiry | fix bug |
| Max 50 chars (72 hard limit) | Keep it concise | Don't write essays |
feat(auth):, fix(api):, test(cart):Fixes #123 or Relates to #456feat(api)!: change authentication endpoint
BREAKING CHANGE: /auth/login now requires email instead of username.
Migration: Update all clients to send email field.
Before writing the message, assess whether the staged changes should be one commit or multiple.
| Signal | Action |
|---|---|
| Changes to unrelated files | Split by feature/area |
| Multiple types (feat + fix) | Separate commits |
| "and" in your subject line | Probably two commits |
| > 10 files changed | Consider splitting |
| Mix of refactor + feature | Refactor first, then feature |
Instead of:
feat: add user profile and fix login redirect and update tests
Split into:
fix(auth): prevent redirect loop on session expiry
feat(profile): add user profile page
test(auth): add session expiry tests
feat(cart): add quantity selector to cart items
Allow users to update item quantities directly from the cart
instead of navigating back to the product page.
Closes #234
fix(auth): prevent redirect loop on expired session
Session expiry was triggering a redirect to login, which then
redirected back to the protected route, causing an infinite loop.
Now we clear the redirect URL when session expires.
refactor: extract validation logic to shared utilities
Consolidates duplicate Zod schemas from three API routes into
a single source of truth in lib/validation.
No behavior changes.
perf(search): debounce search input to reduce API calls
Search was firing on every keystroke, causing 10+ requests
for a typical query. Now waits 300ms after typing stops.
Reduces search API calls by ~80% based on local testing.
| Message | Problem |
|---|---|
fixed stuff | Too vague - what stuff? |
Updated the code | Obvious - adds no value |
WIP | Not ready to commit |
fix: Fix the bug | Redundant, no detail |
misc changes | Meaningless |
feat: add new feature | What feature? |
refactor code | What code? Why? |
When generating commit messages, provide the complete message ready to use:
type(scope): clear subject line
Optional body explaining the motivation for this change.
Include context that helps future readers understand why
this was done, not just what was done.
Fixes #123
If the commit should be split, recommend splitting with specific guidance:
**Recommendation: Split this commit**
The staged changes include multiple unrelated changes:
1. [Change type 1] - [files affected]
2. [Change type 2] - [files affected]
**Suggested commits:**
1. First commit:
type(scope): first change
2. Second commit:
type(scope): second change
**To split:** Use `git reset HEAD` then stage files for each commit separately.