Agent skill

git

Git workflow and commit standards for SignalRoom. Use when committing changes, creating PRs, or managing branches. Ensures consistent commit messages and safe git operations.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/git-mmbianco78-signalroom

SKILL.md

Git Workflow

Branch Strategy

main (production)
  │
  └── feature/* or fix/* (development)
  • main is production, always deployable
  • Feature branches for development
  • Merge to main via PR or direct push (small changes)

Commit Message Format

<type>: <short summary>

<optional body with details>

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Types

Type Use For
feat New feature
fix Bug fix
docs Documentation only
refactor Code change that doesn't fix bug or add feature
test Adding or updating tests
chore Maintenance, dependencies, config

Examples

feat: Add Redtrack daily spend source

fix: Correct Supabase pooler port to 6543

docs: Update ROADMAP with Phase 4 completion

refactor: Extract retry policy to temporal/config.py

chore: Update dlt to 0.4.0

Safe Git Commands

Before Committing

bash
# See what changed
git status
git diff

# Stage specific files
git add path/to/file.py

# Stage all changes
git add -A

Committing

bash
# Commit with message
git commit -m "feat: Add new source"

# Commit with multi-line message (use heredoc)
git commit -m "$(cat <<'EOF'
feat: Add Redtrack source

- Implements daily_spend resource
- Uses merge disposition with date+source_id key
- Adds to pipeline runner registry

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)"

Pushing

bash
# Push to origin
git push origin main

# Push new branch
git push -u origin feature/my-feature

Dangerous Commands (Avoid)

Command Risk Alternative
git push --force Destroys remote history git push (fix conflicts first)
git reset --hard Loses uncommitted work git stash then git reset
git rebase -i Rewrites history Only on unpushed commits
git commit --amend Rewrites last commit Only if not pushed

Pull Request Template

markdown
## Summary
- Brief description of changes

## Changes
- Specific change 1
- Specific change 2

## Test Plan
- [ ] Tested locally with `python scripts/run_pipeline.py`
- [ ] Verified no type errors with `make typecheck`
- [ ] Ran `make ci` successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Pre-Commit Checklist

Before any commit:

bash
# 1. Check what you're committing
git diff --staged

# 2. Run linter
make lint

# 3. Run type checker
make typecheck

# 4. Run tests (if applicable)
make test

Common Scenarios

Undo Last Commit (Not Pushed)

bash
# Keep changes, undo commit
git reset --soft HEAD~1

# Discard changes entirely
git reset --hard HEAD~1

Discard Local Changes

bash
# Discard changes to specific file
git checkout -- path/to/file.py

# Discard all local changes
git checkout -- .

See What Changed Recently

bash
# Recent commits
git log --oneline -10

# Changes in last commit
git show --stat

# Diff between commits
git diff abc123..def456

Stash Work in Progress

bash
# Save current changes
git stash

# List stashes
git stash list

# Restore stashed changes
git stash pop

Files to Never Commit

Already in .gitignore:

  • .env — secrets
  • *.pem, *.key — certificates
  • .dlt/secrets.toml — dlt credentials
  • credentials.json — service accounts

If accidentally staged:

bash
git reset HEAD path/to/secret/file

Commit Hygiene

Good Commits

  • One logical change per commit
  • Descriptive message explaining WHY
  • Tests pass before commit
  • No debug code or print statements

Bad Commits

  • "WIP" or "fix" with no context
  • Multiple unrelated changes
  • Broken tests
  • Secrets or credentials

Didn't find tool you were looking for?

Be as detailed as possible for better results