mcp-venus-os

Проекты, которые следуют приведенным ниже лучшим практикам, могут добровольно и самостоятельно оценить себя и продемонстрировать, что они получили значок Open Source Security Foundation (OpenSSF).

Не существует набора практик, гарантирующего, что у программного обеспечения никогда не будет недостатков или уязвимостей; даже формальные методы могут не помочь, если спецификации или допущения ошибочны. Также не существует какой-либо практики, которая могла бы гарантировать, что проект будет поддерживать здоровое и хорошо функционирующее сообщество разработчиков. Однако следующие хорошие правила могут помочь улучшить результаты проектов. Например, некоторые правила описывают ревью несколькими участниками перед выпуском, что может помочь найти технические уязвимости, которые было бы сложно найти другим способом, и помочь построить доверие и желание дальнейшего взаимодействия между разработчиками из разных компаний. Чтобы получить значок, нужно выполнить все критерии с ключевыми словами "НЕОБХОДИМО"/"ОБЯЗАН"/"НЕДОПУСТИМО", все критерии со словом "СЛЕДУЕТ" либо должны удовлетворяться, либо должно быть приведено обоснование их невыполнения, и все критерии со словом "ЖЕЛАТЕЛЬНО" могут быть удовлетворены ИЛИ неудовлетворены (желательно, чтобы они были хотя бы рассмотрены). Если вы хотите ввести общий комментарий вместо объяснения, почему текущая ситуация приемлема, начните текст с '//' и пробела. Приветствуется обратная связь через сайт на GitHub в виде issues или pull requests. Существует также список рассылки для общих вопросов.

Мы с удовольствием предоставляем информацию на нескольких языках, однако, если есть какой-либо конфликт или несоответствие между переводами, английская версия является авторитетной.
Если это ваш проект, пожалуйста, покажите свой значок на странице проекта! Статус значка выглядит следующим образом: Уровень значка для проекта 15439 - passing Вот как вставить его:
Вы можете показать свой статус значка, вставив его в файл с разметкой Markdown:
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/15439/badge)](https://www.bestpractices.dev/projects/15439)
- или HTML:
<a href="https://www.bestpractices.dev/projects/15439"><img src="https://www.bestpractices.dev/projects/15439/badge"></a>


Это критерии уровня Silver. Вы также можете просмотреть критерии уровня Passing или Gold.

Baseline Series: Базовый уровень 1 Базовый Уровень 2 Базовый Уровень 3

        

 Основы 16/17 ●

  • Общая

    Обратите внимание, что другие проекты могут использовать то же имя.

    MCP server for Venus OS management - D-Bus, MQTT, and safety-constrained control

    Используйте формат выражения лицензии SPDX; примеры включают «Apache-2.0», «BSD-2-Clause», «BSD-3-Clause», «GPL-2.0+», «LGPL-3.0+», «MIT» и «(BSD-2-Clause OR Ruby)».
    Если используется более одного языка, перечислите их через запятую (пробелы необязательны), и отсортируйте их от наиболее до наименее используемого. Если список длинный, пожалуйста, перечислите по крайней мере три наиболее распространенных. Если языка нет (например, это проект только для документации или только для тестирования), используйте один символ «-» (минус). Для каждого языка используйте общепринятую капитализацию названия, например «JavaScript».
    Common Platform Enumeration (CPE) - это структурированная схема именования для информационных систем, программного обеспечения и пакетов. Она используется в ряде систем и баз данных для отчетов об уязвимостях.
  • Предварительные требования


    Проект ОБЯЗАН получить значок уровня Passing. [achieve_passing]

  • Основная информация на веб-сайте проекта


    В информацию о том, как внести вклад, НЕОБХОДИМО включить требования к приемлемым взносам (например, ссылку на любой требуемый стандарт кодирования). (Требуется URL) [contribution_requirements]

    English contribution requirements identify PEP8, configured Ruff formatting/lint, strict typing and required focused tests. Shell/YAML retain the conventions of their declared tools. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CONTRIBUTING.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml


  • Надзор за проектом


    Проекту СЛЕДУЕТ иметь юридический механизм, через который все авторы содержательных взносов в ПО проекта подтверждают, что они имеют законное право на внесение этих взносов. Самый распространенный и легко реализуемый подход для этого заключается в использовании Developer Certificate of Origin (DCO), при котором пользователи добавляют строку "signed-off-by" в свои коммиты, а проект ссылается на веб-сайт DCO. Но этот механизм МОЖЕТ быть реализован и в качестве Лицензионного соглашения с участниками (Contributor License Agreement, CLA) или другого правового механизма. (Требуется URL) [dco]
    DCO является рекомендуемым механизмом, потому что его легко реализовать и отслеживать в исходном коде, а git напрямую поддерживает функцию "signed-off" при помощи "commit -s". Для большей эффективности лучше всего, если проектная документация объясняет, что означает "signed-off" для этого проекта. CLA - это юридическое соглашение, которое определяет условия, на которых произведения умственного труда были лицензированы для организации или проекта. Соглашение о назначении участника (contributor assignment agreement, CAA) является юридическим соглашением, которое передает права на произведения умственного труда другой стороне; проекты не обязаны иметь CAA, поскольку CAA увеличивает риск того, что потенциальные участники не будут вносить свой вклад, особенно если получатель является коммерческой организацией. Лицензии CLA от Apache Software Foundation (лицензия отдельного участника и корпоративное соглашение CLA) являются примерами CLA для проектов, считающих, что риски от такого рода CLA для проекта меньше, чем их преимущества.

    DCO sign-off is encouraged but has not been required for all historical non-trivial contributions. This small project uses public Git attribution and the MIT license; a universal legal attestation mechanism has not been established. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/GOVERNANCE.md



    Проект ОБЯЗАН четко определить и задокументировать модель управления проектом (способ принятия решений, включая ключевые роли). (Требуется URL) [governance]
    Требуется устоявшийся задокументированный способ принятия решений и разрешения споров. В небольших проектах это может быть просто вплоть до «владелец и лидер проекта принимает все окончательные решения». Существуют различные модели управления, включая благосклонное диктаторство и формальную меритократию; более подробно см. Governance models. В проектах успешно используются как централизованные подходы (например, с одним ведущим), так и децентрализованные (например, с групповыми ведущими). Не нужно указывать в сведениях об управлении возможность форка проекта, поскольку это всегда возможно для проектов СПО.

    Governance describes maintainer/reviewer/contributor roles, decision and release authority, and identifies4alvit as current primary maintainer. Bots do not count as accountable successors. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/GOVERNANCE.md



    Проект ОБЯЗАН определить правила поведения и разместить эти правила в стандартном месте. (Требуется URL) [code_of_conduct]
    Проекты могут повысить цивилизованность их сообщества и установить ожидания относительно приемлемого поведения, приняв правила поведения. Это может помочь избежать проблем до их возникновения и сделать проект более привлекательным местом, поощряющим участие. Правила должны быть сосредоточены только на поведении в сообществе или на рабочем месте проекта. Примерами правил поведения являются правила конфликтов на проекте ядра Linux, Contributor Covenant Code of Conduct, Кодекс поведения Debian, Ubuntu Code of Conduct, Правила поведения проекта Fedora, GNOME Code Of Conduct, KDE Community Code of Conduct">, Python Community Code of Conduct, The Ruby Community Conduct Guideline и The Rust Code of Conduct.

    Code of conduct adopted at root, with participation expectations and actual available moderation/reporting channels. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CODE_OF_CONDUCT.md



    Проект ОБЯЗАН четко определять и публично документировать ключевые роли в проекте и их обязанности, включая любые задачи, которые должны выполнять эти роли. Должно быть ясно, кто имеет какую роль(и), хотя это может быть и не задокументировано соответствующим образом. (Требуется URL) [roles_responsibilities]
    Документация для управления , а также роли и обязанности могут быть в одном месте.

    Governance describes maintainer/reviewer/contributor roles, decision and release authority, and identifies4alvit as current primary maintainer. Bots do not count as accountable successors. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/GOVERNANCE.md



    Проект ОБЯЗАН быть в состоянии продолжать работу с минимальным прерыванием, если какой-либо человек окажется недееспособен или убит. В частности, проект ОБЯЗАН быть в состоянии создавать и закрывать вопросы в трекере, принимать предложенные изменения и выпускать версии программного обеспечения через неделю после подтверждения того, что данный человек недееспособен или убит. Это МОЖЕТ быть реализовано через обеспечение кого-то ещё необходимыми ключами, паролами и законными правами для продолжения проекта. Лица, которые запускают проект СПО, МОГУТ сделать это, оставив ключи в сейфе и завещание, передающее все необходимые юридические права (например, для имен DNS). (Требуется URL) [access_continuity]

    Owner explicitly confirmed on2026-10-12 that no continuity mechanism exists. A qualified successor with access/recovery and legal authority within one week is not yet arranged. Documentation or bot accounts cannot satisfy this. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/GOVERNANCE.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/openssf-evidence.md



    Проекту СЛЕДУЕТ поддерживать «коэффициент автобуса» 2 или более. (Требуется URL) [bus_factor]
    «Коэффициент автобуса» (или «коэффициент грузовика») - это минимальное количество участников проекта, которые должны внезапно исчезнуть из проекта («попасть под автобус»), чтобы проект заглох из-за отсутствия квалифицированного или компетентного персонала. Инструмент truck-factor может оценить это для проектов на GitHub. Для получения дополнительной информации см. статью Cosentino et al. Assessing the Bus Factor of Git Repositories.

    Current operational knowledge/access depends on the primary maintainer. A second independent capable maintainer is not established; recruitment and knowledge transfer remain future work. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/GOVERNANCE.md


  • Документация


    Проект ОБЯЗАН иметь задокументированный долгосрочный план (roadmap), описывающий, что проект намеревается, а что не намеревается делать, по крайней мере на ближайший год. (Требуется URL) [documentation_roadmap]
    Проект может не достичь того, что описано в долгосрочном плане, и это нормально. Цель дорожной карты - помочь потенциальным пользователям и участникам понять намеченное направление проекта. Подробности не требуются.

    Roadmap specifies intended work and explicit exclusions through2027-10-12, a full year from the assessment. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/ROADMAP.md



    Проект ОБЯЗАН включать документацию по архитектуре (также называемой высокоуровневым дизайном) ПО, создаваемого проектом. Выберите «неприменимо» (N/A), если проект не создает программное обеспечение. (Требуется URL) [documentation_architecture]
    Архитектура ПО объясняет фундаментальную структуру программы, то есть основные компоненты программы, отношения между ними и ключевые свойства этих компонентов и отношений.

    Проект ОБЯЗАН документировать то, что пользователь может и чего он не должен ожидать с точки зрения безопасности от ПО, создаваемого проектом (его «требования безопасности»). (Требуется URL) [documentation_security]
    Это требования безопасности, выполнение которых ожидается от ПО.

    Security policy documents credentials, read/write authorization, hardware qualification, LAN/TLS limitations, expected protections and residual risks. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/SECURITY.md



    Проект ОБЯЗАН предоставить руководство для быстрого начала работы для новых пользователей, чтобы помочь им быстро что-то сделать, используя ПО, создаваемое проект. (Требуется URL) [documentation_quick_start]
    Идея состоит в том, чтобы показать пользователям, как начать работу и и добиться, чтобы ПО что-то вообще сделало. Потенциальным пользователям это критически важно для начала работы.

    README documents a quick start, configuration and telemetry queries using pip/uv or containers. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/README.md



    Проект ОБЯЗАН прилагать усилия к тому, чтобы документация соответствовала текущей версии результатов проекта (включая ПО, создаваемое проектом). НЕОБХОДИМО исправлять любые известные дефекты документации, приводящие к ее непоследовательности. Если документация в целом актуальна, но ошибочно включает в себя некоторые более старые данные, которые больше не верны, просто рассматривайте это как дефект, отслеживайте и исправляйте, как обычно. [documentation_current]
    Документация МОЖЕТ включать информацию о различиях или изменениях между версиями программного обеспечения и/или ссылку на более старые версии документации. Смысл этого критерия заключается в том, что прилагаются усилия для обеспечения согласованности документации, а не в том, чтобы документация была идеальной.

    НЕОБХОДИМО размещать ссылку на любые свои достижения, включая этот значок передовой практики, на главной странице проекта и/или веб-сайте в течение 48 часов после открытого признания достижения. (Требуется URL) [documentation_achievements]
    Достижением считается любой набор внешних критериев, над выполнением которых проект специально работал, включая некоторые значки. Эта информация не обязательно должна находиться на главной странице веб-сайта проекта. Проект с использованием GitHub может помещать достижения на главную страницу хранилища кода, добавляя их в файл README.

    README already displays a live linked badge for the actual public application; changes in recognized status are reflected by the badge service. No Silver award is claimed. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/README.md https://www.bestpractices.dev/en/projects/15439


  • Общедоступность и интернационализация


    Проекту (как на сайтах проекта, так и в результатах работы проекта) СЛЕДУЕТ придерживаться передовой практики общедоступности, чтобы люди с ограниченными возможностями могли участвовать в проекте и использовать результаты проекта, где это имеет смысл. [accessibility_best_practices]
    Для веб-приложений см. Руководство по обеспечению доступности веб-контента (WCAG) 2.0 и его поддерживающий документ Understanding WCAG 2.0; см. также W3C accessibility information. Для приложений с графическим интерфейсом рассмотрите использование соответствующих вашему окружению рекомендаций по обеспечению доступности (таких как GNOME, KDE, XFCE, Android, iOS, Mac и Windows (на русском)). Некоторые приложения с текстовым интерфейсом пользователя (например, программы на ncurses) могут сделать некоторые вещи, чтобы сделать себя более доступными (например, параметр `force-arrow-cursor` в `alpine`). Большинство приложений командной строки довольно общедоступны как они есть. Этот критерий часто неприменим, например, для библиотек программ. Вот несколько примеров действий или проблем, которые следует учитывать:
    • Должны предоставляться текстовые альтернативы для любого нетекстового контента, так чтобы его можно изменить на другие необходимые формы, например крупная печать, шрифт Брайля, озвучка текста, символы или упрощенный язык (Understanding WCAG 2.0 guideline 1.1)
    • Цвет не должен использоваться в качестве единственного визуального средства передачи информации, указания на действие, запрос реакции пользователя или выделения визуальных элементов. (WCAG 2.0 guideline 1.4.1)
    • Визуальное представление текста и изображений текста должно иметь контрастность не менее 4,5:1, за исключением большого текста, случайного текста и логотипов (WCAG 2.0 guideline 1.4.3)
    • Все функциональные возможности должны быть доступны с клавиатуры (WCAG guideline 2.1)
    • GUI или веб-проект ДОЛЖНЫ тестировать, по крайней мере, одно средство чтения экрана на целевой платформе(ах) (например, NVDA, Jaws или WindowEyes в Windows; VoiceOver на Mac и iOS; Orca на Linux/BSD; TalkBack на Android). Программы с текстовым интерфейсом пользователя МОГУТ по возможности сокращать переписывание текста на экране, чтобы предотвратить лишнее чтение средствами чтения экрана.

    Text and structured Markdown provide a usable baseline; no explicit accessibility review of all project results and site content has been verified. The MCP interface relies on the client for presentation, and there is no project-owned graphical user interface. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/README.md



    Проекту СЛЕДУЕТ интернационализировать создаваемое ПО, чтобы обеспечить легкую локализацию под культуру, регион или язык целевой аудитории. Выберите «неприменимо» (N/A), если интернационализация (i18n) не применяется (например, ПО не генерирует текст, предназначенный для конечных пользователей, и не сортирует текст, читаемый человеком), [internationalization]
    Локализация "относится к адаптации продукта, приложения или содержимого документа для соответствия языковым, культурным и другим требованиям конкретного целевого рынка (языковому стандарту)". Интернационализация - это «проектирование и разработка продукта, приложения или содержимого документа, которые позволяют легкую локализацию под целевые аудитории, различающиеся по культуре, региону или языку». (См. «Локализация по сравнению с интернационализацией» на веб-сайте W3C.) Чтобы ПО соответствовало этому критерию, достаточно лишь интернационализации. Не требуется локализация для другого конкретного языка, так как после того, как программное обеспечение было интернационализировано, другие могут работать над локализацией.

    User-facing tool descriptions/messages are English and not externalized for translation. Current technical audience uses the English interfaces; comprehensive localization remains future work. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/src/mcp_venus_os/server.py


  • Другое


    Если на сайтах проекта (веб-сайт, хранилище и URL-адреса загрузки) хранятся пароли для аутентификации внешних пользователей, НЕОБХОДИМО хранить пароли как итерированные хеши с отдельной "солью" для каждого пользователя с использованием алгоритма (итерированного) растяжения ключа (например, Argon2id, Bcrypt, Scrypt или PBKDF2). Выберите «неприменимо» (N/A), если сайты проекта не хранят пароли для этой цели. [sites_password_security]
    Примечание: использование GitHub автоматически выполняет этот критерий. Этот критерий применяется только к паролям, используемым для аутентификации внешних пользователей на сайтах проекта (т.н. входящей аутентификации). Если сайты проекта должны подключаться к другим сайтам (т.н. исходящая аутентификация), им может потребоваться хранить аутентифицирующие данные (пароли, ключи) для этой цели как-то иначе (поскольку хранение контрольной суммы для этой цели бесполезно). В данном случае критерий crypto_password_storage применяется к сайтам проекта, по аналогии с критерием sites_https.

    GitHub hosts project site, repository and downloads; its published account-security documentation identifies bcrypt password hashing. The project operates no separate external-user password database. This relies on provider documentation, not inspection of internal systems. https://github.blog/news-insights/product-news/new-improvements-and-best-practices-for-account-security-and-recoverability/ https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/openssf-evidence.md


 Управление изменениями 1/1 ●

 Отчеты о проблемах 3/3 ●

  • Процесс сообщения об ошибках


    Проект ОБЯЗАН использовать трекер вопросов (issue tracker) для отслеживания отдельных вопросов. [report_tracker]

    GitHub Issues tracks individual reports with persistent public URLs. The current reviewed inventory has no ordinary external issues; this does not imply absence of internally discovered defects. https://github.com/4alvit/mcp-venus-os/issues https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CONTRIBUTING.md


  • Процесс отчета об уязвимостях


    Проект ОБЯЗАН отмечать автора(-ов) всех отчетов об уязвимостях, разрешенных за последние 12 месяцев, за исключением авторов, которые просят об анонимности. Выберите «неприменимо» (N/A), если в течение последних 12 месяцев не было обнаружено никаких уязвимостей. (Требуется URL) [vulnerability_report_credit]

    Owner confirmed no external vulnerability reports in the preceding12 months; the GitHub advisory inventory is empty. Internally discovered security corrections retain contributor attribution in public commits/PRs, and the policy requires consent-based reporter credit for future reports. No external reporter is invented. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/openssf-evidence.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CHANGELOG.md https://github.com/4alvit/mcp-venus-os/commits/main https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/SECURITY.md



    Проект ОБЯЗАН иметь документированный процесс реагирования на отчеты об уязвимостях. (Требуется URL) [vulnerability_response_process]
    Этот критерий тесно связан с критерием vulnerability_report_process, который требует документированного способа для сообщения об уязвимостях. Он также связан с vulnerability_report_response, который требует ответа на отчеты об уязвимостях в течение определенного периода времени.

    Policy describes confidential reporting, acknowledgment, triage, fix/release and coordinated disclosure, plus reporter credit with consent. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/SECURITY.md


 Качество 19/19 ●

  • Стандарты кодирования


    Проект ОБЯЗАН задать определенные правила стиля кодирования для основных языков, которые он использует, и требовать его соблюдения от предлагаемого кода. (Требуется URL) [coding_standards]
    В большинстве случаев это делается путем ссылки на некоторые существующие руководства по стилю, возможно, с перечислением различий. Эти руководства по стилю могут включать в себя способы повышения удобочитаемости и способы снижения вероятности дефектов (включая уязвимости). Многие языки программирования имеют один или несколько широко используемых руководств по стилю. Примеры руководств по стилю включают Руководство по стилю Google и Стандарты кодирования SEI CERT.

    English contribution requirements identify PEP8, configured Ruff formatting/lint, strict typing and required focused tests. Shell/YAML retain the conventions of their declared tools. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CONTRIBUTING.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml



    Проект ОБЯЗАН автоматически применять свой выбранный стиль(и) кодирования, если есть хотя бы один инструмент на СПО, который может сделать это на выбранном языке (языках). [coding_standards_enforced]
    Это МОЖЕТ быть реализовано при помощи инструмента(ов) статического анализа и/или путем пропускания кода через средства переформатирования. Во многих случаях конфигурация инструмента включена в репозиторий проекта (так как разные проекты могут выбирать разные конфигурации). Проекты МОГУТ (и, как правило, будут) допускать исключения стиля; там, где происходят исключения, они ОБЯЗАНЫ быть редки и документированы в соответствующих местах кода, чтобы эти исключения можно было пересматривать и инструменты могли автоматически обрабатывать их в будущем. Примеры таких инструментов включают ESLint (JavaScript) и Rubocop (Ruby).
  • Рабочая система сборки


    Системы сборки для нативных двоичных файлов ОБЯЗАНЫ учитывать соответствующие переменные (среды) для компилятора и компоновщика, переданные им (например, CC, CFLAGS, CXX, CXXFLAGS и LDFLAGS) и передавать их на вызовы компилятора и компоновщика. Система сборки МОЖЕТ расширять их дополнительными флагами; НЕДОПУСТИМО просто заменять предоставленные значения своими. Выберите «неприменимо» (N/A), если нативные двоичные файлы не создаются. [build_standard_variables]
    Должно быть легко включить специальные функции сборки, такие как Address Sanitizer (ASAN), или выполнить рекомендации по упрочнению от дистрибутивов (например, путем простого включения флагов компилятора для этого).

    The project compiles no owned native binaries; wheel contains Python code and shell launchers. Container packaging uses existing distribution/library binaries. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/scripts/package_release.py



    В системах сборки и установки СЛЕДУЕТ сохранять отладочную информацию, если передаваемые флаги требуют этого (например, не используется «install -s»). Выберите «неприменимо» (N/A), если системы сборки или установки нет (например, для типичных библиотек JavaScript), . [build_preserve_debug]
    Например, установка CFLAGS (C) или CXXFLAGS (C++) должна создавать соответствующую информацию для отладки, если эти языки используются, и ее не следует удалять во время установки. Отладочная информация необходима для поддержки и анализа, а также полезна для того, чтобы определить наличие упрочняющих функций в скомпилированных двоичных файлах.

    Python source remains in the wheel/sdist and container; the project build does not strip it or disable ordinary tracebacks. No owned native compiler/debug symbol pipeline exists. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/scripts/package_release.py https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/Dockerfile



    НЕДОПУСТИМО, чтобы система сборки ПО, создаваемого проектом, рекурсивно собирала подкаталоги, если в подкаталогах есть кросс-зависимости. Выберите «неприменимо» (N/A), если системы сборки или установки нет (например, типичные библиотеки JavaScript). [build_non_recursive]
    Информация о внутренних зависимостях системы сборки проекта должна быть точной, в противном случае изменения в проекте могут быть включены в сборку неправильно. Неправильные сборки могут привести к дефектам (включая уязвимости). Общей ошибкой в ​​больших системах сборки является использование «рекурсивной сборки» или «рекурсивного make», то есть иерархии подкаталогов, содержащих исходные файлы, где каждый подкаталог собирается независимо. Если только каждый из подкаталогов не является полностью независимым, это ошибка, потому что информация о зависимостях неверна.

    One setuptools project builds the Python package; packaging and container adapters do not recursively invoke Make across interdependent directories. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/scripts/package_release.py



    Проект ОБЯЗАН быть в состоянии повторить процесс генерации информации из исходных файлов и получить такой же результат с точностью до бита. Выберите «неприменимо» (N/A), если в проекте не используется сборка (например, языки сценариев, в которых исходный код используется непосредственно вместо компиляции), . [build_repeatable]
    Пользователи GCC и clang могут найти полезной опцию -frandom-seed; в некоторых случаях это может быть разрешено путем задания определенного порядка сортировки. Дополнительные предложения можно найти на сайте Reproducible builds.

    Two independent clean hosted builders with no imported build cache produce identical complete multi-platform runnable OCI archives. The source-bound published proof for commit 85acfb4234a78eceea3f9315e816b899caa8c3dc records 143974400 bytes, SHA256 6ae0b440c07efa439f42030f5c07f11ac1a9d8c04d2d8dddc4f1a9d7dae5d568. Wheel and sdist packages also match across two real builds with validated metadata receipts. Source, frozen version plan, toolchain digests and SOURCE_DATE_EPOCH are fixed. Run-specific original attestations are preserved separately and semantically verified, not rewritten to claim identical evidence. The comparison is a required CI check; the published procedure explains reproduction and scope limitations. https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/container-repeatability.md https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/container-repeatable-2026-10-12.json https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/python-repeatable-2026-10-12.json https://github.com/4alvit/mcp-venus-os/actions/runs/38338349643


  • Система установки


    Проект ОБЯЗАН предоставлять возможность легко установить и удалить ПО, создаваемое проектом, с использованием общепринятых способов. [installation_common]
    Примеры включают использование менеджера пакетов (на уровне системы или языка), «make install/uninstall» (с поддержкой DESTDIR), контейнер в стандартном формате или образ виртуальной машины в стандартном формате. Процесс установки и удаления (например, его упаковка) МОЖЕТ быть реализован третьей стороной, при условии что он построен на СПО.

    Standard pip/uv installation and pip uninstall are documented. Standard Python --prefix and --target options select installation output locations; no bespoke end-user installer overrides them. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/README.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml



    В системе установки для конечных пользователей НЕОБХОДИМО учитывать стандартные соглашения при выборе места, в которое собранные артефакты записываются при установке. Например, если она устанавливает файлы в системе POSIX, НЕОБХОДИМО учитывать переменную окружения DESTDIR. Если установочной системы или стандартного соглашения нет, выберите «неприменимо» (N/A). [installation_standard_variables]

    Standard pip/uv installation and pip uninstall are documented. Standard Python --prefix and --target options select installation output locations; no bespoke end-user installer overrides them. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/README.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml



    Проект ОБЯЗАН предоставить возможность потенциальным разработчикам быстро установить все результаты проекта и поддерживать среду, необходимую для внесения изменений, включая тесты и тестовое окружение. Проект ОБЯЗАН использовать для этого общепринятые соглашения. [installation_development_quick]
    Это МОЖЕТ быть реализовано при помощи сгенерированного контейнера или установочных сценариев. Внешние зависимости обычно устанавливаются путем вызова системных и/или языковых пакетов, как описано в критерии external_dependencies.

    README and quality guide give standard uv locked development setup including pytest and pinned security tooling, plus isolated optional broker fixture requirements. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/README.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/quality-evidence.md


  • Компоненты, поддерживаемые извне


    Проект ОБЯЗАН перечислять внешние зависимости в машинночитаемом виде. (Требуется URL) [external_dependencies]
    Обычно это делается при помощи инструкций для диспетчера пакетов и/или системы сборки. Обратите внимание, что это помогает реализовать критерий installation_development_quick.

    Проекты ОБЯЗАНЫ следить за своими внешними зависимостями или периодически проверять их (включая копии, сделанные для удобства) на предмет известных уязвимостей, а также исправлять уязвимости, которые могут быть использованы, или проверять невозможность их использования. [dependency_monitoring]
    Это можно сделать с помощью средств анализа происхождения/зависимостей, например Dependency-Check от OWASP, Nexus Auditor от Sonatype, Protex от Black Duck , Protecode от Synopsys и Bundler-аудит (для Ruby). Некоторые менеджеры пакетов включают в себя соответствующие механизмы. Допустимо оставлять уязвимость, если ее невозможно использовать, но такой анализ труден, и временами проще просто обновить или исправить эту часть кода.

    Проект ОБЯЗАН:
    1. позволять легко идентифицировать и обновлять повторно используемые компоненты, поддерживаемые извне; или
    2. использовать стандартные компоненты, предоставляемые системой или языком программирования.
    В этом случае, если уязвимость обнаружена в повторно используемом компоненте, будет легко обновить этот компонент. [updateable_reused_components]
    Типичным способом выполнить этот критерий является использование предоставляемых операционной системой и языком программирования систем управления пакетами. Многие свободные программы распространяются с «подсобными библиотеками», которые являются локальными копиями стандартных библиотек (возможно, форков библиотек). Само по себе это нормально. Однако, если программа *должна* использовать эти локальные копии/форки, то обновление «стандартных» библиотек через системное обновление безопасности оставит эти дополнительные копии по-прежнему уязвимыми. Это особенно актуально для облачных систем; если провайдер облака обновляет свои «стандартные» библиотеки, но программа их не собирается использовать, обновления фактически не помогут. См., например, "Chromium: Why it isn't in Fedora yet as a proper package" от Тома Каллавея.

    Проекту СЛЕДУЕТ избегать использования нерекомендуемых (deprecated) или устаревших (obsolete) функций и API в тех случаях, когда альтернативы на СПО доступны в используемом наборе технологий («стек технологий» проекта) и для подавляющего большинства пользователей, поддерживаемых проектом (т.е. так чтобы пользователи могли быстро воспользоваться этой альтернативой). [interfaces_current]

    Owned runtime uses supported library APIs and modern TLS/SSH algorithms, but the pinned build frontend still triggers a virtualenv --wheel/--no-wheel deprecation notice. It succeeds; upgrading the compatible hashed build-tool set needs separate validation. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/evidence/repeat-build-2026-10-12.json https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/.github/requirements-build.txt


  • Набор автотестов


    НЕОБХОДИМО применять автоматический набор тестов к каждому коммиту в общий репозиторий по крайней мере для одной ветки. Этот набор тестов ОБЯЗАН создавать отчет об успешном или неудачном тестировании. [automated_integration_testing]
    Это требование можно рассматривать как подмножество test_continuous_integration, но сосредоточенное только на тестировании, без требования непрерывной интеграции.

    Required Quality gate runs the application and shared-tooling suites on pull requests and default-branch changes, with retained status/report artifacts. Current PR must pass before merge. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/.github/workflows/quality-gate.yml https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/.github/workflows/ci.yml https://github.com/4alvit/mcp-venus-os/pull/101



    Проект ОБЯЗАН добавить регрессионные тесты к автоматизированному набору тестов по крайней мере на 50% ошибок, исправленных в течение последних шести месяцев. [regression_tests_added50]

    The reviewed six-month inventory preserves the original 68/130 conservative bound, including untested dependency findings. Eight previously zero-credit PR101 fixes now have linked published function-level before/after differential regression evidence. Twenty further possible behavior units, including draft-only integration failures, receive zero additional credit. The current conservative lower bound is 76/150 = 50.6667%. Retrospective test dates and uncertain defect identities remain explicit; this is not a claim of an exact defect universe. https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/regression-repeatable-2026-10-12.json https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/regression-history-2026-10-12.json https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/differential-2026-10-12.json



    Проект ОБЯЗАН иметь автоматические тестовые пакеты на СПО, которые обеспечивают покрытие не менее 80% инструкций кода, если есть хотя бы один инструмент на СПО, который может измерять этот критерий на выбранном языке. [test_statement_coverage80]
    Для измерения тестового покрытия существует множество средств на СПО, включая gcov/lcov, Blanket.js, Istanbul и JCov. Обратите внимание, что соответствие этому критерию не является гарантией того, что тестовый пакет является исчерпывающим; вместо этого, несоответствие этому критерию является сильным индикатором плохого набора тестов.

    The current full local suite passes 1012 tests with 3 documented optional skips. Coverage measures 6032/6810 Python statements across all 39 source modules (88.5756%). The source-hash-bound supplemental inventory counts shell/workflow/Docker/embedded commands as uncovered: 295 reviewed units plus a 25-unit margin, and 5 excluded Python lines. The conservative aggregate lower bound is 6032/7135 = 84.5410%. This is not measured shell coverage. https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/coverage-repeatable-2026-10-12.json https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/supplemental-coverage-repeatable-2026-10-12.json https://github.com/4alvit/mcp-venus-os/blob/a62cd87d68dc15f3650989781178d7d0460d1760/docs/evidence/supplemental-coverage-recipe.md


  • Тестирование новых функций


    Проект ОБЯЗАН иметь формальную задокументированную политику о том, что при добавлении существенной новой функциональности НЕОБХОДИМО добавлять тесты для новой функциональности в набор автоматических тестов. [test_policy_mandated]

    Formal contribution policy requires automated tests for major new functionality and regression tests for bug fixes, including acceptance/rejection and failure/security paths. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CONTRIBUTING.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/quality-evidence.md



    Проект ОБЯЗАН включать в свои документированные инструкции для предложений об изменениях политику, по которой для существенной новой функциональности должны добавляться тесты. [tests_documented_added]
    Однако даже неформальное правило приемлемо, если тесты добавляются на практике.

    Formal contribution policy requires automated tests for major new functionality and regression tests for bug fixes, including acceptance/rejection and failure/security paths. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/CONTRIBUTING.md https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/quality-evidence.md


  • Флаги предупреждений


    Проекты ОБЯЗАНЫ быть максимально строгими с предупреждениями в ПО, создаваемом проектом, где это целесообразно. [warnings_strict]
    Некоторые предупреждения не могут быть эффективно задействованы в некоторых проектах. Что необходимо в этом критерии - это доказательства того, что проект стремится включать флаги предупреждений там, где это возможно, чтобы ошибки обнаруживались на ранней стадии.

    Broad Ruff diagnostics and strict mypy are enforced. Global Ruff ignores were removed; documented exceptions cover only required callbacks, fixtures and upstream test helper annotations. All Python warnings fail pytest, and the final 984-test suite passes without suppression. Vendored tooling retains reviewed upstream rules; a separate build-frontend deprecation is documented. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/quality-evidence.md#warning-policy https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/evidence/coverage-2026-10-12.json


 Безопасность 13/13 ●

 Анализ 2/2 ●

  • Статический анализ кода


    Проект ОБЯЗАН использовать хотя бы один инструмент статического анализа с правилами или подходами для поиска распространенных уязвимостей в анализируемом языке или окружении, если есть хотя бы один инструмент на СПО, который может реализовать этот критерий на выбранном языке. [static_analysis_common_vulnerabilities]
    Инструменты статического анализа, специально предназначенные для поиска распространенных уязвимостей, с большей вероятностью найдут их. Тем не менее, использование любых статических инструментов обычно помогает найти какие-то проблемы, поэтому мы предлагаем, но не требуем этого для получения базового значка.

    Required FLOSS Bandit scans for Python security weaknesses and CodeQL analyzes Python/actions; dependency/secret scanning complements it. Latest local high-severity Bandit gate and hosted CI must remain green. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/.github/workflows/release-security.yml https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/.github/workflows/codeql.yml


  • Динамический анализ кода


    Если ПО, создаваемое проектом, включает ПО, написанное с использованием небезопасного языка (например, C или C++), тогда проект ОБЯЗАН регулярно использовать хотя бы один динамический инструмент (например, фаззер или сканер веб-приложения) в сочетании с механизмом для обнаружения проблем безопасности памяти, таких как перезапись буфера. Выберите «неприменимо» (N/A), если проект не создает ПО, написанное на небезопасном языке. [dynamic_analysis_unsafe]
    Примерами механизмов обнаружения проблем безопасности памяти являются Address Sanitizer (ASAN) (доступен в GCC и LLVM), Memory Sanitizer и valgrind. Другие потенциально используемые инструменты включают Thread Sanitizer и Undefined Behavior Sanitizer. Достаточно широкое использование утверждений (assertions) тоже может быть приемлемо.

    No owned memory-unsafe implementation exists: runtime/operational code is Python/shell. Native third-party dependencies are maintained/scanned but do not establish owned C/C++ code or a claimed ASan harness. https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/pyproject.toml https://github.com/4alvit/mcp-venus-os/blob/95609d0b9f492ee6a41d84f1f46bb1be16759848/docs/quality-evidence.md



Вы можете использовать инструменты и системы ИИ для предложения изменений через простой URL, например https://www.bestpractices.dev/ru/projects/15439/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforced. Смотрите нашу систему автоматизированных предложений о том, как это сделать. Эти данные доступны по лицензии Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). Это означает, что получатель данных может распространять данные с изменениями или без них, при условии, что получатель данных предоставляет текст данного соглашения вместе с распространяемыми данными. Пожалуйста, укажите в качестве источника alvit и участников OpenSSF Best Practices badge.

Владелец анкеты на значок проекта: alvit.
2026-10-13 01:43:58 UTC, последнее изменение сделано 2026-10-13 03:50:16 UTC. Последний раз условия для получения значка были выполнены 2026-10-13 02:12:10 UTC.