« Combien couste ? » — combien ça coûte, en moyen français : le « s » de couste est celui que l'accent circonflexe de « coûte » a remplacé.
Assistant de jeu de rôle médiéval-fantastique : un catalogue d'objets aux prix réalistes et un générateur de PNJ ancré dans la même économie. Les objets (armes, armures, bétail…) ont un prix et un poids calculés dynamiquement selon le matériau choisi, objet décomposé en composants physiques (lame, garde, poignée…), le tout en lecture seule et bilingue (FR/EN).
- Catalogue d'objets : vue liste (table + cartes) avec recherche, filtres et tri ; vue détail par objet.
- Calcul de prix réaliste : coût de revient à 2 termes
(matière + travail) × qualité, matière et poids sommés sur les composants ; la cohérence est vérifiée contre des prix historiques sourcés (cf.docs/ECONOMIC-MODEL.md). - Sélecteur de matériau : le prix et le poids se recalculent en changeant le matériau de la partie principale (lame, plaques…), en ne proposant que les matériaux disponibles à l'ère courante.
- Conversion de devises hiérarchique (po / pa / pc).
- Générateur de PNJ : fiche générée par tables conditionnées (milieu → métier → économie, âge → passé), reroll par champ avec cascade visible, module optionnel « magie », grimoire persistant ; revenus sourcés historiquement et étal pricé par le vrai catalogue (cf.
docs/NPC-GENERATOR.md). - i18n FR/EN via next-intl.
- Framework : Next.js 15 (App Router), React 19, TypeScript (strict, sans
any) - UI : shadcn/ui, Tailwind CSS
- État : Zustand (état local ciblé)
- Validation : Zod (schémas d'objets et de matériaux)
- i18n : next-intl
- Tests : Vitest
- Lint/format : Biome
pnpm install
pnpm devOuvrir http://localhost:3000.
pnpm dev # serveur de développement
pnpm build # build de production
pnpm typecheck # vérification TypeScript
pnpm lint # Biome
pnpm test:run # tests VitestLe code suit une organisation feature-first sous src/features/. Voir docs/ARCHITECTURE.md pour la structure détaillée (vues list/detail, modules métier, schémas).
Le dossier
.claude/(agents, hooks) est de l'outillage de développement privé et ne fait pas partie de l'application livrée.