commit
Analyze uncommitted changes and create grouped conventional commits
What this skill does
# Commit Workflow Analyze changes and create appropriate conventional commits. ## Context **Skill to load:** Load the `katachi:framework-core` skill for workflow principles. ## Process ### 1. Analyze Changes Run in parallel: ```bash git status git diff --staged git diff git log -5 --oneline ``` ### 2. Understand the Changes Analyze what's changed: - New files added - Files modified - Files deleted - Which features are affected ### 3. Group Changes Logically Group changes that should be committed together: - Related to same feature - Part of same logical change - Following conventional commit types **Commit types:** - `feat`: New feature - `fix`: Bug fix - `docs`: Documentation only - `style`: Formatting, no code change - `refactor`: Code change without feature/fix - `test`: Adding/updating tests - `chore`: Build, tooling, maintenance ### 4. Draft Commit Messages For each group, draft commit message: ``` type(scope): brief description Longer explanation if needed. - Detail 1 - Detail 2 ๐ค Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]> ``` ### 5. Present Plan and Get Confirmation **CRITICAL**: ALWAYS use `AskUserQuestion` to present proposed groups and get user confirmation, even if: - There is only one commit group - The grouping seems obvious or trivial - All changes are clearly related Include the full group breakdown with file lists in the question text. - **IMPORTANT**: Do NOT use markdown formatting (code blocks, bold, italics, etc.) in the actual question text passed to AskUserQuestion - it doesn't support markdown rendering - Use plain text with clear visual structure (indentation, line breaks, simple characters like dashes and numbers) Present options: - **Option 1**: "Proceed with these N commit group(s)" - Accept the proposed distribution - **Option 2** (conditional): If there are 4+ groups, offer "Merge into fewer commits" - **Note**: Do NOT include "Other" as an option - the system adds it automatically Example format: ``` Question: "I've analyzed the changes and propose the following commit groups: feat(audio): add audio capture functionality - src/audio/capture.py (new) - src/audio/__init__.py (modified) - tests/test_audio.py (new) docs: update CLAUDE.md with current focus - CLAUDE.md (modified) How would you like to proceed?" Options: - "Proceed with these 2 commit groups" - [Only if 4+ groups] "Merge into fewer commits" ``` ### 6. Execute Commits For each approved commit: ```bash git add [files] git commit -m "type(scope): description" ``` For commits with body text: ```bash git add [files] git commit -m "$(cat <<'EOF' type(scope): description Optional body with additional details. EOF )" ``` ## Guidelines **Commit message quality:** - Use imperative mood in the description (present tense, not past or continuous) - **WRONG**: "adding new feature" (present continuous) - **WRONG**: "added new feature" (past tense) - **RIGHT**: "add new feature" (imperative) - No period at end of subject line - Subject line under 50-72 characters - Body wrapped at 72 chars when needed - **CRITICAL**: Do NOT use the exclamation mark after the type/scope to indicate breaking changes. Use the `BREAKING CHANGE:` footer instead - **CRITICAL**: Do NOT use internal tracking IDs (such as delta IDs like `DLT-001`) as the commit scope. The scope should reflect the actual project area affected (e.g., `auth`, `api`, `ui`, `parser`). Tracking IDs are internal workflow artifacts and have no meaning in git history **Grouping rules:** - **IMPORTANT**: Do NOT mix unrelated changes in a single commit - Each commit should represent a single logical change - Don't mix features in one commit - Separate formatting from logic changes - Separate tests from implementation (unless closely related) - Keep commits atomic but meaningful **Examples:** **WRONG** - Mixing unrelated changes: ```bash git add app/services/auth.py app/services/exception_handler.py git commit -m "fix: update auth and exception handler" ``` **RIGHT** - Separate commits for unrelated changes: ```bash # First commit git add app/services/auth.py git commit -m "fix(auth): resolve token expiration issue" # Second commit git add app/services/exception_handler.py git commit -m "refactor(errors): simplify exception handler logic" ``` **Safety:** - Never force push - Never modify git config - Never skip hooks unless explicitly requested - Warn before committing to main/master ## Workflow **This is a collaborative process:** 1. Analyze changes (git status, git diff) 2. Understand what's changed 3. Group logically (related changes together) 4. Draft commit messages (conventional commits format) 5. Present plan and get user confirmation (AskUserQuestion) 6. Execute commits (git add + git commit)
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.