Praktyczny workflow dla developerów: Współdzielenie Skills i Agents między Codex, Claude Code i innymi narzędziami AI.
Coraz więcej developerów używa lokalnych agentów AI takich jak Codex, Claude Code czy OpenCode. Początkowo wszystko wygląda prosto, jednak problem pojawia się bardzo szybko, gdy zaczynamy budować własne Skills, role agentów i instrukcje projektowe.
W praktyce każde narzędzie chce przechowywać konfigurację w trochę innym miejscu. W efekcie developerzy zaczynają kopiować te same pliki między katalogami, utrzymywać kilka wersji tych samych promptów albo trzymać konfigurację w katalogu domowym użytkownika.
Dlatego w tym poradniku pokażę prosty i bardzo praktyczny wzorzec organizacji katalogów, dzięki któremu możesz współdzielić Skills między różnymi narzędziami AI bez kopiowania plików i bez trzymania konfiguracji w katalogu domowym użytkownika.
Jeżeli pracujesz z narzędziami typu Codex, Claude Code albo innymi agentami AI uruchamianymi z terminala, to bardzo szybko pojawia się praktyczny problem:
Współdzielenie Skills i Agents – Gdzie trzymać własne instrukcje, skille i role agentów, żeby nie kopiować ich między narzędziami?
Najprostszy i jednocześnie najbardziej praktyczny wzorzec wygląda tak:
- trzymasz źródło prawdy w katalogu
ai/, - wystawiasz je Codexowi przez lokalny katalog
.agents/, - wystawiasz je Claude Code przez lokalny katalog
.claude/, - wszystko jest zapisane w projekcie, a nie w katalogu domowym użytkownika.
Dzięki temu konfiguracja jest:
- przenośna,
- czytelna,
- wersjonowana w Git,
- współdzielona przez cały zespół,
- niezależna od lokalnego środowiska programisty.
Docelowa struktura współdzielenia Skills i Agents
Chcemy uzyskać taki układ:
my-project/
├── ai/
│ ├── agents/
│ │ ├── architect.md
│ │ ├── incident-commander.md
│ │ └── reviewer.md
│ └── skills/
│ ├── api-review/
│ │ └── SKILL.md
│ ├── frontend-qa/
│ │ └── SKILL.md
│ └── security-check/
│ └── SKILL.md
├── .agents/
│ ├── agents -> ../ai/agents
│ └── skills -> ../ai/skills
└── .claude/
├── agents -> ../ai/agents
└── skills -> ../ai/skills
Katalog ai/ zawiera prawdziwe pliki.
Katalogi .agents/ i .claude/ zawierają jedynie symlinki, czyli techniczne wskaźniki do tych samych plików.
W praktyce oznacza to, że ten sam skill, np.:
ai/skills/security-check/SKILL.md
może być widoczny jednocześnie dla Codexa i Claude Code.
Krok 1: utwórz katalog ai
Wejdź do katalogu projektu:
cd /sciezka/do/my-project
Utwórz katalogi na agentów i skille:
mkdir -p ai/agents
mkdir -p ai/skills
Po tym kroku masz:
ai/
├── agents/
└── skills/
Krok 2: dodaj przykładowych agentów
Agent to rola, w którą ma wejść model.
Dla zespołów IT najczęściej przydają się role związane z:
- architekturą,
- code review,
- bezpieczeństwem,
- debugowaniem,
- incident response.
Agent: Architect
touch ai/agents/architect.md
Przykładowa zawartość:
# Architect
Jesteś software architectem w tym projekcie.
Twoje zadania:
- oceniasz decyzje architektoniczne,
- wskazujesz ryzyka techniczne,
- proponujesz proste rozwiązania zamiast nadmiarowych abstrakcji,
- dbasz o granice modułów, kontrakty API i utrzymywalność kodu.
Zanim zaproponujesz zmianę, sprawdź istniejące wzorce w repozytorium.
Nie wprowadzaj nowych frameworków ani dużych refaktorów bez wyraźnego powodu.
Agent: Reviewer
touch ai/agents/reviewer.md
Przykładowa zawartość:
# Reviewer
Jesteś seniorem robiącym code review.
Priorytety:
- błędy logiczne,
- regresje,
- problemy bezpieczeństwa,
- brakujące testy,
- niezgodność ze stylem projektu,
- niepotrzebna złożoność.
Odpowiadaj jak w prawdziwym code review:
najpierw konkretne problemy, potem krótkie uzasadnienie i sugestia poprawki.
Agent: Incident Commander
touch ai/agents/incident-commander.md
Przykładowa zawartość:
# Incident Commander
Jesteś incident commanderem dla systemów produkcyjnych.
Pomagasz w:
- triage awarii,
- ustalaniu wpływu na użytkowników,
- analizie logów i metryk,
- formułowaniu hipotez,
- planowaniu rollbacku albo hotfixa,
- pisaniu krótkiego postmortem.
Najpierw stabilizuj system.
Dopiero potem szukaj pełnej przyczyny źródłowej.
Krok 3: dodaj przykładowe skille
Skill odpowiada na pytanie:
jak model ma wykonać konkretny typ pracy?
Różnica jest prosta:
- agent odpowiada na pytanie „kim ma być model?”,
- skill odpowiada na pytanie „jak ma wykonać zadanie?”.
Każdy skill trzymaj jako osobny katalog z plikiem SKILL.md.
Skill: API Review
mkdir -p ai/skills/api-review
touch ai/skills/api-review/SKILL.md
Przykładowa zawartość:
# API Review
Używaj tego skilla, gdy oceniasz endpointy REST, GraphQL albo kontrakty między usługami.
Sprawdź:
- czy nazwy endpointów i pól są spójne,
- czy statusy HTTP są poprawne,
- czy błędy mają stabilny format,
- czy API jest kompatybilne wstecznie,
- czy paginacja, filtrowanie i sortowanie są przewidywalne,
- czy dane wrażliwe nie wyciekają w odpowiedziach,
- czy kontrakt da się łatwo testować.
W odpowiedzi podaj konkretne ryzyka i przykładowe poprawki.
Skill: Security Check
mkdir -p ai/skills/security-check
touch ai/skills/security-check/SKILL.md
Przykładowa zawartość:
# Security Check
Używaj tego skilla przy zmianach związanych z autoryzacją, logowaniem,
danymi użytkownika, integracjami zewnętrznymi i konfiguracją infrastruktury.
Sprawdź:
- brakujące kontrole uprawnień,
- możliwość IDOR,
- niebezpieczne logowanie sekretów,
- zbyt szerokie tokeny lub scope'y,
- podatności na injection,
- brak walidacji danych wejściowych,
- problemy z konfiguracją CORS,
- ryzyka przy webhookach i callbackach.
Nie ograniczaj się do ogólnych porad.
Odnoś się do konkretnych plików, funkcji i przepływów danych.
Skill: Frontend QA
mkdir -p ai/skills/frontend-qa
touch ai/skills/frontend-qa/SKILL.md
Przykładowa zawartość:
# Frontend QA
Używaj tego skilla przy sprawdzaniu interfejsu użytkownika.
Sprawdź:
- responsywność na mobile i desktopie,
- czy tekst nie wychodzi poza przyciski i karty,
- czy stany loading, empty, error i success są obsłużone,
- czy formularze mają walidację i czytelne komunikaty,
- czy elementy interaktywne są dostępne z klawiatury,
- czy hierarchia wizualna pasuje do funkcji ekranu,
- czy UI nie wygląda jak przypadkowy landing page,
gdy powinien być narzędziem pracy.
Jeżeli projekt ma istniejący design system,
trzymaj się jego wzorców.
Chcesz więcej takich workflowów AI dla developerów?
Pobrałem i opisałem praktyczne wzorce pracy z agentami AI, Claude Code, Codexem i automatyzacją developmentu w darmowym poradniku: https://ewolucjadevelopera.pl/poradnik/

Krok 4: utwórz lokalne katalogi dla narzędzi
Teraz tworzymy lokalne katalogi, z których mogą korzystać narzędzia uruchamiane w projekcie.
Dla Codexa:
mkdir -p .agents
Dla Claude Code:
mkdir -p .claude
To nadal są katalogi lokalne w projekcie.
Nie konfigurujemy niczego w:
~/.claude
~/.codex
ani innych katalogach domowych użytkownika.
Krok 5: dodaj symlinki dla Codexa
Podepnij ai/agents i ai/skills do .agents:
ln -sfn ../ai/agents .agents/agents
ln -sfn ../ai/skills .agents/skills
Co oznaczają te flagi?
ln— tworzy link,-s— tworzy symlink,-f— nadpisuje istniejący link,-n— traktuje istniejący symlink jak plik.
Po tym kroku:
.agents/agents -> ../ai/agents
.agents/skills -> ../ai/skills
Krok 6: dodaj symlinki dla Claude Code
Claude Code potrafi korzystać z lokalnego katalogu .claude w projekcie.
Podpinamy do niego te same katalogi źródłowe:
ln -sfn ../ai/agents .claude/agents
ln -sfn ../ai/skills .claude/skills
Po tym kroku Claude Code widzi dokładnie te same agenty i skille, które widzi Codex.
Nie kopiujemy plików.
Oba narzędzia wskazują na to samo źródło:
ai/agents
ai/skills
Krok 7: sprawdź konfigurację Codexa
Uruchom:
ls -la .agents
Powinieneś zobaczyć:
agents -> ../ai/agents
skills -> ../ai/skills
Sprawdź też zawartość:
ls .agents/agents
ls .agents/skills
Krok 8: sprawdź konfigurację Claude Code
Uruchom:
ls -la .claude
Powinieneś zobaczyć:
agents -> ../ai/agents
skills -> ../ai/skills
Sprawdź zawartość:
ls .claude/agents
ls .claude/skills
Wynik powinien być taki sam jak dla:
ls .agents/agents
ls .agents/skills
To jest sedno całego wzorca:
- Codex i Claude Code mają osobne katalogi wejściowe,
- ale realnie czytają te same pliki.
A co z Windowsem?
Na Windowsie również można używać symlinków.
W PowerShell:
New-Item -ItemType SymbolicLink -Path ".agents\agents" -Target "..\ai\agents"
New-Item -ItemType SymbolicLink -Path ".agents\skills" -Target "..\ai\skills"
New-Item -ItemType SymbolicLink -Path ".claude\agents" -Target "..\ai\agents"
New-Item -ItemType SymbolicLink -Path ".claude\skills" -Target "..\ai\skills"
W części konfiguracji może być wymagane:
- uruchomienie terminala jako Administrator,
- albo włączenie Developer Mode w Windows.
Dlaczego taki układ ma sens?
Ten wzorzec ma kilka bardzo praktycznych zalet.
1. ai/ staje się źródłem prawdy
Każdy w projekcie wie, gdzie znajdują się:
- role agentów,
- instrukcje,
- skille,
- workflowy AI.
2. Narzędzia dostają warstwę kompatybilności
Codex może czytać z:
.agents/
Claude Code może czytać z:
.claude/
Ale oba katalogi wskazują na to samo źródło.
3. Wszystko jest lokalne dla projektu
Nie trzeba zakładać, że każdy developer ma identycznie skonfigurowany katalog domowy.
Repozytorium zawiera pełną konfigurację pracy z AI.
4. Można to normalnie wersjonować w Git
Agenty i skille stają się częścią projektu:
- reviewowane,
- rozwijane,
- dokumentowane,
- utrzymywane przez zespół.
Dokładnie tak samo jak dokumentacja techniczna czy tooling developerski.
Co commitować do Gita?
Najczęściej warto commitować:
ai/agents/
ai/skills/
.agents/
.claude/
Git normalnie obsługuje symlinki.
Po sklonowaniu repozytorium na macOS albo Linuksie wszystko powinno działać od razu.
Warto tylko upewnić się, że .gitignore nie wyklucza .agents ani .claude.
Sprawdź:
cat .gitignore
Jeżeli .agents jest ignorowane:
!.agents/
!.agents/agents
!.agents/skills
!.claude/
!.claude/agents
!.claude/skills
Jeżeli w .claude trzymasz też lokalne ustawienia prywatne, np.:
settings.local.json
to nie commituj ich automatycznie.
Wtedy możesz zostawić:
.claude/*
!.claude/
!.claude/agents
!.claude/skills
Współdzielenie Skills i Agents – Najważniejsza zasada
Edytuj prawdziwe pliki tutaj:
ai/agents
ai/skills
Katalogi .agents i .claude traktuj wyłącznie jako techniczne wejścia dla narzędzi.
W praktyce oznacza to prosty podział:
ai/— miejsce, gdzie zespół utrzymuje instrukcje,.agents/— sposób, w jaki znajduje je Codex,.claude/— sposób, w jaki znajduje je Claude Code.
Jak to wygląda w praktyce? Przykład z produkcji
Tomasz Kowalski z firmy Sembot opisał dokładnie ten wzorzec w praktyce:
„Podeszliśmy do tego z perspektywy: rozbijmy ten kod na kawałeczki, czyli weryfikujmy to pod względem różnych kryteriów, wykorzystując LLMa do tego, żeby ten kod zweryfikować. Napisaliśmy sobie skille pod różne weryfikatory — spójności kodu, design systemu, podatności zero day, poprawności formularzy. Tych weryfikatorów mamy 18. Jeżeli jakikolwiek weryfikator coś znajdzie, zakłada w Gicie komentarz, opisuje problem — tak jak normalny developer.”
Podcast z Tomaszem: https://www.youtube.com/watch?v=8T-nfyxu7g4&t=1s
Podsumowanie
Jeżeli pracujesz z więcej niż jednym agentem AI, bardzo szybko pojawia się problem duplikowania promptów, skillów i instrukcji projektowych.
Trzymanie wszystkiego w:
ai/
i wystawianie tego przez symlinki do:
.agents/
.claude/
daje prosty, przenośny i zespołowy workflow.
To mały detal organizacyjny, ale w praktyce bardzo szybko porządkuje pracę z AI w realnych projektach developerskich.


