--- name: soneta-addon-planning description: > Planowanie projektów dodatków dla platformy enova365/Soneta Enterprise. 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 enova365, przygotowanie założeń projektu, stworzenie specyfikacji funkcjonalnej dodatku, lub zdefiniowanie struktury danych i interfejsu użytkownika dla nowego modułu. --- # Planowanie projektu modułu/dodatku Soneta Skill prowadzi interaktywny proces planowania nowego modułu dla platformy Soneta (programy enova365 i Triva). Proces przebiega etapowo — każdy etap wymaga zatwierdzenia przez użytkownika przed przejściem do kolejnego. ## Przebieg procesu Proces planowania składa się z trzech etapów o rosnącym poziomie szczegółowości: 1. **ETAP 1** — Wizja i kontekst biznesowy (dla decydentów, marketingu, sprzedaży) 2. **ETAP 2** — Architektura modułu (dla zespołu projektowego) 3. **ETAP 3** — Specyfikacja szczegółowa (dla zespołu implementacyjnego i AI) Na końcu generowany jest dokument TODO z kolejnymi krokami implementacji. ## Jak prowadzić rozmowę Proces jest interaktywny. Nie generuj całego dokumentu naraz — pracuj etap po etapie: 1. **Zbierz informacje** — Na początku zapytaj użytkownika o ogólną ideę modułu. Co chce osiągnąć? Dla kogo jest ten moduł? Jaki problem rozwiązuje? 2. **Opracuj etap** — Na podstawie zebranych informacji wygeneruj dokument danego etapu. Jeśli brakuje Ci informacji, zadaj konkretne pytania zamiast zgadywać. 3. **Poczekaj na zatwierdzenie** — Przedstaw dokument etapu użytkownikowi i poczekaj na jego akceptację, uwagi lub poprawki. Nie przechodź do kolejnego etapu bez wyraźnej zgody. 4. **Iteruj** — Jeśli użytkownik ma uwagi, popraw dokument i ponownie przedstaw do zatwierdzenia. 5. **Przejdź dalej** — Po zatwierdzeniu przejdź do kolejnego etapu, zadając dodatkowe pytania potrzebne do jego opracowania. Prowadź rozmowę w języku polskim. Zadawaj pytania jedno po drugim — nie zasypuj użytkownika listą 15 pytań naraz. Grupuj pytania tematycznie (2–4 pytania na raz) i dostosowuj kolejne pytania do udzielonych odpowiedzi. ## Dane referencyjne — tabele programu Soneta Plik `tables.md` zawiera kompletny opis aktualnych modułów i tabel programu Soneta. Jest duży, więc czytaj go selektywnie — tylko moduły istotne dla projektowanego dodatku. Struktura pliku: nagłówki `# Moduł: NazwaModułu` z opisem, a pod nimi tabele w formacie: | Tabela | Obiekt | Tytuł tabeli | Nadrzędny | Konfiguracyjna | Opis | Kolumny: - **Tabela** — nazwa tabeli w bazie danych - **Obiekt** — nazwa klasy C# (obiekt biznesowy) - **Nadrzędny** — tabela nadrzędna (`root` = tabela główna, inna nazwa = tabela szczegółów w relacji inner) - **Konfiguracyjna** — `X` = tabela konfiguracyjna (definicje, słowniki, ustawienia), pusta = tabela operacyjna - **Opis** — opis przeznaczenia tabeli Korzystaj z tego pliku aby: - sprawdzić, czy potrzebne struktury danych już istnieją (unikanie duplikacji), - wskazać konkretne tabele, do których nowy moduł będzie się odwoływać, - rozpoznać wzorce projektowe (podział na tabele konfiguracyjne/operacyjne, hierarchia nadrzędny-szczegółowy, stosowanie definicji dokumentów), - zidentyfikować moduły, z którymi projektowany moduł będzie współpracować. Gdy użytkownik wspomina o integracji z istniejącymi danymi (np. pracownicy, kontrahenci, towary), przeczytaj odpowiedni moduł z `tables.md` i wskaż konkretne tabele i obiekty. --- ## ETAP 1: Wizja i kontekst biznesowy Cel: ustalić co budujemy, dla kogo i dlaczego. Dokument tego etapu jest przeznaczony dla decydentów, marketingu i sprzedaży. ### Pytania do zadania użytkownikowi Zacznij od ogólnej idei, potem doprecyzowuj. Nie zadawaj wszystkich pytań naraz. **Pierwsza tura** — zrozumienie idei: - Co jest głównym celem modułu? Jaki problem rozwiązuje? - Kto jest docelowym użytkownikiem? (mała/średnia/duża firma, branża) **Druga tura** — funkcjonalności i korzyści: - Jakie są najważniejsze funkcjonalności? (kluczowe vs opcjonalne) - Jakie korzyści uzyska klient? **Trzecia tura** — kontekst i ograniczenia: - Jakie procesy biznesowe realizuje moduł? - Czy są ograniczenia techniczne, prawne, licencyjne? - Jakie moduły programu Soneta będą wykorzystywane? ### Sekcje dokumentu Etapu 1 Wygeneruj dokument Markdown zawierający te sekcje: #### 1.1. Cel biznesowy projektu 4–5 zdań o celu projektu, kluczowym elemencie, najważniejszej rzeczy do osiągnięcia. Zacznij od podstawowej idei modułu. #### 1.2. Profil klienta docelowego Typ firmy (mała/średnia/duża), branża, działalność. #### 1.3. Korzyści dla klienta Najważniejsze korzyści, problemy rozwiązywane przez moduł. Informacja dla marketingu i sprzedaży. #### 1.4. Najważniejsze funkcjonalności (priorytetyzacja) Podział na: - **Krytyczne (must-have)** — bez nich moduł nie ma sensu - **Ważne (should-have)** — istotne, ale moduł może działać bez nich w v1 - **Opcjonalne (nice-to-have)** — kolejne wersje #### 1.5. Scenariusze użytkownika Kilka kluczowych scenariuszy krok po kroku — jakie działania, jakie dane, jakie wyniki. Tylko najważniejsze dane, bez szczegółów. #### 1.6. Procesy biznesowe Procesy realizowane w całości przez moduł oraz procesy, w których moduł uczestniczy częściowo (z innymi elementami programu). #### 1.7. Ograniczenia modułu i wymagania licencyjne Ograniczenia funkcjonalne, techniczne, integracyjne, prawne. Wymagane licencje programu Soneta i ewentualne licencje zewnętrzne. #### 1.8. Założenia i zależności - **Założenia** — co zakładamy jako pewne (np. dostępność modułów, wersja platformy) - **Zależności** — od czego projekt zależy (inne projekty, dane od klienta, zespół) #### 1.9. Ryzyka projektu Ryzyka techniczne, biznesowe, integracyjne — z prawdopodobieństwem, wpływem i planem mitygacji. #### 1.10. Kryteria akceptacji Mierzalne kryteria gotowości: funkcjonalne (scenariusze), wydajnościowe (wolumeny, czasy), jakościowe (testy, błędy). #### 1.11. Harmonogram i kamienie milowe Ramowy harmonogram: fazy projektu, kamienie milowe (zatwierdzenie specyfikacji, MVP, testy, pilotaż, produkcja), zależności czasowe. Charakter orientacyjny. --- ## ETAP 2: Architektura modułu Cel: określić jak moduł będzie zbudowany — role, dane, interfejs, integracje. Dokument dla zespołu projektowego. ### Pytania do zadania użytkownikowi **Pierwsza tura** — role i konfiguracja: - Jakie role użytkowników będą korzystać z modułu? Jakie zadania realizują? - Jakie elementy powinny być konfigurowalne przez klienta? **Druga tura** — dane i interfejs: - Jakie są główne obiekty danych? (dokumenty, kartoteki, słowniki) - Jak powinna wyglądać struktura menu? **Trzecia tura** — integracje i przyszłość: - Jakie dane z istniejących modułów Soneta będą wykorzystywane? (w tym momencie przeczytaj odpowiednie moduły z `tables.md`) - Czy moduł integruje się z systemami zewnętrznymi? - Czy klient ma dane do migracji? ### Sekcje dokumentu Etapu 2 #### 2.1. Role użytkowników Lista operatorów, ich zadania, procesy w których uczestniczą. #### 2.2. Zakres konfiguracji modułu Elementy konfigurowalne: definicje dokumentów, słowniki, ustawienia. Zarówno konfiguracja wstępna jak i definicje używane przy przetwarzaniu danych operacyjnych. #### 2.3. Kluczowe struktury danych Najważniejsze struktury danych — dokumenty, kartoteki. Bez szczegółowej zawartości (to Etap 3). Ogólny diagram relacji między głównymi obiektami. Na podstawie `tables.md` sprawdź: - czy potrzebne struktury już istnieją w programie, - jakie tabele nadrzędne mogą być wykorzystane, - jakie wzorce projektowe stosują istniejące moduły (podział konfiguracyjne/operacyjne, definicje dokumentów, obiekty Guided i szczegółowe, datapacki). #### 2.4. Struktura menu i elementy interfejsu Foldery, hierarchia list w menu głównym, grupowanie funkcjonalne. Wyróżnienie elementów kluczowych dla sukcesu produktu. #### 2.5. Relacje z modułami programu Soneta Na podstawie `tables.md`: - wskaż konkretne moduły, z którymi nowy moduł współpracuje, - wymień tabele i obiekty, do których się odwołuje (relacje lookup/inner), - określ, czy wymagane są rozszerzenia istniejących tabel. #### 2.6. Relacje z innymi systemami Integracje z systemami zewnętrznymi, wymiana danych, procesy integracyjne. Zasilanie systemu BI. #### 2.7. Migracja danych Dane do importu, źródła (inne ERP, Excel, bazy), zachowanie historii. #### 2.8. Wydajność i skalowalność - **Wolumeny danych** — przewidywana liczba rekordów, częstotliwość operacji - **Optymalizacja** — indeksy, widoki, cache - **Przetwarzanie wsadowe vs online** — co w czasie rzeczywistym, co w tle - **Skalowalność** — wzrost użytkowników i danych, wąskie gardła #### 2.9. Kierunki rozwoju Przyszłe funkcjonalności, które nie wchodzą w zakres bieżącej wersji. --- ## ETAP 3: Specyfikacja szczegółowa Cel: dostarczyć szczegółowy opis każdego elementu modułu na poziomie implementacyjnym. Dokument dla zespołu implementacyjnego i AI. ### Pytania do zadania użytkownikowi Na tym etapie pytania dotyczą szczegółów poszczególnych obiektów. Pracuj obiekt po obiekcie: - Jakie pola powinien mieć ten dokument/kartoteka? - Jakie stany przechodzi? (bufor, zatwierdzony, anulowany...) - Jakie czynności są dostępne? (zatwierdzanie, kopiowanie, generowanie...) - Jakie wydruki i raporty? - Kto ma dostęp do czego? ### Sekcje dokumentu Etapu 3 #### 3.1. Dane operacyjne Dla każdego obiektu danych: - pola danych z typami, - cechy szczególne (historyczność, numeracja dokumentów, stany), - listy szczegółowe (relacje inner), - relacje do innych danych modułu i do danych spoza modułu, - część konfiguracyjna (typy, definicje, słowniki). Na podstawie `tables.md`: - odwołuj się do istniejących tabel po nazwach (kolumna „Tabela") i obiektach (kolumna „Obiekt"), - wykorzystuj hierarchię nadrzędności jako wzorzec relacji inner, - rozróżniaj tabele konfiguracyjne i operacyjne — ten sam podział stosuj w nowym module, - identyfikuj istniejące słowniki i kartoteki zamiast tworzyć duplikaty. #### 3.2. Diagram relacji Graficzne przedstawienie relacji (w formie tekstowej Mermaid lub tabeli): - Relacje 1:N (inner) — tabele szczegółów - Relacje N:1 (lookup) — odwołania do słowników i kartotek - Relacje do tabel spoza modułu (z nazwą modułu źródłowego) #### 3.3. Relacje do danych programu Dla każdej relacji do danych spoza modułu wskaż na podstawie `tables.md`: - nazwę modułu programu Soneta, - konkretną tabelę i obiekt biznesowy, - typ relacji (lookup, inner, powiązanie logiczne), - cel użycia danych w kontekście projektowanego modułu. #### 3.4. Podstawowe listy modułu Dla każdej listy: - kolumny podstawowe i opcjonalne, - pola filtrujące (podstawowe i dodatkowe po rozwinięciu), - filtry predefiniowane. #### 3.5. Formularze Dla każdego formularza: - zakładki i grupy na zakładkach, - pola w każdej grupie, - listy szczegółów (sublists). #### 3.6. Workery i czynności - **Czynności na formularzach** — warunki dostępności, efekt, wymagane uprawnienia - **Czynności na listach** — operacje grupowe - **Workery** — procesy w tle, wyzwalacze (ręczne/harmonogramowe/zdarzeniowe) #### 3.7. Raporty i wydruki - **Wydruki dokumentów** — format, szablon, dane - **Raporty zbiorcze** — parametry, układ, grupowania - **Eksport danych** — formaty (Excel, CSV) #### 3.8. Procesy Workflow - **Stany obiektów** — lista stanów i przejść - **Przejścia** — warunki, reguły, odwracalność - **Automatyzacje** — akcje przy zmianie stanu - **Ścieżki akceptacji** — reguły eskalacji #### 3.9. Uprawnienia i role - **Matryca uprawnień** — tabela ról vs funkcjonalności - **Uprawnienia do danych** — ograniczenia widoczności - **Uprawnienia konfiguracyjne** — kto modyfikuje ustawienia #### 3.10. Integracje szczegółowe - API i protokoły (REST, SOAP, CSV/XML) - Formaty danych i mapowanie pól - Częstotliwość synchronizacji - Obsługa błędów #### 3.11. Scenariusze testowe - Testy funkcjonalne (kroki, dane, oczekiwany rezultat) - Testy integracyjne - Testy wydajnościowe - Przypadki brzegowe #### 3.12. Dane demonstracyjne - Dane do bazy Demo - Dane do testów #### 3.13. Słownik terminów Definicje kluczowych terminów biznesowych i technicznych, szczególnie przy modułach domenowych. --- ## Otwarte kwestie Na każdym etapie mogą pojawić się nierozstrzygnięte pytania. Prowadź tabelę otwartych kwestii: | Nr | Etap | Kwestia | Status | Decyzja | |----|------|---------|--------|---------| | 1 | | [Opis problemu] | Otwarta/Zamknięta | [Decyzja] | Prezentuj ją użytkownikowi na końcu każdego etapu i przed przejściem do kolejnego. --- ## Dokument TODO Po zakończeniu wszystkich etapów wygeneruj dokument TODO z kolejnymi krokami: ### Uzupełnienie planu - [ ] Weryfikacja i zatwierdzenie Etapu 1 przez interesariuszy - [ ] Weryfikacja i zatwierdzenie Etapu 2 przez zespół projektowy - [ ] Uzupełnienie specyfikacji szczegółowej (Etap 3) dla wszystkich obiektów - [ ] Zamknięcie otwartych kwestii ### Implementacja - [ ] Model danych — tabele, pola, relacje - [ ] Plik business.xml (→ skill `soneta-business-xml`) - [ ] Struktura menu, listy, widoki - [ ] Formularze i zakładki (→ skill `soneta-form-xml`) - [ ] Konfiguracja — słowniki, definicje, ustawienia - [ ] Workery i czynności - [ ] Raporty i wydruki - [ ] Procesy Workflow - [ ] Wskaźniki i wykresy BI - [ ] Uprawnienia i role - [ ] Integracje z innymi systemami - [ ] Baza Demo i dane demonstracyjne - [ ] Testy integracyjne i interfejsowe - [ ] Dokumentacja użytkownika i techniczna ## Powiązanie z innymi skillami Po zatwierdzeniu planu projektu: 1. **soneta-business-xml** — generowanie pliku business.xml na podstawie modelu danych z Etapu 3 2. **soneta-form-xml** — generowanie formularzy i widoków UI na podstawie sekcji 3.4 i 3.5 3. **soneta-programming** — implementacja logiki biznesowej, workerów