mcpField
M
mise

mise

github.com/neoeinstein開発450 回インストール3 日前に更新
リポジトリ

mise について

mise は、開発ツールのバージョン、環境設定、プロジェクトタスクを管理するスキルです。チームやコントリビューターのツールチェーンを揃え、ビルド、テスト、デプロイのワークフローを整理できます。

主な機能

  1. 01開発ツールのバージョン管理
  2. 02プロジェクト環境とローカル環境の設定
  3. 03プロジェクトタスクの定義と実行
  4. 04モノレポのパッケージ間でタスクを整理
  5. 05CI/CD とロックファイルの指針

活用シーン

  1. 01チーム内のツールバージョン統一
  2. 02リポジトリでの個人用ツール設定
  3. 03ビルド・テストタスクの定義
  4. 04モノレポ内のタスク整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/neoeinstein/claude-plugins --skill mise

インストール後、Claude Code で/miseを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
ci-cd.md
configuration.md
monorepo-tasks.md
tasks.md
troubleshooting.md

詳細

mise ツールチェーン管理

概要

mise は、開発ツールのバージョン、環境設定、プロジェクトタスクを管理します。チームメンバー間や CI でツールチェーンを統一し、ツールチェーンと併せてビルド/テスト/デプロイのワークフローを定義するために使用します。

基本原則: 2 つのモードがあります。管理しているリポジトリには mise.toml(コミット対象)、コントリビュートしているリポジトリには mise.local.toml(gitignore 対象)を使用します。

クイックリファレンス - 読み込む内容

次のような場合読み込むもの
既存のプロジェクトに mise を導入する代わりに mise:onboard-project スキルを使用してください
mise.toml を設定する、優先順位を理解するreferences/configuration.md
タスクを定義する、ビルドを実行する、監視モードを使用するreferences/tasks.md
タスク固有のツール要件を宣言するreferences/tasks.md
モノレポ内のパッケージ全体でタスクを整理するreferences/monorepo-tasks.md
フラットなタスクファイルをコンポーネントごとの定義に分割するreferences/monorepo-tasks.md
「command not found」や有効化の問題が発生したreferences/troubleshooting.md
GitHub Actions、ロックファイルを設定するreferences/ci-cd.md

設定の使い分け

シナリオ設定ファイルコミット対象?
自分のプロジェクトでチーム全体のツールを管理するmise.tomlはい
他者のリポジトリにコントリビュートするmise.local.tomlいいえ(gitignore 対象)
ユーザー全体のデフォルト設定~/.config/mise/config.toml該当なし

基本原則

チーム設定には mise.toml を使用する: リポジトリを管理している場合は、プロジェクトで必要なツールチェーンを mise.toml で定義します。これをコミットしてください。全員が同じバージョンを使えます。

個人用ツールには mise.local.toml を使用する: 管理していないリポジトリにコントリビュートする場合は、個人のツール設定に mise.local.toml を使用します。慣例として、このファイルは gitignore 対象です。

必ず mise install を実行する: mise.toml があるプロジェクトをクローンした後、mise install を実行してツールをインストールしてください。これは自動では行われません。

Shims より有効化を優先する: 機能をすべて利用するには、シェルの rc ファイルで mise activate を使用してください。Shims も動作しますが、制限があります(ツールの呼び出し時を除き、環境変数を更新できません)。

再現性のために mise.lock をコミットする: ロックファイルを使うと、全員が同一のツールバージョンを使用でき、レート制限の問題も回避できます。

STOP — 合理化防止テーブル

これらのパターンに該当するコードを書く前に、STOPして再検討してください。

これからしようとしていることよくある合理化代わりにすべきこと
CI スクリプトに mise activate を追加する「ローカルでは動く」CI は非対話型です。mise x -- command または shims を使用してください。references/ci-cd.md を読み込んでください。
リポジトリで mise.lock をスキップする「'latest' を使っている」「Latest」は変わります。再現性のためにロックファイルをコミットしてください。references/ci-cd.md を読み込んでください。
レート制限後に CI から mise を削除する「デプロイを妨げている」より高い制限を利用するため、GITHUB_TOKEN を設定してください。mise を削除しても問題が移るだけです。references/troubleshooting.md を読み込んでください。
mise.local.toml をコミットする「チームもこれらのツールを使うべき」そのために mise.toml があります。ローカルファイルは個人用です。
アクティベーションに .bash_profile を使う「PATH を設定している場所だから」アクティベーションは .bashrc/.zshrc でのみ機能します。references/troubleshooting.md を読み込んでください。
あらゆる場所でパッチバージョンを厳密に固定する「最大限の再現性」代わりに mise.lock を使用してください。設定ファイルでバージョンを固定すると、更新が面倒になります。
1 つのタスクでしか必要ないツールをプロジェクトの [tools] に追加する「そのほうが簡単」/「みんなが使うかもしれない」tasks.<name>.tools に記述してください。そのタスクを実行しないコントリビューターは、インストールを省略できます。references/tasks.md を読み込んでください。
複数パッケージのプロジェクトですべてのタスクをルートの mise.toml に置く「そのほうがシンプル」/「確認するファイルが 1 つで済む」各パッケージのタスクは、それぞれの mise.toml で管理してください。ルートはオーケストレーションを担います。references/monorepo-tasks.md を読み込んでください。
中間グループの設定で task_templates を定義する「テンプレートは、それを使うパッケージの近くに置くべき」テンプレートを解決できるのはルートの mise.toml からのみです。すべてのテンプレートをルートに移動してください。references/monorepo-tasks.md を読み込んでください。
usage フィールドで TOML 配列構文(choices=["a","b"])を使う「TOML ファイルだから」usage の内容は TOML ではなく KDL です。ブロック内で choices "a" "b" を使用してください。references/tasks.md を読み込んでください。
委譲時に { task = "...", env = {...} } の中で env を渡す「依存関係でサポートされている」委譲オブジェクトがサポートするキーは task/tasks のみです。インライン引数またはタスクレベルの env を使用してください。references/tasks.md を読み込んでください。

よく使われるツール設定

Rust
[tools]
rust = { version = "latest", components = "clippy,rustfmt" }
"cargo:cargo-nextest" = "latest"
"cargo:cargo-watch" = "latest"
Node.js
[tools]
node = "lts"
"npm:pnpm" = "latest"
Python
[tools]
python = "3.12"
"pipx:poetry" = "latest"

よくある間違い

間違い修正方法
mise.local.toml をコミットする.gitignore に追加する
自分のリポジトリで mise.local.toml を使うmise.toml を使う — コントリビューターにも役立つようにする
クローン後に mise install を忘れるプロジェクトのセットアップドキュメントに追加する
CI で GITHUB_TOKEN が設定されていないAPI のレート制限に対応するためトークンを設定する
.bash_profile でアクティベーションする代わりに .bashrc または .zshrc を使う

公式リソース

コメント