AIKraft/Skills/Создание целей

Создание целей

Canonical patterns for writing custom MSBuild targets. USE FOR: diagnosing and fixing custom target authoring anti-patterns; broken SDK target chains across files (e.g., Directory.Build.targets silently redefining SDK targets); targets that replace CompileDependsOn instead of extending it with $(CompileDependsOn); query targets returning stale results from Outputs vs Returns misuse; missing Inputs

dotnet official Документы

Что делает навык

Skill предоставляет канонические паттерны написания пользовательских MSBuild-таргетов, основанные на структуре Microsoft.Common.CurrentVersion.targets. Он помогает диагностировать антипаттерны, такие как разрыв цепочек SDK-таргетов, неверное переопределение зависимостей или использование Outputs вместо Returns.

Когда применять

  • Диагностика и исправление антипаттернов при авторстве пользовательских таргетов
  • Восстановление цепочек SDK-таргетов, прерванных молчаливым переопределением в Directory.Build.targets
  • Исправление таргетов, которые заменяют CompileDependsOn вместо его расширения через $(CompileDependsOn)
  • Устранение проблем с запросными таргетами, возвращающими устаревшие результаты из-за неверного использования Outputs вместо Returns
  • Добавление отсутствующих Inputs для корректной работы инкрементальной сборки

Как работает

  1. Изучить структуру цепочки из трех уровней (Before → Core → After) для основных точек входа (Build, Rebuild, Clean)
  2. Проверить свойство BuildDependsOn, которое делегирует выполнение списку зависимостей
  3. Убедиться, что пользовательские таргеты расширяют существующие списки зависимостей, а не заменяют их
  4. Проверить корректность использования Outputs и Returns для предотвращения возврата устаревших результатов
  5. Добавить недостающие Inputs для обеспечения корректной работы инкрементальной сборки
  6. Применить канонические паттерны из Microsoft.Common.CurrentVersion.targets для исправления найденных проблем

Примеры запросов агенту

Исправь антипаттерн, где Directory.Build.targets молча переопределяет SDK-таргеты, разрывая цепочку сборки
Найди и исправь таргет, который заменяет CompileDependsOn вместо его расширения через $(CompileDependsOn)
Устрани проблему с запросным таргетом, возвращающим устаревшие результаты из-за неверного использования Outputs вместо Returns

Описание составлено по SKILL.md навыка, сверено 05.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «target-authoring» из репозитория: # https://github.com/dotnet/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r target-authoring/ ~/.claude/skills/target-authoring/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.