Files
home_stock/CLAUDE.md
2026-01-28 19:22:30 +01:00

7.5 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.


Vue d'ensemble du projet

HomeStock est une webapp de gestion d'inventaire domestique (style Homebox) permettant de cataloguer et gérer les équipements, matériels et consommables présents au domicile.

Domaines couverts

  • Bricolage
  • Informatique
  • Électronique
  • Cuisine

Fonctionnalités principales

  • Catalogue d'objets avec caractéristiques détaillées
  • Gestion des photos, notices et factures
  • Suivi des prix et du stock
  • Gestion de l'état (en utilisation / en stock)
  • Localisation précise (lieu, meuble, tiroir, boîte)

Architecture du projet

Structure globale

Le projet suit une architecture monolithe modulaire avec séparation frontend/backend :

/
├── backend/          # API et logique métier
├── frontend/         # Interface utilisateur
├── contracts/        # Contrats d'API (OpenAPI) et modèles de données
├── docs/            # Documentation technique et ADR
├── product/         # Documentation produit (vision, backlog, roadmap)
├── tasks/           # Fichiers de tâches pour le découpage du travail
└── scripts/         # Scripts de développement et maintenance

Fichiers de contexte clés


Workflow de développement

1. Documentation d'abord

IMPORTANT : Aucun code ne doit être écrit tant que la documentation n'est pas complétée :

2. Gestion des zones à remplir

Le projet utilise un système de marqueurs pour identifier les sections à compléter :

  • <A REMPLIR - PROJET> : À compléter par l'utilisateur selon le contexte du projet

    • Ne jamais supprimer ce marqueur sans le remplacer
    • Ajouter un exemple guidant avec la mention "(exemple: ... — a supprimer)"
  • <A COMPLETER PAR AGENT> : À compléter par Claude Code lors des décisions techniques

    • Remplacer par le contenu approprié
    • Ajouter "complété par codex" en commentaire après remplissage

3. Décisions architecturales (ADR)

Toute décision structurante doit être documentée dans un ADR (Architecture Decision Record) :

  • Créer un nouveau fichier dans docs/adr/
  • Utiliser le template docs/adr/TEMPLATE.md
  • Exemples : choix de base de données, framework, pattern d'authentification, etc.

4. Découpage des tâches

  • Toute tâche de développement doit avoir un fichier dans tasks/
  • Utiliser le template tasks/TEMPLATE.md
  • Une tâche = un objectif clair + critères d'acceptation + fichiers concernés

Commandes de développement

Démarrage

make dev                    # Lancer l'environnement de développement
docker-compose up          # Alternative avec Docker

Tests et qualité

./scripts/test.sh          # Exécuter les tests
./scripts/lint.sh          # Linter le code
./scripts/fmt.sh           # Formater le code

Base de données

./scripts/db/backup.sh     # Sauvegarder la base de données
./scripts/db/restore.sh    # Restaurer une sauvegarde

Note : Ces scripts sont actuellement vides et doivent être complétés lors de l'implémentation.


Conventions de code

Langue

  • Français uniquement pour toute la documentation et les commentaires
  • Toujours expliquer les acronymes : "JWT = jeton d'authentification", "RGPD = Règlement Général sur la Protection des Données"
  • Les noms de variables/fonctions peuvent être en anglais selon les conventions du langage

Style de documentation

  • Commentaires courts et utiles uniquement
  • Éviter les répétitions entre code et documentation
  • Privilégier la clarté à la concision

Organisation du code


Contrats d'API

Le répertoire contracts/ contient les spécifications d'API :

Important : Toute modification d'API doit mettre à jour ces contrats.


Environnement technique

Configuration

Stack technique (à finaliser)

  • Frontend : À définir dans frontend/CONTEXT.md
  • Backend : Python ou Go (préférence indiquée dans outils_dev_pref.md)
  • Base de données : À définir via ADR
  • Stockage fichiers : À définir (photos, notices, factures)

Thème UI

  • Préférences : Gruvbox, Dark, Vintage - Monokai Dark
  • À définir : couleurs dominantes, style UI, accessibilité

Processus de contribution

Pull Requests

Qualité

  • Indiquer les tests attendus même si non implémentés
  • Mettre à jour toute documentation impactée
  • Vérifier que les marqueurs <A REMPLIR> ne sont pas supprimés par erreur

Sécurité

  • Consulter docs/SECURITY.md
  • Pas de secrets en clair dans le code
  • Respecter les contraintes RGPD si applicable

Ordre des opérations pour démarrer

  1. Compléter la documentation de base

  2. Définir l'architecture technique

  3. Configurer l'environnement

    • Compléter outils_dev_pref.md
    • Configurer les scripts de développement
    • Mettre en place Docker et docker-compose
  4. Démarrer l'implémentation

    • Créer les tâches dans tasks/
    • Suivre le workflow défini
    • Documenter les décisions au fur et à mesure

Références