[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nx-link-workspace-packages":3,"mdc--ba0myy-key":31,"related-org-nx-link-workspace-packages":1030,"related-repo-nx-link-workspace-packages":1123},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":29,"mdContent":30},"link-workspace-packages","link monorepo workspace packages","Link workspace packages in monorepos (npm, yarn, pnpm, bun). USE WHEN: (1) you just created or generated new packages and need to wire up their dependencies, (2) user imports from a sibling package and needs to add it as a dependency, (3) you get resolution errors for workspace packages (@org\u002F*) like \"cannot find module\", \"failed to resolve import\", \"TS2307\", or \"cannot resolve\". DO NOT patch around with tsconfig paths or manual package.json edits - use the package manager's workspace commands to fix actual linking.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"nx","Nx","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnx.jpg","nrwl",[13,17,20],{"name":14,"slug":15,"type":16},"Configuration","configuration","tag",{"name":18,"slug":19,"type":16},"Engineering","engineering",{"name":9,"slug":8,"type":16},26,"https:\u002F\u002Fgithub.com\u002Fnrwl\u002Fnx-ai-agents-config","2026-07-13T06:10:46.151946",null,4,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":24},[],"https:\u002F\u002Fgithub.com\u002Fnrwl\u002Fnx-ai-agents-config\u002Ftree\u002FHEAD\u002Fskills\u002Flink-workspace-packages","---\nname: link-workspace-packages\ndescription: 'Link workspace packages in monorepos (npm, yarn, pnpm, bun). USE WHEN: (1) you just created or generated new packages and need to wire up their dependencies, (2) user imports from a sibling package and needs to add it as a dependency, (3) you get resolution errors for workspace packages (@org\u002F*) like \"cannot find module\", \"failed to resolve import\", \"TS2307\", or \"cannot resolve\". DO NOT patch around with tsconfig paths or manual package.json edits - use the package manager''s workspace commands to fix actual linking.'\n---\n\n# Link Workspace Packages\n\nAdd dependencies between packages in a monorepo. All package managers support workspaces but with different syntax.\n\n## Detect Package Manager\n\nCheck whether there's a `packageManager` field in the root-level `package.json`.\n\nAlternatively check lockfile in repo root:\n\n- `pnpm-lock.yaml` → pnpm\n- `yarn.lock` → yarn\n- `bun.lock` \u002F `bun.lockb` → bun\n- `package-lock.json` → npm\n\n## Workflow\n\n1. Identify consumer package (the one importing)\n2. Identify provider package(s) (being imported)\n3. Add dependency using package manager's workspace syntax\n4. Verify symlinks created in consumer's `node_modules\u002F`\n\n---\n\n## pnpm\n\nUses `workspace:` protocol - symlinks only created when explicitly declared.\n\n```bash\n# From consumer directory\npnpm add @org\u002Fui --workspace\n\n# Or with --filter from anywhere\npnpm add @org\u002Fui --filter @org\u002Fapp --workspace\n```\n\nResult in `package.json`:\n\n```json\n{ \"dependencies\": { \"@org\u002Fui\": \"workspace:*\" } }\n```\n\n---\n\n## yarn (v2+\u002Fberry)\n\nAlso uses `workspace:` protocol.\n\n```bash\nyarn workspace @org\u002Fapp add @org\u002Fui\n```\n\nResult in `package.json`:\n\n```json\n{ \"dependencies\": { \"@org\u002Fui\": \"workspace:^\" } }\n```\n\n---\n\n## npm\n\nNo `workspace:` protocol. npm auto-symlinks workspace packages.\n\n```bash\nnpm install @org\u002Fui --workspace @org\u002Fapp\n```\n\nResult in `package.json`:\n\n```json\n{ \"dependencies\": { \"@org\u002Fui\": \"*\" } }\n```\n\nnpm resolves to local workspace automatically during install.\n\n---\n\n## bun\n\nSupports `workspace:` protocol (pnpm-compatible).\n\n```bash\ncd packages\u002Fapp && bun add @org\u002Fui\n```\n\nResult in `package.json`:\n\n```json\n{ \"dependencies\": { \"@org\u002Fui\": \"workspace:*\" } }\n```\n\n---\n\n## Examples\n\n**Example 1: pnpm - link ui lib to app**\n\n```bash\npnpm add @org\u002Fui --filter @org\u002Fapp --workspace\n```\n\n**Example 2: npm - link multiple packages**\n\n```bash\nnpm install @org\u002Fdata-access @org\u002Fui --workspace @org\u002Fdashboard\n```\n\n**Example 3: Debug \"Cannot find module\"**\n\n1. Check if dependency is declared in consumer's `package.json`\n2. If not, add it using appropriate command above\n3. Run install (`pnpm install`, `npm install`, etc.)\n\n## Notes\n\n- Symlinks appear in `\u003Cconsumer>\u002Fnode_modules\u002F@org\u002F\u003Cpackage>`\n- **Hoisting differs by manager:**\n  - npm\u002Fbun: hoist shared deps to root `node_modules`\n  - pnpm: no hoisting (strict isolation, prevents phantom deps)\n  - yarn berry: uses Plug'n'Play by default (no `node_modules`)\n- Root `package.json` should have `\"private\": true` to prevent accidental publish\n",{"data":32,"body":33},{"name":4,"description":6},{"type":34,"children":35},"root",[36,44,50,57,79,84,141,147,177,181,186,199,295,307,390,393,399,411,444,454,525,528,533,545,578,588,659,664,667,672,684,723,733,802,805,811,820,854,862,898,906,945,951,1024],{"type":37,"tag":38,"props":39,"children":40},"element","h1",{"id":4},[41],{"type":42,"value":43},"text","Link Workspace Packages",{"type":37,"tag":45,"props":46,"children":47},"p",{},[48],{"type":42,"value":49},"Add dependencies between packages in a monorepo. All package managers support workspaces but with different syntax.",{"type":37,"tag":51,"props":52,"children":54},"h2",{"id":53},"detect-package-manager",[55],{"type":42,"value":56},"Detect Package Manager",{"type":37,"tag":45,"props":58,"children":59},{},[60,62,69,71,77],{"type":42,"value":61},"Check whether there's a ",{"type":37,"tag":63,"props":64,"children":66},"code",{"className":65},[],[67],{"type":42,"value":68},"packageManager",{"type":42,"value":70}," field in the root-level ",{"type":37,"tag":63,"props":72,"children":74},{"className":73},[],[75],{"type":42,"value":76},"package.json",{"type":42,"value":78},".",{"type":37,"tag":45,"props":80,"children":81},{},[82],{"type":42,"value":83},"Alternatively check lockfile in repo root:",{"type":37,"tag":85,"props":86,"children":87},"ul",{},[88,100,111,130],{"type":37,"tag":89,"props":90,"children":91},"li",{},[92,98],{"type":37,"tag":63,"props":93,"children":95},{"className":94},[],[96],{"type":42,"value":97},"pnpm-lock.yaml",{"type":42,"value":99}," → pnpm",{"type":37,"tag":89,"props":101,"children":102},{},[103,109],{"type":37,"tag":63,"props":104,"children":106},{"className":105},[],[107],{"type":42,"value":108},"yarn.lock",{"type":42,"value":110}," → yarn",{"type":37,"tag":89,"props":112,"children":113},{},[114,120,122,128],{"type":37,"tag":63,"props":115,"children":117},{"className":116},[],[118],{"type":42,"value":119},"bun.lock",{"type":42,"value":121}," \u002F ",{"type":37,"tag":63,"props":123,"children":125},{"className":124},[],[126],{"type":42,"value":127},"bun.lockb",{"type":42,"value":129}," → bun",{"type":37,"tag":89,"props":131,"children":132},{},[133,139],{"type":37,"tag":63,"props":134,"children":136},{"className":135},[],[137],{"type":42,"value":138},"package-lock.json",{"type":42,"value":140}," → npm",{"type":37,"tag":51,"props":142,"children":144},{"id":143},"workflow",[145],{"type":42,"value":146},"Workflow",{"type":37,"tag":148,"props":149,"children":150},"ol",{},[151,156,161,166],{"type":37,"tag":89,"props":152,"children":153},{},[154],{"type":42,"value":155},"Identify consumer package (the one importing)",{"type":37,"tag":89,"props":157,"children":158},{},[159],{"type":42,"value":160},"Identify provider package(s) (being imported)",{"type":37,"tag":89,"props":162,"children":163},{},[164],{"type":42,"value":165},"Add dependency using package manager's workspace syntax",{"type":37,"tag":89,"props":167,"children":168},{},[169,171],{"type":42,"value":170},"Verify symlinks created in consumer's ",{"type":37,"tag":63,"props":172,"children":174},{"className":173},[],[175],{"type":42,"value":176},"node_modules\u002F",{"type":37,"tag":178,"props":179,"children":180},"hr",{},[],{"type":37,"tag":51,"props":182,"children":184},{"id":183},"pnpm",[185],{"type":42,"value":183},{"type":37,"tag":45,"props":187,"children":188},{},[189,191,197],{"type":42,"value":190},"Uses ",{"type":37,"tag":63,"props":192,"children":194},{"className":193},[],[195],{"type":42,"value":196},"workspace:",{"type":42,"value":198}," protocol - symlinks only created when explicitly declared.",{"type":37,"tag":200,"props":201,"children":206},"pre",{"className":202,"code":203,"language":204,"meta":205,"style":205},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# From consumer directory\npnpm add @org\u002Fui --workspace\n\n# Or with --filter from anywhere\npnpm add @org\u002Fui --filter @org\u002Fapp --workspace\n","bash","",[207],{"type":37,"tag":63,"props":208,"children":209},{"__ignoreMap":205},[210,222,247,257,265],{"type":37,"tag":211,"props":212,"children":215},"span",{"class":213,"line":214},"line",1,[216],{"type":37,"tag":211,"props":217,"children":219},{"style":218},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[220],{"type":42,"value":221},"# From consumer directory\n",{"type":37,"tag":211,"props":223,"children":225},{"class":213,"line":224},2,[226,231,237,242],{"type":37,"tag":211,"props":227,"children":229},{"style":228},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[230],{"type":42,"value":183},{"type":37,"tag":211,"props":232,"children":234},{"style":233},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[235],{"type":42,"value":236}," add",{"type":37,"tag":211,"props":238,"children":239},{"style":233},[240],{"type":42,"value":241}," @org\u002Fui",{"type":37,"tag":211,"props":243,"children":244},{"style":233},[245],{"type":42,"value":246}," --workspace\n",{"type":37,"tag":211,"props":248,"children":250},{"class":213,"line":249},3,[251],{"type":37,"tag":211,"props":252,"children":254},{"emptyLinePlaceholder":253},true,[255],{"type":42,"value":256},"\n",{"type":37,"tag":211,"props":258,"children":259},{"class":213,"line":25},[260],{"type":37,"tag":211,"props":261,"children":262},{"style":218},[263],{"type":42,"value":264},"# Or with --filter from anywhere\n",{"type":37,"tag":211,"props":266,"children":268},{"class":213,"line":267},5,[269,273,277,281,286,291],{"type":37,"tag":211,"props":270,"children":271},{"style":228},[272],{"type":42,"value":183},{"type":37,"tag":211,"props":274,"children":275},{"style":233},[276],{"type":42,"value":236},{"type":37,"tag":211,"props":278,"children":279},{"style":233},[280],{"type":42,"value":241},{"type":37,"tag":211,"props":282,"children":283},{"style":233},[284],{"type":42,"value":285}," --filter",{"type":37,"tag":211,"props":287,"children":288},{"style":233},[289],{"type":42,"value":290}," @org\u002Fapp",{"type":37,"tag":211,"props":292,"children":293},{"style":233},[294],{"type":42,"value":246},{"type":37,"tag":45,"props":296,"children":297},{},[298,300,305],{"type":42,"value":299},"Result in ",{"type":37,"tag":63,"props":301,"children":303},{"className":302},[],[304],{"type":42,"value":76},{"type":42,"value":306},":",{"type":37,"tag":200,"props":308,"children":312},{"className":309,"code":310,"language":311,"meta":205,"style":205},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ \"dependencies\": { \"@org\u002Fui\": \"workspace:*\" } }\n","json",[313],{"type":37,"tag":63,"props":314,"children":315},{"__ignoreMap":205},[316],{"type":37,"tag":211,"props":317,"children":318},{"class":213,"line":214},[319,325,330,336,341,345,350,354,359,363,367,371,376,380,385],{"type":37,"tag":211,"props":320,"children":322},{"style":321},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[323],{"type":42,"value":324},"{",{"type":37,"tag":211,"props":326,"children":327},{"style":321},[328],{"type":42,"value":329}," \"",{"type":37,"tag":211,"props":331,"children":333},{"style":332},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[334],{"type":42,"value":335},"dependencies",{"type":37,"tag":211,"props":337,"children":338},{"style":321},[339],{"type":42,"value":340},"\"",{"type":37,"tag":211,"props":342,"children":343},{"style":321},[344],{"type":42,"value":306},{"type":37,"tag":211,"props":346,"children":347},{"style":321},[348],{"type":42,"value":349}," {",{"type":37,"tag":211,"props":351,"children":352},{"style":321},[353],{"type":42,"value":329},{"type":37,"tag":211,"props":355,"children":356},{"style":228},[357],{"type":42,"value":358},"@org\u002Fui",{"type":37,"tag":211,"props":360,"children":361},{"style":321},[362],{"type":42,"value":340},{"type":37,"tag":211,"props":364,"children":365},{"style":321},[366],{"type":42,"value":306},{"type":37,"tag":211,"props":368,"children":369},{"style":321},[370],{"type":42,"value":329},{"type":37,"tag":211,"props":372,"children":373},{"style":233},[374],{"type":42,"value":375},"workspace:*",{"type":37,"tag":211,"props":377,"children":378},{"style":321},[379],{"type":42,"value":340},{"type":37,"tag":211,"props":381,"children":382},{"style":321},[383],{"type":42,"value":384}," }",{"type":37,"tag":211,"props":386,"children":387},{"style":321},[388],{"type":42,"value":389}," }\n",{"type":37,"tag":178,"props":391,"children":392},{},[],{"type":37,"tag":51,"props":394,"children":396},{"id":395},"yarn-v2berry",[397],{"type":42,"value":398},"yarn (v2+\u002Fberry)",{"type":37,"tag":45,"props":400,"children":401},{},[402,404,409],{"type":42,"value":403},"Also uses ",{"type":37,"tag":63,"props":405,"children":407},{"className":406},[],[408],{"type":42,"value":196},{"type":42,"value":410}," protocol.",{"type":37,"tag":200,"props":412,"children":414},{"className":202,"code":413,"language":204,"meta":205,"style":205},"yarn workspace @org\u002Fapp add @org\u002Fui\n",[415],{"type":37,"tag":63,"props":416,"children":417},{"__ignoreMap":205},[418],{"type":37,"tag":211,"props":419,"children":420},{"class":213,"line":214},[421,426,431,435,439],{"type":37,"tag":211,"props":422,"children":423},{"style":228},[424],{"type":42,"value":425},"yarn",{"type":37,"tag":211,"props":427,"children":428},{"style":233},[429],{"type":42,"value":430}," workspace",{"type":37,"tag":211,"props":432,"children":433},{"style":233},[434],{"type":42,"value":290},{"type":37,"tag":211,"props":436,"children":437},{"style":233},[438],{"type":42,"value":236},{"type":37,"tag":211,"props":440,"children":441},{"style":233},[442],{"type":42,"value":443}," @org\u002Fui\n",{"type":37,"tag":45,"props":445,"children":446},{},[447,448,453],{"type":42,"value":299},{"type":37,"tag":63,"props":449,"children":451},{"className":450},[],[452],{"type":42,"value":76},{"type":42,"value":306},{"type":37,"tag":200,"props":455,"children":457},{"className":309,"code":456,"language":311,"meta":205,"style":205},"{ \"dependencies\": { \"@org\u002Fui\": \"workspace:^\" } }\n",[458],{"type":37,"tag":63,"props":459,"children":460},{"__ignoreMap":205},[461],{"type":37,"tag":211,"props":462,"children":463},{"class":213,"line":214},[464,468,472,476,480,484,488,492,496,500,504,508,513,517,521],{"type":37,"tag":211,"props":465,"children":466},{"style":321},[467],{"type":42,"value":324},{"type":37,"tag":211,"props":469,"children":470},{"style":321},[471],{"type":42,"value":329},{"type":37,"tag":211,"props":473,"children":474},{"style":332},[475],{"type":42,"value":335},{"type":37,"tag":211,"props":477,"children":478},{"style":321},[479],{"type":42,"value":340},{"type":37,"tag":211,"props":481,"children":482},{"style":321},[483],{"type":42,"value":306},{"type":37,"tag":211,"props":485,"children":486},{"style":321},[487],{"type":42,"value":349},{"type":37,"tag":211,"props":489,"children":490},{"style":321},[491],{"type":42,"value":329},{"type":37,"tag":211,"props":493,"children":494},{"style":228},[495],{"type":42,"value":358},{"type":37,"tag":211,"props":497,"children":498},{"style":321},[499],{"type":42,"value":340},{"type":37,"tag":211,"props":501,"children":502},{"style":321},[503],{"type":42,"value":306},{"type":37,"tag":211,"props":505,"children":506},{"style":321},[507],{"type":42,"value":329},{"type":37,"tag":211,"props":509,"children":510},{"style":233},[511],{"type":42,"value":512},"workspace:^",{"type":37,"tag":211,"props":514,"children":515},{"style":321},[516],{"type":42,"value":340},{"type":37,"tag":211,"props":518,"children":519},{"style":321},[520],{"type":42,"value":384},{"type":37,"tag":211,"props":522,"children":523},{"style":321},[524],{"type":42,"value":389},{"type":37,"tag":178,"props":526,"children":527},{},[],{"type":37,"tag":51,"props":529,"children":531},{"id":530},"npm",[532],{"type":42,"value":530},{"type":37,"tag":45,"props":534,"children":535},{},[536,538,543],{"type":42,"value":537},"No ",{"type":37,"tag":63,"props":539,"children":541},{"className":540},[],[542],{"type":42,"value":196},{"type":42,"value":544}," protocol. npm auto-symlinks workspace packages.",{"type":37,"tag":200,"props":546,"children":548},{"className":202,"code":547,"language":204,"meta":205,"style":205},"npm install @org\u002Fui --workspace @org\u002Fapp\n",[549],{"type":37,"tag":63,"props":550,"children":551},{"__ignoreMap":205},[552],{"type":37,"tag":211,"props":553,"children":554},{"class":213,"line":214},[555,559,564,568,573],{"type":37,"tag":211,"props":556,"children":557},{"style":228},[558],{"type":42,"value":530},{"type":37,"tag":211,"props":560,"children":561},{"style":233},[562],{"type":42,"value":563}," install",{"type":37,"tag":211,"props":565,"children":566},{"style":233},[567],{"type":42,"value":241},{"type":37,"tag":211,"props":569,"children":570},{"style":233},[571],{"type":42,"value":572}," --workspace",{"type":37,"tag":211,"props":574,"children":575},{"style":233},[576],{"type":42,"value":577}," @org\u002Fapp\n",{"type":37,"tag":45,"props":579,"children":580},{},[581,582,587],{"type":42,"value":299},{"type":37,"tag":63,"props":583,"children":585},{"className":584},[],[586],{"type":42,"value":76},{"type":42,"value":306},{"type":37,"tag":200,"props":589,"children":591},{"className":309,"code":590,"language":311,"meta":205,"style":205},"{ \"dependencies\": { \"@org\u002Fui\": \"*\" } }\n",[592],{"type":37,"tag":63,"props":593,"children":594},{"__ignoreMap":205},[595],{"type":37,"tag":211,"props":596,"children":597},{"class":213,"line":214},[598,602,606,610,614,618,622,626,630,634,638,642,647,651,655],{"type":37,"tag":211,"props":599,"children":600},{"style":321},[601],{"type":42,"value":324},{"type":37,"tag":211,"props":603,"children":604},{"style":321},[605],{"type":42,"value":329},{"type":37,"tag":211,"props":607,"children":608},{"style":332},[609],{"type":42,"value":335},{"type":37,"tag":211,"props":611,"children":612},{"style":321},[613],{"type":42,"value":340},{"type":37,"tag":211,"props":615,"children":616},{"style":321},[617],{"type":42,"value":306},{"type":37,"tag":211,"props":619,"children":620},{"style":321},[621],{"type":42,"value":349},{"type":37,"tag":211,"props":623,"children":624},{"style":321},[625],{"type":42,"value":329},{"type":37,"tag":211,"props":627,"children":628},{"style":228},[629],{"type":42,"value":358},{"type":37,"tag":211,"props":631,"children":632},{"style":321},[633],{"type":42,"value":340},{"type":37,"tag":211,"props":635,"children":636},{"style":321},[637],{"type":42,"value":306},{"type":37,"tag":211,"props":639,"children":640},{"style":321},[641],{"type":42,"value":329},{"type":37,"tag":211,"props":643,"children":644},{"style":233},[645],{"type":42,"value":646},"*",{"type":37,"tag":211,"props":648,"children":649},{"style":321},[650],{"type":42,"value":340},{"type":37,"tag":211,"props":652,"children":653},{"style":321},[654],{"type":42,"value":384},{"type":37,"tag":211,"props":656,"children":657},{"style":321},[658],{"type":42,"value":389},{"type":37,"tag":45,"props":660,"children":661},{},[662],{"type":42,"value":663},"npm resolves to local workspace automatically during install.",{"type":37,"tag":178,"props":665,"children":666},{},[],{"type":37,"tag":51,"props":668,"children":670},{"id":669},"bun",[671],{"type":42,"value":669},{"type":37,"tag":45,"props":673,"children":674},{},[675,677,682],{"type":42,"value":676},"Supports ",{"type":37,"tag":63,"props":678,"children":680},{"className":679},[],[681],{"type":42,"value":196},{"type":42,"value":683}," protocol (pnpm-compatible).",{"type":37,"tag":200,"props":685,"children":687},{"className":202,"code":686,"language":204,"meta":205,"style":205},"cd packages\u002Fapp && bun add @org\u002Fui\n",[688],{"type":37,"tag":63,"props":689,"children":690},{"__ignoreMap":205},[691],{"type":37,"tag":211,"props":692,"children":693},{"class":213,"line":214},[694,700,705,710,715,719],{"type":37,"tag":211,"props":695,"children":697},{"style":696},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[698],{"type":42,"value":699},"cd",{"type":37,"tag":211,"props":701,"children":702},{"style":233},[703],{"type":42,"value":704}," packages\u002Fapp",{"type":37,"tag":211,"props":706,"children":707},{"style":321},[708],{"type":42,"value":709}," &&",{"type":37,"tag":211,"props":711,"children":712},{"style":228},[713],{"type":42,"value":714}," bun",{"type":37,"tag":211,"props":716,"children":717},{"style":233},[718],{"type":42,"value":236},{"type":37,"tag":211,"props":720,"children":721},{"style":233},[722],{"type":42,"value":443},{"type":37,"tag":45,"props":724,"children":725},{},[726,727,732],{"type":42,"value":299},{"type":37,"tag":63,"props":728,"children":730},{"className":729},[],[731],{"type":42,"value":76},{"type":42,"value":306},{"type":37,"tag":200,"props":734,"children":735},{"className":309,"code":310,"language":311,"meta":205,"style":205},[736],{"type":37,"tag":63,"props":737,"children":738},{"__ignoreMap":205},[739],{"type":37,"tag":211,"props":740,"children":741},{"class":213,"line":214},[742,746,750,754,758,762,766,770,774,778,782,786,790,794,798],{"type":37,"tag":211,"props":743,"children":744},{"style":321},[745],{"type":42,"value":324},{"type":37,"tag":211,"props":747,"children":748},{"style":321},[749],{"type":42,"value":329},{"type":37,"tag":211,"props":751,"children":752},{"style":332},[753],{"type":42,"value":335},{"type":37,"tag":211,"props":755,"children":756},{"style":321},[757],{"type":42,"value":340},{"type":37,"tag":211,"props":759,"children":760},{"style":321},[761],{"type":42,"value":306},{"type":37,"tag":211,"props":763,"children":764},{"style":321},[765],{"type":42,"value":349},{"type":37,"tag":211,"props":767,"children":768},{"style":321},[769],{"type":42,"value":329},{"type":37,"tag":211,"props":771,"children":772},{"style":228},[773],{"type":42,"value":358},{"type":37,"tag":211,"props":775,"children":776},{"style":321},[777],{"type":42,"value":340},{"type":37,"tag":211,"props":779,"children":780},{"style":321},[781],{"type":42,"value":306},{"type":37,"tag":211,"props":783,"children":784},{"style":321},[785],{"type":42,"value":329},{"type":37,"tag":211,"props":787,"children":788},{"style":233},[789],{"type":42,"value":375},{"type":37,"tag":211,"props":791,"children":792},{"style":321},[793],{"type":42,"value":340},{"type":37,"tag":211,"props":795,"children":796},{"style":321},[797],{"type":42,"value":384},{"type":37,"tag":211,"props":799,"children":800},{"style":321},[801],{"type":42,"value":389},{"type":37,"tag":178,"props":803,"children":804},{},[],{"type":37,"tag":51,"props":806,"children":808},{"id":807},"examples",[809],{"type":42,"value":810},"Examples",{"type":37,"tag":45,"props":812,"children":813},{},[814],{"type":37,"tag":815,"props":816,"children":817},"strong",{},[818],{"type":42,"value":819},"Example 1: pnpm - link ui lib to app",{"type":37,"tag":200,"props":821,"children":823},{"className":202,"code":822,"language":204,"meta":205,"style":205},"pnpm add @org\u002Fui --filter @org\u002Fapp --workspace\n",[824],{"type":37,"tag":63,"props":825,"children":826},{"__ignoreMap":205},[827],{"type":37,"tag":211,"props":828,"children":829},{"class":213,"line":214},[830,834,838,842,846,850],{"type":37,"tag":211,"props":831,"children":832},{"style":228},[833],{"type":42,"value":183},{"type":37,"tag":211,"props":835,"children":836},{"style":233},[837],{"type":42,"value":236},{"type":37,"tag":211,"props":839,"children":840},{"style":233},[841],{"type":42,"value":241},{"type":37,"tag":211,"props":843,"children":844},{"style":233},[845],{"type":42,"value":285},{"type":37,"tag":211,"props":847,"children":848},{"style":233},[849],{"type":42,"value":290},{"type":37,"tag":211,"props":851,"children":852},{"style":233},[853],{"type":42,"value":246},{"type":37,"tag":45,"props":855,"children":856},{},[857],{"type":37,"tag":815,"props":858,"children":859},{},[860],{"type":42,"value":861},"Example 2: npm - link multiple packages",{"type":37,"tag":200,"props":863,"children":865},{"className":202,"code":864,"language":204,"meta":205,"style":205},"npm install @org\u002Fdata-access @org\u002Fui --workspace @org\u002Fdashboard\n",[866],{"type":37,"tag":63,"props":867,"children":868},{"__ignoreMap":205},[869],{"type":37,"tag":211,"props":870,"children":871},{"class":213,"line":214},[872,876,880,885,889,893],{"type":37,"tag":211,"props":873,"children":874},{"style":228},[875],{"type":42,"value":530},{"type":37,"tag":211,"props":877,"children":878},{"style":233},[879],{"type":42,"value":563},{"type":37,"tag":211,"props":881,"children":882},{"style":233},[883],{"type":42,"value":884}," @org\u002Fdata-access",{"type":37,"tag":211,"props":886,"children":887},{"style":233},[888],{"type":42,"value":241},{"type":37,"tag":211,"props":890,"children":891},{"style":233},[892],{"type":42,"value":572},{"type":37,"tag":211,"props":894,"children":895},{"style":233},[896],{"type":42,"value":897}," @org\u002Fdashboard\n",{"type":37,"tag":45,"props":899,"children":900},{},[901],{"type":37,"tag":815,"props":902,"children":903},{},[904],{"type":42,"value":905},"Example 3: Debug \"Cannot find module\"",{"type":37,"tag":148,"props":907,"children":908},{},[909,919,924],{"type":37,"tag":89,"props":910,"children":911},{},[912,914],{"type":42,"value":913},"Check if dependency is declared in consumer's ",{"type":37,"tag":63,"props":915,"children":917},{"className":916},[],[918],{"type":42,"value":76},{"type":37,"tag":89,"props":920,"children":921},{},[922],{"type":42,"value":923},"If not, add it using appropriate command above",{"type":37,"tag":89,"props":925,"children":926},{},[927,929,935,937,943],{"type":42,"value":928},"Run install (",{"type":37,"tag":63,"props":930,"children":932},{"className":931},[],[933],{"type":42,"value":934},"pnpm install",{"type":42,"value":936},", ",{"type":37,"tag":63,"props":938,"children":940},{"className":939},[],[941],{"type":42,"value":942},"npm install",{"type":42,"value":944},", etc.)",{"type":37,"tag":51,"props":946,"children":948},{"id":947},"notes",[949],{"type":42,"value":950},"Notes",{"type":37,"tag":85,"props":952,"children":953},{},[954,965,1004],{"type":37,"tag":89,"props":955,"children":956},{},[957,959],{"type":42,"value":958},"Symlinks appear in ",{"type":37,"tag":63,"props":960,"children":962},{"className":961},[],[963],{"type":42,"value":964},"\u003Cconsumer>\u002Fnode_modules\u002F@org\u002F\u003Cpackage>",{"type":37,"tag":89,"props":966,"children":967},{},[968,973],{"type":37,"tag":815,"props":969,"children":970},{},[971],{"type":42,"value":972},"Hoisting differs by manager:",{"type":37,"tag":85,"props":974,"children":975},{},[976,987,992],{"type":37,"tag":89,"props":977,"children":978},{},[979,981],{"type":42,"value":980},"npm\u002Fbun: hoist shared deps to root ",{"type":37,"tag":63,"props":982,"children":984},{"className":983},[],[985],{"type":42,"value":986},"node_modules",{"type":37,"tag":89,"props":988,"children":989},{},[990],{"type":42,"value":991},"pnpm: no hoisting (strict isolation, prevents phantom deps)",{"type":37,"tag":89,"props":993,"children":994},{},[995,997,1002],{"type":42,"value":996},"yarn berry: uses Plug'n'Play by default (no ",{"type":37,"tag":63,"props":998,"children":1000},{"className":999},[],[1001],{"type":42,"value":986},{"type":42,"value":1003},")",{"type":37,"tag":89,"props":1005,"children":1006},{},[1007,1009,1014,1016,1022],{"type":42,"value":1008},"Root ",{"type":37,"tag":63,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":42,"value":76},{"type":42,"value":1015}," should have ",{"type":37,"tag":63,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":42,"value":1021},"\"private\": true",{"type":42,"value":1023}," to prevent accidental publish",{"type":37,"tag":1025,"props":1026,"children":1027},"style",{},[1028],{"type":42,"value":1029},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1031,"total":1122},[1032,1038,1052,1064,1076,1085,1094,1104],{"slug":4,"name":4,"fn":5,"description":6,"org":1033,"tags":1034,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1035,1036,1037],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"slug":1039,"name":1039,"fn":1040,"description":1041,"org":1042,"tags":1043,"stars":21,"repoUrl":22,"updatedAt":1051},"monitor-ci","monitor Nx Cloud CI pipelines","Monitor Nx Cloud CI pipeline and handle self-healing fixes. USE WHEN user says \"monitor ci\", \"watch ci\", \"ci monitor\", \"watch ci for this branch\", \"track ci\", \"check ci status\", wants to track CI status, or needs help with self-healing CI fixes. Prefer this skill over native CI provider tools (gh, glab, etc.) for CI monitoring — it integrates with Nx Cloud self-healing which those tools cannot access.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1044,1047,1050],{"name":1045,"slug":1046,"type":16},"CI\u002FCD","ci-cd",{"name":1048,"slug":1049,"type":16},"Monitoring","monitoring",{"name":9,"slug":8,"type":16},"2026-07-26T05:48:03.509541",{"slug":1053,"name":1053,"fn":1054,"description":1055,"org":1056,"tags":1057,"stars":21,"repoUrl":22,"updatedAt":1063},"nx-generate","generate code with Nx generators","Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps\u002Flibs, or setting up project structure. Trigger words - scaffold, setup, create a new app, create a new lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1058,1061,1062],{"name":1059,"slug":1060,"type":16},"Automation","automation",{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-07-13T06:10:36.6128",{"slug":1065,"name":1065,"fn":1066,"description":1067,"org":1068,"tags":1069,"stars":21,"repoUrl":22,"updatedAt":1075},"nx-import","import repositories into Nx workspaces","Import, merge, or combine repositories into an Nx workspace using nx import. USE WHEN the user asks to adopt Nx across repos, move projects into a monorepo, or bring code\u002Fhistory from another repository.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1070,1071,1074],{"name":18,"slug":19,"type":16},{"name":1072,"slug":1073,"type":16},"Migration","migration",{"name":9,"slug":8,"type":16},"2026-07-13T06:10:24.792842",{"slug":1077,"name":1077,"fn":1078,"description":1079,"org":1080,"tags":1081,"stars":21,"repoUrl":22,"updatedAt":1084},"nx-plugins","find and add Nx plugins","Find and add Nx plugins. USE WHEN user wants to discover available plugins, install a new plugin, or add support for a specific framework or technology to the workspace.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1082,1083],{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-07-16T06:01:55.300546",{"slug":1086,"name":1086,"fn":1087,"description":1088,"org":1089,"tags":1090,"stars":21,"repoUrl":22,"updatedAt":1093},"nx-run-tasks","execute tasks in Nx workspaces","Helps with running tasks in an Nx workspace. USE WHEN the user wants to execute build, test, lint, serve, or run any other tasks defined in the workspace.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1091,1092],{"name":1059,"slug":1060,"type":16},{"name":9,"slug":8,"type":16},"2026-07-16T06:01:58.30304",{"slug":1095,"name":1095,"fn":1096,"description":1097,"org":1098,"tags":1099,"stars":21,"repoUrl":22,"updatedAt":1103},"nx-workspace","explore and understand Nx workspaces","Explore and understand Nx workspaces. USE WHEN answering questions about the workspace, projects, or tasks. ALSO USE WHEN an nx command fails or you need to check available targets\u002Fconfiguration before running a task. EXAMPLES: 'What projects are in this workspace?', 'How is project X configured?', 'What depends on library Y?', 'What targets can I run?', 'Cannot find configuration for task', 'debug nx task failure'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1100,1101,1102],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-07-13T06:10:44.796062",{"slug":1105,"name":1105,"fn":1106,"description":1107,"org":1108,"tags":1109,"stars":1119,"repoUrl":1120,"updatedAt":1121},"session-debrief","analyze and debrief Polygraph session logs","Analyze the raw logs of past Polygraph sessions and produce structured, rank-ordered debriefs for use in a different session. Use when launched (typically as a background agent) with a ranked list of relevant Polygraph session IDs and a statement of the current task; pulls parent and child transcripts via the polygraph CLI and returns one consolidated debrief.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1110,1113,1116],{"name":1111,"slug":1112,"type":16},"Agents","agents",{"name":1114,"slug":1115,"type":16},"Analysis","analysis",{"name":1117,"slug":1118,"type":16},"Logs","logs",7,"https:\u002F\u002Fgithub.com\u002Fnrwl\u002Fpolygraph-skills","2026-07-29T05:40:01.783869",8,{"items":1124,"total":1119},[1125,1131,1137,1143,1149,1154,1159],{"slug":4,"name":4,"fn":5,"description":6,"org":1126,"tags":1127,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1128,1129,1130],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"slug":1039,"name":1039,"fn":1040,"description":1041,"org":1132,"tags":1133,"stars":21,"repoUrl":22,"updatedAt":1051},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1134,1135,1136],{"name":1045,"slug":1046,"type":16},{"name":1048,"slug":1049,"type":16},{"name":9,"slug":8,"type":16},{"slug":1053,"name":1053,"fn":1054,"description":1055,"org":1138,"tags":1139,"stars":21,"repoUrl":22,"updatedAt":1063},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1140,1141,1142],{"name":1059,"slug":1060,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"slug":1065,"name":1065,"fn":1066,"description":1067,"org":1144,"tags":1145,"stars":21,"repoUrl":22,"updatedAt":1075},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1146,1147,1148],{"name":18,"slug":19,"type":16},{"name":1072,"slug":1073,"type":16},{"name":9,"slug":8,"type":16},{"slug":1077,"name":1077,"fn":1078,"description":1079,"org":1150,"tags":1151,"stars":21,"repoUrl":22,"updatedAt":1084},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1152,1153],{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"slug":1086,"name":1086,"fn":1087,"description":1088,"org":1155,"tags":1156,"stars":21,"repoUrl":22,"updatedAt":1093},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1157,1158],{"name":1059,"slug":1060,"type":16},{"name":9,"slug":8,"type":16},{"slug":1095,"name":1095,"fn":1096,"description":1097,"org":1160,"tags":1161,"stars":21,"repoUrl":22,"updatedAt":1103},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1162,1163,1164],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16}]