From kto-ma-racje-toolkit
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
/kto-ma-racje-toolkit: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/:
# Cwd guard — wykryj projekt
PROJ_MEM="$HOME/.claude/projects/$(pwd | sed 's|/|-|g' | sed 's|^-||')/memory"
# fallback: kto-ma-racje
[ -d "$PROJ_MEM" ] || PROJ_MEM="$HOME/.claude/projects/D--Projects-kto-ma-racje/memory"
# 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:
# Detect project memory dir
CWD_LOWER=$(pwd | tr '[:upper:]' '[:lower:]')
case "$CWD_LOWER" in
*kto-ma-racje*) PROJ_MEM="$HOME/.claude/projects/D--Projects-kto-ma-racje/memory" ;;
*) PROJ_MEM="$HOME/.claude/projects/$(pwd | sed -e 's|^/c|C-|' -e 's|/|-|g' -e 's|^-||' -e 's|^C--|D--|')/memory" ;;
esac
Dla nowych projektów: jeśli memory dir nie istnieje, mkdir -p plus utworzenie pustego MEMORY.md indexu.
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/kto-ma-racje-toolkit --plugin kto-ma-racje-toolkitGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.