Rails cto commit
Stage and commit all outstanding code changes with a clear, human-friendly commit message. Use this skill whenever the user asks to commit, save their work, push changes, or says things like "commit this", "save my progress", "push this up", "ship it", "commit all", or "commit and push". Also triggers for "/commit-all". Do NOT use for cherry-picking, rebasing, or other advanced git operations.From its SKILL.md
npx -y skills add mattsears/rails-cto --skill rails-cto-commitAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.9 KB, as published. Nobody here has run it
Commit
Stage and commit all outstanding changes with a clear, human-friendly message. Optionally push to the remote — but only after the user confirms.
Workflow
1. Gather context
Run these in parallel to understand what's changed:
git status— see untracked and modified filesgit diff— see unstaged changesgit diff --cached— see already-staged changesgit log --oneline -5— see recent commit style for reference
If there are no changes to commit (nothing untracked, nothing modified, nothing staged), tell the user and stop.
2. Stage everything
Add all changes — tracked and untracked — to the staging area:
git add -A
If any files look like they contain secrets (.env, credentials, tokens, API keys), warn the user and exclude them before committing.
3. Write the commit message
Write a commit message that a non-technical person could understand. The goal is clarity — someone glancing at the git log should immediately know what changed and why.
Rules:
- Use plain language. Avoid jargon, abbreviations, and technical shorthand.
- Lead with what the change accomplishes from a user or product perspective, not implementation details.
- Keep the subject line under 72 characters.
- If the change is complex, add a blank line and a short body paragraph explaining the "why."
- Do NOT include any co-authorship lines (no
Co-Authored-By). - Do NOT reference "Claude" or any AI tool in the message.
Good examples:
Add password reset flow for logged-out usersFix broken checkout button on mobile screensUpdate pricing page to show annual discountRemove unused admin dashboard pages
Bad examples:
refactor: extract util fn for auth middleware(too technical)fix bug(too vague)WIP(not descriptive)Update files(says nothing)
Use a HEREDOC to pass the message so multi-line messages format correctly:
git commit -m "$(cat <<'EOF'
Your commit subject line here
Optional body explaining why, if needed.
EOF
)"
4. Confirm before pushing
After committing, ask the user if they want to push to the remote. Do not push automatically.
If they say yes:
- If the branch has no upstream, use
git push -u origin <branch>to set tracking. - If it does, use
git push. - Never force-push unless the user explicitly asks for it.
- Warn and refuse if the target is
mainormaster(unless the user insists).
If they say no or don't mention pushing, just confirm the commit was made and stop.