Skip to content

Commit 594babc

Browse files
jsboigeclaude
andcommitted
docs: update CLAUDE.md with SDK upgrade, GSheet sync, and roadmap progress
- SDK section: Betalgo → official OpenAI v2.10.0 (#183 done) - GSheet sync section: 9-file module with 6-layer safety (#193 done) - Test coverage: 77 pass / 0 fail / 1 skip (#204 exceeded) - Roadmap: items 6-8 done, 9-16 updated with current priorities - Data quality issues table (duplicate PKs, translation gaps) - Recent commits added to recovery log - .gitignore: exclude Claude session artifacts in subdirectories Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 092d463 commit 594babc

3 files changed

Lines changed: 129 additions & 10 deletions

File tree

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Pipeline Multilingual Recovery - Checkpoint
2+
3+
## Date: 2026-03-14
4+
5+
## Progression
6+
7+
### ✅ Tâches complétées
8+
9+
1. **AlternateFaceAndBack fix validé**
10+
- Le code dans `PdfManager.cs` partitionne correctement:
11+
- Cartes AVEC dos en premier (Back + Face alternés)
12+
- Cartes SANS dos à la fin (Face uniquement)
13+
- Test: "201 cards with back, 0 cards without back" pour TarotCards_fr.pdf
14+
15+
2. **Problème backs Fallacies FR corrigé**
16+
- **Cause**: Le fichier harvest FR (`Fallacies_harvest_fr.json`) avait `"Images": {}` dans la section Backs
17+
- **Solution**: Supprimé le fichier harvest pour forcer sa régénération
18+
- **Résultat**: Le nouveau harvest contient `"card_001": "data:image/png;base64,..."` correctement
19+
20+
3. **Localisation activée**
21+
- Changé `Enabled = false``true` dans `AssetConverterConfig.cs` ligne 86
22+
- Commentaire mis à jour: "Enabled for multilingual generation (FR, EN, RU, PT)"
23+
24+
## Résultats génération multilingue
25+
26+
### TarotCards générés (4 langues)
27+
28+
| Langue | Fichier | Taille | Date | Backs |
29+
|--------|---------|--------|------|-------|
30+
| FR | TarotCards_fr.pdf | 139MB | 19:52 | ✅ 201 avec back |
31+
| EN | TarotCards_en.pdf | 322MB | 19:48 ||
32+
| RU | TarotCards_ru.pdf | 129MB | 19:50 ||
33+
| PT | TarotCards_pt.pdf | 322MB | 19:36 ||
34+
35+
### Total PDFs générés
36+
37+
- **Avant**: 11 PDFs (FR seulement)
38+
- **Après**: 79 PDFs (FR + EN + RU + PT)
39+
40+
## Problème identifié (non critique)
41+
42+
### Print&Play TarotCards FR
43+
- Message: "177 cards with back, 24 cards without back"
44+
- **Cause**: Incertain - possibilité de problème de format Print&Play
45+
- **Impact**: Format alternatif, le TarotCards standard fonctionne correctement
46+
47+
## Modifications au code
48+
49+
### AssetConverterConfig.cs
50+
```csharp
51+
// Ligne 86
52+
- Enabled = false, // Disabled temporarily - FR only for pipeline validation
53+
+ Enabled = true, // Enabled for multilingual generation (FR, EN, RU, PT)
54+
```
55+
56+
### Fichiers harvest modifiés
57+
- `Fallacies_harvest_fr.json` - Régénéré avec backs (card_001)
58+
59+
## Validation à faire
60+
61+
1. ✅ Vérifier que les PDFs TarotCards ont correctement des backs (recto-verso)
62+
2. ⏳ Validation visuelle du contenu (texte lisible, images chargées)
63+
3. ⏳ Vérifier les Rules multilingues (EN/RU/PT)
64+
4. ⏳ Investiguer issue #119 (Rules layout formatting)
65+
66+
## Commit suggéré
67+
68+
```
69+
feat(pipeline): enable multilingual generation + fix FR Fallacies backs
70+
71+
- Enable LocalizationConfig.Enabled = true (FR, EN, RU, PT)
72+
- Fix Fallacies FR harvest (backs were empty, regenerated with card_001)
73+
- Validate AlternateFaceAndBack ordering (cards with back first)
74+
- Generate 79 PDFs across 4 languages (vs 11 FR-only)
75+
76+
Test: TarotCards PDFs for all languages have correct backs
77+
```
78+
79+
## Prochaine étape
80+
81+
Valider visuellement les PDFs générés puis créer la PR.

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,4 +220,7 @@ _mm_export/
220220

221221
# Generated preview directories
222222
_gen_preview/
223-
_ref_preview/
223+
_ref_preview/
224+
225+
# Claude Code session artifacts in subdirectories (not root .claude/)
226+
Generation/**/.claude/

CLAUDE.md

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -405,12 +405,29 @@ Chaque famille doit avoir sa classe CSS définie dans le template JSON. Liste co
405405

406406
### Translation Pipeline (DatasetUpdater)
407407

408-
- **SDK**: `Betalgo.OpenAI` v8.1.0 — **outdated**, evaluate alternatives (Semantic Kernel, official OpenAI SDK)
409-
- **Models**: All deprecated (`gpt-3.5-turbo-1106`, `gpt-4-1106-preview`, `gpt-4-0125-preview`, `gpt-4-turbo`)
410-
- **Config**: `DatasetUpdater/DatasetUpdaterRootConfig.cs` — 7 task configs
408+
- **SDK**: Official OpenAI .NET SDK v2.10.0 (PR #210 merged)
409+
- **Models**: `gpt-4.1`, `gpt-4.1-mini` (all deprecated model constants replaced)
410+
- **Config**: `DatasetUpdater/DatasetUpdaterRootConfig.cs` — 7 task configs (all `Enabled = false`)
411411
- **Prompts**: 29 files in `DatasetUpdater/Resources/`
412+
- **Function calling**: Manual `FunctionToolDef` + JSON schema + `BinaryData.FromString()`
412413
- **Virtues CSV has NO multilingual columns** — only `_fr` fields, translation entirely absent
413-
- **Issue #183** tracks full upgrade plan
414+
- **Issue #183** DONE — merged via PR #210
415+
416+
### GSheet ↔ CSV Sync (PR #200 merged)
417+
418+
- **Module**: `GSheetSync/` (9 files: CsvDiffEngine, DiffReport, SyncSafetyChecker, Auth, Service, Runner, configs)
419+
- **Mode flag**: `ConverterMode.GSheetSync = 1 << 14` (16384)
420+
- **Safety**: 6-layer upload protection (dry-run, diff, thresholds, confirmation, backup, verify)
421+
- **4 spreadsheet configs**: Fallacies, Scenarii, Virtues, Rules (all `Enabled = false`)
422+
- **Pending**: OAuth credentials for end-to-end testing
423+
- **Tests**: 77 pass / 0 fail / 1 skip (includes CsvDiffEngine, SyncSafetyChecker, DiffReport, CsvToGrid tests)
424+
425+
### Test Coverage (April 2026)
426+
427+
- **77 tests** pass, 1 skip (Freeplane GUI — requires interactive session)
428+
- Coverage includes: CsvDiffEngine, SyncSafetyChecker, DiffReport, CsvToGrid, MindMapHtmlWrapper, Playwright visual tests
429+
- Issue #204 tracks expansion (target >= 70, now exceeded)
430+
- Issue #212 tracks Playwright visual regression tests for generated PDFs
414431

415432
### Prochaines étapes
416433

@@ -419,11 +436,17 @@ Chaque famille doit avoir sa classe CSS définie dans le template JSON. Liste co
419436
3. ~~Activer et tester génération multilingue~~ FAIT (17 Mars 2026)
420437
4. ~~Valider formats: Tarot, Poker, A0, Print&Play~~ FAIT
421438
5. ~~Mind Maps + SVGs (Batik)~~ FAIT (6 Avril 2026)
422-
6. Valider tous les documents générés avant publication
423-
7. #183 — Upgrade pipeline traduction (SDK + modèles SOTA + Vertues i18n)
424-
8. #134 — GitHub Release
425-
9. #133 — Publication OWL
426-
10. #131/#132 — DNN site + déploiement
439+
6. ~~#183 — Upgrade SDK traduction~~ FAIT (PR #210 merged, avril 2026)
440+
7. ~~#193 — GSheet ↔ CSV sync~~ FAIT (PR #200 merged, avril 2026)
441+
8. ~~#202 Phase 1 — CSV text micro-fixes~~ FAIT (PR #203 + #213 merged)
442+
9. Valider DatasetUpdater round-trip avec OpenAI API (3-5 records, Enabled=true)
443+
10. #211 — Retraduction complète PT Rules via pipeline (débloqué par #183)
444+
11. #212 — Playwright visual regression tests pour PDFs générés
445+
12. Virtues i18n — ajouter colonnes _en/_ru/_pt au CSV + traduire
446+
13. Scenarii — 77 scénarios manquants EN/RU/PT à traduire
447+
14. #134 — GitHub Release
448+
15. #133 — Publication OWL
449+
16. #131/#132 — DNN site + déploiement
427450

428451
### Commits clés de la recovery
429452

@@ -436,6 +459,18 @@ Chaque famille doit avoir sa classe CSS définie dans le template JSON. Liste co
436459
| `9b19d5e8` | fix(config): remove RowsetNb=14 for Scenarii CardSet |
437460
| `75a049d3` | fix(mindmap): restore validated FreeMind SendKeys automation |
438461
| `55c6774e` | feat(assets): replace XSLT SVGs with FreeMind Batik SVGs |
462+
| `fd2aef10` | feat(dataset-updater): migrate to official OpenAI SDK v2.10.0 (#183) |
463+
| `e24cbd17` | fix(prompt): enable #nullable context and guard null param.Name |
464+
| `092d4639` | Merge PR #200 — bidirectional GSheet ↔ CSV sync (#193) |
465+
466+
### Data Quality Issues (April 2026)
467+
468+
| Issue | Description | Status |
469+
| ------- | ----------- | ------ |
470+
| Fallacies duplicate PKs 520, 1000 | Warning surfaces during GSheet sync | Needs upstream fix |
471+
| Scenarii 53% translated | 77/167 scenarios missing EN/RU/PT | Blocked by #211 → then pipeline run |
472+
| Virtues 0% translated | No _en/_ru/_pt columns | Unblocked by #183, needs CSV columns added |
473+
| PT Rules MT errors (#211) | Catastrophic MT translations | Needs full retranslation via pipeline |
439474

440475
## Related Documentation
441476

0 commit comments

Comments
 (0)