Devince
AI,  Development

Blog post, który pisze się sam

Date Published

Blog post ktory pisze sie sam

Pisanie blog postów zwykle zajmuje mi więcej czasu niż zbudowanie tego, o czym piszę. Sesja z Claude Code, w której powstaje coś fajnego — godzina, dwie. Opisanie tego na bloga? Kolejna godzina na tekst, potem formatowanie, SEO, generowanie zdjęcia, upload, publikacja. Postanowiłem to zautomatyzować.

Problem: sesja się kończy, blog post nie powstaje

Pracuję z Claude Code codziennie. Buduję API, piszę toole MCP, konfiguruję deploye. W każdej sesji jest materiał na wpis. Ale bariera wejścia jest wysoka — trzeba usiąść, przypomnieć sobie co się zrobiło, napisać tekst, sformatować markdown, wymyślić tytuł i meta description, wygenerować hero image, uploadować, opublikować. Większość sesji kończy się bez posta.

Rozwiązanie: skill /blog-by-session

Zbudowałem skill do Claude Code, który robi to za mnie. Wpisuję /blog-by-session i dostaję gotowy, opublikowany blog post w kilka minut. Cały pipeline w 5 krokach.

Krok 1: Analiza sesji

Skill działa w ramach sesji, więc Claude ma pełen kontekst rozmowy w pamięci. Nie trzeba parsować transkryptów ani logów. Skill instruuje Claude: przeanalizuj co zrobiliśmy, wyciągnij co zbudowano, jakie problemy rozwiązano, jakie decyzje podjęto i co było zaskakujące. Skup się na wątkach ciekawych dla czytelnika, nie na specyfice projektu.

Krok 2: Propozycje

Claude proponuje 3 warianty — krótki (800-1200 słów), średni (1500-2500) i długi (3000+). Każdy z tytułem, opisem i zarysem. Wybieram, daję feedback, mogę skorygować zakres. Ważne: to interakcja, nie automat — ja decyduję co wchodzi.

Krok 3: Pisanie w moim stylu

Tutaj najciekawsza część. Przed pisaniem Claude czyta profil stylu — plik writing-style-profile.md wyekstrahowany z moich 6 istniejących artykułów. Przeanalizowałem ton (bezpośredni, pewny siebie, konwersacyjny), strukturę (hook, kontekst, deep dive, takeaways, callback do hooka), signature moves (reality check moment, tabelki porównawcze, pytania retoryczne) i czego unikać (korporacyjny żargon, kontrastowa negacja).

Do tego plik sample-excerpts.md z 4 fragmentami moich tekstów jako wzorzec tonu i języka. Claude pisze nowy tekst, ale brzmi jak ja — bo wie jak piszę.

Krok 4: Humanizacja

Tekst przechodzi przez skill /humanize-text — 5-krokowy proces usuwania wzorców AI: zamiana buzzwordów, reguła 5/25 (mix długości zdań), zero-connector transitions, boosters zamiast hedgingu, idiomy.

Rozszerzyłem humanize-text o krok 6: Personal Style Overlay. Gdy calling skill dostarcza profil stylu, humanizer dodatkowo sprawdza czy tekst ma pytania retoryczne, reality check moment, callback do hooka i odpowiednią gęstość kolokwializmów. Jeśli tekst jest zbyt doskonały — dodaje niedoskonałość (aside, parenthetical, kolokwializm). Bo ludzie tak piszą.

Krok 5: Publikacja

Po zatwierdzeniu przeze mnie, skill robi 4 rzeczy:

  1. Zapisuje artykuł do Obsidian (vault BRAIN, katalog CONTENT/articles) z frontmatter
  2. Generuje hero image — wymyśla prompt tematyczny i wywołuje Replicate API z modelem flux-2-pro
  3. Uploaduje obraz przez MCP upload_media
  4. Publikuje post przez MCP create_post z tytułem, treścią, obrazem, kategoriami i SEO

Artykuł ląduje na devince.dev jako draft. Mogę go jeszcze podejrzeć w admin panelu zanim opublikuję. No i właśnie tyle — reszta dzieje się sama.

Jak powstał profil stylu

To była osobna praca. Przeczytałem 6 moich artykułów z Obsidian — od case study o SSTI w Drupalu, przez deep dive o security audit skill, po tekst o marce osobistej. Wyciągnąłem wzorce:

  • Zawsze zaczynam od hooka (problem albo zaskakujący wynik, nigdy "w tym artykule omówimy")
  • Mieszam krótkie punchline'y z długimi zdaniami
  • Używam pytań retorycznych do prowadzenia narracji
  • Podaję konkretne liczby zamiast ogólników
  • Konkluzja wraca do otwarcia

To wszystko trafiło do writing-style-profile.md i sample-excerpts.md w katalogu skilla. Claude czyta oba pliki przed każdym pisaniem.

Meta

Ten artykuł powstał dokładnie tym skillem. Wpisałem /blog-by-session, Claude przeanalizował sesję, zaproponował warianty, wybrałem krótki, dostałem tekst, przeszedł humanizację, zatwierdziłem — Obsidian, obraz, MCP, opublikowane.

Pipeline zamyka koło. Buduję rzeczy w sesji Claude Code, kończę sesję blog postem o tym co zbudowałem. Następna sesja zaczyna się od kolejnego tematu. Bariera wejścia spadła z godziny do kilku minut interakcji.