Monorepo workflows
Manage monorepos efficiently with consistent build tooling, scoped changes, and dependency hygiene. Use when working in or setting up a monorepo with multiple packages or applications.From its SKILL.md
npx -y skills add agent-packs/registry --skill monorepo-workflowsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.1 KB, 651 tokens by cl100k_base, as published. Nobody here has run it
Monorepo Workflows
A monorepo scales when tooling enforces boundaries and CI only builds what changed.
Tooling Choice
- Turborepo — JS/TS, simple config, excellent remote caching. Best default for most teams.
- Nx — JS/TS/Go/Java, opinionated generator-based workflow, project graph visualization.
- Bazel — Polyglot, deterministic builds, scales to very large repos. High setup cost.
- Pants — Python/Java/Go, fine-grained dependency tracking.
- Choose one orchestrator; mixing two creates conflicting task graphs.
Version Policy
- Lockstep: single root
package.json+ unified lockfile. All packages share one version. Simple but forces coordinated releases. - Independent: each package owns its version and changelog. Requires a release tool (Changesets, semantic-release, Nx Release).
- Never mix both strategies in the same repo — it creates invisible coupling.
Task Graph and Caching
- Define the task dependency graph explicitly:
"dependsOn": ["^build"]in Turborepo,targetDefaultsin Nx. - Enable remote caching in CI to share artifacts across branches and runners.
- Mark tasks
cache: falseonly for true side effects: deploy, publish, external API calls. - Validate caching: run
turbo buildtwice; the second run must be 100% cached with no outputs re-executed.
Scoped Changes
- Before starting any change, identify affected packages:
turbo run build --filter=...[HEAD^1]ornx affected. - Never change a shared package without running tests for all its dependents.
- Use changesets to manage version bumps: one changeset file per logical change, merged with the PR.
Workspace Hygiene
- Hoist shared devDependencies to the root. Only keep runtime deps that differ per package local.
- Enforce internal import paths with ESLint (
import/no-internal-modules) or TypeScript path aliases — no reaching into a sibling'ssrc/directly. - Ban circular dependencies: run
madge --circularor the Nx graph checker in CI on every PR. - Keep workspace config (
pnpm-workspace.yaml,workspacesinpackage.json) in sync with actual package directories.
CI Strategy
- PRs: build and test only affected packages using the git diff range filter.
- Trunk merges: build and test all packages.
- Run linting and type-checking before expensive build and test steps (fail fast).
- Cache node_modules and build artifacts between runs using the remote cache.
Checklist
- Task graph is defined with
"dependsOn": ["^build"]forbuildtasks. - Remote cache is configured and verified (second run is 100% cached).
- No circular dependencies between packages.
- Changeset or release tool configured for versioning.
- CI runs affected-only on PRs and full build on trunk.
- No cross-package
src/imports — only through declared exports.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most architecture codebase skills give in 651 tokens
Counted across 811 of the 1,134 authors here whose files we hold, read 2026-08-07
- Ask the user which candidate to explorein 45 of 811, across 15 files
- Apply the deletion test to suspected shallow modulesin 43 of 811, across 15 files
- Read any relevant architecture decision records firstin 31 of 811, across 8 files
- Use exact glossary terms in every suggestionin 30 of 811, across 10 files
- Accept dependencies instead of creating themin 24 of 811, across 5 files
- Include before and after visualisations for each candidatein 24 of 811, across 5 files
- Read the domain glossary before exploringin 24 of 811, across 6 files
- Return results instead of producing side effectsin 23 of 811, across 4 files
- Explore the codebase for shallow modules and frictionin 23 of 811, across 3 files
- Introduce seams only where things varyin 22 of 811, across 3 files
- Reduce the number of methodsin 21 of 811, across 2 files
- Design deep modules with small interfacesin 21 of 811, across 3 files
Said here and by no other author read
- Choose one orchestrator
- Define the task dependency graph explicitly
- Enable remote caching in CI
- Identify affected packages before starting any change
- Enforce internal import paths
- Build and test only affected packages on pull requests
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.