Files
hykocx ca0fafe6ff docs: rewrite DEV.md with security guidelines and structure
Expand the development guide from a minimal overview into a
comprehensive reference covering:

- Code standards: single responsibility, control flow, input
  validation, promise handling, and variable scoping
- Security section: treat all external input as malicious, use
  path.join over string concatenation, no secrets in code
- Reorganize publication steps to include version bump before
  build/publish for a logical workflow
- Add project context note clarifying the scaffolding role of
  @zen/start
2026-04-13 15:19:41 -04:00

57 lines
1.5 KiB
Markdown

# Conventions de commit
Tous les messages de commit sont rédigés en **anglais**, en suivant le format [Conventional Commits](https://www.conventionalcommits.org/) :
```
<type>(<scope>): <description courte>
```
---
## Types
| Type | Usage |
|------|-------|
| `feat` | New feature |
| `fix` | Bug fix |
| `refactor` | Code restructuring without behavior change |
| `style` | Formatting only (spaces, commas, no logic change) |
| `docs` | Documentation only |
| `test` | Add or update tests |
| `chore` | Maintenance, dependencies, build config |
| `perf` | Performance improvement |
| `revert` | Revert a previous commit |
---
## Exemples
```
feat(auth): add OAuth2 login support
fix(api): handle null response from payment gateway
refactor(storage): extract upload logic into helper
docs(guide): add git commit message conventions
chore(deps): update dependencies
perf(db): cache user metadata on repeated reads
revert: revert "feat(auth): add OAuth2 login support"
```
---
## Règles
- **Scope** : facultatif, précise la zone touchée `auth`, `api`, `storage`, `ui`, `config`
- **Description** : minuscules, sans point final, en anglais
- Un commit = une intention. Ne pas mélanger fix et refactor
- Pas de `wip`, `fix fix`, `oups` ou messages vides
## Breaking changes
Ajouter `!` après le type et un pied de page `BREAKING CHANGE:` :
```
feat(api)!: remove legacy query parameter
BREAKING CHANGE: the `legacy` param is no longer accepted, use `version` instead.
```