KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Twój pierwszy plugin — KretHello
21 etapów: od nowego projektu przez check, testy i paczkę dev do jawnie opisanych bramek Core oraz publikacji.
Program kursu
- 01
Czym jest plugin
KretHello łączy manifest z trzema plikami źródeł i testami. Jego tożsamość jest lokalna; przykład uczy przepływu tworzenia, nie stanowi oficjalnie wydanego produktu.
BASIC · 15 min - 02
Rola Core i brokera
Core ładuje plugin według własnych zasad. KretHello jest ELIGIBLE_DEV bez uprawnień; nie potrzebuje zmiany D-KCS-01. Host pozostaje osobnym procesem z własną polityką.
BASIC · 15 min - 03
Przypięte narzędzia
Sprawdź SDK_MANIFEST.json i zgodność CLI z materiałami. Lokalny kandydat nie ma podpisu produkcyjnego; nie przedstawiaj go jako oficjalnego instalatora do pobrania.
BASIC · 15 min - 04
Nowy projekt
W nowym katalogu lokalnym wzorzec SDK basic tworzy bazę projektu: kret new basic <katalog> --name KretHello. Porównaj go z dostarczonym src, zamiast nadpisywać istniejący projekt.
BASIC · 15 min - 05
Katalogi i pliki
Manifest znajduje się bezpośrednio w src; Script/Main.krs ma logikę, Tests/HelloTests.krs testy. examples/host-policy.json jest polityką testowego hosta, nie uprawnieniem pakowanym do pluginu.
BASIC · 15 min - 06
Manifest KretL
Przeczytaj deklarację id i lifecycle. Sprawdź, do którego handlera prowadzi start i shutdown. KretHello nie deklaruje permissions: to zamierzony sposób uniknięcia zależności od otwartych uprawnień Core.
BASIC · 15 min - 07
Logika KretS
Main.krs implementuje handlery i komendę hello.greet. Czytaj typ argumentu i typ wyniku przed return. Wartość zwrócona nie wymaga operacji log ani dostępu do systemu plików.
BASIC · 15 min - 08
Start i shutdown
Host wywołuje funkcje lifecycle opisane manifestem. Osobno sprawdzaj typ i timeout handlera. Wyjątek w starcie i normalne zakończenie to różne ścieżki; nie zakładaj, że build sprawdził ich wykonanie.
BASIC · 15 min - 09
Walidacja źródeł
Z katalogu pluginu uruchom lokalnie kret check src --json. Odczytaj succeeded i diagnostics. Brak błędów kompilatora nie potwierdza podpisu paczki ani zgody hosta.
BASIC · 15 min - 10
Kompilacja
kret build src tworzy src/Build/plugin.kbc i manifest.json. To artefakty lokalne. Zachowaj źródła do późniejszej paczki Core; samo bytecode nie wystarcza według STUDIO-R02.
INTERMEDIATE · 25 min - 11
Lokalne wykonanie
SDK run używa examples/host-policy.json i świeżego DATA. Instrukcja przewiduje --invoke hello.greet z argumentem Kret. Nie wskazuj katalogu Core Production i nie wykonuj polecenia przez serwer strony.
INTERMEDIATE · 25 min - 12
Testy zachowania
kret test src --json --policy examples/host-policy.json uruchamia testy lokalnego SDK. HelloTests.krs dokumentuje oczekiwany wynik, a raport potwierdza konkretne asercje. Nie zamieniaj oczekiwań tylko dlatego, że test nie przeszedł.
INTERMEDIATE · 25 min - 13
Opcjonalna baza danych
Dodanie KretDB zmienia wymagania: potrzebujesz schematu, kodu i deklaracji hosta. KretHello pozostaje minimalną bazą; przejdź do osobnego KretNotes. Nie dodawaj uprawnień UI/DB do Core, gdy D-KCS-01 jest OPEN.
INTERMEDIATE · 25 min · analiza / koncepcja - 14
Opcjonalny interfejs
KretUI potrzebuje plików widoku, stylu i motywu oraz spójnych akcji KretS. SDK preview i dostępność UI w Core to osobne rzeczy. Wykorzystaj KretUiDemo jako odrębne ćwiczenie.
INTERMEDIATE · 25 min · analiza / koncepcja - 15
Obsługa błędów
Najpierw odróżnij błąd składni, typu, host policy i instalacji. Czytaj kod i szczegóły właściwej wersji SDK. Uprawnienie do dziennika nie jest konieczne do zwracania błędu jako wyniku testu.
INTERMEDIATE · 25 min - 16
Paczka dev ze źródłami
Instrukcja podaje kret publish pack src --channel dev --include-sources -o package. Kanał dev jest niepodpisany. Polityka hosta nie trafia do .kpkg. --include-sources jest wymagane przez Core KPM.
ADVANCED · 25 min - 17
Weryfikacja paczki
publish verify zapisuje raport. signature: SKIPPED oznacza brak podpisu, a nie PASS. Sprawdzenie integralności paczki nie zastępuje ceremonii podpisu produkcyjnego C1.
ADVANCED · 25 min - 18
KPM Developer — warunki importu
Ten etap wymaga osobnego środowiska Core Developer i właściwej wersji KPM. Materiały źródłowe nie dostarczają tu pełnej publicznej instrukcji instalacji; nie wymyślaj polecenia. Zatrzymaj się na warunkach zgodności i ELIGIBLE_DEV.
ADVANCED · 25 min · analiza / koncepcja - 19
Test w Core — osobna bramka
Test SDK nie jest testem Core. W tej rundzie kurs nie uruchamia Core ani nie zmienia root of trust. Zapisz plan testu w Developer, dane wejściowe i oczekiwany wynik; wykonanie wymaga osobno dostępnego środowiska.
ADVANCED · 25 min · analiza / koncepcja - 20
Aktualizacja i usunięcie
Przed aktualizacją ustal zgodność wersji i zachowanie danych. Usunięcie pluginu nie jest zgodą na usunięcie prywatnych danych. Brakuje potwierdzonego publicznego kontraktu poleceń KPM dla tych kroków; kurs przedstawia checklistę, nie fikcyjne komendy.
ADVANCED · 25 min · analiza / koncepcja - 21
Formalna publikacja
Lokalny test i paczka dev nie są publikacją. Potrzebne są zgodne źródła, raporty, licencje, proces wydawcy, właściwy podpis i zatwierdzenie właściciela. KretForge pozostaje wstrzymany; żaden przycisk kursu nie publikuje paczki.
ADVANCED · 25 min · analiza / koncepcja