Files
Rozpisky/CLAUDE.md
T
marekandClaude Opus 5 10548b5698 Doku: kreslicí rozhraní po změnách, tabulka entit a známá omezení
ROZPISKY.md §3 popisuje nové rozhraní (KresliciStav, Vypln, rozšířený TextStyle)
a hlavně *proč* barva nese původ, ne jen RGB. Přibyla tabulka DXF entit, které
se čtou, a seznam známých omezení — inline kódy MTEXTu, zarovnání Aligned/Fit,
typy čar, dohledávání vzoru šrafy v CADu. Opraveno tvrzení, že tloušťka čáry je
jen Layer.LineWeight; zapisuje se i na entitu.

CLAUDE.md doplněno druhé pravidlo architektury: co má přežít cestu DXF → model
→ DXF, musí protéct rozhraním — obcházet ho zpátky na CadDocument šablony je
porušení toho prvního. Baseline testů 57 → 114 (i v subagentech).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 14:49:34 +02:00

4.9 KiB

Rozpisky — pokyny pro Claude Code

WPF desktopová aplikace (.NET 10, net10.0-windows, AnyCPU) — generátor výkresových rohových razítek („rozpisek") pro Správu železnic. Náhrada původního excelového nástroje „Rozpisky 1.0.8".

Příkazy

dotnet build "Rozpisky.sln" -nologo -v q -clp:ErrorsOnly
dotnet test  "Rozpisky.Tests\Rozpisky.Tests.csproj" -nologo -v q
dotnet run   --project "Rozpisky\Rozpisky.csproj"

Baseline: build bez chyb a varování, 114 testů zelených. Před hlášením hotovo obojí spustit (nebo použít /overit).

Architektura — jediné pravidlo, které se nesmí porušit

Veškerá kresba jde přes jedno rozhraní IProfileRenderer. Tatáž kresba teče na obrazovku, do PNG, do PDF i do DXF. Nový výstupní formát = nová implementace IProfileRenderer, nikdy nový kreslicí kód. Čtečka DxfTemplate jen čte DXF šablonu a „přehrává" ji do tohoto rozhraní.

Z toho plyne druhé pravidlo: co má přežít cestu DXF → model → DXF, musí protéct rozhraním. Zdrojové soubory jsou zapsané indexovanými barvami AutoCADu, takže stav kresby (KresliciStav) nese barvu i s původem (ACI index / true color / ByLayer / ByBlock), název textového stylu a vzor šrafy — ne jen výsledné RGB. Nová vlastnost, kterou má export zachovat, patří do rozhraní; obcházet ho stranou (sáhnout z rendereru zpátky na CadDocument šablony) je porušení prvního pravidla.

Podrobnosti (vrstvy, NuGet API, pravidla zápisu DXF, tabulka čtených entit a známá omezení) — ROZPISKY.md. Nečíst celý, jen relevantní kapitolu.

Konvence

  • Kód, komentáře, commity i názvy typů jsou česky (BoundsTesty, PlaceholderHladiny, NajdiKoren). Držet se toho, nepřejmenovávat do angličtiny.
  • MVVM bez frameworku: znovupoužít RelayCommand a ObservableObject — nepsat vlastní ani nepřidávat NuGet (CommunityToolkit apod.).
  • XAML: barvy a rozměry jen z Rozpisky/Themes/Colors.Dark.xaml a Metrics.xaml (WPF-DarkTheme-Kit). Žádné hardcoded #RRGGBB ani natvrdo zadané odsazení.
  • Nullable a ImplicitUsings jsou zapnuté v obou projektech.
  • COM (CAD, MS Excel) jde přes pozdní vazbu (dynamic) — nepřidávat interop assembly.
  • Uživatelská data (číselníky, výběr CADu, logy) jdou přes UzivatelskaData do %APPDATA%\Rozpisky. Do složky u .exe se nezapisuje — může být jen pro čtení a přeinstalace ji přepíše. Číselníky navíc žijí ve dvou vrstvách (CiselnikyStore) a loga ve dvou složkách (LogaResolver): dodávané + uživatelské navrch. Při konfliktu vyhrává uživatelská vrstva — jinak by se jeho úprava tiše neprojevila. Výjimka jsou data, která drží správnost výstupu (mapovani.json, Rozpiska.dxf) — tam vyhrává program. Změnu slučování vždy pokrýt testem: chyba tam se projeví tichou ztrátou dat.

Rozvržení složky — tři druhy podkladů

Kde Co to je
docs/ Podklady jen pro tvorbu programu — architektura, datový model, normativní manuál SŽ v .md. Nedodává se uživateli.
Rozpisky/Podklady/ Podklady nutné k běhu — kopírují se vedle .exe (plochá struktura + loga\, řídí Link v .csproj). Aplikace je jen čte.
%APPDATA%\Rozpisky Podklady vznikající za běhu — vše, co píše uživatel. V repu nejsou a nemají tam co dělat.
vzorky/ Cizí vstupy pro ruční zkoušení (schema.dxf). Nedodává se.

Nové dodávané datum = do Rozpisky/Podklady/ a řádek v .csproj s Link, ať výstup zůstane plochý. Nový zapisovaný soubor = přes UzivatelskaData.Cesta(...), nikdy AppContext.BaseDirectory.

Kam nesahat

  • Rozpisky/Podklady/Rozpiska.dxf, vzorky/schema.dxf — produkční DXF šablony.
  • Rozpisky/Podklady/loga/*.dxf — dodávaná loga (9 ks, testy je renderují).
  • Rozpisky/Podklady/SEZNAM.xlsx — mustr „Seznam příloh".
  • docs/SZ_SM011_P10_Manual_v6.md, Rozpisky/Podklady/SZ_SM011_P10_Manual_v6.pdf — normativní podklad SŽ, jen ke čtení.

Delegování

Specializovaní subagenti v .claude/agents/: render-dxf (Rendering/, Dxf/), wpf-ui (ViewModels/, Views/, Themes/), verifikator (read-only build + testy). Pro úkol spadající celý do jedné z těchto domén je použít; drobnosti napříč vrstvami řešit v hlavním vlákně.

Další dokumentace

ROZHRANI.md — obrazovky, pole a datový model. PODKLAD_CAD_Layout_Tisk.md — CAD, layouty a tisk přes COM.