From wai
Commit the session's changes, survey, group, write tight Conventional Commits messages, then execute. Interactive by default (shows plan, waits for confirmation); non-interactive when running in CI / autonomous / agent-launched contexts. Always-on Conventional Commits style (`<type>(<scope>): <summary>`, ≤50 char subject, body only when "why" isn't obvious, no AI attribution). Use when the user says "commit", "commit these changes", "save my work", "wrap this up", "make a commit", "write a commit", "commit message", "generate commit", or any variation asking to land the current diff or produce a commit message. Pass `--message-only` (or say "just the message") to output the formatted message in a code block without staging or committing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/wai:commitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Commit the work from this session. Workflow + tight Conventional Commits message format in one skill.
Commit the work from this session. Workflow + tight Conventional Commits message format in one skill.
Two modes:
Plus one flag:
--message-only, draft the formatted message(s), output as code blocks, don't stage, commit, or amend. For when the user has already staged manually or just wants preview text.Decide the mode in this order:
args (or the user types /commit --ci style):
--ci or --yes → non-interactive.--interactive → interactive.--message-only → message-only (overrides the above for execution; mode selection only matters if the user later asks to actually commit).$CI is set, or there's no TTY (autonomous Claude run, scheduled job, agent-launched session), → non-interactive. Otherwise → interactive.If unsure whether you're in a non-interactive context and no flag was passed, default to interactive. Surprise commits are worse than asking.
git status, what's modified/added/deleted.git diff, what actually changed.git diff --staged, anything already staged.Show the user the plan before touching anything:
I'll create N commit(s):
<message>, files:...<message>, files:...Proceed?
Wait for explicit confirmation.
git add <specific files>, never git add -A or git add .. Those scoop up uncommitted scratch work.git commit -m "<message>" per planned commit. Use a HEREDOC if the message has a body so newlines survive.git log --oneline -n <N>.In non-interactive mode, do steps 1, 2, and 4 back-to-back without pausing. Report the result at the end.
In --message-only mode, do step 1, then output each planned message as a fenced code block. No git add, no git commit, no git log.
Always Conventional Commits. No exceptions.
<type>(<scope>): <imperative summary>, <scope> optional.feat, fix, refactor, perf, docs, test, chore, build, ci, style, revert.- not *.Closes #42, Refs #17.Co-authored-by: trailer instead.Co-Authored-By: Claude / "Generated with Claude Code" / any AI attribution. Commits are authored by the user.Always include a body for: breaking changes, security fixes, data migrations, anything reverting a prior commit. Never compress these into subject-only, future debuggers need the context.
New endpoint with body explaining the why:
feat(api): add GET /users/:id/profile
Mobile client needs profile data without the full user payload
to reduce LTE bandwidth on cold-launch screens.
Closes #128
Breaking API change:
feat(api)!: rename /v1/orders to /v1/checkout
BREAKING CHANGE: clients on /v1/orders must migrate to /v1/checkout
before 2026-06-01. Old route returns 410 after that date.
.env, secrets..cache/, dist/, node_modules/, etc.) unless the project explicitly tracks them.If something looks like it might be scratch, leave it unstaged. In non-interactive mode, report any skipped files at the end so the user can review.
Co-Authored-By: Claude. No "Generated with Claude" trailer. Commits are authored by the user.-A / . adds. Specific files only. Prevents committing unstaged scratch, env files, build artifacts.<type>(<scope>): <summary> shape is fixed.When --message-only is set: output the formatted message(s) in fenced code blocks ready to paste. Do not run git add, git commit, or git commit --amend. Do not modify the working tree.
Otherwise: full survey → plan → execute flow per the mode-selection rules above.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub mlitre/wai --plugin wai