feat(data): import 80 feats from reference sources (#50) #51

Merged
Reliodas merged 2 commits from feat/50-feats-data into develop 2026-07-01 11:31:22 +00:00
Owner

Premier lot du chantier de données #50 (dons d'abord, non fermé — chantier de suivi).

Ce que fait la PR

Ajoute 80 dons à data/feats.js, extraits des sources de référence D&D 5.5e (sources/dons_dnd_5.5e.html) via un extracteur dédié :

  • Types mappés : Don d'Origine (15), Style de Combat (9), Don Général (56).
  • Les dons avec sous-bénéfices nommés (<strong>Nom</strong>. texte) sont découpés en items structurés {name, desc} ; les dons en résumé (non-OGL) donnent un item unique.
  • 40 entrées sans aucun contenu (résumé « Description not available » vide, dont tous les dons épiques) sont écartées pour garantir des cartes lisibles.
  • Les dons existants curatés sont conservés (dédoublonnage par nom).

Sources hors dépôt

Le dossier sources/ (pages HTML + assets tiers : jquery, analytics) est ajouté à .gitignore et .dockerignore : matériel de référence, pas partie de l'application, à ne pas servir.

Vérification (critères d'acceptation)

  • data/feats.js : format identique à l'existant, syntaxe valide (node scripts/smoke-test.js OK).
  • FEATS_DATA charge sans erreur console ; les nouveaux dons apparaissent dans la recherche de préréglages.
  • Rendu carte contrôlé (ex. Athlète : prérequis + sous-bénéfices nommés en gras) ; node tests/visual-validation.js 8/8 OK.

Suite

Lots suivants : sorts par niveau (384 sorts dans la source). Le ticket #50 reste ouvert (chantier de suivi).

Refs #50

🤖 Generated with Claude Code

Premier lot du chantier de données #50 (**dons d'abord**, non fermé — chantier de suivi). ## Ce que fait la PR Ajoute **80 dons** à `data/feats.js`, extraits des sources de référence D&D 5.5e (`sources/dons_dnd_5.5e.html`) via un extracteur dédié : - Types mappés : Don d'Origine (15), Style de Combat (9), Don Général (56). - Les dons avec sous-bénéfices nommés (`<strong>Nom</strong>. texte`) sont découpés en `items` structurés `{name, desc}` ; les dons en résumé (non-OGL) donnent un item unique. - **40 entrées sans aucun contenu** (résumé « Description not available » vide, dont tous les dons épiques) sont **écartées** pour garantir des cartes lisibles. - Les dons existants curatés sont conservés (dédoublonnage par nom). ## Sources hors dépôt Le dossier `sources/` (pages HTML + assets tiers : jquery, analytics) est ajouté à `.gitignore` **et** `.dockerignore` : matériel de référence, pas partie de l'application, à ne pas servir. ## Vérification (critères d'acceptation) - `data/feats.js` : format identique à l'existant, syntaxe valide (`node scripts/smoke-test.js` OK). - `FEATS_DATA` charge sans erreur console ; les nouveaux dons apparaissent dans la recherche de préréglages. - Rendu carte contrôlé (ex. **Athlète** : prérequis + sous-bénéfices nommés en gras) ; `node tests/visual-validation.js` 8/8 OK. ## Suite Lots suivants : **sorts par niveau** (384 sorts dans la source). Le ticket #50 reste **ouvert** (chantier de suivi). Refs #50 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(data): import 80 feats from reference sources (#50)
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
9a6b5651f5
First batch of the data-completion chantier (#50): add 80 feats to
data/feats.js (Origin, Fighting Style and General feats) extracted from the
D&D 5.5e reference pages. Feats whose description lists named sub-benefits
are split into structured items; entries with no available content are
skipped so every card is readable. Existing curated feats are kept
(duplicates by name are skipped).

The reference material (sources/) is kept out of version control and out of
the Docker image (.gitignore and .dockerignore) since it bundles third-party
assets and is not part of the app.

Verified: FEATS_DATA loads without console errors, the new feats appear in
the preset search, and a sampled card renders readably (named sub-benefits
in bold); smoke and visual validation pass. Next batches: spells by level.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019fEfJomg2UxRUoR6fduyAC
docs(data): track feats skipped for missing content (#50)
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
faf4dad859
Record the 40 feats that were skipped during the import because the source
had no usable text (non-OGL entries with no summary), in
docs/donnees-a-completer.md, so they can be searched and completed later.
Reference the tracking file from the CHANGELOG.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019fEfJomg2UxRUoR6fduyAC
Reliodas merged commit bb383caa71 into develop 2026-07-01 11:31:22 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dnd/cards#51
No description provided.