Сценарий 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— владелец-разработчик и политика.