Skip to main content

plugin-model-analyzer

Query IntelliJ Product DSL modules, products, plugin graphs, loading, and packaging.

Ir para a instalação

Informações da origem

Repositório
JetBrains/intellij-community
Última atividade na origem
5 de agosto de 2026 às 18:20
Idioma detectado do SKILL.md
inglês
Estrelas
20.445
Forks
6.009

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
plugin-model-analyzer
description
Query IntelliJ Product DSL modules, products, plugin graphs, loading, and packaging.
<!-- Generated by community/.ai/render-guides.mjs; edit community/.agents/skills/plugin-model-analyzer/SKILL.md --> # Plugin Model Analyzer Use the Product DSL analyzer directly through Bazel. Do not call the retired `PluginModelAnalyzer` MCP server. ## Command Shape Run from the repository root: ```bash bazel run --ui_event_filters=-info --noshow_progress //platform/buildScripts:plugin-model-tool -- --json='<request-json>' ``` The output is JSON with a `timestamp` plus one result property named after the requested filter. Prefer small, typed JSON requests. Avoid unfiltered `--json`: it emits the full model and is usually too large for agent context. Use JSON fields, not extra CLI flags, to describe the query. Treat the single top-level result property as the answer. Transport options: - Short request: `--json='{"filter":"summary","limit":5}'` - Stdin request: `--json=-` - File request: `--json=@/private/tmp/plugin-model-query.json` ## Common Requests Module overview: ```json {"filter":"moduleInfo","module":"intellij.platform.vcs.impl","limit":20} ``` Module dependencies: ```json {"filter":"moduleDependencies","module":"intellij.platform.vcs.impl","includeTransitive":false,"includeTestDependencies":false} ``` Dependency path: ```json {"filter":"dependencyPath","fromModule":"intellij.platform.vcs.impl","toModule":"intellij.platform.projectModel.impl","includeTestDependencies":true,"includeScopes":true} ``` Module owners: ```json {"filter":"moduleOwners","module":"intellij.platform.vcs.impl","includeTestSources":true} ``` Module-set details or search: ```json {"filter":"moduleSetQuery","moduleSet":"ide.common","details":false,"limit":50} {"filter":"moduleSetQuery","name":"vcs","location":"COMMUNITY","minModuleCount":3,"limit":20} ``` Product details or search: ```json {"filter":"productQuery","product":"idea","details":false,"limit":50} {"filter":"productQuery","usesModuleSet":"ide.common","limit":30} ``` Product comparison and trace path: ```json {"filter":"productCompare","product":"idea","product2":"Idea","limit":50} {"filter":"productTracePath","product":"idea","moduleSet":"ide.common","limit":20} ``` Embedded dependency closure: ```json {"filter":"embeddedDependencyClosure","value":"idea","moduleSet":"ide.common","pluginSourceOnly":true} ``` Merge or inline impact: ```json {"filter":"mergeImpact","source":"some.module.set","target":"target.module.set","operation":"merge"} {"filter":"mergeImpact","source":"some.module.set","operation":"inline"} ``` Validation and loading-rule checks: ```json {"filter":"validation","check":"community_products"} {"filter":"validation","check":"module_set_locations"} {"filter":"validation","check":"loading_inconsistencies"} {"filter":"validation","check":"embedded_dependency_closure","product":"idea","pluginSourceOnly":true} {"filter":"moduleLoading","loading":"EMBEDDED","limit":100} ``` Refactoring candidates: ```json {"filter":"moduleSetOverlap","minOverlapPercent":70,"limit":20} {"filter":"productSimilarity","threshold":0.8,"limit":20} {"filter":"unificationSuggestions","strategy":"merge","limit":10} {"filter":"redundantModuleSetRefs","product":"idea","limit":50} {"filter":"suggestModuleSetsForModules","modules":["intellij.platform.vcs.impl","intellij.platform.vcs.log.impl"],"limit":20} ``` Deprecated `xi:include` usage: ```json {"filter":"deprecatedIncludes","product":"idea","limit":100} ``` ## Old MCP Operation Map Use this map when a prompt or older instruction mentions the retired `PluginModelAnalyzer` MCP operation names. | Old operation | JSON request | | --- | --- | | `analyze_module_structure` | `{"filter":"summary"}` | | module `info` | `{"filter":"moduleInfo","module":"<module>"}` | | module `dependencies` | `{"filter":"moduleDependencies","module":"<module>"}` | | module `paths` | `{"filter":"modulePaths","module":"<module>"}` | | module `reachability` | `{"filter":"moduleReachability","module":"<module>","moduleSet":"<set>"}` | | module `find_by_loading` | `{"filter":"moduleLoading","loading":"EMBEDDED","details":true}` | | module `dependency_path` | `{"filter":"dependencyPath","fromModule":"<from>","toModule":"<to>","includeScopes":true}` | | module-set `info` | `{"filter":"moduleSetQuery","moduleSet":"<set>"}` | | module-set `search` | `{"filter":"moduleSetQuery","name":"<name>","location":"COMMUNITY","limit":20}` | | module-set `hierarchy` | `{"filter":"moduleSetQuery","moduleSet":"<set>","details":true}` | | module-set `overlap` | `{"filter":"moduleSetOverlap","minOverlapPercent":70,"limit":20}` | | module-set `graph` | No ASCII graph output; use `moduleSetQuery` plus `productTracePath` or `productUsage` for structured edges. | | module-set `suggest_for_modules` | `{"filter":"suggestModuleSetsForModules","modules":["<module>"]}` | | product `info` | `{"filter":"productQuery","product":"<product>"}` | | product `search` | `{"filter":"productQuery","name":"<name>","limit":20}` | | product `compare` | `{"filter":"productCompare","product":"<product1>","product2":"<product2>"}` | | product `similar` | `{"filter":"productSimilarity","threshold":0.8,"limit":20}` | | product `composition` | `{"filter":"composition"}` for all products; use `productQuery` for one product. | | product `trace_path` | `{"filter":"productTracePath","product":"<product>","moduleSet":"<set>"}` | | product `deprecated_includes` | `{"filter":"deprecatedIncludes","product":"<product>"}` | | product `full_analysis` | Avoid unless explicitly needed; omit the filter only when the full raw model is required. | | validation `community_products` | `{"filter":"validation","check":"community_products"}` | | validation `module_set_locations` | `{"filter":"validation","check":"module_set_locations"}` | | validation `loading_inconsistencies` | `{"filter":"validation","check":"loading_inconsistencies"}` | ## Fast Recipes Where is a module included? ```json {"filter":"moduleInfo","module":"<module>","limit":50} {"filter":"modulePaths","module":"<module>"} ``` What depends on what, and why? ```json {"filter":"moduleDependencies","module":"<module>","includeTransitive":false,"includeTestDependencies":false} {"filter":"dependencyPath","fromModule":"<from>","toModule":"<to>","includeTestDependencies":true,"includeScopes":true} ``` Who owns a module? ```json {"filter":"moduleOwners","module":"<module>","includeTestSources":true} ``` Which products or module sets use something? ```json {"filter":"moduleInfo","module":"<module>","limit":50} {"filter":"productQuery","usesModuleSet":"<module-set>","limit":50} {"filter":"productUsage","moduleSet":"<module-set>"} ``` Can a module stop being embedded? ```json {"filter":"moduleInfo","module":"<module>","limit":50} {"filter":"moduleLoading","loading":"EMBEDDED","details":true,"limit":200} {"filter":"validation","check":"embedded_dependency_closure","module":"<module>","pluginSourceOnly":true} ``` For the loading query, inspect `moduleLoading.result.entries.items` for the target module; `moduleLoading` filters by loading rule, not by module name. The embedded closure check answers whether an embedded source module has dependencies that are not also supplied by embedded sources in affected products. Did a Product DSL edit introduce placement or loading problems? ```json {"filter":"validation","check":"community_products"} {"filter":"validation","check":"module_set_locations"} {"filter":"validation","check":"loading_inconsistencies"} {"filter":"validation","check":"embedded_dependency_closure","pluginSourceOnly":true} ``` Which module set should contain these modules? ```json {"filter":"suggestModuleSetsForModules","modules":["<module1>","<module2>"],"limit":20} ``` ## Reading Output - Compact list fields use `count`, `items`, and `truncated`; increase `limit` or set `details:true` only when needed. - Some focused filters return an `error` field in JSON for missing selectors or unknown names; a successful process exit does not always mean the query matched. - For direct `embeddedDependencyClosure`, use `value` for the product selector. The validation wrapper accepts `product` or `value`. - `location` values are `COMMUNITY` or `ULTIMATE`. `loading` values are `EMBEDDED`, `REQUIRED`, `OPTIONAL`, `ON_DEMAND`, or `UNSPECIFIED`. ## Request Fields Use only fields relevant to the filter. Omit false, null, and default values unless they are semantically important. Core selectors: `filter`, `value`, `module`, `moduleSet`, `product`, `product2`, `name`, `location`, `usesModuleSet`, `modules`, `fromModule`, `toModule`, `source`, `target`.
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub