[!CAUTION]
⚠️ ATTENZIONE: REPOSITORY DI TEST PER GEMINI 3.8 FLASH ⚠️
QUESTA REPOSITORY È UTILIZZATA ESCLUSIVAMENTE COME TEST PER LE ABILITÀ E LE CAPACITÀ DI GEMINI 3.8 FLASH.
- ⚠️ Stato Sperimentale: Il codice, l'architettura e la documentazione in questa repository sono generati e modificati per testare le capacità dell'IA.
- 💥 Possibili Malfunzionamenti: Il progetto potrebbe non funzionare affatto, presentare crash, comportamenti imprevisti o componenti non operativi.
- 🚨 Presenza di Errori Gravi: Potrebbero essere presenti bug critici, falle di sicurezza, errori di logica e regressioni gravi.
- 🛑 Nessuna Garanzia: Non utilizzare questo codice in produzione o per scopi critici senza un'accurata verifica e revisione indipendente.
CardMaker è una piattaforma professionale data-driven per la generazione, composizione, rendering e stampa di carte da gioco collezionabili (TCG).
Il progetto è architettato per supportare nativamente molteplici giochi di carte (TCG standard e giapponesi), con pipeline di rendering tipografico ad altissima precisione basata su SkiaSharp, motore di inferenza AI locale multimodale per la generazione di testi e illustrazioni (artwork) basato su modelli Gemma e Stable Diffusion (formato GGUF), e conformità agli standard tipografici industriali di bleed, trim, safe zone e risoluzione (150 / 300 / 600 DPI).
| Gioco | Formato Fisico | Master Canvas (600 DPI) | Trim (Taglio) | Bleed | Safe Zone | Font Principali |
|---|---|---|---|---|---|---|
| Yu-Gi-Oh! & Rush Duel | Japanese (59 × 86 mm) | 1488 × 2126 px | 1394 × 2031 px | 2.0 mm (47 px) | 3.0 mm (71 px) | Matrix-Bold, Stone Serif, FOT-Rodin Pro M |
| Pokémon TCG | Standard Poker (63 × 88 mm) | 1583 × 2173 px | 1488 × 2079 px | 2.0 mm (47 px) | 3.0 mm (71 px) | Gill Sans Bold, Futura Bold |
| Magic: The Gathering | Standard Poker (63 × 88 mm) | 1583 × 2173 px | 1488 × 2079 px | 2.0 mm (47 px) | 3.0 mm (71 px) | Beleren Bold, MPlantin Regular & Italic |
Tutti i frame master coprono il canvas comprensivo dell'abbondanza tipografica (bleed):
+BleedPx su tutti i lati.BleedPx + SafeZonePx.$$\text{Pixel} = \left\lfloor \frac{\text{Millimetri} \times \text{DPI}}{25.4} + 0.5 \right\rfloor$$
CardMaker.AI)CardMaker integra un motore di intelligenza artificiale locale e privato, completamente offline e senza dipendenze cloud o invio di dati all'esterno, sia per i testi di gioco sia per le illustrazioni delle carte:
LLamaSharp (0.27.0) con backend CPU ottimizzato per Windows (llama.dll) e Linux (libllama.so).Q4_K_M) — compatto e veloce.Q4_K_M) — bilanciato e raccomandato.Q4_K_M) — alta fedeltà semantica.Q4_K_M) — massima creatività e dettaglio.IAssetCatalog / SHA-256) e assegnata immediatamente come artwork della carta nell'editor.Range: bytes=...) e validazione header GGUF.Il progetto adotta un'architettura modulare a livelli conforme ai principi della Clean / Hexagonal Architecture, compilata con .NET 10 (C# 13):
CardMaker.slnx
├── src/CardMaker.Domain # Entità del dominio, aggregati (Card, Template, Asset, Game), Identity e Audit
├── src/CardMaker.Contracts # DTO, geometrie (CardGeometry), AST condizionale (ConditionOps) e layout JSON
├── src/CardMaker.Application # Interfacce di servizio (Porte), validatori, logica applicativa, seeder e AI Manager
├── src/CardMaker.AI # Libreria AI: binding llama.cpp, registry Gemma/SD GGUF, engine testo e immagini
├── src/CardMaker.Rendering # Motore SkiaSharp: rasterizzatore, TextEngine (auto-fit), simboli procedurali, PDF
├── src/CardMaker.Infrastructure # Implementazioni: EF Core SQLite, IAssetStore, FontCatalog, AI Downloader resiliente
├── src/CardMaker.UI # Razor Class Library (RCL): componenti grafici, editor dinamici, AI modal, banner, Admin
├── src/CardMaker.Desktop # Host nativo multipiattaforma basato su Photino.Blazor (Linux, Windows, macOS)
├── src/CardMaker.Web # Host Web ASP.NET Core: middleware di sicurezza, rate-limiting, healthcheck
└── tests/ # Suite automatica: 256 test di unità, integrazione, AI e rendering (100% verdi)
llama.cpp.CapHeight e simboli inline {sym:...}./admin/templates/{id}):
VisibleWhen).FieldDefinition), con campi condizionali e selettore di tratti.Task.Run).VACUUM INTO).SetLogVerbosity(0)).A livello di root del repository sono presenti comodi script con gestione automatica di pulizia e restore:
# Linux / macOS
./run-desktop.sh # Avvia l'applicazione Desktop nativa (Photino.Blazor)
./run-web.sh # Avvia l'applicazione Web (Kestrel su http://localhost:5240)
:: Windows
run-desktop.bat :: Avvia l'applicazione Desktop nativa
run-web.bat :: Avvia l'applicazione Web (http://localhost:5240)
Al primo avvio, il database SQLite locale viene inizializzato e popolato con i contenuti base e un utente amministratore:
admin@cardmaker.localAdmin123!456(In modalità Desktop, l'accesso amministrativo offline è automatico e non richiede login).
Per eseguire l'intera suite di collaudo automatizzata:
dotnet test
Attualmente la suite include 256 test (104 test di rendering/geometria e 152 test applicativi/integrazione/AI), tutti superati con 0 errori e 0 avvisi.
Il progetto include workflow nativi al 100% per GitHub Actions:
.github/workflows/ci-fast.yml): Eseguito ad ogni push e pull_request. Esegue il restore con cache, la compilazione in Release con TreatWarningsAsErrors=true, 231 test essenziali (con esclusione dei golden test di rendering locale) e l'audit dei pacchetti NuGet vulnerabili..github/workflows/release.yml): Eseguito al push di un tag di versione (v*) o tramite avvio manuale (workflow_dispatch). Compila ed esporta binari ottimizzati per Windows e Linux, genera i checksum SHA-256 (SHA256SUMS.txt) e pubblica automaticamente la GitHub Release:
CardMaker-<tag>-Windows-Setup-x64.exe — Installer desktop guidato (compilato con Inno Setup).CardMaker-<tag>-Windows-Portable-x64.zip — Portatile Self-Contained (zero prerequisiti, runtime .NET 10 incluso).CardMaker-<tag>-Windows-FDD-x64.zip — Portatile Framework-Dependent (~15 MB, per chi ha già .NET 10 installato).CardMaker-<tag>-Linux-amd64.deb — Pacchetto nativo Debian/Ubuntu/Mint con integrazione FreeDesktop (icone e .desktop).CardMaker-<tag>-Linux-x64.tar.gz — Tarball portatile universale Self-Contained con script run.sh.CardMaker-<tag>-Web-Standalone.zip — Archivio standalone per l'host Web Kestrel.Nella cartella docs/ è disponibile la knowledge base tecnica completa per sviluppatori e grafici:
docs/README.md: Indice generale della documentazione.docs/00-overview/project-context.md: Master context document — punto di partenza per nuove sessioni.docs/01-architecture/ai-engine.md: Architettura del motore AI locale (llama.cpp, profili Gemma, startup download e resume).docs/01-architecture/architecture.md: Architettura, pipeline di rendering e multi-host.docs/03-data/data-model.md: Modello dati relazionale e schema JSON dei template.docs/09-decisions/README.md: Registro delle decisioni architetturali (ADR-001 → ADR-038).docs/10-reference/asset-spec.md: Specifiche dimensionali per grafici e asset.docs/02-development/dev-guide.md: Guida per sviluppatori, configurazione e rotte applicative.docs/02-development/resume-prompt.md: Prompt di ripristino contesto rapido per nuove sessioni AI.[!CAUTION]
⚠️ ATTENZIONE: REPOSITORY DI TEST PER GEMINI 3.8 FLASH ⚠️
QUESTA REPOSITORY È UTILIZZATA ESCLUSIVAMENTE COME TEST PER LE ABILITÀ E LE CAPACITÀ DI GEMINI 3.8 FLASH.
- ⚠️ Stato Sperimentale: Il codice, l'architettura e la documentazione in questa repository sono generati e modificati per testare le capacità dell'IA.
- 💥 Possibili Malfunzionamenti: Il progetto potrebbe non funzionare affatto, presentare crash, comportamenti imprevisti o componenti non operativi.
- 🚨 Presenza di Errori Gravi: Potrebbero essere presenti bug critici, falle di sicurezza, errori di logica e regressioni gravi.
- 🛑 Nessuna Garanzia: Non utilizzare questo codice in produzione o per scopi critici senza un'accurata verifica e revisione indipendente.
CardMaker è una piattaforma professionale data-driven per la generazione, composizione, rendering e stampa di carte da gioco collezionabili (TCG).
Il progetto è architettato per supportare nativamente molteplici giochi di carte (TCG standard e giapponesi), con pipeline di rendering tipografico ad altissima precisione basata su SkiaSharp, motore di inferenza AI locale multimodale per la generazione di testi e illustrazioni (artwork) basato su modelli Gemma e Stable Diffusion (formato GGUF), e conformità agli standard tipografici industriali di bleed, trim, safe zone e risoluzione (150 / 300 / 600 DPI).
| Gioco | Formato Fisico | Master Canvas (600 DPI) | Trim (Taglio) | Bleed | Safe Zone | Font Principali |
|---|---|---|---|---|---|---|
| Yu-Gi-Oh! & Rush Duel | Japanese (59 × 86 mm) | 1488 × 2126 px | 1394 × 2031 px | 2.0 mm (47 px) | 3.0 mm (71 px) | Matrix-Bold, Stone Serif, FOT-Rodin Pro M |
| Pokémon TCG | Standard Poker (63 × 88 mm) | 1583 × 2173 px | 1488 × 2079 px | 2.0 mm (47 px) | 3.0 mm (71 px) | Gill Sans Bold, Futura Bold |
| Magic: The Gathering | Standard Poker (63 × 88 mm) | 1583 × 2173 px | 1488 × 2079 px | 2.0 mm (47 px) | 3.0 mm (71 px) | Beleren Bold, MPlantin Regular & Italic |
Tutti i frame master coprono il canvas comprensivo dell'abbondanza tipografica (bleed):
+BleedPx su tutti i lati.BleedPx + SafeZonePx.$$\text{Pixel} = \left\lfloor \frac{\text{Millimetri} \times \text{DPI}}{25.4} + 0.5 \right\rfloor$$
CardMaker.AI)CardMaker integra un motore di intelligenza artificiale locale e privato, completamente offline e senza dipendenze cloud o invio di dati all'esterno, sia per i testi di gioco sia per le illustrazioni delle carte:
LLamaSharp (0.27.0) con backend CPU ottimizzato per Windows (llama.dll) e Linux (libllama.so).Q4_K_M) — compatto e veloce.Q4_K_M) — bilanciato e raccomandato.Q4_K_M) — alta fedeltà semantica.Q4_K_M) — massima creatività e dettaglio.IAssetCatalog / SHA-256) e assegnata immediatamente come artwork della carta nell'editor.Range: bytes=...) e validazione header GGUF.Il progetto adotta un'architettura modulare a livelli conforme ai principi della Clean / Hexagonal Architecture, compilata con .NET 10 (C# 13):
CardMaker.slnx
├── src/CardMaker.Domain # Entità del dominio, aggregati (Card, Template, Asset, Game), Identity e Audit
├── src/CardMaker.Contracts # DTO, geometrie (CardGeometry), AST condizionale (ConditionOps) e layout JSON
├── src/CardMaker.Application # Interfacce di servizio (Porte), validatori, logica applicativa, seeder e AI Manager
├── src/CardMaker.AI # Libreria AI: binding llama.cpp, registry Gemma/SD GGUF, engine testo e immagini
├── src/CardMaker.Rendering # Motore SkiaSharp: rasterizzatore, TextEngine (auto-fit), simboli procedurali, PDF
├── src/CardMaker.Infrastructure # Implementazioni: EF Core SQLite, IAssetStore, FontCatalog, AI Downloader resiliente
├── src/CardMaker.UI # Razor Class Library (RCL): componenti grafici, editor dinamici, AI modal, banner, Admin
├── src/CardMaker.Desktop # Host nativo multipiattaforma basato su Photino.Blazor (Linux, Windows, macOS)
├── src/CardMaker.Web # Host Web ASP.NET Core: middleware di sicurezza, rate-limiting, healthcheck
└── tests/ # Suite automatica: 256 test di unità, integrazione, AI e rendering (100% verdi)
llama.cpp.CapHeight e simboli inline {sym:...}./admin/templates/{id}):
VisibleWhen).FieldDefinition), con campi condizionali e selettore di tratti.Task.Run).VACUUM INTO).SetLogVerbosity(0)).A livello di root del repository sono presenti comodi script con gestione automatica di pulizia e restore:
# Linux / macOS
./run-desktop.sh # Avvia l'applicazione Desktop nativa (Photino.Blazor)
./run-web.sh # Avvia l'applicazione Web (Kestrel su http://localhost:5240)
:: Windows
run-desktop.bat :: Avvia l'applicazione Desktop nativa
run-web.bat :: Avvia l'applicazione Web (http://localhost:5240)
Al primo avvio, il database SQLite locale viene inizializzato e popolato con i contenuti base e un utente amministratore:
admin@cardmaker.localAdmin123!456(In modalità Desktop, l'accesso amministrativo offline è automatico e non richiede login).
Per eseguire l'intera suite di collaudo automatizzata:
dotnet test
Attualmente la suite include 256 test (104 test di rendering/geometria e 152 test applicativi/integrazione/AI), tutti superati con 0 errori e 0 avvisi.
Il progetto include workflow nativi al 100% per GitHub Actions:
.github/workflows/ci-fast.yml): Eseguito ad ogni push e pull_request. Esegue il restore con cache, la compilazione in Release con TreatWarningsAsErrors=true, 231 test essenziali (con esclusione dei golden test di rendering locale) e l'audit dei pacchetti NuGet vulnerabili..github/workflows/release.yml): Eseguito al push di un tag di versione (v*) o tramite avvio manuale (workflow_dispatch). Compila ed esporta binari ottimizzati per Windows e Linux, genera i checksum SHA-256 (SHA256SUMS.txt) e pubblica automaticamente la GitHub Release:
CardMaker-<tag>-Windows-Setup-x64.exe — Installer desktop guidato (compilato con Inno Setup).CardMaker-<tag>-Windows-Portable-x64.zip — Portatile Self-Contained (zero prerequisiti, runtime .NET 10 incluso).CardMaker-<tag>-Windows-FDD-x64.zip — Portatile Framework-Dependent (~15 MB, per chi ha già .NET 10 installato).CardMaker-<tag>-Linux-amd64.deb — Pacchetto nativo Debian/Ubuntu/Mint con integrazione FreeDesktop (icone e .desktop).CardMaker-<tag>-Linux-x64.tar.gz — Tarball portatile universale Self-Contained con script run.sh.CardMaker-<tag>-Web-Standalone.zip — Archivio standalone per l'host Web Kestrel.Nella cartella docs/ è disponibile la knowledge base tecnica completa per sviluppatori e grafici:
docs/README.md: Indice generale della documentazione.docs/00-overview/project-context.md: Master context document — punto di partenza per nuove sessioni.docs/01-architecture/ai-engine.md: Architettura del motore AI locale (llama.cpp, profili Gemma, startup download e resume).docs/01-architecture/architecture.md: Architettura, pipeline di rendering e multi-host.docs/03-data/data-model.md: Modello dati relazionale e schema JSON dei template.docs/09-decisions/README.md: Registro delle decisioni architetturali (ADR-001 → ADR-038).docs/10-reference/asset-spec.md: Specifiche dimensionali per grafici e asset.docs/02-development/dev-guide.md: Guida per sviluppatori, configurazione e rotte applicative.docs/02-development/resume-prompt.md: Prompt di ripristino contesto rapido per nuove sessioni AI.