AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Learn

skill-szewowsky-learn-skill-learn · by Szewowsky

Tworzy gamifikowane plany nauki z filmów YouTube przez NotebookLM — questy z achievementami, checkboxami i feedback loop (quiz + Feynman). Używaj gdy ktoś chce się nauczyć tematu z YouTube, potrzebuje planu nauki, kursu z filmów, questów do nauki, NotebookLM. Triggers: 'naucz mnie', 'chcę się nauczyć', 'plan nauki', 'learn', 'YouTube kurs', 'quest do nauki', 'learn from YouTube', 'kurs z filmów'.

— No reviews yet
0 installs
8 views
0.0% view→install

Install

$ agentstack add skill-szewowsky-learn-skill-learn

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-szewowsky-learn-skill-learn)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
○ 5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Learn? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Skill: Learn — YouTube → NotebookLM → Plan nauki → Questy

Dlaczego ten skill istnieje

Nauka z YouTube to chaos — 50 filmów, zero struktury, nie wiadomo od czego zacząć. Ten skill zamienia ten chaos w grę: szuka filmów, wrzuca do NotebookLM, generuje plan nauki, a potem rozbija go na questy z achievementami i checkboxami. Na końcu feedback loop sprawdza czy faktycznie rozumiesz temat (quiz + Feynman probe), nie tylko czy obejrzałeś filmik.

Wymagania

  • yt-dlp — szukanie filmów na YouTube (brew install yt-dlp)
  • notebooklm CLI — interakcja z Google NotebookLM (pipx install "notebooklm-py[browser]")
  • Jednorazowa autoryzacja: notebooklm login (otwiera przeglądarkę → Google login)
  • Sprawdzenie auth: notebooklm auth check

Flow

Krok 0: Konfiguracja output

Sprawdź zmienną środowiskową LEARN_OUTPUT_DIR. Jeśli ustawiona — użyj jej jako katalogu wyjściowego. Fallback: ./learn-output/ w katalogu projektu.

Utwórz katalog jeśli nie istnieje.

Krok 1: Szukaj filmów na YouTube

Uruchom skrypt bundlowany w skillu:

python3 scripts/youtube_search.py --topic "[TEMAT]" --max-results 10

Skrypt filtruje po: min 1000 views, min 5 min, sortuje po popularności.

WAŻNE: Bash output może być zwinięty w UI — user go nie widzi! Przepisz wyniki jako sformatowaną tabelę markdown w odpowiedzi do usera. Kolumny: #, Tytuł, Views, Czas, Kanał. Zapytaj które filmy dodać — np. "1,2,5" lub "all".

Krok 2: Nowy notebook czy istniejący?

Zapytaj:

  • Nowy — stwórz notebook o nazwie tematu
  • Istniejący — pokaż listę

Dla nowego:

notebooklm create "[TEMAT]"

Zwraca notebook_id. Ustaw jako aktywny:

notebooklm use [NOTEBOOK_ID]

Dla istniejącego:

notebooklm list
notebooklm use [NOTEBOOK_ID]

Krok 3: Dodaj filmy jako źródła

Dodawaj po jednym z 3-sekundowym delay (rate limiting Google):

notebooklm source add "https://youtube.com/watch?v=VIDEO_ID_1"
sleep 3
notebooklm source add "https://youtube.com/watch?v=VIDEO_ID_2"

Po dodaniu — poczekaj na przetworzenie (zbieraj source_id z outputu):

notebooklm source wait [SOURCE_ID] --timeout 120

Informuj o postępie (X/Y dodane, przetwarzanie...).

Krok 4: Odpytanie promptem do nauki

Zaproponuj prompty z references/learning-prompts.md (przeczytaj plik w tym momencie):

  1. Plan nauki krok po kroku
  2. Plan nauki na X dni — zapytaj ile dni (domyślnie 7 lub 14)
  3. Trend Extraction
  4. FAQ — 15 pytań z odpowiedziami
  5. Syntetyzator wielu filmów
  6. Contrarian Finder
  7. Pomiń (porozmawiam sam później)

Dla opcji 2: Zapytaj o liczbę dni. Wczytaj prompt #2 i zamień {DAYS} na wybraną liczbę.

Po wyborze:

notebooklm ask "[WYBRANY PROMPT]"

Krok 5: Quest Generation (opcjonalny)

Po wyświetleniu planu nauki, zapytaj:

> Chcesz wygenerować quest chain? Questy z achievementami, checkboxami i estymacją czasu — jak w grze.

Jeśli tak:

5a. Przeczytaj szablon

Przeczytaj references/quest-template.md — pełny format questów, zasady achievementów i mapowanie plan → questy.

5b. Wygeneruj quest chain

Weź plan nauki z NotebookLM (output z Kroku 4) i transformuj w questy:

  • Każdy major topic / faza / dzień = osobny Quest
  • Prerequisites → wpleć w Quest 1
  • Quick wins → wcześniejsze questy (1-2)
  • Deep dives → ostatnie questy
  • Checkboxy - [ ] do trackowania progresu
  • Achievementy: kreatywne, tematyczne, po polsku
  • "Sukces wygląda tak:" = weryfikowalne kryterium
  • Estymacje: realistyczne (oglądanie = 1.3x film, zadanie = 10-20 min)
  • Tabela podsumowująca na końcu
5c. Zapisz do pliku

Ustal slug tematu (lowercase, polskie znaki → ASCII: ą→a, ć→c, ę→e, ł→l, ń→n, ó→o, ś→s, ź→z, ż→z, spacje → -, max 50 znaków).

Nazwa pliku: YYYY-MM-DD_[slug].md Katalog: output dir z Kroku 0.

Jeśli plik istnieje → dodaj suffix -v2, -v3 etc.

YAML front matter:

---
type: quest-chain
topic: "[TEMAT]"
slug: "[slug]"
created: YYYY-MM-DD
notebook_id: "[notebook_id z Kroku 2]"
version: 1
quests: [liczba questów]
source: learn-skill
---

Pokaż ścieżkę do pliku.

Krok 6: Feedback Loop Setup (po quest generation)

Warunek: Tylko jeśli quest chain powstał w Kroku 5.

6a. Wygeneruj pytania per quest

Dla KAŻDEGO questa użyj NotebookLM:

notebooklm ask "[QUIZ_GENERATOR_PROMPT z references/learning-prompts.md — podmień QUEST_TOPIC]"

Powtórz dla Feynman probe (prompt #8 z learning-prompts.md).

Jeśli NotebookLM nie odpowie → wygeneruj pytania sam (Claude) na podstawie materiału questa.

6b. Wygeneruj feedback-loop.md

Przeczytaj references/feedback-loop-template.md. Wypełnij szablon:

  • Quest rows: Quest 1 = pending, reszta = -
  • Pre-generowane pytania quiz + feynman per quest
  • Notebook ID zachowany
6c. Zapisz obok quest chain

Nazwa pliku: YYYY-MM-DD_[slug]_feedback-loop.md Katalog: ten sam co quest chain (output dir).

YAML front matter:

---
type: feedback-loop
topic: "[TEMAT]"
slug: "[slug]"
created: YYYY-MM-DD
notebook_id: "[notebook_id]"
quest_file: "[nazwa pliku quest chain]"
version: 1
status: active
source: learn-skill
---
6d. Podsumowanie
Feedback loop wygenerowany:
- Plik: [ścieżka]
- Questów: X (z pre-generowanymi pytaniami)
- Pierwszy do review: Quest 1 — [nazwa]
- Komenda: /learn-review [slug]

Failure Handling

| Sytuacja | Co robić | |----------|----------| | yt-dlp: 0 wyników | Zaproponuj szerszy temat lub angielskie keywords | | yt-dlp: timeout | Retry raz, potem poinformuj | | NotebookLM: auth expired | notebooklm auth check → notebooklm login | | NotebookLM: source add fail | Pomiń film, kontynuuj z resztą, poinformuj | | NotebookLM: query fail | Retry raz, potem fallback — wygeneruj plan sam (Claude) | | Partial success | Zapisz co masz, powiedz co brakuje | | Plik już istnieje | Suffix -v2 lub zapytaj | | notebooklm not found | Instrukcja: pipx install "notebooklm-py[browser]" | | yt-dlp not found | Instrukcja: brew install yt-dlp |

Debugowanie

notebooklm auth check          # Sprawdź auth
notebooklm login               # Ponowna autoryzacja
notebooklm -vv ask "test"      # Verbose mode

Ograniczenia

  • Przetwarzanie YouTube w NotebookLM: 30-90s per film
  • Max 50 źródeł per notebook (NotebookLM Free)
  • Auth Google wygasa co kilka dni/tygodni — notebooklm login
  • notebooklm-py korzysta z undocumented Google RPC API (3k+ stars, aktywny maintenance, ale może się zmienić)
  • yt-dlp search zwraca wyniki bez rankingu jakości — filtrujemy po views/duration
  • Delay 3s między source add — Google rate limiting

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.