Monorepo Standards
SkillDocs & knowledgeMonorepo 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Monorepo Standards skill
What this skill tells your AI
The instructions your AI receives, as published by neverinfamous/memory-journal-mcp in skills/monorepo/SKILL.md and read by ahel’s review.
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.
Signals
- GitHub stars
- 20
- Forks
- 5
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
monorepo-neverinfamous- Source
- github.com/neverinfamous/memory-journal-mcp