mcpField
M
mise-tasks

mise-tasks

github.com/terrylica開発1724 回インストール1 日前に更新
リポジトリ

mise-tasks について

mise-tasksは、miseの`[tasks]`設定でプロジェクトのワークフローを定義・実行するスキルです。依存関係、引数、ファイル追跡から、実験的なモノレポまで扱います。

主な機能

  1. 01`.mise.toml`でタスクを定義
  2. 02依存関係による実行順の設定
  3. 03`usage`による引数指定
  4. 04キャッシュ用のファイル追跡
  5. 05モノレポのタスクパターン設定

活用シーン

  1. 01ビルドとテストのワークフロー設定
  2. 02コマンド前後のタスク実行
  3. 03ソースと出力ファイルの追跡
  4. 04モノレポ内のタスク整理

インストール

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

$npx skills add https://github.com/terrylica/cc-skills --skill mise-tasks

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

同梱ファイル

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

references/
advanced.md
arguments.md
bootstrap-monorepo.md
env-integration.md
evolution-log.md
patterns.md
polyglot-affected.md
release-workflow-patterns.md
task-levels.md

詳細

mise タスクのオーケストレーション

依存関係の管理、引数の処理、ファイルの追跡を行いながら、mise の [tasks] セクションを使って複数ステップのプロジェクトワークフローをオーケストレーションします。

自己進化型スキル:このスキルは使用を通じて改善されます。指示が誤っていた、パラメーターが変化していた、または回避策が必要だった場合は、先延ばしにせず、すぐにこのファイルを修正してください。実際に再現可能な問題がある場合にのみ更新してください。

このスキルを使用するタイミング

明示的なトリガー:

  • ユーザーが mise tasks、mise run、[tasks] セクションに言及した場合
  • ユーザーがタスクの依存関係(depends、depends_post)を必要としている場合
  • ユーザーが .mise.toml でワークフローの自動化を希望している場合
  • ユーザーがタスク引数または usage 仕様に言及した場合

AI による検出トリガー(必須):

mise-configuration スキルが複数ステップのワークフロー(テストスイート、ビルドパイプライン、マイグレーション)を検出した場合、適切な [tasks] 定義を生成するため、このスキルを必ず呼び出してください。

クイックリファレンス

タスク定義
[tasks.build]
description = "Build the project"
run = "cargo build --release"
タスクの実行
mise run build          # Run single task
mise run test build     # Run multiple tasks
mise run test ::: build # Run in parallel
mise r build            # Short form
依存関係の種類
種類構文実行タイミング
dependsdepends = ["lint", "test"]タスクの実行前
depends_postdepends_post = ["notify"]タスクが正常に終了した後
wait_forwait_for = ["db"]実行中の場合のみ待機
主なタスクプロパティ
プロパティ目的例
descriptionAI エージェントによる検出性(重要)"Run pytest with coverage. Exits non-zero on failure."
alias短縮名alias = "t"
dir作業ディレクトリdir = "packages/frontend"
envタスク固有の環境変数(依存タスクには渡されません)env = { LOG_LEVEL = "debug" }
hidemise tasks の出力から隠すhide = true
sourcesキャッシュ用のファイル追跡sources = ["src/**/*.rs"]
outputsソースより新しい場合はスキップoutputs = ["target/release/myapp"]
confirm実行前に確認を求めるconfirm = "Delete all data?"
quietmise の出力を抑制quiet = true
silentすべての出力を抑制silent = true
raw標準入力/標準出力を直接使用(並列処理を無効化)raw = true
toolsタスク固有のツールバージョンtools = { python = "3.9" }
shellカスタムシェルshell = "pwsh -c"
usage引数仕様(Tera より推奨)タスク引数を参照
名前空間
mise run 'test:*'      # All tasks starting with test:
mise run 'db:**'       # Nested: db:migrate:up, db:seed:test
mise tasks --hidden    # View hidden tasks (prefixed with _)

すべてのレベルの詳細な例とパターンについては、タスクレベルのリファレンスを参照してください。


レベル 10:モノレポ(実験的)

必要条件:MISE_EXPERIMENTAL=1 および experimental_monorepo_root = true

mise run //projects/frontend:build    # Absolute from root
mise run :build                       # Current config_root
mise run //...:test                   # All projects
mise run '//projects/...:build'       # Build all under projects/

サブディレクトリ内のタスクはパスプレフィックス付きで自動検出されます(packages/api/.mise.toml のタスクは packages/api:taskname になります)。

モノレポのドキュメント全体については、advanced.mdを参照してください。


レベル 11:Pants + mise を使用したポリグロットモノレポ

Python が中心のポリグロットモノレポ(10~50 パッケージ)では、ランタイム管理に mise、ビルドのオーケストレーションとネイティブな影響範囲の検出に Pants を組み合わせます。

ツール役割
miseランタイムのバージョン(Python、Node、Rust)+環境変数
Pantsビルドのオーケストレーション+ネイティブな影響範囲の検出+依存関係の推論
# Native affected detection (no manual git scripts)
pants --changed-since=origin/main test
pants --changed-since=origin/main lint
pants --changed-since=origin/main package
規模推奨
10 パッケージ未満mise + カスタムの影響範囲検出(レベル 10 のパターン)
10~50 パッケージ(Python が中心)Pants + mise(このセクション)
50 パッケージ以上Bazel を検討

Pants + mise の統合ガイドとツール比較の完全版については、polyglot-affected.md を参照してください。


[env] との統合

タスクは [env] の値を自動的に継承します。外部の環境変数ファイルには _.file を、シークレットには redact = true を使用します。

[env]
DATABASE_URL = "postgresql://localhost/mydb"
_.file = { path = ".env.secrets", redact = true }

[tasks._check-env]
hide = true
run = '[ -n "$API_KEY" ] || { echo "Missing API_KEY"; exit 1; }'

[tasks.deploy]
depends = ["_check-env"]
run = "deploy.sh"  # $DATABASE_URL and $API_KEY available

環境変数の統合パターンの詳細については、環境変数の統合 を参照してください。


アンチパターン

アンチパターン問題点代わりに行うこと
/itp:go を mise タスクで置き換えるTodoWrite、ADR の追跡、チェックポイントがありませんプロジェクトのワークフローには mise タスクを、ADR 主導の開発には /itp:go を使用します
タスクにシークレットをハードコードするセキュリティ上のリスクがあります_.file = ".env.secrets" と redact = true を使用します
巨大なモノリシックタスクデバッグが難しく、再利用できません依存関係を持つ小さなタスクに分割します
description を省略する、または簡素にするAI エージェントは名前だけではタスクの目的を推測できません何を行うか、何が必要か、何を生成するか、いつ実行するかを詳しく記述します
ビルドの depends を指定せずに公開するDAG による防止が行われず、実行時エラーが発生します公開タスクに depends = ["build"] を追加します
すべてのフェーズを含めずにオーケストレーターを構成する「次に X を実行してください」というメッセージが無視されますrelease:full の depends 配列にすべてのフェーズを含めます

リリース固有のアンチパターンとパターンについては、リリースワークフローのパターン を参照してください。


相互参照:mise-configuration

前提条件:タスクを定義する前に、[env] セクションが設定されていることを確認してください。

規定事項:タスクを定義した後、[env] の SSoT パターンが適用されていることを確認するために、mise-configuration スキル を呼び出してください。

mise-configuration スキルでは、以下について説明します。

  • [env] - デフォルト値を含む環境変数
  • [settings] - mise の動作設定
  • [tools] - バージョンの固定
  • 特殊なディレクティブ:_.file、_.path、_.python.venv

追加リソース


トラブルシューティング

問題原因解決策
タスクが見つからないタイプミスまたは mise.toml の誤りmise tasks を実行して利用可能なタスクを一覧表示します
依存関係が実行されない循環依存タスクの depends 配列に循環がないか確認します
ソースが機能しないglob パターンの誤りmise.toml の場所を基準とした相対パスを使用します
監視がトリガーされないファイルが sources の一覧にないファイルパターンを sources 配列に追加します
環境変数を利用できないタスクのディレクトリが違うmise.toml が cwd またはその親ディレクトリにあることを確認します
実行時にエラーが発生するスクリプトパスの問題絶対パス、または mise.toml からの相対パスを使用します

実行後の振り返り

このスキルの実行後、終了する前に確認してください。

  1. コマンドは成功しましたか? — 成功しなかった場合は、失敗の原因となった指示またはエラーテーブルを修正します。
  2. パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変更があった場合は、使用例とパラメーターテーブルを更新して一致させます。
  3. 回避策が必要でしたか? — 独自に対応した場合(異なるフラグや追加手順など)は、次回同じ回避策が不要になるよう、この SKILL.md を更新します。

問題が実際に発生し、再現可能な場合にのみ更新してください。推測に基づく更新は行わないでください。

コメント