# Git Workflow ## Commit Message Format ``` (): ``` **Types:** feat, fix, refactor, docs, test, chore, perf, ci **Scopes:** frontend, backend, remotion, infra, shared (or omit for cross-cutting) Examples: - `feat(frontend): add transcription progress bar to ActionPanel` - `fix(backend): prevent duplicate job creation in tasks service` - `refactor(remotion): extract caption animation into reusable spring` - `chore(infra): update Docker Compose PostgreSQL to 16` ## Branch Naming ``` / ``` Examples: `feat/caption-styles`, `fix/upload-mime-validation`, `refactor/fsd-media-module` ## Pull Request Process 1. Run verification before creating PR (see `verification.md` rule) 2. Use `git diff main...HEAD` to see all changes from branch point 3. Summarize ALL commits (not just the latest) in PR description 4. Include test plan with specific scenarios 5. Push with `-u` flag for new branches ## Monorepo Considerations - Commits should touch ONE subproject when possible - Cross-service changes (e.g., new API endpoint + frontend consumer) go in separate commits within the same PR - Migration commits go BEFORE the code that uses them - Never commit `.env`, credentials, or lock files across subprojects