npx skills add ...
npx skills add sentimony/skills --skill commit-all
User-invoked via /commit-all only. Gathers the working tree into a single commit on the current branch, no push.
npx skills add sentimony/skills --skill commit-all
Collect every change on the current branch into one commit with a generated message.
No push, no --amend, no new branches, no history rewriting: the skill produces exactly
one commit on the branch the user is already on, or stops to ask. The explicit
invocation is the approval: on a feature branch a normal run analyzes the tree, shows
the plan, and commits in the same turn without asking again.
Only the user triggers this skill: never activate it from a description of finished work, and never invoke it from another skill. When the user supplies their own commit message, commit directly without this skill.
Arguments: /commit-all commits; /commit-all dry-run prints the file list and the
generated message without committing.
git status --short, git diff, git diff --staged, and
git log --oneline -10 for the branch's message conventions. A clean tree ends the
run with "no changes to commit" and nothing else.git symbolic-ref --quiet --short refs/remotes/origin/HEAD names it
when the remote HEAD is set, and git config --get init.defaultBranch covers a
repository with no remote. When neither answers, fall back to treating main and
master as default names. On the default branch, stop and ask whether to commit there
or create a branch first; never commit to a default branch silently.git status from the start of the conversation, when available. The split feeds
the message's thematic groups and helps spot suspicious files; it is never a reason
to pause. An explicit /commit-all already covers the whole tree, pre-existing
changes included..gitignore should have covered, one-off
scripts, and files that may hold secrets; ask about them instead of staging blindly.feat(scope):, fix:) only when git log shows one; never
impose your own. Add a body only when the diff spans several unrelated groups: 2-4
short bullets, one per group, no per-file listing. Write the message in English. No
co-author or agent attribution unless the repository's conventions require it.dry-run stops
here. The remaining stop conditions are step 2 (default branch), step 4 (suspicious
untracked files), and arguments whose intended scope cannot be determined safely
(explicit paths or partial-commit requests that do not match the tree).git log -1 --stat
(or a short excerpt). Do not push.git commit -F - with a heredoc, never -m with escaping.git commit -F - -- <paths>; putting -F after the pathspec
breaks.git diff -- $PATHS silently matches
nothing; keep path lists in a file or a shell array.git commit -F - -- <paths> so already-staged index entries
(renames in particular) survive untouched.--no-verify; a failing pre-commit hook is a result to report, not an
obstacle./commit-all invocation and its arguments
(dry-run, a path or partial-commit scope). The skill carries
disable-model-invocation: true, so nothing else starts it.git status and git diff
output, the contents of tracked and untracked files, and the text of existing commit
messages. From git log the skill adopts an observed convention such as a
feat(scope): prefix; the message text itself stays data.--amend or a new branch, and does not
lift the stop conditions in steps 2, 4 and 6.status, diff, log, and the symbolic-ref
and config --get lookups that resolve the default branch in step 2) and a single write
(commit), plus --amend under the consent rule below. It makes no network calls and
never passes --no-verify. Untracked files that may hold secrets are handled by
step 4 of the workflow.When the previous commit was made by this same session and is not pushed, offer
--amend in one sentence; run it only after the user agrees. Never offer it for a
pushed or foreign commit.