Przewiń do głównej treści
Metaprogramowanie w praktyce: tworzenie własnych komend Claude Code
  1. Artykuły/

Metaprogramowanie w praktyce: tworzenie własnych komend Claude Code

·658 słów·4 min·
Artur Tyloch
Autor
Artur Tyloch
AI | Startup | SaaS
Praca z Claude - Ten artykuł jest częścią serii.
Część : Ten Artykuł

Metaprogramowanie, czyli pisanie kodu, który tworzy inny kod, to jedna z bardziej satysfakcjonujących dziedzin programowania. Niedawno miałem okazję podziałać w tym obszarze, tworząc własne komendy dla asystenta AI Claude Code przy użyciu… jego samego.

Wyzwanie: jak nie tracić cennych pomysłów w trakcie kodowania?
#

Każdy zna ten stan: pełne skupienie, złożony problem, a w głowie nagle pojawia się genialne w swej prostocie rozwiązanie lub kluczowe spostrzeżenie. Zapisanie go przerywa pracę i wybija z rytmu. Zignorowanie go grozi utratą cennej myśli.

Podczas pracy nad moim blogiem w Hugo ten problem stał się szczególnie dotkliwy. Ciągłe zmiany gałęzi w Git i modyfikacje plików sprawiały, że gubiłem nie tylko same pomysły, ale przede wszystkim ich kontekst. Na której gałęzi byłem? Jakie pliki edytowałem? Bez tych informacji sama notatka często jest bezużyteczna.

Obserwacja: Kontekst jest równie ważny jak sama informacja.

Prostota przede wszystkim: dwie wyspecjalizowane komendy
#

Początkowo myślałem o jednej, potężnej komendzie, która robiłaby wszystko. Szybko jednak uznałem, że proste, wyspecjalizowane narzędzia sprawdzają się lepiej. Zgodnie z zasadą KISS (Keep It Simple, Stupid) powstały na początek dwie osobne komendy:

  1. /note: do błyskawicznego zapisywania notatek wraz z całym kontekstem (gałąź Git, czas, modyfikowane pliki).
  2. /blogdraft: do przekształcania zebranych notatek w gotowy szkic wpisu na bloga.

Obie świetnie ze sobą współpracują, a każda z nich robi jedną rzecz, ale robi ją dobrze.

Kod źródłowy komendy /note
#

To prosty prompt, który prosi AI o zapisanie notatki w odpowiednim formacie i miejscu, wzbogacając ją o dynamicznie pobrany kontekst.

Plik komendy /note:

---
description: Capture quick development notes with context
allowed-tools: Bash
---

# Development Note Capture

Your note: "$ARGUMENTS"

Current context:
- Time: !(date '+%H:%M')
- Branch: !(git branch --show-current)
- Modified files: !(git diff --name-only HEAD | head -3)
Please help me save this note to the development session file by
writing it with the current context to .devnotes/sessions/$(date '+%Y-%m-%d')-session.md 
in this format:

```
## [TIME] - DEV NOTE
**Branch**: [BRANCH]
**Files**: [FILES]  
**Note**: $ARGUMENTS (fixed typos) and any other relevant context information
```
!(mkdir -p .devnotes/sessions)

Jak działa komenda /note?
#

Ten kod jest bardzo ciekawy, ponieważ pokazuje dwie ciekawe funkcje komend Claude Code:

  • Wykonywanie poleceń Basha: Każda linia zaczynająca się od ! jest traktowana jako polecenie powłoki. Wartość, którą polecenie zwróci na standardowe wyjście, jest wstawiana w jego miejsce. W ten sposób dynamicznie pobiera aktualny czas (date), nazwę gałęzi (git branch) i listę zmodyfikowanych plików (git diff).
  • Przechwytywanie danych wejściowych: Zmienna $ARGUMENTS to specjalny placeholder, który przechowuje całą treść wpisaną przez użytkownika po nazwie komendy. Jeśli wpiszę /note To jest moja ważna notatka, to dokładnie ten tekst zostanie wstawiony w miejsce $ARGUMENTS.

Połączenie tych dwóch mechanizmów pozwala tworzyć niezwykle użyteczne, kontekstowe skrypty.

Zmienne i mechanizm cache
#

Podczas pracy nad skryptami na własnej skórze przekonałem się o pewnych osobliwościach Claude Code. Okazało się, że przekazywanie argumentów do skryptów nie zawsze działało tak, jak się spodziewałem. Metodą prób i błędów odkryłem, że Claude Code bardzo agresywnie cachuje definicje komend.

Ważne: Zmiany w kodzie komend wymagają restartu sesji z Claude Code. Inaczej narzędzie wciąż korzysta z poprzedniej, zapisanej w pamięci podręcznej wersji.

To nie błąd, a raczej zabezpieczenie, które zapobiega problemom z niestabilnymi, częściowo zmodyfikowanymi skryptami.

Rekurencja w praktyce
#

Praca nad komendami z pomocą samego AI tworzy skuteczną pętlę zwrotną. Prosiłem asystenta o pomoc w budowaniu narzędzi, które usprawniają interakcję z nim samym. To tak, jakby uczyć kogoś, jak może sam siebie efektywniej uczyć.

W ten sposób powstał samo-dokumentujący się cykl, w którym narzędzia pomagają dokumentować proces własnego tworzenia.

graph LR;
    A["Sesja deweloperska"]-->B["Użycie komendy /note"];
    B-->C["Zapisane notatki"];
    C-->D["Użycie komendy /blogdraft"];
    D-->E["Szkic wpisu na bloga"];
    E-->F["Dokumentacja procesu"];
    F-->A

Wnioski
#

Podsumowując, własne komendy (slash commands) w Claude Code to niezwykle potężne narzędzie. W praktyce są to reużywalne, parametryzowane prompty, które pozwalają zautomatyzować powtarzalne zadania i lepiej kontrolować przepływ pracy z asystentem AI. Zamiast za każdym razem tworzyć rozbudowane polecenia, możemy zamknąć całą logikę w prostym, wywoływanym jedną nazwą skrypcie. To skuteczny sposób na zwiększenie swojej produktywności i dostosowanie narzędzia do własnych, unikalnych potrzeb.

Praca z Claude - Ten artykuł jest częścią serii.
Część : Ten Artykuł

Czy ten artykuł był pomocny? Podziel się nim z innymi!