github-conventionslisted
Install: claude install-skill sakydev/claude
# GitHub Conventions
## Branches
Pattern: `<ticket-id>-<short-description>` or `no-ticket-<short-description>`
```
FLX-123-add-storage-driver
no-ticket-add-agentic-instruction-files
```
Branch from `origin/main`. Kebab-case. No slashes. No uppercase.
## Commits
Conventional Commits. Ticket number goes after the type.
```
feat: FLX-1234 add presigned URL download for storage files
- Introduce GetPresignedURL method on StorageService
- Add download endpoint under /storage/:id/download
- Map driver-specific errors to typed pkg/errors responses
```
| Type | When |
|------|------|
| `feat` | New feature or endpoint |
| `fix` | Bug fix |
| `refactor` | Code change, no behaviour change |
| `test` | Adding or fixing tests |
| `chore` | Tooling, deps, config |
| `docs` | Documentation only |
Bullet points. No blank lines between them. One commit per logical change. Never `--no-verify`. Never force-push `main`.
For any change spanning multiple concerns (new module + config + routing + CI, a multi-file refactor, a ticket touching several layers), split into a sequence of small commits — one per chunkable piece (e.g. skeleton, then config, then handler, then wiring, then infra/CI) — instead of one large commit. Each commit should build/typecheck on its own where practical. Default to splitting; only use a single commit when the change is genuinely one atomic unit (a single small fix, a one-file tweak).
## Pull Requests
Title mirrors the commit subject: `type: FLX-1234 short