Files

329 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 (24 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
45 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