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

Сценарий 08: сбор свидетельств соответствия

Соберите свидетельства по выбранным требованиям и ревизии, проверьте ограничения инструментов и передайте результаты ответственным проверяющим.

Руководства

Используйте этот сценарий для ответа на конкретный вопрос по выбранным требованиям, области и ревизии. Укажите стандарты кодирования, меры безопасности, квалификационные метрики, лицензионные требования, требования к приватности и организационные документы. Для каждого пункта определите ответственного и подтверждающие материалы.

Начните с матрицы «утверждение — свидетельство»

Для каждого требования зафиксируйте:

  • точный пункт стандарта, политики или договора;
  • продукт, репозиторий, пути и ревизию в области;
  • производителя свидетельства и команду сбора;
  • ожидаемый результат и правило отказа;
  • ответственного проверяющего и срок актуальности;
  • известные исключения и оставшиеся ручные свидетельства.

Команды ниже создают эксплуатационные свидетельства. Решение о соответствии фиксирует ответственный владелец после сопоставления результата с требованиями и областью проверки.

Типизированный запрос на ревью

Подготовьте окружение по руководству CLI, а проект, граф и LLM-провайдер — по руководству программного вызова. Выполняйте Python и PowerShell из корня репозитория CodeGraph. Замените область, <task-id>, ссылки и пути в шаблоне точными данными существующей согласованной задачи. Для CLI подставьте путь исходников, базу CPG и доступный файл квалификационных результатов; путь выходного отчёта должен быть новым.

Сценарий 08 условен для структурного ревьюера и требует явного сигнала соответствия:

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

request = RoleBoundScenarioInvocationRequest(
    query="Свяжи принятые требования к коду и безопасности со свидетельствами текущей ревизии.",
    employee_id="codegraph_reviewer",
    scenario_id="scenario_08",
    event_type="review_start",
    context={
        "project_key": "codegraph",
        "namespace": "default",
        "task_id": "<task-id>",
        "source_refs": ["<requirement-ref>", "<scope-ref>"],
        "file_paths": ["<bounded-path>"],
    },
)

result = invoke_role_bound_scenario_request(request)
if result.get("error"):
    raise RuntimeError(result["error"])
print(result["scenario_id"])
print(result.get("answer") or "")

Результат содержит scenario_08, ответ в answer и сведения о вызове в metadata.role_bound_scenario_invocation. Сопоставьте ответ с матрицей требований: для каждого утверждения проверьте ссылку на исходники или отчёт, область и ревизию. Передайте этот комплект ответственному проверяющему.

Для отрицательной проверки передайте context={}. При отсутствии project_key, namespace или task_id вызов выдаёт RuntimeError с role_bound_scenario_contract_missing. Восстановите область задачи перед повтором.

Выбирайте команду по типу утверждения

Импортированные правила стандарта кодирования

python -m src.cli standards check "<source-path>" --fail-on error --output "<violations.json>"

Проверка применяет активные импортированные стандарты к файлу или каталогу и может сохранить находки в JSON. Вместе с этим результатом сохраните выбранный документ, категории, серьёзности и версии правил.

Текущая реализация standards report печатает Report generation not yet implemented (requires stored violations) и возвращает код 1. Пока постоянное формирование отчёта реализуется и проверяется, используйте артефакт standards check --output.

Аудит качества и связанных с безопасностью признаков

python -m src.cli audit --db "<cpg-path>" --format json --skip-llm-conclusion --skip-persistence

Перед запуском подготовьте зарегистрированный проект и CPG, соответствующий проверяемой ревизии. В показанном режиме --skip-persistence проверка свежести выполняется без записи: устаревший граф обновите отдельно поддерживаемым процессом до повторного запуска. Сопоставьте находки и состав выполненных проверок с требованиями из матрицы. Передайте отчёт и ссылки на исходники ответственному за безопасность или ревью.

Квалификационные результаты

python -m src.cli qualification report --results "<results-path>" --format json --language ru --output "<qualification.json>"

Команда формирует представление существующего артефакта результатов. Сохраните набор тестов, версии инструментов, данные, профиль, области и неизменяемые сырые результаты. Не переносите исторические значения FP/FN в постоянно актуальную документацию.

В режиме --format json команда читает JSON из --results и записывает его представление в --output. Значения данных сохраняются; --language ru и --language en не переводят содержимое JSON. Поэтому обе локали могут использовать один исходный артефакт результатов.

После запуска откройте сохранённый JSON и сопоставьте его с входным файлом: проверьте набор тестов, области, ревизию и метрики. Храните исходный файл вместе с отчётом. При отсутствии входного файла команда печатает Results not found: <path> и возвращает код 1.

Кто принимает решение по результатам

Кто принимает решение по результатам
Утверждение Свидетельство Граница полномочий
Код следует импортированным правилам Находки standards check и основа правил Структурное ревью определяет решение по находкам.
Мера безопасности реализована Исходники, тесты и свидетельства аудита безопасности Заключение выносит AppSec.
Квалификационная цель достигнута Неизменяемые сырые результаты и квалификационный отчёт Решение принимает названный процесс квалификации или сертификации.
Лицензионное требование или приватность соблюдены Инвентаризация, политики, юридические и операционные артефакты Ответственный за лицензии или приватность оценивает собранные материалы.
Продукт можно выпускать Все обязательные продуктовые и SDLC-свидетельства Владелец выпуска принимает решение по полному комплекту результатов.

Ошибки и актуальность

Закрывайте проверку отказом, если неизвестна редакция требования, отсутствуют область или ревизия, набор правил не соответствует заявленному стандарту, нет сырых квалификационных результатов либо обязательного ручного артефакта. Явно помечайте устаревшее свидетельство и не переиспользуйте прошлый отчёт молча.

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

Для проверки ревизии перейдите к ревью кода. Для оценки процессов безопасной разработки используйте руководство по ГОСТ Р 56939.