Portfolio
AI Loot Generator
- LLM
- RAG
- OpenAI API
- Qdrant
- .NET 8
- ASP.NET Core
- Angular 18
- Azure App Service
- Vercel
Aplikacja dla Mistrzów Gry w Warhammer Fantasy Roleplay. Na podstawie opisu miejsca, w którym drużyna znalazła łup, i poziomu zamożności generuje od 4 do 6 przedmiotów zgodnych ze światem gry.

Najważniejsze elementy:
- RAG w .NET: wiedza o lore WFRP jest przechowywana w Qdrant (embeddingi
text-embedding-3-small), a do promptu trafiają przykładowe przedmioty dopasowane do lokacji - odpowiedź modelu w ustalonym formacie JSON, walidowana i mapowana na model C#; niepoprawne przedmioty są odrzucane
- 30-sekundowy cooldown przy generowaniu kolejnych przedmiotów: identyfikator sesji jest zapisywany w localStorage, a backend przechowuje czas ostatniego generowania w
IMemoryCache
Demo na żywo · Kod na GitHubie
mcp-proxy
- MCP TypeScript SDK
- TypeScript
- Node.js
- zod
- Docker
Serwer MCP zwraca w tools/list zazwyczaj wszystkie swoje narzędzia, a protokół nie przewiduje filtrowania ich per agent. Niektóre serwery i klienci mają własne mechanizmy ograniczania listy, ale każdy działa inaczej. mcp-proxy działa jako warstwa pośrednia między agentem a serwerami i według jednej konfiguracji udostępnia każdemu profilowi wyłącznie dozwolone narzędzia:
profiles:
reviewer:
default: block
servers:
filesystem:
allow: ["read_file", "list_directory", "search_files"]
github:
block: ["**"]
Najważniejsze elementy:
- mniejsze zużycie tokenów: agent dostaje tylko narzędzia zgodnie z profilem, więc do kontekstu trafia ograniczona lista definicji tooli
- guardrails: niedozwolonego narzędzia nie ma w
tools/listi agent nie może go wywołać, również wtedy, gdy model ‘wie’, że takie narzędzie istnieje - walidacja argumentów względem
inputSchemaprzed przekazaniem wywołania do serwera
JobTracker
- SDD
- Astro 6
- React 19
- TypeScript
- Tailwind
- Supabase
- Cloudflare Workers
Tablica Kanban do śledzenia procesów rekrutacyjnych. Ofertę można dodać ręcznie albo podać link do ogłoszenia z LinkedIn lub JustJoin.it, a wtedy aplikacja sama pobiera jego szczegóły. Karty przesuwa się między etapami rekrutacji. Projekt powstał w całości metodą spec-driven development, z agentem AI odpowiedzialnym za implementację.
![]()
Najważniejsze elementy:
- proces SDD: każda zmiana zaczyna się od specyfikacji, po której następują research, plan i review; kod pisze agent
- pełna historia zmian w repozytorium: w
context/archive/każda zmiana ma osobny folder ze specyfikacją, planem i recenzjami - testy jednostkowe (Vitest), E2E (Playwright) i mutacyjne (Stryker)
- RLS w Supabase