Sprint retrolarını ve onlardan çıkan aksiyonları unutmadan yönetmek için yapılmış, yerel AI destekli bir takip uygulaması.
Prompt Sprint AI Hackathon — Retro & Action Tracker konusu için geliştirildi.
🚀 Canlı demo: https://retrocell.vercel.app/
- Ne işe yarar?
- Çözdüğü problem
- Öne çıkan AI özellikleri (X-Factor)
- Hızlı başlangıç
- .env.example
- Kullanılan AI araçları
- Entegre edilen API'ler
- MCP listesi
- Deploy URL
- Dökümantasyon
- Teknoloji yığını
- Lisans
Retro Tracker, scrum retrospektif süreçlerini tek bir Türkçe arayüzde toplayan, retro toplantılarında alınan aksiyon maddelerinin unutulmamasını sağlayan bir kanban + aksiyon takip aracıdır:
- Sprint Notları — sprint boyunca akıl(da)a düşen "retroda konuşalım" notlarını sürükle-bırak ile retroya taşırsın.
- Retro Board — Türkçe
İyi Gitti / Kötü Gitti / Aksiyonkanban kolonları, in-place edit, sürükle-bırak, hover ile bağlı kartı vurgulama. - Aksiyonlar sayfası — tüm retrolardan çıkan aksiyonlar tek tabloda, 30+ gündür açık olanlar kırmızı.
- Geçmiş & İçgörüler — kapanmış retrolar, kapanma yüzdesi grafiği ve tekrar eden konuların yerel AI ile tespiti.
"Ekipler retroları dış platformlarda yapıyor, alınan kararlar sonraki sprintlerde unutulup havada kalıyor."
Retro Tracker bu "unutulma" problemini üç katmanda çözer:
- Aksiyon dual-write — bir karta
→ Aksiyondeyince hem/actionstablosuna hem retro boardun "Aksiyon" kolonuna eş zamanlı kayıt düşer. Aksiyon hiçbir yerde gözden kaçmaz. - 30+ gün uyarısı — açık aksiyonların yaşı her ziyarette hesaplanır, eski olanlar kırmızı şeritle işaretlenir.
- Yerel AI uyarıları — yeni bir kart eklendiğinde geçmiş retrolardaki benzer maddeleri ve hâlâ açık aksiyonları otomatik yüzeye çıkarır ("Aynı konu Sprint 22'de açıldı, CI/CD aksiyonu 45 gündür açık").
Detaylı problem analizi: docs/PROBLEM.md.
| Özellik | Nerede | Ne yapıyor |
|---|---|---|
| Benzerlik tespiti | Yeni kart girişinde | Geçmiş retrolarda aynı konunun konuşulup konuşulmadığını söyler, ilgili aksiyonun yaşını hatırlatır |
| Muğlaklık kontrolü | Yeni kart girişinde | "Süreç kötü" gibi muğlak ifadeleri yakalar, somutlaştırıcı soru üretir |
| Tekrar eden konu | /history sayfası |
Kapanmış retrolarda iki veya daha fazla retroda geçen ortak temayı vurgular |
Üç özellik de local LLM (Ollama) ile çalışır; LLM erişilemezse deterministik mock heuristics devreye girer ve demo asla kırılmaz. Detay: docs/AI-STRATEGY.md.
- Node.js 24.15.0 (
package.json > enginesile pinlenmiş) - npm (Node ile birlikte gelir)
- İsteğe bağlı: Yerel Ollama (varsayılan model
llama3.2). Yoksa uygulama mock heuristics ile çalışır.
Geliştirme veya kendi makinende denemek için:
git clone https://github.com/<org>/retrocell.git
cd retrocell
npm install
cp .env.example .env.local # opsiyonel — sadece Ollama kullanacaksan
npm run dev # http://localhost:3000Geliştirme sırasında kullanılacak diğer komutlar:
npm run dev # next dev (port 3000) — hot reload
npm run lint # eslint
npx tsc --noEmit # typecheck (test suite yok, bu kontrol birincil)Canlıya almadan önce production build'in kendi makinende çalıştığını doğrulamak için:
npm run build # next build (Turbopack) — production output
npm run start # next start (port 3000) — production servernpm run start Vercel deploy'unun yaptığının lokal eşdeğeridir. Önce build çağırıp sonra start'lamalısın.
Herhangi bir kurulum yapmadan direkt jüri demosunu görmek için:
👉 https://retrocell.vercel.app/
Vercel üzerinde host ediliyor. Demo state her tarayıcının kendi localStorage'ında tutulur — başka bir kullanıcının verisini görmezsin, kendi Reset butonun her zaman seed state'e döndürür.
Not: Canlı sürümde Ollama yoktur; AI özellikleri
mock heuristicsile çalışır. Demo akışı yine deterministik (bkz.lib/ai/heuristics.ts).
Test suite yoktur — hackathon kapsamında doğrulama type-check + lint + manuel demo akışı ile yapılır.
Üst sağdaki dairesel ok ikonu (store.reset()) tüm state'i seed verisine geri alır. Tüm state localStorage > retro-tracker.v2 altında tutulur, backend yoktur.
Repoda .env.example mevcuttur. İçeriği:
# Yerel Ollama endpoint'i. Çalışmıyorsa uygulama otomatik mock heuristics'e düşer.
OLLAMA_URL=http://localhost:11434/api/generate
# Kullanılacak Ollama modeli. JSON-mode destekleyen bir model olmalı.
OLLAMA_MODEL=llama3.2Hiçbir env değişkeni zorunlu değildir. İkisi de yoksa kod yukarıdaki değerleri default olarak kullanır (bkz. lib/ai/ollama.ts).
| Araç | Model | Nerede kullanıldı |
|---|---|---|
| Claude Code (CLI) | claude-opus-4-7 |
Mimari kararlar, kod yazımı, refactor, doc üretimi — tüm geliştirme süreci |
| Ollama (local, runtime) | llama3.2 (JSON mode) |
Üründeki benzerlik & muğlaklık kontrol API'lerinin asıl çalışan modeli |
| Mock heuristics (fallback) | Deterministik, kod | Ollama erişilemezse devreye giren güvence katmanı |
Geliştirme sürecinde Claude Code'a verilen kalıcı talimatlar:
CLAUDE.md— kök seviyede Claude Code project rules (mimari, store invariantları, DnD MIME types, AI flow, demo davranışı)AGENTS.md— Next.js 16 uyarısı, "training data'nın yanıltıcı olduğu" notu
AI iş bölümü ve orkestrasyon detayı: docs/AI-STRATEGY.md.
| API | Tip | Açıklama |
|---|---|---|
POST /api/ai/similarity |
İç (Next.js Route Handler) | Yeni kart ile geçmiş kartları karşılaştırır, Ollama → mock fallback |
POST /api/ai/vagueness |
İç (Next.js Route Handler) | Kartın muğlak olup olmadığını söyler, Ollama → mock fallback |
http://localhost:11434/api/generate |
Dış (yerel) | Ollama generate endpoint'i, sadece sunucu tarafından çağrılır |
Dış üçüncü taraf API yok. Tüm AI kullanımı yerel — internet bağlantısı gerekmez, gizli veri sızması yoktur.
MCP sunucusu kullanılmadı. Geliştirme tamamen Claude Code'un yerleşik tool seti (Read, Edit, Write, Bash, Grep) ile yürütüldü.
🚀 Canlı: https://retrocell.vercel.app/
- Host: Vercel
- Branch:
mainpush → otomatik deploy - State: her tarayıcının kendi
localStorage'ında, backend yok - AI: canlı sürümde Ollama olmadığından mock fallback devrede — demo akışı yine deterministik
Tüm proje dökümantasyonu docs/ altındadır:
| Dosya | İçerik |
|---|---|
docs/README.md |
Doc index |
docs/PROBLEM.md |
Problem tanımı, hedef kullanıcı, çözüm yaklaşımı |
docs/PLAN.md |
Proje planı, MVP scope, in/out kararları |
docs/PHASES.md |
14:30–17:30 geliştirme fazları, ne zaman ne yapıldı |
docs/ARCHITECTURE.md |
Klasör yapısı, store, DnD, AI flow, veri modeli |
docs/AI-STRATEGY.md |
AI iş bölümü ve orkestrasyon, prompt yapısı |
docs/DEMO.md |
7 dakikalık sunum scripti |
- Next.js 16.2.6 (Turbopack, App Router)
- React 19.2.4
- TypeScript 5
- Tailwind CSS v4 (PostCSS, utility-first)
- lucide-react — ikonlar
- Ollama (
llama3.2) — yerel LLM, opsiyonel - Hand-rolled store:
useSyncExternalStore+localStorage(Redux/Zustand yok) - Native HTML5 Drag & Drop (özel MIME types ile)
Hackathon submission. Kişisel kullanım için.