rtk-ai/rtk

Mise (mise.jdx.dev) as unified DevEx entrypoint: one command to rule all workflows and tools

Open

#749 opened on 2026年3月20日

GitHub で見る
 (2 comments) (0 reactions) (0 assignees)Rust (2,914 forks)batch import
area:cieffort-mediumenhancementhelp wantedpriority:low

Repository metrics

Stars
 (48,085 stars)
PR merge metrics
 (平均マージ 11d 1h) (30d で 45 merged PRs)

説明

Why

Contributing to RTK today requires knowing which raw cargo commands to run, in which order, with which flags. Nothing tells you at a glance what the full quality gate looks like, how to benchmark startup time, or how to build a release package. This knowledge lives in CLAUDE.md, the README, scattered bash scripts — but never in one authoritative, executable place.

The result:

  • New contributors spend time figuring out "what do I run to check my changes are clean?"
  • The pre-commit gate (cargo fmt --all && cargo clippy --all-targets && cargo test) is copy-pasted in docs but not surfaced as a runnable command
  • Benchmarking (hyperfine ...) and packaging (cargo deb, cargo generate-rpm) are undiscoverable unless you read deep into the README

This friction adds up. Every time a contributor asks "how do I run the linter?" or "what's the release command?", the answer requires reading docs instead of typing mise tasks.


How

This adds a .mise/config.toml that defines 23 tasks covering the full contributor workflow — build, test, lint, install, benchmark, package, and analytics — with dependencies, aliases, and human-readable descriptions.

mise tasks
build          Build debug binary
build:release  Build optimized binary (alias: br)
check          Fast type-check without linking (alias: c)
ci             Full quality gate: fmt:check + lint + test (alias: qa)
dev            Local gate: fmt then lint + test (alias: d)
fmt            Format all source files
fmt:check      Check formatting without modifying files
lint           Run clippy with pedantic + nursery lints
test           Run unit tests (alias: t)
test:smoke     Smoke tests against installed binary
test:verbose   Run tests with stdout
test:watch     Re-run tests on file changes
bench          Full performance benchmark suite
bench:startup  Quick startup time check vs raw command
install        Install into cargo bin
install:local  Install binary directly into PATH
gain           Token savings analytics
gain:history   Command history with savings per command
package:deb    Build Debian package
package:rpm    Build RPM package
clean          Remove build artifacts
check:install  Verify rtk is correctly installed and routed
docs:validate  Validate documentation accuracy

Key design choices:

  • No new tooling required for existing workflowsmise run test just calls cargo test. Raw cargo commands still work unchanged.
  • Task dependenciesmise run ci runs fmt:checklinttest in the right order automatically.
  • Source/output tracking — mise skips tasks when inputs haven't changed.
  • Aliasesmise run qa, mise run d, mise run t for frequent commands.
  • Rust version pinning[tools] section pins rust = "stable" with rustfmt and clippy components, so mise install bootstraps a contributor's environment in one command.

Additionally, a src/filters/mise.toml TOML filter strips mise installation noise (Downloading, Extracting, Installing lines) so rtk mise run ... stays token-efficient in LLM-assisted workflows.

A working implementation is available on branch devex/alignment-claude-hook.

コントリビューターガイド