Claude Code · skill writing-style · instrukcja · sierpień 2026
U Piotra drafty maili wychodzą dziś prawie bez poprawek. Ta strona pokazuje dokładnie, z czego to się zbudowało i jak dojść do tego samego szybciej.
Jeżeli Twój skill nadal wymaga poprawek, to prawie zawsze dlatego, że powstał z opisu („piszę zwięźle i ciepło") zamiast z pomiaru. Przymiotnik nie zmienia ani jednego zdania w drafcie. Zmienia je zasada wyciągnięta z konkretnej różnicy.
Materiał treningowy już masz i leży w Twojej skrzynce. Wysłane maile to Twój głos w czystej postaci. Jeszcze cenniejsze są pary: draft, który dostałaś, i wersja, którą faktycznie wysłałaś po poprawkach. Ta różnica to dokładnie to, czego model nie wie.
Jedna zasada = działanie plus powód plus wyzwalacz. „Rób X zamiast Y", pod spodem Why i How to apply. Zasada bez powodu nie generalizuje się na nową sytuację, a zasada bez wyzwalacza nie odpala we właściwym momencie.
Pętla po każdej wysyłce, nie jednorazowy setup. U nas to 21 rund rozłożonych na 12 dni pracy. Każda runda to 1-3 nowe zasady. Bez pętli skill zamarza na dniu pierwszym i po miesiącu jest tak samo nietrafiony jak na starcie.
Każde „nie" na tej liście odpowiada za konkretną klasę poprawek, które musisz robić ręcznie. Reszta strony to instrukcja, jak zamienić te „nie" na „tak".
To nie był plan, tylko seria potknięć. Dlatego warto ją znać: każda faza powstała dlatego, że poprzednia przestała działać, a Ty możesz wejść od razu na koniec.
Realistyczny plan dla Ciebie: dwie sesje na start, potem 8-12 wysyłek z pętlą. Przy normalnej korespondencji to dwa, trzy tygodnie do momentu, w którym poprawki stają się rzadkie.
Wszystkie są przenośne — nie zależą od tego, w jakim języku piszesz ani do kogo. Pierwsze trzy odpowiadają za większość różnicy między draftem do poprawki a draftem do wysłania.
Model nie potrafi zoperacjonalizować przymiotnika. Potrafi odtworzyć konkretną zamianę, jeśli wie, kiedy ją stosować.
„Ciepło, ale profesjonalnie" nie zmienia niczego w drafcie. Zmienia coś dopiero: „w mailu do klienta zaczynaj od jednego zdania kontekstu zamiast od podziękowania za wiadomość". Źródłem takich zdań są wyłącznie różnice: co napisał Claude, a co wysłałaś Ty.
Powód pozwala modelowi zastosować zasadę w sytuacji, której nie przewidziałaś. Wyzwalacz decyduje, czy zasada w ogóle odpali.
Sam zakaz („nie używaj wykrzykników") zostawia pustkę, którą model wypełnia stylem domyślnym. Zapis pozytywny mówi, czym zastąpić. Ta trójka — działanie, powód, wyzwalacz — to jedyny format, jakiego używamy, i wszystkie 308 zasad go trzyma.
Zasada z nazwiskiem w treści pasuje do jednego przypadku, który już się wydarzył, i do niczego więcej.
Kiedy wychodzi reguła „nie pisz tak do Kasi z tamtej firmy", trzeba ją podnieść o poziom: „w pierwszym kontakcie z osobą, której nie znasz, nie odwołuj się do wspólnych znajomych". Nazwiska, firmy i daty zostają jako przykład pod zasadą, nigdy w jej treści.
Kontekst jest skończony. Wczytuje się tylko ten plik, który dotyczy tego, co właśnie piszesz.
Krótki SKILL.md trzyma to, co obowiązuje zawsze, i tabelę „jeśli piszesz X, wczytaj plik X". Reszta siedzi w osobnych plikach i nie zajmuje miejsca, dopóki nie jest potrzebna. Dzięki temu skill może mieć 3000 linii i dalej działać.
Claude decyduje o wczytaniu skilla na podstawie pola description. Jeśli Twoje sformułowanie tam nie pada, skill się nie ładuje.
W description ma być lista realnych fraz, których używasz: „odpisz", „napisz maila", „draft email", „reply to", „napisz wiadomość". Warto wiedzieć, że opis jest w liście skilli przycinany do 1536 znaków, więc najważniejsze frazy dajesz na początek.
Każdy dodatkowy krok między draftem a wysłaniem to miejsce, w którym pętla się urywa.
U nas draft nie jest pokazywany w czacie do zatwierdzenia — leci prosto do wersji roboczej w Gmailu. Poprawiasz na miejscu i wysyłasz. Dzięki temu różnica draft/wysłane jest zapisana w jednym miejscu i pętla ma czym się karmić.
Poniżej sześć gotowych promptów. Wklejasz je po kolei, jeden na raz, czekając na wynik. Prompty są po angielsku, bo pliki skilla piszemy po angielsku — Claude i tak pisze maile po polsku, dokładnie tak jak u Piotra. Przykłady zdań w tych plikach zostają po polsku, w oryginale.
Read the last 60 emails I sent, newest first, skipping one-line logistics replies. Do not ask me how I write, and do not use anything I have told you about my style — I want you to measure it from the messages themselves.
For each email record: recipient class (client, colleague, friend, vendor, institution), language, word count, number of paragraphs, the exact greeting, the exact sign-off, whether it ends with a question or an ask, punctuation habits (dashes, ellipses, exclamation marks, emoji), and any phrase that repeats. Then report the 3 to 5 recipient classes I actually write to, and for each one: median length, the greeting and sign-off inventory with frequencies, the sentence-length range, and 5 verbatim sentences that are most typical of me. Flag anything that varies too much to become a rule. Table plus verbatim examples. Write nothing to disk yet.
Now find the pairs, which are the highest-signal training data I have. Search my mailbox for cases where a first version exists and a different final version went out: drafts written for me that I edited before sending, texts someone else wrote that I rewrote, and threads where I sent a corrected version of my own earlier message.
For each pair give me three columns: what the first version said, what I changed it to, and the smallest general rule that would have produced my version the first time. The rule must not name a person, a company, or a date — if it does, raise it one level until it is about a class of recipient or a class of message. Sort by how often the same change repeats, because a change I made once is noise and a change I made five times is a rule.
Create the personal skill at ~/.claude/skills/writing-style/SKILL.md plus one references file per channel I actually use, based only on what you measured in the two previous steps. Nothing invented, nothing from general advice about business writing.
SKILL.md gets YAML frontmatter with name and a description listing my real trigger phrases in Polish and English, most important first. Then the iron rules that hold in every channel, with rule number one being: read this skill before drafting anything, every time. Then a routing table mapping each kind of message to its references file. Cap SKILL.md at 200 lines and every references file at 250. Every rule takes exactly this shape: a line saying do X instead of Y, then a Why line stating the reason at the level of a class of message, then a How to apply line stating the trigger. No person, company or date inside a rule statement — those go under it as examples. Put my own verbatim sentences under the rules they illustrate.
Now create a second skill at ~/.claude/skills/internalize/SKILL.md that I will run after sending a message. Its job: fetch the version that actually went out from my mailbox, diff it against the draft you produced, and for each difference infer the general rule that would have produced my version first time.
It writes those rules into the matching references file, merging into an existing rule when one is close instead of appending a near-duplicate. If a file goes over 250 lines it splits the most self-contained topic into a new references file and fixes the routing table in the same run. It never asks for approval before writing, and it finishes by listing one line per rule: what changed and why. Give its description the trigger words "internalize", "ucz się z tego", "zapamiętaj na przyszłość".
Dostęp do skrzynki jest wart zachodu jednorazowo, bo bez niego pętla po wysyłce wymaga wklejania wysłanej wersji ręcznie za każdym razem.
Jak zaczyna maile, czym je kończy, jak stawia prośbę, kiedy pisze krótko. To jest jego głos zbudowany na jego korespondencji. Skopiowany daje drafty, które brzmią jak on — czyli dokładnie ten problem, który próbujesz rozwiązać.
Struktura skilla, limity plików, tabela routingu, cały mechanizm uczenia i reguły obsługi Gmaila. Nie mają nic wspólnego z tym, jak piszesz — a kosztowały kilkanaście rund poprawek, żeby je znaleźć.
Jeśli piszesz szybko i gubisz ogonki, dołóż jeszcze jedną: w każdym mailu diakrytyki mają być uzupełnione za Ciebie. Tania zasada, a widać ją w pierwszym zdaniu.
Create references/gmail-api.md in the writing-style skill and put the technical rules below into it, each in the standard shape: the rule, then Why, then How to apply. These are mechanics, not voice, so take them as given rather than deriving them from my mailbox. Add a row for this file to the routing table with the trigger: any task that creates or updates an email draft through the API.
The rules: build every body as multipart HTML and never as plain text, because plain text hard-wraps at 76 columns and breaks both the rendering and the collapsing of quoted history. Set no font family, size or line height, and separate paragraphs with a single blank line. Include the full quoted thread in every reply, carried over in its original HTML rather than re-rendered. When editing an existing draft, replace only the new-content section and never rebuild the message from the body string, because a rebuild silently drops attachments and the quote. Select the reply target from real messages only, excluding drafts. Append the signature only to messages written from scratch, never to a reply. After writing a draft, assert that a text/html part exists and contains the quoted thread. Create and update drafts freely, never send.
Pierwsza wersja skilla trafia może w połowę. Reszta bierze się z tego, co poprawiasz — pod warunkiem, że każda poprawka zostaje zapisana jako zasada, a nie tylko wykonana.
I just sent that one. Fetch the version that actually went out, diff it against your draft, and for every difference infer the general rule that would have produced my version first time. Write the rules into the matching references file, merging where a close rule already exists. Then list one line per rule: what changed and why.
Gdy masz już zainstalowany skill z promptu 4, wystarczy napisać „internalize" — reszta jest w skillu.
Poprawka jest wykonana, ale nigdzie nie zapisana. Ta sama zmiana wróci przy następnym mailu tej samej klasy, i przy kolejnym. Po miesiącu masz to samo poczucie, że „prawie dobrze, ale zawsze coś".
Poprawka zostaje uogólniona i wpisana do pliku kanału. Ta klasa zmian znika z następnych draftów. Liczba poprawek na maila spada z każdą rundą i to jest jedyny sensowny miernik postępu.
Poniżej realny rozkład 308 zasad na pliki kanałów. Sześć plików na górze zbiera połowę wszystkiego, a kilkanaście dalszych ma po kilka zasad, bo tyle wystarczyło.
Te cztery reguły siedzą w skillu z promptu 4, więc pilnują się same. Warto jednak wiedzieć, po co tam są, bo pierwszy odruch przy każdej z nich jest odwrotny.
Każdy z tych ruchów wygląda na skrót, a kończy się skillem, który dalej wymaga poprawek — tyle że teraz nie wiadomo dlaczego.
Liczby o skillu Piotra pochodzą z jego plików: 308 zasad w 23 plikach kanałów, 21 rund uczenia w 12 dniach, 106 wcześniejszych plików z notatkami. Twierdzenia o działaniu Claude Code pochodzą z dokumentacji.