Files
Rozpisky/CLAUDE.md
T
marekandClaude Opus 5 cd2b82db3c Vlastní loga uživatele mimo instalační složku
Loga se dosud hledala jen v loga\ vedle .exe. Kdo si do číselníku přidal
firmu s vlastním logem, musel .dxf nakopírovat do instalační složky – tu ale
přeinstalace přepíše a v Program Files do ní nejde psát. Číselník firmu
přežil, logo ne.

Nově se hledá nejdřív v %APPDATA%\Rozpisky\loga a teprve pak mezi
dodávanými; nabídka v Údajích projektu je sjednocením obou složek (stejné
jméno se nezdvojuje). Tlačítko v Nastavení složku založí a otevře.

Hierarchie je stejná jako u číselníků a je to úmyslné: při konfliktu vyhrává
uživatelská vrstva. Kdyby vyhrávala dodávaná, uživatelova úprava by se tiše
neprojevila – on ji vidí uloženou, program pracuje s něčím jiným. Výjimkou
zůstávají data držící správnost výstupu (mapovani.json, Rozpiska.dxf), kde
vyhrává program.

Subagenti dostali explicitní model: render-dxf a wpf-ui sonnet,
verifikator haiku (jen spouští build a testy).

Build 0 chyb / 0 varování, 55 testů zelených (5 nových na slučování nabídky).

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

4.3 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í, 55 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í.

Podrobnosti (vrstvy, NuGet API, pravidla zápisu DXF) — 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.