1---2name: soneta-erp3description: Mapa i przewodnik po wyspecjalizowanych skillach platformy Soneta (enova365, Triva): soneta-programming (ORM, kod biznesowy), soneta-addon-planning, soneta-business-xml, soneta-form-xml, soneta-repx (wydruki DevExpress .repx), soneta-place-def-elementow, soneta-config (import/eksport XML, scan-folders, appsettings.json — porty i adresy komponentów), soneta-config-reg (rejestr konfiguracji ConfigReg, providery, *.reg.json), soneta-tools (narzędzia CLI: dbmgr, buscall, SonetaFrame), soneta-containers (docker compose, Apple container, Helm/Kubernetes, wersje obrazów, baza w kontenerze). Używaj gdy użytkownik: (1) rozpoczyna zadanie dla platformy Soneta i nie wiadomo, który skill wybrać; (2) pyta ogólnie o dodatki, moduły lub rozszerzenia Soneta ERP; (3) wspomina enova, Soneta Enterprise, Triva bez sprecyzowania warstwy (dane, UI, logika, płace); (4) chce poznać dostępne skille; (5) realizuje zadanie obejmujące wiele warstw platformy (np. moduł z bazą, formularzami i logiką).4---56# Mapa skills podczas pracy z platformą Soneta (enova365, Triva)78* `/soneta-programming` - Fundamentalne klasy ORM platformy Soneta. Obejmuje mapowanie 9obiektowo-relacyjne (Row, Table, Module), zarządzanie sesją (Session), logowanie (Login, Database, BusApplication), 10paczki danych (Datapack, GuidedRow) oraz kontekst (Context). Używaj gdy użytkownik pyta o podstawowe klasy logiki 11biznesowej, strukturę obiektów ORM, sesje i transakcje, hierarchię klas Row/Table/Module, mechanizm Datapack i 12synchronizację danych, lub kontekst aplikacji Soneta, Context 13* `/soneta-addon-planning` - Planowanie projektów dodatków dla platformy Soneta. Tworzy14 kompletną dokumentację projektową obejmującą: strukturę danych (tabele, relacje),15 elementy konfigurowalne, definicje list i menu, formularze, workery i raporty.16 Używaj gdy użytkownik prosi o zaplanowanie nowego modułu/dodatku Soneta,17 przygotowanie założeń projektu, stworzenie specyfikacji funkcjonalnej dodatku,18 lub zdefiniowanie struktury danych i interfejsu użytkownika dla nowego modułu.19* `/soneta-business-xml` - Generator plików business.xml dla platformy Soneta.20 Tworzy definicje obiektów biznesowych (tabel, kolumn, relacji, indeksów) zgodne21 ze schematem XSD. Używaj gdy użytkownik prosi o stworzenie nowego modułu biznesowego,22 zdefiniowanie obiektów lub encji do przechowywania w bazie danych, utworzenie relacji23 między obiektami, lub generowanie plików business.xml dla platformy Soneta.24* `/soneta-config` - Narzędzia i mechanizmy związane z konfiguracją systemu i funkcjami25 domenowymi platformy (zawartość rozwijana). Obecnie: (A) **import/eksport danych i ustawień26 konfiguracyjnych przez pliki XML** — struktura pliku `<session>`, import według rekordów27 (pliki `*.dbinit.xml`, baza demo), import przez logikę biznesową (`business="true"`),28 eksport datapacku, identyfikacja po GUID, formaty wartości; (B) `scan-folders` —29 inwentaryzacja **folderów statycznych menu** (`[assembly: FolderView]`) z bibliotek DLL30 (drzewo pozycji menu, listy, formularze, powiązanie z tabelą/`ViewInfo`); (C) **konfiguracja31 uruchomieniowa `appsettings.json`** — porty i adresy komponentów (orchestrator, server, web,32 webapi, webwcf, router, commhub), sprzężone pary adresów, kolejność warstw nadpisań33 (profil systemu, `-c`, `SONETA_`, argumenty CLI), znaczenie kluczy. Używaj gdy34 użytkownik buduje/analizuje XML importu danych Soneta, przenosi ustawienia między bazami,35 eksportuje rekordy do XML, mapuje strukturę menu dodatku, albo konfiguruje porty/adresy36 komponentów i pyta, co robi klucz w `appsettings.json`. Warstwa kodu importu37 (`SessionReader`/`SessionWriter`) i ORM → `/soneta-programming`; operacje na bazie z CLI →38 `/soneta-tools`.39* `/soneta-config-reg` - **Rejestr konfiguracji (ConfigReg)** — silnik zrzucający całą40 konfigurację bazy do drzewa `ConfigReg`, serializowanego do plików `*.reg.json` i tabeli41 `ConfigRegistry`. Od strony kodu C#: providery `IConfigRegProvider` (Root/Module/Table/Row/42 SubTable/Storage/Addins), atrybut `[ConfigReg(Hide/Ignore/Include/ChildrenType)]` sterujący43 zakresem rejestru, potok Loader → Differ/Merger → SessionUpdater, format JSON (`$strict`,44 `$v`, `#klucz`, `@atrybut`). Używaj gdy użytkownik pyta o rejestr konfiguracji, chce wyłączyć45 tabelę lub kolumnę z rejestru, pisze/poprawia provider albo debuguje przenoszenie ustawień46 między bazami przez rejestr. Odróżnij od `/soneta-config`: XML (`<session>`, `dbinit.xml`)47 to inny, niezależny mechanizm.48* `/soneta-tools` - Narzędzia deweloperskie wiersza poleceń Soneta. `dbmgr` — zarządzanie49 bazami danych (tworzenie/rejestracja, konwersja, backup/restore, licencje, rozszerzenia,50 analiza, kompilacja); przygotowanie baz testowych/demo i automatyzacja w CI. `buscall` —51 testowanie na żywej aplikacji: zdalne sterowanie programem i zrzuty ekranu do analizy52 wizualnej. `SonetaFrame` / `SonetaFrameNew` (obie nazwy używane równolegle) — aplikacja ramki hostująca webową wersję53 programu: uruchamianie, parametry startowe, plik ustawień i źródła baz danych. Używaj gdy54 użytkownik zarządza bazą z CLI, tworzy bazę demo, robi backup/konwersję, uruchamia ramkę55 i konfiguruje połączenia do baz, albo weryfikuje zmiany na uruchomionej aplikacji.56* `/soneta-repx` - Wydruki DevExpress XtraReports (pliki `.repx` — serializowany XML) dla57 platformy Soneta. Struktura raportu (pasma, kontrolki `XRTable`/`XRLabel` i własne kontrolki58 Soneta `AmountLabel`/`Header`/`Footer`), źródło danych `BusinessDataSource` z `DataKind`59 (`CurrentList`/`Context`/`SingleRow`/`Session`), master-detail przez `DetailReportBand`,60 wiązania `ExpressionBindings`, podsumowania, grupowanie, formatowanie warunkowe oraz rejestracja61 `[assembly: DxReport(...)]`. Używaj gdy użytkownik tworzy/edytuje plik `.repx`, pyta o strukturę62 wydruku DevExpress w Soneta/enova365, źródło danych raportu lub jego rejestrację. Kod-behind63 wydruku (`ReportSnippet`, `[DxBind]`) i logika ORM licząca dane → `/soneta-programming`; formularz64 parametrów wydruku → `/soneta-form-xml`.65* `/soneta-form-xml` - XML z nieistniejącymi elementami. ZAWSZE używaj tego skilla gdy użytkownik: (1) prosi o utworzenie lub modyfikację pliku pageform.xml, viewform.xml, form.xml, lookupform.xml lub gridform.xml dla platformy Soneta (enova365); (2) pyta o elementy DataForm, Page, Group, Grid, Field, Row, Stack, Flow, Command, Include, Appearance, GroupBy w Soneta; (3) pyta o składnię EditValue, DataContext, Visibility, RowCondition, Renderable, CaptionHtml, Footer, Class lub układ UI formularzy Soneta; (4) pokazuje istniejący plik form.xml/pageform.xml/viewform.xml i pyta o jego strukturę lub chce go rozszerzyć; (5) pyta o warunkową widoczność, formatowanie warunkowe (Appearance), bindowanie danych lub wzorce UI w Soneta.66* `/soneta-containers` - Uruchamianie i wdrażanie platformy Soneta w kontenerach (dla partnerów,67 bez dostępu do kodu). Trzy ścieżki: **docker compose** (główna), **Apple `container` /68 Container Desktop** (macOS), **Helm / Kubernetes** (beta). Obejmuje: wybór wersji obrazów69 (`soneta/server.standard`, `web.standard` — Docker Hub lub `registry.soneta.pl`), tworzenie70 i zarządzanie bazą w kontenerze (usługa init z `dbmgr create`, `--demo`, `--recreate`),71 SQL zewnętrzny (`host.docker.internal` / `host.containers.internal`) lub kontener `mssql`.72 Używaj gdy użytkownik stawia środowisko test/demo na obrazach Soneta, pyta o73 `docker-compose.yaml`, Container Desktop, `helm install`, tag/wersję obrazu, albo o74 kolejność/host-alias/porty przy starcie stacku. Składnię samych komend `dbmgr` → `/soneta-tools`.