skillby mmbianco78

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.

Installs: 0
Used in: 1 repos
Updated: 2d ago
$npx ai-builder add skill mmbianco78/git

Installs to .claude/skills/git/

# 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

Quick Install

$npx ai-builder add skill mmbianco78/git

Details

Type
skill
Slug
mmbianco78/git
Created
6d ago