Исследуйте изменение вместе с агентом
Используйте этот процесс перед изменением незнакомого метода. Нужны текущий Bee, Git и .NET 10 SDK с пакетом ссылочных сборок. MongoDB, провайдер модели и сборка репозитория не нужны. Bee предоставляет сведения агенту; сам исходный код не редактирует.
1 · Подготовьте небольшой репозиторий
Заголовок раздела «1 · Подготовьте небольшой репозиторий»Создайте пустой каталог, выполните команды ниже и сохраните два файла точно в указанном виде. Примеры оболочки используют синтаксис macOS/Linux; те же команды Git и Bee работают в PowerShell.
mkdir bee-democd bee-demogit initCatalog.csproj:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup><TargetFramework>net10.0</TargetFramework></PropertyGroup></Project>Price.cs:
namespace Catalog;
public static class Price{ public static int Double(int value) => value * 2; public static int Total() => Double(21);}2 · Найдите объявления и прочитайте диапазон
Заголовок раздела «2 · Найдите объявления и прочитайте диапазон»outline читает существующий граф. Явно создайте его, проверьте актуальность и запросите компактный список объявлений:
bee graph build --jsonbee graph status --check --jsonbee graph outline Price.cs --compact --jsonПример возвращает три объявления: Price в строках 3–7, Double в строке 5 и Total в строке 6. Все три команды завершаются с кодом 0. result.columns задаёт поля строки; полный ID получается соединением result.idPrefix и idSuffix. Перед выбором строк проверьте result.counts.omitted и актуальность источника. У проекта в примере уровень unrestored; разрешённый вызов в примере не означает, что любому проекту не нужен restore.
Прочитайте только указанный метод и ближайший контекст:
sed -n '5,6p' Price.csPowerShell:
Get-Content Price.cs | Select-Object -Skip 4 -First 23 · Исследуйте вызывающий код и влияние
Заголовок раздела «3 · Исследуйте вызывающий код и влияние»bee graph callers 'Price.Double' --no-refresh --json --compact --output-budget-chars 8000bee graph impact 'Price.Double' --no-refresh --jsonРезультат показывает Catalog.Price.Total() в Price.cs:6 с via: direct и prov: resolved. Влияние содержит один зависимый символ в одном файле. Это статические связи; они не доказывают выполнение ветки тестом или обнаружение всех вызовов во время работы. При неоднозначном коротком имени используйте полный ID символа.
--no-refresh предотвращает запись при запросе. Если граф устарел, явно выполните build и повторите запрос. Отсутствие графа/файла для outline даёт код 3; устаревший, неподдерживаемый или неполный результат — 5. status --check использует 6 для устаревшего графа. Не переносите таблицу кодов одной команды на остальные.
4 · Проанализируйте рабочую копию
Заголовок раздела «4 · Проанализируйте рабочую копию»bee code analyze --engine roslyn --jsonСинтетический пример возвращает status: clean, пустой findings, analysisCoverage.compiled: 1 и код 0. testCoverage.state остаётся not-measured. Анализ восстанавливает входы проекта без запуска целей MSBuild и генераторов. Отсутствующая ссылка или неподдерживаемый контекст могут дать код 5 даже без замечаний.
По умолчанию bee code analyze использует встроенные правила качества, а не компилятор Roslyn. Для этого примера с телами-выражениями bee code analyze Price.cs --scope source --json возвращает 5: анализ длины и сложности методов неполон. Выбирайте движок под задачу; неполный результат не означает отсутствие проблем.
5 · Передайте результаты тестов
Заголовок раздела «5 · Передайте результаты тестов»После того как обычный тестовый раннер создаст TRX, получите сводку. Этот шаг требует файл и не запускает тесты:
bee test summarize TestResults/results.trx --limit 5 --budget 8000 --jsonСохраните исходный код завершения раннера и идентичность рабочей копии вместе с файлом. Код сводки 1 означает зафиксированный провал, 5 — неполноту или отсутствие выполненных тестов; 0 описывает лишь принятый завершённый артефакт. Проверьте опущенные и пропущенные результаты. Небольшой синтетический отчёт с провалом и объяснением есть в Размере контекста.
Выберите возможность для нужного языка
Заголовок раздела «Выберите возможность для нужного языка»| Исходники | Навигация | Анализ / восстановление |
|---|---|---|
| C# | Объявления и разрешённые вызовы с учётом полноты | --engine roslyn; установите SDK/ссылочные пакеты, при необходимости выполните restore отдельно |
| Vue / TypeScript / TSX | Объявления и статические импорты; calls:none |
--engine vue или typescript; нужны существующие пути Node/инструментов и поддерживаемые версии |
| Dart | Экстрактор графа Dart не зарегистрирован | --engine dart; нужна конфигурация пакетов; Flutter не поддерживается |
| Swift / Kotlin | Синтаксические объявления и диапазоны; calls:none |
Явный контекст компиляции iOS/Android; проекты Xcode/Gradle автоматически не вычисляются |
Для Vue при partial или неразрешённом алиасе проверьте файл и настройки: синтаксический граф не содержит семантических вызовов TypeScript. Для Swift/Kotlin parsed означает чтение поддерживаемого синтаксиса, а не успешную компиляцию приложения. Анализ Swift iOS требует macOS/Xcode. Устраните отсутствие инструментов, неподдерживаемые версии и неполные контексты до заявления о чистом результате.
Граф кода · Настройка движков и ограничения · Бюджеты и повторное использование · Управление поведением