[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-jetbrains-dependency-search":3,"mdc--78nrnt-key":33,"related-repo-jetbrains-dependency-search":668,"related-org-jetbrains-dependency-search":741},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"dependency-search","search dependencies across repositories","Experimental jbcontext org-wide dependency search across multiple repositories. Use when need to find APIs in other repositories, or dependency configuration are used across repos for upgrades, removals, CVEs, migrations, or ownership discovery.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"jetbrains","JetBrains","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fjetbrains.png",[12,16,19],{"name":13,"slug":14,"type":15},"Search","search","tag",{"name":17,"slug":18,"type":15},"Engineering","engineering",{"name":20,"slug":21,"type":15},"Code Analysis","code-analysis",4,"https:\u002F\u002Fgithub.com\u002FJetBrains\u002Fcontext","2026-07-13T06:44:02.819425",null,0,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"context agent plugin: skills, mcp, hooks","https:\u002F\u002Fgithub.com\u002FJetBrains\u002Fcontext\u002Ftree\u002FHEAD\u002Fskills\u002Fdependency-search","---\nname: dependency-search\ncontext: fork\nagent: Explore\nargument-hint: dependency query\ndescription: \"Experimental jbcontext org-wide dependency search across multiple repositories. Use when need to find APIs in other repositories, or dependency configuration are used across repos for upgrades, removals, CVEs, migrations, or ownership discovery.\"\n---\n\nUse this skill to research `$ARGUMENTS` across all available repositories when the question is about dependency usage, dependency ownership, upgrade planning, migration scope, version drift, or remediation.\n\n## Use cases for dependency search\n\n- **Find where a dependency is used.** Locate repos importing a package, requiring a module, referencing a framework, or declaring a dependency in package manifests, lockfiles, build files, Dockerfiles, or infrastructure config.\n- **Plan dependency upgrades.** Identify consumers, pinned versions, compatibility wrappers, tests, and release paths before upgrading a shared package, runtime, SDK, framework, or generated client.\n- **Scope CVE and security remediation.** Find vulnerable package versions, transitive dependency clues, vendored copies, or repeated mitigation patterns across repos.\n- **Discover dependency owners and migration examples.** Find the repos that maintain a shared package and the repos that have already migrated to a newer API or replacement dependency.\n- **Compare version drift.** Search for multiple declared versions or config variants to decide whether the org has one canonical version, several legacy versions, or repo-specific exceptions.\n- **Find imports that do not appear in manifests.** Search for runtime imports, generated imports, plugin names, package namespaces, or error strings when manifest searches are incomplete.\n- **Trace shared client and SDK usage.** Locate services using a generated API client, database library, observability package, authentication SDK, feature flag SDK, or common internal library.\n- **Prepare deprecations and removals.** Identify remaining consumers, compatibility layers, fallback code, and tests that would be affected by removing a dependency.\n- **Audit dependency configuration.** Search build systems, CI workflows, package managers, container images, Terraform modules, Helm charts, and language-specific dependency files for risky or inconsistent configuration.\n\n## Workflow\n\n1. **Find candidate repositories first.** Run the experimental repo discovery command before searching code:\n\n```bash\njbcontext repos \"\u003Crepo or dependency terms>\" --limit 30\n```\n\nUse short, discriminative terms from the request: package names, module names, framework names, SDK names, team names, service names, or explicit repository names.\n\n2. **Handle prefixed repository families carefully.** If the request mentions a prefix or wildcard such as `jcp-*`, treat it as a repository-family constraint.\n\n- Query the prefix literally, for example `jcp` and `jcp-`.\n- Keep all suitable repos whose names start with that prefix.\n- Do not replace a prefixed repo family with a similar unprefixed repo unless the repo results clearly show it is the right target.\n- Preserve the exact repository `id` returned by `jbcontext repos`; do not infer ids from names.\n\n```\njbcontext repos \"jcp-\" # show all repos started with jcp- prefix\n```\n\nYou can omit query completely.\n\n3. **Select suitable repos.** Prefer exact dependency-owner repos, exact service matches, prefix-family matches, and repos whose description\u002Fpath\u002Flanguage\u002Fpackage ecosystem matches the task. If there are many candidates, search the most likely 5-10 first, then expand if results are weak.\n\n4. **Search selected repos in parallel.** Invoke `jbcontext search` once per selected repository, passing the repository id from `jbcontext repos` with the id option supported by the installed experimental CLI:\n\n```bash\njbcontext search --repository-id \"\u003Crepo-id>\" --json-output --limit 10 \"\u003Csemantic dependency search query>\"\n```\n\nIf `jbcontext search --help` shows a different repository-id flag, use that flag, but still pass the exact id from `jbcontext repos`. Run independent repo searches in parallel when the agent environment supports parallel tool calls; otherwise keep results grouped by repository.\n\n5. **Resolve snippets and repo information with `gh`.** When `jbcontext search` returns promising snippets, use the GitHub CLI to fetch full manifests, lockfiles, source files, surrounding code, default branch, repo metadata, owners, recent commits, or related dependency PRs\u002Fissues before relying on the match. Use the GitHub owner\u002Fname or URL from `jbcontext repos` when available.\n\n```bash\ngh repo view \"\u003Cowner>\u002F\u003Crepo>\" --json nameWithOwner,description,defaultBranchRef,url\ngh api \"repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fcontents\u002F\u003Cpath>?ref=\u003Cref>\" -H \"Accept: application\u002Fvnd.github.raw\"\n```\n\n6. **Synthesize dependency findings.** Report which repos were searched, which repos had useful matches, the dependency declarations\u002Fusages found, known versions or config variants, likely owners, and recommended follow-up checks. If no suitable repo is found, say which repo filters were tried before stopping.\n\n## Search Guidance\n\n- Use semantic, behavior-focused queries for `jbcontext search`; avoid one-word searches.\n- Include ecosystem-specific terms when useful, such as manifest names, package manager names, import namespaces, generated client names, runtime names, or version strings.\n- Search both declarations and runtime usage; dependency manifests alone can miss generated, vendored, plugin, or transitive usage.\n- Re-run `jbcontext repos` with narrower or prefix-aware terms before broadening code search.\n- Use path filters only after repo-level matches identify likely directories.\n- Keep repository names and ids visible in notes so later searches can be reproduced.\n- Use `gh` to resolve snippets into full source context and to gather more information about matching repositories.\n",{"data":34,"body":38},{"name":4,"context":35,"agent":36,"argument-hint":37,"description":6},"fork","Explore","dependency query",{"type":39,"children":40},"root",[41,58,65,161,167,181,237,242,264,319,329,334,373,438,458,493,583,597,603,662],{"type":42,"tag":43,"props":44,"children":45},"element","p",{},[46,49,56],{"type":47,"value":48},"text","Use this skill to research ",{"type":42,"tag":50,"props":51,"children":53},"code",{"className":52},[],[54],{"type":47,"value":55},"$ARGUMENTS",{"type":47,"value":57}," across all available repositories when the question is about dependency usage, dependency ownership, upgrade planning, migration scope, version drift, or remediation.",{"type":42,"tag":59,"props":60,"children":62},"h2",{"id":61},"use-cases-for-dependency-search",[63],{"type":47,"value":64},"Use cases for dependency search",{"type":42,"tag":66,"props":67,"children":68},"ul",{},[69,81,91,101,111,121,131,141,151],{"type":42,"tag":70,"props":71,"children":72},"li",{},[73,79],{"type":42,"tag":74,"props":75,"children":76},"strong",{},[77],{"type":47,"value":78},"Find where a dependency is used.",{"type":47,"value":80}," Locate repos importing a package, requiring a module, referencing a framework, or declaring a dependency in package manifests, lockfiles, build files, Dockerfiles, or infrastructure config.",{"type":42,"tag":70,"props":82,"children":83},{},[84,89],{"type":42,"tag":74,"props":85,"children":86},{},[87],{"type":47,"value":88},"Plan dependency upgrades.",{"type":47,"value":90}," Identify consumers, pinned versions, compatibility wrappers, tests, and release paths before upgrading a shared package, runtime, SDK, framework, or generated client.",{"type":42,"tag":70,"props":92,"children":93},{},[94,99],{"type":42,"tag":74,"props":95,"children":96},{},[97],{"type":47,"value":98},"Scope CVE and security remediation.",{"type":47,"value":100}," Find vulnerable package versions, transitive dependency clues, vendored copies, or repeated mitigation patterns across repos.",{"type":42,"tag":70,"props":102,"children":103},{},[104,109],{"type":42,"tag":74,"props":105,"children":106},{},[107],{"type":47,"value":108},"Discover dependency owners and migration examples.",{"type":47,"value":110}," Find the repos that maintain a shared package and the repos that have already migrated to a newer API or replacement dependency.",{"type":42,"tag":70,"props":112,"children":113},{},[114,119],{"type":42,"tag":74,"props":115,"children":116},{},[117],{"type":47,"value":118},"Compare version drift.",{"type":47,"value":120}," Search for multiple declared versions or config variants to decide whether the org has one canonical version, several legacy versions, or repo-specific exceptions.",{"type":42,"tag":70,"props":122,"children":123},{},[124,129],{"type":42,"tag":74,"props":125,"children":126},{},[127],{"type":47,"value":128},"Find imports that do not appear in manifests.",{"type":47,"value":130}," Search for runtime imports, generated imports, plugin names, package namespaces, or error strings when manifest searches are incomplete.",{"type":42,"tag":70,"props":132,"children":133},{},[134,139],{"type":42,"tag":74,"props":135,"children":136},{},[137],{"type":47,"value":138},"Trace shared client and SDK usage.",{"type":47,"value":140}," Locate services using a generated API client, database library, observability package, authentication SDK, feature flag SDK, or common internal library.",{"type":42,"tag":70,"props":142,"children":143},{},[144,149],{"type":42,"tag":74,"props":145,"children":146},{},[147],{"type":47,"value":148},"Prepare deprecations and removals.",{"type":47,"value":150}," Identify remaining consumers, compatibility layers, fallback code, and tests that would be affected by removing a dependency.",{"type":42,"tag":70,"props":152,"children":153},{},[154,159],{"type":42,"tag":74,"props":155,"children":156},{},[157],{"type":47,"value":158},"Audit dependency configuration.",{"type":47,"value":160}," Search build systems, CI workflows, package managers, container images, Terraform modules, Helm charts, and language-specific dependency files for risky or inconsistent configuration.",{"type":42,"tag":59,"props":162,"children":164},{"id":163},"workflow",[165],{"type":47,"value":166},"Workflow",{"type":42,"tag":168,"props":169,"children":170},"ol",{},[171],{"type":42,"tag":70,"props":172,"children":173},{},[174,179],{"type":42,"tag":74,"props":175,"children":176},{},[177],{"type":47,"value":178},"Find candidate repositories first.",{"type":47,"value":180}," Run the experimental repo discovery command before searching code:",{"type":42,"tag":182,"props":183,"children":188},"pre",{"className":184,"code":185,"language":186,"meta":187,"style":187},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","jbcontext repos \"\u003Crepo or dependency terms>\" --limit 30\n","bash","",[189],{"type":42,"tag":50,"props":190,"children":191},{"__ignoreMap":187},[192],{"type":42,"tag":193,"props":194,"children":197},"span",{"class":195,"line":196},"line",1,[198,204,210,216,221,226,231],{"type":42,"tag":193,"props":199,"children":201},{"style":200},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[202],{"type":47,"value":203},"jbcontext",{"type":42,"tag":193,"props":205,"children":207},{"style":206},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[208],{"type":47,"value":209}," repos",{"type":42,"tag":193,"props":211,"children":213},{"style":212},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[214],{"type":47,"value":215}," \"",{"type":42,"tag":193,"props":217,"children":218},{"style":206},[219],{"type":47,"value":220},"\u003Crepo or dependency terms>",{"type":42,"tag":193,"props":222,"children":223},{"style":212},[224],{"type":47,"value":225},"\"",{"type":42,"tag":193,"props":227,"children":228},{"style":206},[229],{"type":47,"value":230}," --limit",{"type":42,"tag":193,"props":232,"children":234},{"style":233},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[235],{"type":47,"value":236}," 30\n",{"type":42,"tag":43,"props":238,"children":239},{},[240],{"type":47,"value":241},"Use short, discriminative terms from the request: package names, module names, framework names, SDK names, team names, service names, or explicit repository names.",{"type":42,"tag":168,"props":243,"children":245},{"start":244},2,[246],{"type":42,"tag":70,"props":247,"children":248},{},[249,254,256,262],{"type":42,"tag":74,"props":250,"children":251},{},[252],{"type":47,"value":253},"Handle prefixed repository families carefully.",{"type":47,"value":255}," If the request mentions a prefix or wildcard such as ",{"type":42,"tag":50,"props":257,"children":259},{"className":258},[],[260],{"type":47,"value":261},"jcp-*",{"type":47,"value":263},", treat it as a repository-family constraint.",{"type":42,"tag":66,"props":265,"children":266},{},[267,288,293,298],{"type":42,"tag":70,"props":268,"children":269},{},[270,272,278,280,286],{"type":47,"value":271},"Query the prefix literally, for example ",{"type":42,"tag":50,"props":273,"children":275},{"className":274},[],[276],{"type":47,"value":277},"jcp",{"type":47,"value":279}," and ",{"type":42,"tag":50,"props":281,"children":283},{"className":282},[],[284],{"type":47,"value":285},"jcp-",{"type":47,"value":287},".",{"type":42,"tag":70,"props":289,"children":290},{},[291],{"type":47,"value":292},"Keep all suitable repos whose names start with that prefix.",{"type":42,"tag":70,"props":294,"children":295},{},[296],{"type":47,"value":297},"Do not replace a prefixed repo family with a similar unprefixed repo unless the repo results clearly show it is the right target.",{"type":42,"tag":70,"props":299,"children":300},{},[301,303,309,311,317],{"type":47,"value":302},"Preserve the exact repository ",{"type":42,"tag":50,"props":304,"children":306},{"className":305},[],[307],{"type":47,"value":308},"id",{"type":47,"value":310}," returned by ",{"type":42,"tag":50,"props":312,"children":314},{"className":313},[],[315],{"type":47,"value":316},"jbcontext repos",{"type":47,"value":318},"; do not infer ids from names.",{"type":42,"tag":182,"props":320,"children":324},{"className":321,"code":323,"language":47},[322],"language-text","jbcontext repos \"jcp-\" # show all repos started with jcp- prefix\n",[325],{"type":42,"tag":50,"props":326,"children":327},{"__ignoreMap":187},[328],{"type":47,"value":323},{"type":42,"tag":43,"props":330,"children":331},{},[332],{"type":47,"value":333},"You can omit query completely.",{"type":42,"tag":168,"props":335,"children":337},{"start":336},3,[338,348],{"type":42,"tag":70,"props":339,"children":340},{},[341,346],{"type":42,"tag":74,"props":342,"children":343},{},[344],{"type":47,"value":345},"Select suitable repos.",{"type":47,"value":347}," Prefer exact dependency-owner repos, exact service matches, prefix-family matches, and repos whose description\u002Fpath\u002Flanguage\u002Fpackage ecosystem matches the task. If there are many candidates, search the most likely 5-10 first, then expand if results are weak.",{"type":42,"tag":70,"props":349,"children":350},{},[351,356,358,364,366,371],{"type":42,"tag":74,"props":352,"children":353},{},[354],{"type":47,"value":355},"Search selected repos in parallel.",{"type":47,"value":357}," Invoke ",{"type":42,"tag":50,"props":359,"children":361},{"className":360},[],[362],{"type":47,"value":363},"jbcontext search",{"type":47,"value":365}," once per selected repository, passing the repository id from ",{"type":42,"tag":50,"props":367,"children":369},{"className":368},[],[370],{"type":47,"value":316},{"type":47,"value":372}," with the id option supported by the installed experimental CLI:",{"type":42,"tag":182,"props":374,"children":376},{"className":184,"code":375,"language":186,"meta":187,"style":187},"jbcontext search --repository-id \"\u003Crepo-id>\" --json-output --limit 10 \"\u003Csemantic dependency search query>\"\n",[377],{"type":42,"tag":50,"props":378,"children":379},{"__ignoreMap":187},[380],{"type":42,"tag":193,"props":381,"children":382},{"class":195,"line":196},[383,387,392,397,401,406,410,415,419,424,428,433],{"type":42,"tag":193,"props":384,"children":385},{"style":200},[386],{"type":47,"value":203},{"type":42,"tag":193,"props":388,"children":389},{"style":206},[390],{"type":47,"value":391}," search",{"type":42,"tag":193,"props":393,"children":394},{"style":206},[395],{"type":47,"value":396}," --repository-id",{"type":42,"tag":193,"props":398,"children":399},{"style":212},[400],{"type":47,"value":215},{"type":42,"tag":193,"props":402,"children":403},{"style":206},[404],{"type":47,"value":405},"\u003Crepo-id>",{"type":42,"tag":193,"props":407,"children":408},{"style":212},[409],{"type":47,"value":225},{"type":42,"tag":193,"props":411,"children":412},{"style":206},[413],{"type":47,"value":414}," --json-output",{"type":42,"tag":193,"props":416,"children":417},{"style":206},[418],{"type":47,"value":230},{"type":42,"tag":193,"props":420,"children":421},{"style":233},[422],{"type":47,"value":423}," 10",{"type":42,"tag":193,"props":425,"children":426},{"style":212},[427],{"type":47,"value":215},{"type":42,"tag":193,"props":429,"children":430},{"style":206},[431],{"type":47,"value":432},"\u003Csemantic dependency search query>",{"type":42,"tag":193,"props":434,"children":435},{"style":212},[436],{"type":47,"value":437},"\"\n",{"type":42,"tag":43,"props":439,"children":440},{},[441,443,449,451,456],{"type":47,"value":442},"If ",{"type":42,"tag":50,"props":444,"children":446},{"className":445},[],[447],{"type":47,"value":448},"jbcontext search --help",{"type":47,"value":450}," shows a different repository-id flag, use that flag, but still pass the exact id from ",{"type":42,"tag":50,"props":452,"children":454},{"className":453},[],[455],{"type":47,"value":316},{"type":47,"value":457},". Run independent repo searches in parallel when the agent environment supports parallel tool calls; otherwise keep results grouped by repository.",{"type":42,"tag":168,"props":459,"children":461},{"start":460},5,[462],{"type":42,"tag":70,"props":463,"children":464},{},[465,477,479,484,486,491],{"type":42,"tag":74,"props":466,"children":467},{},[468,470,476],{"type":47,"value":469},"Resolve snippets and repo information with ",{"type":42,"tag":50,"props":471,"children":473},{"className":472},[],[474],{"type":47,"value":475},"gh",{"type":47,"value":287},{"type":47,"value":478}," When ",{"type":42,"tag":50,"props":480,"children":482},{"className":481},[],[483],{"type":47,"value":363},{"type":47,"value":485}," returns promising snippets, use the GitHub CLI to fetch full manifests, lockfiles, source files, surrounding code, default branch, repo metadata, owners, recent commits, or related dependency PRs\u002Fissues before relying on the match. Use the GitHub owner\u002Fname or URL from ",{"type":42,"tag":50,"props":487,"children":489},{"className":488},[],[490],{"type":47,"value":316},{"type":47,"value":492}," when available.",{"type":42,"tag":182,"props":494,"children":496},{"className":184,"code":495,"language":186,"meta":187,"style":187},"gh repo view \"\u003Cowner>\u002F\u003Crepo>\" --json nameWithOwner,description,defaultBranchRef,url\ngh api \"repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fcontents\u002F\u003Cpath>?ref=\u003Cref>\" -H \"Accept: application\u002Fvnd.github.raw\"\n",[497],{"type":42,"tag":50,"props":498,"children":499},{"__ignoreMap":187},[500,540],{"type":42,"tag":193,"props":501,"children":502},{"class":195,"line":196},[503,507,512,517,521,526,530,535],{"type":42,"tag":193,"props":504,"children":505},{"style":200},[506],{"type":47,"value":475},{"type":42,"tag":193,"props":508,"children":509},{"style":206},[510],{"type":47,"value":511}," repo",{"type":42,"tag":193,"props":513,"children":514},{"style":206},[515],{"type":47,"value":516}," view",{"type":42,"tag":193,"props":518,"children":519},{"style":212},[520],{"type":47,"value":215},{"type":42,"tag":193,"props":522,"children":523},{"style":206},[524],{"type":47,"value":525},"\u003Cowner>\u002F\u003Crepo>",{"type":42,"tag":193,"props":527,"children":528},{"style":212},[529],{"type":47,"value":225},{"type":42,"tag":193,"props":531,"children":532},{"style":206},[533],{"type":47,"value":534}," --json",{"type":42,"tag":193,"props":536,"children":537},{"style":206},[538],{"type":47,"value":539}," nameWithOwner,description,defaultBranchRef,url\n",{"type":42,"tag":193,"props":541,"children":542},{"class":195,"line":244},[543,547,552,556,561,565,570,574,579],{"type":42,"tag":193,"props":544,"children":545},{"style":200},[546],{"type":47,"value":475},{"type":42,"tag":193,"props":548,"children":549},{"style":206},[550],{"type":47,"value":551}," api",{"type":42,"tag":193,"props":553,"children":554},{"style":212},[555],{"type":47,"value":215},{"type":42,"tag":193,"props":557,"children":558},{"style":206},[559],{"type":47,"value":560},"repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fcontents\u002F\u003Cpath>?ref=\u003Cref>",{"type":42,"tag":193,"props":562,"children":563},{"style":212},[564],{"type":47,"value":225},{"type":42,"tag":193,"props":566,"children":567},{"style":206},[568],{"type":47,"value":569}," -H",{"type":42,"tag":193,"props":571,"children":572},{"style":212},[573],{"type":47,"value":215},{"type":42,"tag":193,"props":575,"children":576},{"style":206},[577],{"type":47,"value":578},"Accept: application\u002Fvnd.github.raw",{"type":42,"tag":193,"props":580,"children":581},{"style":212},[582],{"type":47,"value":437},{"type":42,"tag":168,"props":584,"children":586},{"start":585},6,[587],{"type":42,"tag":70,"props":588,"children":589},{},[590,595],{"type":42,"tag":74,"props":591,"children":592},{},[593],{"type":47,"value":594},"Synthesize dependency findings.",{"type":47,"value":596}," Report which repos were searched, which repos had useful matches, the dependency declarations\u002Fusages found, known versions or config variants, likely owners, and recommended follow-up checks. If no suitable repo is found, say which repo filters were tried before stopping.",{"type":42,"tag":59,"props":598,"children":600},{"id":599},"search-guidance",[601],{"type":47,"value":602},"Search Guidance",{"type":42,"tag":66,"props":604,"children":605},{},[606,618,623,628,640,645,650],{"type":42,"tag":70,"props":607,"children":608},{},[609,611,616],{"type":47,"value":610},"Use semantic, behavior-focused queries for ",{"type":42,"tag":50,"props":612,"children":614},{"className":613},[],[615],{"type":47,"value":363},{"type":47,"value":617},"; avoid one-word searches.",{"type":42,"tag":70,"props":619,"children":620},{},[621],{"type":47,"value":622},"Include ecosystem-specific terms when useful, such as manifest names, package manager names, import namespaces, generated client names, runtime names, or version strings.",{"type":42,"tag":70,"props":624,"children":625},{},[626],{"type":47,"value":627},"Search both declarations and runtime usage; dependency manifests alone can miss generated, vendored, plugin, or transitive usage.",{"type":42,"tag":70,"props":629,"children":630},{},[631,633,638],{"type":47,"value":632},"Re-run ",{"type":42,"tag":50,"props":634,"children":636},{"className":635},[],[637],{"type":47,"value":316},{"type":47,"value":639}," with narrower or prefix-aware terms before broadening code search.",{"type":42,"tag":70,"props":641,"children":642},{},[643],{"type":47,"value":644},"Use path filters only after repo-level matches identify likely directories.",{"type":42,"tag":70,"props":646,"children":647},{},[648],{"type":47,"value":649},"Keep repository names and ids visible in notes so later searches can be reproduced.",{"type":42,"tag":70,"props":651,"children":652},{},[653,655,660],{"type":47,"value":654},"Use ",{"type":42,"tag":50,"props":656,"children":658},{"className":657},[],[659],{"type":47,"value":475},{"type":47,"value":661}," to resolve snippets into full source context and to gather more information about matching repositories.",{"type":42,"tag":663,"props":664,"children":665},"style",{},[666],{"type":47,"value":667},"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":669,"total":740},[670,682,696,705,715,725,731],{"slug":671,"name":671,"fn":672,"description":673,"org":674,"tags":675,"stars":22,"repoUrl":23,"updatedAt":681},"blast-radius","analyze blast radius of code changes","Experimental jbcontext org-wide blast-radius analysis across multiple repositories. Use when Codex needs to estimate the impact of changing an API, endpoint, schema, event, shared library, config, feature flag, data model, behavior, or dependency by finding producers, consumers, owners, tests, and related repos.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[676,679,680],{"name":677,"slug":678,"type":15},"Architecture","architecture",{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},"2026-07-13T06:43:52.366136",{"slug":683,"name":683,"fn":684,"description":685,"org":686,"tags":687,"stars":22,"repoUrl":23,"updatedAt":695},"context-install","install and configure jbcontext","Install jbcontext and complete first-time setup — login and configure agent integration. Use when `jbcontext` is not found or the user asks to install jbcontext.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[688,691,692],{"name":689,"slug":690,"type":15},"CLI","cli",{"name":17,"slug":18,"type":15},{"name":693,"slug":694,"type":15},"Onboarding","onboarding","2026-07-13T06:43:56.417787",{"slug":697,"name":697,"fn":698,"description":699,"org":700,"tags":701,"stars":22,"repoUrl":23,"updatedAt":704},"context-research","research unfamiliar codebases using semantic search","Research and understand unfamiliar codebases using semantic search with `jbcontext search`",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[702,703],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},"2026-07-17T06:06:53.804135",{"slug":706,"name":706,"fn":707,"description":708,"org":709,"tags":710,"stars":22,"repoUrl":23,"updatedAt":714},"context-review","review code changes with semantic search","Use this skill to review code changes using semantic search to understand context and impact",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[711,712,713],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-13T06:43:53.79735",{"slug":716,"name":716,"fn":717,"description":718,"org":719,"tags":720,"stars":22,"repoUrl":23,"updatedAt":724},"context-search","explore codebases using semantic search","Semantic code search for discovering and understanding code by meaning rather than keywords.\n- Use this skill when you need to find code whose location you don't already know - e.g., when the task asks 'where is X', 'how does Y work', or describes behavior or intent without naming exact symbols.\n- When not to use: if you already know the relevant file, class, or symbol (use direct navigation or keyword search instead), or for non-code-discovery tasks such as git operations, builds, tests, or reviewing an existing diff.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[721,722,723],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-30T05:28:03.252026",{"slug":4,"name":4,"fn":5,"description":6,"org":726,"tags":727,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[728,729,730],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":732,"name":732,"fn":733,"description":734,"org":735,"tags":736,"stars":22,"repoUrl":23,"updatedAt":739},"org-search","perform org-wide semantic code search","Experimental jbcontext org-wide semantic search across multiple repositories",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[737,738],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},"2026-07-17T06:04:43.196869",7,{"items":742,"total":867},[743,757,766,775,784,794,807,816,825,835,844,857],{"slug":744,"name":744,"fn":745,"description":746,"org":747,"tags":748,"stars":754,"repoUrl":755,"updatedAt":756},"mps-aspect-accessories","configure JetBrains MPS module dependencies","Wire MPS module and model dependencies, used languages, used devkits, extended languages, runtime solutions, accessory models, and language\u002Fdependency versions. Use when adding\u002Fremoving module dependencies, importing languages or devkits into a model, declaring runtime solutions, or shipping accessory content visible to consumers without explicit import.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[749,750,753],{"name":677,"slug":678,"type":15},{"name":751,"slug":752,"type":15},"Configuration","configuration",{"name":17,"slug":18,"type":15},1650,"https:\u002F\u002Fgithub.com\u002FJetBrains\u002FMPS","2026-07-17T06:06:57.311661",{"slug":758,"name":758,"fn":759,"description":760,"org":761,"tags":762,"stars":754,"repoUrl":755,"updatedAt":765},"mps-aspect-actions","define and edit MPS node factories","Use when defining or editing MPS node factories (the \"actions\" aspect) — `NodeFactories` roots, per-concept `NodeFactory` setup functions that initialize a freshly created node and optionally copy data from a replaced `sampleNode`, plus the actions aspect's `CopyPasteHandlers` and `PasteWrappers` roots. Reach for this skill when a substitution, side transform, completion replacement, or `add new initialized(...)` should preserve fields from the node it is replacing, or when defaults set in a constructor are not enough.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[763,764],{"name":677,"slug":678,"type":15},{"name":17,"slug":18,"type":15},"2026-07-17T06:04:48.066901",{"slug":767,"name":767,"fn":768,"description":769,"org":770,"tags":771,"stars":754,"repoUrl":755,"updatedAt":774},"mps-aspect-behavior","define and edit MPS concept behavior","Use when defining or editing MPS `ConceptBehavior` — per-concept methods (non-virtual \u002F virtual \u002F abstract \u002F static \u002F virtual static), constructors, virtual dispatch (MRO), super and interface-default calls (`super\u003CInterface>.method`), overriding methods from `lang.core.behavior` interfaces such as `ScopeProvider.getScope` \u002F `INamedConcept.getName` \u002F `BaseConcept.getPresentation`, calling sibling methods (`LocalBehaviorMethodCall`) and behavior methods from other aspects via `node.method(...)`. Reach for this skill whenever the task involves authoring or modifying `\u003Clang>\u002FlanguageModels\u002Fbehavior.mps`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[772,773],{"name":677,"slug":678,"type":15},{"name":17,"slug":18,"type":15},"2026-07-13T06:45:21.757084",{"slug":776,"name":776,"fn":777,"description":778,"org":779,"tags":780,"stars":754,"repoUrl":755,"updatedAt":783},"mps-aspect-constraints","define JetBrains MPS language constraints","Use when defining or editing MPS language constraints — property validators \u002F setters \u002F getters, referent search scopes (imperative or inherited via `ScopeProvider.getScope`), `referentSetHandler` side effects, default-scope blocks, `canBeChild` \u002F `canBeParent` \u002F `canBeAncestor` \u002F `canBeRoot` placement rules, `defaultConcreteConcept` for abstract concepts, `set \u003Cread-only>` and `{name}` aliasing, and scope helpers (`SimpleRoleScope`, `ListScope`, `CompositeScope`, `HidingByNameScope`). Reach for this skill whenever the task involves authoring or modifying `\u003Clang>\u002FlanguageModels\u002Fconstraints.mps`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[781,782],{"name":677,"slug":678,"type":15},{"name":20,"slug":21,"type":15},"2026-07-23T05:41:33.639365",{"slug":785,"name":785,"fn":786,"description":787,"org":788,"tags":789,"stars":754,"repoUrl":755,"updatedAt":793},"mps-aspect-dataflow","define and debug MPS dataflow builders","Use when defining or debugging MPS dataflow builders for a concept — control\u002Fdata flow declarations that drive reachability analysis and variable-use checking. Covers DataFlowBuilderDeclaration, BuilderBlock, emit instructions (code for, jump, ifjump, label, read, write, ret, mayBeUnreachable), positions (AfterPosition, BeforePosition, LabelPosition), the jetbrains.mps.lang.dataFlow language, the NodeParameter implicit, BL+smodel usage inside builder bodies, and IBuilderMode for advanced analyses such as nullable\u002Fnon-null tracking.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[790],{"name":791,"slug":792,"type":15},"Data Analysis","data-analysis","2026-07-13T06:45:19.114674",{"slug":795,"name":795,"fn":796,"description":797,"org":798,"tags":799,"stars":754,"repoUrl":755,"updatedAt":806},"mps-aspect-editor","define MPS editor layouts","Use when creating or changing MPS editor definitions — the overall workflow from scaffolding a `ConceptEditorDeclaration` through componentizing reusable `EditorComponentDeclaration`s, refining cell models and cell layouts, applying style sheets and indent-layout style items, wiring smart references, leveraging inheritance via super-concepts and interfaces, inspecting (`print_node_json`, `show_node_representation`) and validating (`check_root_node_problems`). Covers `jetbrains.mps.lang.editor` cell models (`CellModel_RefNode`\u002F`CellModel_RefNodeList`\u002F`CellModel_RefCell`\u002F`CellModel_Property`\u002F`CellModel_Constant`), layout choices, and JSON blueprints for common editor shapes. For the non-layout side (action maps, keymaps, transformation\u002Fsubstitute menus) use `mps-aspect-editor-menus-and-keymaps`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[800,803],{"name":801,"slug":802,"type":15},"Design","design",{"name":804,"slug":805,"type":15},"UI Components","ui-components","2026-07-23T05:41:56.638151",{"slug":808,"name":808,"fn":809,"description":810,"org":811,"tags":812,"stars":754,"repoUrl":755,"updatedAt":815},"mps-aspect-editor-menus-and-keymaps","author MPS editor menus and keymaps","Use when authoring the **non-layout** parts of the MPS editor aspect — what happens when the user types, presses a key, triggers completion, pastes, or invokes a context action. Covers action maps (`CellActionMapDeclaration`), cell keymaps (`CellKeyMapDeclaration`), transformation menus (`TransformationMenu_Default` \u002F `_Named` \u002F `_Contribution`), substitute menus (`SubstituteMenu_Default` \u002F `SubstituteMenu` \u002F contributions), side transforms (LEFT\u002FRIGHT), legacy cell menus, paste wrappers and copy-paste handlers (in the actions language), completion styling, reference presentation, two-step deletion, and the editor selection API. Trigger terms: `actionMap`, `keyMap`, `delete_action_id`, `transformationMenu`, `substituteMenu`, `Ctrl+Space`, `Ctrl+Alt+B`, side transform, paste wrapper, completion styling, `PasteWrappers`, `CopyPasteHandlers`. For the **layout** side (cells, layouts, style sheets) use `mps-aspect-editor` instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[813,814],{"name":17,"slug":18,"type":15},{"name":804,"slug":805,"type":15},"2026-07-23T05:41:49.666535",{"slug":817,"name":817,"fn":818,"description":819,"org":820,"tags":821,"stars":754,"repoUrl":755,"updatedAt":824},"mps-aspect-generation-plan","modify MPS generation plans","Use when defining or modifying an MPS generation plan — explicit ordering of generators, checkpoints for cross-model reference resolution, forks for parallel branches, IncludePlan composition, conditional PlanContribution activation, ParameterEquals\u002FConceptListSelector fork selectors, and InitModelAttributes for targetFacet routing. Apply when working with @genplan models, the jetbrains.mps.lang.generator.plan language, attaching plans via DevKits or the Custom generation facet, or debugging cross-model mapping label resolution.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[822,823],{"name":677,"slug":678,"type":15},{"name":17,"slug":18,"type":15},"2026-07-13T06:44:59.507855",{"slug":826,"name":826,"fn":827,"description":828,"org":829,"tags":830,"stars":754,"repoUrl":755,"updatedAt":834},"mps-aspect-generator","define JetBrains MPS generator rules","Use when defining or modifying MPS generators — author a generator module, add or edit root\u002Freduction\u002Fweaving\u002Fpattern mapping rules, attach template macros ($COPY_SRC, $LOOP, $IF, $PROPERTY, $REF, $SWITCH, $MAP_SRC, $WEAVE, $INSERT, $LABEL, $TRACE, $VAR), wire mapping labels, build template switches, write pre\u002Fpost mapping scripts, navigate `genContext`, or debug \"rule didn't fire\", missing references, empty output, infinite reduction loops, and generated-Java compile failures.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[831,832,833],{"name":677,"slug":678,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},"2026-07-17T06:06:58.042999",{"slug":836,"name":836,"fn":837,"description":838,"org":839,"tags":840,"stars":754,"repoUrl":755,"updatedAt":843},"mps-aspect-intentions","define and edit MPS intentions","Use when defining or editing MPS intentions (the Alt+Enter context-action aspect) — adding `IntentionDeclaration` roots, parameterized or surround-with variants, description\u002FisApplicable\u002Fexecute blocks, child-filter functions, factory-initialized AST splicing, or debugging why an intention is not offered. Lives in the language's `intentions` model and uses `jetbrains.mps.lang.intentions`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[841,842],{"name":677,"slug":678,"type":15},{"name":17,"slug":18,"type":15},"2026-07-23T05:41:48.692899",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":754,"repoUrl":755,"updatedAt":856},"mps-aspect-migrations","author and debug MPS migration scripts","Use when authoring or debugging MPS migration scripts that upgrade user models after a language definition changes — covers jetbrains.mps.lang.migration (MigrationScript class-based, PureMigrationScript declarative, MoveConcept\u002FMoveContainmentLink\u002FMoveReferenceLink\u002FMoveProperty, ordering via OrderDependency, data exchange via putData\u002FgetData, RefactoringLog, ConceptMigrationReference) and jetbrains.mps.lang.script Enhancement Scripts (MigrationScript with MigrationScriptPart_Instance, ExtractInterfaceMigration, FactoryMigrationScriptPart, CommentMigrationScriptPart) — when a model needs version-gated upgrade, concept rename or removal, link or property rename, instance-level transformation, or composition of migration steps.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[850,853],{"name":851,"slug":852,"type":15},"Debugging","debugging",{"name":854,"slug":855,"type":15},"Migration","migration","2026-07-13T06:45:20.372122",{"slug":858,"name":858,"fn":859,"description":860,"org":861,"tags":862,"stars":754,"repoUrl":755,"updatedAt":866},"mps-aspect-structure-concepts","define concepts in MPS structure aspect","Define concepts, interface concepts, enumerations, and constrained data types in an MPS language's `structure` aspect. Covers smart-reference detection, alias rules, cardinality, INamedConcept usage, bulk creation, and the full `mps_mcp_alter_structure` \u002F `mps_mcp_query_structure` reference. Use when authoring or modifying a language's structure model.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[863],{"name":864,"slug":865,"type":15},"Data Modeling","data-modeling","2026-07-23T05:41:30.705975",188]