Превращаем Claude из Автодополнителя в Коллегу. Начало
Claude не «плохо разбирается в .NET». Он слеп. Вы просите его «добавить конечную точку», а он уверенно:
- изобретает структуру папок, которая не соответствует вашему репозиторию;
- добавляет шаблоны, которые вы не используете;
- пропускает ваш рабочий процесс сборки/тестирования;
- нарушает соглашения и заставляет вас убирать за ним.
Это не проблема ИИ. Это проблема адаптации.
Решение — один файл, который становится системой оперирования вашим проектом для Claude:
CLAUDE.md.В Claude Code файлы памяти, такие как
./CLAUDE.md (и модульные правила в ./.claude/rules/*.md), автоматически загружаются в качестве контекста при запуске инструмента, поэтому Claude начинает каждую сессию с картой вашего проекта и правилами, вместо того чтобы гадать.Что на самом деле делает CLAUDE.md
Представьте
CLAUDE.md как вводные инструкции для нового старшего разработчика. Однако этот «разработчик» будет:- последовательно следовать вашим инструкциям,
- запоминать их между сессиями,
- перестанет каждый раз заново изобретать вашу архитектуру.
В документации Claude Code файл
CLAUDE.md описывается как файл конфигурации проекта, который находится в вашем репозитории и автоматически загружается в контекст.И что важно: вам не нужно начинать с нуля. Claude Code поддерживает команду
/init для генерации стартового файла CLAUDE.md путём сканирования вашего репозитория — затем вы его дорабатываете.Правило: ваш CLAUDE.md должен предотвращать дорогостоящие ошибки
Если
CLAUDE.md не предотвращает одну из следующих ошибок, он не выполняет свою работу:- неправильные шаблоны (репозитории, AutoMapper, случайные абстракции, которые вы не используете);
- неправильный рабочий процесс (изменения без плана, отсутствие тестов, отсутствие валидации);
- неправильные значения по умолчанию (тайм-ауты, отмена, повторные попытки, фоновая работа, время жизни DI).
Поэтому не пишите его как документацию. Пишите его как: ограничители + карта + команды.
Структура памяти Claude Code
Claude Code поддерживает небольшую иерархию файлов памяти, включая:
-
./CLAUDE.md для общей памяти проекта,-
./.claude/rules/*.md для модульных правил,-
~/.claude/CLAUDE.md для ваших личных глобальных настроек,-
./CLAUDE.local.md для ваших личных заметок по проекту (и он НЕ предназначен для того, чтобы его коммитили).Это означает, что вы можете:
- держать краткий корневой файл
CLAUDE.md,- поместить подробные правила в
.claude/rules/,- хранить ваши личные данные в
CLAUDE.local.md, не засоряя репозиторий.Минимально необходимый CLAUDE.md для бэкенда на .NET 10
Создайте
CLAUDE.md в корневом каталоге вашего репозитория:## What this repo is
- .NET 10 backend API focused on scalability, p95/p99 latency, and production reliability.
- Prefer simple, copy/pasteable patterns over "clever architecture".
## Tech stack --> Зависит от ваших условий
- .NET 10 / C# (modern style)
- ASP.NET Core (Minimal APIs)
- Dapper (NOT EF Core)
- Redis (IDistributedCache / StackExchange.Redis depending on project)
- Azure hosting (App Service / Containers)
- Observability: Application Insights (logs + metrics)
## Repo map --> Измените, чтоб соответствовало вашим папкам
- src/Api/ → endpoints, DI, middleware, startup
- src/App/ → use-cases/services (business orchestration)
- src/Infra/ → DB, Redis, HTTP clients, external integrations
- tests/ → unit + integration tests
## Hard rules (do not violate)
- NEVER add new framework layers or "Clean Architecture cosplay".
- NEVER introduce patterns we don't use (AutoMapper, repositories, magic abstractions).
- Always pass CancellationToken through all async calls.
- No sync-over-async (no .Result/.Wait).
- No Task.Run inside request handlers.
- Outbound HTTP MUST have timeouts + cancellation.
- Caching MUST have: time budget, stampede protection strategy, and key versioning.
## Default workflow
1) Ask for missing requirements before changing code.
2) Propose a plan + list files to touch.
3) Implement smallest change that works.
4) Add/update tests when relevant.
5) Provide commands to verify (build/test/run).
## Commands --> Измените на нужные вам
- Build: `dotnet build`
- Test: `dotnet test`
- Run API: `dotnet run --project src/Api`
- Format: `dotnet format`
## Output format
- Prefer short sections, small code blocks, and explain trade-offs.
- When making changes: show diff-level guidance + why.
Этого достаточно, чтобы избежать 80% гаданий Claude.
Далее сделаем его жутко эффективным.
Окончание следует…
Источник: https://medium.com/codetodeploy/claude-md-for-net-10-turn-claude-from-autocomplete-into-a-teammate-5ae9d5ad0b92