Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Configure, explore, and optimize Nx monorepo workspaces. Use when setting up Nx, exploring workspace structure, configuring project boundaries, analyzing affected projects, optimizing build caching, or implementing CI/CD with affected commands. Keywords — nx, monorepo, workspace, projects, targets, affected. Do NOT use for running tasks (use nx-run-tasks) or code generation with generators (use nx-generate).
.claude/skills/tech-leads-club-nx-workspace/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 35% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 25% | 0% |
Exploring workspace: nx show projects and nx show project <name> --json Running tasks: nx <target> <project> (e.g., nx build my-app) Affected analysis: nx show projects --affected or nx affected -t <target>
> Note: Prefix commands with npx/pnpx/yarn if nx isn't installed globally.
bash# List all projects nx show projects # Filter by type, pattern, or target nx show projects --type app nx show projects --projects "apps/*" nx show projects --withTarget build # Find affected projects nx show projects --affected --base=main
Critical: Always use nx show project <name> --json for full resolved configuration. Do NOT read project.json directly - it contains only partial configuration.
bash# Get full configuration nx show project my-app --json # Extract targets nx show project my-app --json | jq '.targets | keys'
Configuration schemas:
node_modules/nx/schemas/nx-schema.jsonnode_modules/nx/schemas/project-schema.jsonbash# Run specific project nx build web --configuration=production # Run affected nx affected -t test --base=main # View dependency graph nx graph
workspace/
├── apps/ # Deployable applications
├── libs/ # Shared libraries
│ ├── shared/ # Shared across scopes
│ └── feature/ # Feature-specific
├── nx.json # Workspace configuration
└── tools/ # Custom executors/generators| Type | Purpose | Example | | --------------- | -------------------------------- | ------------------- | | feature | Business logic, smart components | feature-auth | | ui | Presentational components | ui-buttons | | data-access | API calls, state management | data-access-users | | util | Pure functions, helpers | util-formatting |
Configuration: See reference/configuration.md for:
Commands: See reference/commands.md for:
CI/CD: See reference/ci-cd.md for:
Best Practices: See reference/best-practices.md for:
"What's in this workspace?"
bashnx show projects --type app # List applications nx show projects --type lib # List libraries
"How do I run project X?"
bashnx show project X --json | jq '.targets | keys'
"What changed?"
bashnx show projects --affected --base=main
nx show project <name> --json, not project.jsonfetch-depth: 0 in CI)nx resetFor detailed troubleshooting, see reference/best-practices.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 11,496 | 6,402 | -44% | 1 | 1 | 0% | 2,011 | 1,977 | -2% | 0 | 0 | — |
case-02 | pass→pass | 8,670 | 4,668 | -46% | 1 | 1 | 0% | 1,464 | 1,832 | +25% | 0 | 0 | — |
case-03 | fail→pass | 7,262 | 3,502 | -52% | 1 | 1 | 0% | 1,275 | 1,480 | +16% | 0 | 0 | — |
case-04 | pass→pass | 3,210 | 2,763 | -14% | 1 | 1 | 0% | 582 | 1,366 | +135% | 0 | 0 | — |
case-05 | fail→pass | 7,218 | 3,477 | -52% | 1 | 1 | 0% | 1,201 | 1,484 | +24% | 0 | 0 | — |
case-06 | pass→pass | 6,806 | 3,167 | -53% | 1 | 1 | 0% | 1,248 | 1,354 | +8% | 0 | 0 | — |
case-07 | pass→pass | 4,289 | 3,253 | -24% | 1 | 1 | 0% | 777 | 1,373 | +77% | 0 | 0 | — |
case-08 | pass→pass | 8,225 | 4,393 | -47% | 1 | 1 | 0% | 1,353 | 1,643 | +21% | 0 | 0 | — |
case-09 | pass→pass | 6,807 | 4,508 | -34% | 1 | 1 | 0% | 1,098 | 1,649 | +50% | 0 | 0 | — |
case-10 | pass→pass | 14,479 | 9,913 | -32% | 1 | 1 | 0% | 2,635 | 2,783 | +6% | 0 | 0 | — |
case-11 | pass→pass | 7,833 | 3,417 | -56% | 1 | 1 | 0% | 1,329 | 1,507 | +13% | 0 | 0 | — |
case-12 | pass→pass | 8,530 | 5,076 | -40% | 1 | 1 | 0% | 1,390 | 1,777 | +28% | 0 | 0 | — |
case-13 | pass→pass | 7,167 | 6,740 | -6% | 1 | 1 | 0% | 1,307 | 1,985 | +52% | 0 | 0 | — |
case-14 | pass→pass | 4,751 | 3,243 | -32% | 1 | 1 | 0% | 863 | 1,409 | +63% | 0 | 0 | — |
case-15 | pass→pass | 6,021 | 1,803 | -70% | 1 | 1 | 0% | 1,045 | 1,204 | +15% | 0 | 0 | — |
case-16 | pass→pass | 4,891 | 63,400 | +1196% | 1 | 1 | 0% | 907 | 1,177 | +30% | 0 | 0 | — |
case-17 | pass→pass | 7,840 | 2,376 | -70% | 1 | 1 | 0% | 1,375 | 1,250 | -9% | 0 | 0 | — |
case-18 | pass→pass | 9,214 | 8,334 | -10% | 1 | 1 | 0% | 1,798 | 2,529 | +41% | 0 | 0 | — |
case-19 | pass→pass | 8,760 | 6,685 | -24% | 1 | 1 | 0% | 1,545 | 2,095 | +36% | 0 | 0 | — |
case-20 | pass→pass | 5,783 | 4,840 | -16% | 1 | 1 | 0% | 864 | 1,708 | +98% | 0 | 0 | — |
case-21 | pass→pass | 7,322 | 5,455 | -25% | 1 | 1 | 0% | 1,299 | 1,922 | +48% | 0 | 0 | — |
case-22 | pass→fail | 9,170 | 7,400 | -19% | 1 | 1 | 0% | 1,604 | 2,172 | +35% | 0 | 0 | — |
case-23 | pass→pass | 9,211 | 7,012 | -24% | 1 | 1 | 0% | 1,612 | 2,185 | +36% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of -100 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.