1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Claude Code 2.1.87 sürümünde belgelenmemiş çok sayıda ayar bulunuyor ve Hooks, Skills, Agents yapıları kişisel ve proje bazlı .claude/ dosyalarıyla ayrı ayrı uygulanabiliyor
  • Hook'lar yalnızca stdin JSON ve exit code ile değil, stdout içindeki olay bazlı JSON alanları üzerinden de komut değiştirme, izin kararı verme, bağlam enjekte etme ve dosya izleme işlemleri yapabiliyor
  • Belgelerde yer almayan Hook alanları once, async, asyncRewake ile tek seferlik çalıştırma, arka plan denetim günlüğü ve asenkron güvenlik engelleme akışları kurulabiliyor
  • Skills ve Agents, gizli frontmatter ile model, effort, scope Hook, Agent delegation, kalıcı bellek, CLAUDE.md atlama ve MCP bağımlılıklarını kontrol edebiliyor
  • Auto Mode, otomatik bellek, Dream, Magic Docs, izin glob'ları ve context: fork, Claude Code'u öğrenen bir geliştirme ortamına daha yakın şekilde yapılandırmayı sağlıyor

Referans sürüm ve dosya konumları

  • İçerik @anthropic-ai/claude-code@2.1.87 temel alınarak hazırlanmıştır; belgelenmemiş özellikler sürümler arasında değişebilir
  • Adında EXPERIMENTAL geçen alanlar, Anthropic mühendisleri tarafından kararsız olarak işaretlenmiştir; kaldırılabilir veya adları değişebilir
  • Ayar dosyası konumları
    • Kişisel ayarlar: ~/.claude/settings.json
    • Proje ayarları: .claude/settings.json
  • Skills konumları
    • Kişisel: ~/.claude/skills/<name>/SKILL.md
    • Proje: .claude/skills/<name>/SKILL.md
  • Agents konumları
    • Kişisel: ~/.claude/agents/<name>.md
    • Proje: .claude/agents/<name>.md
  • Hook script'lerini ~/.claude/hooks/ altında tutmak uygun bir pratiktir; çalıştırmak için chmod +x gerekir
  • Proje düzeyindeki .claude/ dosyaları Git'e commit edilerek ekiple paylaşılabilir; ~/.claude/ altındaki kişisel dosyalar ise yalnızca ilgili kullanıcıya uygulanır

Hook'lar stdout JSON ile Claude Code davranışını değiştirebilir

  • Resmî belgeler yalnızca Hook'ların stdin üzerinden JSON aldığı ve exit code 2 ile işlemi engellediği akışı anlatıyor, ancak gerçekte stdout içindeki olay bazlı JSON alanları ile Claude Code davranışı gerçek zamanlı olarak değiştirilebiliyor
  • PreToolUse içinde döndürülebilen alanlar

    • updatedInput: Araç çalışmadan önce girdiyi yeniden yazarak komutu değiştirebilir
    • permissionDecision: Kullanıcıya sormadan allow veya deny zorlanabilir
    • permissionDecisionReason: Kararın gerekçesi arayüzde gösterilebilir
    • additionalContext: Konuşma bağlamına metin enjekte edilebilir
  • SessionStart içinde döndürülebilen alanlar

    • watchPaths: Otomatik dosya izleme ayarlanarak FileChanged olayı tetiklenebilir
    • initialUserMessage: Oturumun ilk kullanıcı mesajının başına içerik eklenebilir
    • additionalContext: Tüm oturum boyunca kalacak bağlam enjekte edilebilir
  • PostToolUse içinde döndürülebilen alanlar

    • updatedMCPToolOutput: Claude'un gördüğü MCP araç yanıtı değiştirilebilir
    • additionalContext: Araç çalıştıktan sonra bağlam enjekte edilebilir
  • PermissionRequest içinde döndürülebilen alanlar

    • decision: updatedInput veya updatedPermissions ile birlikte programatik olarak izin verilebilir ya da reddedilebilir
  • git push komutunu otomatik olarak --dry-run yapmaya çeviren Hook

    • PreToolUse Hook'u Bash komutunu kontrol edip git push içeriyorsa updatedInput ile komutun sonuna --dry-run ekleyebilir
    • Claude, git push origin main komutunu çalıştırdığını sanır, ancak Hook bunu gerçek çalıştırmadan önce git push origin main --dry-run olarak değiştirir
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/dry-run-pushes.sh"
      }]
    }]
  }
}
#!/bin/bash
INPUT=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$INPUT" | grep -q 'git push'; then
  jq -n --arg cmd "$INPUT --dry-run" '{"updatedInput": {"command": $cmd}}'
fi
  • Oturum başlangıcında dosya izleme ve Git bağlamı enjekte eden Hook

    • SessionStart Hook'u package.json, .env, tsconfig.json dosyalarını izleme hedefi olarak belirleyebilir ve mevcut branch ile commit edilmemiş dosya sayısını oturum bağlamı olarak ekleyebilir
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }]
  }
}
#!/bin/bash
BRANCH=$(git branch --show-current 2>/dev/null)
CHANGES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')

jq -n \
  --arg branch "$BRANCH" \
  --arg changes "$CHANGES" \
  '{
    "watchPaths": ["package.json", ".env", "tsconfig.json"],
    "additionalContext": "Current branch: \($branch). Uncommitted changes: \($changes) files."
  }'
  • Salt okunur Bash komutlarını otomatik onaylayan Hook

    • ls, cat, echo, pwd, whoami, date, git status, git log, git diff gibi komutlar permissionDecision: "allow" ile kullanıcı onayı olmadan geçirilebilir
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }]
    }]
  }
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$CMD" | grep -qE '^(ls|cat|echo|pwd|whoami|date|git status|git log|git diff)'; then
  echo '{"permissionDecision": "allow", "permissionDecisionReason": "Safe read-only command"}'
fi

Belgelerde yer almayan 3 Hook yapılandırma alanı

  • Belgelenmiş Hook alanları type, command, matcher, timeout, if, statusMessage olsa da, kaynak kod ayrıştırıcısı once, async, asyncRewake alanlarını da kabul ediyor
  • once: true

    • Hook’u tam olarak bir kez çalıştırıp ardından otomatik olarak kaldırdığı için ilk oturum kurulumu için uygundur
    • .env yoksa .env.example dosyasını kopyalayıp sonrasında tekrar çalıştırmayan bir akış kurulabilir
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "[ -f .env ] || cp .env.example .env && echo 'Created .env from template'",
        "once": true,
        "statusMessage": "First-time setup..."
      }]
    }]
  }
}
  • async: true

    • Hook’u arka planda çalıştırarak Claude’un ilerlemesini engellemez
    • Tüm Bash komutlarını ~/.claude/audit.jsonl içine kaydederken oturuma gecikme eklememek için kullanılabilir
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "jq '{timestamp: now, command: .tool_input.command, session: .session_id}' < /dev/stdin >> ~/.claude/audit.jsonl",
        "async": true
      }]
    }]
  }
}
  • asyncRewake: true

    • Normal akışta async gibi arka planda çalışır, ancak exit code 2 ile sonlanırsa modeli yeniden uyandırıp işlemi engeller
    • Claude’un yazdığı her dosyada sabit kodlanmış password, secret, api_key desenlerini denetleyip bulunduğunda engellemek için kullanılabilir
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/scan-secrets.sh",
        "asyncRewake": true,
        "statusMessage": "Scanning for secrets..."
      }]
    }]
  }
}
#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' < /dev/stdin)
if grep -qE '(password|secret|api_key)\s*=' "$FILE" 2>/dev/null; then
  exit 2
fi
exit 0

Skill frontmatter içindeki gizli alanlar

  • Belgelerde name, description, allowed-tools, argument-hint, when_to_use, context ele alınıyor, ancak gerçek ayrıştırıcı 6 ek alanı daha kabul ediyor
  • model

    • Skill’in çalıştırılacağı modeli değiştirebilir; hızlı ve ucuz işler için haiku, karmaşık analizler için opus kullanılabilir
---
name: quick-lint
description: Fast lint check using the cheapest model
model: haiku
effort: low
allowed-tools: Bash, Read
argument-hint: "[file]"
---
Run the project linter on: $ARGUMENTS
Detect the linter from config (eslint, ruff, clippy) and run it. Report only errors, not warnings.
  • effort

    • Modelin ne kadar derin düşüneceğini ayarlar; değerler low, medium, high, max şeklindedir
    • Dahili olarak, yanıt başına çıkarım derinliğini kontrol eden effort sistemine eşlenir
  • hooks

    • Skill etkin olduğunda kaydedilip tamamlandığında kaldırılan kapsamlı Hook’lar tanımlanabilir
    • Her TypeScript dosyası yazıldığında eşzamanlı olarak type check yapmak ve arka planda lint çalıştırmak gibi kullanım senaryoları mümkündür
---
name: strict-typescript
description: Write TypeScript with type checking on every save
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
hooks:
  PostToolUse:
    - matcher: "Write|Edit"
      hooks:
        - type: command
          command: "~/.claude/hooks/typecheck-on-save.sh"
          statusMessage: "Type checking..."
        - type: command
          command: "~/.claude/hooks/lint-on-save.sh"
          async: true
---
Write TypeScript with strict enforcement. Every file you touch gets type-checked and linted automatically.
$ARGUMENTS
  • agent

    • Skill çalıştırmasını özel bir Agent’a devredebilir
---
name: deep-review
description: Thorough security review delegated to the review agent
agent: security-review
---
Review the following: $ARGUMENTS
  • disable-model-invocation: true

    • Otomatik çağrımı engelleyip yalnızca açık /skill-name çağrısıyla çalışmasını sağladığı için yıkıcı Skill’ler için uygundur
  • shell: bash

    • Çalıştırmada kullanılacak kabuğu belirtir

Agent frontmatter’ındaki gizli alanlar

  • .claude/agents/ içindeki özel Agent’lar da belgelerde yer almayan frontmatter alanlarını destekliyor
  • color

    • Arayüz rengini red, orange, yellow, green, blue, purple, pink, gray seçeneklerinden biri olarak ayarlayabilirsiniz
    • Birden fazla Agent çalışırken görsel olarak ayırt etmeye yardımcı olur
  • memory

    • Agent’a çağrılar arasında kalıcı bellek kazandırır
    • user: tüm projelerde global olarak korunur
    • project: proje bazında korunur
    • local: Git’e dahil edilmeyen, proje bazlı özel bellektir
    • Bir güvenlik inceleyicisi geçmiş bulguları takip edebilir, kod inceleyicisi ise oturumlar arasında kullanıcının kalıplarını hatırlayabilir
---
name: codebase-guide
description: Answer questions about the codebase, learning more with each session
tools: [Read, Grep, Glob, Bash]
color: green
memory: project
---
You are a codebase guide with persistent memory. Check your memory first before exploring the code.
  • omitClaudeMd: true

    • CLAUDE.md talimat hiyerarşisinin yüklenmesini atlar; proje teamülleri yerine sektör standartlarına göre bakan “fresh eyes” türü inceleyiciler için uygundur
---
name: fresh-eyes
description: Review code without project-specific biases
tools: [Read, Grep, Glob]
omitClaudeMd: true
effort: high
color: blue
---
Review this code purely from first principles. You have no project context. Focus on correctness, security, performance, and readability by industry standards.
  • criticalSystemReminder_EXPERIMENTAL

    • Kısa bir mesajı her turda sistem hatırlatıcısı olarak yeniden enjekte eder ve konuşma sıkıştırıldıktan sonra da bağlamda kalır
    • Alan adının kendisinde EXPERIMENTAL bulunduğu için kararsızdır; temel altyapı yerine yardımcı güvenlik hatırlatıcıları için kullanılması daha uygundur
---
name: prod-deployer
description: Manages production deployments with strict safety checks
tools: [Bash, Read, Grep]
color: red
criticalSystemReminder_EXPERIMENTAL: "Always run migrations with --dry-run first. Never skip the staging verification step."
---
  • requiredMcpServers

    • Gerekli MCP sunucu adı kalıplarını listeler; ilgili sunucu yoksa Agent görünmez
    • Bağımlılıkları hazır olmayan Agent’ların yüklenmesini engelleyebilir

Auto Mode sınıflandırıcısı doğal dille yazılmış ortam açıklamaları alır

  • settings.json içindeki autoMode alanı, Anthropic içinde “YOLO Classifier” olarak adlandırılan otomatik onay sınıflandırıcısını yapılandırır
  • allow kalıpları otomatik onaylanır, soft_deny kalıpları ise her zaman onay ister
  • environment dizisi bir kalıp değil, sınıflandırıcının okuduğu doğal dil bağlamıdır; proje ortamını açıklayarak belirsiz komutların güvenliği değerlendirilirken kullanılabilir
{
  "autoMode": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Read",
      "Grep",
      "Glob"
    ],
    "soft_deny": [
      "Bash(git push *)",
      "Bash(rm *)",
      "Write(.env*)"
    ],
    "environment": [
      "NODE_ENV=development",
      "This is a local dev machine with no production database access",
      "All Docker containers use isolated networks",
      "The test suite is safe to run repeatedly, it uses a dedicated test database"
    ]
  }
}
  • This project uses Docker, all commands run in containers gibi cümleler, sınıflandırıcının ortamı anlamasına yardımcı olmak için kullanılır
  • No production access, yıkıcı işlemlere karşı daha az muhafazakâr davranmasına yol açar; Test database is isolated ise test çalıştırmanın her zaman güvenli olduğuna dair bir sinyal işlevi görür

Otomatik bellek ve Dream entegrasyon döngüsü

  • settings.json içinde autoMemoryEnabled ve autoDreamEnabled etkinleştirildiğinde Claude Code’un kendini geliştirme sistemi devreye girer
{
  "autoMemoryEnabled": true,
  "autoDreamEnabled": true
}
  • autoMemoryEnabled

    • Her konuşmadan sonra arka plandaki bir Agent, oturumdan uzun süre saklamaya değer bilgileri çıkarır
    • Kullanıcı tercihlerini, kod tabanı kalıplarını ve alınan kararları standart memory frontmatter biçiminde ~/.claude/projects/<path>/memory/ içine yazar
  • autoDreamEnabled

    • Her 24 saatte bir, birikmiş oturum sayısı 5 veya daha fazlaysa arka plandaki bir Agent geçmiş oturum transcript’lerini gözden geçirerek belleği birleştirir
    • Yinelenenleri birleştirir, çelişkileri çözer, göreli tarihleri mutlak tarihlere dönüştürür ve eski öğeleri kaldırır
    • İki ayar birlikte açıldığında, oturumların bellek üretmesi, Dream’in bu belleği birleştirmesi ve birleştirilmiş belleğin sonraki oturumlara yansımasıyla bir öğrenme döngüsü oluşur
    • Birkaç hafta sonra, model yeniden eğitilmeden bile Claude Code’un kullanıcı tercihlerini, teamülleri ve yaygın kalıpları hatırladığı bir etki görülebilir

Magic Docs biçimi

  • Magic Docs, /^#\s*MAGIC\s+DOC:\s*(.+)$/im düzenli ifadesiyle tespit edilir
  • Mutlaka H1 başlığı olmalıdır ve büyük/küçük harf duyarlı değildir
  • Sonraki satıra _underscores_ veya *asterisks* ile sarılmış italik bir talimat konabilir; bu, güncelleme Agent’ının odaklanacağı kapsamı sınırlar
# MAGIC DOC: API Endpoint Reference
_Only document public REST endpoints. Include method, path, request body, response schema, and auth requirements._

## Endpoints

(content auto-maintained by Claude Code)
  • Talimat yoksa Agent tüm içeriği güncellemeye çalışır
  • Talimat varsa only track public endpoints veya focus on breaking changes gibi bir kapsama uyar
  • Güncelleme Agent’ı arka planda çalışır ve yalnızca ilgili tek dosyayı düzenlemekle sınırlandırılır
  • Başlık silinirse takip otomatik olarak durur

Tüm izin kuralları söz dizimi

  • Belgelerde Bash(git *) gibi temel örnekler var, ancak gerçek desen dili Bash, dosya yolları ve MCP araçlarını geniş biçimde kapsıyor
Bash(npm *)              # "npm " sonrasında joker karakter
Bash(git commit *)       # belirli alt komut
Read(*.ts)               # dosya uzantısı
Read(src/**/*.ts)        # uzantıyla özyinelemeli dizin
Write(src/**)            # özyinelemeli, tüm dosyalar
mcp__slack               # slack sunucusundaki tüm araçlar
mcp__slack__*            # açık joker karakter (aynı etki)
mcp__slack__post_message # belirli araç
Bash(npm:*)              # eski iki nokta üst üste öneki (kelime sınırı)
  • *, shell glob gibi sınır içinde eşleşir; ** ise dizinleri özyinelemeli olarak eşleştirir
  • MCP araç izinleri, çift alt çizgi biçimi olan mcp__<server>__<tool> kullanır
  • Hook içindeki if alanı da aynı söz dizimini kullanır; regex değil, glob'dur
{
  "permissions": {
    "allow": [
      "Bash(npm *)", "Bash(git status)", "Bash(git diff *)",
      "Read(src/**)", "Read(tests/**)", "Grep", "Glob",
      "mcp__database__query"
    ],
    "deny": [
      "Bash(rm -rf *)", "Write(/etc/**)", "Write(.env*)",
      "mcp__slack__delete_*"
    ],
    "ask": [
      "Bash(git push *)", "Write(*.json)", "Write(*.lock)",
      "mcp__slack__post_message"
    ]
  }
}

context: fork ve model seçiminin önbelleğe etkisi

  • Skill içinde context: fork ayarlanırsa arka planda çalışan forked subagent olarak yürütülür
  • Fork, CacheSafeParams adlı typed contract üzerinden ebeveynin prompt cache'ini paylaşır ve önbellek isabet oranını artırmak için byte-identical API request prefix üretir
  • Forked Skill için farklı bir model belirtilirse prefix değişebilir ve önbellek bozulabilir
  • Ebeveyn konuşma Opus, fork ise Haiku olduğunda prefix değişir, cache miss oluşur ve tam maliyet ödenir
  • Forked Skill'de model alanı atlanmalı ya da önbelleği korumak için model: inherit kullanılmalıdır
  • context: fork; güvenlik taraması, bağımlılık analizi, belge üretimi ve test suite çalıştırma gibi ağır işler için uygundur; ana konuşma ise tepkiselliğini korur
---
name: full-audit
description: Comprehensive codebase audit running in the background
context: fork
allowed-tools: Bash, Read, Grep, Glob, WebSearch
effort: high
---
Run a comprehensive audit:
- Security scan (grep for dangerous patterns, check dependencies for CVEs)
- Code quality (duplicated logic, dead code, missing error handling)
- Test coverage (untested critical paths)
- Dependency health (outdated packages, unused deps, license issues)

Write a detailed report to /tmp/audit-report.md when complete.

Özellik kombinasyonu örnekleri

  • Kalıcı bellek ve kapsam Hook'u olan kod inceleyici

    • Agent, kod tabanına özel belleği okur; geçmişte bulunan örüntüler ile yeni sorunları birlikte inceler ve ardından yeni bulguları tekrar belleğe kaydeder
    • Birden fazla incelemeden geçildiğinde, sıradan bir inceleyicinin gözden kaçırabileceği projeye özgü tekrar eden sorunları yakalamaya yardımcı olur
---
name: reviewer
description: Code reviewer that learns your codebase patterns over time
tools: [Read, Grep, Glob, Bash]
effort: high
color: yellow
memory: project
hooks:
  PostToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "~/.claude/hooks/log-review.sh"
          async: true
---
Before reviewing, read your memory for past findings on this codebase.

Review git diff HEAD~1 for:
- Patterns you've flagged before (check memory)
- New issues worth flagging
- Resolved issues from past reviews

After review, save to memory:
- New patterns found (type: feedback)
- Recurring issues (type: project)

End with VERDICT: PASS, FAIL, or NEEDS_REVIEW.
  • Dosya izleme ile asyncRewake güvenlik ağını birleştiren oturum ayarı

    • Oturum başlarken proje bağlamını yükler, salt okunur Bash komutlarını anında otomatik onaylar ve tehlikeli komutları eşzamansız güvenlik kontrolüyle engeller
    • Salt okunur komutlar hızlıca geçer, tehlikeli komutlar engellenir, geri kalanlar ise normal yetki akışını izler
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }],
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }, {
        "type": "command",
        "command": "~/.claude/hooks/block-dangerous.sh",
        "asyncRewake": true,
        "statusMessage": "Safety check..."
      }]
    }]
  }
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
echo "$CMD" | grep -qE '(rm -rf /|sudo rm|chmod 777|> /dev/)' && exit 2 || exit 0
  • Model override, effort kontrolü ve Agent delegasyonunu birleştiren mimari inceleme

    • effort: max ile derin analiz belirtilir, belirli bir Agent'a delege edilir ve bu Agent'ın omitClaudeMd: true ayarıyla mevcut proje alışkanlıklarının etkisi azaltılır
---
name: architecture-review
description: Deep architecture review using max effort, delegated to fresh-eyes agent
agent: fresh-eyes
effort: max
---
Review the architecture of this project. Ignore existing conventions (the agent has omitClaudeMd: true).
Focus on: $ARGUMENTS

Evaluate structural decisions, dependency graph health, separation of concerns, and scalability characteristics.

Anlamı ve sınırları

  • Etkinlik bazlı yanıt alanlarına sahip Hook sistemi, AI araç kullanımına yönelik programlanabilir bir middleware katmanı olarak çalışır
  • Kalıcı Agent belleği, oturumların ötesinde deneyim biriktiren AI uzmanları oluşturmayı mümkün kılar
  • Dream entegrasyon sistemi, model yeniden eğitimi olmadan oturum deneyimlerinden öğrenen bir yapı sunar
  • Auto Mode sınıflandırıcısı, doğal dilde ortam açıklamalarını alır ve bunları güvenlik değerlendirmesine yansıtır
  • Bu özellikler gizli ayarlar ya da easter egg'lerden ziyade, kalıcı, öğrenen ve otonom bir AI geliştirme ortamı için temel yeteneklerdir ve şu anda npm paketinin içinde zaten bulunmaktadır

1 yorum

 
GN⁺ 3 시간 전
Hacker News yorumları
  • Pangram ile kontrol edince bunun bariz şekilde yapay zeka tarafından üretilmiş bir yazı olduğu görülüyor
    Bu kadar çok tavsiye almasına şaşırdım; insanlar gerçekten yazıyı okudu mu emin değilim. @dang'in yorumlar için yapay zeka üretimi içerik kuralları koyduğunu ama yazılar için hâlâ isteksiz davrandığını biliyorum. Şahsen, böyle düşük kaliteli yazılarla zaman kaybetmemek için yazılarda da bir şikayet işareti olsa iyi olurdu

  • Bunların hepsi zaten belgelenmiş durumda [1]. Once da belgelenmiş [2], async ve asyncRewake de belgelenmiş [3]. Skills frontmatter'ı da tamamen belgelenmiş [4], Automode ortam dizgesi de belgelerde var [5]
    Bu yazı düpedüz yapay zeka yazımı clickbait ve burada bu kadar iyi tepki almasına şaşırdım
    [1] https://code.claude.com/docs/en/hooks#pretooluse-decision-co...
    [2] https://code.claude.com/docs/en/hooks#common-fields
    [3] https://code.claude.com/docs/en/hooks#command-hook-fields
    [4] https://code.claude.com/docs/en/skills#frontmatter-reference
    [5] https://code.claude.com/docs/en/auto-mode-config#define-trus...

  • Bu yazı 2 ay önceki bir yazı, dolayısıyla bazı kısımları eski; bazı özellikler de zaten belgelenmiş durumda
    Örneğin auto mode belgeleri burada: https://code.claude.com/docs/en/auto-mode-config#define-trus...

  • claude paketi için her hafta 10 yeni sürüm çıkıyor, birkaç ayda bir de yeni model geliyor; bu yüzden çevresindeki belgelenmemiş numaralara güvenmemek lazım
    Değişmeleri, bozulmaları ve aşırı ayrıntılı ayarları kırmaları çok olası

    • Benim deneyimimde belgelenmemiş numaralar, belgelenmiş özellikler kadar sık bozuluyor
      1M Opus'u çıkardıktan sonra “bağlam penceresi artık sorun değil” diyerek “clear context and execute plan” seçeneğini kaldırmaları gibi
    • Her yeni sürüm çıktığında düşük seviyeli kullanıcı ayarlarını verimli biçimde ele alan otomasyonlar oluşturmak mümkün
    • Doğru, ama geçici hack'ler bazen en ileri iş akışlarını kurtarıp bazen de mahvedebiliyor
      Her sürümde Claude talimatlarını baştan tasarlamıyorum ama bazı sürümlerde mevcut talimatların güncel modele uygun olup olmadığını kontrol etmek değerli oluyor ve gerçekten fark yaratıyor
  • Claude Code'un özellik sayısı nefes kesici. Bu hızla giderse bir sonraki papa Anthropic'ten çıkar

    • Şakayı bir kenara bırakırsak, Anthropic'in dışarı döktüğü şeyler o kadar fazla ki güvenmek zorlaşıyor
      Bu şekilde yeterince düşünülmüş ve istikrarlı bir ürün çıkarmaları zor görünüyor
  • “Honest status” deyip %100 olmadığını ve neden daha uzun yoldan gittiğini dürüstçe söyleyecekmiş gibi davranıyor: https://github.com/user-attachments/assets/961eff6c-0060-45d...
    Ben sadece Claude Code'un görevi tamamlamaktan vazgeçmemesini istiyorum. Çok sinir bozucu. /goal ya da yeni ultracode kullansam da sürekli vazgeçiyor. Projem epey karmaşık gerçi (https://github.com/mohsen1/tsz), ama Codex böyle durup kalmıyor, bastırıp devam etmekte sorun yaşamıyor

    • Artık devam etmesi için motive eden bir prompt vermek üzere /loop kullanıyorum
      Goal da kullanılabilir ama bazı işler için basit bir döngü daha iyi
    • Ben de az önce Claude'a görev listesini doldurttum; listenin sonuna gelmeden, devam etmesi gerekip gerekmediğini ya da bir kısmını yapmasının yeterli olup olmadığını sormaya başladı
  • Genel olarak LLM modellerinde bir ölçüde ortak bir yapay zeka kodlama ajanı uygulama mimarisi oluşup oluşmadığını merak ediyorum
    Bu mimari tarzını anlama yollarını toplayıp derleyen biri var mı onu da merak ediyorum

    • Aynı sitede miyiz? Bugünlerde onun dışında bir şey kullanan var mı?
    • Claude Code, Codex ve Cursor genelindeki desenler yakınsıyor gibi görünüyor: bağlam toplama, planlama, yürütme, doğrulama
      Daha az standartlaşmış olan kısım, her aşama arasında kullanıcıya ne kadar kontrol verildiği. showClearContextOnPlanAccept ve disableAutoMode gibi ayarlar, “ajan karar verir” ile “insan çalıştırmadan önce inceler” arasındaki sınırı görünür kıldığı için ilginç. Gerçek kullanım hissinde kodlama ajanlarının en çok farklılaşmaya devam edeceği yer de burası gibi duruyor
  • “magic doc” özelliğini merak ediyorum. Bunun CLAUDE.md içine mi konduğunu yoksa proje dosyasına mı eklendiğini bilmiyorum
    Oturum sırasında o dosyadan söz etmek gerekip gerekmediğini de merak ediyorum; yoksa Claude proje içinde “magic doc” başlığı geçen her yeri otomatik olarak mı buluyor?

  • Claude'a kendi ayarlarını kendisinin oluşturmasını söyleyebilir miyiz? Mesela “kendini benim yerime koy ve istediğin en iyi ayar dosyaları paketini oluştur” gibi

    • Belgelere göre CLAUDE_CODE_NEW_INIT değerini 1 yaparsanız, /init etkileşimli bir yapılandırma akışı olarak çalışıyor
      Bu akış, kod tabanını gezip dosya yazmadan önce CLAUDE.md, skills, hooks ve benzeri hangi dosyaları oluşturacağını soruyor. Bu değişken yoksa /init sormadan otomatik olarak CLAUDE.md üretiyor
    • Muhtemelen mümkün. Kendi belgelerini gezebilen yerleşik araçları var gibi görünüyor ve .claude/ dizininde çalışan özel bir mod da mevcut
      Kullanıcının bunu yapması amaçlanmış gibi duruyor
    • En iyi pratikleri içeren tüm boilerplate dosyalarına sahip bir cookie cutter projesi olsa güzel olurdu
    • Sohbet geçmişini tarayıp izinler ekleyen bir slash komutu var
    • Mümkün. Claude kendi kendini değiştirme konusunda oldukça iyi
  • Güvendiğiniz belgelenmemiş özelliğin bir anda çalışmayı bırakmasını keşfetmenin keyfini çıkaracaksınız

    • Anthropic'in iddia ettiği gibi yazılım mühendisliği gerçekten çözülmüş bir problemse, herkesin bunu sadece vibe coding ile yeniden yapabilmesi gerekir
      “open” kelimesine alerjileri olmasaydı Claude Code'u açık kaynak yaparlardı; şu noktada bunu yapmamaları için gerçek bir neden yok