validation-patterns — скилл для Claude Code: валидация в ASP.NET Core
Скилл подсказывает агенту, как валидировать данные в ASP.NET Core: от атрибутов до FluentValidation и проверки конфигурации на старте.
npx skills add wshaddix/dotnet-skills --skill validation-patterns -a claude-codeЧто делает validation-patterns
Скилл описывает пять слоёв валидации: клиентскую сторону, привязку модели, бизнес-правила, проверку конфигурации и ограничения в базе. Внутри — дерево решений, которое помогает выбрать подход по сложности задачи. Для простых полей это DataAnnotations с атрибутами [Required], [Range], [StringLength]. Для правил, зависящих от нескольких свойств, — IValidatableObject или собственный ValidationAttribute.
Отдельно разобраны IValidateOptions<T> для проверки классов настроек при запуске приложения и FluentValidation для асинхронных валидаторов, которым нужна база данных. Есть примеры кода: модель запроса с атрибутами, атрибут FutureDateAttribute, класс-атрибут DateRangeAttribute для сравнения дат, реализация Validate() в CreateOrderRequest с проверкой даты отгрузки и суммы заказа.
Скилл рассчитан на проекты на ASP.NET Core. Если у вас другой стек, примеры не перенести. Часть атрибутов — [AllowedValues], [DeniedValues], [Length], [Base64String] — помечена как доступная с .NET 8, поэтому на более старой версии рантайма они не скомпилируются. Это повод проверить целевую версию, прежде чем копировать код в проект.
Какие задачи решает
- выбрать между DataAnnotations и FluentValidation для конкретной модели
- описать правило, которое зависит от двух свойств сразу
- проверить класс настроек при старте приложения
- написать переиспользуемый атрибут для доменного правила
- добавить асинхронную проверку, которой нужна база данных
Примеры запросов агенту
- Добавь валидацию для CreateProductRequest по паттернам из скилла validation-patterns
- Сделай cross-field проверку даты отгрузки в CreateOrderRequest
- Настрой IValidateOptions для класса настроек и проверь его на старте
Как установить validation-patterns
1Через Skills CLI (Vercel)
npx skills add wshaddix/dotnet-skills --skill validation-patterns -a claude-code2Вручную: положить файлы
~/.claude/skills/validation-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/validation-patterns/
1Через Skills CLI (Vercel)
npx skills add wshaddix/dotnet-skills --skill validation-patterns -a codex2Вручную: положить файлы
.agents/skills/validation-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshaddix/dotnet-skills --skill validation-patterns -a cursor2Вручную: положить файлы
.cursor/skills/validation-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshaddix/dotnet-skills validation-patterns2Вручную: положить файлы
.github/skills/validation-patterns/SKILL.md1Через Skills CLI (Vercel)
npx skills add wshaddix/dotnet-skills --skill validation-patterns -a gemini-cli2Командой платформы
gemini skills install https://github.com/wshaddix/dotnet-skills --path skills/validation-patternsВручную: положить файлы
.devin/skills/validation-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add wshaddix/dotnet-skills --skill validation-patterns -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о validation-patterns
Как установить validation-patterns в Claude?
Выполните npx skills add wshaddix/dotnet-skills --skill validation-patterns -a claude-code. После этого файл скилла окажется в ~/.claude/skills/validation-patterns/SKILL.md.
Что делает validation-patterns?
Собирает паттерны валидации для ASP.NET Core: DataAnnotations, собственные ValidationAttribute, IValidatableObject, IValidateOptions<T>, FluentValidation и клиентскую проверку. Агент обращается к ним, когда вы просите добавить или переделать валидацию.
Для каких проектов подходит этот скилл?
Для приложений на ASP.NET Core. Примеры завязаны на C# и пространство имён System.ComponentModel.DataAnnotations, а часть атрибутов требует .NET 8 или новее.