Композиция объединяет находки нескольких аналитических сценариев, удаляет дубликаты, разрешает конфликты и ранжирует результат. Поддерживаются составной анализ оптимизации Scenario 18 и анализ стандартов Scenario 19. Оба workflow работают в режиме analysis-only и возвращают аналитический результат; изменение исходников подтверждается diff и проверками репозитория.
Выберите оркестратор
| Оркестратор | Назначение | Текущая граница |
|---|---|---|
s18 / scenario_18 |
Объединяет сигналы безопасности, производительности, качества, рефакторинга и долга в предложения по оптимизации. | Не применяет и не одобряет оптимизацию. |
s19 / scenario_19 |
Объединяет сигналы стандартов и связанного качества кода. | Не импортирует документ стандарта, не одобряет отклонение и не меняет исходники. |
Текущий CLI предоставляет только эти два оркестратора. Полный audit — отдельный workflow со своим контрактом сохранения и свидетельств.
Запустите составной анализ из CLI
Сохраните результат в файл, которым управляет вызывающая сторона:
python -m src.cli composition run "Проанализируй ограниченный компонент и предложи оптимизации." --orchestrator s18 --output composition.json
python -m src.cli composition run "Проверь ограниченный компонент по принятым стандартам." --orchestrator s19 --output composition.json
Зафиксируйте ревизии исходников и CPG, запрос, оркестратор, конфигурацию, список вызванных подсценариев, метаданные объединения, конфликты, находки и хеш результата. CLI хранит сессии в process-local словаре; идентификатор не сохраняется между процессами и перезапусками.
Зарегистрированные параметры --sub-scenario, parallel и merge-strategy частично проецируются в
текущий прямой путь выполнения CLI. Фактически применённые параметры указаны в метаданных
результата.
Запустите управляемый MCP-маршрут
Вызывайте codegraph_runtime_composition_workflow_run с нативными значениями и точной областью task capsule. Пример эффективного запроса:
{
"query": "Проанализируй ограниченный компонент и предложи оптимизации.",
"orchestrator": "s18",
"language": "ru",
"namespace": "default",
"task_id": "<task-id>"
}
Для s18 и s19 реализация MCP определяет ответственного сотрудника и вызывает RoleBoundScenarioInvocationRequest. Управляемая область обязательна по role-bound контракту. Инструмент возвращает answer, evidence и metadata; изменение исходников и разрешение выпуска выполняются отдельными управляемыми процессами.
Поведение CLI apply и изменение исходников
python -m src.cli composition apply <finding-id> --session <session-id> сначала ищет данные только в process-local словаре сессий. Без подходящей сессии или pending edit команда завершается ошибкой. При наличии записи и без --preview текущая команда печатает Edit application not implemented in CLI demo, returns exit code 0 и does not apply изменения исходников.
Рекомендация MCP запускает role-bound анализ через codegraph_runtime_composition_workflow_run. Изменение выполняется отдельной управляемой implementation-задачей с точными файлами, принятым предпросмотром, тестами, ревью, rollback и привязанными к ревизии свидетельствами.
Интерпретируйте результат корректно
- Дедупликация и ранжирование помогают выбрать порядок расследования; каждую исходную находку проверяйте по привязанной ревизии.
- Метаданные разрешения конфликтов описывают объединение. Решение ответственного reviewer фиксируется отдельно.
- Pending edit остаётся предложением. Перед отдельным изменением проверьте контекст и текущую ревизию.
- Пустой или деградировавший результат подсценария должен оставаться видимым; его нельзя превращать в заключение об отсутствии проблем.
Контракт источников
src/cli/domain_suite/composition_commands.py— CLI-оркестраторы, process-local сессии и неприменяющая командаapply;src/mcp/tools/core/compose.py— управляемый role-bound MCP-анализ;src/workflow/scenarios/code_quality/code_optimization_composite.py— составной анализ Scenario 18;src/workflow/scenarios/code_quality/standards_check_composite.py— составной анализ Scenario 19;src/workflow/composition/— модели объединения, приоритета и конфликтов.