Provides comprehensive knowledge about moonrepo/moon for monorepo management and task running. Use when user asks about moon configuration, workspace setup, task definitions, CI/CD integration, proto toolchain, caching, optimization, or migration from other tools. Triggers on "moon", "moonrepo", "monorepo with moon", ".moon/", "moon.yml", "workspace.yml", "proto toolchain", "moon task", "moon ci".
Provides comprehensive knowledge about moonrepo/moon for monorepo management and task running.
npx claudepluginhub maxnoller/claude-code-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
examples/moon.ymlexamples/tasks.ymlexamples/toolchain.ymlexamples/workspace.ymlreferences/ci-examples.mdreferences/migration-makefile.mdreferences/migration-npm.mdreferences/migration-precommit.mdreferences/migration-turbo.mdreferences/project-config.mdreferences/task-config.mdreferences/workspace-config.mdMoon is a build system and task runner for monorepos (and single projects) written in Rust. It emphasizes developer experience, performance through smart caching, and CI/CD optimization.
The workspace root is denoted by the .moon directory:
project-root/
├── .moon/ # Workspace root marker
│ ├── workspace.yml # Workspace configuration
│ ├── toolchain.yml # Toolchain/proto configuration
│ └── tasks.yml # Inherited tasks for all projects (optional)
│ └── tasks/ # Language/type-specific inherited tasks
│ ├── node.yml
│ └── python.yml
├── .prototools # Proto version pinning (optional)
├── apps/
│ └── web/
│ └── moon.yml # Project-specific config
└── packages/
└── shared/
└── moon.yml
.moon/workspace.yml - Workspace-wide settings:
projects globs).moon/toolchain.yml - Language toolchains via proto:
.moon/tasks.yml - Inherited tasks for ALL projects:
moon.yml - Project-specific configuration:
dependsOn)Tasks are defined with these key properties:
tasks:
build:
command: 'vite build'
inputs:
- 'src/**/*'
- 'package.json'
- 'vite.config.ts'
outputs:
- 'dist'
deps:
- '^:build' # All dependencies' build tasks
- 'shared:codegen' # Specific project task
options:
cache: true # Enable caching (default)
runInCI: true # Run in CI (default)
persistent: false # For long-running tasks like dev servers
Inputs - Files that affect the task hash:
src/**/*.ts, !**/*.test.tsOutputs - Files created by the task:
dist, buildDependencies - Tasks that must run first:
^:taskname - Same task in all project dependencies~:taskname - Same task in the current projectproject:taskname - Specific project's taskUse presets for common task patterns:
tasks:
dev:
command: 'vite dev'
preset: 'server' # Disables cache, streams output, persistent
watch:
command: 'vitest --watch'
preset: 'watcher' # Similar to server preset
Define reusable file patterns in .moon/tasks.yml:
fileGroups:
sources:
- 'src/**/*'
tests:
- 'tests/**/*'
- '**/*.test.ts'
configs:
- '*.config.{js,ts}'
- 'package.json'
Use in tasks:
tasks:
test:
command: 'vitest'
inputs:
- '@group(sources)'
- '@group(tests)'
Moon uses proto for toolchain management. Configure in .moon/toolchain.yml:
# Node.js with pnpm
node:
version: '20.10.0'
packageManager: 'pnpm'
pnpm:
version: '8.15.0'
# Or use .prototools versions
node:
version: 'inherit'
Create .prototools at workspace root:
node = "20.10.0"
pnpm = "8.15.0"
python = "3.12.0"
name: CI
on: [push, pull_request]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for affected detection
- uses: moonrepo/setup-toolchain@v0
with:
auto-install: true
- run: moon ci
Parallelization with matrix:
jobs:
ci:
strategy:
matrix:
index: [0, 1, 2, 3]
steps:
# ... setup ...
- run: moon ci --job ${{ matrix.index }} --jobTotal 4
Split by target type:
jobs:
build:
steps:
- run: moon ci :build
test:
steps:
- run: moon ci :test :lint
stages:
- ci
moon:
stage: ci
image: node:20
before_script:
- curl -fsSL https://moonrepo.dev/install/moon.sh | bash
script:
- moon ci
Configure git hooks in .moon/workspace.yml:
vcs:
manager: git
defaultBranch: main
hooks:
pre-commit:
- 'moon run :lint :format --affected --status=staged'
commit-msg:
- 'moon run :commitlint -- $ARG1'
syncHooks: true # Auto-sync hooks for all contributors
Sync hooks manually: moon sync hooks
Clean hooks: moon sync hooks --clean
^:task for dependency graph traversaloptional: true for soft dependenciesMoon only runs tasks for projects affected by changes:
moon run :test --affected # Affected since default branch
moon run :test --affected --status=staged # Only staged files
moon ci # Automatic affected detection
# Run tasks
moon run project:task
moon run :task # All projects with this task
moon run project:task1 project:task2
# Check workspace
moon check # Validate configs
moon project project-name # Show project info
moon project-graph # Visualize project graph
moon task-graph # Visualize task graph
# CI
moon ci # Run affected tasks
moon ci :build :test # Specific task types
# Sync
moon sync # Sync all
moon sync hooks # Sync VCS hooks
For detailed configuration options:
references/workspace-config.md for workspace.yml optionsreferences/project-config.md for moon.yml optionsreferences/task-config.md for task configuration detailsreferences/ci-examples.md for CI/CD configurationsFor migration guides:
references/migration-npm.md for npm scripts migrationreferences/migration-turbo.md for Turborepo migrationThis skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.
UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn/ui MCP for component search and examples.