
Менеджер проверенных реестров инструментов. Управляет цепочками инструментов разработчика из реестров на основе git.
Менеджер реестров инструментов — управляет инструментальными цепочками разработчика из реестров на основе git, работая поверх mise.
kit разрешает версии инструментов в нескольких реестрах, генерирует конфигурацию mise, проверяет SHA-256 контрольные суммы по артефактам релизов издателей, верифицирует подписи cosign в тех случаях, когда издатели подписывают отдельные бинарные файлы, и автоматизирует отслеживание обновлений вышестоящих проектов с помощью трёхконвейерной CI-архитектуры.
Если у вас ещё нет Rust, самый быстрый путь — mise:
mise use --global rust
cargo install nomograph-kit
Или используйте rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install nomograph-kit
Бинарный файл называется kit.
kit setup --registry https://gitlab.com/your/registry.git
kit sync
kit status
Реестр — это git-репозиторий с определениями инструментов в формате TOML (по одному файлу на инструмент):
tools/
_meta.toml # метаданные реестра + политика слияния
gh.toml # один файл на инструмент
muxr.toml
...
Каждое определение инструмента самодостаточно:
[tool]
name = "gh"
source = "github"
repo = "cli/cli"
version = "2.89.0"
tag_prefix = "v"
bin = "gh"
tier = "high"
aqua = "cli/cli"
[tool.assets]
macos-arm64 = "gh_{version}_macOS_arm64.zip"
linux-x64 = "gh_{version}_linux_amd64.tar.gz"
[tool.checksum]
file = "gh_{version}_checksums.txt"
format = "sha256"
[tool.signature]
method = "github-attestation"
Источники: github, gitlab, npm, crates, direct, rustup, brew
Источник brew делегирует установку бэкенду brew: в mise (локальный CLI brew в CI не требуется). kit отслеживает версии через API formulae.brew.sh и генерирует записи вида name = "brew:<formula>@<version>" в mise.toml.
Умный kit add запрашивает вышестоящий проект и автоматически заполняет поля:
kit add jq jqlang/jq # GitHub
kit add muxr nomograph/muxr --gitlab # GitLab (разрешает project_id)
kit add claude-code --npm @anthropic-ai/claude-code
kit add cargo-nextest --crates
kit add chafa --brew # Homebrew formula (формула по умолчанию — имя инструмента)
kit add go121 --brew [email protected] # Homebrew formula с явным именем формулы
Каждый инструмент имеет уровень, определяющий политику слияния:
| Уровень | Значение | Типичная политика |
|---|---|---|
| own | Инструменты, которые вы сами собираете и публикуете | Автослияние всех повышений версий |
| high | Критически важные сторонние инструменты | Ручная проверка |
Уровни устанавливаются для каждого инструмента в TOML-определении. Файл _meta.toml реестра задаёт, какие уровни подлежат автослиянию:
[policy]
auto_merge_tiers = ["own", "low"]
auto_merge_bump = ["patch", "minor"]
auto_merge_requires_checksum = true
Настройте несколько реестров в ~/.config/kit/config.toml. При пересечении инструментов приоритет у первого реестра. Локальные привязки переопределяют.
[[registry]]
name = "nomograph"
url = "https://gitlab.com/nomograph/kits.git"
[[registry]]
name = "personal"
url = "https://gitlab.com/you/kits.git"
Разделяйте реестры по границам доверия. Например, храните собственные инструменты в одном реестре, а сторонние — в другом. Каждый реестр имеет собственный конвейер, политику слияния и периодичность обновлений.
kit обнаруживает kit.toml, поднимаясь от рабочего каталога. Если файл найден, инструменты ограничиваются областью проекта:
.kit.lock рядом с kit.toml (фиксируется в git).mise.toml объединяется с маркерами # kit:begin / # kit:endkit реализует трёхконвейерную архитектуру цепочки поставок через CI-компонент kit-registry:
include:
- component: gitlab.com/nomograph/pipeline/kit-registry@v3
inputs:
kit_version: "0.10.1"
mr_assignee: "andunn"
kit sense запрашивает релизы вышестоящих проектов, загружает артефакты, проверяет контрольные суммы и сверяется с базами уязвимостей. Классифицирует каждое обнаружение по уровню риска (тип повышения, уровень, статус контрольной суммы). Никогда не завершается ошибкой из-за расхождения версий — это именно то, что он обнаруживает.
kit evaluate применяет детерминированные правила (автоутверждение чистых патчей, отклонение несовпадений контрольных сумм) и опционально вызывает LLM для граничных случаев (крупные мажорные повышения, отсутствие контрольных сумм, уязвимости).
kit apply обновляет TOML-файлы инструментов на диске и разделяет обновления на две группы по признаку возможности автоматического слияния:
CI-компонент создаёт отдельные ветки и MR для каждой группы. MR с автослиянием сливается сам после прохождения конвейера верификации. MR для проверки остаётся открытым для ручного ревью.
kit verify-registry повторно проверяет все определения инструментов и повторно верифицирует контрольные суммы. Запускается на каждом MR как шлюз перед слиянием.
Что kit на самом деле делает на пути верификации:
Чего kit не делает: внеполосная проверка контрольных сумм (контрольные суммы загружаются из того же релиза, что и артефакт), проверка подписей содержимого архивов или замена ручного ревью для уровней, допускающих автослияние.
kit снят с эксплуатации, заменён на mise (jdx/mise). Привязки инструментов теперь хранятся в версионированных mise.toml + зафиксированном mise.lock (sha256 + происхождение для каждой платформы): машинный базовый уровень в dunn.dev/harness, конфигурации для отдельных окружений (например, nomograph/keaton). Обновления поступают через Renovate (с customManager для бэкендов gitlab:) + CI-аудит происхождения по разностям mise.lock — замысел kit (верифицированный установщик + автоматическое повышение версий) на стабильном хосте. Запись миграции: nomograph/keaton -> campaigns/harness/sessions/baseline.md (2026-06-16).
MIT — Nomograph
| Команда | Описание |
|---|
kit setup | Одноразовая настройка, опционально добавление реестра |
kit sync | Стянуть реестры, разрешить версии, сгенерировать mise config, установить |
kit status | Установленные vs реестровые, обнаружение рассинхронизации, уровень верификации |
kit diff | Показать изменения между lock-файлом и реестром |
kit upgrade | Интерактивный процесс обновления инструментов |
kit verify | Переверифицировать все установленные бинарные файлы (контрольные суммы всегда; cosign — только для отдельных бинарных артефактов) |
kit audit | Проверить инструменты на известные уязвимости безопасности |
kit add <name> <source> | Запросить вышестоящий проект, сгенерировать определение инструмента |
kit push <name> | Зафиксировать и отправить определение инструмента |
kit remove <name> | Удалить инструмент из доступного для записи реестра |
kit pin <name> <version> | Закрепить версию инструмента локально |
kit unpin <name> | Удалить локальную привязку |
kit sense | Обнаружить изменения в вышестоящих проектах, классифицировать по уровню риска (CI) |
kit evaluate | Анализ на основе правил + LLM-проверка результатов (CI) |
kit apply | Обновить TOML-файлы на диске, разделить обновления по признаку автоматического слияния (CI) |
kit verify-registry | Проверить все определения инструментов перед слиянием (CI) |
kit init [--ci] | Создать каркас нового реестра |
kit completions <shell> | Автодополнения для оболочки (bash/zsh/fish) |
kit man-page | Сгенерировать man-страницу |
| low |
| Стандартные инструменты |
| Автослияние патч/минорных версий |