# Proje yapısı

> create-trkit-app ile oluşturulan projedeki dosyalar ve ne işe yaradıkları.

```text
benim-sitem/
├── AGENTS.md                  # AI asistanları için proje kuralları
├── CLAUDE.md                  # Claude Code (AGENTS.md'yi içe aktarır)
├── .mcp.json                  # Claude Code için trkit MCP sunucusu
├── .cursor/
│   ├── mcp.json               # Cursor için trkit MCP sunucusu
│   └── rules/trkit.mdc        # Cursor kuralları
├── .vscode/mcp.json           # VS Code (Copilot) için trkit MCP sunucusu
├── .env.example
├── src/
│   ├── trkit.config.ts        # Şirket bilgileri; yasal metinler buradan üretilir
│   ├── app/
│   │   ├── layout.tsx         # lang="tr", font, çerez onayı, header/footer
│   │   ├── page.tsx
│   │   ├── not-found.tsx      # Türkçe 404
│   │   ├── error.tsx          # Türkçe hata sayfası
│   │   ├── iletisim/          # Örnek form: server action + zod + il/ilçe
│   │   ├── kvkk/              # Yasal sayfalar (şablona göre değişir)
│   │   ├── cerez-politikasi/
│   │   ├── api/consent/       # Çerez onay kayıtları
│   │   ├── robots.ts
│   │   └── sitemap.ts
│   ├── components/
│   │   ├── site-header.tsx
│   │   ├── site-footer.tsx    # Yasal bağlantılar + "Çerez Tercihleri"
│   │   └── trkit/             # trkit bileşenleri (sizin kodunuz, düzenleyebilirsiniz)
│   └── lib/
│       ├── site.ts            # Site adı, menü ve footer bağlantıları
│       └── zod.ts             # Türkçe hata mesajlı zod
└── package.json
```

trkit CLI dizin yollarını (`src/app`, `src/components`, import takma adı) projeden otomatik algılar. Farklı bir düzen kullanıyorsanız `npx trkit init` ile oluşan `trkit.json` dosyasında değiştirebilirsiniz.

## İki tür kod

**npm paketleri** (`@trkit-app-pack/validate`, `@trkit-app-pack/format`, `@trkit-app-pack/legal`…): Mantık ve veri. Güncellemeleri `npm update` ile alırsınız. Örneğin mevzuat değiştiğinde yasal metin şablonları yeni sürümle güncellenir.

**Kopyalanan bileşenler** (`src/components/trkit/`, yasal sayfalar, `src/lib/pay.ts`…): shadcn/ui'daki gibi projenize kopyalanır, size aittir. Tasarımı ve davranışı istediğiniz gibi değiştirebilirsiniz.

## `src/lib/zod.ts`

zod'un hata mesajlarını Türkçe yapar. Şemalarınızda zod'u doğrudan değil buradan içe aktarın:

```ts
import { z } from "@/lib/zod";

z.string().min(3).parse("a"); // "En az 3 karakter olmalıdır"
```

## `src/lib/site.ts`

Site adı, açıklaması, üst menü ve footer'daki yasal bağlantılar burada. Yeni bir yasal sayfa eklediğinizde (`npx trkit add mesafeli-satis`) bağlantısını `legal` dizisine ekleyin.
