Перейти к содержимому

Исследуйте изменение вместе с агентом

Используйте этот процесс перед изменением незнакомого метода. Нужны текущий Bee, Git и .NET 10 SDK с пакетом ссылочных сборок. MongoDB, провайдер модели и сборка репозитория не нужны. Bee предоставляет сведения агенту; сам исходный код не редактирует.

Создайте пустой каталог, выполните команды ниже и сохраните два файла точно в указанном виде. Примеры оболочки используют синтаксис macOS/Linux; те же команды Git и Bee работают в PowerShell.

Окно терминала
mkdir bee-demo
cd bee-demo
git init

Catalog.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 --json
bee graph status --check --json
bee 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.cs

PowerShell:

Окно терминала
Get-Content Price.cs | Select-Object -Skip 4 -First 2
Окно терминала
bee graph callers 'Price.Double' --no-refresh --json --compact --output-budget-chars 8000
bee 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 для устаревшего графа. Не переносите таблицу кодов одной команды на остальные.

Окно терминала
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: анализ длины и сложности методов неполон. Выбирайте движок под задачу; неполный результат не означает отсутствие проблем.

После того как обычный тестовый раннер создаст 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. Устраните отсутствие инструментов, неподдерживаемые версии и неполные контексты до заявления о чистом результате.

Граф кода · Настройка движков и ограничения · Бюджеты и повторное использование · Управление поведением