Wspólna nauka — po każdym fix-phase / multi-file change / non-trivial task przejrzyj sesję i zdecyduj czy warto zapisać lekcję (nową lub update istniejącej). Triggeruj proaktywnie po PR-ach, fazach audytu, zamknięciu commit'u, każdej okazji gdy coś poszło nie tak / fix wprowadził nowy bug / wykryłem powtarzający się pattern. Skip dla trivial reads, pure refactors bez błędów, doc updates. ALWAYS-CONFIRM przed zapisem.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gamedev-toolkit-claude:lessons-updateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Cel: po każdym non-trivial task wyciągnąć to czego się nauczyliśmy i zachować jako persistent memory, żeby kolejne sesje nie powtarzały tych samych błędów. Memory ładuje się przez SessionStart hook (project-scoped), więc każda zapisana lekcja zwiększa baseline competence wszystkich przyszłych sesji.
Cel: po każdym non-trivial task wyciągnąć to czego się nauczyliśmy i zachować jako persistent memory, żeby kolejne sesje nie powtarzały tych samych błędów. Memory ładuje się przez SessionStart hook (project-scoped), więc każda zapisana lekcja zwiększa baseline competence wszystkich przyszłych sesji.
Triggery proaktywne (sam to wywołaj, nie czekaj):
gh pr merge / commit zakończonymSkip rules:
Jawny trigger od usera: /lessons-update lub "zaktualizuj lessons" / "co się nauczyliśmy?".
Streszcz w 1-3 zdaniach co właśnie zostało zrobione. To context dla decyzji "warto / nie warto".
Przejdź po sesji i odpowiedz uczciwie. Każde "tak" = kandydat na lesson:
Dla każdego kandydata, najpierw sprawdź czy już istnieje lesson w memory/:
# Prefer repo memory/ (walk up looking for memory/MEMORY.md — canonical
# location used by gamedev-toolkit-claude auto-load hook).
PROJ_MEM=""
CUR="$(pwd)"
for _ in 1 2 3 4 5 6 7 8 9 10 11 12; do
if [ -f "$CUR/memory/MEMORY.md" ]; then
PROJ_MEM="$CUR/memory"
break
fi
[ "$CUR" = "/" ] && break
CUR="$(dirname "$CUR")"
done
# Search by keyword from candidate
grep -li "<keyword>" "$PROJ_MEM"/lesson_*.md
Jeśli istnieje pasująca lekcja:
Jeśli nie istnieje:
Filename convention: lesson_<short_topic>.md (lub feedback_* jeśli to feedback procesowy, nie technical anti-pattern).
Template:
---
name: <short title — pasuje do MEMORY.md one-linera>
description: <jednozdaniowy trigger phrase — keyword który mam zobaczyć w przyszłym kodzie>
type: lesson | feedback
---
**Reguła**: <jednozdaniowa zasada do zapamiętania>
**Why**:
<konkretny case z sesji — co się stało, dlaczego, jaki był koszt (wasted hours, regresja, security gap, RODO leak). MUSI być specyficzny: file:line, error message, exact symptom. Bez "uważaj na bugi".>
**How to apply**:
- <konkretny check do wykonania w przyszłości — bullet point>
- <grep / pattern / file path do sprawdzania>
- <link do related lesson jeśli pasuje>
**Occurrences**:
- <data> — <session ID jeśli masz, inaczej krótki opis>: <co się stało>
Jeśli pattern się powtórzył, dopisz nowy occurrence do istniejącej lekcji:
**Occurrences**:
- 2026-04-25 — original case: <opis>
- 2026-05-02 — <new case>: <co się stało, czemu pattern się powtórzył mimo lekcji>
Plus jeśli reflection ujawnia nową fasetę patternu której wcześniej nie było:
Zanim zapiszesz, pokaż userowi:
Proponuję [nową lekcję | update lesson_X]:
═══════════════════════════════════
<draft content>
═══════════════════════════════════
Decyzja:
- ok / save → zapisuję
- skip / nie warto → pomijam
- change <co zmienić> → poprawiam
User decyduje. NIE zapisuj automatycznie.
Po zapisie nowej lekcji:
MEMORY.md- [<title>](<file>.md) — <hook keyword + jednozdaniowa esencja>Limity: MEMORY.md ≤ 200 linii / ≤ 10KB. Jeśli przekracza, zaproponuj /anthropic-skills:consolidate-memory.
Po zapisie potwierdź userowi:
✅ Saved: <path>
Index updated: <one-liner added/refreshed>
Active in next session via SessionStart hook (~/.claude/hooks/auto-load-lessons-kmr.sh).
DOBRA lekcja:
ZŁA lekcja (nie zapisuj):
Zanim invoke'uję ten skill, zadaj sobie:
full-audit v2: na końcu każdej fazy audytu (Faza 1/3/4/5/...) explicit wskazuje "now invoke lessons-update". Dodaj sentence do report sekcji "PLAN NAPRAWY" w full-audit.anthropic-skills:consolidate-memory: gdy MEMORY.md > 200 linii, ten skill prosi o uruchomienie consolidate-memory zamiast dalej dorzucać.session-summary: na koniec sesji może wywołać lessons-update jako ostatni step.Hook ładuje lessons na podstawie cwd. Ten skill MUSI zapisywać do tego samego folderu memory:
# Project memory lives at <repo>/memory/. Auto-load hook walks up from cwd
# looking for memory/MEMORY.md — this skill should write to that same dir.
PROJ_MEM=""
CUR="$(pwd)"
for _ in 1 2 3 4 5 6 7 8 9 10 11 12; do
if [ -f "$CUR/memory/MEMORY.md" ]; then
PROJ_MEM="$CUR/memory"
break
fi
[ "$CUR" = "/" ] && break
CUR="$(dirname "$CUR")"
done
For brand-new projects without memory/ yet: mkdir -p memory && touch memory/MEMORY.md plus seed a minimal index header. The unity-claude-template repo ships this skeleton.
Po skończonym workflow, podsumuj:
Lessons review:
- Reflected on N kandydatów
- Saved: M nowych / K updated existing
- Skipped: J (reasons listed)
MEMORY.md: <linecount> linii (limit 200), <KB>KB
Co poszło najlepiej w tej sesji: <jedna fraza>
Co najbardziej kosztowało: <jedna fraza>
To zamyka pętlę nauki — user widzi jakie lekcje wpadły do długoterminowej pamięci.
npx claudepluginhub marcin-elj/gamedev-toolkit-claude --plugin gamedev-toolkit-claudeGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.