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

Сценарий 18: анализ оптимизации кода

Сценарий 18 анализирует ограниченный набор файлов и возвращает предложения по категориям. Текущий публичный контракт имеет режим analysis-only: ни один.

Руководства

Сценарий 18 анализирует ограниченный набор файлов и возвращает предложения по категориям. Текущий публичный контракт имеет режим analysis-only: ни один документированный маршрут сценария 18 не применяет изменения к исходникам.

Выбор поддерживаемого маршрута анализа

Для воспроизводимого сканирования из source checkout:

python -m src.cli optimize analyze PATH --output suggestions.json
python -m src.cli optimize patterns

analyze читает файл или каталог и записывает JSON предложений только по явному пути. patterns показывает доступные правила. Обе команды оставляют исходники без изменений.

Запуск типизированного сценария

from src.digital_employees.runtime.scenarios import (
    RoleBoundScenarioInvocationRequest,
    invoke_role_bound_scenario_request,
)

request = RoleBoundScenarioInvocationRequest(
    query="Проанализируй возможности оптимизации в src/import_pipeline.py.",
    employee_id="codegraph_developer",
    scenario_id="scenario_18",
    event_type="implementation_start",
    context={
        "project_key": "codegraph",
        "namespace": "default",
        "task_id": "<task-id>",
        "source_refs": ["<revision-ref>", "<measurement-ref>"],
        "file_paths": ["src/import_pipeline.py"],
    },
)
result = invoke_role_bound_scenario_request(request)

Workflow возвращает optimization_suggestions в состоянии результата, но не сохраняет approval session и не вызывает запись исходников.

MCP и композитный анализ

Инструмент codegraph_runtime_composition_workflow_run принимает orchestrator="s18", а также управляемые namespace и task_id. Текущий MCP mapping вызывает ролевой анализ scenario_18 и возвращает answer, evidence и metadata.

CLI-команда python -m src.cli composition run "<query>" -o s18 запускает более широкий композитный анализ и хранит session только в текущем процессе. Оба маршрута дают свидетельство анализа, а не изменения кода.

Неподдерживаемый stateful-цикл

Parser optimize регистрирует list-suggestions, approve, reject, apply и undo, но handlers печатают not yet implemented и возвращают код 1. Не включайте их в автоматизацию или процесс одобрения.

composition apply также не применяет изменения: команда зависит от process-local state, печатает Edit application not implemented in CLI demo, не редактирует файл и возвращает ноль. MCP composition tool тоже не применяет предложения.

Проверка предложений

Каждое предложение проверьте по привязанной ревизии, измеримой цели, ограничениям совместимости и целевым тестам. Ускорение, устранение уязвимости и улучшение сопровождаемости подтверждаются измерениями и тестами.

Для принятого предложения создайте отдельный управляемый этап реализации с RED/GREEN-тестами, измерением, ревью и rollback.

Ошибки и восстановление

  • Путь не найден: исправьте точную область файла или каталога.
  • Предложений нет: не делайте вывод об оптимальности; проверьте категорию и покрытие анализа.
  • Вызвана stub-команда: считайте ненулевой результат признаком неподдерживаемой операции и вернитесь к артефакту анализа.
  • Composite session потеряна: повторите анализ только ради evidence; не восстанавливайте состояние изменения вручную.

Контракт с исходным кодом

Статья привязана к следующим источникам:

  • src/cli/analysis_commands/optimize_commands.py — работающие analyze/patterns и stateful stubs;
  • src/workflow/scenarios/code_quality/code_optimization.py — состояние типизированного анализа;
  • src/cli/domain_suite/composition_commands.py — композитный анализ и не применяющая изменения demo-команда;
  • src/mcp/tools/core/compose.py — MCP role-bound mapping;
  • src/digital_employees/runtime/scenarios/employee_scenario_invocation.py — владелец-разработчик и политика.

Связанные материалы