# CLAUDE.md — Olhar-API ## Contexte du projet API REST Spring Boot 3 (Java 25) pour l'application Olhar de gestion de photos personnelles. - **Architecture** : Clean Architecture hexagonale (Ports & Adapters) - **Stack** : Spring Boot 3, Spring Security, JPA/PostgreSQL, Flyway, JWT, Testcontainers - **Build** : Gradle (Groovy DSL), exécuté dans un container Podman (`eclipse-temurin:25-jdk`) - **Git remote** : `ssh://git@git.goutailler-olivier.com:2222/Gato/Olhar-API.git` - **Frontend consommateur** : `Olhar-PWA` — dépôt `Gato/Olhar` sur Gitea ## Commandes ```bash # Compiler podman run --rm -v $(pwd):/workspace:Z -w /workspace eclipse-temurin:25-jdk ./gradlew compileJava --no-daemon # Tests podman run --rm -v $(pwd):/workspace:Z -w /workspace eclipse-temurin:25-jdk ./gradlew test --no-daemon # Package podman run --rm -v $(pwd):/workspace:Z -w /workspace eclipse-temurin:25-jdk ./gradlew bootJar --no-daemon # Démarrer en dev (BDD via docker-compose) docker compose up ``` ## Règles Les règles spécifiques au projet sont dans `.claude/rules/` : - **[Architecture](.claude/rules/architecture.md)** — couches hexagonales, règle de dépendance, interdictions - **[Tests](.claude/rules/tests.md)** — JUnit 5, JaCoCo ≥ 90%, Testcontainers, Podman - **[Commits & versions](.claude/rules/commits-versions.md)** — scopes Conventional Commits, versioning dans `build.gradle` - **[Documentation](.claude/rules/documentation.md)** — wiki Olhar-API, specs fonctionnelle et technique - **[Intégration webapp](.claude/rules/webapp-integration.md)** — contrat d'API, issues Olhar-PWA, feature flags - **[Issues Gitea](.claude/rules/issues-gitea.md)** — suivi du projet, dépôts Olhar-API et Olhar Les règles workspace partagées (build Java/Podman, commits, wiki, tests) sont dans `../.claude/rules/`. ## Skills à utiliser | Skill | Doc | Quand l'utiliser | |-------|-----|-----------------| | `/gitea-issue` | [~/.claude/commands/gitea-issue.md](/home/Gato/.claude/commands/gitea-issue.md) | Lire, créer, commenter ou fermer une issue sur Olhar-API ou Olhar-PWA | | `/create-issue` | [~/.claude/commands/create-issue.md](/home/Gato/.claude/commands/create-issue.md) | Créer rapidement une issue avec titre + description | | `/code-review` | skill natif Claude Code | Relire un diff avant commit ou pour une PR | | `/verify` | skill natif Claude Code | Vérifier qu'un endpoint fonctionne après implémentation | | `/run` | skill natif Claude Code | Démarrer l'application et observer son comportement réel |