Section 01 — Overview
| Field | Value |
| Use Case ID | UC-C1 |
| Client | Fundacja Akademia Mistrzow — KRS 0001185256, NIP 9581756281, Gdynia, est. 2025 |
| System Name | Plato — Sports Academy Operations |
| Domain | Sports Academy / Operations Management |
| One-Line Description | Pipeline-driven operations platform: participant registration, session scheduling, attendance, payments, coach management, tournaments and holiday camps for a growing sports academy. |
| Status | Development — 12 pipelines specified, reseed in progress |
| Target Delivery | Q3 2026 |
| Components | Wormwood v1.4.4 (docker), Chameleon v2.1.0 (docker) |
Client Background
Akademia Mistrzow is a registered sports foundation (fundacja) based in Gdynia, Poland, established in 2025. It runs group and individual training sessions for children aged 7–15 (football technique, motor skills, general physical development) and personal training for adults. Services are delivered at their own gym at ul. Wagnera 18/23, Gdynia, and as a mobile offer visiting schools, kindergartens, municipalities, and corporate clients across Trojmiasto.
The academy employs three coaches: Kacper Stec (CEO — personal, motor, and football coaching), Marcin Poreba (VP — UEFA B licence, III liga player, AWF Gdansk graduate), and Mariusz Hawrys. Current operations rely on phone, WhatsApp, and spreadsheets. Plato replaces this with a structured, audited pipeline system.
Service Catalogue
| Service Type | Target | Format | Location |
| Zajecia ogolnorozwojowe (general development) | Schools / kindergartens, age 7+ | Group | Mobile to client premises |
| Zajecia z pilka nozna (football basics) | Kindergarten age | Group / Individual | Mobile |
| Trening pilkarski 1:1 (football 1:1) | Any age | Individual | Own gym or mobile |
| Zajecia motoryczne (athletic motor training) | Schools, age 7+ | Group | Mobile |
| Turnieje pilkarskie (football tournaments) | Children aged 7–15 | Event | Own gym or external |
| Obozy i polkolonie (camps / half-colonies) | Children, holidays and winter breaks | Multi-day camp | Venue TBD per season |
Section 02 — Actors
| Role | Person | Description | Access Level |
| owner |
Kacper Stec (CEO) |
Full administrative access to all modules including pricing configuration and user management. |
All 12 pipelines, all data |
| admin |
Marcin Poreba (VP) |
Full operational access. Manages participants, schedules, enrollments, payments. No pricing config. |
All ops pipelines, no config |
| coach |
Mariusz Hawrys + future hires |
Views own assigned sessions, marks attendance, writes progress notes. No financial or admin access. |
plato-session-schedule (own), plato-attendance, plato-progress-note |
| viewer |
Parent portal (Phase 2) |
Read-only access to own child's records, attendance, and upcoming sessions. |
Own child records only |
Section 03 — User Stories
Actor: owner / admin
- P1: As an admin, I want to register a new participant (name, DOB, parent contact, medical notes, photo consent) so that the child is formally enrolled in the system.
- P1: As an admin, I want to enroll a participant in a program or package and link the payment record, so that attendance and billing are tracked from day one.
- P1: As an admin, I want to see today's sessions, this week's schedule, unpaid invoice count, and absent participant count on a single dashboard.
- P1: As an admin, I want to create a session (date, time, location, coach assignment, program) and have it appear in the coach's schedule immediately.
- P1: As an admin, I want to record a payment for a participant's enrollment, flag unpaid accounts, and see all outstanding balances at a glance.
- P1: As an admin, I want to create a tournament, register teams and participants, record match results, and view a summary.
- P1: As an admin, I want to register participants for holiday camps with capacity enforcement so that overbooking is prevented.
- P2: As an admin, I want to manage coach availability and certification records so that session assignment reflects actual capacity.
- P2: As an admin, I want to search and filter the participant list by program, age group, or active/inactive status.
Actor: coach
- P1: As a coach, I want to see my assigned sessions for today and this week so that I know where to be and with which group.
- P1: As a coach, I want to mark attendance (present / absent / excused) for each participant in a session so that records are accurate.
- P2: As a coach, I want to write a short progress note for an individual participant after a session so that development can be tracked over time.
Section 04 — System Flows
Flow 1: Participant Registration and Enrollment
| # | Step | Actor | Node Type | Output |
| 1 | Intake form: name, DOB, parent contact, medical notes, photo consent | admin | FormNode | Participant record |
| 2 | Validate required fields and DOB range | Engine | ValidateNode | Validated record or field errors |
| 3 | Store participant | Engine | StoreNode | Participant ID assigned |
| 4 | Audit log: participant created | Engine | AuditLogNode | Audit record |
| 5 | Enrollment form: program selection, start date | admin | FormNode | Enrollment record |
| 6 | Store enrollment, link payment record | Engine | StoreNode | Enrollment ID, payment_status = unpaid |
Flow 2: Session Scheduling and Attendance
| # | Step | Actor | Node Type | Output |
| 1 | Create session: program, date, time, location, coach | admin | FormNode | Session record |
| 2 | Validate no coach conflict, capacity check | Engine | ValidateNode | Validated session |
| 3 | Store session, appear in coach schedule | Engine | StoreNode | Session ID |
| 4 | Mark attendance per participant (present / absent / excused) | coach | FormNode | Attendance sheet |
| 5 | Store attendance records | Engine | StoreNode | Attendance stored |
| 6 | Notify parent on absence (NotifyNode) | Engine | NotifyNode | Parent notification sent |
| 7 | Audit log: session completed | Engine | AuditLogNode | Audit record |
Flow 3: Payment Recording
| # | Step | Actor | Node Type | Output |
| 1 | Payment form: participant, program, amount, date, method | admin | FormNode | Payment record |
| 2 | Validate amount > 0, method in allowed list | Engine | ValidateNode | Validated payment |
| 3 | Store payment, update enrollment payment_status | Engine | StoreNode | Invoice number assigned |
| 4 | Audit log: payment recorded | Engine | AuditLogNode | Audit record |
Flow 4: Tournament Management
| # | Step | Actor | Node Type | Output |
| 1 | Create tournament: name, date, location, capacity | admin | FormNode | Tournament record |
| 2 | Register teams and participants | admin | FormNode | Registration records |
| 3 | Capacity check | Engine | ValidateNode | Validated or capacity error |
| 4 | Record match results | admin | FormNode | Results stored |
| 5 | Audit log | Engine | AuditLogNode | Audit record |
Section 05 — Pipeline Manifest
All pipelines under org_slug = plato. 12 pipelines total. Reseed required (replacing 6 stale Creative Canvas pipelines).
plato-nav-menu
Navigation Menu
App navigation config, sidebar, Polish labels, branding for Akademia Mistrzow.
plato-dashboard
Operations Dashboard
Today's sessions, upcoming week, unpaid invoices count, absent participant count, coach workload overview.
plato-participant-intake
Participant Registration
Register child: name, DOB, parent contact, medical notes, photo consent. FormNode → ValidateNode → StoreNode → AuditLogNode.
plato-enrollment
Program Enrollment
Enroll participant in program/package, set start date, link initial payment record.
plato-session-schedule
Session Scheduler
Create/edit class session: date, time, location (own gym / mobile), coach assignment, linked program.
plato-attendance
Attendance Sheet
Mark present / absent / excused per participant per session. NotifyNode fires on absence.
plato-payment
Payment Record
Log payment against enrollment, flag unpaid, assign invoice number.
plato-coach-roster
Coach Management
Coach availability schedule, certification records, assigned sessions overview.
plato-progress-note
Progress Note
Individual participant development note written by coach after a session.
plato-tournament
Tournament Management
Create tournament, register teams/participants with capacity check, record match results.
plato-camp-intake
Camp Registration
Register participant for holiday camp or half-colony with capacity enforcement.
plato-participant-list
Participant List
Browse all participants, filter by program, age group, or active/inactive status. ListViewNode.
Section 06 — Data Model
| Entity Class | Key Fields |
plato-participant | name, dob, parent_name, parent_phone, parent_email, medical_notes, photo_consent, status (active/inactive) |
plato-program | name, type (group/individual/tournament/camp), price, sessions_included, location_type (own_gym/mobile), location_detail, assigned_coaches[] |
plato-enrollment | participant_id, program_id, start_date, sessions_used, payment_status (paid/unpaid/partial), status (active/completed/cancelled) |
plato-session | program_id, date, time, location, coach_id, notes, status (scheduled/completed/cancelled) |
plato-attendance | session_id, participant_id, status (present/absent/excused), note |
plato-payment | participant_id, program_id, amount, date, method (cash/transfer/blik), status (paid/unpaid/partial), invoice_number |
plato-coach | name, email, phone, certifications[], availability_schedule (json) |
plato-tournament | name, date, location, capacity, teams[], results (json), status (upcoming/active/completed) |
plato-camp | name, start_date, end_date, capacity, registrations[], program_description |
plato-progress-note | participant_id, session_id, coach_id, note_text, created_at |
Section 07 — Navigation Sidebar (Polish UI)
GLOWNE
Dashboard → plato-dashboard
Uczestnicy → plato-participant-list
Terminarz → plato-session-schedule
OPERACJE
Zapisy → plato-enrollment
Frekwencja → plato-attendance
Platnosci → plato-payment
Trenerzy → plato-coach-roster
PROGRAMY
Turnieje → plato-tournament
Obozy i ferie → plato-camp-intake
NOTATKI
Notatka postepu → plato-progress-note
Section 08 — Constraints
| Type | Constraint |
| Mandatory Runtime | Nexus pipeline engine. No bespoke frontend. All UI rendered by NEXUS_APP.html and Chameleon forms. |
| Mandatory Language | All UI labels and nav items in Polish per platform constraint. |
| Derived Capacity | Camp and tournament registration enforces max_capacity via ValidateNode — hard reject on breach. |
| Derived Notifications | Parent notified via NotifyNode on child absence. Method: email (Phase 1), SMS (Phase 2). |
| Derived Audit | All create, update, and delete events logged via AuditLogNode with user ID and timestamp. |
Section 09 — Critical Path
| Item | Owner | Status |
| Rewrite seed_plato_pipeline.py (12 pipelines) | UV | In Progress |
| Run seed, verify 12 pipelines in DB | UV | Pending |
| NEXUS_USECASE_PLATO.html (this document) | UV | Done — 2026-05-06 |
| NEXUS_USECASE_PLATO.md rewrite | UV | Done — 2026-05-06 |
| routes_orgs.py Plato entry corrected | UV | Done — 2026-05-06 |
| Entity class schemas registered in Wormwood entity store | UV | Done — 2026-05-08 |
| Test participant-to-enrollment run end-to-end | UV | Pending |
| Client access and onboarding | UV / Akademia Mistrzow | Q3 2026 |
Section 10 — What Is Needed
| Item | Type | Notes |
seed_plato_pipeline.py | Backend | 12 pipelines seeded to Wormwood DB. Idempotent. demo_mode: False. |
| Entity class schemas in ARC entity store | Backend | Participant, Enrollment, ScheduledClass, Payment, Coach, Tournament, Camp entities registered. |
| plato nav-menu pipeline | Pipeline | plato-nav-menu returns 9 sidebar items with Polish labels for the NeXus workspace shell. |
NEXUS_APP.html _ucDocMap | Frontend | 'plato': 'NEXUS_USECASE_PLATO.html' registered. Docs link on hub card active. |
| Plato org seeded in Wormwood | Backend | plato org entry with 3 environments (production/staging/dev), 4 RMB items. |
| Client onboarding pack | Operations | PDF overview of NeXus workspace, Plato pipelines, and how to access. UV to deliver Q3 2026. |
| Polish translations | Frontend | All nav labels, form labels, and status messages in Polish. Matches pl.json locale conventions. |
Section 11 — Acceptance Criteria
| ID | Criterion | Type | Status |
| AC-P-01 | User logs in as plato org via NeXus hub, enters workspace, sidebar shows 9 Polish navigation items in 4 groups (GLOWNE, OPERACJE, PROGRAMY, NOTATKI). | Mandatory | Not Tested |
| AC-P-02 | Participant registration pipeline completes end-to-end: form submission → validate → store → dashboard returns new participant record. | Mandatory | Not Tested |
| AC-P-03 | Enrollment pipeline enforces max_capacity via ValidateNode — hard reject when capacity exceeded, meaningful Polish error message displayed. | Mandatory | Not Tested |
| AC-P-04 | Payment pipeline stores payment record and triggers parent notification via NotifyNode (email, Polish template). | Mandatory | Not Tested |
| AC-P-05 | Attendance pipeline marks absence and triggers parent notification (email) for marked-absent participants. | Mandatory | Not Tested |
| AC-P-06 | All 12 pipelines appear in Wormwood Orchestrator for plato org, are runnable, and return success or meaningful error on test run. | Mandatory | Not Tested |
| AC-P-07 | All text visible in NeXus workspace for Plato is in Polish. No English labels in nav, forms, or status messages. | Derived | Not Tested |
| AC-P-08 | No demo data — all pipeline runs use real entity store. demo_mode: False confirmed in seed output. | Derived | Done |
| AC-P-09 | Plato org skin applied when logging in as plato org — dark navy (#0C1826) background and orange (#FF6B1A) accent visible. Skin-energia branding per AM website. | Derived | Done — 2026-05-08 |
| AC-P-10 | Plato entity classes (10) accessible via /plato/entity-classes API endpoint — all slugs present. | Derived | Done — 2026-05-08 |
Section 12 — Risks
| Risk | Likelihood | Impact | Mitigation |
| Client adoption — Akademia Mistrzow staff unfamiliar with pipeline-based operations UX | Medium | High | Onboarding pack + tutorial walkthrough session. Polish UI mandatory. Simple form-based flows designed. |
| Email deliverability for parent notifications | Low | Medium | NotifyNode configured with reliable SMTP relay. Test delivery before go-live. |
| Camp/tournament registration capacity enforcement errors | Low | High | ValidateNode max_capacity check tested with edge cases (exactly-at-limit, over-limit). Hard reject confirmed. |
| Scope creep — client requests features beyond 12-pipeline scope | High | Medium | Phase scoping documented. Phase 2 items (SMS notifications, financial reporting, tournament brackets) explicitly deferred. |
| Data model mismatch with existing Akademia Mistrzow records | Medium | Medium | Entity schemas designed generically. Migration path documented if client imports historical data. |
Section 13 — Cooperator Brief
Client: Fundacja Akademia Mistrzow — Gdynia, Poland (est. 2025). 3-coach sports foundation running youth football, fitness, and martial arts programmes.
Business context: Operations currently managed via phone calls and spreadsheets. Coordinator spends 40–60% of time on administrative coordination tasks: registrations, attendance tracking, payment reconciliation, camp sign-ups.
Delivery model: NeXus workspace hosted by UV. Client accesses via browser — no installation required. UV manages all technical infrastructure (Wormwood engine, DB, backups). Client contract: support retainer, Q3 2026 onboarding target.
Key contact: Foundation director — to be confirmed by UV commercial team.
Phase 1 scope (these 12 pipelines): Participant registration, class scheduling, attendance, payment tracking, coach management. Approximately 4 months of coordinator time freed annually.
Phase 2 (deferred): SMS notifications, financial reporting dashboard, tournament bracket management, multi-coach scheduling conflicts, parent self-service portal.
Section 14 — Detailed Use Cases (AS-1 / PO Source)
The following use cases are captured directly from PO authority source documents committed 2026-05-07 (S. Kacper). Form field labels are in Polish as specified in PLATO_USE_CASES_DETAILED.md.
UC-01 — Register Participant (plato-participant-intake)
| Field | Label (PL) | Type | Required | Notes |
| name | Imie i nazwisko | text | YES | min 3 chars |
| dob | Data urodzenia | date | YES | age 4–18 |
| parent_name | Imie i nazwisko rodzica | text | YES | |
| parent_phone | Telefon rodzica | tel | YES | 9-digit Polish format |
| parent_email | E-mail rodzica | email | NO | |
| medical_notes | Uwagi zdrowotne | textarea | NO | max 500 chars |
| photo_consent | Zgoda na publikacje wizerunku | checkbox | YES | |
Alternate flows: Duplicate detection by name+DOB shows inline error. Inline validation errors on required fields before submit.
Postconditions: status=active, record visible in Uczestnicy list, AuditLogNode entry created.
UC-02 — Enroll in Program (plato-enrollment)
| Field | Label (PL) | Type | Required | Notes |
| participant_id | Uczestnik | dropdown+search | YES | active participants only |
| program_id | Program | dropdown | YES | active programs only |
| start_date | Data rozpoczecia | date | YES | default today |
Alternate flows: Duplicate enrollment error (participant already enrolled in same program). Capacity full → waiting list prompt.
Postconditions: enrollment (status=active, sessions_used=0), payment record created (status=unpaid).
UC-03 — Create Session (plato-session-schedule)
| Field | Label (PL) | Type | Required | Notes |
| program_id | Program | dropdown | YES | |
| date | Data zajec | date | YES | future only |
| time | Godzina | time | YES | |
| location | Miejsce | radio | YES | Sala wlasna / Mobilnie + address |
| coach_id | Trener | dropdown | YES | |
Alternate flows: Coach time conflict warning. Past date error.
Postconditions: status=scheduled, visible on dashboard Terminarz widget.
UC-04 — Mark Attendance (plato-attendance)
| Field | Label (PL) | Per Row |
| status | Status | radio: Obecny / Nieobecny / Usprawiedliwiony |
| note | Notatka | text (optional) |
Trigger: Absent (Nieobecny, not excused) → NotifyNode sends parent notification in Polish.
Postconditions: session status=completed, sessions_used incremented for present participants.
UC-05 — Record Payment (plato-payment)
| Field | Label (PL) | Type | Required | Notes |
| amount | Kwota | number | YES | > 0 |
| date | Data platnosci | date | YES | not future |
| method | Metoda platnosci | select | YES | gotowka / przelew / BLIK / karta |
| invoice_number | Nr faktury | text | NO | auto-assigned |
Alternate flows: Partial payment (status=partial). Overpayment warning (amount exceeds outstanding balance).
UC-06 — Dashboard (plato-dashboard)
| Widget | Label (PL) | Highlight |
| Today sessions | Dzisiejsze zajecia | today count + session list |
| Upcoming week | Nadchodzacy tydzien | next 7 days schedule |
| Unpaid invoices | Nieoplacone | red if count > 0 |
| Absent today | Nieobecni dzis | amber if count > 0 |
UC-07 — Coach Roster (plato-coach-roster)
| Field | Label (PL) | Type | Required |
| name | Imie i nazwisko | text | YES |
| email | E-mail | email | NO |
| certifications | Certyfikaty | multi-select | NO |
| availability_schedule | Dostepnosc | weekly grid | NO |
Certification options: UEFA B, UEFA C, Trener personalny, Instruktor, AWF.
UC-08 — Progress Note (plato-progress-note)
| Field | Label (PL) | Type | Required | Notes |
| session_id | Zajecia | dropdown | YES | recent completed sessions (own) |
| participant_id | Uczestnik | dropdown | YES | from session roster |
| note_text | Notatka | textarea | YES | min 10, max 1000 chars |
UC-09 — Tournament (plato-tournament)
| Field | Label (PL) | Type | Required | Notes |
| name | Nazwa turnieju | text | YES | |
| date | Data | date | YES | future only |
| location | Miejsce | text | YES | |
| capacity | Limit druzyn | number | YES | > 0 |
Team registration: team name + participant list; capacity enforced. Results: match scores entered, status → completed.
UC-10 — Camp / Half-Colony (plato-camp-intake)
| Field | Label (PL) | Type | Required | Notes |
| name | Nazwa | text | YES | |
| start_date | Data rozpoczecia | date | YES | |
| end_date | Data zakonczenia | date | YES | |
| capacity | Liczba miejsc | number | YES | > 0 |
| program_description | Opis programu | textarea | NO | |
Participant registration: capacity enforced; duplicate check. Confirmation shows remaining/capacity.
UC-11 — Participant List (plato-participant-list)
| Column | Label (PL) | Source |
| name | Imie i nazwisko | plato-participant.name |
| age | Wiek | calculated from dob |
| programs | Programy | active enrollments count |
| status | Status | active / inactive |
| payment_status | Platnosc | latest payment status (color-coded) |
| last_attendance | Ostatnia obecnosc | most recent attendance date |
Search + filter: real-time search by name; filter by program / age group / status.
UC-12 — Navigation Menu (plato-nav-menu) & RBAC
| Menu Item | Label (PL) | Pipeline | Owner | Admin | Coach |
| GLOWNE |
| Dashboard | Dashboard | plato-dashboard | YES | YES | own schedule |
| Participants | Uczestnicy | plato-participant-list | YES | YES | own groups |
| Schedule | Terminarz | plato-session-schedule | YES | YES | own sessions |
| OPERACJE |
| Enrollment | Zapisy | plato-enrollment | YES | YES | NO |
| Attendance | Frekwencja | plato-attendance | YES | YES | own sessions |
| Payments | Platnosci | plato-payment | YES | YES | NO |
| Coaches | Trenerzy | plato-coach-roster | YES | YES | NO |
| PROGRAMY |
| Tournaments | Turnieje | plato-tournament | YES | YES | NO |
| Camps | Obozy i ferie | plato-camp-intake | YES | YES | NO |
| NOTATKI |
| Progress Note | Notatka postepu | plato-progress-note | YES | YES | own notes |
Section 15 — User Manual (Quick Reference for Kacper)
Codzienne operacje (Daily)
| Co chcesz zrobic | Gdzie | Kroki |
| Sprawdzic dzisiejsze zajecia | Dashboard | Zaloguj sie → widzisz od razu |
| Sprawdzic kto nie zaplacil | Dashboard (karta "Nieoplacone") lub Platnosci | Kliknij liczbe nieoplaconych |
| Oznaczyc frekwencje | OPERACJE > Frekwencja | Wybierz zajecia → zaznacz status kazdego dziecka → Zapisz |
| Zarejestrowac platnosc | OPERACJE > Platnosci | Znajdz nieoplacona → wpisz kwote, date, metode → Zapisz |
Tygodniowe operacje (Weekly)
| Co chcesz zrobic | Gdzie | Kroki |
| Zaplanowac zajecia na nastepny tydzien | GLOWNE > Terminarz | Nowe zajecia → wybierz program, date, godzine, trenera → Zapisz |
| Sprawdzic kto ma niski udzial | GLOWNE > Uczestnicy | Filtruj po programie → sprawdz kolumne "Ostatnia obecnosc" |
Miesiecne / okazjonalne (Monthly)
| Co chcesz zrobic | Gdzie | Kroki |
| Zapisac nowe dziecko | GLOWNE > Uczestnicy > Nowy uczestnik | Wypelnij formularz → Zapisz |
| Zapisac dziecko do programu | OPERACJE > Zapisy > Nowy zapis | Wybierz uczestnika + program → Zapisz |
| Utworzyc turniej | PROGRAMY > Turnieje > Nowy turniej | Wypelnij dane → Zapisz → Dodaj druzyny |
| Otworzyc zapisy na oboz | PROGRAMY > Obozy i ferie | Nowy oboz → ustaw daty i limit miejsc |
| Dodac nowego trenera | OPERACJE > Trenerzy > Nowy trener | Wypelnij dane i certyfikaty → Zapisz |
Section 16 — AM Branding Specification (skin-energia)
Source: AM Website (extracted 2026-05-07 by S. Kacper, PO). Applied to NEXUS_APP.html as [data-skin="plato"] from 2026-05-08.
Active Skin: skin-energia (Default)
| Nexus Token | AM Value | Usage |
--na-bg | #0C1826 | Main background (dark navy) |
--na-bg2 | #162234 | Sidebar and surface alternate |
--na-card | #1E2E42 | Elevated elements / cards |
--na-accent | #FF6B1A | Primary accent (orange) — 6.9:1 contrast on bg |
--na-accent-dim | rgba(255,107,26,0.12) | Hover / highlight tint |
--na-text | #F0F4F8 | Headings and primary text (near-white) |
--na-text-dim | #C8D6E2 | Body text (light blue-grey) |
--na-text-muted | #8E9EAE | Secondary/muted text — 5.6:1 on bg |
--na-border | rgba(255,255,255,0.10) | Neutral UI borders |
--na-font | 'Montserrat', 'Open Sans', system-ui | Headings: Montserrat 700–900. Body: Open Sans 400–600 |
Logo
| Asset | URL / Spec |
| White logo (for dark bg) | AkademiaMistrzow/logo-white.png |
| Nav size | 44×44px |
| Footer size | 56×56px |
| Full S3 URL | https://uv-useme-jobs.s3.eu-west-2.amazonaws.com/AkademiaMistrzow/logo-white.png |
Alternative Skins
| Skin | Background | Accent | Style |
| skin-energia (default) | #0C1826 (navy) | #FF6B1A (orange) | Dark, bold, editorial |
| skin-natura | #F4F0E4 (warm cream) | #3E7A50 (sage green) | Light, organic |
| skin-mistrzowie | #FAF6EE (parchment) | #7A5800 (deep amber) | Light, warm, classic |
Section 17 — Client Discovery Summary (2026-05-11)
35 questions answered by Kacper Stec (CEO, Akademia Mistrzow) on 2026-05-11. Full answers recorded in AS-1 source: usecase_dev/Plato/PLATO_KNOWLEDGE_BASE.md Section 8.
Key Facts (from client answers)
| Metric | Value | Source |
| Active participants | ~40 | Q1 |
| Growth rate | ~1–2 new/month (some also leave) | Q1 |
| Sessions per week | Fixed weekday hours + ad-hoc weekends | Q6, Q7 |
| Tournaments per year | ~15 | Q9 |
| Camps / half-colonies | 1x this year | Q10 |
| Current tools | Google Calendar, WhatsApp group | Q2 |
| Payment methods | Cash, bank transfer, BLIK | Q3, Q15 |
| Biggest pain point | Setting up schedules + writing messages to clients about when they can come to training | Q35 |
| System users (MVP) | Only Kacper | Q11 |
| Preferred device | Phone / tablet | Q13 |
| Notification preference | SMS | Q14 |
| Testing readiness | Immediately | Q34 |
| Test window | July–August 2026 | Q33 |
| Launch window | September 2026 (school year start) | Q33 |
Registration Data Collected (Q8 — expanded)
| Field | Notes |
| First name, last name | Required |
| Age | Required |
| Current club | Where the child plays currently |
| Activity type | Football / motor skills |
| Problems / issues | What the child struggles with (motor, coordination, etc.) |
| Injury history | Past injuries / conditions |
| RODO consent | Form exists |
| Photo consent | One-time (Q30) |
Compliance Confirmed
| Item | Status |
| EU data storage | Confirmed |
| RODO documentation | Exists |
| Photo consent (one-time) | Confirmed |
| Invoice generation | Not needed — Kacper issues personally |
| Foundation annual export | Unknown — revisit later |
Section 18 — MVP Definition
Derived from Kacper's top 3 features (Q32) and biggest pain point (Q35). Both converge on schedule self-service + automated reminders.
Kacper's Top 3 Features for Day One
- Parents self-register into the schedule (samodzielne wpisywanie sie w terminarz)
- Reminders about training sign-ups (przypomnienie o zapisach na treningi)
- SMS reminder about training time and location (przypomnienie SMS o treningu i lokalizacji)
MVP Scope (Phase 1 — Target: July 2026 testing, September 2026 launch)
| Priority | Feature | Maps to Pipeline |
| P0 | Parents view available slots and self-register | plato-session-schedule + plato-participant-intake |
| P0 | SMS reminder about upcoming training (time + location) | NotifyNode (SMS gateway) |
| P0 | Reminder about open sign-up slots | NotifyNode (SMS gateway) |
| P1 | Payment records (cash / transfer / BLIK) | plato-payment |
| P1 | Waitlist for camps, tournaments, full individual hours | plato-session-schedule (waitlist logic) |
| P2 | Attendance tracking (informational, not required) | plato-attendance |
| P2 | Tournament registration | plato-tournament |
MVP Constraints (from client answers)
| Constraint | Detail |
| Single user | Only Kacper. No coach access, no parent portal in MVP. |
| Mobile-first | Must work on phone/tablet. Registrations done spontaneously by phone. |
| SMS preferred | Parent notifications via SMS, not email. |
| No invoicing | Payment records only. Kacper issues invoices personally. |
| No minimum attendance rule | No attendance gate for tournament participation (Q18). |
| Medical: injuries and illnesses | Critical info per child (Q19). Emergency contact required. |
Section 19 — Phase 2+ Backlog
Items confirmed by Kacper as "nie na teraz" (not now) or deferred based on MVP scoping.
Multi-Academy / Subscription Model
| Item | Kacper's Input | Notes |
| Sell to other academies | Nie na teraz | Option exists but not current priority |
| Pricing for competitors | Nie na teraz | |
| Onboarding other academies | Nie na teraz | |
| First-line support for others | Nie na teraz | |
| Market size | Knows a few similar owners | |
| Branding preference | Own brand | "Swoja" — wants AM branding, not neutral |
| Monthly cost tolerance | Has not thought about it | |
Deferred Features
| Feature | Phase | Notes |
| Coach login and own-group view | Phase 2 | Q11: only Kacper for now. Q12: coaches see own groups when added. |
| Parent portal | Phase 2 | Scope TBD (view schedule? mark absences? see payments?) |
| Attendance history reports | Phase 2 | Nice to have for coaching perspective (Q17) |
| Foundation annual export | Phase 2 | "Nie wiem" (Q31) — revisit at reporting cycle |
| FC App integration | Phase 2 | Tournament results currently in FC App (Q9) |
| Multi-academy subscription | Phase 3 | Entire section C deferred |
| Mobile native app | Phase 3 | PWA sufficient for MVP if responsive |
Change Log
| Version | Date | Change |
| v1.0 | 2026-05-05 | Initial creation — incorrect Creative Canvas identity (stale) |
| v2.0 | 2026-05-06 | Complete rewrite — correct Akademia Mistrzow sports academy operations identity. 12 pipelines specified. |
| v2.1 | 2026-05-07 | Added Sections 10–13: What Is Needed, Acceptance Criteria, Risks, Cooperator Brief. UCT-3.1 full compliance. |
| v4.0 | 2026-05-11 | Client discovery complete: 35 questions answered by Kacper Stec. Added Sections 17–19: Client Discovery Summary, MVP Definition (schedule self-service + SMS reminders), Phase 2+ Backlog. Updated header, status to "MVP Defined". Registration fields expanded (injury history, activity type, problems). Timeline: test Jul–Aug 2026, launch Sep 2026. |
| v3.0 | 2026-05-08 | AS-2 sync with AS-1 PO source (PLATO_KNOWLEDGE_BASE.md + PLATO_USE_CASES_DETAILED.md, commit 3310bae). CSS updated to AM skin-energia branding (#0C1826 navy, #FF6B1A orange). Added Sections 14–16: Detailed Use Cases (UC-01..UC-12) with Polish form fields, User Manual (Kacper quick reference), AM Branding Specification. AC-P-09/AC-P-10 added. Entity classes loader registered in Wormwood. |