# Codex ile NestJS projesinde verimli çalışma rehberi

Adres: https://agentvera.dev/blog/codex-ile-nestjs/ · Yayın: 2026-11-01

Codex ile NestJS projesinde modül, DTO, test ve TypeORM/Prisma işlerini hızlandırın. AGENTS.md kurulumu, çalışma döngüsü ve doğrulama adımları.

**Kısaca:**

- AGENTS.md dosyasına NestJS komutlarını, klasör sözleşmesini ve validasyon kurallarını yazarsan Codex tutarlı değişiklikler yapar.
- Codex ile modül, DTO, servis ve test işlerini küçük adımlarla yürütüp her adımda lint, test ve build doğrulaması yapmalısın.
- Paralel çalışmada AgentVera’nın worktree, otomatik kod inceleme ve checkpoint özellikleri NestJS risklerini azaltır.

[Codex](/ajanlar/codex/), NestJS projesinde `codex` komutuyla doğrudan terminalde çalışır; modül, controller, DTO ve provider dosyalarının net sınırları sayesinde değişiklikler denetlenebilir kalır. Projeye özel kuralları `AGENTS.md` dosyasına yazıp küçük görevlerle test-diff döngüsü kurduğunuzda NestJS işleri ciddi hızlanır. Bu rehberde kurulum, çalışma düzeni ve doğrulamayı TypeORM ile Prisma kullanımına uygun şekilde anlatıyorum.

## Codex NestJS işlerinde neden iyi çalışır?
NestJS kuralcı bir yapı sunar; controller, service, module ve DTO ayrımı ajan için tahmin edilebilir dosya sınırları oluşturur. Decorator tabanlı dependency injection, validation pipe ve modül metadata’sı gibi tekrarlı kalıplar Codex’in hızlı ve tutarlı ürettiği bölümlerdir. Örneğin, `@Module` içinde provider listesini güncellerken import/export dengesini korur; `class-validator` dekoratörlerini mevcut DTO ile tutarlı üretir. Ayrıca `npm run lint`, `npm run test` ve `npm run build` komutları deterministik olduğundan ajan kendi çıktısını doğrulayabilir; bu döngü NestJS’in katı tip sistemine uygundur. Katmanlar arası bağımlılık net olduğu için ajanın yaptığı hata da hızlı fark edilir: eksik `exports`, yanlış inject token’ı veya unutulan `ValidationPipe` genellikle derleme veya test aşamasında yakalanır.

## Projeyi ajana hazırlama: AGENTS.md
`AGENTS.md` dosyası Codex’in her görevde okuduğu proje sözleşmesidir. İçine build, test, lint komutlarını; modül ve dosya sözleşmesini; NestJS’e özgü geçerli kuralları yazın. Kısa ve net bir dosya, uzun sohbet geçmişinden daha güvenilirdir; bu pratiği [bağlam mühendisliği](/blog/baglam-muhendisligi/) olarak da düşünebilirsiniz. Aşağıdaki örnek TypeORM kullanan bir proje içindir; Prisma kullanıyorsanız aynı komutlar geçerlidir, ayrıca `prisma.schema` dosyasının `src` dışında olduğunu, `PrismaService` sağlayıcısının global modülden export edildiğini ve migration komutlarını (`npx prisma migrate dev`, `npx prisma generate`) ekleyin.

```
# AGENTS.md

## Komutlar
- Kurulum: `npm ci`
- Geliştirme: `npm run start:dev`
- Test: `npm run test`
- E2E test: `npm run test:e2e`
- Lint: `npm run lint`
- Build: `npm run build`

## Klasör sözleşmesi
- Her özellik `src/modules/<feature>/` altında modül olarak durur.
- `controller`, `service`, `module`, `dto`, `entity` dosyaları ayrı tutulur.
- Ortak guard, pipe, interceptor `src/common/` altındadır.
- E2E testler `test/` altında, unit testler ilgili dosyanın yanında `*.spec.ts` olur.

## NestJS kuralları
- Tüm gelen istekler `main.ts` içinde `app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true }))` ile doğrulanır.
- DTO alanlarında `class-validator` dekoratörleri zorunludur; boş DTO kabul edilmez.
- Servisler yalnızca aynı modülden import edilir; başka modüle lazımsa provider `exports` içine eklenir.
- TypeORM repository işlemleri serviste yapılır; controller doğrudan repository bilmez.
- Değişiklik sonrası `npm run lint`, `npm run test` ve `npm run build` geçmelidir.
```

| Dosya | Amaç |
| --- | --- |
| `AGENTS.md` | Proje kuralları ve ajan sözleşmesi |
| `src/main.ts` | Global pipe, prefix ve bootstrap |
| `src/app.module.ts` | Kök modül ve bağımlılık kurulumu |
| `src/modules/<feature>/` | Özellik modülü; controller, service, dto |
| `src/common/` | Guard, pipe, interceptor gibi ortak bileşenler |
| `test/` | E2E test kurulumu |

Bu dosyayı her değişiklikten önce güncelleyin: yeni bir modül eklendiğinde, yeni bir global pipe devreye girdiğinde veya test komutu değiştiğinde `AGENTS.md` de güncellensin. Ajan eski kurallarla çalışırsa NestJS’in DI hataları ve yanlış import’ları artar.

## Çalışma döngüsü ve örnek görevler
Görevleri küçük parçalara bölün: önce DTO’yu, sonra servis metodunu, sonra testi yazdırın. Her adımda `git diff` ile değişiklikleri inceleyin; `npm run lint`, `npm run test` ve gerekirse `npm run build` çalıştırın. Hata çıktısını ajana gösterip düzeltmesini isteyin; plan istemeden büyük refactor yaptırmayın. Ajan bir modülün tamamını tek seferde yazarsa, DI token hataları ve test eksikleri aynı anda ortaya çıkar; küçük adımlar hatayı izole etmeyi kolaylaştırır.

Örnek komutlar:
- `UsersModule` içinde `create-user.dto.ts` dosyasını güncelle; email’in formatını `@IsEmail` ile doğrula, şifre en az 8 karakter olsun; hata mesajlarını Türkçe yaz.
- `AuthService` içinde `JwtService` kullanarak `login` metodunu yaz; `JwtModule.registerAsync` ile `ConfigService`'den secret oku; unit testi ekle.
- `app.module.ts` içinde TypeORM bağlantısını `ConfigModule.forRoot({ isGlobal: true })` ile birlikte çevre değişkenlerinden okuyacak şekilde güncelle.
- Jest e2e testinde `supertest` ile `POST /users` isteği 201 dönmüyorsa, `ValidationPipe` eksik mi kontrol et ve düzelt.
- `PostsModule` içinde `PostsService` metodlarına `NotFoundException` ekle; ilgili unit testleri de güncelle.

Her komut sonrası ajanın ürettiği testleri de inceleyin; `only` veya `skip` kullanıp kullanmadığına bakın. E2E testlerde gerçek veritabanı yerine test container veya SQLite geçici dosya kullanmasını isteyebilirsiniz.

## Codex’in iyi yaptığı ve dikkat edilmesi gereken NestJS işleri
Ajan; modül oluşturma, DTO ve validasyon yazma, standart CRUD servisleri, guard-pipe-interceptor uygulama, TypeORM repository sorguları, Prisma client entegrasyonu ve Jest test taslakları gibi tekrarlı işlerde hızlıdır. Özellikle `@Module` metadata’sı, provider listesi ve DI token’larını tutarlı üretir. Aynı şekilde `class-validator` dekoratörlerinin yaygın kullanımlarını ve `GlobalPrefix`, `CORS`, `helmet` gibi bootstrap ayarlarını bilir.

Dikkat edilmesi gerekenler:
- Modül sınırları ve `exports` unutulması `Nest can't resolve dependencies` hatasına yol açar; ajanın eklediği her modülü inceleyin.
- Global `ValidationPipe` `main.ts` içinde kurulmadıysa DTO doğrulaması sessizce devre dışı kalır; e2e testler 400 yerine 201 dönebilir.
- Decorator tabanlı özelliklerde (`@InjectRepository`, `@Body`) tip bilgisi emit edilmediyse derleme hatası oluşabilir; `tsconfig` ayarlarını değiştirmesine izin vermeyin.
- E2E testlerde `app.close()` unutulursa Jest açık handle bırakır; test sonunda kapatmayı kontrol edin.
- TypeORM ilişkilerinde `@JoinColumn`, `cascade`, `lazy` seçeneklerini yanlış varsayabilir; repository sorgularını testle doğrulayın.
- DTO’larda `@IsOptional` ile `@IsString` birlikte kullanılmalı; ajan bazen yalnızca `@IsOptional` ekler ve tip doğrulaması zayıflar.
- Prisma’da enum ve relation adlarını schema’dan okumadan tahmin edebilir; schema dosyasını ajana gösterin ve migration üretmesini isteyin.

## NestJS’te test ve doğrulama
Ajanın çıktısını yalnızca diff’e bakarak onaylamayın. Sırasıyla `npm run lint`, `npm run test` ve `npm run build` çalıştırın. E2E testlerde veritabanı state’ini temizlemek için `beforeEach` içinde temizlik yapın veya test veritabanı kullanın. Başarısız test çıktısını Codex’e yapıştırıp düzeltmesini isteyin; ancak ajanın testi zayıflatmadığını diff üzerinden kontrol edin. `git diff --stat` ile değişen dosya sayısını görün; yalnızca ilgili modülün dosyaları değişmeli.

CI hatasını düzeltme akışını da benzer şekilde kurabilirsiniz; hata logunu ajanla paylaşıp [CI hatasını yapay zeka düzeltsin, PR yorumunu da](/blog/ci-hatasini-yapay-zeka-duzeltsin/) yaklaşımıyla PR üzerinde tartışabilirsiniz. Ajan başarısız bir e2e testi düzeltirken `ValidationPipe` eklemek yerine test beklentisini gevşetmesin; diff’te `expect` değişikliklerine dikkat edin.

## AgentVera ile paralel ajanlar
[AgentVera](/blog/agentvera-nasil-kullanilir/) masaüstü uygulamasında birden fazla Codex oturumu ayrı git worktree’lerde çalışır; böylece biri `UsersModule`, diğeri `OrdersModule` üzerinde dosya çakışması yaşamadan ilerler. Tur bitince ikinci model kodu otomatik inceler ve bulgular `file:line` bağlantısıyla gelir; bu NestJS’te unutulan `exports` veya eksik pipe gibi hataları yakalamak için pratiktir. Checkpoint’ler sayesinde kötü bir refactor tek tıkla geri alınabilir. Token bütçeleri de uzun e2e denemelerinde bağlamı sınırlı tutar.

## Kapanış
Codex, NestJS projesinde sözleşme net olduğunda hızlı ve güvenilir bir yardımcıdır. `AGENTS.md`, küçük görevler, test ve diff döngüsü disiplinini korursanız modül ekleme, validasyon ve servis işleri ciddi hızlanır. Paralel çalışmaya geçecekseniz AgentVera ile worktree ve otomatik inceleme katmanı eklemek riski azaltır.

## Sık sorulanlar

**Codex NestJS projesinde codex komutuyla nasıl başlatılır?** Proje klasöründe terminalde codex yazıp Enter’a basın; ajan mevcut dizini ve AGENTS.md dosyasını okur. Görevi doğal dille verin ve değişiklikleri küçük adımlarla isteyin.

**Codex NestJS’te DTO doğrulamasını doğru yazıyor mu?** Genellikle class-validator dekoratörlerini ve ValidationPipe kurulumunu bilir; ancak global pipe’ın main.ts içinde olduğundan emin olmalısınız. whitelist ve transform seçeneklerini açıkça belirtirseniz daha tutarlı çalışır.

**Codex ile NestJS testlerini çalıştırıp hataları düzeltebilir miyim?** Evet, npm run test veya npm run test:e2e çıktısını ajana yapıştırıp düzeltmesini isteyebilirsiniz. Ajanın testi zayıflatmadığını diff üzerinden kontrol edin.

**Codex NestJS projesinde TypeORM veya Prisma ile çalışırken neye dikkat etmeli?** Repository ve schema değişikliklerini migration üretmeden bırakmamasını isteyin; ilişki ve cascade ayarlarını testlerle doğrulayın. AGENTS.md içinde hangi ORM’nin kullanıldığını ve bağlantı yapılandırmasını netleştirin.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
