Commit uncommitted changes with well-crafted messages following WooCommerce repo conventions. Use when the user says "commit", "commit changes", "commit this", "git commit", or "save my work".
Commit uncommitted work with clear, conventional messages. Groups unrelated changes into separate commits when appropriate.
git branch --show-currentgit status --shortgit diff --statgit diff --cached --statFrom the dynamic context above, determine what changed:
Default to a single commit unless changes are clearly unrelated. Split only when:
Two files changed for the same reason = one commit. Don't over-split.
Use the current session context to understand what work was done and why. If motivation is still unclear after reviewing the diff and conversation, ask the user in a single question.
Format — verb-first imperative, under 72 chars:
Fix get_item_downloads() not always returning an arrayAdd cache priming to AJAX downloadable searchUpdate email editor reset action label for consistencyRefactor order count cache refresh logicRemove deprecated payment gateway fallbackVerbs: Fix, Add, Update, Refactor, Remove, Restore, Bump, Prepare, Simplify, Improve, Replace
For changelog-only commits: Add changelog entries for [description]
Do NOT include issue/PR refs — GitHub adds those on squash-merge.
If $ARGUMENTS is provided, use it as guidance for the commit message.
Show the user each proposed commit:
Commit 1: Fix double margin-top in flex layout
files: src/Blocks/EmailEditor/Layout.php
src/Blocks/EmailEditor/styles.css
Commit 2: Add changelog entries for email editor fix
files: plugins/woocommerce/changelog/fix-email-margin
Wait for user approval or corrections before executing.
For each confirmed commit:
git add <specific files>
git commit -m "<message>"
Always stage specific files — never git add -A or git add ..
After all commits, show git log --oneline -n <number of new commits> to confirm.
git add -A or git add .woocommerce-dev-cycle skill handles that. Linting should be run before invoking this skill, not after.