Canonical commit workflow for Gas Town crew members: pre-flight checks, branch creation, gt commit with agent identity, push, and PR creation. Use when ready to commit and submit work for review.
This skill guides crew members through the standard Gas Town commit workflow: pre-flight → branch → stage → commit → push → PR.
⚠️ NEVER commit directly to
main. All crew work goes through branches and pull requests. The Refinery handles merges to main.
/crew-commit
Run this when you have changes ready to commit. The skill walks you through each step in order.
Before touching anything, sync with origin and verify your state.
# Fetch latest from origin
git fetch origin
# Check current branch and status
git status
git branch --show-current
# If you're on main, STOP — create a branch first (Step 2)
If you're behind origin/main, rebase now:
git rebase origin/main
If there are conflicts, resolve them carefully before proceeding. If stuck on a rebase conflict, stop and get help rather than force-pushing.
If you're already on a feature branch, skip to Step 3.
Branch naming convention: <type>/<short-description>
Types:
feat/ — new featurefix/ — bug fixrefactor/ — code restructuringdocs/ — documentation onlychore/ — maintenance, deps, configtest/ — tests only# Create and switch to feature branch
git checkout -b feat/my-feature-description
# Or use the crew/<name> prefix for crew-specific branches
git checkout -b crew/<your-name>/description
Check for submodules before staging. Accidentally committing a submodule pointer change causes cascading failures for other crew members.
# Check if repo has submodules
cat .gitmodules 2>/dev/null || echo "(no submodules)"
# Check for dirty submodule state
git submodule status 2>/dev/null
Common submodule paths to watch: shared/, config/, vendor/
If you see changes in submodule directories:
git add shared/ or git add config/ unless you intentionally
bumped the submodule pointerPrefer staging specific files over git add . or git add -A.
# Review what changed
git diff
git status
# Stage specific files (preferred)
git add src/myfile.go tests/myfile_test.go
# If you need to stage all intentional changes and have verified no secrets:
git add -p # Interactive staging — review each hunk
Before staging, verify:
.env files, API keys, or credentialsUse gt commit instead of git commit. It automatically sets the correct
agent identity (name + email) based on your GT_ROLE.
gt commit -m "$(cat <<'EOF'
<type>: <concise description of what and why>
<optional body: context, motivation, or notable details>
EOF
)"
Commit message format:
<type>: <subject> (50 chars or less)feat, fix, refactor, docs, test, choreGood examples: