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

Сценарий 19: проверка стандартов

Импорт явных правил и ограниченная проверка с сохранением операционного свидетельства без подмены compliance-решения.

Руководства

Сценарий 19 проверяет ограниченный набор исходников по явно импортированным правилам кодирования. Результат — operational evidence для рецензента. Совпадения правил и exit status не принимают compliance decision.

Подготовка и проверка набора правил

Из source checkout импортируйте проверенный YAML и сделайте его активным:

python -m src.cli standards import standards.yaml --activate
python -m src.cli standards list-documents
python -m src.cli standards list-rules

Импорт меняет локальную базу стандартов. Зафиксируйте digest исходного документа, импортированное имя и версию, статус активации, ревизию CodeGraph и оператора. Импортируйте YAML после проверки источника, а утверждённый набор меняйте через change control.

Ограниченная проверка через CLI

python -m src.cli standards check PATH --output violations.json

Используйте --document, --category, --severity и --fail-on только после проверки текущего help. Файл результата создаётся лишь по явному пути. Ненулевой код означает находки выбранного порога либо сбой команды; сохраните подробный вывод.

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

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

request = RoleBoundScenarioInvocationRequest(
    query="Проверь ограниченный компонент по утверждённым стандартам кодирования.",
    employee_id="codegraph_reviewer",
    scenario_id="scenario_19",
    event_type="review_start",
    context={
        "project_key": "codegraph",
        "namespace": "default",
        "task_id": "<task-id>",
        "source_refs": ["<revision-ref>", "<standards-document-ref>"],
        "file_paths": ["<bounded-source-path>"],
    },
)
result = invoke_role_bound_scenario_request(request)

Типизированный сценарий выполняет анализ для ревью. Он не импортирует документ, не редактирует код, не одобряет отклонения и не закрывает compliance-работу.

Неподдерживаемые report и REST

python -m src.cli standards report зарегистрирован, но завершается с кодом 1 и сообщением Report generation not yet implemented (requires stored violations). Для долговечного свидетельства используйте явный артефакт standards check --output.

В текущем дереве routers no REST API for standards. Не используйте и не публикуйте примеры retired generic standards route.

Правильная интерпретация evidence

Проверка показывает, какие настроенные правила совпали с проанализированными файлами на записанной ревизии. Полнота правил, runtime-поведение, юридическое соответствие, безопасность и продуктовая приёмка проверяются отдельными процедурами.

Ответственный рецензент отдельно проверяет ложные срабатывания, исключения, происхождение правил, исправление и принятые отклонения. Operational evidence не подменяет итоговый compliance decision.

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

  • Правила не найдены: проверьте импортированные документы и активацию; не сообщайте о прохождении.
  • YAML некорректен: исправьте проверенный исходный документ и импортируйте его управляемо.
  • Неожиданно нет нарушений: проверьте path, активные правила, фильтры и покрытие analyzer.
  • Report-команда падает: используйте артефакт check и не ставьте stub в release gate.

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

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

  • src/cli/security_suite/standards_commands.py — import, list, check, delete и report stub;
  • src/workflow/scenarios/code_quality/standards_check.py — анализ сценария 19;
  • src/digital_employees/runtime/scenarios/role_bound_scenario_invoker.py — типизированная маршрутизация;
  • src/digital_employees/runtime/scenarios/employee_scenario_invocation.py — владелец-рецензент и обязательное событие;
  • src/api/routers/security_suite/compliance_gost.py — явная отметка о выводе generic standards REST surface.

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