Vibecosystem understand-codebase

Codebase'i derinlemesine anla. Onboarding, architecture discovery, dependency mapping.

install
source · Clone the upstream repo
git clone https://github.com/vibeeval/vibecosystem
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/vibeeval/vibecosystem "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/understand-codebase" ~/.claude/skills/vibeeval-vibecosystem-understand-codebase && rm -rf "$T"
manifest: skills/understand-codebase/SKILL.md
source content

Understand Codebase

Onboarding Workflow (Yeni Developer)

Hizli Baslangic (5 Dakika)

1. Tech stack tespit:
   ls package.json go.mod pyproject.toml tsconfig.json Cargo.toml manage.py

2. Proje yapisi:
   tldr tree . --depth 2

3. Entry point'leri bul:
   tldr structure . --lang <detected-lang>

4. README/docs oku:
   cat README.md CONTRIBUTING.md docs/

5. CI/CD kontrol:
   ls .github/workflows/ .gitlab-ci.yml Jenkinsfile Dockerfile

Detayli Kesif (30 Dakika)

1. Architecture overview:
   tldr arch src/

2. Import/dependency graph:
   tldr calls src/

3. Test yapisi:
   tldr tree . --ext .test.ts,.spec.ts,.test.py,_test.go

4. Config dosyalari:
   ls *.config.* .env.example docker-compose.yml

5. Data modelleri:
   Grep "interface|type|class|struct|model" --type ts/py/go

Codebase Overview Olusturma

Otomatik Overview

# 1. Dosya dagilimi
tldr tree . | wc -l  # toplam dosya
tldr tree . --ext .ts,.tsx  # TypeScript dosyalari
tldr tree . --ext .test.ts  # Test dosyalari

# 2. Kod yapisi
tldr structure src/ --lang typescript
# Fonksiyonlar, class'lar, export'lar

# 3. Mimari katmanlar
tldr arch src/
# Entry (controller/handler) > Middle (service) > Leaf (util)

# 4. Dead code
tldr dead src/ --entry main,test_

Overview Template

# Project: <name>

## Tech Stack
- Language: <lang> <version>
- Framework: <framework> <version>
- Database: <db>
- CI/CD: <tool>

## Architecture
- Pattern: <MVC|Clean|Hexagonal|Monolith|Microservice>
- Entry points: <files>
- Layers: <controller → service → repository → model>

## Key Directories
- src/         → Kaynak kod
- tests/       → Test dosyalari
- config/      → Konfigürasyon
- scripts/     → Yardimci scriptler
- docs/        → Dokumantasyon

## Key Files
- <entry-file>  → Uygulama entry point
- <config-file> → Ana konfigürasyon
- <schema-file> → Data modelleri
- <route-file>  → API routing

## Data Flow
<request → middleware → controller → service → repository → database>

## External Dependencies
- <key-dep-1>: <purpose>
- <key-dep-2>: <purpose>

Architecture Dokumentasyonu

Katman Tespiti

# tldr arch ile otomatik tespit
tldr arch src/
# Cikti: entry_layer, middle_layer, leaf_layer, circular_deps

# Manuel tespit: import yonlerini takip et
tldr calls src/ --depth 3

Mimari Patern Tespiti

IpucuPatern
controllers/, routes/, handlers/MVC / REST API
domain/, application/, infrastructure/Clean Architecture
ports/, adapters/Hexagonal
services/, modules/Modular Monolith
packages/, apps/Monorepo
pages/, app/ (Next.js)File-based routing
resolvers/, schema/GraphQL
commands/, queries/, events/CQRS
aggregates/, entities/, value-objects/DDD

Architectural Decision Records (ADR)

# codebase-memory MCP ile ADR yonetimi
mcp_codebase_memory.manage_adr({
  action: "create",
  title: "Use PostgreSQL for primary database",
  status: "accepted",
  context: "Need ACID transactions, complex queries",
  decision: "PostgreSQL 16 with pgvector extension",
  consequences: "Need DBA expertise, managed service cost"
})

# ADR listele
mcp_codebase_memory.manage_adr({ action: "list" })

Key File Identification

Otomatik Tespit

# Entry point'ler
tldr structure . --lang typescript | grep -i "main\|index\|app\|server"

# Konfigürasyon
ls -la *.config.* .env* tsconfig.json package.json

# Schema/Model
tldr search "schema\|model\|entity\|interface" src/ --lang typescript

# Routing
tldr search "router\|route\|endpoint\|controller" src/

Kritik Dosya Kategorileri

KategoriNasil BulNeden Onemli
Entry pointmain.ts, index.ts, app.tsUygulamanin baslangici
Config.config., .envOrtam ayarlari
Schema/Modelmodels/, schema/, types/Data yapisi
Routesroutes/, controllers/API surface
Middlewaremiddleware/Cross-cutting concerns
Databasemigrations/, seeds/DB yapisi
Tests.test., .spec.Test coverage
CI/CD.github/workflows/Build/deploy
DockerDockerfile, docker-composeContainer config

Dependency Mapping

Package Dependency Analizi

# Node.js
cat package.json | jq '.dependencies, .devDependencies'

# Python
cat requirements.txt  # veya pyproject.toml
pip list --outdated

# Go
cat go.mod
go list -m all

# Rust
cat Cargo.toml

Internal Dependency Graph

# Dosyalar arasi import iliskileri
tldr calls src/ --depth 2

# Spesifik dosyanin import'lari
tldr imports src/services/auth.ts

# Kim bu modulu import ediyor?
tldr importers auth src/

# Impact analizi (refactoring oncesi)
tldr impact processOrder src/ --depth 3

Dependency Risk Analizi

RiskKontrolArac
CVE/vulnerabilitynpm audit / pip auditsnyk, dependabot
Outdatedmajor version farkinpm outdated
UnmaintainedSon commit 1+ yilGitHub API
License riskGPL in commerciallicense-checker
Size bloatBundle sizebundlephobia

Data Flow Tracing

Request-Response Flow

# Fonksiyon cagri zinciri
tldr calls src/ --depth 4

# Spesifik fonksiyonun cagri yolu
tldr trace_call_path src/ fromFunction toFunction

# Data flow analizi
tldr dfg src/services/order.ts processOrder

# Program slice (spesifik satiri etkileyen her sey)
tldr slice src/services/order.ts processOrder 42

Data Flow Mapping Template

USER INPUT
  → Validation (middleware/schema)
  → Controller (routing, request parse)
  → Service (business logic)
  → Repository (data access)
  → Database (persistence)
  → Response (serialization)
  → USER OUTPUT

Side effects:
  → Queue (async processing)
  → Cache (read optimization)
  → External API (3rd party)
  → Event bus (pub/sub)

State Management Flow (Frontend)

User Action
  → Event Handler (onClick, onChange)
  → State Update (useState, dispatch, store.set)
  → Re-render (component tree)
  → Side Effect (useEffect, subscription)
  → API Call (fetch, axios)
  → State Update (response)
  → Re-render

API Surface Discovery

REST API Endpoints

# Route tanimlarini bul
Grep "router\.(get|post|put|patch|delete)\|app\.(get|post|put|patch|delete)" src/

# Express/Fastify route'lar
tldr search "route\|endpoint" src/ --lang typescript

# OpenAPI spec varsa
cat openapi.yaml  # veya swagger.json

GraphQL Schema

# Schema tanimlarini bul
Grep "type Query|type Mutation|type Subscription" src/

# Resolver'lari bul
tldr search "resolver\|Resolver" src/

API Dokumantasyonu

Her endpoint icin:
  - Method + Path: GET /api/users/:id
  - Auth: Bearer token / API key / Public
  - Request: Query params, body schema
  - Response: Success (200), Error (4xx, 5xx)
  - Rate limit: X req/min

Test Coverage Mapping

Test Yapisi Analizi

# Test dosyalarini bul
tldr tree . --ext .test.ts,.spec.ts,.test.py,_test.go

# Test/source orani
echo "Source files:" && tldr tree src/ --ext .ts,.tsx | wc -l
echo "Test files:" && tldr tree . --ext .test.ts,.spec.ts | wc -l

# Hangi dosyalarin testi YOK
tldr dead src/ --entry test_  # test'lerden cagrilmayan fonksiyonlar

Coverage Raporu

# Node.js
npx jest --coverage --coverageReporters=text-summary

# Python
pytest --cov=src --cov-report=term-missing

# Go
go test -coverprofile=coverage.out ./...
go tool cover -func=coverage.out

Test Gap Analizi

Dosya/ModulUnit TestIntegrationE2ERisk
Auth servicevarvaryokHIGH
PaymentvarvarvarLOW
User CRUDvaryokyokMEDIUM
ConfigyokyokyokLOW

Tech Debt Identification

Otomatik Tespit

# Dead code
tldr dead src/ --entry main,test_,handle,route

# Buyuk dosyalar (800+ satir)
find src/ -name "*.ts" -exec wc -l {} + | sort -rn | head -20

# TODO/FIXME/HACK
Grep "TODO|FIXME|HACK|XXX|TEMP|WORKAROUND" src/

# Complexity (control flow)
tldr cfg src/services/complex.ts processData
# Cok fazla branch = refactoring gerekli

# Diagnostics (type error + lint)
tldr diagnostics src/ --project

Tech Debt Kategorileri

KategoriGostergelerOncelik
Dead codeKullanilmayan fonksiyon/importLOW
God file800+ satir dosyaMEDIUM
Missing testsCoverage <50%HIGH
Outdated depsMajor version farkiMEDIUM
SecurityCVE, hardcoded secretCRITICAL
DuplicationBenzer kod bloklariMEDIUM
ComplexityCyclomatic >10HIGH

Knowledge Graph (codebase-memory MCP)

Repository Indexleme

mcp_codebase_memory.index_repository({
  path: "/path/to/project",
  name: "my-project"
})

Graph Sorgulama

// Mimari overview
mcp_codebase_memory.get_architecture({
  project: "my-project"
})

// Kod arama
mcp_codebase_memory.search_code({
  project: "my-project",
  query: "authentication flow"
})

// Graph schema
mcp_codebase_memory.get_graph_schema({
  project: "my-project"
})

// Degisiklik tespiti
mcp_codebase_memory.detect_changes({
  project: "my-project"
})

Entegrasyon: tldr CLI + codebase-memory MCP

Tam Analiz Workflow

# 1. Yapi (tldr)
tldr tree . --depth 2
tldr structure src/ --lang typescript

# 2. Mimari (tldr)
tldr arch src/
tldr calls src/ --depth 3

# 3. Indexle (codebase-memory MCP)
mcp_codebase_memory.index_repository({ path: ".", name: "project" })

# 4. Graph sorgu (codebase-memory MCP)
mcp_codebase_memory.get_architecture({ project: "project" })

# 5. Impact analizi (tldr)
tldr impact targetFunction src/ --depth 3

# 6. Dead code (tldr)
tldr dead src/ --entry main

# 7. Diagnostics (tldr)
tldr diagnostics src/ --project

# 8. Test impact (tldr)
tldr change-impact --git

Surekli Guncelleme

Her onemli degisiklikte:
1. tldr change-impact → etkilenen testleri bul
2. mcp_codebase_memory.detect_changes → graph'i guncelle
3. tldr dead src/ → yeni dead code kontrol
4. tldr diagnostics src/ → type/lint hata kontrolu

Anti-Patterns

Anti-PatternDogru Yol
Hemen koda dalOnce overview al, sonra oku
Tek dosya oku, anladim sanCagri zincirini takip et
grep ile yetiniyortldr structure + arch kullan
Mimariyi varsaytldr arch ile dogrula
Dead code'u gormezden geltldr dead ile periyodik temizlik
Test coverage bilmeCoverage raporu al, gap analiz yap
Dependency'leri kontrol etmenpm audit / pip audit periyodik calistir

Quick Reference

HIZLI: "Bu proje ne yapar?"
  → tldr tree . && cat README.md

ORTA: "Nasil calisir?"
  → tldr arch src/ && tldr calls src/

DERIN: "Bu fonksiyon neyi etkiler?"
  → tldr impact <func> src/ && tldr dfg <file> <func>

TAM: "Her seyi anlamam lazim"
  → Yukaridaki Tam Analiz Workflow'u takip et