Превращаем Claude из Автодополнителя в Коллегу. Окончание
Начало
Модульные правила: прекратите повторяться и остановите импровизации Claude
Claude Code поддерживает модульные правила в папке
.claude/rules/*.md.Создадим:
1.
.claude/rules/api-conventions.md:# API conventions (Minimal APIs) ---> Зависит от ваших настроек
- Prefer Minimal APIs (`MapGet/MapPost`) over controllers.
- Endpoints must accept CancellationToken.
- Validate inputs early. Return ProblemDetails for errors.
- For outbound calls: use IHttpClientFactory + timeouts.
- For "slow work": queue it (don't run it in the request).
2.
.claude/rules/perf-reliability.md:# Perf + reliability rules
- All outbound HTTP:
- Timeout per request
- CancellationToken wired through
- Retry ONLY for safe idempotent calls (and never infinite)
- Redis:
- Cache calls get a small time budget (fail fast)
- Stampede protection for hot keys (singleflight or equivalent)
- TTL jitter for large fleets
- Logging:
- Avoid high-cardinality fields
- Avoid expensive structured logs in hot paths
3.
.claude/rules/security.md:# Security rules
- No secrets in code or CLAUDE.md.
- Avoid putting sensitive IDs/tokens in query strings.
- Auth must be explicit on endpoints (no accidental public routes).
- CORS must be restrictive (no AllowAnyOrigin in prod configs).
Теперь корневой
CLAUDE.md остаётся коротким и читаемым, а правила — таргетированными.Как быстро сделать Claude полезным?
Собственные рекомендации Claude сводятся к следующему: относитесь к
CLAUDE.md как к живому конфигурационному файлу, который вы совершенствуете со временем.Пошагово:
- Запустите
/init один раз, чтобы получить начальный файл.- Удалите всё «сферическое в вакууме». Сохраняйте только специфичные для репозитория правила.
- Каждый раз, когда Claude делает что-то не то, добавляйте правило, которое это предотвращает.
- Переместите большие фрагменты правил в
.claude/rules/, чтобы корневой файл оставался чистым.- При переключении задач очищайте контекст с помощью
/clear, чтобы Claude не переносил старые неактуальные детали в следующую имплементацию.В блоге Claude также упоминается использование клавиши
# для добавления инструкций, которые вы постоянно повторяете (так что они накапливаются в CLAUDE.md со временем).Что добавлять (а что нет)
1. Добавить (полезно)
- точные версии технологий + фреймворки, которые вы действительно используете;
- карту папок + «где что находится»;
- ваши строгие правила (тайм-ауты, отмена, отсутствие Task.Run, отсутствие синхронного кода поверх асинхронного);
- команды сборки/тестирования/запуска;
- шаблоны, которые вы не хотите, чтобы предлагались.
2. Не добавлять (мало полезно или опасно)
- секреты, токены, строки подключения (никогда!);
- правила стиля, которые уже применяются вашим форматтером;
- «войну-и-мир» документации, которую Claude всё равно сможет просмотреть.
Цель не в том, чтобы научить Клода .NETу. Цель — научить Клода вашему репозиторию.
Простой «тестовый промпт» для проверки вашего CLAUDE.md:
«Добавь новую конечную точку, которая вызывает нижестоящий HTTP-сервис и безопасно кэширует ответ. Сначала покажи план, затем реализуй».
Если Claude (например):
- использует минимальный API;
- использует CancellationToken по всей цепочке;
- устанавливает тайм-аут запроса;
- избегает Task.Run;
- добавляет безопасные шаблоны кэширования
…ваш
CLAUDE.md работает.Если он импровизирует, в вашем
CLAUDE.md отсутствуют правила.Итого
Если вы серьёзно относитесь к разработке с использованием ИИ в .NET, перестаньте настойчиво промптить и начните лучше проводить адаптацию.
CLAUDE.md поможет превратить Claude из «умного автозаполнения» в «надёжного члена команды».Источник: https://medium.com/codetodeploy/claude-md-for-net-10-turn-claude-from-autocomplete-into-a-teammate-5ae9d5ad0b92