Kurs
Modern GitHub depolarında, özellikle wiki’lerde, net ve yapılandırılmış dokümantasyon çoğu zaman eksiktir.
Bu sayfaları elle oluşturmak; kodu okumak, mimariyi anlamak ve içeriği düzenlemek için saatler harcamanızı gerektirebilir.
Bir GitHub Wiki Yapay Zekâ Aracısı bu sorunu çözebilir.
Bu eğitimde, Claude Opus 4.5 ve Claude Agent SDK kullanarak tek bir komutla eksiksiz GitHub depo wikileri üreten, tamamen otomatik bir GitHub Wiki Yapay Zekâ Aracısı olan bir komut satırı aracının nasıl oluşturulacağını adım adım göstereceğim.
Dokümantasyonu elle yazmak yerine, bu araç kod tabanınızı analiz eder, yapısını anlar ve temiz, çok sayfalı wiki içeriği üretir; üretilen içerik deponuza otomatik olarak işlenir ve yayımlanır.
Her şey, hızlı, akıllı ve geliştirici dostu hissettirecek şekilde tasarlanmış etkileşimli bir CLI uygulaması üzerinden çalışır.
Bu kılavuzda, ortamı kurmak, GitHub Wiki Yapay Zekâ Aracısını oluşturmak ve gerçek depolar üzerinde test etmek için basit bir üç adımlı süreci izleyeceğiz:
- Ortamı kurun: bağımlılıkları yükleyin, Claude Code’u kurup kimlik doğrulaması yapın, GitHub belirteçlerini yapılandırın ve Wiki özelliğini etkinleştirin.
- Uygulamayı oluşturun: CLI aracı oluşturun, Claude Agent’ı yapılandırın, MCP GitHub araçlarını entegre edin, maliyet takibi ekleyin ve wiki oluşturma mantığını uygulayın (Home, Getting Started, Architecture & Tools).
- Aracıyı test edin: kopyalama, analiz, wiki oluşturma ve otomatik gönderimi doğrulamak için gerçek depolarda (ECom-Intel ve Issue-Analyzer) çalıştırın.
Yapay zekâ aracılıklarına yeniyseniz ve daha fazla bilgi edinmek istiyorsanız, AI Agent Fundamentals yetkinlik yolunu incelemenizi öneririm. Ayrıca Claude Cowork eğitimimizi ve yeni Claude Opus 4.6 rehberimizi de okumalısınız.
Claude Opus 4.5 GitHub Wiki Eğitimi İçin Ortamınızı Kurma
Opus 4.5 ile GitHub Wiki Aracısı oluşturmadan önce, ortamınızın doğru şekilde yapılandırıldığından emin olun. Bu bölüm, tüm ön koşulları ve kurulum adımlarını anlatır.
1. Claude Opus 4.5 Wiki Aracısını çalıştırmak için ön koşullar
- Python 3.11 veya üzeri (Python Claude Agent SDK tarafından gereklidir).
- Node.js ve npm (Claude Code’u kurmak için gereklidir). Uygulamamızın omurgasıdır ve MCP sunucuları için aracılar, araçlar ve entegrasyonlar sağlar.
2. Claude Code’u kurun ve kimlik doğrulayın
Terminalinizi (Komut İstemi, PowerShell veya macOS Terminali) açın ve Claude Code CLI’yı kurmak için aşağıdaki komutu çalıştırın:
npm install -g @anthropic-ai/claude-code
Terminalinizde claude yazıp Claude Code’u başlatın. Ardından, Claude sohbeti içinde /login yazarak kimliğinizi doğrulayın ve aşağıda gösterildiği gibi Opus 4.5 modeline ve araçlara erişim kazanın.

Uygulamalı eğitimimizde Claude Code hakkında daha fazla bilgi edinebilirsiniz.
3. Ayrıntılı kapsamlı bir GitHub Kişisel Erişim Belirteci oluşturun
Ayrıntılı kapsamlı bir GitHub Kişisel Erişim Belirteci oluşturmak için GitHub’a gidin ve şu yolu izleyin:
Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens.
Yeni bir belirteç oluşturun ve Repository bölümünde kullanacağınız depoyu seçin. Ardından İzinleri yapılandırın. Güvenlik açısından, belirteç için kısa bir son kullanma tarihi belirlemeniz önerilir.

Ardından, Kişisel Erişim Belirtecini ortam değişkeni olarak ayarlayın:
export GITHUB_PAT="your-github-personal-access-token"
4. GitHub Wiki’nizi başlatın
GitHub şu anda önce yerelde bir Wiki oluşturmayı desteklemiyor.
Bu nedenle wiki’yi şu adımlarla elle başlatmanız gerekir:
- Depoyu GitHub’da açın
- Wiki sekmesine tıklayın
- “İlk sayfayı oluşturun” seçeneğine tıklayın
- Sayfayı kaydedin (herhangi bir başlık olabilir)

5. Claude Agent SDK’yı kurun
MCP kullanmaktan araç çağırmaya, dosya oluşturmaya ve değişiklikleri uzağa göndermeye kadar her şeyi yöneten Claude Agentik çerçevesini kuracağız.
pip install claude-agent-sdk
Claude Opus 4.5 ile Otomatik Wiki Aracısını Oluşturma
Python CLI uygulaması olarak gh_wiki_cli.py adlı bir dosya oluşturacağız. Bu dosyada yapılandırmalar, aracılar, araçlar, bir MCP istemcisi, sistem yönergeleri, CLI uygulamasının kendisi ve yardımcı işlevler yer alacak.
Bu bileşenler, kullanıcının depo bağlantısını sağlayabilmesini ve aracının bunu GitHub wiki’yi yayımlamak için doğru şekilde işlemesini sağlayacak.
1. İçe aktarımlar
Bu bölüm, Python standart kütüphanesi modüllerini, type yardımcılarını ve Claude Agent SDK’yı içeri aktarır.
asyncioasenkron G/Ç (sohbet + akış) için.os,sysortam değişkenleri ve çıkış için.dataclassistatistikleri izlemek için.- Claude Agent SDK içe aktarımları; aracı ve MCP araçlarıyla iletişim kurmak için.
import asyncio
import os
import sys
from dataclasses import dataclass
from typing import Dict
# --- SDK Imports ---
from claude_agent_sdk import (
AssistantMessage,
ClaudeAgentOptions,
ClaudeSDKClient,
McpSdkServerConfig,
ResultMessage,
TextBlock,
ToolResultBlock,
ToolUseBlock,
)
2. Sistem yönergesi
Bu, aracının “beynidir”. Opus 4.5 modeline nasıl davranması ve araçları nasıl kullanması gerektiğini anlatacağız.
SYSTEM_PROMPT = """
You are an expert Technical Writer and GitHub Wiki specialist.
TOOLS
- Read, Write, Glob, Grep:
- Use these to inspect files and folders in the project directory (e.g. /tmp/Issue-Analyzer) and in wiki_clone/.
- Use them to list files, read contents, and search for patterns.
- Write:
- Use this ONLY to write or update three wiki pages inside wiki_clone/:
- wiki_clone/Home.md
- wiki_clone/Getting-Started.md
- wiki_clone/Architecture-and-Tools.md
- Bash:
- Bash is ONLY allowed for git commands, never for inspection or editing.
- Allowed commands (with cd wiki_clone/ when needed):
- git clone <repo>.wiki.git wiki_clone (if wiki_clone does not already exist)
- git status
- git add .
- git commit -m "Update wiki"
- git push
- Do NOT use Bash for ls, cat, grep, find, python, or any other way of reading/writing files.
WORKFLOW
1. When the user gives a GitHub repo URL:
- Use Bash to clone the wiki if wiki_clone/ does not already exist:
git clone <repo>.wiki.git wiki_clone
2. Use Read/Glob/Grep (and any GitHub MCP tools) to explore the project:
- Read important files in the project folder (e.g. README, docs/, src/).
- Use that information to generate documentation.
3. Use Write to create or update ONLY:
- wiki_clone/Home.md
- wiki_clone/Getting-Started.md
- wiki_clone/Architecture-and-Tools.md
4. When the wiki pages are ready:
- Use Bash from wiki_clone/ to:
git add .
git commit -m "Update wiki"
git push
RULES
- You may READ from the whole project directory and wiki_clone/.
- You may WRITE only to the three wiki pages inside wiki_clone/.
- Never use Bash to inspect or edit files; only use it for git commands.
- Keep documentation clear, concise, and in GitHub Wiki style.
"""
3. CLI için renk yönetimi
Bu, CLI çıktısını daha hoş hale getirir; ancak colorama kurulu değilse de çalışır.
- Renkli metin için colorama kullanmayı dener.
- Renkler olmadan da betiğin çalışması için MockColors’a geri döner (renk yok, çökme yok).
try:
from colorama import Fore, Style, init
init()
except ImportError:
class MockColors:
def __getattr__(self, name):
return ""
Fore = Style = MockColors()
4. Oturum istatistiklerini izleme
Maliyet, dönüş sayısı ve süreyi izlemek için küçük bir dataclass.
total_cost: Claude SDK’dan gelen $ cinsinden maliyet toplamı.total_turns: gönderdiğiniz kullanıcı sorgularının sayısı.duration_ms: milisaniye cinsinden biriken süre.
@dataclass
class SessionStats:
total_cost: float = 0.0
total_turns: int = 0
duration_ms: int = 0
5. Aracı seçeneklerinin oluşturulması
Sırada, ClaudeAgentOptions nesnesini oluşturup MCP sunucularımıza bağlanacağız. Aşağıdaki işlev, gerekli ortam değişkenlerini doğrular, mevcutsa GitHub MCP sunucusunu yapılandırır ve aracının kullanabileceği araçları sınırlar.
Bilerek allowed_tools listesini kısıtlıyoruz; böylece Opus 4.5 şunları yapabilir: Git işlemleri için Bash kullanmak, depo içeriğini incelemek için GitHub MCP sunucusunu çağırmak ve yerel Markdown dosyalarıyla çalışıp onları doğrulamak için Read/Write (Glob ve Grep ile birlikte) kullanmak.
def create_agent_options() -> ClaudeAgentOptions:
"""Validates env vars and configures the agent options."""
anthropic_key = os.getenv("ANTHROPIC_API_KEY")
github_pat = os.getenv("GITHUB_PAT")
if not anthropic_key:
print(
f"{Fore.RED}Error: ANTHROPIC_API_KEY environment variable is required.{Style.RESET_ALL}"
)
sys.exit(1)
# Configure MCP servers
mcp_servers: Dict[str, McpSdkServerConfig] = {}
if github_pat:
mcp_servers["github"] = {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {"Authorization": f"Bearer {github_pat}"},
}
return ClaudeAgentOptions(
model="claude-opus-4-5",
system_prompt=SYSTEM_PROMPT,
mcp_servers=mcp_servers,
permission_mode="bypassPermissions",
allowed_tools=[
"Read",
"Write",
"Glob",
"Grep",
"Bash",
"mcp__github__*",
],
)
6. Akış yanıtını işleme
Bu işlev, akışı dinler ve metni, araç kullanımını ve araç çıktılarını yazdırır.
client.receive_response()öğesini asenkron akış olarak kullanır.- Asistan metnini geldikçe yazdırır.
- Bir araç çağrıldığında →
[Tool Use: ...]yazdırır. - Bir araç çıktı döndürdüğünde → kısaltır ve tek satırlık kısa bir önizleme yazdırır.
ResultMessagegeldiğinde →SessionStatsiçinde maliyet + süreyi günceller.
async def process_response_stream(client: ClaudeSDKClient, stats: SessionStats):
"""Handles the stream of messages from the agent."""
async for message in client.receive_response():
# 1. Handle Assistant Content (Text & Tool Requests)
if isinstance(message, AssistantMessage):
for block in message.content:
if isinstance(block, TextBlock):
print(block.text, end="", flush=True)
elif isinstance(block, ToolUseBlock):
print(f"\n{Fore.CYAN}[Tool Use: {block.name}]{Style.RESET_ALL}")
# 2. Handle Tool Results (Outputs)
if hasattr(message, "content") and isinstance(message.content, list):
for block in message.content:
if isinstance(block, ToolResultBlock):
# Truncate output for cleaner CLI
raw_output = str(block.content)
clean_output = raw_output.replace("\n", " ")
short_output = (
clean_output[:200] + "..."
if len(clean_output) > 200
else clean_output
)
print(
f"{Fore.YELLOW} -> [Output]: {short_output}{Style.RESET_ALL}"
)
# 3. Handle Result Metrics (Cost & Usage)
if isinstance(message, ResultMessage):
if message.total_cost_usd:
stats.total_cost += message.total_cost_usd
if message.duration_ms:
stats.duration_ms += message.duration_ms
7. Sonda bir özet yazdırma
CLI uygulaması için, dönüş sayısını, süreleri ve dolar cinsinden maliyeti gösteren hoş bir oturum sonu özeti.
duration_msdeğerini saniyeye çevirir.- Toplam maliyeti 4 ondalık basamakla biçimlendirir.
def print_summary(stats: SessionStats):
"""Prints the final session statistics."""
print(f"\n\n{Fore.GREEN}=== Session Summary ==={Style.RESET_ALL}")
print(f"Total Turns: {stats.total_turns}")
print(f"Duration: {stats.duration_ms / 1000:.2f}s")
print(f"Total Cost: ${stats.total_cost:.4f}")
print(f"{Fore.GREEN}======================={Style.RESET_ALL}")
8. Asenkron ana işlev
Bu, uygulamanın temel kontrol akışıdır: kurulumu yapar, hizmetlere bağlanır, kullanıcı girdisini okur ve sorguları gönderir. İşlev create_agent_options() çağrısını yapar ve istatistikleri başlatır. Tanıtım bandı yazdırır ve hangi MCP sunucularının etkin olduğunu belirtir. Ayrıca asenkron bir bağlam kullanarak bir ClaudeSDKClient oluşturur.
Uygulama basit bir REPL (Read-Eval-Print Loop) çalıştırır:
- Uygulamadan çıkmak için 'exit' veya 'quit' yazın.
- Her geçerli sorgu,
stats.total_turnsdeğerini 1 artırır. await client.query(user_input)kullanıcının iletisini gönderir.await process_response_stream(...)akış halinde gelen sonucu yazdırır.- Her türlü istisna yakalanır ve kırmızı renkte bir hata iletisi gösterilir.
- Son olarak işlev her zaman
print_summary(stats)çağrısını yapar.
async def main():
options = create_agent_options()
stats = SessionStats()
# Welcome message
print(f"{Fore.GREEN}=== GitHub Wiki AI Agent (Auto-Mode) ==={Style.RESET_ALL}")
print(
f"MCP Servers: {', '.join(options.mcp_servers.keys()) if options.mcp_servers else 'None'}"
)
print("Ask me to help with a GitHub wiki by mentioning the repository URL!")
print("Type 'exit' to quit.\n")
async with ClaudeSDKClient(options=options) as client:
try:
await client.connect()
while True:
try:
user_input = input(f"\n{Fore.BLUE}>> {Style.RESET_ALL}").strip()
except EOFError:
break
if not user_input:
continue
if user_input.lower() in ["exit", "quit"]:
break
stats.total_turns += 1
# Send query
await client.query(user_input)
print() # Spacer
# Process response stream using helper function
await process_response_stream(client, stats)
except Exception as e:
print(f"\n{Fore.RED}Session Error: {e}{Style.RESET_ALL}")
finally:
print_summary(stats)
9. Betik giriş noktası
Son olarak, dosya doğrudan çalıştırıldığında CLI’nın çalışması için betiğin giriş noktasını tanımlarız. Aşağıdaki blok, ana asenkron döngüyü başlatır ve düzgün kapatmayı sağlar:
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
print("\nSession interrupted.")
sys.exit(0)
Otomatik Wiki Aracısını Test Etme
Her şey kurulduktan sonra CLI sohbet uygulamasını başlatın ve Claude Code CLI uygulamanızın çalıştığından emin olun:
python gh_wiki_cli.py
Artık aracıyla bir sohbet arayüzü gibi etkileşim kurabilirsiniz. Genel sorular sorun veya doğrudan deponuz için wiki oluşturmasını söyleyin:
create the github wiki for https://github.com/kingabzpro/ECom-Intel

Kullanıcı bir wiki oluşturmasını isterse, aracı otomatik olarak şunları gerçekleştirir:
- Wiki kopyalama:
wiki_clone/klasörünü oluşturur veya yeniden kullanır ve en son wiki içeriğini çeker. - Depo inceleme: MCP araçlarını kullanarak GitHub deposundaki temel dosyaları okur.
- Sayfa oluşturma: Otomatik olarak şu sayfaları taslak haline getirip yazar:
- Home.md
- Getting-Started.md
- Architecture-and-Tools.md
- İşleme ve gönderme: Aracı yeni sayfaları hazırlar, işler ve güncellemeleri şuraya gönderir:
<your-repo>.wiki.git - Başarılı Çıktı Örneği: İşlem tamamlandığında, temiz bir onay mesajı görürsünüz. Ve wiki şu adreste canlı olacaktır: https://github.com/kingabzpro/ECom-Intel/wiki
Aracının demo görselleri, grafikler ve diğer önemli bilgileri ne kadar iyi toplayıp wiki için tutarlı bir ana sayfa haline getirdiği beni gerçekten etkiledi.

Wiki artık uygun bir içerik tablosu, yardımcı ve araçların açıklamaları ve net “başlarken” yönergeleri içeriyor.

Çalıştırmanın sonunda, oturum özeti bu tek oturumun neredeyse 1 USD tuttuğunu gösterdi; bu da üç sayfalık bir wiki üretimi için oldukça pahalı. Depo daha büyük olsaydı ve örneğin 12 sayfalık bir wikiye ihtiyaç duysaydık, maliyet önemli ölçüde artacaktı.
=== Session Summary ===
Total Turns: 1
Duration: 282.99s
Total Cost: $0.9047
=======================
İkinci testte, aracının başka bir depo için wiki oluşturmasını istedim:
create the github wiki for https://github.com/kingabzpro/Issue-Analyzer
Sonuç daha da iyiydi. https://github.com/kingabzpro/Issue-Analyzer/wiki adresinde erişilebilen oluşturulmuş wiki artık projenin ne yaptığını ve nasıl başlanacağını açıklayan düzgün bir dokümantasyona sahip.

İyi yapılandırılmış tablolar, bir mimari diyagram ve tüm projeyi günlerce kod okumak yerine yaklaşık beş dakikada anlamanızı sağlayan diğer temel bölümler yer alıyor.

Son Düşünceler
Opus 4.5’in dünyanın en iyi kodlama ve aracılık modeli olarak lanse edildiğini ilk duyduğumda gerçekten heyecanlandım; özellikle de Sonnet modelleriyle benzer fiyatlandırıldığını görünce.
Ancak, küçük bir uygulama üzerinde deney yapmanın ve onu inşa etmenin API kullanımında yaklaşık 15 $ tuttuğunu fark edince hevesim azaldı.

Opus 4.5 güçlü ama pahalı. Aynı iş akışını Haiku ve Sonnet ile de çoğaltmaya çalıştım; ancak bu tür aracılık odaklı, yoğun dokümantasyon gerektiren görevlerde deneyim belirgin şekilde daha zayıftı.
Her ikisi de, GitHub dosyalarını okumak için MCP araçlarını kullanmalarını açıkça istememe rağmen sıklıkla Bash araçlarına geri döndü. Ayrıca, sorunları çözmek için çoğu zaman daha uzun ve dolaylı yollar izlediler.
Doğruluk, güvenilirlik ve yüksek kaliteli kod ile dokümantasyon üretimini önceliklendiriyorsanız, Opus 4.5 kesinlikle değerlendirilmeye değer.
Bununla birlikte, kullanım senaryonuz daha az kritikse veya maliyet hassasiyetiniz yüksekse, Sonnet veya daha ucuz açık kaynaklı modellerle devam etmek isteyebilirsiniz. Opus 4.5 ile ilgili maliyetler, özellikle büyük depolar üzerinde çok adımlı, aracılık iş akışlarında hızla yükselebilir.
Projeyle ilgileniyorsanız, tamamını burada bulabilirsiniz; yerel olarak kopyalayıp çalıştırabilirsiniz: kingabzpro/GitHub-Wiki-Agent.
Yapay zekâ aracıları oluşturmaya devam etmek için sabırsızlanıyorsanız, LangGraph ile Çok Etmenli Sistemler kursuna göz atmanızı öneririm.
Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

