Skip to main content

plugin-model-analyzer

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

설치로 이동

소스 정보

저장소
JetBrains/intellij-community
최근 소스 활동
2026년 8월 5일 18:20
감지된 SKILL.md 언어
영어
스타
20,445
포크
6,009

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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 --> <!-- 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.
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기