Modül 5 · Domain 4 — Eval & tuning (%15-20) · ⏱ 13 dakika

Başarı kriteri, eval sinyalleri, otomatik tarama

Success criteria, evaluation signals, automated scanning

Bu derste neler öğreneceksin

  • Expected outcome ve operational constraint'i ayrı tanımlamayı öğrenmek
  • Nicel ve nitel sinyalleri birlikte kullanmayı kavramak
  • GitHub'ın otomatik tarama araçlarını (CodeQL, secret, dep review) eval sinyali olarak yapılandırmak
  • 'Geliştirme niyetiyle hizalı kriter' kuralı Goodhart's Law trap'ini önlemek

Domain 4.1 — eval’in temeli: ne ölçüyorsun, neyi başarı sayıyorsun. Yanlış kriter = optimize edilen yanlış şey.

Expected outcome ve operational constraint — ayrı şeyler

Expected outcomeOperational constraint
SoruNe üretmeli?Nasıl çalışmalı?
Örnek”Tüm testler geçer""120 saniye içinde bitir, max 2GB RAM”
EksikliğiHedefsiz işSınırsız resource kullanımı

İkisi birlikte zorunlu. Domain 4.1: “Specify expected outcomes and operational constraints for agent tasks”.

Expected outcome örnekleri

  • “PR’daki failing test’leri yeşillendir”
  • “Issue’yu uygun label ile etiketleme”
  • “Dependency major version bump için risk değerlendirme yorumu yaz”

Operational constraint örnekleri

  • Latency: “agent görevi max 10 dakikada bitirir”
  • Resource: “max 4GB RAM, 2 CPU”
  • Token bütçe: “max 50K token / oturum”
  • Yan etki: “main branch’e yazma yok”
  • Network: “sadece allowlist’teki domain’lere erişim”
  • Maliyet: “max $0.50 / görev”

Nicel ve nitel sinyaller — ikisi birden

Nicel sinyaller (sayılabilir)

SinyalKaynak
Test pass rateCI test runner
Test coverage %coverage tool
Lint error countlinter
CodeQL finding count + severityCodeQL
Secret scanning alertssecret-scanning
Dependency vulnerability countdependency-review
PR review yorumu sayısıGitHub API
PR merge timeGitHub API
Agent task completion timeActions runtime

Nitel sinyaller (yargısal)

SinyalKaynak
Code review yorumu içeriğiİnsan
”Bu PR mantıklı mı” assessmentİnsan
Approach uygunluğuArchitect review
Edge case handlingQA

Trap (Goodhart’s Law): Sadece nicel metric kullanırsan agent metric’i optimize eder ama amaç kaybolur. Örnek: “satır sayısını azalt” → okunaksız tek-satır kod. Nitel + nicel birlikte gerekli.

Geliştirme niyetiyle hizalı kriter

Domain 4.1 bullet: “Align evaluation criteria with development intent”.

Yanlış hizalama örnekleri

Yanlış kriterNiyetle çelişme
”Satır sayısını azalt”Okunabilirlik kaybı
”Test sayısını maksimize et”Anlamsız test inflation
”PR sayısını artır”Mikro PR spam
”Issue close hızı”Acele kapatma, gerçek çözüm yok
”Tek dosyaya sığdır”Modülerite kaybı

Doğru kriter pattern’i

agent_task:
  goal: "Improve auth flow latency by 30%"
  success_criteria:
    quantitative:
      - "p99 latency < 200ms (was 300ms)"
      - "All existing auth tests pass"
      - "No new CodeQL findings"
    qualitative:
      - "Code reviewer approves architecture"
      - "No security review concerns"
  operational_constraints:
    - "No breaking changes to public API"
    - "Backwards compatible for 1 release"

GitHub otomatik tarama araçları (Domain 4.1 spesifik)

Bullet: “Generate evaluation signals by using automated scanning tools”.

AraçNe tararEval sinyaliSetup
CodeQLSemantic kod analizi (security, quality)Finding count + severitycode-scanning.yml workflow
Secret scanningPush’lanan secret’lar (token, key)Sızıntı sayısıSettings → Code security
Dependency reviewPR’daki yeni dependency vulnerability + licenseVulnerability count + license riskdependency-review-action
DependabotOutdated dependency + known CVEOpen Dependabot alert countSettings → Code security
Actions test/lint job’larıTest pass/fail, lint errorPass rate, error countWorkflow

CodeQL setup (örnek)

name: codeql
on:
  pull_request:
    branches: [main]
  schedule:
    - cron: '0 0 * * 0'
jobs:
  analyze:
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      contents: read
    steps:
      - uses: actions/checkout@v4
      - uses: github/codeql-action/init@v3
        with:
          languages: javascript-typescript
      - uses: github/codeql-action/analyze@v3

PR’a otomatik kontrol koyar. Finding varsa PR check ✗.

Dependency review

name: dependency-review
on: [pull_request]
permissions:
  contents: read
  pull-requests: write
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/dependency-review-action@v4
        with:
          fail-on-severity: high
          comment-summary-in-pr: true

Sinyalleri eval döngüsüne bağlamak

Otomatik tarama tek başına faydalı değil — sinyaller agent’ın çıktısının değerlendirmesi olarak kullanılır:

Agent çıktı (PR)

Tarama gate'leri (CodeQL, secret, dep review, test)

PR check sonuçları = nicel eval sinyali

Geçmedi mi? → Agent feedback'ı al, plan revize, retry
Geçti mi? → İnsan review (nitel sinyal)

Approval → merge

Mini quiz — Success criteria & signals (3 soru)

Bir agent için 'success criteria' tanımlanırken sadece 'PR açıldı' yetersizdir. Neden?

GitHub'da agent çıktısı için 'otomatik eval sinyali' üreten araçlar hangileridir?

Operational constraint örneği hangisidir?

Sırada ne var?

Bir sonraki derste RCA (root cause analysis) üçlü sınıflandırması derin — sınavın imza sorusu burada.