Skip to main content

plugin-model-analyzer

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

Ir a la instalación

Datos de origen

Repositorio
JetBrains/intellij-community
Última actividad en el origen
5 de agosto de 2026 a las 18:20
Idioma detectado de SKILL.md
inglés
Estrellas
20.445
Forks
6009

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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 en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub