mcpField
C
configure-justfile

configure-justfile

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

configure-justfile について

configure-justfileは、プロジェクト規約に沿ってJustfileを検査・設定する、開発者やコーディングエージェント向けのスキルです。検出したプロジェクト種別に応じて、レシピや設定を作成・更新できます。

主な機能

  1. 01プロジェクト種別とタスクファイルの検出
  2. 02必須・任意レシピの監査
  3. 03Justfile設定とコメントの確認
  4. 04レシピの作成・更新
  5. 05Makefileからの移行に対応
  6. 06検査のみと自動修正に対応

活用シーン

  1. 01新規プロジェクト用のJustfile作成
  2. 02チーム規約に沿ったレシピの監査
  3. 03Makefileからタスク定義を移行
  4. 04CIでタスクランナーの準拠を確認

インストール

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

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-justfile

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

詳細

/configure:justfile

プロジェクトの標準に照らして Justfile を確認し、設定します。

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

次のような場合にこのスキルを使用します…次のような場合は別の方法を使用します…
プロジェクト用に新しい Justfile を設定するプロジェクトで Make のみを使用しており、移行を希望しない場合 — /configure:makefile を使用します
既存の Justfile に標準レシピが不足していないか監査する複雑なカスタムレシピを作成する場合 — justfile-expert スキルを使用します
Makefile から Justfile に移行するプロジェクトにタスクランナーが不要な場合(単一ファイルのスクリプト)
Justfile がチームの規約(グループ、コメント、設定)に従っているか確認する特定のレシピの失敗をデバッグする場合 — just コマンドを直接使用します
プロジェクトのタスクランナーに対して CI/CD 準拠チェックを実行する使用可能なレシピの一覧だけが必要な場合 — just --list を直接実行します

コンテキスト

  • プロジェクトルート: !pwd
  • Justfile: !find . -maxdepth 1 \( -name 'justfile' -o -name 'Justfile' \)
  • Makefile: !find . -maxdepth 1 -name 'Makefile'
  • パッケージファイル: !find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \)
  • Docker ファイル: !find . -maxdepth 1 \( -name 'Dockerfile' -o -name 'docker-compose.yml' \)
  • Env ファイル: !find . -maxdepth 1 -name '.env'
  • プロジェクト標準: !find . -maxdepth 1 -name '.project-standards.yaml'

パラメーター

コマンド引数から解析します。

  • --check-only: 変更を加えず、準拠状況を報告します(CI/CD モード)
  • --fix: 確認を求めず、自動的に修正を適用します

実行

この Justfile 準拠チェックを実行します。

ステップ 1: Justfile とプロジェクトの種類を検出する
  1. プロジェクトルートに justfile または Justfile があるか確認します
  2. 存在する場合は、現在のレシピと設定を読み取り、分析します
  3. ファイルの有無からプロジェクトの種類を検出します。
指標プロジェクトの種類
pyproject.toml または requirements.txtPython
package.jsonNode.js
Cargo.tomlRust
go.modGo
上記のいずれもなし汎用
ステップ 2: 必須および任意のレシピを分析する

必須レシピを確認します。

レシピ目的重大度
defaulthelp のエイリアス(最初のレシピ)欠落時は FAIL
help使用可能なレシピを表示する欠落時は FAIL
testテストスイートを実行する欠落時は FAIL
lintリンターを実行する欠落時は FAIL
buildプロジェクト成果物をビルドする欠落時は WARN
clean一時ファイルを削除する欠落時は WARN

コンテキストに応じたレシピを確認します。

レシピ必要となる条件重大度
formatプロジェクトで自動フォーマッターを使用している場合WARN
startプロジェクトに実行可能なサービスがある場合INFO
stopプロジェクトにバックグラウンドサービスがある場合INFO
devプロジェクトがウォッチモードに対応している場合INFO
ステップ 3: 準拠設定を確認する

Justfile の設定を検証します。

確認項目標準重大度
ファイルの存在justfile が存在する欠落時は FAIL
デフォルトレシピ最初のレシピが default である欠落時は WARN
dotenv の読み込みset dotenv-load がある欠落時は INFO
help レシピすべてのレシピを一覧表示する欠落時は FAIL
言語固有の設定コマンドがプロジェクトの種類に一致する不一致時は FAIL
レシピのコメントレシピに説明がある欠落時は INFO
ステップ 4: 準拠レポートを生成する

書式設定された準拠レポートを出力します。

Justfile Compliance Report
==============================
Project Type: python (detected)
Justfile: Found

Recipe Status:
  default ✅ PASS
  help    ✅ PASS (just --list)
  test    ✅ PASS (uv run pytest)
  lint    ✅ PASS (uv run ruff check)
  build   ✅ PASS (docker build)
  clean   ✅ PASS
  format  ✅ PASS (uv run ruff format)
  start   ⚠️  INFO (not applicable)
  stop    ⚠️  INFO (not applicable)
  dev     ✅ PASS (uv run uvicorn --reload)

Settings Status:
  dotenv-load         ✅ PASS
  positional-arguments ℹ️  INFO (not set)

Missing Recipes: none
Issues: 0 found

--check-only の場合は、ここで終了します。

ステップ 5: Justfile を作成または更新する(--fix またはユーザーの確認がある場合)

--fix フラグが指定されている場合、またはユーザーが確認した場合:

  1. Justfile がない場合: プロジェクトの種類に応じた標準テンプレートから作成します
  2. レシピが不足している場合: 適切なコマンドを含むレシピを追加します
  3. 設定が不足している場合: .env が存在すれば set dotenv-load を追加します
  4. help がない場合: just --list を使った help レシピを追加します

以下のテンプレートセクションに記載された、言語固有のコマンドを使用します。

ステップ 6: 標準の追跡情報を更新する

.project-standards.yaml を更新します。

components:
  justfile: "2025.1"

Justfile テンプレート

共通構造
# Justfile for {{PROJECT_NAME}}
# Run `just` or `just help` to see available recipes

set dotenv-load
set positional-arguments

# Default recipe - show help
default:
    @just --list

# Show available recipes with descriptions
help:
    @just --list --unsorted

####################
# Development
####################

# Run linters
lint:
    {{LINT_COMMAND}}

# Format code
format:
    {{FORMAT_COMMAND}}

# Run tests
test *args:
    {{TEST_COMMAND}} {{args}}

# Development mode with watch
dev:
    {{DEV_COMMAND}}

####################
# Build & Deploy
####################

# Build project
build:
    {{BUILD_COMMAND}}

# Clean build artifacts
clean:
    {{CLEAN_COMMAND}}

# Start service
start:
    {{START_COMMAND}}

# Stop service
stop:
    {{STOP_COMMAND}}
言語別コマンド

Python(uv ベース):

lint:
    uv run ruff check .

format:
    uv run ruff format .
    uv run ruff check --fix .

test *args:
    uv run pytest {{args}}

dev:
    uv run uvicorn app:app --reload

build:
    docker build -t {{PROJECT_NAME}} .

clean:
    find . -type f -name "*.pyc" -delete
    find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
    rm -rf .pytest_cache .ruff_cache .coverage htmlcov dist build *.egg-info

Node.js(Bun ベース):

lint:
    bun run lint

format:
    bun run format

test *args:
    bun test {{args}}

dev:
    bun run dev

build:
    bun run build

clean:
    rm -rf node_modules dist .next .turbo .cache

Rust:

lint:
    cargo clippy -- -D warnings

format:
    cargo fmt

test *args:
    cargo nextest run {{args}}

dev:
    cargo watch -x run

build:
    cargo build --release

clean:
    cargo clean

Go:

lint:
    golangci-lint run

format:
    gofmt -s -w .
    goimports -w .

test *args:
    go test ./... {{args}}

dev:
    air

build:
    go build -o bin/{{PROJECT_NAME}} ./cmd/{{PROJECT_NAME}}

clean:
    rm -rf bin dist
    go clean -cache

検出ロジック

サービスの検出(起動/停止が必要):

  • docker-compose.yml がある場合 -> Docker Compose サービス
  • Dockerfile と HTTP サーバーコードがある場合 -> コンテナサービス
  • src/server.* または src/main.* がある場合 -> アプリケーションサービス

開発モードの検出:

  • Python:FastAPI/Flask/Django がある場合 -> reload に対応した uvicorn/flask/manage.py
  • Node:package.json に dev スクリプトがある場合
  • Rust:依存関係に cargo-watch がある場合
  • Go:air.toml または main.go がある場合

Makefile からの移行

Makefile があり、Justfile がない場合:

  1. Makefile のコマンドからプロジェクトの種類を検出します
  2. 同等のレシピを含む Justfile の作成を提案します
  3. 必要に応じて、後方互換性のために Makefile を残します

エージェント向けの最適化

コンテキストコマンド
コンプライアンスをすばやく確認/configure:justfile --check-only
すべての問題を自動修正/configure:justfile --fix
既存のレシピを一覧表示just --list
特定のレシピがあるか確認just --summary
Justfile の構文を確認just --evaluate 2>&1

フラグ

フラグ説明
--check-only修正を提案せずにステータスを報告します
--fix修正を自動的に適用します

例

# Check current Justfile compliance
/configure:justfile --check-only

# Create/update Justfile for Python project
/configure:justfile --fix

# Check compliance and prompt for fixes
/configure:justfile

関連項目

  • /configure:makefile - Makefile の設定(レガシー)
  • /configure:all - すべてのコンプライアンスチェックを実行
  • /configure:workflows - GitHub Actions ワークフロー
  • /configure:dockerfile - Docker の設定
  • justfile-expert スキル - Just に関する包括的な専門知識

コメント