---
description: Git commit and branching conventions
globs: "**"
---

## Git Conventions

### Commit Messages

- **Default format**: `{type}: {concise description}`
- **With scope/ticket** (multi-agent pipeline overrides): `{type}({scope}): description [{JIRA_KEY}-{id}]`
- Types: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `style`, `perf`
- Max 72 chars first line
- Body for "why", not "what"

### Branching

- `feature/{ticket-id}-{short-description}`
- `bugfix/{ticket-id}-{short-description}`
- `hotfix/{description}`
- `release/{version}`

### Rules

- Never commit secrets, tokens, keys, certificates
- Never commit .env files, Pods/, .build/, DerivedData/
- Never force push to main/master/develop
- Always pull before push
- Squash WIP commits before merge
