diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf03617 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**-workspace/** \ No newline at end of file diff --git a/soneta-addon-planning/SKILL.md b/soneta-addon-planning/SKILL.md new file mode 100644 index 0000000..9131bcc --- /dev/null +++ b/soneta-addon-planning/SKILL.md @@ -0,0 +1,328 @@ +--- +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-basics** — implementacja logiki biznesowej, workerów diff --git a/soneta-addon-planning/evals/evals.json b/soneta-addon-planning/evals/evals.json new file mode 100644 index 0000000..58aaa4f --- /dev/null +++ b/soneta-addon-planning/evals/evals.json @@ -0,0 +1,53 @@ +{ + "skill_name": "soneta-addon-planning", + "evals": [ + { + "id": 1, + "prompt": "Chcę zaplanować moduł do zarządzania szkoleniami pracowników. Firmy średnie i duże, kadry i HR. Moduł powinien umożliwiać planowanie szkoleń, rejestrację uczestników, śledzenie budżetu szkoleniowego i generowanie zaświadczeń. Zacznij od Etapu 1.", + "expected_output": "Dokument Etapu 1 (Wizja i kontekst biznesowy) zawierający sekcje 1.1-1.11, z uwzględnieniem integracji z modułami Kadry/HR, priorytetyzacją funkcjonalności i scenariuszami użytkownika.", + "files": [], + "assertions": [ + {"description": "Zawiera wszystkie 11 sekcji Etapu 1 (1.1 do 1.11)", "type": "structure"}, + {"description": "Sekcja 1.4 zawiera podział must-have / should-have / nice-to-have", "type": "content"}, + {"description": "Sekcja 1.5 zawiera konkretne scenariusze krok po kroku", "type": "content"}, + {"description": "Dokument odwołuje się do platformy Soneta (nie ogólne ERP)", "type": "content"}, + {"description": "Wspomina konkretne moduły lub tabele z istniejącego systemu Soneta", "type": "content"}, + {"description": "Sekcja 1.6 definiuje procesy biznesowe", "type": "content"}, + {"description": "Sekcja 1.9 zawiera ryzyka z planem mitygacji", "type": "content"}, + {"description": "Dokument jest w języku polskim", "type": "format"} + ] + }, + { + "id": 2, + "prompt": "Potrzebuję moduł ewidencji czasu pracy zdalnej i hybrydowej z integracją z obecnym modułem kadrowym. Pracownicy powinni móc rejestrować dni pracy zdalnej, a kierownicy zatwierdzać wnioski. Chcę też raporty frekwencji. Przygotuj plan Etapu 1.", + "expected_output": "Dokument Etapu 1 z naciskiem na integrację z istniejącymi modułami (Kadry, PracaHybrydowa, Kalend), workflow zatwierdzania wniosków i raportowanie.", + "files": [], + "assertions": [ + {"description": "Zawiera wszystkie 11 sekcji Etapu 1 (1.1 do 1.11)", "type": "structure"}, + {"description": "Sekcja 1.4 zawiera podział must-have / should-have / nice-to-have", "type": "content"}, + {"description": "Sekcja 1.5 zawiera konkretne scenariusze krok po kroku", "type": "content"}, + {"description": "Dokument odwołuje się do platformy Soneta (nie ogólne ERP)", "type": "content"}, + {"description": "Wspomina konkretne moduły lub tabele z istniejącego systemu Soneta (np. Kadry, PracaHybrydowa, Kalend)", "type": "content"}, + {"description": "Sekcja 1.6 definiuje procesy biznesowe z workflow zatwierdzania", "type": "content"}, + {"description": "Sekcja 1.9 zawiera ryzyka z planem mitygacji", "type": "content"}, + {"description": "Dokument jest w języku polskim", "type": "format"} + ] + }, + { + "id": 3, + "prompt": "Zaplanuj dodatek do obsługi benefitów pracowniczych — karty sportowe, opieka medyczna, ubezpieczenia grupowe. Moduł ma pozwalać na definiowanie pakietów benefitów, przypisywanie ich pracownikom i rozliczanie kosztów. Zrób Etap 1.", + "expected_output": "Dokument Etapu 1 z opisem systemu benefitów, relacjami do modułu Kadry, konfigurowalnością pakietów i rozliczaniem kosztów.", + "files": [], + "assertions": [ + {"description": "Zawiera wszystkie 11 sekcji Etapu 1 (1.1 do 1.11)", "type": "structure"}, + {"description": "Sekcja 1.4 zawiera podział must-have / should-have / nice-to-have", "type": "content"}, + {"description": "Sekcja 1.5 zawiera konkretne scenariusze krok po kroku", "type": "content"}, + {"description": "Dokument odwołuje się do platformy Soneta (nie ogólne ERP)", "type": "content"}, + {"description": "Wspomina konkretne moduły lub tabele z istniejącego systemu Soneta (np. Kadry, Place)", "type": "content"}, + {"description": "Sekcja 1.6 definiuje procesy biznesowe", "type": "content"}, + {"description": "Sekcja 1.9 zawiera ryzyka z planem mitygacji", "type": "content"}, + {"description": "Dokument jest w języku polskim", "type": "format"} + ] + } + ] +}