ツールレジストリマネージャー -- gitベースのレジストリから開発者ツールチェーンを管理し、mise の上にレイヤーされます。
kitは複数のレジストリにわたってツールバージョンを解決し、mise設定を生成し、パブリッシャーのリリースアーティファクトに対してSHA-256チェックサムを検証し、パブリッシャーがベアバイナリに署名する場合にはcosign署名を検証し、3パイプラインの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
| コマンド | 説明 |
|---|---|
kit setup | 一度だけの設定、オプションでレジストリを追加 |
kit sync | レジストリをプル、解決、mise設定を生成、インストール |
kit status | インストール済みとレジストリの比較、ドリフト検出、検証強度 |
kit diff | ロックファイルとレジストリの差分を表示 |
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 | マニュアルページを生成 |
レジストリは、ツールごとにTOML定義を持つgitリポジトリです:
tools/
_meta.toml # レジストリメタデータ+マージポリシー
gh.toml # ツールごとに1ファイル
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ソースは、miseのbrew:バックエンドにインストールを委譲します(CIではローカルのbrew CLIは不要)。kitはformulae.brew.sh APIを介してバージョンを追跡し、mise.tomlにname = "brew:<formula>@<version>"エントリを出力します。
スマートなkit addは上流を問い合わせ、自動的に入力します:
kit add jq jqlang/jq # GitHub
kit add muxr nomograph/muxr --gitlab # GitLab (resolves project_id)
kit add claude-code --npm @anthropic-ai/claude-code
kit add cargo-nextest --crates
kit add chafa --brew # Homebrew formula (formula defaults to tool name)
kit add go121 --brew [email protected] # Homebrew formula with explicit formula name
各ツールにはマージポリシーを制御するティアがあります:
| ティア | 意味 | 典型的なポリシー |
|---|---|---|
| own | あなたがビルドして公開するツール | すべてのバンプを自動マージ |
| high | 重要なサードパーティツール | 手動レビュー |
| low | コモディティツール | パッチ/マイナーを自動マージ |
ティアは各ツールの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"
信頼境界でレジストリを分離します。例えば、自分のツールを1つのレジストリに、サードパーティツールを別のレジストリに保持します。各レジストリには独自のパイプライン、マージポリシー、更新頻度があります。
kitは作業ディレクトリから上に昇ってkit.tomlを発見します。見つかった場合、ツールはそのプロジェクトにスコープされます:
.kit.lockをkit.tomlの隣に(gitにコミット)# kit:begin / # kit:endマーカーとマージされた.mise.tomlkitはkit-registry CIコンポーネントを介して3パイプラインのサプライチェーンアーキテクチャを強化します:
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ファイルを更新し、更新を自動マージの可否に応じて2つのグループに分割します:
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(gitlab:バックエンド用のcustomManagerを使用)+mise.lock差分のCI出所監査を介して行われます -- 安定したホスト上でのkitの検証済みインストーラ+自動バンプの意図。移行記録:nomograph/keaton -> campaigns/harness/sessions/baseline.md(2026-06-16)。
MIT -- Nomograph