# 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 ```powershell 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í, **36 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`](Rozpisky/Rendering/IProfileRenderer.cs). 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`](Rozpisky/Dxf/DxfTemplate.cs) jen čte DXF šablonu a „přehrává" ji do tohoto rozhraní. Podrobnosti (vrstvy, NuGet API, pravidla zápisu DXF) — [`ROZPISKY.md`](docs/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`](Rozpisky/ViewModels/RelayCommand.cs) a [`ObservableObject`](Rozpisky/Models/ObservableObject.cs) — 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. ## 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`](docs/ROZHRANI.md) — obrazovky, pole a datový model. [`PODKLAD_CAD_Layout_Tisk.md`](docs/PODKLAD_CAD_Layout_Tisk.md) — CAD, layouty a tisk přes COM.