monorepo
Configuration standards for monorepo projects utilizing pnpm workspaces and Turborepo.
Install
mkdir -p .claude/skills/monorepo-neverinfamous && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16680" && unzip -o skill.zip -d .claude/skills/monorepo-neverinfamous && rm skill.zipInstalls to .claude/skills/monorepo-neverinfamous
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Monorepo architecture and configuration standards. Use when working with Turborepo, pnpm workspaces, npm workspaces, or configuring shared packages, tsconfig bases, and internal dependencies. NOT for generic package management or single-package repositories. Require explicit monorepo context.Key capabilities
- →Define pnpm workspaces at the root
- →Link internal packages using workspace:* protocol
- →Define Turborepo pipeline dependencies
- →Configure Turborepo cache outputs
- →Centralize shared configurations like TSConfig and ESLint
How it works
This skill defines standards for monorepo architecture, including workspace configuration with pnpm, pipeline definition with Turborepo, and shared configurations for TSConfig and ESLint.
Inputs & outputs
When to use monorepo
- →Configure pnpm workspaces
- →Set up Turborepo pipeline
- →Manage internal dependencies
- →Share tsconfig across packages
About this skill
Monorepo Standards
Monorepos organize multiple applications and packages in a single repository, but require strict configuration to avoid dependency hell and build-time bottlenecks.
1. Workspace Configuration (pnpm workspaces)
- Root Definition: Define the
pnpm-workspace.yamlexplicitly at the root, separating applications (apps/*) from internal libraries (packages/*). - Internal Dependencies: Link internal packages using the
workspace:*protocol. This ensures that the package manager resolves to the local source rather than attempting to fetch from the npm registry.
{
"dependencies": {
"@my-org/ui": "workspace:*",
"@my-org/tsconfig": "workspace:*"
}
}
2. Turborepo Configuration
- Pipeline Definition: Define dependencies in
turbo.json. Ensurebuilddepends on^build(meaning a package's build step waits for its dependencies to build first). - Caching: Ensure
outputsare correctly defined for cache hits (e.g.,.next/**,dist/**). - Dev Tasks: The
devtask should typically be configured aspersistent: truesince it starts a long-running server.
{
"$schema": "https://turbo.build/schema.json",
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"dev": {
"cache": false,
"persistent": true
}
}
}
3. Shared Configurations
- Shared TSConfig: Create a
packages/tsconfigcontainingbase.json,nextjs.json, andreact-library.json. Applications should extend these rather than duplicating compiler options. - Shared ESLint/Prettier: Centralize linting rules in a
packages/eslint-configworkspace to guarantee consistency across all apps. - Entrypoints: Use
"main","module", and"types"fields inpackage.jsoncorrectly for shared packages. Alternatively, rely on modern bundlers and Next.js transpile packages to consume raw TypeScript (src/index.ts).
4. CI/CD Integration
- Remote Caching: Always enable Vercel Remote Caching or an equivalent remote cache in CI to drastically reduce build times for unmodified packages.
- Affected Builds: Use
--filtercommands (turbo run build --filter=...[origin/main]) to only test and build packages that changed in the current PR.
When not to use it
- →For generic package management
- →For single-package repositories
- →When explicit monorepo context is not required
Limitations
- →Not for generic package management.
- →Not for single-package repositories.
- →Requires explicit monorepo context.
How it compares
This approach standardizes monorepo setup with specific tools and configurations, unlike ad-hoc repository management that can lead to dependency and build issues.
Compared to similar skills
monorepo side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| monorepo (this skill) | 0 | 2mo | No flags | Intermediate |
| turborepo | 61 | 2mo | Review | Intermediate |
| react-component-patterns | 3 | 1mo | No flags | Intermediate |
| vercel-architecture-variants | 0 | 1mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
turborepo
vercel
Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines, dependsOn, caching, remote cache, the "turbo" CLI, --filter, --affected, CI optimization, environment variables, internal packages, monorepo structure/best practices, and boundaries. Use when user: configures tasks/workflows/pipelines, creates packages, sets up monorepo, shares code between apps, runs changed/affected packages, debugs cache, or has apps/packages directories.
react-component-patterns
HoangNguyen0403
Modern React component architecture and composition patterns.
vercel-architecture-variants
jeremylongshore
Execute choose and implement Vercel validated architecture blueprints for different scales. Use when designing new Vercel integrations, choosing between monolith/service/microservice architectures, or planning migration paths for Vercel applications. Trigger with phrases like "vercel architecture", "vercel blueprint", "how to structure vercel", "vercel project layout", "vercel microservice".
pnpm
valibali
Use when managing Node.js dependencies with pnpm - provides workspace setup, catalogs, CLI commands, overrides, and CI configuration
branch-sync
ChenyCHENYU
Use when: upgrading dependencies, adding common features, or when the user explicitly requests branch sync check. Triggers on: 分支同步, branch sync, 版本升级, dependency upgrade, 同步更新, sync branches, 依赖更新, 通用功能.
ai-code
arcasilesgroup
Writes production code that satisfies stack-context standards on the first pass: interface-first design, backward-compatibility checks, lightweight self-review. Trigger for 'implement this', 'write the code for', 'add X to Y', 'build this function', 'make this work'. Not for tests; use /ai-test inst