jpskill.com
💬 コミュニケーション コミュニティ

nx-monorepo

Nxワークスペースで、プロジェクト間の依存関係分析、影響範囲の特定、コード生成、Nx Cloud設定、ビルド最適化など、AIネイティブ開発における効率的なモノレポ管理を支援するSkill。

📜 元の英語説明(参考)

Nx monorepo management skill for AI-native development. This skill should be used when working with Nx workspaces, project graphs, affected detection, code generation, and caching. Use when: analyzing dependencies, running affected commands, generating code, configuring Nx Cloud, or optimizing build performance. Invoke nx-mcp tools for documentation queries.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Nxワークスペースで、プロジェクト間の依存関係分析、影響範囲の特定、コード生成、Nx Cloud設定、ビルド最適化など、AIネイティブ開発における効率的なモノレポ管理を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o nx-monorepo.zip https://jpskill.com/download/16869.zip && unzip -o nx-monorepo.zip && rm nx-monorepo.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/16869.zip -OutFile "$d\nx-monorepo.zip"; Expand-Archive "$d\nx-monorepo.zip" -DestinationPath $d -Force; ri "$d\nx-monorepo.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して nx-monorepo.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → nx-monorepo フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
3

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Nx Monorepo

概要

このスキルは、Nx monorepo 管理に関するエキスパートレベルの機能を提供します。Nx は、公式の MCP サーバー統合により、この AI ネイティブプラットフォームの標準的なビルドオーケストレーターです。

Nx を選ぶ理由: 公式 MCP サーバー、TypeScript ネイティブ、5 分でセットアップ、AI アシスタント用の CLAUDE.md/AGENTS.md を自動生成。

利用可能な MCP ツール

nx_docs          - Nx ドキュメントのクエリ
nx_available_plugins - 公式 Nx プラグインのリスト (デフォルトではインストールされていません)

重要な洞察: MCP はドキュメントの検索を提供します。すべての操作には Nx CLI を使用してください。

コア CLI コマンド

プロジェクトグラフ分析

# インタラクティブなプロジェクトグラフを表示
nx graph

# プログラムで使用するための JSON 出力
nx graph --file=output.json

# 特定のプロジェクトの依存関係を表示
nx graph --focus=my-app

# プロジェクトに依存するものを示す
nx graph --affected

影響を受ける範囲の検出

# main 以降で影響を受けるものは?
nx affected -t build
nx affected -t test
nx affected -t lint

# 特定のベースと比較
nx affected -t build --base=origin/main --head=HEAD

# 影響を受けるプロジェクトのみを表示
nx show projects --affected

タスクの実行

# すべてのプロジェクトのタスクを実行
nx run-many -t build
nx run-many -t test

# 特定のプロジェクトに対して実行
nx run-many -t build --projects=app-a,lib-b

# 並列処理の制御付きで実行
nx run-many -t build --parallel=4

# 単一プロジェクト
nx build my-app
nx test my-lib

コード生成

# 利用可能なジェネレーターをリスト表示
nx list @nx/next
nx list @nx/react

# 新しいアプリケーションを生成
nx g @nx/next:app my-app
nx g @nx/react:app my-frontend

# ライブラリを生成
nx g @nx/js:lib shared-utils
nx g @nx/react:lib ui-components

# ドライラン (プレビュー)
nx g @nx/next:app my-app --dry-run

構成ファイル

nx.json (ワークスペース構成)

{
  "targetDefaults": {
    "build": {
      "dependsOn": ["^build"],
      "cache": true
    },
    "test": {
      "cache": true
    },
    "lint": {
      "cache": true
    }
  },
  "namedInputs": {
    "default": ["{projectRoot}/**/*"],
    "production": ["default", "!{projectRoot}/**/*.spec.ts"]
  },
  "defaultBase": "main"
}

project.json (プロジェクト構成)

{
  "name": "my-app",
  "projectType": "application",
  "targets": {
    "build": {
      "executor": "@nx/next:build",
      "outputs": ["{options.outputPath}"],
      "options": {
        "outputPath": "dist/apps/my-app"
      }
    },
    "serve": {
      "executor": "@nx/next:server",
      "options": {
        "buildTarget": "my-app:build"
      }
    }
  }
}

キャッシュ

ローカルキャッシュ

# キャッシュ可能なターゲットではキャッシュは自動
nx build my-app  # 最初の実行: 実行
nx build my-app  # 2 回目の実行: キャッシュ (即時)

# キャッシュをクリア
nx reset

Nx Cloud (リモートキャッシュ)

# Nx Cloud に接続
npx nx connect

# または手動で追加
nx g @nx/workspace:ci-workflow

# 接続を確認
nx run-many -t build
# "Remote cache hit" を探してください

キャッシュ入力

// project.json または nx.json 内
{
  "targets": {
    "build": {
      "inputs": [
        "default",
        "^production",
        { "externalDependencies": ["next"] }
      ]
    }
  }
}

一般的なパターン

新しい JS/TS アプリの追加

# 1. プラグインを追加 (まだインストールされていない場合)
pnpm nx add @nx/next    # Next.js の場合
pnpm nx add @nx/react   # React の場合
pnpm nx add @nx/node    # Node/Express の場合

# 2. アプリを生成
pnpm nx g @nx/next:app dashboard --directory=apps/dashboard

# 3. グラフで確認
pnpm nx graph --focus=dashboard

# 4. ビルドと提供
pnpm nx build dashboard
pnpm nx serve dashboard

Python アプリの追加 (uv ワークスペース)

Python プロジェクトは、Nx 用の手動の project.json を使用して、uv ワークスペース (JS の pnpm ワークスペースと同様) を使用します。

# 1. ディレクトリを作成して初期化
mkdir -p apps/my-python-app
cd apps/my-python-app
uv init
uv add --group dev pytest ruff mypy
cd ../..

# 2. uv ワークスペースに追加 (ルート pyproject.toml)

ルート pyproject.toml を編集:

[tool.uv.workspace]
members = [
    "apps/panaversity-fs-py",
    "apps/my-python-app",  # ここに新しいプロジェクトを追加
]
# 3. ルートからすべての Python 依存関係を同期
uv sync --extra dev

apps/my-python-app/project.json (Nx 用):

{
  "name": "my-python-app",
  "projectType": "application",
  "targets": {
    "build": {
      "command": "uv build",
      "options": { "cwd": "apps/my-python-app" }
    },
    "test": {
      "command": "uv run --extra dev pytest",
      "options": { "cwd": "apps/my-python-app" }
    },
    "lint": {
      "command": "uv run --extra dev ruff check .",
      "options": { "cwd": "apps/my-python-app" }
    }
  }
}
# 4. Nx がそれを認識することを確認
pnpm nx show projects
pnpm nx graph --focus=my-python-app

# 5. Nx 経由でタスクを実行
pnpm nx test my-python-app

共有 Python ライブラリ

複数の Python アプリがインポートできるライブラリを作成します。

mkdir -p libs/auth-common-py
cd libs/auth-common-py
uv init --lib
cd ../..
# ワークスペースメンバーに追加し、uv sync を実行

依存プロジェクトで参照:

# apps/my-python-app/pyproject.toml
[project]
dependencies = ["auth-common-py"]

[tool.uv.sources]
auth-common-py = { workspace = true }

重要な洞察: uv はワークスペースを介して Python 依存関係を管理し、Nx はタスクをオーケストレートします。ルートに単一の uv.lock が存在します。

共有ライブラリの作成

# JS/TS UI ライブラリ
pnpm nx g @nx/react:lib ui --directory=libs/shared/ui

# JS/TS ユーティリティライブラリ
pnpm nx g @nx/js:lib utils --directory=libs/shared/utils

# ドメインライブラリ
pnpm nx g @nx/js:lib auth --directory=libs/domain/auth

CI パイプライン (GitHub Actions)


name: CI
on: [push, pull_request]

jobs:
  main:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: pnpm/action-setup@v2
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'pnpm'

      - run: pnpm install --frozen-lockfile

      # 影響を受ける範囲のみのビルド
      - run:

(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Nx Monorepo

Overview

This skill provides expert-level capabilities for Nx monorepo management. Nx is the standard build orchestrator for this AI-native platform due to its official MCP server integration.

Why Nx: Official MCP server, TypeScript-native, 5-minute setup, auto-generates CLAUDE.md/AGENTS.md for AI assistants.

MCP Tools Available

nx_docs          - Query Nx documentation
nx_available_plugins - List official Nx plugins (NOT installed by default)

Key Insight: MCP provides documentation lookup. Use Nx CLI for all operations.

Core CLI Commands

Project Graph Analysis

# View interactive project graph
nx graph

# JSON output for programmatic use
nx graph --file=output.json

# Show dependencies of specific project
nx graph --focus=my-app

# Show what depends on a project
nx graph --affected

Affected Detection

# What's affected since main?
nx affected -t build
nx affected -t test
nx affected -t lint

# Compare against specific base
nx affected -t build --base=origin/main --head=HEAD

# Show affected projects only
nx show projects --affected

Running Tasks

# Run task for all projects
nx run-many -t build
nx run-many -t test

# Run for specific projects
nx run-many -t build --projects=app-a,lib-b

# Run with parallelism control
nx run-many -t build --parallel=4

# Single project
nx build my-app
nx test my-lib

Code Generation

# List available generators
nx list @nx/next
nx list @nx/react

# Generate new application
nx g @nx/next:app my-app
nx g @nx/react:app my-frontend

# Generate library
nx g @nx/js:lib shared-utils
nx g @nx/react:lib ui-components

# Dry run (preview)
nx g @nx/next:app my-app --dry-run

Configuration Files

nx.json (Workspace Config)

{
  "targetDefaults": {
    "build": {
      "dependsOn": ["^build"],
      "cache": true
    },
    "test": {
      "cache": true
    },
    "lint": {
      "cache": true
    }
  },
  "namedInputs": {
    "default": ["{projectRoot}/**/*"],
    "production": ["default", "!{projectRoot}/**/*.spec.ts"]
  },
  "defaultBase": "main"
}

project.json (Project Config)

{
  "name": "my-app",
  "projectType": "application",
  "targets": {
    "build": {
      "executor": "@nx/next:build",
      "outputs": ["{options.outputPath}"],
      "options": {
        "outputPath": "dist/apps/my-app"
      }
    },
    "serve": {
      "executor": "@nx/next:server",
      "options": {
        "buildTarget": "my-app:build"
      }
    }
  }
}

Caching

Local Cache

# Cache is automatic for cacheable targets
nx build my-app  # First run: executes
nx build my-app  # Second run: cached (instant)

# Clear cache
nx reset

Nx Cloud (Remote Cache)

# Connect to Nx Cloud
npx nx connect

# Or add manually
nx g @nx/workspace:ci-workflow

# Verify connection
nx run-many -t build
# Look for: "Remote cache hit"

Cache Inputs

// In project.json or nx.json
{
  "targets": {
    "build": {
      "inputs": [
        "default",
        "^production",
        { "externalDependencies": ["next"] }
      ]
    }
  }
}

Common Patterns

Adding a New JS/TS App

# 1. Add plugin (if not already installed)
pnpm nx add @nx/next    # For Next.js
pnpm nx add @nx/react   # For React
pnpm nx add @nx/node    # For Node/Express

# 2. Generate app
pnpm nx g @nx/next:app dashboard --directory=apps/dashboard

# 3. Verify in graph
pnpm nx graph --focus=dashboard

# 4. Build & Serve
pnpm nx build dashboard
pnpm nx serve dashboard

Adding a Python App (uv Workspace)

Python projects use uv workspaces (similar to pnpm workspaces for JS) with manual project.json for Nx:

# 1. Create directory and initialize
mkdir -p apps/my-python-app
cd apps/my-python-app
uv init
uv add --group dev pytest ruff mypy
cd ../..

# 2. Add to uv workspace (root pyproject.toml)

Edit root pyproject.toml:

[tool.uv.workspace]
members = [
    "apps/panaversity-fs-py",
    "apps/my-python-app",  # Add new project here
]
# 3. Sync all Python deps from root
uv sync --extra dev

apps/my-python-app/project.json (for Nx):

{
  "name": "my-python-app",
  "projectType": "application",
  "targets": {
    "build": {
      "command": "uv build",
      "options": { "cwd": "apps/my-python-app" }
    },
    "test": {
      "command": "uv run --extra dev pytest",
      "options": { "cwd": "apps/my-python-app" }
    },
    "lint": {
      "command": "uv run --extra dev ruff check .",
      "options": { "cwd": "apps/my-python-app" }
    }
  }
}
# 4. Verify Nx recognizes it
pnpm nx show projects
pnpm nx graph --focus=my-python-app

# 5. Run tasks via Nx
pnpm nx test my-python-app

Shared Python Libraries

Create libraries that multiple Python apps can import:

mkdir -p libs/auth-common-py
cd libs/auth-common-py
uv init --lib
cd ../..
# Add to workspace members, then uv sync

Reference in dependent projects:

# apps/my-python-app/pyproject.toml
[project]
dependencies = ["auth-common-py"]

[tool.uv.sources]
auth-common-py = { workspace = true }

Key Insight: uv manages Python deps via workspace, Nx orchestrates tasks. Single uv.lock at root.

Creating Shared Libraries

# JS/TS UI library
pnpm nx g @nx/react:lib ui --directory=libs/shared/ui

# JS/TS Utility library
pnpm nx g @nx/js:lib utils --directory=libs/shared/utils

# Domain library
pnpm nx g @nx/js:lib auth --directory=libs/domain/auth

CI Pipeline (GitHub Actions)

name: CI
on: [push, pull_request]

jobs:
  main:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: pnpm/action-setup@v2
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'pnpm'

      - run: pnpm install --frozen-lockfile

      # Affected-only builds
      - run: npx nx affected -t lint build test --base=origin/main

Troubleshooting

"Cannot find project"

# Regenerate project graph
nx reset
nx graph

Cache Not Working

# Verify target is cacheable
cat nx.json | grep -A5 "targetDefaults"

# Check inputs are stable
nx build my-app --verbose

Dependency Issues

# Show project dependencies
nx graph --focus=my-app

# Check for circular deps
nx graph --file=graph.json
# Review edges in JSON

Quick Reference

Task Command
Interactive graph pnpm nx graph
Affected build pnpm nx affected -t build
Run all tests pnpm nx run-many -t test
Generate JS/TS app pnpm nx g @nx/next:app name
Generate JS/TS lib pnpm nx g @nx/js:lib name
Add plugin pnpm nx add @nx/next
Clear cache pnpm nx reset
Show projects pnpm nx show projects
List generators pnpm nx list @nx/next

Python-Specific (uv)

Task Command
Init Python project cd apps/name && uv init
Add runtime dep uv add <package>
Add dev dep uv add --group dev <package>
Sync deps uv sync --extra dev
Run via Nx pnpm nx test my-python-app

Related Skills

  • monorepo-workflow: PR stacking, trunk-based development, code review
  • monorepo-team-lead: CODEOWNERS, human-AI task routing, RFC process

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。