# soneta-erp

> 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ą).

- Skill: `soneta/soneta-erp` (Agent Skill)
- Install (CLI): `npx skillmds add soneta/soneta-erp`
- Raw SKILL.md: https://api.skillmd.com/api/skills/soneta/soneta-erp/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: soneta (https://skillmd.com/u/soneta)
- Updated: 2026-08-19
- Page: https://skillmd.com/skills/soneta/soneta-erp

---


# Mapa skills podczas pracy z platformą Soneta (enova365, Triva)

* `/soneta-programming` - Fundamentalne klasy ORM platformy Soneta. Obejmuje mapowanie 
obiektowo-relacyjne (Row, Table, Module), zarządzanie sesją (Session), logowanie (Login, Database, BusApplication), 
paczki danych (Datapack, GuidedRow) oraz kontekst (Context). Używaj gdy użytkownik pyta o podstawowe klasy logiki 
biznesowej, strukturę obiektów ORM, sesje i transakcje, hierarchię klas Row/Table/Module, mechanizm Datapack i 
synchronizację danych, lub kontekst aplikacji Soneta, Context 
* `/soneta-addon-planning` - Planowanie projektów dodatków dla platformy Soneta. Tworzy
  kompletną dokumentację projektową obejmującą: strukturę danych (tabele, relacje),
  elementy konfigurowalne, definicje list i menu, formularze, workery i raporty.
  Używaj gdy użytkownik prosi o zaplanowanie nowego modułu/dodatku Soneta,
  przygotowanie założeń projektu, stworzenie specyfikacji funkcjonalnej dodatku,
  lub zdefiniowanie struktury danych i interfejsu użytkownika dla nowego modułu.
*  `/soneta-business-xml` - Generator plików business.xml dla platformy Soneta.
   Tworzy definicje obiektów biznesowych (tabel, kolumn, relacji, indeksów) zgodne
   ze schematem XSD. Używaj gdy użytkownik prosi o stworzenie nowego modułu biznesowego,
   zdefiniowanie obiektów lub encji do przechowywania w bazie danych, utworzenie relacji
   między obiektami, lub generowanie plików business.xml dla platformy Soneta.
* `/soneta-config` - Narzędzia i mechanizmy związane z konfiguracją systemu i funkcjami
  domenowymi platformy (zawartość rozwijana). Obecnie: (A) **import/eksport danych i ustawień
  konfiguracyjnych przez pliki XML** — struktura pliku `<session>`, import według rekordów
  (pliki `*.dbinit.xml`, baza demo), import przez logikę biznesową (`business="true"`),
  eksport datapacku, identyfikacja po GUID, formaty wartości; (B) `scan-folders` —
  inwentaryzacja **folderów statycznych menu** (`[assembly: FolderView]`) z bibliotek DLL
  (drzewo pozycji menu, listy, formularze, powiązanie z tabelą/`ViewInfo`); (C) **konfiguracja
  uruchomieniowa `appsettings.json`** — porty i adresy komponentów (orchestrator, server, web,
  webapi, webwcf, router, commhub), sprzężone pary adresów, kolejność warstw nadpisań
  (profil systemu, `-c`, `SONETA_`, argumenty CLI), znaczenie kluczy. Używaj gdy
  użytkownik buduje/analizuje XML importu danych Soneta, przenosi ustawienia między bazami,
  eksportuje rekordy do XML, mapuje strukturę menu dodatku, albo konfiguruje porty/adresy
  komponentów i pyta, co robi klucz w `appsettings.json`. Warstwa kodu importu
  (`SessionReader`/`SessionWriter`) i ORM → `/soneta-programming`; operacje na bazie z CLI →
  `/soneta-tools`.
* `/soneta-config-reg` - **Rejestr konfiguracji (ConfigReg)** — silnik zrzucający całą
  konfigurację bazy do drzewa `ConfigReg`, serializowanego do plików `*.reg.json` i tabeli
  `ConfigRegistry`. Od strony kodu C#: providery `IConfigRegProvider` (Root/Module/Table/Row/
  SubTable/Storage/Addins), atrybut `[ConfigReg(Hide/Ignore/Include/ChildrenType)]` sterujący
  zakresem rejestru, potok Loader → Differ/Merger → SessionUpdater, format JSON (`$strict`,
  `$v`, `#klucz`, `@atrybut`). Używaj gdy użytkownik pyta o rejestr konfiguracji, chce wyłączyć
  tabelę lub kolumnę z rejestru, pisze/poprawia provider albo debuguje przenoszenie ustawień
  między bazami przez rejestr. Odróżnij od `/soneta-config`: XML (`<session>`, `dbinit.xml`)
  to inny, niezależny mechanizm.
* `/soneta-tools` - Narzędzia deweloperskie wiersza poleceń Soneta. `dbmgr` — zarządzanie
  bazami danych (tworzenie/rejestracja, konwersja, backup/restore, licencje, rozszerzenia,
  analiza, kompilacja); przygotowanie baz testowych/demo i automatyzacja w CI. `buscall` —
  testowanie na żywej aplikacji: zdalne sterowanie programem i zrzuty ekranu do analizy
  wizualnej. `SonetaFrame` / `SonetaFrameNew` (obie nazwy używane równolegle) — aplikacja ramki hostująca webową wersję
  programu: uruchamianie, parametry startowe, plik ustawień i źródła baz danych. Używaj gdy
  użytkownik zarządza bazą z CLI, tworzy bazę demo, robi backup/konwersję, uruchamia ramkę
  i konfiguruje połączenia do baz, albo weryfikuje zmiany na uruchomionej aplikacji.
* `/soneta-repx` - Wydruki DevExpress XtraReports (pliki `.repx` — serializowany XML) dla
  platformy Soneta. Struktura raportu (pasma, kontrolki `XRTable`/`XRLabel` i własne kontrolki
  Soneta `AmountLabel`/`Header`/`Footer`), źródło danych `BusinessDataSource` z `DataKind`
  (`CurrentList`/`Context`/`SingleRow`/`Session`), master-detail przez `DetailReportBand`,
  wiązania `ExpressionBindings`, podsumowania, grupowanie, formatowanie warunkowe oraz rejestracja
  `[assembly: DxReport(...)]`. Używaj gdy użytkownik tworzy/edytuje plik `.repx`, pyta o strukturę
  wydruku DevExpress w Soneta/enova365, źródło danych raportu lub jego rejestrację. Kod-behind
  wydruku (`ReportSnippet`, `[DxBind]`) i logika ORM licząca dane → `/soneta-programming`; formularz
  parametrów wydruku → `/soneta-form-xml`.
* `/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.
* `/soneta-containers` - Uruchamianie i wdrażanie platformy Soneta w kontenerach (dla partnerów,
  bez dostępu do kodu). Trzy ścieżki: **docker compose** (główna), **Apple `container` /
  Container Desktop** (macOS), **Helm / Kubernetes** (beta). Obejmuje: wybór wersji obrazów
  (`soneta/server.standard`, `web.standard` — Docker Hub lub `registry.soneta.pl`), tworzenie
  i zarządzanie bazą w kontenerze (usługa init z `dbmgr create`, `--demo`, `--recreate`),
  SQL zewnętrzny (`host.docker.internal` / `host.containers.internal`) lub kontener `mssql`.
  Używaj gdy użytkownik stawia środowisko test/demo na obrazach Soneta, pyta o
  `docker-compose.yaml`, Container Desktop, `helm install`, tag/wersję obrazu, albo o
  kolejność/host-alias/porty przy starcie stacku. Składnię samych komend `dbmgr` → `/soneta-tools`.

