К основному содержанию
субагент официальный · GitHub

C#/.NET Janitor — субагент для GitHub Copilot: как настроить

Субагент наводит порядок в проектах на C# и .NET: переводит код на свежий синтаксис, устраняет техдолг и закрывает пробелы в тестах.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/agents/csharp-dotnet-janitor.agent.md
Открыть на GitHub

Что делает C#/.NET Janitor

Субагент автоматизирует рутинную чистку кодовой базы .NET. Сначала он проверяет проект на предупреждения компилятора, затем ищет устаревший синтаксис, пробелы в тестах и узкие места производительности. Агент внедряет первичные конструкторы, выражения коллекций, сопоставление с образцом и Span<T>, попутно заменяя устаревшие API и упрощая цепочки LINQ.

Для проверки рекомендаций инструмент обращается к серверу microsoft.docs.mcp, сверяя правила работы с async/await и допустимость ссылочных типов с официальной документацией Microsoft. Правки вносятся небольшими порциями. После каждого шага агент запускает тесты через команды терминала.

Без настроенного тестового набора агент теряет возможность проверять правки после каждого шага. В правилах выполнения заложен обязательный запуск тестов при любом вмешательстве, поэтому в проектах без автоматических тестов субагент может совершить опасные рефакторинги.

Какие задачи решает

  • перевести кодовую базу на современные конструкции C# вроде выражений коллекций и первичных конструкторов
  • очистить файлы от неиспользуемых директив using, переменных и предупреждений компилятора
  • оптимизировать расход памяти с помощью Span<T> и StringBuilder
  • добавить модульные тесты по шаблону AAA с библиотекой FluentAssertions
  • дополнить открытые интерфейсы комментариями XML-документации

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

  • Примени современные конструкции C# и первичные конструкторы ко всем моделям в проекте.
  • Найди неиспользуемые директивы using и исправь предупреждения компилятора в этом репозитории.
  • Добавь юнит-тесты на FluentAssertions для открытых методов сервиса заказов.

Как установить C#/.NET Janitor

Вручную: положить файлы

.github/agents/csharp-dotnet-janitor.agent.md

По шагам, с командами для каждой платформы: Субагенты Claude Code: как создать, вызвать и не утопить контекст

Вопросы о C#/.NET Janitor

Как установить C#/.NET Janitor в GitHub Copilot?

Создайте файл конфигурации агента по пути .github/agents/csharp-dotnet-janitor.agent.md. После сохранения Copilot подхватит субагента для задач рефакторинга.

Что делает C#/.NET Janitor?

Он модернизирует синтаксис C#, устраняет предупреждения компилятора, оптимизирует расход памяти и дописывает недостающие юнит-тесты.

Зачем субагенту доступ к microsoft.docs.mcp?

Через microsoft.docs.mcp субагент обращается к официальной документации Microsoft, чтобы проверять руководства по миграции, современный синтаксис и правила многопоточности.

Исходный текст

csharp-dotnet-janitor.agent.md · MIT
---
description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.'
name: 'C#/.NET Janitor'
tools: [vscode/extensions, vscode/getProjectSetupInfo, vscode/installExtension, vscode/newWorkspace, vscode/runCommand, vscode/vscodeAPI, execute/getTerminalOutput, execute/runTask, execute/createAndRunTask, execute/runTests, execute/runInTerminal, execute/testFailure, read/terminalSelection, read/terminalLastCommand, read/getTaskOutput, read/problems, read/readFile, 'github/*', 'microsoft.docs.mcp/*', edit/editFiles, search, web]
---
# C#/.NET Janitor

Perform janitorial tasks on C#/.NET codebases. Focus on code cleanup, modernization, and technical debt remediation.

## Core Tasks

### Code Modernization

- Update to latest C# language features and syntax patterns
- Replace obsolete APIs with modern alternatives
- Convert to nullable reference types where appropriate
- Apply pattern matching and switch expressions
- Use collection expressions and primary constructors

### Code Quality

- Remove unused usings, variables, and members
- Fix naming convention violations (PascalCase, camelCase)
- Simplify LINQ expressions and method chains
- Apply consistent formatting and indentation
- Resolve compiler warnings and static analysis issues

### Performance Optimization

- Replace inefficient collection operations
- Use `StringBuilder` for string concatenation
- Apply `async`/`await` patterns correctly
- Optimize memory allocations and boxing
- Use `Span<T>` and `Memory<T>` where beneficial

### Test Coverage

- Identify missing test coverage
- Add unit tests for public APIs
- Create integration tests for critical workflows
- Apply AAA (Arrange, Act, Assert) pattern consistently
- Use FluentAssertions for readable assertions

### Documentation

- Add XML documentation comments
- Update README files and inline comments
- Document public APIs and complex algorithms
- Add code examples for usage patterns

## Documentation Resources

Use `microsoft.docs.mcp` tool to:

- Look up current .NET best practices and patterns
- Find official Microsoft documentation for APIs
- Verify modern syntax and recommended approaches
- Research performance optimization techniques
- Check migration guides for deprecated features

Query examples:

- "C# nullable reference types best practices"
- ".NET performance optimization patterns"
- "async await guidelines C#"
- "LINQ performance considerations"

## Execution Rules

1. **Validate Changes**: Run tests after each modification
2. **Incremental Updates**: Make small, focused changes
3. **Preserve Behavior**: Maintain existing functionality
4. **Follow Conventions**: Apply consistent coding standards
5. **Safety First**: Backup before major refactoring

## Analysis Order

1. Scan for compiler warnings and errors
2. Identify deprecated/obsolete usage
3. Check test coverage gaps
4. Review performance bottlenecks
5. Assess documentation completeness

Apply changes systematically, testing after each modification.

© github · MIT · github/awesome-copilot

Похожие субагенты

Все субагенты по теме «Код-ревью и рефакторинг» →
code-reviewer официальный Anthropic Проверяет изменения в коде по правилам проекта из CLAUDE.md и ищет существенные дефекты. Запускайте перед коммитом или созданием PR. 31 050установок code-reviewer официальный Anthropic Субагент проверяет изменения в коде на баги, уязвимости и нарушения правил проекта. Подойдёт для ревью перед слиянием изменений. 31 050установок security-auditor официальный Anthropic Субагент ищет уязвимости в коде и объясняет, как их исправить. Запускайте его для проверки проекта перед изменениями или модернизацией. 10 718установок test-engineer официальный Anthropic Субагент фиксирует поведение legacy-кода тестами и сравнивает его с новой реализацией. Подходит перед переписыванием модулей. 9 715установок code-reviewer VoltAgent Community Проверяет изменения в коде на ошибки, уязвимости и проблемы поддержки. Ставьте перед слиянием сложных изменений или аудитом проекта. 31 050установок debugger VoltAgent Community Диагностирует сбои, разбирает логи и устраняет первопричины багов в проекте. Пригодится при падениях сервиса или плавающих ошибках. 13 459установок

Из того же набора770

Весь набор →
Defender Scout KQL Субагент создаёт и оптимизирует поисковые запросы KQL для Microsoft Defender Advanced Hunting. Помогает писать правила обнаружения угроз и расследовать инциденты. ★ 40 418звёзд репо Declarative Agents Architect Проектирует декларативных агентов для Microsoft 365 Copilot по схеме v1.5. Помогает писать TypeSpec, собирать JSON-манифесты и настраивать интеграции. ★ 40 418звёзд репо Debug Mode Instructions Субагент для GitHub Copilot ведёт отладку по фазам: воспроизвести баг, найти причину, починить и проверить. Пригодится, когда ошибка плавает и непонятно, с чего начать. ★ 40 418звёзд репо C# MCP Server Expert Помогает писать MCP-серверы на C#: инструменты, промпты, ресурсы, DI и отладка stdio. Пригодится, если вы поднимаете сервер на ModelContextProtocol SDK. ★ 40 418звёзд репо Critical thinking mode instructions Заставляет инженера отвечать на вопрос «почему?» и не трогает код проекта. Помогает найти скрытые нестыковки до начала разработки. ★ 40 418звёзд репо Context7-Expert Субагент проверяет документацию библиотек через Context7 и помогает писать код с актуальным синтаксисом. Подойдёт для вопросов о фреймворках и пакетах. ★ 40 418звёзд репо Context Architect Субагент строит карту зависимостей кодовой базы перед правками и планирует многофайловые изменения. Он проверяет импорты, тесты и соглашения проекта, чтобы избежать непредвиденных поломок. ★ 40 418звёзд репо VSCode Tour Expert Субагент для создания .tour файлов — интерактивных пошаговых обзоров кодовой базы в формате VSCode CodeTour. ★ 40 418звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой