DEV Community

Cover image for Yapay Zeka Aracını 10 Farklı IDE'de Çalıştırmaya Dönüştürme
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Yapay Zeka Aracını 10 Farklı IDE'de Çalıştırmaya Dönüştürme

Özetle (TL;DR)

Bir yapay zeka ajan dosyasını 3 adımda 10 IDE'ye dönüştürün:

  1. YAML ön kısmını get_field(), get_body() ve to_kebab() bash fonksiyonlarıyla ayrıştırın
  2. convert.sh ile araca özel formatlara dönüştürün (Claude Code .md, Cursor .mdc, Aider CONVENTIONS.md, Windsurf .windsurfrules)
  3. install.sh ile doğru yollara kurun. Bir kez yazın, otomatik dönüştürün, her yere dağıtın.

Tek bir ajan dosyası. On IDE. The Agency projesinin tek bir Markdown dosyasını Claude Code, Cursor, Aider, Windsurf, GitHub Copilot ve 6'dan fazla diğer araçta çalışacak şekilde nasıl dönüştürdüğünü öğrenin.

Apidog'u bugün deneyin

Bir yapay zeka ajanı yazıyorsunuz. Şimdi onu şunlarda kullanılabilir hale getirmek istiyorsunuz:

  • Claude Code (~/.claude/agents/ içindeki .md dosyaları)
  • Cursor (.cursor/rules/ içindeki .mdc dosyaları)
  • Aider (proje kök dizinindeki tek CONVENTIONS.md dosyası)
  • Windsurf (tek .windsurfrules dosyası)
  • GitHub Copilot (~/.github/agents/ içindeki .md dosyaları)
  • Ve 5'ten fazla araç

10 farklı sürüm mü yazarsınız? Hayır. Bir kez yazarsınız, otomatik olarak dönüştürürsünüz.

The Agency projesi bunu iki bash betiğiyle çözüyor:

  • convert.sh — Ajan dosyalarını araca özel formatlara dönüştürür
  • install.sh — Dönüştürülmüş dosyaları doğru yollara kopyalar

Bu rehberde, bash ile YAML ön kısım ayrıştırmasını, gövde çıkarmayı ve her araca özgü dönüştürme pipeline'larını adım adım nasıl yazacağınızı göreceksiniz.

💡 Apidog entegrasyonuyla API geliştirme iş akışları için ajanlar dağıtıyor veya özel test ajanları oluşturuyor olun, dönüştürme sistemi bunların ekibinizin tercih ettiği tüm IDE'lerde çalışmasını sağlar.

Ajan Formatı

Her ajan dosyası aynı yapıyı kullanır:

---
name: API Tester
description: "Specialized in API testing with Apidog, Postman, and automated validation"
color: purple
emoji: 🧪
vibe: Breaks APIs before users do.
---

# API Tester Agent Personality

You are **API Tester**, an expert in API validation...

## Identity & Memory
- Role: API testing specialist
- Personality: Thorough, skeptical, evidence-focused
...
Enter fullscreen mode Exit fullscreen mode

İki bölüm var:

  1. Ön Kısım (Frontmatter)--- ayırıcıları arasındaki YAML meta verileri
  2. Gövde — İkinci ---'den sonraki Markdown içeriği

Dönüştürmede amaç: Ön kısım alanlarını çıkar, gövdeyi hedef formata dönüştür, doğru yola yaz.


Adım 1: YAML Ön Kısmını Bash ile Ayrıştırın

parse-frontmatter.sh dosyasını oluşturun:

#!/usr/bin/env bash
#
# parse-frontmatter.sh — Ajan dosyalarından YAML ön kısım alanlarını çıkarır
#

set -euo pipefail

get_field() {
  local field="$1" file="$2"
  awk -v f="$field" '
    /^---$/ { fm++; next }
    fm == 1 && $0 ~ "^" f ": " {
      sub("^" f ": ", "");
      print;
      exit
    }
  ' "$file"
}

get_body() {
  awk 'BEGIN{fm=0} /^---$/{fm++; next} fm>=2{print}' "$1"
}

to_kebab() {
  echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g'
}

if [[ "${1:-}" == "--demo" ]]; then
  AGENT_FILE="${2:-test-agent.md}"
  echo "Dosya: $AGENT_FILE"
  echo "İsim: $(get_field 'name' "$AGENT_FILE")"
  echo "Açıklama: $(get_field 'description' "$AGENT_FILE")"
  echo "Slug: $(to_kebab "$(get_field 'name' "$AGENT_FILE")")"
  echo "---"
  echo "Gövde önizlemesi:"
  get_body "$AGENT_FILE" | head -10
fi
Enter fullscreen mode Exit fullscreen mode

Test etmek için:

chmod +x parse-frontmatter.sh
./parse-frontmatter.sh --demo engineering-backend-architect.md
Enter fullscreen mode Exit fullscreen mode

Beklenen çıktı:

Dosya: engineering-backend-architect.md
İsim: Backend Architect
Açıklama: Senior backend architect specializing in scalable system design...
Slug: backend-architect
---
Gövde önizlemesi:
# Backend Architect Agent Personality

You are **Backend Architect**, a senior backend architect...
Enter fullscreen mode Exit fullscreen mode

Adım 2: Claude Code Formatına Dönüştürün

Claude Code ham .md dosyasını kullanır. Sadece kopyalayın:

convert_claude_code() {
  local agent_file="$1"
  local dest="$HOME/.claude/agents/"
  mkdir -p "$dest"
  cp "$agent_file" "$dest/"
  echo "  Claude Code: $(basename "$agent_file")"
}
Enter fullscreen mode Exit fullscreen mode

Adım 3: Cursor Formatına Dönüştürün

Cursor, ön kısmında bir description alanı olan .mdc dosyası ister:

convert_cursor() {
  local agent_file="$1"
  local name=$(get_field 'name' "$agent_file")
  local description=$(get_field 'description' "$agent_file")
  local slug=$(to_kebab "$name")
  local body=$(get_body "$agent_file")

  local output=".cursor/rules/agency-${slug}.mdc"
  mkdir -p "$(dirname "$output")"

  cat > "$output" << EOF
---
description: Agency agent: $description
---
$body
EOF

  echo "  Cursor: agency-${slug}.mdc"
}
Enter fullscreen mode Exit fullscreen mode

Adım 4: Aider Formatına Dönüştürün

Aider, tüm ajanları tek bir CONVENTIONS.md dosyasında toplar:

convert_aider() {
  local agent_file="$1"
  local output="CONVENTIONS.md"

  echo "" >> "$output"
  echo "---" >> "$output"
  echo "" >> "$output"
  cat "$agent_file" >> "$output"

  echo "  Aider: $output dosyasına eklendi"
}
Enter fullscreen mode Exit fullscreen mode

Tüm ajan dosyalarını birleştirmek için:

build_aider() {
  local output="CONVENTIONS.md"
  echo "# Aider için Agency Ajanları" > "$output"
  echo "" >> "$output"
  echo "Bu dosya, Aider entegrasyonu için tüm Agency ajanlarını içerir." >> "$output"
  echo "" >> "$output"

  for agent_file in engineering/*.md design/*.md testing/*.md; do
    convert_aider "$agent_file"
  done
}
Enter fullscreen mode Exit fullscreen mode

Adım 5: Windsurf Formatına Dönüştürün

Windsurf, Aider gibi tek bir .windsurfrules dosyası ister:

convert_windsurf() {
  local agent_file="$1"
  local output=".windsurfrules"

  echo "" >> "$output"
  echo "---" >> "$output"
  echo "" >> "$output"
  cat "$agent_file" >> "$output"

  echo "  Windsurf: $output dosyasına eklendi"
}
Enter fullscreen mode Exit fullscreen mode

Adım 6: Antigravity Formatına Dönüştürün

Antigravity (Gemini), SKILL.md adında alt dizin kullanır:

convert_antigravity() {
  local agent_file="$1"
  local name=$(get_field 'name' "$agent_file")
  local slug=$(to_kebab "$name")
  local output="integrations/antigravity/skills/agency-${slug}/SKILL.md"

  mkdir -p "$(dirname "$output")"

  cat > "$output" << EOF
# Agency Ajanı: $name

$(get_body "$agent_file")
EOF

  echo "  Antigravity: agency-${slug}/SKILL.md"
}
Enter fullscreen mode Exit fullscreen mode

Adım 7: OpenClaw Formatına Dönüştürün

OpenClaw, ajan başına üç dosya üretir:

convert_openclaw() {
  local agent_file="$1"
  local name=$(get_field 'name' "$agent_file")
  local description=$(get_field 'description' "$agent_file")
  local slug=$(to_kebab "$name")
  local body=$(get_body "$agent_file")

  local output_dir="integrations/openclaw/agency-${slug}"
  mkdir -p "$output_dir"

  # SOUL.md - Ana ajan tanımı
  cat > "$output_dir/SOUL.md" << EOF
# $name

$description

---

$body
EOF

  # AGENTS.md - Ajan yetenekleri
  cat > "$output_dir/AGENTS.md" << EOF
# Ajan Yetenekleri: $name

- Alanda uzmanlaşmış uzmanlık
- Teslimat odaklı çıktı
- Tanımlanmış başarı metrikleri

Tam tanım için SOUL.md'ye bakın.
EOF

  # IDENTITY.md - Ajan kimliği
  cat > "$output_dir/IDENTITY.md" << EOF
# Kimlik: $name

- İsim: $name
- Açıklama: $description
- Kaynak: The Agency (agency-agents deposu)
EOF

  echo "  OpenClaw: agency-${slug}/"
}
Enter fullscreen mode Exit fullscreen mode

Adım 8: Tam convert.sh Betiği

Tüm ajanları tüm formatlara otomatik dönüştürmek için temel betik:

#!/usr/bin/env bash
#
# convert.sh — Tüm Agency ajanlarını araca özel formatlara dönüştürür
#

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
OUT_DIR="$REPO_ROOT/integrations"

get_field() {
  local field="$1" file="$2"
  awk -v f="$field" '
    /^---$/ { fm++; next }
    fm == 1 && $0 ~ "^" f ": " { sub("^" f ": ", ""); print; exit }
  ' "$file"
}

get_body() {
  awk 'BEGIN{fm=0} /^---$/{fm++; next} fm>=2{print}' "$1"
}

to_kebab() {
  echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g'
}

convert_claude_code() {
  local agent_file="$1"
  local dest="$OUT_DIR/claude-code/"
  mkdir -p "$dest"
  cp "$agent_file" "$dest/"
}

convert_cursor() {
  local agent_file="$1"
  local name=$(get_field 'name' "$agent_file")
  local slug=$(to_kebab "$name")
  local body=$(get_body "$agent_file")

  mkdir -p "$OUT_DIR/cursor/.cursor/rules/"
  cat > "$OUT_DIR/cursor/.cursor/rules/agency-${slug}.mdc" << EOF
---
description: Agency agent: $(get_field 'description' "$agent_file")
---
$body
EOF
}

convert_aider() {
  local output="$OUT_DIR/aider/CONVENTIONS.md"
  echo "" >> "$output"
  echo "---" >> "$output"
  cat "$agent_file" >> "$output"
}

convert_windsurf() {
  local output="$OUT_DIR/windsurf/.windsurfrules"
  echo "" >> "$output"
  echo "---" >> "$output"
  cat "$agent_file" >> "$output"
}

echo "Agency ajanları dönüştürülüyor..."

AGENT_DIRS=(engineering design testing marketing sales)

for dir in "${AGENT_DIRS[@]}"; do
  for agent_file in "$REPO_ROOT/$dir"/*.md; do
    [[ -f "$agent_file" ]] || continue

    name=$(get_field 'name' "$agent_file")
    echo "İşleniyor: $name"

    convert_claude_code "$agent_file"
    convert_cursor "$agent_file"
  done
done

echo "# Aider için Agency Ajanları" > "$OUT_DIR/aider/CONVENTIONS.md"
for dir in "${AGENT_DIRS[@]}"; do
  for agent_file in "$REPO_ROOT/$dir"/*.md; do
    [[ -f "$agent_file" ]] || continue
    convert_aider "$agent_file"
  done
done

echo "# Windsurf için Agency Ajanları" > "$OUT_DIR/windsurf/.windsurfrules"
for dir in "${AGENT_DIRS[@]}"; do
  for agent_file in "$REPO_ROOT/$dir"/*.md; do
    [[ -f "$agent_file" ]] || continue
    convert_windsurf "$agent_file"
  done
done

echo "Dönüştürme tamamlandı!"
echo "  Claude Code: $OUT_DIR/claude-code/"
echo "  Cursor: $OUT_DIR/cursor/.cursor/rules/"
echo "  Aider: $OUT_DIR/aider/CONVENTIONS.md"
echo "  Windsurf: $OUT_DIR/windsurf/.windsurfrules"
Enter fullscreen mode Exit fullscreen mode

Çalıştırmak için:

chmod +x convert.sh
./convert.sh
Enter fullscreen mode Exit fullscreen mode

Adım 9: Her Araca Kurun

Dönüştürülmüş dosyaları araca özel yollara kopyalamak için install.sh:

#!/usr/bin/env bash
#
# install.sh — Dönüştürülmüş ajanları yerel araçlarınıza kurar
#

set -euo pipefail

install_claude_code() {
  local src="$REPO_ROOT/integrations/claude-code/"
  local dest="$HOME/.claude/agents/"
  mkdir -p "$dest"
  cp "$src"/*.md "$dest/"
  echo "Claude Code: $(find "$dest" -name '*.md' | wc -l) ajan kuruldu"
}

install_cursor() {
  local src="$REPO_ROOT/integrations/cursor/.cursor/rules/"
  local dest="./.cursor/rules/"
  mkdir -p "$dest"
  cp "$src"/*.mdc "$dest/"
  echo "Cursor: $(find "$dest" -name '*.mdc' | wc -l) kural kuruldu"
}

install_aider() {
  local src="$REPO_ROOT/integrations/aider/CONVENTIONS.md"
  local dest="./CONVENTIONS.md"
  cp "$src" "$dest"
  echo "Aider: CONVENTIONS.md kuruldu"
}

install_windsurf() {
  local src="$REPO_ROOT/integrations/windsurf/.windsurfrules"
  local dest="./.windsurfrules"
  cp "$src" "$dest"
  echo "Windsurf: .windsurfrules kuruldu"
}

install_all() {
  if [[ -d "$HOME/.claude/agents/" ]]; then
    install_claude_code
  fi
  if command -v cursor &>/dev/null || [[ -d "./.cursor/" ]]; then
    install_cursor
  fi
  if command -v aider &>/dev/null; then
    install_aider
  fi
}

install_all
Enter fullscreen mode Exit fullscreen mode

Format Karşılaştırması

Araç Format Kapsam Dönüştürme
Claude Code .md Kullanıcı genelinde (~/.claude/agents/) Olduğu gibi kopyala
Cursor .mdc Proje (.cursor/rules/) Açıklama ön kısmı ekle
Aider CONVENTIONS.md Proje kökü Tüm ajanları birleştir
Windsurf .windsurfrules Proje kökü Tüm ajanları birleştir
GitHub Copilot .md Kullanıcı genelinde (~/.github/agents/) Olduğu gibi kopyala
Antigravity SKILL.md Kullanıcı genelinde (~/.gemini/antigravity/) Beceri dizinine sar
OpenClaw SOUL.md + diğerleri Kullanıcı genelinde (~/.openclaw/) 3 dosyaya ayır
Gemini CLI Uzantı Kullanıcı genelinde (~/.gemini/extensions/) Manifest + beceriler oluştur
OpenCode .md Proje (.opencode/agents/) Olduğu gibi kopyala
Qwen Code .md Proje (.qwen/agents/) Alt Ajan olarak kopyala

Kendi Dönüştürme Betiğinizi Oluşturun

Yeni bir aracı desteklemek için şablon:

#!/usr/bin/env bash

convert_your_tool() {
  local agent_file="$1"
  local name=$(get_field 'name' "$agent_file")
  local description=$(get_field 'description' "$agent_file")
  local slug=$(to_kebab "$name")
  local body=$(get_body "$agent_file")

  local output="path/to/your/tool/agency-${slug}.ext"
  mkdir -p "$(dirname "$output")"

  cat > "$output" << EOF
# Aracınıza özel format
# Kullanın: $name, $description, $body
EOF

  echo "  YourTool: agency-${slug}.ext"
}

for agent_file in engineering/*.md; do
  convert_your_tool "$agent_file"
done
Enter fullscreen mode Exit fullscreen mode

Neler Yaptınız

Bileşen Amaç
get_field() YAML ön kısım değerlerini çıkarır
get_body() Ön kısmı çıkarır, markdown gövdesini döndürür
to_kebab() İsimleri URL dostu slug'lara dönüştürür
convert_cursor() .mdc formatına dönüştürür
convert_aider() Tek bir dosyada birleştirir
convert_windsurf() Tek bir dosyada birleştirir
convert_antigravity() Beceri dizinleri oluşturur
convert_openclaw() Ajan başına 3 dosyaya böler
install.sh Araca özel yollara kopyalar

Sonraki Adımlar

Betiikleri genişletin:

  • xargs -P veya GNU parallel ile paralel dönüştürme ekleyin
  • Doğrulama ekleyin (gerekli ön kısım alanlarını kontrol edin)
  • Deneme çalıştırma modu ekleyin (--dry-run bayrağı)

Daha fazla araç ekleyin:

  • VS Code uzantıları
  • JetBrains IDE'leri
  • Özel dahili araçlar

Büyük depolar için optimize edin:

  • Ayrıştırılmış ön kısmı önbelleğe alın
  • Güvenli dosya işleme için find komutunu -print0 ile kullanın
  • 100'den fazla ajan için ilerleme çubukları ekleyin

Sık Karşılaşılan Sorun Giderme

Dönüştürme betiği "hatalı ikame" ile başarısız oluyor:

  • Bash çalıştırdığınızdan emin olun, sh değil: #!/usr/bin/env bash
  • Bash sürümünü kontrol edin: bash --version (4.0+ olmalı)
  • Açıkça bash ile çalıştırın: bash convert.sh
  • Windows satır sonlarını arayın: sed -i 's/\r$//' convert.sh

Ön kısım alanları çıkarılamıyor:

  • YAML formatının sadece : değil, : (iki nokta üst üste boşluk) kullandığını doğrulayın
  • Alan adlarından önce fazladan boşluk olup olmadığını kontrol edin
  • Ön kısım ayırıcılarının tam olarak --- (3 tire) olduğundan emin olun
  • Ayrıştırmayı manuel olarak test edin: ./parse-frontmatter.sh --demo agent.md

Slug oluşturma bozuk isimler yaratıyor:

  • to_kebab() fonksiyonunu uç durumlarla test edin
  • Özel karakterleri işleyin: to_kebab() { echo "$1" | iconv -f utf8 -t ascii//translit | ... }
  • Boş slug'lar için yedek ekleyin: [[ -z "$slug" ]] && slug="unknown-agent"
  • Hata ayıklama için orijinal isimleri günlüğe kaydedin

Cursor kuralları yüklenmiyor:

  • .mdc dosyalarının description ile geçerli bir ön kısım içerdiğini doğrulayın
  • Cursor'ın MCP yapılandırmasını kontrol edin: .cursor/mcp.json
  • Dosyaların .cursor/agents/ değil, .cursor/rules/ içinde olduğundan emin olun
  • Yeni kuralları ekledikten sonra Cursor'ı yeniden başlatın

Aider CONVENTIONS.md çok büyük hale geliyor:

  • Kategoriye göre ayırın: CONVENTIONS-engineering.md, CONVENTIONS-design.md
  • Kullanımdan kaldırılmış ajanlar için otomatik budama uygulayın
  • En üste içindekiler tablosu ekleyin
  • Include direktifleri ile ajan başına dosyaları düşünün

Büyük Dönüştürmeler İçin Performans Optimizasyonu

Paralel İşleme:

Birden fazla ajan için GNU parallel ile hızlandırılmış dönüştürme:

#!/usr/bin/env bash
# convert-parallel.sh

export OUT_DIR="$REPO_ROOT/integrations"

export -f get_field get_body to_kebab convert_cursor convert_claude_code

find "$REPO_ROOT" -name "*.md" -type f | \
  parallel -j 8 --progress '
    name=$(get_field "name" {})
    slug=$(to_kebab "$name")
    echo "Dönüştürülüyor: $name"
    convert_cursor "{}"
    convert_claude_code "{}"
  '

echo "Paralel dönüştürme tamamlandı!"
Enter fullscreen mode Exit fullscreen mode

Artımlı Dönüştürme:

Sadece değişen dosyaları yeniden işleyin:

#!/usr/bin/env bash
# convert-incremental.sh

CACHE_FILE="$REPO_ROOT/.conversion-cache"

declare -A PREV_HASHES
if [[ -f "$CACHE_FILE" ]]; then
  while IFS='=' read -r file hash; do
    PREV_HASHES["$file"]="$hash"
  done < "$CACHE_FILE"
fi

for agent_file in engineering/*.md; do
  CURRENT_HASH=$(md5sum "$agent_file" | cut -d' ' -f1)
  PREV_HASH="${PREV_HASHES[$agent_file]:-}"

  if [[ "$CURRENT_HASH" != "$PREV_HASH" ]]; then
    echo "Değişti: $agent_file"
    convert_cursor "$agent_file"
    convert_claude_code "$agent_file"
    NEW_HASHES["$agent_file"]="$CURRENT_HASH"
  else
    echo "Değişmedi: $agent_file"
  fi
done

for file in "${!NEW_HASHES[@]}"; do
  echo "$file=${NEW_HASHES[$file]}"
done > "$CACHE_FILE"
Enter fullscreen mode Exit fullscreen mode

İlerleme Takibi:

İlerleme çubuğu ile:

#!/usr/bin/env bash

total_files=$(find "$REPO_ROOT" -name "*.md" -type f | wc -l)
current=0

for agent_file in "$REPO_ROOT"/**/*.md; do
  ((current++))
  percent=$((current * 100 / total_files))

  filled=$((percent / 5))
  empty=$((20 - filled))
  bar=$(printf '%*s' "$filled" | tr ' ' '#')
  spaces=$(printf '%*s' "$empty" | tr ' ' ' ')

  name=$(get_field 'name' "$agent_file")
  echo -ne "\r[${bar}${spaces}] ${percent}% - $name"

  convert_cursor "$agent_file"
done

echo -ne "\n"
Enter fullscreen mode Exit fullscreen mode

Paylaşılan Ajanlar İçin Güvenlik Hususları

Ajan Kaynaklarını Doğrulama:

Dış kaynaklardan gelen ajanları kontrol edin:

#!/usr/bin/env bash
# validate-agent.sh

validate_agent() {
  local file="$1"

  local name=$(get_field 'name' "$file")
  local description=$(get_field 'description' "$file")

  if [[ -z "$name" ]]; then
    echo "HATA: '$file' dosyasında 'name' alanı eksik"
    return 1
  fi

  if [[ -z "$description" ]]; then
    echo "UYARI: '$file' dosyasında 'description' alanı eksik"
  fi

  local body=$(get_body "$file")

  if echo "$body" | grep -q 'rm -rf\|curl.*\|wget.*\|eval\|exec'; then
    echo "UYARI: '$file' dosyasında potansiyel olarak tehlikeli desenler var"
    return 1
  fi

  echo "GEÇERLİ: $name"
  return 0
}
Enter fullscreen mode Exit fullscreen mode

Ajan Yürütme Korumalı Alanı (Sandboxing):

  • Docker kapsayıcıları kullanın
  • Salt okunur dosya sistemi bağlayın
  • Ağ erişimini alan adı bazında kısıtlayın
  • Ajan çıktısını günlüğe kaydedin

Tek bir ajan dosyası. On IDE. İki bash betiği.

Bir kez yazın, otomatik dönüştürün, her yere kurun.

Sıra sizde: Favori yapay zeka aracınız için dönüştürme fonksiyonu ekleyin, paylaşın, ajanlarınızı taşınabilir yapın.


Ana Çıkarımlar

  • Bir kez yazın, 10'dan fazla formata dönüştürün — YAML ön kısmına sahip tek bir Markdown dosyası Claude Code, Cursor, Aider, Windsurf ve 6'dan fazla başka araca dönüşür
  • Bash ayrıştırması ön kısım çıkarılmasını yönetirget_field() YAML değerlerini çıkarır, get_body() ön kısmı kaldırır, to_kebab() URL dostu slug'lar oluşturur
  • Araca özel formatlar farklı dönüşümler gerektirir — Claude Code olduğu gibi kopyalar, Cursor açıklama ön kısmı ekler, Aider/Windsurf tüm ajanları birleştirir
  • Kurulum betikleri doğru yollara kopyalar — Kullanıcı genelindeki araçlar ~/.claude/agents/ kullanır, proje araçları .cursor/rules/ veya proje kök dosyalarını kullanır
  • Yeni araçlar için şablonlarla genişletinconvert_your_tool() fonksiyonunu tanımlayın, ana döngüye ekleyin, format gereksinimlerini belgeleyin

Sıkça Sorulan Sorular

convert.sh nedir ve nasıl çalışır?

convert.sh, ajan Markdown dosyalarından YAML ön kısmını ayrıştıran, gövde içeriğini çıkaran ve her ajanı araca özel formatlara dönüştüren bir bash betiğidir. Ayrıştırma için awk, slug dönüştürme için sed ve çıktı üretimi için heredoc'ları kullanır.

Bash'te ön kısım ayrıştırması nasıl çalışır?

get_field() fonksiyonu, ön kısım ayırıcılarını (---) takip etmek için awk kullanır, alan adıyla eşleşen satırı bulur ve değeri çıkarır. get_body() ise ikinci --- ayırıcısından sonraki tüm satırları yazdırır.

Hangi IDE'ler ve araçlar destekleniyor?

Claude Code (.md), Cursor (.mdc), Aider (CONVENTIONS.md), Windsurf (.windsurfrules), GitHub Copilot (.md), Antigravity (SKILL.md), OpenClaw (SOUL.md + 2 dosya), Gemini CLI uzantıları, OpenCode ve Qwen Code.

Yeni bir araç için dönüştürme desteğini nasıl eklerim?

Ön kısım alanlarını çıkaran, gövdeyi aracınızın formatına dönüştüren ve doğru yola yazan bir convert_yourtool() fonksiyonu oluşturun. Fonksiyon çağrısını ana dönüştürme döngüsüne ekleyin.

Daha hızlı işleme için dönüştürmeleri paralel olarak çalıştırabilir miyim?

Evet. Birden fazla ajan dosyasını aynı anda işlemek için xargs -P veya GNU parallel kullanın. 100'den fazla ajan için, paralel dönüştürme çalışma süresini dakikalardan saniyelere düşürebilir.

Ön kısım alanlarının var olduğunu nasıl doğrularım?

Dönüştürme fonksiyonunuza doğrulama kontrolleri ekleyin: [[ -z "$name" ]] && echo "İsim alanı eksik" && exit 1. Çıktı dosyalarını yazmadan önce doğrulamayı çalıştırın.

Bazı ajanlar için dönüştürme başarısız olursa ne olur?

Hatalarda hızlı bir şekilde başarısız olmak için set -euo pipefail kullanın. Bozuk dosyaları atlamak için || continue ile hata işleme ekleyin. Hata ayıklama için başarısızlıkları ayrı bir dosyaya kaydedin.

Top comments (0)