name: commit-and-push description: Stage, commit, and (when a remote exists) push changes with a well-formed Conventional Commits message.
When committing and pushing changes, always follow these steps:
Verify tests pass — run
cargo test --workspacebefore committing. A red bar must not be committed. If a test is intentionally being marked#[ignore]or#[should_panic], call it out in the commit body.Stage all relevant changes with
git add <paths>. Be deliberate — stage only files related to the current topic. Never blindly usegit add -Aif unrelated changes are present.Compose the message following the Conventional Commits standard. Use these scopes for this project:
sh2— anything insidecrates/sh2/saturn— anything insidecrates/saturn/jupiter—jupiter/frontend binaryworkspace— rootCargo.toml,.gitignore, shared lintsdoc—doc/**,README.md,CLAUDE.mdci—.github/, hooks, scripts- Use
feat,fix,refactor,test,docs,choreas the type.
The message should explain why the change was made, not just what changed. When the change advances a task in
doc/roadmap.md, reference the task number (e.g. "advances M1 task #4").Commit with the composed message.
Push the committed changes to the current branch on the remote — but only if a remote is configured. Check with
git remote -vfirst. If no remote exists, stop here and report the local commit hash; do not invent or add a remote without the user's explicit instruction.Verify that the push succeeded and the remote is in sync with the local branch (
git statusshould report "up to date").