chore(claude): add project rules and release skill, ignore local state
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4912ae39b0
commit
b37be36ddc
5 changed files with 75 additions and 0 deletions
6
.claude/rules/changelog.md
Normal file
6
.claude/rules/changelog.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
paths: ["src/**", "src-tauri/**"]
|
||||
---
|
||||
Tout changement affectant le comportement utilisateur doit avoir une entree sous `## [Unreleased]` dans `CHANGELOG.md`.
|
||||
Categories : Added, Changed, Fixed, Removed. Format Keep a Changelog.
|
||||
Le contenu est extrait par le CI pour les release notes et affiche dans l'app.
|
||||
7
.claude/rules/i18n.md
Normal file
7
.claude/rules/i18n.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
paths: ["**/*.tsx", "**/*.ts"]
|
||||
---
|
||||
Toute chaine visible par l'utilisateur doit passer par i18n (react-i18next).
|
||||
Fichiers : `src/i18n/locales/fr.json` et `src/i18n/locales/en.json`.
|
||||
Jamais de texte en dur dans les composants React.
|
||||
Toujours ajouter la cle dans les DEUX langues.
|
||||
7
.claude/rules/sql-migrations.md
Normal file
7
.claude/rules/sql-migrations.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
paths: ["**/migrations/**", "**/*.sql", "**/lib.rs"]
|
||||
---
|
||||
Ne JAMAIS modifier une migration SQL existante. Toujours creer une nouvelle migration.
|
||||
Les checksums sont verifies au demarrage (SHA-384 dans `_sqlx_migrations`).
|
||||
Les migrations sont inline dans `lib.rs` via `tauri_plugin_sql::Migration`.
|
||||
Le schema consolide (`consolidated_schema.sql`) sert uniquement pour les nouveaux profils.
|
||||
50
.claude/skills/release/SKILL.md
Normal file
50
.claude/skills/release/SKILL.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
name: release
|
||||
description: Release a new version of Simpl-Resultat (bump, changelog, tag, push)
|
||||
user-invocable: true
|
||||
updated: 2026-04-19
|
||||
---
|
||||
|
||||
# /release — Release Simpl-Resultat
|
||||
|
||||
## Context injection
|
||||
|
||||
1. Lire version dans `src-tauri/Cargo.toml` et `package.json`
|
||||
2. Lister les derniers tags : `git tag --sort=-v:refname | head -10`
|
||||
3. Lire `CHANGELOG.md` et `CHANGELOG.fr.md` (dernieres entrees)
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Determiner la nouvelle version (argument utilisateur ou demander)
|
||||
2. Bump version dans les 5 fichiers :
|
||||
- `src-tauri/Cargo.toml` (ligne `version = "..."`)
|
||||
- `src-tauri/Cargo.lock` (bloc `[[package]] name = "simpl-result"` + sa ligne `version = "..."` ; ne PAS regenerer avec cargo)
|
||||
- `src-tauri/tauri.conf.json` (champ `"version"`)
|
||||
- `package.json` (champ `"version"`)
|
||||
- `package-lock.json` (deux champs `"version"` — root ~ligne 3 et le package racine `""` ~ligne 9)
|
||||
- Si `package-lock.json` est stale (hygiene warning `package-lock.json plus ancien que package.json`) : `npm install --package-lock-only --no-audit --no-fund` pour resync. Note : peut ajouter des entrees bundled optionnelles (tailwindcss oxide wasm etc.) — cosmetique, pas d'install effective.
|
||||
3. Mettre a jour les 2 changelogs — format **Keep a Changelog** :
|
||||
- `CHANGELOG.md` (EN)
|
||||
- `CHANGELOG.fr.md` (FR)
|
||||
- Pattern de migration : transformer `## [Unreleased]` en `## [X.Y.Z] - YYYY-MM-DD`, puis **recreer une section `## [Unreleased]` vide au-dessus** pour accueillir les prochaines entrees. Ne pas deplacer le contenu — les sections sont laissees en place.
|
||||
4. Si changement d'architecture : mettre a jour `docs/architecture.md`
|
||||
5. Commit : `chore: release vX.Y.Z` (ajouter les 7 fichiers : 5 bumps + 2 changelogs)
|
||||
6. Tag annote (permet une release notes par tag, lisible via `git show vX.Y.Z`) :
|
||||
```
|
||||
git tag -a vX.Y.Z -m "Release X.Y.Z
|
||||
|
||||
- <bullet highlights>"
|
||||
```
|
||||
7. Push : `git push origin main && git push origin vX.Y.Z`
|
||||
8. Forgejo CI build automatique (Windows + Linux) via `release.yml` sur `on: push: tags: v*`
|
||||
|
||||
## Regles
|
||||
|
||||
- **JAMAIS `git push --tags`** — toujours push le tag individuellement
|
||||
- Toujours mettre a jour les **2 changelogs** (EN + FR)
|
||||
- Format Keep a Changelog : `## [X.Y.Z] - YYYY-MM-DD`
|
||||
- Les changelogs sont bundles dans `public/` pour l'affichage in-app
|
||||
- Tag **annote** (`-a`), pas lightweight : les artefacts CI reference le tag pour les release notes
|
||||
|
||||
## Changelog
|
||||
- 2026-04-19 — Added Cargo.lock + package-lock.json to bump list, `npm install --package-lock-only` fallback when lockfile stale, explicit `[Unreleased]` migration pattern, annotated tags (#102/#112 release cycle)
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -52,3 +52,8 @@ public/CHANGELOG.fr.md
|
|||
|
||||
# Tauri generated
|
||||
src-tauri/gen/
|
||||
|
||||
# Claude Code local state
|
||||
.claude/settings.local.json
|
||||
.claude/scheduled_tasks.lock
|
||||
.claude/worktrees/
|
||||
|
|
|
|||
Loading…
Reference in a new issue