
Gestore di registry di strumenti verificati. Gestisce toolchain per sviluppatori da registry basati su git.
Gestore di registry di strumenti -- gestisce le toolchain di sviluppo da registry basati su git, basato su mise.
kit risolve le versioni degli strumenti su più registry, genera la configurazione di mise, verifica i checksum SHA-256 rispetto agli artifact di rilascio dell'editore, verifica le firme cosign dove gli editori firmano binari puri e automatizza il tracciamento degli aggiornamenti upstream tramite un'architettura CI a tre pipeline.
Se non hai ancora Rust, il percorso più rapido è mise:
mise use --global rust
cargo install nomograph-kit
Oppure usa rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install nomograph-kit
Il binario si chiama kit.
kit setup --registry https://gitlab.com/your/registry.git
kit sync
kit status
Un registro è un repository git con definizioni TOML per strumento:
tools/
_meta.toml # registry metadata + merge policy
gh.toml # one file per tool
muxr.toml
...
Ogni definizione di strumento è autonoma:
[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"
Fonti: github, gitlab, npm, crates, direct, rustup, brew
La fonte brew delega l'installazione al backend brew: di mise (nessun CLI brew locale richiesto in CI). kit traccia le versioni tramite l'API formulae.brew.sh ed emette voci name = "brew:<formula>@<version>" in mise.toml.
kit add intelligente interroga upstream e popola automaticamente:
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
Ogni strumento ha un livello che controlla la politica di unione:
| Livello | Significato | Politica tipica |
|---|---|---|
| own | Strumenti che costruisci e pubblichi | Unione automatica di tutti gli incrementi |
| high | Strumenti di terze parti critici | Revisione manuale |
| low | Strumenti di base |
I livelli sono impostati per strumento nella definizione TOML. Il _meta.toml del registro definisce quali livelli si uniscono automaticamente:
[policy]
auto_merge_tiers = ["own", "low"]
auto_merge_bump = ["patch", "minor"]
auto_merge_requires_checksum = true
Configura più registri in ~/.config/kit/config.toml. Il primo registro vince quando gli strumenti si sovrappongono. Le fissazioni locali prevalgono.
[[registry]]
name = "nomograph"
url = "https://gitlab.com/nomograph/kits.git"
[[registry]]
name = "personal"
url = "https://gitlab.com/you/kits.git"
Separa i registri per confine di fiducia. Ad esempio, tieni i tuoi strumenti in un registro e gli strumenti di terze parti in un altro. Ogni registro ha la propria pipeline, politica di unione e cadenza di aggiornamento.
kit scopre kit.toml risalendo dalla directory di lavoro. Quando trovato, gli strumenti sono limitati a quel progetto:
.kit.lock accanto a kit.toml (committato in git).mise.toml unito con marcatori # kit:begin / # kit:endkit alimenta un'architettura di supply chain a tre pipeline tramite il componente CI kit-registry:
include:
- component: gitlab.com/nomograph/pipeline/kit-registry@v3
inputs:
kit_version: "0.10.1"
mr_assignee: "andunn"
kit sense interroga le release upstream, scarica gli asset, verifica i checksum e controlla i database di advisory. Classifica ogni risultato per rischio (livello di incremento, livello di fiducia, stato checksum). Non fallisce mai sulla deriva delle versioni -- la deriva è ciò che rileva.
kit evaluate applica regole deterministiche (approva automaticamente patch pulite, rifiuta discrepanze di checksum) e opzionalmente invoca un LLM per casi limite (incrementi major, checksum mancanti, advisory).
kit apply aggiorna i file TOML degli strumenti su disco e partiziona gli aggiornamenti in due gruppi per idoneità all'unione automatica:
Il componente CI crea un branch e una MR separati per ogni gruppo. La MR di auto-unione si unisce da sola dopo che la pipeline di verifica passa. La MR di revisione rimane aperta per la revisione umana.
kit verify-registry riconvalida tutte le definizioni degli strumenti e riverifica i checksum. Viene eseguito su ogni MR come gate di unione.
Cosa kit fa effettivamente sul percorso di verifica:
Cosa kit non fa: verifica checksum out-of-band (i checksum vengono recuperati dalla stessa release dell'asset), verifica firma del contenuto dell'archivio o sostituzione della revisione umana per i livelli che si uniscono automaticamente.
kit è ritirato, sostituito da mise (jdx/mise). I pin degli strumenti ora vivono in mise.toml versionato + un mise.lock committato (sha256 per piattaforma + provenienza): la baseline di macchina in dunn.dev/harness, configurazioni per estate (es. nomograph/keaton). Gli aggiornamenti fluiscono tramite Renovate (con un customManager per i backend gitlab:) + un audit di provenienza CI sulle differenze di mise.lock — l'intento di installatore verificato + auto-bump di kit, su un host stabile. Record di migrazione: nomograph/keaton -> campaigns/harness/sessions/baseline.md (2026-06-16).
MIT -- Nomograph
| Comando | Descrizione |
|---|
kit setup | Configurazione una tantum, opzionalmente aggiungi un registry |
kit sync | Scarica i registry, risolve, genera configurazione mise, installa |
kit status | Installato vs registry, rilevamento deriva, forza di verifica |
kit diff | Mostra le modifiche tra lockfile e registry |
kit upgrade | Flusso di aggiornamento interattivo degli strumenti |
kit verify | Rivrifica tutti i binari installati (checksum sempre; cosign solo per asset binari puri) |
kit audit | Controlla gli strumenti per avvisi di sicurezza noti |
kit add <name> <source> | Interroga upstream, genera definizione dello strumento |
kit push <name> | Esegui commit e push di una definizione dello strumento |
kit remove <name> | Rimuovi uno strumento da un registry scrivibile |
kit pin <name> <version> | Fissa una versione di uno strumento localmente |
kit unpin <name> | Rimuovi una fissaggio locale |
kit sense | Rileva modifiche upstream, classifica per rischio (CI) |
kit evaluate | Revisione basata su regole + LLM dei risultati (CI) |
kit apply | Aggiorna TOML, partiziona per idoneità all'unione automatica (CI) |
kit verify-registry | Convalida tutte le definizioni degli strumenti prima dell'unione (CI) |
kit init [--ci] | Imposta un nuovo registry |
kit completions <shell> | Completamenti shell (bash/zsh/fish) |
kit man-page | Genera pagina man |
| Unione automatica patch/minor |