Files
shopPRO/docs/CARL_WORKFLOW.md
2026-03-13 00:54:48 +01:00

5.3 KiB
Raw Permalink Blame History

CARL — Dynamiczne reguły dla Claude Code

CARL (Context Augmentation & Reinforcement Layer) to system wstrzykiwania reguł do Claude Code — reguły ładują się tylko gdy są potrzebne, zamiast zapychać kontekst sesji regułami, których akurat nie używasz.

Zainstalowany globalnie w ~/.carl/.


Jak to działa

Claude Code ma ograniczony kontekst sesji. CARL rozwiązuje problem "zbyt wielu reguł na raz":

  • Domeny — zestawy reguł uruchamiane automatycznie przez słowa kluczowe w prompcie
  • Star-commands (*dev, *review, itp.) — tryby uruchamiane ręcznie przez wpisanie *nazwatrybe
  • Global — reguły zawsze aktywne (minimalne, uniwersalne)

Efekt: zamiast 50 reguł na każdą sesję, Claude dostaje 510 tych, które są relevantne teraz.


Struktura plików

~/.carl/                  # Globalna konfiguracja (wszystkie projekty)
├── manifest              # Rejestr domen (stany + słowa kluczowe)
├── global                # Reguły zawsze aktywne
├── commands              # Definicje star-commands
├── context               # Reguły kontekstowe (rozmiar okna kontekstu)
└── {nazwa-domeny}        # Twoja domena (bez rozszerzenia!)

.carl/                    # Konfiguracja lokalna (tylko ten projekt)
└── {nazwa-domeny}        # Reguły specyficzne dla shopPRO

Ważne: Nazwy plików domen — małe litery, bez rozszerzenia (phpdev, nie phpdev.carl).


Dostępne star-commands

Wpisz *nazwa na początku wiadomości lub w środku promptu, żeby przełączyć tryb:

Komenda Tryb Kiedy używać
*dev Development Implementacja, szybkie zmiany bez tłumaczeń
*review Code review Przegląd kodu, bezpieczeństwo, edge cases
*brief Zwięzłe odpowiedzi Tylko bullet points, bez elaboracji
*plan Planowanie Eksploracja przed implementacją, opcje + tradeoffs
*discuss Dyskusja Burza mózgów, wiele podejść, bez skakania do kodu
*debug Debugowanie Systematyczna diagnoza, root cause analysis
*explain Wyjaśnianie Nauka, koncepty, stopniowe budowanie wiedzy
*carl Pomoc CARL Zarządzanie domenami, konfiguracja, pytania o CARL

Przykłady

*dev Napraw błąd w summaryView() gdzie duplikuje zamówienia

*review Przejrzyj OrderRepository::createFromBasket pod kątem bezpieczeństwa

*brief Co robi CacheHandler::deletePattern()

*plan Chcę dodać system rabatów do koszyka

*discuss Czy lepiej rozdzielić ApiloRepository na sync i admin?

Tworzenie własnej domeny (projekt)

Kiedy masz zestaw reguł specyficznych dla shopPRO, utwórz lokalną domenę w .carl/.

Krok 1 — Plik domeny

Utwórz .carl/shoppro (bez rozszerzenia):

# shopPRO Domain Rules
SHOPPRO_RULE_0=PHP < 8.0 — nie używaj match, named args, union types, str_contains
SHOPPRO_RULE_1=ORM: Medoo ($mdb), zawsze prepared statements, nigdy string concatenation
SHOPPRO_RULE_2=Namespace \Domain\ mapuje do autoload/Domain/ (D uppercase, a lowercase)
SHOPPRO_RULE_3=Testy: PHPUnit 9.6, pattern AAA, mock Medoo przez createMock(\medoo::class)
SHOPPRO_RULE_4=Cache: CacheHandler::deletePattern() do kasowania, TTL 86400, dane serialized

Krok 2 — Wpis w manifeście

Dodaj do .carl/manifest (lub ~/.carl/manifest jeśli globalna):

SHOPPRO_STATE=active
SHOPPRO_RECALL=shopPRO, medoo, zamówienie, koszyk, OrderRepository, Domain
SHOPPRO_EXCLUDE=
SHOPPRO_ALWAYS_ON=false
  • RECALL — słowa kluczowe które triggerują domenę (przecinek = OR)
  • ALWAYS_ON=true — ładuj przy każdym prompcie (tylko dla naprawdę universalnych reguł)
  • EXCLUDE — słowa które blokują domenę mimo dopasowania RECALL

Krok 3 — Weryfikacja

Wpisz *carl w czacie i zapytaj: "Pokaż mi aktywne domeny".


Zarządzanie przez Claude

Zamiast ręcznie edytować pliki, możesz zarządzać CARL przez Claude:

*carl Dodaj domenę dla testów PHPUnit w shopPRO

*carl Pokaż moją aktualną konfigurację

*carl Wyłącz domenę SHOPPRO tymczasowo

*carl Dodaj regułę do domeny dev: zawsze uruchamiaj ./test.ps1 po zmianach

Claude użyje skills carl:manager / carl:tasks:* do operacji na plikach.


Integracja z PAUL

CARL i PAUL działają uzupełniająco:

  • PAUL strukturyzuje proces (plan → apply → unify)
  • CARL dostarcza reguły domenowe wtedy gdy są potrzebne

Praktycznie: podczas /paul:apply możesz prefixować *dev żeby Claude skupił się na kodzie bez elaboracji. Podczas /paul:discuss*discuss żeby dostać pełną analizę opcji.


Dobre praktyki

  • RECALL słowa — używaj konkretnych, rzadkich słów żeby unikać false triggers. medoo lepsze niż php.
  • Mało reguł per domena — 58 reguł to optymalnie. Więcej = wolniejsze matching, więcej tokenów.
  • ALWAYS_ON=false domyślnie — ALWAYS_ON=true tylko dla reguł naprawdę universalnych (jak GLOBAL).
  • Star-commands przy dużych taskach — na początku sesji wpisz *dev lub *plan żeby ustawić tryb.
  • Nie duplikuj CLAUDE.md — CARL nie zastępuje CLAUDE.md. CLAUDE.md to architektura projektu. CARL to reguły zachowania Claude.

Docs: 2026-03-12