Monorepo architecture and management -- Turborepo, Nx, Lerna, Bazel, boundaries, caching.
From godmodenpx claudepluginhub arbazkhan971/godmodeThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
/godmode:monorepo, "monorepo", "workspace setup"ls turbo.json nx.json lerna.json \
pnpm-workspace.yaml 2>/dev/null
find . -name "package.json" -maxdepth 3 | wc -l
Packages: <N> | Languages: <list>
Build tool: <current|none>
Package manager: <npm|pnpm|yarn|bun>
CI time: <N min> full / <N min> affected
Boundary violations: <N> | Circular deps: <N>
Turborepo: zero-config caching, simple. JS/TS.
Learning: LOW.
Nx: rich plugins, codegen, dep graph UI.
Enterprise, large. Learning: MEDIUM.
Lerna: publishing workflow, changelogs.
npm package authors. Learning: LOW.
Bazel: language-agnostic, hermetic.
Google-scale. Learning: HIGH.
Rush: strict dep management, phantom prevention.
Learning: MEDIUM-HIGH.
IF multi-language: Bazel or Nx custom executors. IF prefer minimal config: Turborepo + pnpm. IF publishing npm packages: Lerna + pnpm.
<repo>/
apps/ # Deployable applications
packages/ # Shared libraries
tools/ # Build tools, scripts
package.json, turbo.json/nx.json
Naming: @<org>/<package>, lowercase kebab-case.
Apps: "private": true. Packages: publishable.
npx turbo run build --filter=...[origin/main]
npx nx affected --target=build --base=origin/main
Remote caching: Turborepo (Vercel) or Nx Cloud. Impact: 15-min build -> 30 seconds with cache hit.
Visualize: turbo run build --graph or npx nx graph.
Fix: circular deps -> extract shared package.
Hub packages (>5 dependents) -> split.
Orphan packages (0 dependents) -> remove.
Deep chains (4+ levels) -> flatten.
Centralize in packages/config/: TypeScript base,
ESLint, Prettier. All packages extend shared config.
Append .godmode/monorepo-results.tsv:
timestamp action packages boundary_violations ci_time_min status
KEEP if: build passes AND violations = 0
AND circular deps = 0.
DISCARD if: build fails OR new violation
OR new circular dep.
STOP when ALL of:
- Orchestrator configured
- Zero violations and circular deps
- Remote caching enabled
- Selective builds in CI
- Affected-only CI < 3 min
On failure: git reset --hard HEAD~1. Never pause.
| Failure | Action |
|---|---|
| Circular dep | Extract shared into new package |
| CI too slow | Verify selective builds, check cache |
| Boundary violation | Extract to packages/ library |
| New package fails | Verify workspace config, install |