diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 14b48a6..038e398 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,6 +3,9 @@ contact_links: - name: Security issue url: https://github.com/vaur94/mcp-code/security/advisories/new about: Please report security vulnerabilities privately. + - name: Support guide + url: https://github.com/vaur94/mcp-code/blob/main/SUPPORT.md + about: Use the support guide to choose the right public channel. - name: Documentation hub url: https://github.com/vaur94/mcp-code/tree/main/docs about: Review English and Turkish documentation before opening a question. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index dfdad59..57b7d59 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,6 +1,6 @@ # Code of Conduct -[🇬🇧 English](./CODE_OF_CONDUCT.md) | [🇹🇷 Turkce](./CODE_OF_CONDUCT.tr.md) +🇬🇧 English | [🇹🇷 Türkçe](./CODE_OF_CONDUCT.tr.md) ## Our commitment @@ -15,10 +15,10 @@ We are committed to making participation in the `mcp-code` community harassment- ## Unacceptable behavior -- Harassment, intimidation, or discrimination -- Personal attacks or insulting language -- Publishing private information without permission -- Repeated disruption of community workflows +- Harassment, intimidation, or discrimination. +- Personal attacks or insulting language. +- Publishing private information without permission. +- Repeated disruption of community workflows. ## Scope @@ -30,4 +30,6 @@ Project maintainers are responsible for clarifying and enforcing our standards. ## Reporting -Report unacceptable behavior privately to the maintainers through GitHub or a private maintainer contact. All reports will be reviewed and investigated promptly and fairly. +Report unacceptable behavior to the maintainers through GitHub. This repository does not currently document a separate conduct-reporting contact. All reports will be reviewed and investigated promptly and fairly. + +Last updated: 2026-03-10 diff --git a/CODE_OF_CONDUCT.tr.md b/CODE_OF_CONDUCT.tr.md index bc123e8..0809c80 100644 --- a/CODE_OF_CONDUCT.tr.md +++ b/CODE_OF_CONDUCT.tr.md @@ -1,33 +1,35 @@ -# Davranis Kurallari +# Davranış Kuralları -[🇬🇧 English](./CODE_OF_CONDUCT.md) | 🇹🇷 Turkce +[🇬🇧 English](./CODE_OF_CONDUCT.md) | 🇹🇷 Türkçe -## Taahhudumuz +## Taahhüdümüz -`mcp-code` toplulugunda herkes icin tacizden uzak, saygili ve kapsayici bir katilim ortami olusturmayi hedefliyoruz. +`mcp-code` topluluğunda herkes için tacizden uzak, saygılı ve kapsayıcı bir katılım ortamı oluşturmayı hedefliyoruz. -## Beklenen davranislar +## Beklenen davranışlar -- Saygili ve yapici iletisim kurmak -- Teknik tartismayi ise odakli tutmak -- Geri bildirimi profesyonelce ele almak -- Toplulugun zamanina ve emegine saygi gostermek +- Saygılı ve yapıcı iletişim kurmak. +- İyi niyet varsaymak, ancak somut sorunları açıkça ele almak. +- Teknik tartışmaları işe odaklı tutmak. +- Geri bildirimi olgunlukla karşılamak. -## Kabul edilemez davranislar +## Kabul edilemez davranışlar -- Taciz, tehdit, ayrimcilik -- Kisisel saldiri veya asagilayici dil -- Izin olmadan ozel bilgi paylasimi -- Topluluk akislarini surekli sekilde sabote etmek +- Taciz, tehdit veya ayrımcılık. +- Kişisel saldırı ya da aşağılayıcı dil. +- İzin olmadan özel bilgi paylaşımı. +- Topluluk iş akışlarını sürekli olarak bozmak. ## Kapsam -Bu kurallar proje alanlarinda ve proje adina temsil edilen kamusal alanlarda gecerlidir. +Bu kurallar, proje alanlarında ve proje adına temsil edilen kamusal alanlarda geçerlidir. -## Uygulama ve yaptirim +## Uygulama -Bakimcilar bu standartlari aciklamak ve uygulamakla sorumludur. Ihlal durumunda yorum, issue, kod katkisi veya diger icerikler kaldirilabilir ya da reddedilebilir. +Maintainer'lar bu standartları açıklamak ve uygulamakla sorumludur. İhlal durumunda yorumlar, commit'ler, kod, wiki düzenlemeleri, issue'lar ve diğer katkılar kaldırılabilir, düzenlenebilir veya reddedilebilir. ## Bildirim -Uygunsuz davranislari GitHub uzerinden veya bakimcilara ozel iletisim kanaliyla bildiriniz. Tum bildirimler hizli ve adil bicimde incelenir. +Uygunsuz davranışları maintainer'lara GitHub üzerinden bildiriniz. Bu repository şu anda ayrı bir davranış bildirimi iletişim kanalı belgelememektedir. Tüm bildirimler hızlı ve adil biçimde incelenir. + +Son güncelleme: 2026-03-10 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 51a626a..9420c7f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -🇬🇧 English | [🇹🇷 Turkce](./CONTRIBUTING.tr.md) +🇬🇧 English | [🇹🇷 Türkçe](./CONTRIBUTING.tr.md) Thank you for contributing to `mcp-code`. @@ -8,15 +8,15 @@ Thank you for contributing to `mcp-code`. - Use Node `>=22.14.0` and npm `>=10`. - Install dependencies with `npm ci`. -- Read `README.md`, `docs/en/README.md`, and `AGENTS.md` before changing behavior. +- Read `README.md`, `docs/en/index.md`, and `AGENTS.md` before changing behavior. ## Contribution workflow -1. Fork the repository or create a feature branch from `main`. -2. Keep changes focused and reviewable. +1. Fork the repository or create a focused branch from `main`. +2. Keep changes reviewable and bounded to the relevant workflow area. 3. Update tests, docs, and examples in the same change when behavior moves. 4. Run `npm run ci:check` before opening a pull request. -5. Open a PR using the repository template and describe the semantic workflow impact. +5. Open a PR with the repository template and describe the semantic workflow impact. ## Commit messages @@ -56,7 +56,7 @@ npm run build Documentation is part of the definition of done. -- Update `README.md` / `README.tr.md` when onboarding changes. +- Update `README.md` and `README.tr.md` when onboarding changes. - Update `docs/en/` and `docs/tr/` when behavior, configuration, or integration changes. - Update `AGENTS.md` when repository structure or core conventions change. @@ -68,3 +68,5 @@ Before asking for review, make sure that: - The related tests pass. - The relevant docs are updated. - Security and release implications are called out in the PR body. + +Last updated: 2026-03-10 diff --git a/CONTRIBUTING.tr.md b/CONTRIBUTING.tr.md index 0edd00a..89f0876 100644 --- a/CONTRIBUTING.tr.md +++ b/CONTRIBUTING.tr.md @@ -1,36 +1,72 @@ -# Katki Rehberi +# Katkı Rehberi -[🇬🇧 English](./CONTRIBUTING.md) | 🇹🇷 Turkce +[🇬🇧 English](./CONTRIBUTING.md) | 🇹🇷 Türkçe -`mcp-code` projesine katki sagladiginiz icin tesekkurler. +`mcp-code` projesine katkı sağladığınız için teşekkürler. -## Baslamadan once +## Başlamadan önce -- Node `>=22.14.0` ve npm `>=10` kullanin. -- `npm ci` ile bagimliliklari kurun. -- `README.tr.md`, `docs/tr/README.md` ve `AGENTS.md` dosyalarini okuyun. +- Node `>=22.14.0` ve npm `>=10` kullanın. +- `npm ci` ile bağımlılıkları kurun. +- Davranışı değiştirmeden önce `README.tr.md`, `docs/tr/index.md` ve `AGENTS.md` dosyalarını okuyun. -## Katki akisi +## Katkı akışı -1. `main` branch'inden yeni bir branch acin. -2. Degisikligi odakli ve gozden gecirilebilir tutun. -3. Davranis degisiyorsa test, docs ve examples'i ayni PR icinde guncelleyin. -4. PR acmadan once `npm run ci:check` calistirin. -5. PR template'ini doldurun ve semantik workflow etkisini aciklayin. +1. Repoyu fork edin veya `main` üzerinden odaklı bir branch açın. +2. Değişiklikleri gözden geçirilebilir ve sınırlı tutun. +3. Davranış değişiyorsa test, docs ve examples güncellemelerini aynı değişikliğe dahil edin. +4. Pull request açmadan önce `npm run ci:check` çalıştırın. +5. Depo PR şablonunu kullanın ve semantik workflow etkisini açıklayın. -## Commit mesaji formati +## Commit mesajları -Bu repo conventional commits kullanir. +`mcp-code` conventional commits kullanır. -- `feat: ...` -- `fix: ...` -- `docs: ...` -- `ci: ...` -- `chore: ...` +Örnekler: -## Beklentiler +- `feat: add host integration example` +- `fix: tighten slice verification fallback` +- `docs: expand bilingual quick start` +- `ci: upload coverage artifact` -- Public tool surface'i gereksiz yere buyutmeyin. -- Raw file CRUD veya shell wrapper benzeri sig ozellikler eklemeyin. -- Cikti formatlarini deterministic ve makine dostu tutun. -- `@vaur94/mcpbase` kullanimini paket temelli koruyun. +## Kalite beklentileri + +- Public tool surface'i, kamuya açık sözleşme bilerek değişmiyorsa sabit tutun. +- Raw file CRUD, grep wrapper, shell passthrough veya benzeri sığ araçlar eklemeyin. +- Çıktıları deterministic ve makine dostu tutun. +- `@vaur94/mcpbase` kullanımını paket temelli koruyun; fork veya iç kaynak kopyası oluşturmayın. + +## Test ve doğrulama + +İnceleme istemeden önce tam kalite kapısını çalıştırın: + +```bash +npm run ci:check +``` + +Odaklı doğrulama için yararlı komutlar: + +```bash +npm run test +npm run test:protocol +npm run build +``` + +## Dokümantasyon gereksinimleri + +Dokümantasyon, tanım gereği işin bir parçasıdır. + +- Onboarding değişiyorsa `README.md` ve `README.tr.md` dosyalarını güncelleyin. +- Davranış, yapılandırma veya entegrasyon değişiyorsa `docs/en/` ve `docs/tr/` altında ilgili sayfaları güncelleyin. +- Depo yapısı veya temel kurallar değişiyorsa `AGENTS.md` dosyasını güncelleyin. + +## İnceleme kontrol listesi + +İnceleme istemeden önce şunlardan emin olun: + +- Değişiklik kapsamlı değil, odaklı ve açıkça açıklanmış. +- İlgili testler geçiyor. +- Gerekli dokümantasyon güncellendi. +- Güvenlik ve release etkileri PR gövdesinde belirtildi. + +Son güncelleme: 2026-03-10 diff --git a/README.md b/README.md index ec1f323..5d8b58b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # mcp-code -🇬🇧 English | [🇹🇷 Turkce](./README.tr.md) +🇬🇧 English | [🇹🇷 Türkçe](./README.tr.md) [![CI](https://github.com/vaur94/mcp-code/actions/workflows/ci.yml/badge.svg)](https://github.com/vaur94/mcp-code/actions/workflows/ci.yml) [![Release](https://github.com/vaur94/mcp-code/actions/workflows/release.yml/badge.svg)](https://github.com/vaur94/mcp-code/actions/workflows/release.yml) @@ -12,11 +12,11 @@ ## Why mcp-code? -- 🧠 Reduce low-value repository exploration with slice-first semantic workflows. -- ✍️ Separate planning from mutation so edits stay reviewable and bounded. -- 🔎 Predict blast radius before changes spread into unrelated code. -- ✅ Run the smallest useful verification set first, then escalate only when needed. -- 📦 Build on top of `@vaur94/mcpbase` as an installed package, not a fork. +- Reduce low-value repository exploration with slice-first semantic workflows. +- Separate planning from mutation so edits stay reviewable and bounded. +- Predict blast radius before changes spread into unrelated code. +- Run the smallest useful verification set first, then escalate only when needed. +- Build on top of `@vaur94/mcpbase` as an installed package, not a fork. ## Quick Start @@ -37,7 +37,7 @@ Use `examples/mcp-code.config.json` as the starting point. { "server": { "name": "mcp-code", - "version": "0.1.0" + "version": "0.2.0" }, "logging": { "level": "info", @@ -45,8 +45,36 @@ Use `examples/mcp-code.config.json` as the starting point. }, "workspace": { "rootPath": "/absolute/path/to/repository", - "include": ["src/**/*.{ts,tsx,js,jsx}", "tests/**/*.{ts,tsx,js,jsx}"], - "exclude": ["**/node_modules/**", "**/dist/**", "**/coverage/**"] + "include": [ + "src/**/*.{ts,tsx,js,jsx,mts,cts,mjs,cjs}", + "tests/**/*.{ts,tsx,js,jsx,mts,cts,mjs,cjs}" + ], + "exclude": [ + "**/node_modules/**", + "**/dist/**", + "**/build/**", + "**/coverage/**", + "**/.git/**" + ] + }, + "memory": { + "maxSlices": 100, + "maxPlans": 100, + "maxVerificationReports": 100 + }, + "safety": { + "maxSliceFiles": 12, + "maxRelatedSymbols": 30, + "maxEditsPerPlan": 20 + }, + "verification": { + "executeByDefault": true, + "scripts": { + "typecheck": "typecheck", + "lint": "lint", + "test": "test" + }, + "maxOutputChars": 4000 }, "security": { "commands": { @@ -77,12 +105,12 @@ Use `examples/mcp-code.config.json` as the starting point. ### 4. Start with the semantic workflow -1. Call `resolve_code_slice` -2. Call `explain_slice` -3. Call `plan_safe_edit` -4. Apply approved edits with `apply_safe_edit` -5. Inspect downstream impact with `analyze_impact` -6. Validate the touched scope with `verify_slice` +1. Call `resolve_code_slice`. +2. Call `explain_slice`. +3. Call `plan_safe_edit`. +4. Apply approved edits with `apply_safe_edit`. +5. Inspect downstream impact with `analyze_impact`. +6. Validate the touched scope with `verify_slice`. ## Tool Surface @@ -99,20 +127,20 @@ Use `examples/mcp-code.config.json` as the starting point. - `src/index.ts` boots the server through `@vaur94/mcpbase`. - `src/context/` builds the shared service container and typed execution context. -- `src/infrastructure/repository-analyzer.ts` owns slice resolution, explanations, edit planning, impact analysis, and guarded mutation. -- `src/infrastructure/verification-runner.ts` maps slice scope to repo verification commands. +- `src/infrastructure/repository-analyzer.ts` owns slice resolution, explanation, edit planning, impact analysis, and bounded mutation. +- `src/infrastructure/verification-runner.ts` maps slice scope to repository verification commands. - `src/tools/` exposes the fixed six-tool public surface. ## Documentation -- 📘 Docs hub: `docs/README.md` -- 🇬🇧 English docs: `docs/en/README.md` -- 🇹🇷 Turkish docs: `docs/tr/README.md` -- 🧭 Getting started: `docs/en/user-guide/getting-started.md` -- ⚙️ Configuration: `docs/en/user-guide/configuration.md` -- 🔌 Host integration: `docs/en/integration/opencode.md` -- 🏛️ Architecture: `docs/en/architecture/overview.md` -- 🧰 Tool reference: `docs/en/api/tool-reference.md` +- Docs hub: [docs/README.md](./docs/README.md) +- English index: [docs/en/index.md](./docs/en/index.md) +- Turkish index: [docs/tr/index.md](./docs/tr/index.md) +- Getting started: [docs/en/user-guide/getting-started.md](./docs/en/user-guide/getting-started.md) +- Configuration: [docs/en/user-guide/configuration.md](./docs/en/user-guide/configuration.md) +- OpenCode integration: [docs/en/integration/opencode.md](./docs/en/integration/opencode.md) +- Architecture overview: [docs/en/architecture/overview.md](./docs/en/architecture/overview.md) +- Tool reference: [docs/en/api/tool-reference.md](./docs/en/api/tool-reference.md) ## Development @@ -130,11 +158,11 @@ npm run ci:check - GitHub release automation is active on `main`. - `release-please` opens or refreshes a release PR from conventional commits, then creates the GitHub release when that PR is merged. -- The publish target is `@vaur94/mcp-code`; the unscoped `mcp-code` package is owned by another maintainer and cannot be trusted or published from this repo. -- The first publish for `@vaur94/mcp-code` still needs one manual npm publish, then trusted publishing can take over with GitHub OIDC. +- The publish target is `@vaur94/mcp-code`. +- If `@vaur94/mcp-code` has not been published before, do the first npm publish manually from the package root before attaching trusted publishing in `publish.yml`. - `.github/workflows/publish.yml` verifies the package with `npm run ci:check` and `npm run pack:dry-run` before any publish step. - Real npm publish runs from the `published` release event and checks that the GitHub tag matches `package.json`. -- If you want CI to run automatically on release PRs, add an optional `RELEASE_PLEASE_TOKEN` secret backed by a GitHub PAT. +- If you want CI to run automatically on release PRs, add an optional `RELEASE_PLEASE_TOKEN` secret backed by a GitHub personal access token. ## Repository Layout @@ -142,7 +170,7 @@ npm run ci:check mcp-code/ ├── src/ # Runtime entry, services, schemas, and tool adapters ├── tests/ # Unit, integration, protocol, and fixtures -├── docs/ # English + Turkish product and developer docs +├── docs/ # English and Turkish product and developer docs ├── examples/ # Ready-to-copy config and host integration examples ├── .github/ # CI, release, issue, PR, and hygiene automation └── AGENTS.md # AI-agent-oriented repository knowledge base @@ -150,8 +178,16 @@ mcp-code/ ## Contributing -Contributions are welcome. Start with `CONTRIBUTING.md`, run `npm run ci:check`, and keep changes aligned with the semantic workflow boundary. +Contributions are welcome. Start with [CONTRIBUTING.md](./CONTRIBUTING.md), run `npm run ci:check`, and keep changes aligned with the semantic workflow boundary. + +## Security and Support + +- Security policy: [SECURITY.md](./SECURITY.md) +- Support guide: [SUPPORT.md](./SUPPORT.md) +- Release details: [RELEASE.md](./RELEASE.md) ## License -MIT. See `LICENSE`. +MIT. See [LICENSE](./LICENSE). + +Last updated: 2026-03-10 diff --git a/README.tr.md b/README.tr.md index b6b2291..19ef8d0 100644 --- a/README.tr.md +++ b/README.tr.md @@ -1,6 +1,6 @@ # mcp-code -[🇬🇧 English](./README.md) | 🇹🇷 Turkce +[🇬🇧 English](./README.md) | 🇹🇷 Türkçe [![CI](https://github.com/vaur94/mcp-code/actions/workflows/ci.yml/badge.svg)](https://github.com/vaur94/mcp-code/actions/workflows/ci.yml) [![Release](https://github.com/vaur94/mcp-code/actions/workflows/release.yml/badge.svg)](https://github.com/vaur94/mcp-code/actions/workflows/release.yml) @@ -8,19 +8,19 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Node.js](https://img.shields.io/badge/node-%3E%3D22.14.0-339933?logo=node.js&logoColor=white)](./package.json) -> AI kodlama ajanlari icin dogru kod dilimini bulan, sinirli degisiklik planlayan, etkiyi tahmin eden ve hedefli dogrulama calistiran semantik MCP sunucusu. +> Doğru kod dilimini bulan, sınırlı değişiklik planlayan, etkiyi tahmin eden ve hedefli doğrulama çalıştıran semantik MCP sunucusu. ## Neden mcp-code? -- 🧠 Dusuk degerli repo kesfini azaltir ve ajanlari dogru slice uzerinde calistirir. -- ✍️ Planlama ile mutasyonu ayirir; degisiklikler daha kontrollu ve gozden gecirilebilir olur. -- 🔎 Kod degismeden once blast radius ve contract etkisini gorunur hale getirir. -- ✅ Ilk olarak en kucuk yararli verification setini calistirir, gerekirse kapsami buyutur. -- 📦 `@vaur94/mcpbase` uzerine paket temelli kurulur; fork veya kaynak kopyasi degildir. +- Dilim odaklı semantik iş akışlarıyla gereksiz depo keşfini azaltır. +- Planlama ile mutasyonu ayırır; değişiklikler daha gözden geçirilebilir kalır. +- Blast radius ve sözleşme etkisini değişiklikten önce görünür hale getirir. +- Önce en küçük yararlı doğrulama setini çalıştırır, sonra kapsamı büyütür. +- `@vaur94/mcpbase` üzerine paket temelli kurulur; fork veya kaynak kopyası değildir. -## Quick Start +## Hızlı Başlangıç -### 1. Depoyu klonla ve bagimliliklari yukle +### 1. Depoyu klonlayın ve bağımlılıkları kurun ```bash git clone https://github.com/vaur94/mcp-code.git @@ -29,15 +29,15 @@ npm ci npm run build ``` -### 2. Config dosyasi olustur +### 2. Bir yapılandırma dosyası oluşturun -Baslangic noktasi olarak `examples/mcp-code.config.json` dosyasini kullan. +Başlangıç noktası olarak `examples/mcp-code.config.json` dosyasını kullanın. ```json { "server": { "name": "mcp-code", - "version": "0.1.0" + "version": "0.2.0" }, "logging": { "level": "info", @@ -45,8 +45,36 @@ Baslangic noktasi olarak `examples/mcp-code.config.json` dosyasini kullan. }, "workspace": { "rootPath": "/absolute/path/to/repository", - "include": ["src/**/*.{ts,tsx,js,jsx}", "tests/**/*.{ts,tsx,js,jsx}"], - "exclude": ["**/node_modules/**", "**/dist/**", "**/coverage/**"] + "include": [ + "src/**/*.{ts,tsx,js,jsx,mts,cts,mjs,cjs}", + "tests/**/*.{ts,tsx,js,jsx,mts,cts,mjs,cjs}" + ], + "exclude": [ + "**/node_modules/**", + "**/dist/**", + "**/build/**", + "**/coverage/**", + "**/.git/**" + ] + }, + "memory": { + "maxSlices": 100, + "maxPlans": 100, + "maxVerificationReports": 100 + }, + "safety": { + "maxSliceFiles": 12, + "maxRelatedSymbols": 30, + "maxEditsPerPlan": 20 + }, + "verification": { + "executeByDefault": true, + "scripts": { + "typecheck": "typecheck", + "lint": "lint", + "test": "test" + }, + "maxOutputChars": 4000 }, "security": { "commands": { @@ -59,7 +87,7 @@ Baslangic noktasi olarak `examples/mcp-code.config.json` dosyasini kullan. } ``` -### 3. MCP host'unu build cikisina bagla +### 3. MCP host'unuzu derlenmiş sunucuya bağlayın ```json { @@ -75,46 +103,46 @@ Baslangic noktasi olarak `examples/mcp-code.config.json` dosyasini kullan. } ``` -### 4. Semantik workflow'u baslat +### 4. Semantik iş akışını başlatın -1. `resolve_code_slice` cagir -2. `explain_slice` cagir -3. `plan_safe_edit` ile sinirli degisiklik plani uret -4. Onayli duzenlemeyi `apply_safe_edit` ile uygula -5. `analyze_impact` ile etkiyi incele -6. `verify_slice` ile degisen scope'u dogrula +1. `resolve_code_slice` çağırın. +2. `explain_slice` çağırın. +3. `plan_safe_edit` çağırın. +4. Onaylanan değişiklikleri `apply_safe_edit` ile uygulayın. +5. Bağımlı alanları `analyze_impact` ile inceleyin. +6. Dokunulan kapsamı `verify_slice` ile doğrulayın. -## Tool Surface +## Tool Yüzeyi -| Tool | Amaci | -| -------------------- | ---------------------------------------------------------------------------------------------- | -| `resolve_code_slice` | Bir sembol, dosya veya kodlama hedefi icin en kucuk yararli semantik calisma alanini bulur. | -| `explain_slice` | Slice'i sorumluluklar, kisitlar, contract'lar ve riskler olarak sikistirir. | -| `plan_safe_edit` | Invariant'lari, dokunulan dosyalari ve verification adimlarini iceren sinirli bir plan uretir. | -| `apply_safe_edit` | Sadece planlanan sembol ve dosya kapsaminda duzenleme uygular. | -| `analyze_impact` | Blast radius, bagimli alanlar ve contract maruziyetini tahmin eder. | -| `verify_slice` | Hedefli dogrulama calistirir ve hatalari dokunulan kapsama gore gruplar. | +| Tool | Amaç | +| -------------------- | ------------------------------------------------------------------------------------------- | +| `resolve_code_slice` | Bir sembol, dosya veya kodlama hedefi için en küçük yararlı semantik çalışma setini bulur. | +| `explain_slice` | Bir slice'ı sorumluluklar, kısıtlar, sözleşmeler ve riskler olarak özetler. | +| `plan_safe_edit` | İnvariant'ları, dokunulan dosyaları ve doğrulama adımlarını içeren sınırlı bir plan üretir. | +| `apply_safe_edit` | Yalnızca planlanan sembol ve dosya kapsamındaki onaylı değişiklikleri uygular. | +| `analyze_impact` | Blast radius, aşağı akış bağımlılıkları ve sözleşme maruziyetini tahmin eder. | +| `verify_slice` | Hedefli doğrulamayı çalıştırır ve hataları dokunulan kapsama göre gruplar. | -## Mimari Ozeti +## Mimari Özeti -- `src/index.ts`, sunucuyu `@vaur94/mcpbase` uzerinden baslatir. -- `src/context/`, paylasilan servis kapsayicisini ve tipli execution context'i olusturur. -- `src/infrastructure/repository-analyzer.ts`, slice cozumleme, aciklama, planlama, impact analizi ve kontrollu mutation mantigini tutar. -- `src/infrastructure/verification-runner.ts`, slice scope'una gore repo komutlarini secip calistirir. -- `src/tools/`, sabit altı toolluk public surface'i expose eder. +- `src/index.ts`, sunucuyu `@vaur94/mcpbase` üzerinden başlatır. +- `src/context/`, paylaşılan servis kapsayıcısını ve tipli execution context'i oluşturur. +- `src/infrastructure/repository-analyzer.ts`, dilim çözümleme, açıklama, planlama, etki analizi ve sınırlı mutasyonu yönetir. +- `src/infrastructure/verification-runner.ts`, dilim kapsamını depo doğrulama komutlarına eşler. +- `src/tools/`, sabit altı toolluk public surface'i dışa açar. -## Dokumantasyon +## Dokümantasyon -- 📘 Dokuman merkezi: `docs/README.md` -- 🇬🇧 English docs: `docs/en/README.md` -- 🇹🇷 Turkce docs: `docs/tr/README.md` -- 🧭 Baslangic kilavuzu: `docs/en/user-guide/getting-started.md` -- ⚙️ Konfigurasyon: `docs/en/user-guide/configuration.md` -- 🔌 Host entegrasyonu: `docs/en/integration/opencode.md` -- 🏛️ Mimari: `docs/en/architecture/overview.md` -- 🧰 Tool referansi: `docs/en/api/tool-reference.md` +- Doküman merkezi: [docs/README.md](./docs/README.md) +- English index: [docs/en/index.md](./docs/en/index.md) +- Türkçe index: [docs/tr/index.md](./docs/tr/index.md) +- Başlangıç kılavuzu: [docs/tr/user-guide/getting-started.md](./docs/tr/user-guide/getting-started.md) +- Yapılandırma: [docs/tr/user-guide/configuration.md](./docs/tr/user-guide/configuration.md) +- OpenCode entegrasyonu: [docs/tr/integration/opencode.md](./docs/tr/integration/opencode.md) +- Mimari genel bakış: [docs/tr/architecture/overview.md](./docs/tr/architecture/overview.md) +- Tool referansı: [docs/tr/api/tool-reference.md](./docs/tr/api/tool-reference.md) -## Gelistirme +## Geliştirme ```bash npm ci @@ -126,32 +154,40 @@ npm run build npm run ci:check ``` -## Release Durumu +## Sürüm Durumu -- GitHub release otomasyonu `main` uzerinde aktif. -- `release-please`, conventional commit gecmisine gore release PR acip gunceller; bu PR merge edilince GitHub release olusturulur. -- Publish hedefi `@vaur94/mcp-code`; unscoped `mcp-code` paketi baska bir maintainer'a ait oldugu icin bu repodan trusted publishing'e baglanamaz. -- `@vaur94/mcp-code` icin ilk publish hala bir kez manuel yapilmalidir; sonrasinda GitHub OIDC tabanli trusted publishing devreye girebilir. -- `.github/workflows/publish.yml`, publish oncesi `npm run ci:check` ve `npm run pack:dry-run` ile paketi dogrular. -- Gercek npm publish adimi `published` release eventiyle calisir ve GitHub tag'inin `package.json` surumuyle eslestigini kontrol eder. -- Release PR'larda CI'nin otomatik calismasi isteniyorsa GitHub PAT tabanli opsiyonel bir `RELEASE_PLEASE_TOKEN` secret'i eklenmelidir. +- GitHub release otomasyonu `main` üzerinde aktiftir. +- `release-please`, conventional commit geçmişine göre bir release PR açar veya günceller; bu PR merge edildiğinde GitHub release oluşturulur. +- Publish hedefi `@vaur94/mcp-code` paketidir. +- `@vaur94/mcp-code` daha önce hiç yayımlanmadıysa, `publish.yml` üzerinden trusted publishing bağlamadan önce ilk npm publish'i paket kökünden manuel yapın. +- `.github/workflows/publish.yml`, publish öncesi `npm run ci:check` ve `npm run pack:dry-run` çalıştırır. +- Gerçek npm publish adımı `published` release eventiyle çalışır ve GitHub tag'inin `package.json` sürümüyle eşleştiğini kontrol eder. +- Release PR'larda CI'yi otomatik çalıştırmak istiyorsanız GitHub personal access token tabanlı opsiyonel bir `RELEASE_PLEASE_TOKEN` secret'i ekleyin. -## Repo Yapisi +## Depo Yapısı ```text mcp-code/ -├── src/ # Runtime girisi, servisler, semalar ve tool adapter'lari +├── src/ # Runtime girişi, servisler, şemalar ve tool adapter'ları ├── tests/ # Unit, integration, protocol ve fixture'lar -├── docs/ # English + Turkce urun ve gelistirici dokumanlari -├── examples/ # Kopyalanabilir config ve host ornekleri +├── docs/ # English ve Türkçe ürün ve geliştirici dokümanları +├── examples/ # Kopyalanabilir config ve host örnekleri ├── .github/ # CI, release, issue, PR ve hijyen otomasyonu -└── AGENTS.md # AI ajanlari icin repo bilgi tabani +└── AGENTS.md # AI ajanları için depo bilgi tabanı ``` -## Katki +## Katkı -Katkilar aciktir. `CONTRIBUTING.tr.md` ile basla, `npm run ci:check` calistir ve degisiklikleri semantik workflow siniri ile uyumlu tut. +Katkılar açıktır. [CONTRIBUTING.tr.md](./CONTRIBUTING.tr.md) ile başlayın, `npm run ci:check` çalıştırın ve değişiklikleri semantik workflow sınırıyla uyumlu tutun. + +## Güvenlik ve Destek + +- Güvenlik politikası: [SECURITY.tr.md](./SECURITY.tr.md) +- Destek rehberi: [SUPPORT.tr.md](./SUPPORT.tr.md) +- Sürüm ayrıntıları: [RELEASE.tr.md](./RELEASE.tr.md) ## Lisans -MIT. Ayrintilar icin `LICENSE` dosyasina bak. +MIT. Ayrıntılar için [LICENSE](./LICENSE) dosyasına bakın. + +Son güncelleme: 2026-03-10 diff --git a/RELEASE.md b/RELEASE.md index 150ec5f..10f8bea 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,6 +1,6 @@ # Release Process -🇬🇧 English | [🇹🇷 Turkce](./RELEASE.tr.md) +🇬🇧 English | [🇹🇷 Türkçe](./RELEASE.tr.md) ## Release model @@ -9,8 +9,8 @@ - Conventional commits determine the next version. - Release PRs keep `CHANGELOG.md` and `package.json` in sync before a release is cut. - GitHub releases are generated when the release PR is merged. -- The npm publish target is `@vaur94/mcp-code` because the unscoped `mcp-code` package is owned by a different maintainer. -- The first publish for `@vaur94/mcp-code` must be done manually from the package root; later publishes should use npm trusted publishing with GitHub OIDC. +- The npm publish target is `@vaur94/mcp-code`. +- If `@vaur94/mcp-code` has not been published before, do the first publish manually from the package root; later publishes should use npm trusted publishing with GitHub OIDC. - `.github/workflows/publish.yml` verifies package quality before publish and rejects tag/version mismatches. ## Maintainer checklist @@ -24,11 +24,11 @@ ## Conventional commit guide -- `feat:` for new user-facing capability -- `fix:` for bug fixes -- `docs:` for documentation-only changes -- `ci:` for workflow and automation updates -- `chore:` for maintenance that does not change product behavior +- `feat:` for new user-facing capability. +- `fix:` for bug fixes. +- `docs:` for documentation-only changes. +- `ci:` for workflow and automation updates. +- `chore:` for maintenance that does not change product behavior. ## References @@ -37,3 +37,5 @@ - `.release-please-manifest.json` - `.github/workflows/release.yml` - `.github/workflows/publish.yml` + +Last updated: 2026-03-10 diff --git a/RELEASE.tr.md b/RELEASE.tr.md index 1a7ef33..d8b2367 100644 --- a/RELEASE.tr.md +++ b/RELEASE.tr.md @@ -1,22 +1,41 @@ -# Surumleme Sureci +# Sürümleme Süreci -[🇬🇧 English](./RELEASE.md) | 🇹🇷 Turkce +[🇬🇧 English](./RELEASE.md) | 🇹🇷 Türkçe -## Surec modeli +## Süreç modeli -`mcp-code`, `main` branch'i icin `release-please` kullanir. +`mcp-code`, `main` üzerinde `release-please` kullanır. -- Conventional commit mesajlari yeni versiyonu belirler. -- Release PR, `CHANGELOG.md` ve `package.json` dosyalarini surum oncesi senkron tutar. -- Release PR merge edilince GitHub release olusturulur. -- npm publish hedefi `@vaur94/mcp-code`'dur; cunku unscoped `mcp-code` paketi farkli bir maintainer'a aittir. -- `@vaur94/mcp-code` icin ilk publish paket kokunden manuel yapilmali, sonraki yayinlar GitHub OIDC tabanli npm trusted publishing ile surdurulmelidir. -- `.github/workflows/publish.yml`, publish oncesi kaliteyi dogrular ve tag/surum uyusmazligini reddeder. +- Conventional commit mesajları yeni sürümü belirler. +- Release PR'leri, release kesilmeden önce `CHANGELOG.md` ve `package.json` dosyalarını senkron tutar. +- Release PR merge edildiğinde GitHub release oluşturulur. +- npm publish hedefi `@vaur94/mcp-code` paketidir. +- `@vaur94/mcp-code` daha önce hiç yayımlanmadıysa ilk publish paket kökünden manuel yapılmalıdır; sonraki yayınlar npm trusted publishing ve GitHub OIDC ile yürütülmelidir. +- `.github/workflows/publish.yml`, publish öncesi paket kalitesini doğrular ve tag/sürüm uyuşmazlığını reddeder. -## Bakimci kontrol listesi +## Maintainer kontrol listesi -1. Dogrulanmis degisiklikleri `main` icine alin. -2. `npm run ci:check` sonucunu dogrulayin. -3. `Release` workflow'unun actigi release PR'i gozden gecirip merge edin. -4. npm trusted publisher kaydinin `publish.yml` dosyasina bagli oldugunu dogrulayin. -5. GitHub release notlarini, `CHANGELOG.md` guncellemesini ve npm yayin sonucunu kontrol edin. +1. Doğrulanmış değişiklikleri `main` içine alın. +2. `npm run ci:check` sonucunun yerelde veya CI'da yeşil olduğunu doğrulayın. +3. `Release` workflow'unun ürettiği release PR'yi gözden geçirip merge edin. +4. npm trusted publisher eşlemesinin `publish.yml` dosyasını hedeflediğini doğrulayın. +5. Oluşan release notlarını ve paket yayın sonucunu doğrulayın. +6. `CHANGELOG.md`, `package.json` ve GitHub release'in yayımlanan değişiklikle eşleştiğini kontrol edin. + +## Conventional commit rehberi + +- `feat:` yeni kullanıcıya dönük yetenekler için. +- `fix:` hata düzeltmeleri için. +- `docs:` yalnızca dokümantasyon değişiklikleri için. +- `ci:` workflow ve otomasyon güncellemeleri için. +- `chore:` ürün davranışını değiştirmeyen bakım işleri için. + +## Referanslar + +- `package.json` +- `release-please-config.json` +- `.release-please-manifest.json` +- `.github/workflows/release.yml` +- `.github/workflows/publish.yml` + +Son güncelleme: 2026-03-10 diff --git a/SECURITY.md b/SECURITY.md index 88b560d..e967bde 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,13 +1,11 @@ # Security Policy -🇬🇧 English | [🇹🇷 Turkce](./SECURITY.tr.md) +🇬🇧 English | [🇹🇷 Türkçe](./SECURITY.tr.md) -## Supported versions +## Version status -| Version | Supported | -| -------- | --------- | -| `0.1.x` | Yes | -| `<0.1.0` | No | +- Current packaged release line: `0.2.x` (`package.json`, `CHANGELOG.md`) +- Older release-line support policy: requires maintainer confirmation ## Scope @@ -18,29 +16,30 @@ - It limits edit application to previously planned scope. - It limits verification to configured commands and allowed workspace roots. -See `docs/en/security/security-model.md` for the detailed model. +See [docs/en/security/security-model.md](./docs/en/security/security-model.md) for the detailed model. ## Reporting a vulnerability Please do not open a public issue for security reports. -Use one of these channels instead: +Use this channel instead: 1. GitHub Security Advisories for this repository. -2. A private maintainer contact if GitHub advisories are unavailable. + +No separate private security contact is documented in this repository today. If that changes, update this page and `SUPPORT.md` together. Include: -- A short summary of the issue -- Reproduction steps -- Impact and likely blast radius -- Suggested mitigations if you have them +- A short summary of the issue. +- Reproduction steps. +- Impact and likely blast radius. +- Suggested mitigations if you have them. ## Response expectations -- Initial triage target: within 3 business days -- Status update target: within 7 business days -- Fix and disclosure timeline: depends on severity, exploitability, and release coordination +- Initial triage target: within 3 business days. +- Status update target: within 7 business days. +- Fix and disclosure timeline depends on severity, exploitability, and release coordination. ## Security principles @@ -49,3 +48,5 @@ Include: - New tools must preserve the semantic workflow boundary. - New config fields must be documented. - Verification commands must stay explicitly allowed. + +Last updated: 2026-03-10 diff --git a/SECURITY.tr.md b/SECURITY.tr.md index 9db14e1..f75ff66 100644 --- a/SECURITY.tr.md +++ b/SECURITY.tr.md @@ -1,29 +1,52 @@ -# Guvenlik Politikasi +# Güvenlik Politikası -[🇬🇧 English](./SECURITY.md) | 🇹🇷 Turkce +[🇬🇧 English](./SECURITY.md) | 🇹🇷 Türkçe -## Desteklenen surumler +## Sürüm durumu -| Surum | Destek | -| -------- | ------ | -| `0.1.x` | Evet | -| `<0.1.0` | Hayir | +- Güncel paket release hattı: `0.2.x` (`package.json` ve `CHANGELOG.md`) +- Daha eski release hatlarının destek durumu için maintainer onayı gerekir ## Kapsam -`mcp-code`, generic shell veya file tool surface'i expose etmez. Edit uygulamasi plan kapsamiyla, verification ise izinli komutlar ve path'lerle sinirlanir. +`mcp-code`, riskli işlemleri sınırlı tutacak şekilde tasarlanmıştır: -## Acik bildirme yolu +- Public tool surface içinde generic shell execution yoktur. +- Public tool surface içinde raw file CRUD yoktur. +- Edit uygulaması yalnızca daha önce planlanan kapsam içinde çalışır. +- Verification, yalnızca yapılandırılmış komut adları ve izinli çalışma alanı yolları üzerinden yürür. -Guvenlik sorunlarini herkese acik issue olarak acmayin. +Ayrıntılı model için [docs/tr/security/security-model.md](./docs/tr/security/security-model.md) sayfasına bakın. -Tercih edilen yollar: +## Güvenlik açığı bildirimi -1. GitHub Security Advisories -2. Ozel bakimci iletisim kanali +Güvenlik bildirimleri için herkese açık issue açmayın. -## Beklenen sureler +Bunun yerine şu kanalı kullanın: -- Ilk triage hedefi: 3 is gunu -- Durum guncellemesi hedefi: 7 is gunu -- Cozum ve aciklama suresi: siddete ve yayin koordinasyonuna gore degisir +1. Bu depo için GitHub Security Advisories. + +Bu repository'de şu anda ayrıca belgelenmiş özel bir güvenlik iletişim kanalı yoktur. Bu durum değişirse bu sayfayı ve `SUPPORT.tr.md` dosyasını birlikte güncelleyin. + +Bildirimde şunları paylaşın: + +- Sorunun kısa özeti. +- Yeniden üretim adımları. +- Etki ve muhtemel blast radius. +- Varsa önerilen önlemler. + +## Yanıt beklentileri + +- İlk triage hedefi: 3 iş günü. +- Durum güncellemesi hedefi: 7 iş günü. +- Düzeltme ve açıklama takvimi, önem derecesine, sömürülebilirliğe ve release koordinasyonuna göre değişir. + +## Güvenlik ilkeleri + +- Stdout yalnızca MCP protokol trafiği içindir. +- Loglar stderr'e yazılır. +- Yeni tool'lar semantik workflow sınırını korumalıdır. +- Yeni config alanları dokümante edilmelidir. +- Verification komutları açıkça izinli kalmalıdır. + +Son güncelleme: 2026-03-10 diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 0000000..397827e --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,22 @@ +# Support + +🇬🇧 English | [🇹🇷 Türkçe](./SUPPORT.tr.md) + +## Public support paths + +`mcp-code` currently exposes these public support paths: + +- Documentation: start with [docs/en/index.md](./docs/en/index.md) for setup, configuration, integration, architecture, testing, release, and security notes. +- Bug reports: open a GitHub issue with [.github/ISSUE_TEMPLATE/bug_report.md](./.github/ISSUE_TEMPLATE/bug_report.md). +- Feature requests: open a GitHub issue with [.github/ISSUE_TEMPLATE/feature_request.md](./.github/ISSUE_TEMPLATE/feature_request.md). +- Documentation issues: open a GitHub issue with [.github/ISSUE_TEMPLATE/documentation_report.md](./.github/ISSUE_TEMPLATE/documentation_report.md). + +## Security reports + +Do not open public issues for security vulnerabilities. Use [SECURITY.md](./SECURITY.md) and GitHub Security Advisories instead. + +## Response expectations + +No separate chat, forum, or commercial support channel is documented in this repository. If that changes, update this page and `.github/ISSUE_TEMPLATE/config.yml` together. + +Last updated: 2026-03-10 diff --git a/SUPPORT.tr.md b/SUPPORT.tr.md new file mode 100644 index 0000000..f5ede20 --- /dev/null +++ b/SUPPORT.tr.md @@ -0,0 +1,22 @@ +# Destek + +[🇬🇧 English](./SUPPORT.md) | 🇹🇷 Türkçe + +## Açık destek yolları + +`mcp-code` şu anda şu açık destek yollarını sunar: + +- Dokümantasyon: kurulum, yapılandırma, entegrasyon, mimari, test, release ve güvenlik notları için [docs/tr/index.md](./docs/tr/index.md) ile başlayın. +- Hata bildirimleri: [.github/ISSUE_TEMPLATE/bug_report.md](./.github/ISSUE_TEMPLATE/bug_report.md) şablonuyla GitHub issue açın. +- Özellik istekleri: [.github/ISSUE_TEMPLATE/feature_request.md](./.github/ISSUE_TEMPLATE/feature_request.md) şablonuyla GitHub issue açın. +- Dokümantasyon sorunları: [.github/ISSUE_TEMPLATE/documentation_report.md](./.github/ISSUE_TEMPLATE/documentation_report.md) şablonuyla GitHub issue açın. + +## Güvenlik bildirimleri + +Güvenlik açıkları için herkese açık issue açmayın. Bunun yerine [SECURITY.tr.md](./SECURITY.tr.md) ve GitHub Security Advisories yolunu kullanın. + +## Yanıt beklentileri + +Bu depoda ayrı bir sohbet, forum veya ticari destek kanalı belgelenmemiştir. Bu durum değişirse bu sayfayı ve `.github/ISSUE_TEMPLATE/config.yml` dosyasını birlikte güncelleyin. + +Son güncelleme: 2026-03-10 diff --git a/docs/README.md b/docs/README.md index f98207f..efc9ef9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,8 @@ # Documentation Hub -🇬🇧 English docs: `docs/en/README.md` +- English docs: [docs/en/index.md](./en/index.md) +- Turkish docs: [docs/tr/index.md](./tr/index.md) -🇹🇷 Turkce docs: `docs/tr/README.md` +Use the English set as the canonical technical reference and keep the Turkish set aligned for onboarding, usage, and maintenance workflows. -Use the English set as the canonical technical reference, and keep the Turkish set aligned for onboarding, usage, and maintenance workflows. +Last updated: 2026-03-10 diff --git a/docs/en/README.md b/docs/en/README.md index 1ba84d2..e067a1b 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -1,30 +1,36 @@ # English Documentation +Türkçe sürüm: [docs/tr/README.md](../tr/README.md) + +Canonical index: [index.md](./index.md) + ## User Guide -- `user-guide/getting-started.md` -- `user-guide/configuration.md` +- [Getting started](./user-guide/getting-started.md) +- [Configuration](./user-guide/configuration.md) ## Integration -- `integration/opencode.md` -- `integration/generic-stdio.md` +- [OpenCode integration](./integration/opencode.md) +- [Generic stdio integration](./integration/generic-stdio.md) ## Architecture -- `architecture/overview.md` -- `architecture/slice-model.md` +- [Architecture overview](./architecture/overview.md) +- [Slice model](./architecture/slice-model.md) ## API -- `api/tool-reference.md` +- [Tool reference](./api/tool-reference.md) ## Developer Guide -- `developer-guide/local-development.md` -- `developer-guide/testing.md` -- `developer-guide/release-process.md` +- [Local development](./developer-guide/local-development.md) +- [Testing](./developer-guide/testing.md) +- [Release process](./developer-guide/release-process.md) ## Security -- `security/security-model.md` +- [Security model](./security/security-model.md) + +Last updated: 2026-03-10 diff --git a/docs/en/api/tool-reference.md b/docs/en/api/tool-reference.md index 1e5cee8..f214c7e 100644 --- a/docs/en/api/tool-reference.md +++ b/docs/en/api/tool-reference.md @@ -1,5 +1,7 @@ # Tool Reference +Türkçe sürüm: [docs/tr/api/tool-reference.md](../../tr/api/tool-reference.md) + The public contract is intentionally fixed at six tools. ## `resolve_code_slice` @@ -37,3 +39,5 @@ The public contract is intentionally fixed at six tools. - Input: `sliceId?: string`, `target?: string`, `mode?: "auto" | "symbol" | "file"`, `run?: boolean`, `checks?: ("typecheck" | "lint" | "test")[]` - Output: executed checks, failures grouped by relevance, escalation recommendation - Use when you want the smallest useful validation set for the touched scope + +Last updated: 2026-03-10 diff --git a/docs/en/architecture/overview.md b/docs/en/architecture/overview.md index ae1c5e0..42f9142 100644 --- a/docs/en/architecture/overview.md +++ b/docs/en/architecture/overview.md @@ -1,5 +1,7 @@ # Architecture Overview +Türkçe sürüm: [docs/tr/architecture/overview.md](../../tr/architecture/overview.md) + `mcp-code` follows a slice-first architecture on top of `@vaur94/mcpbase`. ## Runtime split @@ -24,3 +26,5 @@ 3. The repository analyzer resolves semantic scope. 4. Memory stores slices, plans, impacts, and verification reports for follow-up steps. 5. Verification runs only when routed through the bounded workflow. + +Last updated: 2026-03-10 diff --git a/docs/en/architecture/slice-model.md b/docs/en/architecture/slice-model.md index 0c79330..fc31ade 100644 --- a/docs/en/architecture/slice-model.md +++ b/docs/en/architecture/slice-model.md @@ -1,5 +1,7 @@ # Slice Model +Türkçe sürüm: [docs/tr/architecture/slice-model.md](../../tr/architecture/slice-model.md) + A slice is the core working unit of `mcp-code`. ## What a slice contains @@ -27,3 +29,5 @@ Slices let downstream tools share the same bounded scope. 2. Store it in repository memory. 3. Reuse the `sliceId` across explanation, planning, impact, and verification. 4. Refresh the slice after edits when `apply_safe_edit` succeeds. + +Last updated: 2026-03-10 diff --git a/docs/en/developer-guide/local-development.md b/docs/en/developer-guide/local-development.md index b10ac53..4c969ca 100644 --- a/docs/en/developer-guide/local-development.md +++ b/docs/en/developer-guide/local-development.md @@ -1,5 +1,7 @@ # Local Development +Türkçe sürüm: [docs/tr/developer-guide/local-development.md](../../tr/developer-guide/local-development.md) + ## Setup ```bash @@ -27,3 +29,5 @@ npm run ci:check - Keep the six-tool surface stable unless the public contract intentionally changes. - Update docs and examples when config, workflows, or runtime behavior changes. - Keep stdout reserved for the MCP protocol and logs on stderr only. + +Last updated: 2026-03-10 diff --git a/docs/en/developer-guide/release-process.md b/docs/en/developer-guide/release-process.md index c2b5ec2..9b7c2a7 100644 --- a/docs/en/developer-guide/release-process.md +++ b/docs/en/developer-guide/release-process.md @@ -1,5 +1,7 @@ # Release Process +Türkçe sürüm: [docs/tr/developer-guide/release-process.md](../../tr/developer-guide/release-process.md) + `mcp-code` uses `release-please` from `main`. The npm package identity is `@vaur94/mcp-code`. The unscoped `mcp-code` package on npm belongs to a different maintainer, so releases from this repository must target the scoped package. @@ -30,3 +32,5 @@ Conventional commits define semantic version changes. - `.github/workflows/release.yml` - `.github/workflows/publish.yml` - `package.json` + +Last updated: 2026-03-10 diff --git a/docs/en/developer-guide/testing.md b/docs/en/developer-guide/testing.md index 4578f32..5c71b26 100644 --- a/docs/en/developer-guide/testing.md +++ b/docs/en/developer-guide/testing.md @@ -1,15 +1,17 @@ # Testing +Türkçe sürüm: [docs/tr/developer-guide/testing.md](../../tr/developer-guide/testing.md) + `mcp-code` uses three test layers. ## Test suites -| Command | Scope | -| ----------------------- | --------------------------------------------------------------- | -| `npm run test` | Unit and integration tests | -| `npm run test:protocol` | Runtime-level protocol validation against the built server | -| `npm run test:coverage` | Unit and integration coverage report | -| `npm run ci:check` | Full formatting, lint, type, coverage, protocol, and build gate | +| Command | Scope | +| ----------------------- | ---------------------------------------------------------------------- | +| `npm run test` | Unit and integration tests | +| `npm run test:protocol` | Runtime-level protocol validation against the built server | +| `npm run test:coverage` | Unit and integration coverage report | +| `npm run ci:check` | Full formatting, lint, type, coverage, protocol, build, and audit gate | ## Fixture strategy @@ -20,3 +22,5 @@ Repository behavior is exercised through `tests/fixtures/sample-repo`, which kee - Add unit tests when schema normalization or local service logic changes. - Add integration tests when workflow behavior changes across multiple layers. - Add protocol tests when the public tool surface or runtime wiring changes. + +Last updated: 2026-03-10 diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..a52b605 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,36 @@ +# English Documentation Index + +Türkçe sürüm: [docs/tr/index.md](../tr/index.md) + +Use this page as the English documentation entry point for `mcp-code`. + +## User Guide + +- [Getting started](./user-guide/getting-started.md) +- [Configuration](./user-guide/configuration.md) + +## Integration + +- [OpenCode integration](./integration/opencode.md) +- [Generic stdio integration](./integration/generic-stdio.md) + +## Architecture + +- [Architecture overview](./architecture/overview.md) +- [Slice model](./architecture/slice-model.md) + +## API + +- [Tool reference](./api/tool-reference.md) + +## Developer Guide + +- [Local development](./developer-guide/local-development.md) +- [Testing](./developer-guide/testing.md) +- [Release process](./developer-guide/release-process.md) + +## Security + +- [Security model](./security/security-model.md) + +Last updated: 2026-03-10 diff --git a/docs/en/integration/generic-stdio.md b/docs/en/integration/generic-stdio.md index 157303a..83a9879 100644 --- a/docs/en/integration/generic-stdio.md +++ b/docs/en/integration/generic-stdio.md @@ -1,5 +1,7 @@ # Generic Stdio Integration +Türkçe sürüm: [docs/tr/integration/generic-stdio.md](../../tr/integration/generic-stdio.md) + Any MCP host that can launch a stdio server can run `mcp-code`. ## Minimum command @@ -20,3 +22,5 @@ Any MCP host that can launch a stdio server can run `mcp-code`. - Use absolute paths for both the server entrypoint and config file. - Point `workspace.rootPath` to the repository the host should analyze. - Keep allowed commands minimal in `security.commands.allowed`. + +Last updated: 2026-03-10 diff --git a/docs/en/integration/opencode.md b/docs/en/integration/opencode.md index 9e75055..ae9dfd5 100644 --- a/docs/en/integration/opencode.md +++ b/docs/en/integration/opencode.md @@ -1,5 +1,7 @@ # OpenCode Integration +Türkçe sürüm: [docs/tr/integration/opencode.md](../../tr/integration/opencode.md) + Use `mcp-code` in OpenCode when the agent needs semantic repository workflows instead of low-level file manipulation. ## Suggested OpenCode MCP entry @@ -28,3 +30,5 @@ The repository includes the same shape in `examples/hosts/opencode.json`. 4. Apply only approved edits through `apply_safe_edit`. 5. Inspect dependents with `analyze_impact`. 6. Validate touched scope through `verify_slice`. + +Last updated: 2026-03-10 diff --git a/docs/en/security/security-model.md b/docs/en/security/security-model.md index 1654787..f4a8e07 100644 --- a/docs/en/security/security-model.md +++ b/docs/en/security/security-model.md @@ -1,5 +1,7 @@ # Security Model +Türkçe sürüm: [docs/tr/security/security-model.md](../../tr/security/security-model.md) + `mcp-code` uses a deny-by-default posture around mutation and verification. ## Security boundaries @@ -24,3 +26,5 @@ That protects the workflow in two ways: - MCP protocol traffic uses stdout. - Logs are written to stderr. - In-memory telemetry is used for runtime sampling without changing the public contract. + +Last updated: 2026-03-10 diff --git a/docs/en/user-guide/configuration.md b/docs/en/user-guide/configuration.md index 6b16c24..6c996a2 100644 --- a/docs/en/user-guide/configuration.md +++ b/docs/en/user-guide/configuration.md @@ -1,5 +1,7 @@ # Configuration +Türkçe sürüm: [docs/tr/user-guide/configuration.md](../../tr/user-guide/configuration.md) + `mcp-code` extends the runtime configuration loaded by `@vaur94/mcpbase` with repository-specific settings for workspace scoping, memory, safety, verification, and security. ## Top-level sections @@ -24,11 +26,11 @@ ## Memory -| Field | Default | Notes | -| ------------------------ | ------- | ------------------------------------ | -| `maxSlices` | `100` | Max remembered semantic slices. | -| `maxPlans` | `100` | Max remembered edit plans. | -| `maxVerificationReports` | `100` | Max remembered verification reports. | +| Field | Default | Notes | +| ------------------------ | ------- | ---------------------------------------- | +| `maxSlices` | `100` | Maximum remembered semantic slices. | +| `maxPlans` | `100` | Maximum remembered edit plans. | +| `maxVerificationReports` | `100` | Maximum remembered verification reports. | ## Safety @@ -40,7 +42,7 @@ ## Verification and security -- `verification.executeByDefault` controls whether `verify_slice` executes checks automatically. +- `verification.executeByDefault` documents the repository-level verification default, but `verify_slice` still defaults its `run` input to `true` unless the caller overrides it. - `verification.scripts` maps tool-driven checks to npm script names. - `verification.maxOutputChars` bounds normalized verification output. - `security.commands.allowed` limits command execution to explicitly allowed commands. @@ -49,3 +51,5 @@ ## Example See `examples/mcp-code.config.json` for a complete sample configuration. + +Last updated: 2026-03-10 diff --git a/docs/en/user-guide/getting-started.md b/docs/en/user-guide/getting-started.md index a61a3d5..29b0ab1 100644 --- a/docs/en/user-guide/getting-started.md +++ b/docs/en/user-guide/getting-started.md @@ -1,5 +1,7 @@ # Getting Started +Türkçe sürüm: [docs/tr/user-guide/getting-started.md](../../tr/user-guide/getting-started.md) + `mcp-code` is a stdio-first MCP server. The quickest path is to run it from the repository source, point your MCP host to the built entrypoint, and give it a configuration file that describes the target workspace. ## Prerequisites @@ -25,7 +27,7 @@ Copy `examples/mcp-code.config.json` and change the absolute paths. { "server": { "name": "mcp-code", - "version": "0.1.0" + "version": "0.2.0" }, "workspace": { "rootPath": "/absolute/path/to/target-repo" @@ -73,3 +75,5 @@ Point your MCP host to `dist/index.js` and pass the config path through `MCP_COD - Read `configuration.md` for every config field. - Read `../integration/opencode.md` for an OpenCode host example. - Read `../api/tool-reference.md` for input and output contracts. + +Last updated: 2026-03-10 diff --git a/docs/tr/README.md b/docs/tr/README.md index 3a1b623..169f7ed 100644 --- a/docs/tr/README.md +++ b/docs/tr/README.md @@ -1,30 +1,36 @@ -# Turkce Dokumantasyon +# Türkçe Dokümantasyon -## Kullanici Kilavuzu +English version: [docs/en/README.md](../en/README.md) -- `user-guide/getting-started.md` -- `user-guide/configuration.md` +Kanonik index: [index.md](./index.md) + +## Kullanıcı Kılavuzu + +- [Başlangıç kılavuzu](./user-guide/getting-started.md) +- [Yapılandırma](./user-guide/configuration.md) ## Entegrasyon -- `integration/opencode.md` -- `integration/generic-stdio.md` +- [OpenCode entegrasyonu](./integration/opencode.md) +- [Genel stdio entegrasyonu](./integration/generic-stdio.md) ## Mimari -- `architecture/overview.md` -- `architecture/slice-model.md` +- [Mimari genel bakış](./architecture/overview.md) +- [Slice modeli](./architecture/slice-model.md) ## API -- `api/tool-reference.md` +- [Tool referansı](./api/tool-reference.md) + +## Geliştirici Kılavuzu -## Gelistirici Kilavuzu +- [Lokal geliştirme](./developer-guide/local-development.md) +- [Testler](./developer-guide/testing.md) +- [Sürümleme süreci](./developer-guide/release-process.md) -- `developer-guide/local-development.md` -- `developer-guide/testing.md` -- `developer-guide/release-process.md` +## Güvenlik -## Guvenlik +- [Güvenlik modeli](./security/security-model.md) -- `security/security-model.md` +Son güncelleme: 2026-03-10 diff --git a/docs/tr/api/tool-reference.md b/docs/tr/api/tool-reference.md index 4dce720..ed89d8b 100644 --- a/docs/tr/api/tool-reference.md +++ b/docs/tr/api/tool-reference.md @@ -1,27 +1,43 @@ -# Tool Referansi +# Tool Referansı -Public contract bilerek alti tool ile sinirlidir. +English version: [docs/en/api/tool-reference.md](../../en/api/tool-reference.md) + +Public contract bilerek altı tool ile sabit tutulur. ## `resolve_code_slice` -Bir sembol, dosya veya coding hedefi icin en kucuk semantik calisma alanini bulur. +- Girdi: `target: string`, `mode?: "auto" | "symbol" | "file"` +- Çıktı: `sliceId`, hedef dosyalar, birincil ve ilişkili semboller, dependency edge'leri, verification hedefleri, confidence, sınırlamalar +- Kullanım: Planlama veya verification öncesinde en küçük semantik çalışma setine ihtiyaç duyduğunuzda ## `explain_slice` -Bir slice'i sorumluluklar, kisitlar, contract'lar ve riskler olarak aciklar. +- Girdi: `sliceId?: string`, `target?: string`, `mode?: "auto" | "symbol" | "file"` +- Çıktı: semantik özet, sorumluluklar, kontrol akışı, kısıtlar, dış sözleşmeler, riskler +- Kullanım: Ham dosya okumaları yerine bir slice'ın sıkıştırılmış açıklamasını istediğinizde ## `plan_safe_edit` -Mutasyon oncesinde invariant ve verification adimlari iceren sinirli bir plan uretir. +- Girdi: `sliceId?: string`, `target?: string`, `mode?: "auto" | "symbol" | "file"`, `intent: string`, `maxEdits?: number` +- Çıktı: `planId`, dokunulan dosyalar, dokunulan semboller, invariant'lar, öngörülen yan etkiler, gerekli sözleşme güncellemeleri, verification adımları +- Kullanım: Herhangi bir mutasyon olmadan önce sınırlı bir edit planı istediğinizde ## `apply_safe_edit` -Sadece daha once onaylanan plan kapsaminda edit uygular. +- Girdi: `planId: string`, `edits: EditOperation[]` +- Çıktı: değişen dosyalar, uygulanan edit'ler, reddedilen edit'ler, yenilenmiş slice +- Kullanım: Yalnızca mevcut plan kapsamındaki onaylı edit'leri uygulamak istediğinizde ## `analyze_impact` -Blast radius, bagimlilar ve contract maruziyetini tahmin eder. +- Girdi: `sliceId?: string`, `target?: string`, `mode?: "auto" | "symbol" | "file"` +- Çıktı: bağımlılar, sözleşme maruziyeti, muhtemel kırılma alanları, verification escalation önerisi +- Kullanım: Bir değişiklikten önce veya sonra blast radius görmek istediğinizde ## `verify_slice` -Dokunulan scope icin typecheck, lint ve test komutlarini hedefli sekilde yonlendirir. +- Girdi: `sliceId?: string`, `target?: string`, `mode?: "auto" | "symbol" | "file"`, `run?: boolean`, `checks?: ("typecheck" | "lint" | "test")[]` +- Çıktı: çalıştırılan kontroller, ilgi düzeyine göre gruplanmış hatalar, escalation önerisi +- Kullanım: Dokunulan kapsam için en küçük yararlı doğrulama setini istediğinizde + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/architecture/overview.md b/docs/tr/architecture/overview.md index 39beaff..19f1276 100644 --- a/docs/tr/architecture/overview.md +++ b/docs/tr/architecture/overview.md @@ -1,19 +1,30 @@ -# Mimari Genel Bakis +# Mimari Genel Bakış -`mcp-code`, `@vaur94/mcpbase` uzerinde kurulan slice-first bir MCP sunucusudur. +English version: [docs/en/architecture/overview.md](../../en/architecture/overview.md) -## Katmanlar +`mcp-code`, `@vaur94/mcpbase` üzerine kurulan slice-first bir mimari izler. -- `src/config`: config semasi ve varsayilanlar -- `src/context`: servis olusturma ve tipli context -- `src/contracts`: tool input/output semalari -- `src/infrastructure`: workspace analizi, memory ve verification runner -- `src/tools`: public tool adapter'lari +## Runtime ayrımı -## Akis +- `@vaur94/mcpbase`, sunucu bootstrap işlemini, config yüklemeyi, telemetry'yi, loglamayı ve MCP runtime altyapısını yönetir. +- `mcp-code`, semantik analiz, repository politikaları, workflow tool'ları, memory ve verification yönlendirmesini yönetir. -1. Runtime config'i yukler ve sunucuyu baslatir. -2. Tool istegi paylasilan servis kapsayicisini kullanir. -3. Analyzer semantik scope'u cozer. -4. Memory slice, plan, impact ve verification raporlarini saklar. -5. Verification sadece bounded workflow icinden calisir. +## Çekirdek katmanlar + +| Katman | Sorumluluk | +| -------------------- | ------------------------------------------------------------ | +| `src/config` | Runtime config şeması ve varsayılanlar | +| `src/context` | Paylaşılan servis oluşturma ve tipli execution context | +| `src/contracts` | Tool yüzeyine bakan input ve output şemaları | +| `src/infrastructure` | Workspace analizi, repository memory ve verification yürütme | +| `src/tools` | Altı workflow tool'unun ince public adapter'ları | + +## İstek akışı + +1. Runtime, config'i yükler ve sunucuyu başlatır. +2. Bir tool isteği, paylaşılan servis kapsayıcısını oluşturur veya yeniden kullanır. +3. Repository analyzer semantik kapsamı çözümler. +4. Memory, takip eden adımlar için slice, plan, impact ve verification raporlarını saklar. +5. Verification yalnızca sınırlı workflow içinden yönlendirildiğinde çalışır. + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/architecture/slice-model.md b/docs/tr/architecture/slice-model.md index b27dbc9..80e4c41 100644 --- a/docs/tr/architecture/slice-model.md +++ b/docs/tr/architecture/slice-model.md @@ -1,18 +1,33 @@ # Slice Modeli -Slice, `mcp-code` icindeki temel calisma birimidir. +English version: [docs/en/architecture/slice-model.md](../../en/architecture/slice-model.md) -## Icerik +Slice, `mcp-code` içindeki temel çalışma birimidir. -- `sliceId` -- hedef repo koku -- hedef tanimi -- ilgili dosyalar -- birincil ve iliskili semboller -- bagimlilik kenarlari -- verification hedefleri -- confidence ve limitation bilgisi +## Bir slice neleri içerir? -## Neden onemli? +- Kararlı bir `sliceId` +- Hedef repository kökü +- İstenen hedef tanımı +- İlgili dosyaların listesi +- Birincil semboller ve ilişkili semboller +- Bu semboller arasındaki dependency edge'leri +- Aday verification hedefleri +- Confidence ve bilinen sınırlamalar -Tum semantik workflow ayni sinirli kapsam uzerinden devam eder. Boylece aciklama, planlama, impact ve verification ayni bilgi zemini uzerinde calisir. +## Slice'lar neden önemlidir? + +Slice'lar, aşağı akış tool'ların aynı sınırlı kapsamı paylaşmasını sağlar. + +- `explain_slice`, resolver'ın ürettiği aynı slice'ı açıklar. +- `plan_safe_edit`, aynı semantik birimden bir edit planı üretir. +- `analyze_impact` ve `verify_slice`, workflow tutarlı kalsın diye aynı kapsamı yeniden kullanır. + +## Yaşam döngüsü + +1. Bir slice çözümleyin. +2. Onu repository memory içinde saklayın. +3. `sliceId` değerini explanation, planning, impact ve verification adımlarında yeniden kullanın. +4. `apply_safe_edit` başarılı olduğunda slice'ı yenileyin. + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/developer-guide/local-development.md b/docs/tr/developer-guide/local-development.md index 8848a4a..66af5c2 100644 --- a/docs/tr/developer-guide/local-development.md +++ b/docs/tr/developer-guide/local-development.md @@ -1,4 +1,6 @@ -# Lokal Gelistirme +# Lokal Geliştirme + +English version: [docs/en/developer-guide/local-development.md](../../en/developer-guide/local-development.md) ## Kurulum @@ -6,7 +8,7 @@ npm ci ``` -## Gunluk komutlar +## Günlük komutlar ```bash npm run lint @@ -16,14 +18,16 @@ npm run test:protocol npm run build ``` -## Tam kalite kapisi +## Tam kalite kapısı ```bash npm run ci:check ``` -## Calisma kurallari +## Çalışma kuralları + +- Kamuya açık sözleşme bilerek değişmiyorsa altı toolluk surface'i sabit tutun. +- Config, workflow veya runtime davranışı değiştiğinde docs ve examples'ı da güncelleyin. +- Stdout'u yalnızca MCP protokolü için kullanın; logları stderr'e yönlendirin. -- Alti toolluk public surface'i gereksiz yere buyutme. -- Davranis degisince docs ve examples'i de guncelle. -- stdout'u sadece MCP protokolu icin kullan. +Son güncelleme: 2026-03-10 diff --git a/docs/tr/developer-guide/release-process.md b/docs/tr/developer-guide/release-process.md index fc4f115..95302c2 100644 --- a/docs/tr/developer-guide/release-process.md +++ b/docs/tr/developer-guide/release-process.md @@ -1,23 +1,36 @@ -# Release Sureci +# Sürümleme Süreci -`mcp-code`, `main` branch'i uzerinde `release-please` kullanir. +English version: [docs/en/developer-guide/release-process.md](../../en/developer-guide/release-process.md) -npm paket kimligi `@vaur94/mcp-code` olarak hedeflenir. Unscoped `mcp-code` paketi farkli bir maintainer'a ait oldugu icin bu repodan o paket uzerinde release yapilmaz. +`mcp-code`, `main` üzerinden `release-please` kullanır. -## Ne release tetikler? +npm paket kimliği `@vaur94/mcp-code` olarak hedeflenir. Unscoped `mcp-code` paketi farklı bir maintainer'a ait olduğu için bu repository yalnızca scoped paketi yayımlar. -Conventional commit mesajlari semantic version artisini belirler. +## Release'i ne tetikler? -- `feat:` -> minor -- `fix:` -> patch -- `BREAKING CHANGE:` veya `!` -> major +Conventional commit mesajları semantic version artışını belirler. -## Akis +- `feat:` -> minor release +- `fix:` -> patch release +- `!` veya `BREAKING CHANGE:` -> major release -1. Dogrulanmis degisikligi `main` icine al. -2. `npm run ci:check` sonucunu dogrula. -3. `Release` workflow'unun olusturdugu release PR'i gozden gecir. -4. `@vaur94/mcp-code` npm'de yoksa ilk publish'i paket kokunden manuel yap. -5. Ilk publish sonrasinda npm trusted publisher kaydini `publish.yml` icin olustur. -6. Release PR merge edildikten sonra `Publish Package` workflow'unun paketi dogruladigini ve trusted publishing ile yayimladigini kontrol et. -7. GitHub release, `CHANGELOG.md` ve npm yayin sonucunu kontrol et. +## İş akışı + +1. Doğrulanmış değişiklikleri `main` içine merge edin. +2. GitHub Actions `npm run ci:check` komutunu çalıştırır. +3. `Release` workflow'u bir release PR açar veya günceller. +4. Bu release PR merge edildiğinde GitHub release oluşur ve `CHANGELOG.md` ile `package.json` güncellenir. +5. Scoped paket henüz yoksa `@vaur94/mcp-code` için ilk npm publish'i paket kökünden manuel yapın. +6. İlk publish sonrasında npm trusted publishing'i `publish.yml` dosyasına bağlayın. +7. `Publish Package` workflow'u paketi doğrular ve npm trusted publishing ile yayımlar. +8. GitHub release tag'i `package.json` ile eşleşmezse publish işi başarısız olur. + +## Önemli dosyalar + +- `release-please-config.json` +- `.release-please-manifest.json` +- `.github/workflows/release.yml` +- `.github/workflows/publish.yml` +- `package.json` + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/developer-guide/testing.md b/docs/tr/developer-guide/testing.md index 7641083..1d42ded 100644 --- a/docs/tr/developer-guide/testing.md +++ b/docs/tr/developer-guide/testing.md @@ -1,18 +1,26 @@ # Testler -`mcp-code` uc test katmani kullanir. +English version: [docs/en/developer-guide/testing.md](../../en/developer-guide/testing.md) + +`mcp-code` üç test katmanı kullanır. ## Test setleri -| Komut | Kapsam | -| ----------------------- | --------------------------------------------- | -| `npm run test` | Unit ve integration testleri | -| `npm run test:protocol` | Build edilmis runtime uzerinde protocol testi | -| `npm run test:coverage` | Coverage raporu | -| `npm run ci:check` | Tum kalite kapisi | +| Komut | Kapsam | +| ----------------------- | ------------------------------------------------------------------------------ | +| `npm run test` | Unit ve integration testleri | +| `npm run test:protocol` | Derlenmiş sunucuya karşı runtime seviyesinde protocol doğrulaması | +| `npm run test:coverage` | Unit ve integration coverage raporu | +| `npm run ci:check` | Format, lint, type, coverage, protocol, build ve audit dahil tam kalite kapısı | + +## Fixture stratejisi + +Repository davranışı `tests/fixtures/sample-repo` üzerinden sınanır; bu yaklaşım semantik iş akışlarını deterministic ve tekrar edilebilir tutar. ## Ne zaman yeni test eklenmeli? -- Schema veya lokal servis mantigi degistiginde unit test -- Workflow birden fazla katmani etkilediginde integration test -- Public tool surface veya runtime wiring degistiginde protocol test +- Schema normalizasyonu veya yerel servis mantığı değiştiğinde unit test ekleyin. +- Workflow davranışı birden fazla katmanda değiştiğinde integration test ekleyin. +- Public tool surface veya runtime wiring değiştiğinde protocol test ekleyin. + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/index.md b/docs/tr/index.md new file mode 100644 index 0000000..d92eaff --- /dev/null +++ b/docs/tr/index.md @@ -0,0 +1,36 @@ +# Türkçe Dokümantasyon İndeksi + +English version: [docs/en/index.md](../en/index.md) + +Bu sayfa `mcp-code` için Türkçe dokümantasyon giriş noktasıdır. + +## Kullanıcı Kılavuzu + +- [Başlangıç kılavuzu](./user-guide/getting-started.md) +- [Yapılandırma](./user-guide/configuration.md) + +## Entegrasyon + +- [OpenCode entegrasyonu](./integration/opencode.md) +- [Genel stdio entegrasyonu](./integration/generic-stdio.md) + +## Mimari + +- [Mimari genel bakış](./architecture/overview.md) +- [Slice modeli](./architecture/slice-model.md) + +## API + +- [Tool referansı](./api/tool-reference.md) + +## Geliştirici Kılavuzu + +- [Lokal geliştirme](./developer-guide/local-development.md) +- [Testler](./developer-guide/testing.md) +- [Sürümleme süreci](./developer-guide/release-process.md) + +## Güvenlik + +- [Güvenlik modeli](./security/security-model.md) + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/integration/generic-stdio.md b/docs/tr/integration/generic-stdio.md index e4519a1..faaabb2 100644 --- a/docs/tr/integration/generic-stdio.md +++ b/docs/tr/integration/generic-stdio.md @@ -1,8 +1,10 @@ # Genel Stdio Entegrasyonu -Stdio tabanli MCP host'lari `mcp-code` sunucusunu ayni komut modeliyle calistirabilir. +English version: [docs/en/integration/generic-stdio.md](../../en/integration/generic-stdio.md) -## Minimum tanim +Stdio tabanlı bir sunucu çalıştırabilen tüm MCP host'ları `mcp-code` kullanabilir. + +## Minimum komut ```json { @@ -16,7 +18,9 @@ Stdio tabanli MCP host'lari `mcp-code` sunucusunu ayni komut modeliyle calistira ## Kontrol listesi -- Once `npm run build` calistir. -- Mutlak yollar kullan. -- `workspace.rootPath` alanini hedef repo ile uyumlu yap. -- `security.commands.allowed` alanini minimumda tut. +- Önce `npm run build` çalıştırın. +- Sunucu giriş noktası ve config dosyası için mutlak yollar kullanın. +- `workspace.rootPath` alanını analiz edilecek repository ile eşleştirin. +- `security.commands.allowed` alanını mümkün olduğunca dar tutun. + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/integration/opencode.md b/docs/tr/integration/opencode.md index b6960e7..a1a7254 100644 --- a/docs/tr/integration/opencode.md +++ b/docs/tr/integration/opencode.md @@ -1,8 +1,10 @@ # OpenCode Entegrasyonu -OpenCode icinde `mcp-code` kullanildiginda ajan, dosya seviyesindeki islemler yerine semantik workflow'larla calisir. +English version: [docs/en/integration/opencode.md](../../en/integration/opencode.md) -## Onerilen giris +OpenCode içinde `mcp-code` kullanıldığında ajan, düşük seviyeli dosya manipülasyonu yerine semantik repository iş akışlarıyla çalışır. + +## Önerilen OpenCode MCP girdisi ```json { @@ -18,11 +20,15 @@ OpenCode icinde `mcp-code` kullanildiginda ajan, dosya seviyesindeki islemler ye } ``` -## Onerilen akis +Repository içinde aynı şekil `examples/hosts/opencode.json` dosyasında da bulunur. + +## Önerilen iş akışı + +1. Hedef alanı `resolve_code_slice` ile çözümleyin. +2. Sorumlulukları ve riskleri `explain_slice` ile özetleyin. +3. Amaçlanan değişikliği `plan_safe_edit` ile planlayın. +4. Yalnızca onaylanan edit'leri `apply_safe_edit` ile uygulayın. +5. Bağımlı alanları `analyze_impact` ile inceleyin. +6. Dokunulan kapsamı `verify_slice` ile doğrulayın. -1. `resolve_code_slice` -2. `explain_slice` -3. `plan_safe_edit` -4. `apply_safe_edit` -5. `analyze_impact` -6. `verify_slice` +Son güncelleme: 2026-03-10 diff --git a/docs/tr/security/security-model.md b/docs/tr/security/security-model.md index eb91cc8..9bf52a5 100644 --- a/docs/tr/security/security-model.md +++ b/docs/tr/security/security-model.md @@ -1,17 +1,30 @@ -# Guvenlik Modeli +# Güvenlik Modeli -`mcp-code`, mutasyon ve verification tarafinda deny-by-default yaklasimi izler. +English version: [docs/en/security/security-model.md](../../en/security/security-model.md) -## Sinirlar +`mcp-code`, mutasyon ve verification etrafında deny-by-default bir yaklaşım izler. -- Public tool surface icinde raw file CRUD yoktur. -- Public tool surface icinde arbitrary shell execution yoktur. -- Edit uygulamasi sadece daha once uretilmis bir planla calisir. -- Verification yalnizca config'te izin verilen script ve komutlar ile calisir. -- Workspace erisimi izinli path'lerle sinirlanir. +## Güvenlik sınırları -## Ek guardrail'ler +- Public tool surface içinde raw file CRUD helper'ları yoktur. +- Public tool surface içinde arbitrary shell execution yoktur. +- Edit uygulaması yalnızca hatırlanan bir edit planına karşı çalışır. +- Verification, yalnızca yapılandırılmış script adlarını ve izinli komutları kullanır. +- Workspace erişimi yapılandırılmış izinli yollarla sınırlı kalır. -- `apply_safe_edit` gecerli bir `planId` ister. -- `verify_slice` sonucunda cikti normalize edilir ve sinirli tutulur. -- stdout MCP protokolu icindir, loglar stderr'e gider. +## Mutasyon guardrail'leri + +`apply_safe_edit`, `plan_safe_edit` tarafından üretilmiş geçerli bir `planId` ister. + +Bu koruma iş akışını iki şekilde güvence altına alır: + +1. Edit, daha önce planlanan sembol ve dosya kapsamına sığmalıdır. +2. Analyzer, onaylanan plan sınırına uymayan edit'leri reddedebilir. + +## Loglama ve protokol ayrımı + +- MCP protokol trafiği stdout kullanır. +- Loglar stderr'e yazılır. +- In-memory telemetry, kamuya açık sözleşmeyi değiştirmeden runtime örneklemesi sağlar. + +Son güncelleme: 2026-03-10 diff --git a/docs/tr/user-guide/configuration.md b/docs/tr/user-guide/configuration.md index c735d5d..f0a512e 100644 --- a/docs/tr/user-guide/configuration.md +++ b/docs/tr/user-guide/configuration.md @@ -1,28 +1,55 @@ -# Konfigurasyon +# Yapılandırma -`mcp-code`, `@vaur94/mcpbase` runtime konfigunun ustune workspace, memory, safety, verification ve security ayarlari ekler. +English version: [docs/en/user-guide/configuration.md](../../en/user-guide/configuration.md) -## Ana bolumler +`mcp-code`, `@vaur94/mcpbase` tarafından yüklenen runtime config üzerine repository'ye özgü workspace kapsamı, memory, safety, verification ve security ayarları ekler. -| Alan | Tip | Amac | -| -------------- | ------ | ------------------------------------------------------ | -| `server` | object | Runtime'a gecilen sunucu adi ve versiyonu | -| `logging` | object | stderr log seviyesi ve zaman damgasi ayari | -| `workspace` | object | Analiz edilecek repo koku ve include/exclude glob'lari | -| `memory` | object | Slice, plan ve verification cache limitleri | -| `safety` | object | Slice genisligi ve plan boyutu limitleri | -| `verification` | object | Varsayilan calisma davranisi ve script adlari | -| `security` | object | Izinli komutlar ve izinli yollar | +## Üst düzey bölümler + +| Alan | Tip | Amaç | +| -------------- | ------ | --------------------------------------------------------------------- | +| `server` | object | Runtime config'e geçirilen sunucu adı ve sürümü. | +| `logging` | object | Stderr log seviyesi ve zaman damgası davranışı. | +| `workspace` | object | Analizde kullanılacak repository kökü ile include/exclude glob'ları. | +| `memory` | object | Slice, plan ve verification raporları için dahili önbellek sınırları. | +| `safety` | object | Slice genişliği ve edit plan boyutu için sert sınırlar. | +| `verification` | object | Varsayılan çalıştırma davranışı ve repository script adları. | +| `security` | object | Hedefli verification ve mutasyon için izinli komutlar ve yollar. | ## Workspace -- `rootPath`: hedef deponun mutlak yolu -- `include`: taranacak dosya glob'lari -- `exclude`: disarida tutulacak dizin ve cikti alanlari +| Alan | Varsayılan | Notlar | +| ---------- | --------------------------------------------------- | ------------------------------------------- | +| `rootPath` | `process.cwd()` | Analiz edilecek repository'nin mutlak yolu. | +| `include` | `src/**/*`, `tests/**/*` varyantları | Workspace katmanının taradığı glob'lar. | +| `exclude` | `node_modules`, `dist`, `build`, `coverage`, `.git` | Analiz dışında tutulan yollar. | + +## Memory + +| Alan | Varsayılan | Notlar | +| ------------------------ | ---------- | ------------------------------------------ | +| `maxSlices` | `100` | Hatırlanan semantik slice üst sınırı. | +| `maxPlans` | `100` | Hatırlanan edit planı üst sınırı. | +| `maxVerificationReports` | `100` | Hatırlanan verification raporu üst sınırı. | + +## Safety + +| Alan | Varsayılan | Notlar | +| ------------------- | ---------- | ----------------------------------------------- | +| `maxSliceFiles` | `12` | Slice genişlemesinin fazla büyümesini engeller. | +| `maxRelatedSymbols` | `30` | İlişkili sembol genişlemesini sınırlar. | +| `maxEditsPerPlan` | `20` | Edit plan boyutu için sert üst sınırdır. | + +## Verification ve security + +- `verification.executeByDefault`, repository düzeyindeki verification varsayılanını belgelendirir; ancak çağıran taraf aksini vermediği sürece `verify_slice` aracının `run` girdisi hala `true` varsayılanıyla çalışır. +- `verification.scripts`, tool kaynaklı kontrolleri npm script adlarına eşler. +- `verification.maxOutputChars`, normalize edilen verification çıktısını sınırlar. +- `security.commands.allowed`, komut çalıştırmayı açıkça izin verilen komutlarla sınırlar. +- `security.paths.allowed`, repository etkileşimini onaylı yollarla sınırlar. + +## Örnek -## Memory, Safety, Verification +Tam örnek yapılandırma için `examples/mcp-code.config.json` dosyasına bakın. -- `maxSlices`, `maxPlans`, `maxVerificationReports` cache limitlerini belirler. -- `maxSliceFiles`, `maxRelatedSymbols`, `maxEditsPerPlan` guvenlik sinirlarini belirler. -- `verification.scripts` typecheck, lint ve test script adlarini tanimlar. -- `security.commands.allowed` ve `security.paths.allowed` izinli operasyon alanini sinirlar. +Son güncelleme: 2026-03-10 diff --git a/docs/tr/user-guide/getting-started.md b/docs/tr/user-guide/getting-started.md index f679848..2a52166 100644 --- a/docs/tr/user-guide/getting-started.md +++ b/docs/tr/user-guide/getting-started.md @@ -1,12 +1,14 @@ -# Baslangic Kilavuzu +# Başlangıç Kılavuzu -`mcp-code`, stdio-first bir MCP sunucusudur. En hizli yol, depodan calistirmak, build edilen giris noktasini host'a baglamak ve hedef repo icin bir config dosyasi vermektir. +English version: [docs/en/user-guide/getting-started.md](../../en/user-guide/getting-started.md) + +`mcp-code`, stdio-first bir MCP sunucusudur. En hızlı yol, depodan çalıştırmak, derlenen giriş noktasını host'a bağlamak ve hedef repository için bir yapılandırma dosyası vermektir. ## Gereksinimler - Node `>=22.14.0` - npm `>=10` -- Analiz edilmek istenen bir kod deposu +- Sunucunun analiz edeceği bir repository ## Kaynaktan kurulum @@ -17,15 +19,15 @@ npm ci npm run build ``` -## Config dosyasi olusturma +## Yapılandırma dosyası oluşturma -`examples/mcp-code.config.json` dosyasini kopyalayip mutlak yollari guncelle. +`examples/mcp-code.config.json` dosyasını kopyalayın ve mutlak yolları güncelleyin. ```json { "server": { "name": "mcp-code", - "version": "0.1.0" + "version": "0.2.0" }, "workspace": { "rootPath": "/absolute/path/to/target-repo" @@ -41,9 +43,9 @@ npm run build } ``` -## Host baglantisi +## Host bağlantısı -Host tarafinda `dist/index.js` dosyasina baglan ve `MCP_CODE_CONFIG` ortam degiskenini ver. +MCP host'unuzu `dist/index.js` dosyasına yönlendirin ve yapılandırma yolunu `MCP_CODE_CONFIG` ile geçin. ```json { @@ -59,11 +61,19 @@ Host tarafinda `dist/index.js` dosyasina baglan ve `MCP_CODE_CONFIG` ortam degis } ``` -## Ilk workflow +## İlk iş akışı + +1. `resolve_code_slice` ile bir dilim çözümleyin. +2. `explain_slice` ile o dilimi açıklayın. +3. `plan_safe_edit` ile sınırlı bir edit planı üretin. +4. Onaylanan değişiklikleri `apply_safe_edit` ile uygulayın. +5. Blast radius'u `analyze_impact` ile inceleyin. +6. Hedefli doğrulamayı `verify_slice` ile çalıştırın. + +## Sonraki adımlar + +- Tüm yapılandırma alanları için `configuration.md` sayfasını okuyun. +- OpenCode host örneği için `../integration/opencode.md` sayfasına bakın. +- Input/output sözleşmeleri için `../api/tool-reference.md` sayfasını inceleyin. -1. `resolve_code_slice` ile slice bul. -2. `explain_slice` ile anlamsal ozet al. -3. `plan_safe_edit` ile sinirli plan uret. -4. `apply_safe_edit` ile onayli degisikligi uygula. -5. `analyze_impact` ile etkiyi incele. -6. `verify_slice` ile dogrulama yap. +Son güncelleme: 2026-03-10 diff --git a/examples/mcp-code.config.json b/examples/mcp-code.config.json index e9ff371..27c15e6 100644 --- a/examples/mcp-code.config.json +++ b/examples/mcp-code.config.json @@ -1,7 +1,7 @@ { "server": { "name": "mcp-code", - "version": "0.1.0" + "version": "0.2.0" }, "logging": { "level": "info",