name: commit-and-push description: Commit code changes and push via Git. Use when the user asks to commit, push, or save their work to the repository. argument-hint: commit message or description of changes
Commit and Push
You are committing and pushing code changes for Guileless Bopomofo.
Commit Message Convention
- Subject line: imperative mood, concise summary of the change (e.g. "Fix version() returning null", "Add unit tests for pure Kotlin logic codes.")
- Body (optional): explain why the change was made, not just what. Include context when the change is non-trivial.
- Signed-off-by trailer: all commits use
--signoffto add theSigned-off-bytrailer automatically. - No conventional commits prefix (no
feat:,fix:, etc.) — this project uses plain English subject lines.
Subject Line Patterns
Follow the existing style:
Add ...— new feature or fileFix ...— bug fixUpdate ...— dependency or content updateRemove ...— deletion of code or filesRefactor: ...— code restructuringStyle: ...— formatting or cosmetic changesUpgrade ...— dependency version upgradesRelease X.Y.Z— release commits (handled by/release-engineering)
Workflow
Review changes — run
git statusandgit diffto understand what will be committed.Stage files — add specific files by name rather than
git add -A. Be careful not to stage:- Sensitive files (
.env, credentials, signing keys) - Build artifacts (
app/build/,app/.cxx/) - Chewing data files in assets (these are generated during build)
- Sensitive files (
Commit — use
--signoffflag. Pass the message via HEREDOC for proper formatting:git commit --signoff -m "$(cat <<'EOF' Subject line here Optional body explaining why. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> EOF )"Push — always confirm with the user before pushing. This project has two remotes:
origin— GitHub (git@github.com:hiroshiyui/GuilelessBopomofo.git)gitlab— GitLab mirror (git@gitlab.com:hiroshiyui/GuilelessBopomofo.git)
By default, push to
origin. Push togitlabonly if the user requests it.
Branch Conventions
master— main/stable branchcurrent— active development branch- Feature branches use descriptive names (e.g.
issue-65-implement-all-physical-keyboard-layouts)
Never force-push to master or current without explicit user approval.