--- title: "Introducing Portent ☘️" source: "https://refactoring.fm/p/introducing-portent" author: - "[[Luca Rossi]]" published: 2026-05-20 created: 2026-06-15 description: "An open spec for knowledge bases, for work and life." tags: - "clippings" --- ### Otwarta specyfikacja dla baz wiedzy, pracy i życia. Narracja artykułu 0:00 \-17:47 Dziś minął prawie miesiąc od premiery [Tolarii](http://tolaria.md/), a w tym czasie rozmawiałem z wieloma osobami i zespołami, które próbują wykorzystać ją do tworzenia i zarządzania wewnętrznymi bazami wiedzy. Podczas tych rozmów najczęściej pojawiają się pytania nie dotyczące samego narzędzia, lecz sposobu **organizacji informacji**. Ludzie rozumieją narzędzie: typy, relacje, widoki itd. — ale nie są pewni, jakie typy tworzyć, jak je połączyć i jak wygląda regularna konserwacja tego wszystkiego. Aby w tym pomóc, dziś przedstawiam **[Portent](http://portent.md/)** — otwartą specjalizację do organizowania baz wiedzy w pracy i życiu. ![](https://substackcdn.com/image/fetch/$s_!0fCQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6679e5f1-651b-43e1-b21e-d2bb636e3455_3112x1648.png) Nowa strona na portent.md! Portent dostarcza silnych domyślnych wartości dla trzech kluczowych aspektów bazy wiedzy: - **Struktury** — sposób, w jaki informacje są organizowane w różne kategorie, czy to typy, foldery, czy coś podobnego. - **Relacje** — jak takie struktury są ze sobą powiązane i powiązane. - **Cykl życia** — sposób, w jaki informacje przepływają i są obsługiwane. Portent powstał z kilkoma celami: - **Konwencja ponad konfigurację** — Portent jest jak szyny baz wiedzy. Daje rozsądne domyślne ustawienia, ale pozwala ci swobodnie rozszerzać lub zmieniać cokolwiek chcesz. - **Można je wykorzystać z dowolnym narzędziem** — choć koncepcje Portent są w Tolarii najwyższej klasy, można je łatwo wdrożyć w każdym narzędziu zarządzania wiedzą. - **Połącz życie i pracę** — stwórz bazy wiedzy łączące dane osobiste i zawodowe, w tym samym systemie typów. - **Elastyczny i rozszerzalny —** Portent łatwo zmieniać i rozszerzać, nie ogranicza użytkowników do sztywnych schematów. Przejdźmy więc do tematu. Oto agenda programu: - 📖 **Tło** — albo dlaczego powinieneś mi zaufać - 🍱 **Typy** — osiem głównych typów - 🔀 **Relacje** — dla wiedzy myśl o wykresie zamiast relacyjnym - 🔄 **Cykl życia** — przechwytywać → organizować → archiwum - 🔌 **Rozszerzanie Portent** — jak dodać więcej rzeczy i co możesz dodać. - 🔨 **Wdrożenie Tolarii** — jak to zrobić w Tolarii. Uwaga: jest szablon. --- > *Szybkie ostrzeżenie! 2 i 3 czerwca będę na **[LDX3 w Londynie](https://leaddev.com/leaddev-london/)**, gdzie przeprowadzę wywiad z jedynym i niepowtarzalnym [Randsem](https://www.google.com/search?q=michael+lopp), na żywo na scenie.* > > *Uwielbiam konferencje LeadDev i chodzę na nie co roku. Jeśli myślisz o przyjeździe, możesz **[użyć kodu](https://leaddev.com/leaddev-london/)** **[LUCA15](https://leaddev.com/leaddev-london/)**, aby uzyskać 15% zniżki na bilety! Brak powiązań — nie dostaję z tego żadnych pieniędzy.* > > *Mam nadzieję, że spotkam tam wielu przyjaciół i pozdrowię się!* --- ## 📹 Poradnik Jeśli wolisz oglądać niż czytać, oto mój przegląd szablonu 👇 [Portent](https://github.com/refactoringhq/portent-vault-template) --- ## 📖 Tło fabularne Portent jest efektem wielu lat pracy i, podobnie jak w przypadku Tolarii, wydaje się, że wiele z tego, co zrobiłem w życiu, doprowadziło do tego: - **2011: Doktorat** — w 2011 roku rozpocząłem doktorat, aby badać bazy danych nierelacyjne i to, jak ich modele danych można mapować jeden na drugi. To zapoczątkowało moją obsesję na punkcie organizowania informacji. Później zrezygnowałem z doktoratu, żeby założyć startup 👇 - **2017: Startup** — mieliśmy jedno z pierwszych miejsc pracy Notion we Włoszech, już w 2017 roku. Jako CTO tworzyłem szablony dotyczące organizacji pracy, które później przejęło wielu innych, a także osobiście prowadziłem kilka startupów, jak organizować pracę. - **2020: Budowanie drugiego mózgu** — w 2020 roku zetknąłem się z ideami Tiago Forte, Sonke Ahrens, całą literaturą dotyczącą zarządzania wiedzą osobistą i zacząłem starać się wyciągać z niej to, co najlepsze, stosując ją do rzeczywistej *wiedzy zawodowej*. - **2021: Refaktoryzacja** — moja twórczość *podkreślała* te idee do granic możliwości i doprowadziła do znaczącej rewizji, która pozwoliła 1) na większą produktywność (pisanie 3 newsletterów tygodniowo) oraz 2) łączenie danych osobistych i zawodowych. - **2025: AI i Tolaria** — gdy zaczynałem pracę nad Tolarią, dalej zmieniałem, jak te koncepcje można jednoznacznie mapować na typy i relacje oraz optymalizować pod kątem współpracy AI. Mam bardzo wyraziste opinie na ten temat, ale jednocześnie obawiam się, że to bardzo osobisty temat, więc każdy system powinien wyglądać: - **Małe** — uwzględniam tylko to, co jestem w 100% pewna, że jest dobre, a nie więcej. - **Elastyczny** — dostosowany do indywidualnych zmian i preferencji. Najlepszą analogią, jaką znalazłem, jest to, że Portent jest jak **Rails dla baz wiedzy**: gotowy do klucza, jeśli chcesz, ale nieskończenie konfigurowalny, jeśli chcesz się zaangażować. --- ## 🍱 Rodzaje Portent zaleca organizowanie danych w osiem głównych typów: 1. **Projekty** 2. **Eksploatacja** 3. **Obowiązki** 4. **Zadania** 5. **Wydarzenia** 6. **Przypisy** 7. **Tematy** 8. **Ludzie** Sama nazwa Portent jest akronimem dla pierwszych siedmiu typów. Poza tym na końcu *są ludzie*, więc technicznie rzecz biorąc to *PORTENTP* — ale proszę o cierpliwość! Te typy dzielą się na dwie kategorie czyste: - **PORT** — konkretne typy : *Projekty*, *Operacje*, *Odpowiedzialności*, *Zadania*. - **ENT(P)** — te **niepodlegające działaniom**: *Wydarzenia*, *Notatki*, *Tematy*, *Osoby*. PORT organizuje *zadania do zrobienia*, podczas gdy ENTP organizuje działania *bezczynnościowe*. ![](https://substackcdn.com/image/fetch/$s_!vTzN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27a48a2c-0aa1-473e-9807-defd6039ad71_1590x798.png) PORT i ENTP to dwie główne grupy typowe w PORTENT ## 🔥 PORT PORT jest zdecydowanie najważniejszą częścią Portent. Uważam, że najlepszym sposobem na uporządkowanie informacji jest pytanie po tym, jak zapytać: **co powinienem z nią zrobić?** Będziesz sobie zadawać to pytanie *cały czas*, więc aby udzielić dobrych odpowiedzi, potrzebujesz dobrego sposobu na organizację swoich zadań. A kiedy mówię "rzeczy do zrobienia", to niekoniecznie praca — to także życie osobiste. Model mentalny jest taki sam. Najbardziej przydatnym sposobem kategoryzacji pracy, jaki znalazłem, jest robienie tego wzdłuż dwóch osi: - 📏 **Rozmiar** — czy prace można wykonać za jednym posiedzeniem, czy nie. - 🔄 **Nawrót** — niezależnie od tego, czy praca jest jednorazowa, czy powtarzająca. Na tej podstawie możemy mieć cztery typy prac: ![](https://substackcdn.com/image/fetch/$s_!3zHB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef4d7e29-f069-4722-b425-f07a52f05aae_2010x1190.png) Możesz zorganizować wszystko, co potrzebujesz, w zależności od wielkości i powtarzalności ### Obowiązki Obowiązki to powtarzające się zadania, których nie da się wykonać za jednym razem. Są dobre do modelowania obszarów o długich czasach , dla których trzeba zachować standard. Obowiązki zazwyczaj nie mają *stałych celów,* ponieważ są długoterminowe — raczej mają wskaźniki lub KPI, które pokazują, że idziesz w dobrym kierunku. Przykłady: "utrzymać dobrą formę" lub "zapewnić dobrą utrzymość produktu". ### Projekty Projekty to jednorazowa praca, której nie da się wykonać za jednym razem. Mają początek i koniec oraz jasną definicję tego, co jest zrobione. Mogą być częścią odpowiedzialności. Np. jeśli twoja odpowiedzialność za "zapewnienie dobrej retencji produktu" mierzy NPS produktu, to projekt ćwierćroczny może dotyczyć ukochanej funkcji, o którą ludzie pytają od zawsze, a która ma ją poprawić. Albo jeśli mierzysz "utrzymanie dobrej formy" z VO2 max, to ćwierć projektu może polegać na rozpoczęciu gry w Padelu dwa razy w tygodniu i podniesieniu VO2 max z X do Y. ### Eksploatacja Operacje to powtarzające się zadania, które *można* wykonać za jednym posiedzeniem. Są to *procedury* powtarzane zawsze w ten sam sposób, dla których idealnie istnieje zestaw instrukcji. Operacje mogą należeć *do* Odpowiedzialności i Projektów. Na przykład w odpowiedzialności "dbania o dobrą formę" możesz mieć operację opisującą Twoją rutynę treningową z ciężarami. Albo w przypadku projektu dotyczącego nowej funkcji produktu możesz mieć Operację "Cotygodniowego przeglądu" przebiegu rozwoju. Operacje są także, na dziś największą powierzchnią współpracy z agentami AI. Agenci dostarczają ogromną wartość, *posiadając* procedury, czyli wykonując ten sam zestaw działań na powtarzalnej zasadzie. ### Zadania Zadania to jednorazowa praca, którą można wykonać za jednym razem. Ważne jest, aby były one definiowane w ten sposób i uwzględnione w ogólnym systemie, ale tak naprawdę nie zachęcam do ich przechowywania w bazie wiedzy. Nie jestem też całkowicie przeciwny, ale generalnie uważam, że zadania lepiej nadają się do zarządzania przez dedykowane, osobne narzędzie. Z dwóch powodów: - **Efemeryczne** — gdy zadanie zostanie wykonane, nie ma dużej wartości w trzymaniu go w bazie. Wszelkie wnioski wynikające z zadania powinny być przechowywane w osobnej notatce. - **Zadania specjalistyczne** — często wymagają specjalistycznej interakcji: terminów, statusu, tablic kanban — wszystko to lepiej spełniają dedykowane narzędzia. Więc tak, nie jest źle przechowywać zadania w bazie Portent jako takiej, ale prawdopodobnie też niewiele z tego wyniesiesz. --- ## 🌱 ENTP Typy ENTP dotyczą informacji, które nie wymagają działania. Test lakmusowy jest taki: jeśli potrzebuje *statusu*, to prawdopodobnie PORT, w przeciwnym razie to ENTP. Przyjrzyjmy się im po kolei: ### Tematy Tematy to *kategorie*, które nie mają oczekiwań co do działania. To po prostu interesujące tematy, które mogą być przydatne lub niepotrzebne w przyszłości. Np. lubię symulatory wyścigów i często zapisuję linki ze sprzętem lub tutorialami, ale nie mam żadnych projektów ani obowiązków związanych z tym, więc to tylko mój temat. Albo w pracy mogę chcieć oszczędzać przydatne materiały o *bazach* danych, ale nie mam za to odpowiedzialności . Może to być przydatne w przyszłości, więc tworzę notatki i ustawiam je jako powiązane z tematem baz danych. ### Wydarzenia Wydarzenia to rzeczy, które *się zdarzają*. Są przydatne do mapowania spotkań, osiągnięć i kalendarza. ### Ludzie Ludzie są dość oczywisti. Możesz przypisać ludzi praktycznie do dowolnego z powyższych typów, a jeśli zrobisz to dobrze, to jak budowanie CRM. ### Przypisy Wreszcie, Note to po prostu *domyślny* typ. Gdy tworzysz nowy przedmiot, najpierw jest to Notatka — i pozostaje taka, jeśli nie ma dla niej lepszego typu. Teraz, gdy już masz te typy na swoim miejscu, jak je ze sobą połączyć? --- ## 🔀 Relacje Uważam, że najlepszym sposobem modelowania relacji informacyjnych w bazie wiedzy jest bardzo mały zestaw połączeń **w stylu grafów**. Portent szczególnie zachęca do dwóch z nich: - **Należy do** *— silnej* relacji: właściciel, skład, zwykle w sposób jeden do wielu. - **Powiązane z** — słaba relacja: wielu-wielu, nie wymaga działania. W zależności od sposobu implementacji tych rozwiązań, można także obliczyć wersje odwrócone, których domyślne nazwy w Portent to: - Należy do → *Has* lub *dzieci* - Powiązane z → *Polecane przez* Sposób, w jaki przypiszesz te relacje, zależy od Ciebie, ale ja odkryłem, że dobrym domyślnym modelem mentalnym jest następujące: - Zastosowanie **należy** do relacji *w kierunku* lub *między* elementami PORT — np. operacja *należy do* szerszej odpowiedzialności*,* spotkanie (zdarzenie) lub notatka *należy do* projektu. - Użycie **związane z do** relacji między elementami ENTP — np. Wydarzenie jest związane *z* Osobą*,* Notatka z Tematem i tak dalej. ![](https://substackcdn.com/image/fetch/$s_!F9BU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0d7f58e-9760-4550-a2a5-27afca7721db_1734x1052.png) Elementy PORT zwykle wyrażają własność / skład, podczas gdy ENTP wyrażają powiązanie Ważną zaletą systemu relacji (i nie tylko typu) jest to, że relacje pozostają takie same w całej bazie wiedzy. Aby zrozumieć, dlaczego to ma znaczenie, przyjrzyjmy się alternatywnym sposobom modelowania relacji, korzystając z dwóch najczęściej spotykanych sposobów: relacyjnych baz danych (dane tabelaryczne) oraz folderów (dane hierarchiczne). ### 1) Relacyjne bazy danych (dane tabelaryczne) W modelu relacyjnym, takim jak Postgres czy bazy Notion, musisz zdefiniować wyraźne relacje między każdą kilkoma tabelami, które chcesz połączyć. Te relacje tworzą schemat, który brzmi: - **Duże** — kończy się odtwarzaniem tych samych koncepcji na tabelach, nawet jeśli semantycznie oznaczają to samo, i - **Sztywne** — wymuszone i trudne do zmiany, gdy dane są już na miejscu. Plusem jest to, że dane zawsze pozostają bardzo spójne i zgodne ze schematem. ### 2) Foldery (dane hierarchiczne) W przypadku folderów każdy element (folder lub notatka) może *należeć* tylko do jednego folderu. To znacznie ogranicza semantykę, którą można wyrazić za pomocą struktur folderów, które zasadniczo mogą modelować tylko silne, *wyłączne* relacje własnościowe. Np. jeśli chcesz, aby notatki ze spotkań były w folderze "notatki ze spotkań", ale jednocześnie były uwzględniane w odpowiednich folderach projektowych, nie możesz. Zaletą folderów jest to, że ułatwiają przejście po mapie — o ile odbywa się to zgodnie z zamierzoną ścieżką. ### 3) Relacje grafowe Portent uważa, że zalety modeli relacyjnych i hierarchicznych nie mają już większego znaczenia jak w przeszłości, teraz gdy pojawiła się sztuczna inteligencja. W rzeczywistości: 1. Gdy większość informacji może być uporządkowana przez agentów AI, spójność można łatwo wymusić, nawet bez deterministycznego sposobu działania za pomocą oprogramowania. 2. Przeszukiwanie folderów po prostu nie ma znaczenia w świecie, gdzie agenci mogą grepować i pobierać cokolwiek. Jeśli się zgadzamy, proste domyślne relacje działają i skalują się lepiej niż cokolwiek innego, ponieważ tworzą: - **Mniej powierzchowna semantyka** — łatwiejsza do zrozumienia zarówno dla ludzi, jak i AI, bo wszędzie są te same koncepcje. - **Znaczenie cross-type** — łatwiejsze do pracy między wieloma typami (np. *znajdź wszystkie "osierocone" notatki == te, które nie mają belongs\_to ani related\_to*) To wszystko nie jest nic zupełnie nowego: bazy grafów robią to od zawsze — uważam tylko, że to najlepszy sposób na budowanie baz wiedzy, zwłaszcza teraz, gdy mamy AI. Następnie porozmawiajmy o cyklu 👇 życia --- ## 🔄 Cykl życia Częstym problemem baz wiedzy jest to, że trudno utrzymać je w czystości, rozumieniu i aktualności. Portent zachęca użytkowników do zarządzania notatkami w trzech etapach: **Przechwycenie**, **Organizacja** i **Archiwizacja**. ![](https://substackcdn.com/image/fetch/$s_!fiqd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce98f42-9873-4d3a-b923-8934818c97a3_2002x646.png) Można je zaimplementować jako właściwość statusu dla każdej notatki i mają być w jakiś sposób egzekwowane przez Twój workflow. Więcej o każdej z nich: ### 1) Schwytanie Etap przechwytywania służy jedynie udostępnianiu informacji. Zachowaj ten link na później, zapisz notatki ze spotkań, zapisz tę myśl w losowej notatce. *Uchwycone notatki* nie są ani czyste, ani schludne: są bałaganem, i to celowo. Etap przechwytywania jest zoptymalizowany pod kątem szybkości: po prostu uchwyć *wszystko*, a potem zobaczymy. ### 2) Organizować Gdy nuta zostanie uchwycona, musisz zadać sobie dwa pytania dotyczące niej: - **Co to jest?** - **Co powinienem z tym zrobić?** Pierwsze pytanie decyduje o wyborze typu, a drugie o tym, jakie relacje dla niego tworzyć. Jeśli nie możesz dołączyć żadnego Projektu, Odpowiedzialności, Operacji czy Tematu do notatki, to znaczy, że prawdopodobnie możesz ją wyrzucić. To całkowicie w porządku uchwycić rzeczy, a potem uświadomić sobie, że to był błąd: uchwycić je optymistycznie i organizować pesymistycznie. Organizuję zebrane notatki raz w tygodniu i wdrożyłem ten workflow bezpośrednio w Tolarii, gdzie domyślną sekcją jest lista notatek "Skrzynka odbiorcza" (czyli nieuporządkowana), a każdą notatkę można oznaczyć jako "zorganizowaną" za pomocą cmd+E. ### 3) Archiwum Niedocenianą częścią dobrej bazy wiedzy jest oddzielenie *aktualnych* od *przestarzałych* informacji. To drugie może być przydatne — pomyśl o wcześniejszych projektach, starych notatkach ze spotkań itd. — ale nie chcesz, by pojawiały się w codziennym użytkowaniu. Powinieneś mieć jasny sposób oznaczania notatek jako "archiwizowanych", tak aby ludzie i AI mogli je domyślnie ignorować. --- ## 🔌 Rozszerzanie Portent To są podstawowe koncepcje w Portent, ale nie są jedynymi , które znajdują się w twojej bazie wiedzy. Gdy już zrozumiesz podstawy (organizacja oparta na użyteczności, proste relacje, przechwytywanie vs organizowanie itd.), łatwo je rozwinąć i dodać więcej koncepcji. Według mojego doświadczenia najczęstsze to: - **Typy kalendarzy** — takie jak lata, kwartały i miesiące. To bardzo jasne koncepcje, które nie zanieczyszczą Twojej bazy i mogą służyć do zakotwiczenia i grupowania takich rzeczy, jak projekty, wydarzenia i inne. - **Zespoły / obszary** — czasem warto tworzyć większe grupy reprezentujące obszary domeny lub własności i przypisywać do nich elementy PORT. - **Typy notatek** — możesz chcieć "podzielić" typ notatek na więcej osób: filmy, zasoby, artykuły itd. Jestem zwolennikiem robienia tego za pomocą właściwości tagów, zamiast typów "root", ale można to zrobić na obie strony. - **Relacje specjalistyczne** — gdy już jesteś pewien swojego modelu, warto stworzyć kilka konkretnych relacji, aby *rozróżnić* użycie domyślnych. Oczywiście warto też tworzyć typy, które pasują do języka domeny twoich przypadków użycia. Np. piszę biuletyn i mam teksty do esejów, notatek Evergreen, wywiadów do podcastów i innych. --- ## 🔨 Implementacja Tolarii Portent może być wdrożony w każdym systemie notatek, ale ma specjalne wsparcie w Tolarii. Stworzyłem tutaj [szablon portentu](https://github.com/refactoringhq/portent-vault-template), który możesz sklonować i używać w Tolarii. Tolaria jest dobra dla Portent, bo: ### 1) Zarządzanie cyklem życia Capture → Organize → Archive jest bezpośrednio wspierane w Tolarii: - Sekcja Skrzynka odbiorcza pokazuje wszystkie notatki, które jeszcze nie zostały uporządkowane - Możesz *zorganizować* notatkę za pomocą cmd+E lub przycisku organize w pasku edytora - Możesz *zarchiwizować* notatkę przyciskiem archiwum i ukryje się ona w domyślnych sekcjach. ### 2) Typy i relacje Tolaria jest natywnie zorganizowana na Typy i Relacje, sugerując domyślne relacje, które są dokładnie tymi Portent. ### 3) Wiele sklepień Jeśli chcesz używać tego samego systemu typów (Portent) zarówno do życia, jak i pracy, możesz stworzyć osobne skarbce i *zamontować* je razem w Tolarii, aby mogły ci się podejrzewać, zachowując jednocześnie oddzielną kontrolę dostępu np. dla współpracowników. --- I to wszystko na dziś! Jak zawsze, dajcie znać, co o tym wszystkim myślicie! Życzę ci udanego tygodnia Z poważaniem 👋 , Luca --- #### Subskrybuj Refaktoring Tysiące płatnych subskrybentów Dowiedz się, jak sprawić, by Twój zespół inżynierski przyspieszał i usprawnił wysyłkę. Czytane co tydzień przez 170 000+ inżynierów i menedżerów