{"id":"41645179-c0c0-4085-aec6-62cd8ef987ae","shortId":"F5FW5y","kind":"skill","title":"nx-workspace-patterns","tagline":"Configure and optimize Nx monorepo workspaces. Use when setting up Nx, configuring project boundaries, optimizing build caching, or implementing affected commands.","description":"# Nx Workspace Patterns\n\nProduction patterns for Nx monorepo management.\n\n## Do not use this skill when\n\n- The task is unrelated to nx workspace patterns\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources/implementation-playbook.md`.\n\n## Use this skill when\n\n- Setting up new Nx workspaces\n- Configuring project boundaries\n- Optimizing CI with affected commands\n- Implementing remote caching\n- Managing dependencies between projects\n- Migrating to Nx\n\n## Core Concepts\n\n### 1. Nx Architecture\n\n```\nworkspace/\n├── apps/              # Deployable applications\n│   ├── web/\n│   └── api/\n├── libs/              # Shared libraries\n│   ├── shared/\n│   │   ├── ui/\n│   │   └── utils/\n│   └── feature/\n│       ├── auth/\n│       └── dashboard/\n├── tools/             # Custom executors/generators\n├── nx.json            # Nx configuration\n└── workspace.json     # Project configuration\n```\n\n### 2. Library Types\n\n| Type | Purpose | Example |\n|------|---------|---------|\n| **feature** | Smart components, business logic | `feature-auth` |\n| **ui** | Presentational components | `ui-buttons` |\n| **data-access** | API calls, state management | `data-access-users` |\n| **util** | Pure functions, helpers | `util-formatting` |\n| **shell** | App bootstrapping | `shell-web` |\n\n## Templates\n\n### Template 1: nx.json Configuration\n\n```json\n{\n  \"$schema\": \"./node_modules/nx/schemas/nx-schema.json\",\n  \"npmScope\": \"myorg\",\n  \"affected\": {\n    \"defaultBase\": \"main\"\n  },\n  \"tasksRunnerOptions\": {\n    \"default\": {\n      \"runner\": \"nx/tasks-runners/default\",\n      \"options\": {\n        \"cacheableOperations\": [\n          \"build\",\n          \"lint\",\n          \"test\",\n          \"e2e\",\n          \"build-storybook\"\n        ],\n        \"parallel\": 3\n      }\n    }\n  },\n  \"targetDefaults\": {\n    \"build\": {\n      \"dependsOn\": [\"^build\"],\n      \"inputs\": [\"production\", \"^production\"],\n      \"cache\": true\n    },\n    \"test\": {\n      \"inputs\": [\"default\", \"^production\", \"{workspaceRoot}/jest.preset.js\"],\n      \"cache\": true\n    },\n    \"lint\": {\n      \"inputs\": [\"default\", \"{workspaceRoot}/.eslintrc.json\"],\n      \"cache\": true\n    },\n    \"e2e\": {\n      \"inputs\": [\"default\", \"^production\"],\n      \"cache\": true\n    }\n  },\n  \"namedInputs\": {\n    \"default\": [\"{projectRoot}/**/*\", \"sharedGlobals\"],\n    \"production\": [\n      \"default\",\n      \"!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)\",\n      \"!{projectRoot}/tsconfig.spec.json\",\n      \"!{projectRoot}/jest.config.[jt]s\",\n      \"!{projectRoot}/.eslintrc.json\"\n    ],\n    \"sharedGlobals\": [\n      \"{workspaceRoot}/babel.config.json\",\n      \"{workspaceRoot}/tsconfig.base.json\"\n    ]\n  },\n  \"generators\": {\n    \"@nx/react\": {\n      \"application\": {\n        \"style\": \"css\",\n        \"linter\": \"eslint\",\n        \"bundler\": \"webpack\"\n      },\n      \"library\": {\n        \"style\": \"css\",\n        \"linter\": \"eslint\"\n      },\n      \"component\": {\n        \"style\": \"css\"\n      }\n    }\n  }\n}\n```\n\n### Template 2: Project Configuration\n\n```json\n// apps/web/project.json\n{\n  \"name\": \"web\",\n  \"$schema\": \"../../node_modules/nx/schemas/project-schema.json\",\n  \"sourceRoot\": \"apps/web/src\",\n  \"projectType\": \"application\",\n  \"tags\": [\"type:app\", \"scope:web\"],\n  \"targets\": {\n    \"build\": {\n      \"executor\": \"@nx/webpack:webpack\",\n      \"outputs\": [\"{options.outputPath}\"],\n      \"defaultConfiguration\": \"production\",\n      \"options\": {\n        \"compiler\": \"babel\",\n        \"outputPath\": \"dist/apps/web\",\n        \"index\": \"apps/web/src/index.html\",\n        \"main\": \"apps/web/src/main.tsx\",\n        \"tsConfig\": \"apps/web/tsconfig.app.json\",\n        \"assets\": [\"apps/web/src/assets\"],\n        \"styles\": [\"apps/web/src/styles.css\"]\n      },\n      \"configurations\": {\n        \"development\": {\n          \"extractLicenses\": false,\n          \"optimization\": false,\n          \"sourceMap\": true\n        },\n        \"production\": {\n          \"optimization\": true,\n          \"outputHashing\": \"all\",\n          \"sourceMap\": false,\n          \"extractLicenses\": true\n        }\n      }\n    },\n    \"serve\": {\n      \"executor\": \"@nx/webpack:dev-server\",\n      \"defaultConfiguration\": \"development\",\n      \"options\": {\n        \"buildTarget\": \"web:build\"\n      },\n      \"configurations\": {\n        \"development\": {\n          \"buildTarget\": \"web:build:development\"\n        },\n        \"production\": {\n          \"buildTarget\": \"web:build:production\"\n        }\n      }\n    },\n    \"test\": {\n      \"executor\": \"@nx/jest:jest\",\n      \"outputs\": [\"{workspaceRoot}/coverage/{projectRoot}\"],\n      \"options\": {\n        \"jestConfig\": \"apps/web/jest.config.ts\",\n        \"passWithNoTests\": true\n      }\n    },\n    \"lint\": {\n      \"executor\": \"@nx/eslint:lint\",\n      \"outputs\": [\"{options.outputFile}\"],\n      \"options\": {\n        \"lintFilePatterns\": [\"apps/web/**/*.{ts,tsx,js,jsx}\"]\n      }\n    }\n  }\n}\n```\n\n### Template 3: Module Boundary Rules\n\n```json\n// .eslintrc.json\n{\n  \"root\": true,\n  \"ignorePatterns\": [\"**/*\"],\n  \"plugins\": [\"@nx\"],\n  \"overrides\": [\n    {\n      \"files\": [\"*.ts\", \"*.tsx\", \"*.js\", \"*.jsx\"],\n      \"rules\": {\n        \"@nx/enforce-module-boundaries\": [\n          \"error\",\n          {\n            \"enforceBuildableLibDependency\": true,\n            \"allow\": [],\n            \"depConstraints\": [\n              {\n                \"sourceTag\": \"type:app\",\n                \"onlyDependOnLibsWithTags\": [\n                  \"type:feature\",\n                  \"type:ui\",\n                  \"type:data-access\",\n                  \"type:util\"\n                ]\n              },\n              {\n                \"sourceTag\": \"type:feature\",\n                \"onlyDependOnLibsWithTags\": [\n                  \"type:ui\",\n                  \"type:data-access\",\n                  \"type:util\"\n                ]\n              },\n              {\n                \"sourceTag\": \"type:ui\",\n                \"onlyDependOnLibsWithTags\": [\"type:ui\", \"type:util\"]\n              },\n              {\n                \"sourceTag\": \"type:data-access\",\n                \"onlyDependOnLibsWithTags\": [\"type:data-access\", \"type:util\"]\n              },\n              {\n                \"sourceTag\": \"type:util\",\n                \"onlyDependOnLibsWithTags\": [\"type:util\"]\n              },\n              {\n                \"sourceTag\": \"scope:web\",\n                \"onlyDependOnLibsWithTags\": [\"scope:web\", \"scope:shared\"]\n              },\n              {\n                \"sourceTag\": \"scope:api\",\n                \"onlyDependOnLibsWithTags\": [\"scope:api\", \"scope:shared\"]\n              },\n              {\n                \"sourceTag\": \"scope:shared\",\n                \"onlyDependOnLibsWithTags\": [\"scope:shared\"]\n              }\n            ]\n          }\n        ]\n      }\n    }\n  ]\n}\n```\n\n### Template 4: Custom Generator\n\n```typescript\n// tools/generators/feature-lib/index.ts\nimport {\n  Tree,\n  formatFiles,\n  generateFiles,\n  joinPathFragments,\n  names,\n  readProjectConfiguration,\n} from '@nx/devkit';\nimport { libraryGenerator } from '@nx/react';\n\ninterface FeatureLibraryGeneratorSchema {\n  name: string;\n  scope: string;\n  directory?: string;\n}\n\nexport default async function featureLibraryGenerator(\n  tree: Tree,\n  options: FeatureLibraryGeneratorSchema\n) {\n  const { name, scope, directory } = options;\n  const projectDirectory = directory\n    ? `${directory}/${name}`\n    : `libs/${scope}/feature-${name}`;\n\n  // Generate base library\n  await libraryGenerator(tree, {\n    name: `feature-${name}`,\n    directory: projectDirectory,\n    tags: `type:feature,scope:${scope}`,\n    style: 'css',\n    skipTsConfig: false,\n    skipFormat: true,\n    unitTestRunner: 'jest',\n    linter: 'eslint',\n  });\n\n  // Add custom files\n  const projectConfig = readProjectConfiguration(tree, `${scope}-feature-${name}`);\n  const projectNames = names(name);\n\n  generateFiles(\n    tree,\n    joinPathFragments(__dirname, 'files'),\n    projectConfig.sourceRoot,\n    {\n      ...projectNames,\n      scope,\n      tmpl: '',\n    }\n  );\n\n  await formatFiles(tree);\n}\n```\n\n### Template 5: CI Configuration with Affected\n\n```yaml\n# .github/workflows/ci.yml\nname: CI\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\nenv:\n  NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}\n\njobs:\n  main:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 20\n          cache: 'npm'\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Derive SHAs for affected commands\n        uses: nrwl/nx-set-shas@v4\n\n      - name: Run affected lint\n        run: npx nx affected -t lint --parallel=3\n\n      - name: Run affected test\n        run: npx nx affected -t test --parallel=3 --configuration=ci\n\n      - name: Run affected build\n        run: npx nx affected -t build --parallel=3\n\n      - name: Run affected e2e\n        run: npx nx affected -t e2e --parallel=1\n```\n\n### Template 6: Remote Caching Setup\n\n```typescript\n// nx.json with Nx Cloud\n{\n  \"tasksRunnerOptions\": {\n    \"default\": {\n      \"runner\": \"nx-cloud\",\n      \"options\": {\n        \"cacheableOperations\": [\"build\", \"lint\", \"test\", \"e2e\"],\n        \"accessToken\": \"your-nx-cloud-token\",\n        \"parallel\": 3,\n        \"cacheDirectory\": \".nx/cache\"\n      }\n    }\n  },\n  \"nxCloudAccessToken\": \"your-nx-cloud-token\"\n}\n\n// Self-hosted cache with S3\n{\n  \"tasksRunnerOptions\": {\n    \"default\": {\n      \"runner\": \"@nx-aws-cache/nx-aws-cache\",\n      \"options\": {\n        \"cacheableOperations\": [\"build\", \"lint\", \"test\"],\n        \"awsRegion\": \"us-east-1\",\n        \"awsBucket\": \"my-nx-cache-bucket\",\n        \"awsProfile\": \"default\"\n      }\n    }\n  }\n}\n```\n\n## Common Commands\n\n```bash\n# Generate new library\nnx g @nx/react:lib feature-auth --directory=libs/web --tags=type:feature,scope:web\n\n# Run affected tests\nnx affected -t test --base=main\n\n# View dependency graph\nnx graph\n\n# Run specific project\nnx build web --configuration=production\n\n# Reset cache\nnx reset\n\n# Run migrations\nnx migrate latest\nnx migrate --run-migrations\n```\n\n## Best Practices\n\n### Do's\n- **Use tags consistently** - Enforce with module boundaries\n- **Enable caching early** - Significant CI savings\n- **Keep libs focused** - Single responsibility\n- **Use generators** - Ensure consistency\n- **Document boundaries** - Help new developers\n\n### Don'ts\n- **Don't create circular deps** - Graph should be acyclic\n- **Don't skip affected** - Test only what changed\n- **Don't ignore boundaries** - Tech debt accumulates\n- **Don't over-granularize** - Balance lib count\n\n## Resources\n\n- [Nx Documentation](https://nx.dev/getting-started/intro)\n- [Module Boundaries](https://nx.dev/core-features/enforce-module-boundaries)\n- [Nx Cloud](https://nx.app/)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["workspace","patterns","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-nx-workspace-patterns","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/nx-workspace-patterns","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (11,209 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T06:51:39.152Z","embedding":null,"createdAt":"2026-04-18T21:41:32.298Z","updatedAt":"2026-04-23T06:51:39.152Z","lastSeenAt":"2026-04-23T06:51:39.152Z","tsv":"'/)':921 '/../node_modules/nx/schemas/project-schema.json':295 '/.eslintrc.json':234,263 '/babel.config.json':266 '/core-features/enforce-module-boundaries)':916 '/coverage':375 '/feature-':542 '/getting-started/intro)':911 '/jest.config':259 '/jest.preset.js':227 '/node_modules/nx/schemas/nx-schema.json':192 '/nx-aws-cache':766 '/tsconfig.base.json':268 '/tsconfig.spec.json':257 '0':639 '1':114,187,714,776 '2':141,287 '20':647 '3':212,396,676,688,702,744 '4':495 '5':597 '6':716 'access':163,170,431,443,458,463,617,621 'accesstoken':737 'accumul':897 'action':74 'actions/checkout':633 'actions/setup-node':641 'acycl':882 'add':570 'affect':24,100,195,601,660,667,672,679,684,693,698,705,710,806,809,886 'allow':418 'api':122,164,482,485 'app':118,180,302,422 'appli':66 'applic':120,271,299 'apps/web':390 'apps/web/jest.config.ts':379 'apps/web/project.json':291 'apps/web/src':297 'apps/web/src/assets':326 'apps/web/src/index.html':320 'apps/web/src/main.tsx':322 'apps/web/src/styles.css':328 'apps/web/tsconfig.app.json':324 'architectur':116 'ask':955 'asset':325 'async':523 'auth':130,154,797 'aw':764 'await':547,593 'awsbucket':777 'awsprofil':783 'awsregion':772 'babel':316 'balanc':903 'base':545,812 'bash':787 'best':68,841 'bootstrap':181 'boundari':18,96,398,851,868,894,913,963 'branch':608,612 'bucket':782 'build':20,204,209,214,216,306,357,362,367,694,700,733,769,823 'build-storybook':208 'buildtarget':355,360,365 'bundler':276 'busi':150 'button':160 'cach':21,104,220,228,235,241,648,718,756,765,781,828,853 'cacheableoper':203,732,768 'cachedirectori':745 'call':165 'chang':890 'ci':98,598,605,655,690,856 'circular':877 'clarif':957 'clarifi':60 'clear':930 'cloud':616,620,724,730,741,751,918 'command':25,101,661,786 'common':785 'compil':315 'compon':149,157,283 'concept':113 'configur':5,16,94,137,140,189,289,329,358,599,689,825 'consist':847,866 'const':530,535,573,580 'constraint':62 'core':112 'count':905 'creat':876 'criteria':966 'css':273,280,285,561 'custom':133,496,571 'dashboard':131 'data':162,169,430,442,457,462 'data-access':161,429,441,456,461 'data-access-us':168 'debt':896 'default':199,224,232,239,244,248,522,726,760,784 'defaultbas':196 'defaultconfigur':312,352 'dep':878 'depconstraint':419 'depend':106,652,815 'dependson':215 'deploy':119 'depth':638 'deriv':657 'describ':934 'detail':79 'dev':350 'dev-serv':349 'develop':330,353,359,363,871 'differ':52 'directori':519,533,537,538,553,798 'dirnam':587 'dist/apps/web':318 'document':867,908 'domain':53 'e2e':207,237,706,712,736 'earli':854 'east':775 'enabl':852 'enforc':848 'enforcebuildablelibdepend':416 'ensur':865 'env':614 'environ':946 'environment-specif':945 'error':415 'eslint':275,282,569 'eslintrc.json':401 'exampl':80,146 'executor':307,347,370,383 'executors/generators':134 'expert':951 'export':521 'extractlicens':331,344 'fals':332,334,343,563 'featur':129,147,153,425,436,551,557,578,796,802 'feature-auth':152,795 'featurelibrarygener':525 'featurelibrarygeneratorschema':514,529 'fetch':637 'fetch-depth':636 'file':408,572,588 'focus':860 'format':178 'formatfil':502,594 'function':174,524 'g':792 'generat':269,497,544,788,864 'generatefil':503,584 'github/workflows/ci.yml':603 'goal':61 'granular':902 'graph':816,818,879 'help':869 'helper':175 'host':755 'ignor':893 'ignorepattern':404 'implement':23,102 'import':500,509 'index':319 'input':65,217,223,231,238,960 'instal':651 'instruct':59 'interfac':513 'jest':372,567 'jestconfig':378 'job':623 'joinpathfrag':504,586 'js':393,411 'json':190,290,400 'jsx':394,412 'jt':252,260 'keep':858 'latest':630,835 'lib':123,540,794,859,904 'librari':125,142,278,546,790 'librarygener':510,548 'libs/web':799 'limit':922 'lint':205,230,382,385,668,674,734,770 'linter':274,281,568 'lintfilepattern':389 'logic':151 'main':197,321,609,613,624,813 'manag':34,105,167 'match':931 'migrat':109,832,834,837,840 'miss':968 'modul':397,850,912 'monorepo':9,33 'my-nx-cache-bucket':778 'myorg':194 'name':292,505,515,531,539,543,550,552,579,582,583,604,650,656,665,677,691,703 'namedinput':243 'need':50 'new':91,789,870 'node':645 'node-vers':644 'npm':649,654 'npmscope':193 'npx':670,682,696,708 'nrwl/nx-set-shas':663 'nx':2,8,15,26,32,46,92,111,115,136,406,615,671,683,697,709,723,729,740,750,763,780,791,808,817,822,829,833,836,907,917 'nx-aws-cach':762 'nx-cloud':728 'nx-workspace-pattern':1 'nx.app':920 'nx.app/)':919 'nx.dev':910,915 'nx.dev/core-features/enforce-module-boundaries)':914 'nx.dev/getting-started/intro)':909 'nx.json':135,188,721 'nx/cache':746 'nx/devkit':508 'nx/enforce-module-boundaries':414 'nx/eslint':384 'nx/jest':371 'nx/react':270,512,793 'nx/tasks-runners/default':201 'nx/webpack':308,348 'nxcloudaccesstoken':747 'onlydependonlibswithtag':423,437,449,459,469,475,483,491 'open':83 'optim':7,19,97,333,338 'option':202,314,354,377,388,528,534,731,767 'options.outputfile':387 'options.outputpath':311 'outcom':72 'output':310,373,386,940 'outputhash':340 'outputpath':317 'outsid':56 'over-granular':900 'overrid':407 'parallel':211,675,687,701,713,743 'passwithnotest':380 'pattern':4,28,30,48 'permiss':961 'plugin':405 'practic':69,842 'present':156 'product':29,218,219,225,240,247,313,337,364,368,826 'project':17,95,108,139,288,821 'projectconfig':574 'projectconfig.sourceroot':589 'projectdirectori':536,554 'projectnam':581,590 'projectroot':245,249,256,258,262,376 'projecttyp':298 'provid':73 'pull':610 'pure':173 'purpos':145 'push':607 'readprojectconfigur':506,575 'relev':67 'remot':103,717 'request':611 'requir':64,82,959 'reset':827,830 'resourc':906 'resources/implementation-playbook.md':84 'respons':862 'review':952 'root':402 'rule':399,413 'run':626,653,666,669,678,681,692,695,704,707,805,819,831,839 'run-migr':838 'runner':200,727,761 'runs-on':625 's3':758 'safeti':962 'save':857 'schema':191,294 'scope':58,303,473,476,478,481,484,486,489,492,517,532,541,558,559,577,591,803,933 'secrets.nx':619 'self':754 'self-host':753 'serv':346 'server':351 'set':13,89 'setup':719 'share':124,126,479,487,490,493 'sharedglob':246,264 'shas':658 'shell':179,183 'shell-web':182 'signific':855 'singl':861 'skill':39,87,925 'skill-nx-workspace-patterns' 'skip':885 'skipformat':564 'skiptsconfig':562 'smart':148 'snap':255 'source-sickn33' 'sourcemap':335,342 'sourceroot':296 'sourcetag':420,434,446,454,466,472,480,488 'spec':250 'specif':820,947 'state':166 'step':75,631 'stop':953 'storybook':210 'string':516,518,520 'style':272,279,284,327,560 'substitut':943 'success':965 'tag':300,555,800,846 'target':305 'targetdefault':213 'task':42,929 'tasksrunneropt':198,725,759 'tech':895 'templat':185,186,286,395,494,596,715 'test':206,222,251,369,680,686,735,771,807,811,887,949 'tmpl':592 'token':618,622,742,752 'tool':55,132 'tools/generators/feature-lib/index.ts':499 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':938 'tree':501,526,527,549,576,585,595 'true':221,229,236,242,336,339,345,381,403,417,565 'ts':391,409,873 'tsconfig':323 'tsx':392,410 'type':143,144,301,421,424,426,428,432,435,438,440,444,447,450,452,455,460,464,467,470,556,801 'typescript':498,720 'ubuntu':629 'ubuntu-latest':628 'ui':127,155,159,427,439,448,451 'ui-button':158 'unittestrunn':566 'unrel':44 'us':774 'us-east':773 'use':11,37,85,632,640,662,845,863,923 'user':171 'util':128,172,177,433,445,453,465,468,471 'util-format':176 'v4':634,642,664 'valid':71,948 'verif':77 'version':646 'view':814 'web':121,184,293,304,356,361,366,474,477,804,824 'webpack':277,309 'workspac':3,10,27,47,93,117 'workspace.json':138 'workspaceroot':226,233,265,267,374 'x':254 'yaml':602 'your-nx-cloud-token':738,748","prices":[{"id":"217ed2bb-3ba6-4fdb-b606-eef730281603","listingId":"41645179-c0c0-4085-aec6-62cd8ef987ae","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:41:32.298Z"}],"sources":[{"listingId":"41645179-c0c0-4085-aec6-62cd8ef987ae","source":"github","sourceId":"sickn33/antigravity-awesome-skills/nx-workspace-patterns","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/nx-workspace-patterns","isPrimary":false,"firstSeenAt":"2026-04-18T21:41:32.298Z","lastSeenAt":"2026-04-23T06:51:39.152Z"}],"details":{"listingId":"41645179-c0c0-4085-aec6-62cd8ef987ae","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"nx-workspace-patterns","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"ebb86d641942b75a6a9a70ed274b9d82ee058a12","skill_md_path":"skills/nx-workspace-patterns/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/nx-workspace-patterns"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"nx-workspace-patterns","description":"Configure and optimize Nx monorepo workspaces. Use when setting up Nx, configuring project boundaries, optimizing build caching, or implementing affected commands."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/nx-workspace-patterns"},"updatedAt":"2026-04-23T06:51:39.152Z"}}