1. Введение и цели
Rukh — встраиваемое ядро для CLI с собственным именем, встроенными командами и доверенными устанавливаемыми расширениями. Люди используют CLI, а агенты могут обращаться через MCP к одобренным инструментам, сформированным из той же модели команд. ADR-0010, ADR-0013
1.1 Основные требования
Заголовок раздела «1.1 Основные требования»Rukh разделяет приложение, поставляемое владельцем, и команды независимых издателей. Пользователь работает с одним деревом команд; издатель может добавить или обновить расширение, не распространяя ещё один собственный CLI. Поддерживаемые способы исполнения сохраняют независимость от языка, но не обещают готовую поддержку любого языка или среды.
Идентификаторы ниже обозначают краткое изложение принятых требований, а не вторую спецификацию их контрактов.
| ID | Требование продукта | Определяющие решения |
|---|---|---|
| REQ-01 | Владелец собирает CLI с собственным именем из ядра, встроенных команд и допущенных интеграций. Настройки владельца выбирают их использование; обычные расширения не добавляют привилегированные реализации. | ADR-0010 |
| REQ-02 | Независимые издатели добавляют команды и подкоманды через объявленные выпуски расширений с версиями. Идентичность команды сохраняется при альтернативных именах и смене представления; поддерживаемые нативные и скриптовые способы разделяют смысл вызова. | ADR-0001, ADR-0002, ADR-0006 |
| REQ-03 | Пользователи находят, устанавливают и обновляют одобренные выпуски. Видимость, доверие к файлам, установка, активация и право действовать проверяются отдельно; обновление не подменяет реализацию уже выполняющегося вызова. | ADR-0005, ADR-0007 |
| REQ-04 | Небольшая команда может распространять каталог и явные локальные правила без служб идентификации и прав. Организация может независимо подключать существующие интеграции личности, доступа и сред исполнения, сохраняя те же контракты расширений. | ADR-0005, ADR-0008, ADR-0009 |
| REQ-05 | Люди и одобренные программные клиенты используют одну модель команд. Инструменты MCP формируются только из совместимых активных команд, которые владелец разрешил предоставлять; публикация инструмента не выдаёт права и не превращает любую команду CLI в инструмент агента. | ADR-0013 |
| REQ-06 | У вызовов есть явный владелец, ограниченные полномочия и определённый окончательный исход. Требуемые ограничения исполнения и гарантии значимых внешних действий должны поддерживаться; неопределённость сохраняется, а не скрывается автоматическим повтором. | ADR-0004, ADR-0014, ADR-0015, ADR-0016 |
Предметная область — доставка расширений и управляемое исполнение команд. Rukh не является службой сборки пакетов, каталогом пользователей или планировщиком агента. Раздел 3. Контекст и границы уточняет эти границы и различия между издателем, оператором, субъектом и вызывающей стороной.
1.2 Цели качества
Заголовок раздела «1.2 Цели качества»Порядок отражает соотношение целей в принятых решениях: отсутствие полномочий или обязательной гарантии предотвращает работу; удобство и скорость не могут незаметно ослабить эту границу. Остальные цели сохраняют обязательность, а их показатели в ADR не меняются.
| Приоритет / ID | Цель и значение для предметной области | Основные заинтересованные стороны | Основание |
|---|---|---|---|
| 1 · QG-01 | Контроль полномочий. Доверенный выпуск, вошедший пользователь и опубликованный инструмент не разрешают любые действия. Реальное действие остаётся в текущих пределах владельца, субъекта и задачи; прямые возможности процесса в ОС описываются честно. | Владелец CLI, администратор доступа, владелец ресурса, пользователь | ADR-0005, ADR-0014, ADR-0015 |
| 2 · QG-02 | Предсказуемые исходы и восстановление. Отмена, одновременные обновления и потеря ответа не могут незаметно подменить выполняемую команду или повторить внешнее действие. Неизвестный результат действия отличается от подтверждённого успеха. | Оператор CLI, разработчик интеграции агента, владелец ресурса | ADR-0004, ADR-0007, ADR-0016 |
| 3 · QG-03 | Расширяемость с совместимостью. Издатели выпускают версии независимо, а владельцы заменяют интеграции, сохраняя идентичность команд, смысл ввода и явный отказ при отсутствии поддержки. | Издатель расширения, владелец CLI, автор интеграции | ADR-0002, ADR-0006, ADR-0010 |
| 4 · QG-04 | Практичный локальный вариант. Для совместного использования одобренных расширений и предоставления выбранных инструментов не нужны набор серверов или учётная запись организации. Подключение служб не создаёт другую модель расширений. | Владелец из небольшой команды, оператор CLI, разработчик интеграции организации | ADR-0009, ADR-0013 |
| 5 · QG-05 | Быстрый просмотр и исполнение. Базовая справка и список инструментов не запускают код расширений и не готовят среды. Для запуска и IPC заданы цели по сценариям; первая подготовка отсутствующей среды рассматривается отдельно. | Пользователь CLI, программный клиент, издатель расширения | ADR-0001, ADR-0003, ADR-0008, ADR-0013 |
Подробные сценарии и границы подтверждения находятся в разделе 10. Требования к качеству, известные пробелы — в 11. Риски и технический долг.
1.3 Заинтересованные стороны
Заголовок раздела «1.3 Заинтересованные стороны»| Участник | Ответственность и ожидаемый результат | Основные требования |
|---|---|---|
| Владелец CLI | Определяет приложение, допущенный код интеграций и полномочия настройки; поставляет цельный инструмент, не передавая доверие ядра авторам пакетов | REQ-01, REQ-04 |
| Автор / издатель расширения | Реализует команды и публикует точные объявления и файлы; может запрашивать средства, но не разрешать их использование и не выбирать привилегированный код поставщиков | REQ-02, REQ-03 |
| Пользователь / оператор CLI | Использует команды и, при наличии полномочий, обслуживает установленные расширения и профили; ожидает устойчивых имён, полезной справки и понятных отказов | REQ-03, REQ-06 |
| Администратор доступа | Ведёт одобренные источники, связи субъектов и групп, правила по явно переданным полномочиям; локальные файлы правил и внешние службы остаются вариантами | REQ-03, REQ-04, REQ-06 |
| Разработчик интеграции агента / программный клиент | Подключается к одобренному набору инструментов, передаёт допустимый ввод и обрабатывает устаревшие привязки или неизвестный результат, не предполагая более широких прав | REQ-05, REQ-06 |
| Владелец интеграции и ресурса | Предоставляет доверенные адаптеры и контракты ресурсов; указывает действительно поддерживаемые гарантии личности, ограничений и внешних действий | REQ-01, REQ-04, REQ-06 |
Это обязанности, а не обязательные подразделения или роли приложения. В небольшой команде один человек может быть владельцем, издателем и оператором. Ни одно название само по себе не подтверждает личность и не выдаёт право. Правила привязки определены в ADR-0005, ADR-0010 и ADR-0014.
Далее — 2. Архитектурные ограничения и 3. Контекст и границы. Боковое меню следует порядку разделов arc42.