{"owner":"JetBrains","repo":"intellij-community","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"---\nproject: IntelliJ IDEA Platform\nlanguages: [Kotlin, Java]\nframework: IntelliJ Platform SDK\nbuild-system: Bazel\nrepository: monorepo\n---\n\n<!-- Generated by community/.ai/render-guides.mjs; edit community/.ai/* -->\n\n**Critical:** These guidelines MUST be followed at all times.\n\n## Project Invariants\n\n- Module/plugin directories may contain their own AGENTS/CLAUDE instructions; follow them when present.\n- `*.iml` files are the source of truth and auto-generate `BUILD.bazel` files.\n- When adding or editing a JPS module `.iml`, run `bun build/jps-module.mjs register <path-to-iml> --fix-iml-eof` before `./build/jpsModelToBazel.cmd`. This keeps `.idea/modules.xml` and `community/.idea/modules.xml` in canonical order.\n- User-visible strings belong in `*.properties` for localization.\n\n## Workspace Isolation\n\nDo not create ad hoc Git worktrees or clones, or install a workspace manager, on your own initiative. Before any workspace-isolation action, read and follow [Workspace Isolation](./.ai/workspace-isolation.md), which also covers the explicit-request exception.\n\n## Module-specific rules\n\nFor files under these roots, read the referenced rules before edits or reviews; they override conflicting general guidance.\n\n- **Product DSL** (`platform/build-scripts/product-dsl/`): follow its `AGENTS.md`.\n- **IJ Proxy MCP server** (`community/build/mcp-servers/ij-proxy/`):\n  - Tests: run `bun run build` and `bun test`.\n  - Bazel: do not run Bazel build and tests here.\n- **AI Assistant activation** (`plugins/llm/activation/`):\n  - Activation: follow `plugins/llm/activation/.ai/guidelines.md` before edits or reviews.\n- **Toolbox** (`toolbox/`):\n  - Tests: never use `./tests.cmd`; see `toolbox/.ai/index.md` for Gradle/Bazel test commands.\n  - Build: use `./bazel.cmd build //toolbox/...` instead of `./bazel-build-all.cmd`.\n- **PyCharm** (`./python`): use `./python/.ai/index.md`.\n\n## Mandatory Rules\n\n### After Code Changes\n\n- **Run affected tests:** `./tests.cmd --module <module> --test <FQN or wildcard>` (**FQN required; simple class names do not match; always specify the test module directly**), or `node --test <file>` for `*.test.mjs`.\n  `tests.cmd` performs Bazel compilation internally, so a separate `bazel build` step is not needed when tests will be run.\n  Module-specific rules may override the runner. Skip if plugin has no tests. See [TESTING](./.agents/skills/testing/SKILL.md).\n- **Bazel compilation without tests:** when only verifying compilation (no tests to run), use `bazel build <target>` for affected modules. Skip if only `.js`, `.mjs`, `.md`, `.txt`, or `.json` files are modified.\n- After modifying `*.iml`, `BUILD.bazel`, or `.idea/` files: run `./build/jpsModelToBazel.cmd`.\n\n### After Writing Code\n\n- Use `lint_files` to check files for warnings when ijproxy or JetBrains MCP is available.\n  Fix any warnings related to the code changes made. You may ignore unrelated warnings.\n\n## Repository-wide rules\n\nPreserve IDE-serialized .iml files in canonical form. Do not:\n\n- add comments\n- auto-format\n- normalize (structure or whitespace)\n- add a trailing newline at end of file\n- prune (remove) empty tags\n- reorder elements or attributes\n\nUse `bun build/jps-module.mjs register <path-to-iml> --fix-iml-eof` for module registration and `.iml` EOF cleanup instead of hand-editing `.idea/modules.xml`. The canonical `modules.xml` order is by `.iml` basename without the `.iml` suffix, matching `org.jetbrains.intellij.build.ModulesXml`.\n\n## Tools\n\nNever use the `code-search` skill; the search tools below replace it.\n\n### File operations (read / edit / write / list)\n\nUse the file-operation mechanism supported by the active harness. ijproxy is reserved for search and semantic operations; it does not provide direct file read, edit, write, or directory-listing tools.\n\n- Read/List: use dedicated harness tools when available. If none are exposed, use `cat` or read-only `sed` for file content and `ls` for directory listings.\n- Edit/Write: use the mechanism provided by the active harness.\n\n### Search & navigation (ijproxy preferred)\n\nDefault to `search_symbol` for classes, methods, and fields; use `search_text` and `search_regex` mainly for strings, comments, and other non-symbol matches.\n\nCodex exposes these as `mcp__ijproxy__<name>`; inspect the deferred tool catalog (`ALL_TOOLS`) for them before using a shell or non-ijproxy fallback.\n\n- Search symbols: `search_symbol`\n- Find files (glob): `search_file`\n- Search text: `search_text`\n- Search regex: `search_regex`\n\n### Client fallback (no MCP)\n\n- **No MCP:** use `./tools/fd.cmd` (file search) and `./tools/rg.cmd` (text/regex search) as shell search fallbacks.\n\n### IDE-backed semantic tools\n\nAvailable via ijproxy or JetBrains MCP. Prefer a real refactoring over manual search/replace.\n\n- Inspections & symbol info: `lint_files`, `get_symbol_info`\n- Refactors: `rename` (ijproxy) / `rename_refactoring` (JetBrains MCP)\n- Formatting: `reformat_file`\n- Concurrency checks: `find_threading_requirements_usages`, `find_lock_requirements_usages`\n- Project structure & VCS: `get_project_modules`, `get_project_dependencies`, `get_repositories`, `git_status`\n- Run configs: `get_run_configurations`, `execute_run_configuration`\n\n### Tooling rules\n\n- For content/symbol **search** and semantic operations, prefer ijproxy; fall back to JetBrains MCP, then to the client fallback, only when ijproxy is unavailable.\n- For file **read / edit / write / directory listing**, use the active harness tools; ijproxy has none.\n- Don't shell for file **search** on repo paths, and expect this to be enforced: the `Glob` and `Grep` tools are denied outright, and so are the `grep` and `find` commands, in every pipeline position. Pipe into `./tools/rg.cmd` instead of `| grep` -- it reads stdin. Use ijproxy search, or `./tools/fd.cmd` and `./tools/rg.cmd` when no MCP is available.\n- The repo's documented wrapper commands are allowlisted, so prefer them over a hand-rolled equivalent: a spelling the list knows runs without a prompt, a novel one does not. The list is `community/.ai/tool-permissions.json`, rendered into each harness's own config; add an entry there and rerun `community/.ai/render-guides.mjs` rather than editing a harness allowlist by hand.\n- Shell is allowed where explicitly documented above and for git (prefer `git_status` if the tool is available), build/test.\n- Outside repo: native shell permitted, except for text/file search — use `./tools/rg.cmd` and `./tools/fd.cmd` (absolute paths OK) instead of native `grep`/`find`.\n- Windows/PowerShell exception: do not pass literal shell metacharacters such as `<`, `>`, `|`, or `&` through `.cmd` search wrappers, even inside quotes. For `rg.cmd` alternation, use repeated `-e` patterns (`./tools/rg.cmd -n -e \"foo\" -e \"bar\" path/to/file.kt`) instead of `\"foo|bar\"`. For single-file conflict-marker checks, use `Select-String -SimpleMatch -Pattern '<<<<<<<','=======','>>>>>>>' -Path <file>` instead of retrying `rg.cmd` with different quoting.\n- `fd.cmd` and `rg.cmd` skip dot-directories by default. Agent assets live in `.agents/`, `.claude/`, `.junie/`, `.opencode/` — pass `-H` (`--hidden`) when looking for skills, guidelines, or hooks, or you will conclude they do not exist.\n\n### Skills\n\nThe harness may list skill *names* only, without descriptions. When a task looks like something a skill covers, read the index for what each name does before improvising:\n\n- Skill index: [`.agents/skills/INDEX.md`](./.agents/skills/INDEX.md)\n\n## Individual Preferences\n\n**Local Preferences:** @./.ai/local.md\n"},"files":{"AGENTS.md":"---\nproject: IntelliJ IDEA Platform\nlanguages: [Kotlin, Java]\nframework: IntelliJ Platform SDK\nbuild-system: Bazel\nrepository: monorepo\n---\n\n<!-- Generated by community/.ai/render-guides.mjs; edit community/.ai/* -->\n\n**Critical:** These guidelines MUST be followed at all times.\n\n## Project Invariants\n\n- Module/plugin directories may contain their own AGENTS/CLAUDE instructions; follow them when present.\n- `*.iml` files are the source of truth and auto-generate `BUILD.bazel` files.\n- When adding or editing a JPS module `.iml`, run `bun build/jps-module.mjs register <path-to-iml> --fix-iml-eof` before `./build/jpsModelToBazel.cmd`. This keeps `.idea/modules.xml` and `community/.idea/modules.xml` in canonical order.\n- User-visible strings belong in `*.properties` for localization.\n\n## Workspace Isolation\n\nDo not create ad hoc Git worktrees or clones, or install a workspace manager, on your own initiative. Before any workspace-isolation action, read and follow [Workspace Isolation](./.ai/workspace-isolation.md), which also covers the explicit-request exception.\n\n## Module-specific rules\n\nFor files under these roots, read the referenced rules before edits or reviews; they override conflicting general guidance.\n\n- **Product DSL** (`platform/build-scripts/product-dsl/`): follow its `AGENTS.md`.\n- **IJ Proxy MCP server** (`community/build/mcp-servers/ij-proxy/`):\n  - Tests: run `bun run build` and `bun test`.\n  - Bazel: do not run Bazel build and tests here.\n- **AI Assistant activation** (`plugins/llm/activation/`):\n  - Activation: follow `plugins/llm/activation/.ai/guidelines.md` before edits or reviews.\n- **Toolbox** (`toolbox/`):\n  - Tests: never use `./tests.cmd`; see `toolbox/.ai/index.md` for Gradle/Bazel test commands.\n  - Build: use `./bazel.cmd build //toolbox/...` instead of `./bazel-build-all.cmd`.\n- **PyCharm** (`./python`): use `./python/.ai/index.md`.\n\n## Mandatory Rules\n\n### After Code Changes\n\n- **Run affected tests:** `./tests.cmd --module <module> --test <FQN or wildcard>` (**FQN required; simple class names do not match; always specify the test module directly**), or `node --test <file>` for `*.test.mjs`.\n  `tests.cmd` performs Bazel compilation internally, so a separate `bazel build` step is not needed when tests will be run.\n  Module-specific rules may override the runner. Skip if plugin has no tests. See [TESTING](./.agents/skills/testing/SKILL.md).\n- **Bazel compilation without tests:** when only verifying compilation (no tests to run), use `bazel build <target>` for affected modules. Skip if only `.js`, `.mjs`, `.md`, `.txt`, or `.json` files are modified.\n- After modifying `*.iml`, `BUILD.bazel`, or `.idea/` files: run `./build/jpsModelToBazel.cmd`.\n\n### After Writing Code\n\n- Use `lint_files` to check files for warnings when ijproxy or JetBrains MCP is available.\n  Fix any warnings related to the code changes made. You may ignore unrelated warnings.\n\n## Repository-wide rules\n\nPreserve IDE-serialized .iml files in canonical form. Do not:\n\n- add comments\n- auto-format\n- normalize (structure or whitespace)\n- add a trailing newline at end of file\n- prune (remove) empty tags\n- reorder elements or attributes\n\nUse `bun build/jps-module.mjs register <path-to-iml> --fix-iml-eof` for module registration and `.iml` EOF cleanup instead of hand-editing `.idea/modules.xml`. The canonical `modules.xml` order is by `.iml` basename without the `.iml` suffix, matching `org.jetbrains.intellij.build.ModulesXml`.\n\n## Tools\n\nNever use the `code-search` skill; the search tools below replace it.\n\n### File operations (read / edit / write / list)\n\nUse the file-operation mechanism supported by the active harness. ijproxy is reserved for search and semantic operations; it does not provide direct file read, edit, write, or directory-listing tools.\n\n- Read/List: use dedicated harness tools when available. If none are exposed, use `cat` or read-only `sed` for file content and `ls` for directory listings.\n- Edit/Write: use the mechanism provided by the active harness.\n\n### Search & navigation (ijproxy preferred)\n\nDefault to `search_symbol` for classes, methods, and fields; use `search_text` and `search_regex` mainly for strings, comments, and other non-symbol matches.\n\nCodex exposes these as `mcp__ijproxy__<name>`; inspect the deferred tool catalog (`ALL_TOOLS`) for them before using a shell or non-ijproxy fallback.\n\n- Search symbols: `search_symbol`\n- Find files (glob): `search_file`\n- Search text: `search_text`\n- Search regex: `search_regex`\n\n### Client fallback (no MCP)\n\n- **No MCP:** use `./tools/fd.cmd` (file search) and `./tools/rg.cmd` (text/regex search) as shell search fallbacks.\n\n### IDE-backed semantic tools\n\nAvailable via ijproxy or JetBrains MCP. Prefer a real refactoring over manual search/replace.\n\n- Inspections & symbol info: `lint_files`, `get_symbol_info`\n- Refactors: `rename` (ijproxy) / `rename_refactoring` (JetBrains MCP)\n- Formatting: `reformat_file`\n- Concurrency checks: `find_threading_requirements_usages`, `find_lock_requirements_usages`\n- Project structure & VCS: `get_project_modules`, `get_project_dependencies`, `get_repositories`, `git_status`\n- Run configs: `get_run_configurations`, `execute_run_configuration`\n\n### Tooling rules\n\n- For content/symbol **search** and semantic operations, prefer ijproxy; fall back to JetBrains MCP, then to the client fallback, only when ijproxy is unavailable.\n- For file **read / edit / write / directory listing**, use the active harness tools; ijproxy has none.\n- Don't shell for file **search** on repo paths, and expect this to be enforced: the `Glob` and `Grep` tools are denied outright, and so are the `grep` and `find` commands, in every pipeline position. Pipe into `./tools/rg.cmd` instead of `| grep` -- it reads stdin. Use ijproxy search, or `./tools/fd.cmd` and `./tools/rg.cmd` when no MCP is available.\n- The repo's documented wrapper commands are allowlisted, so prefer them over a hand-rolled equivalent: a spelling the list knows runs without a prompt, a novel one does not. The list is `community/.ai/tool-permissions.json`, rendered into each harness's own config; add an entry there and rerun `community/.ai/render-guides.mjs` rather than editing a harness allowlist by hand.\n- Shell is allowed where explicitly documented above and for git (prefer `git_status` if the tool is available), build/test.\n- Outside repo: native shell permitted, except for text/file search — use `./tools/rg.cmd` and `./tools/fd.cmd` (absolute paths OK) instead of native `grep`/`find`.\n- Windows/PowerShell exception: do not pass literal shell metacharacters such as `<`, `>`, `|`, or `&` through `.cmd` search wrappers, even inside quotes. For `rg.cmd` alternation, use repeated `-e` patterns (`./tools/rg.cmd -n -e \"foo\" -e \"bar\" path/to/file.kt`) instead of `\"foo|bar\"`. For single-file conflict-marker checks, use `Select-String -SimpleMatch -Pattern '<<<<<<<','=======','>>>>>>>' -Path <file>` instead of retrying `rg.cmd` with different quoting.\n- `fd.cmd` and `rg.cmd` skip dot-directories by default. Agent assets live in `.agents/`, `.claude/`, `.junie/`, `.opencode/` — pass `-H` (`--hidden`) when looking for skills, guidelines, or hooks, or you will conclude they do not exist.\n\n### Skills\n\nThe harness may list skill *names* only, without descriptions. When a task looks like something a skill covers, read the index for what each name does before improvising:\n\n- Skill index: [`.agents/skills/INDEX.md`](./.agents/skills/INDEX.md)\n\n## Individual Preferences\n\n**Local Preferences:** @./.ai/local.md\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"---\nproject: IntelliJ IDEA Platform\nlanguages: [Kotlin, Java]\nframework: IntelliJ Platform SDK\nbuild-system: Bazel\nrepository: monorepo\n---\n\n<!-- Generated by community/.ai/render-guides.mjs; edit community/.ai/* -->\n\n**Critical:** These guidelines MUST be followed at all times.\n\n## Project Invariants\n\n- Module/plugin directories may contain their own AGENTS/CLAUDE instructions; follow them when present.\n- `*.iml` files are the source of truth and auto-generate `BUILD.bazel` files.\n- When adding or editing a JPS module `.iml`, run `bun build/jps-module.mjs register <path-to-iml> --fix-iml-eof` before `./build/jpsModelToBazel.cmd`. This keeps `.idea/modules.xml` and `community/.idea/modules.xml` in canonical order.\n- User-visible strings belong in `*.properties` for localization.\n\n## Workspace Isolation\n\nDo not create ad hoc Git worktrees or clones, or install a workspace manager, on your own initiative. Before any workspace-isolation action, read and follow [Workspace Isolation](./.ai/workspace-isolation.md), which also covers the explicit-request exception.\n\n## Module-specific rules\n\nFor files under these roots, read the referenced rules before edits or reviews; they override conflicting general guidance.\n\n- **Product DSL** (`platform/build-scripts/product-dsl/`): follow its `AGENTS.md`.\n- **IJ Proxy MCP server** (`community/build/mcp-servers/ij-proxy/`):\n  - Tests: run `bun run build` and `bun test`.\n  - Bazel: do not run Bazel build and tests here.\n- **AI Assistant activation** (`plugins/llm/activation/`):\n  - Activation: follow `plugins/llm/activation/.ai/guidelines.md` before edits or reviews.\n- **Toolbox** (`toolbox/`):\n  - Tests: never use `./tests.cmd`; see `toolbox/.ai/index.md` for Gradle/Bazel test commands.\n  - Build: use `./bazel.cmd build //toolbox/...` instead of `./bazel-build-all.cmd`.\n- **PyCharm** (`./python`): use `./python/.ai/index.md`.\n\n## Mandatory Rules\n\n### After Code Changes\n\n- **Run affected tests:** `./tests.cmd --module <module> --test <FQN or wildcard>` (**FQN required; simple class names do not match; always specify the test module directly**), or `node --test <file>` for `*.test.mjs`.\n  `tests.cmd` performs Bazel compilation internally, so a separate `bazel build` step is not needed when tests will be run.\n  Module-specific rules may override the runner. Skip if plugin has no tests. See [TESTING](./.agents/skills/testing/SKILL.md).\n- **Bazel compilation without tests:** when only verifying compilation (no tests to run), use `bazel build <target>` for affected modules. Skip if only `.js`, `.mjs`, `.md`, `.txt`, or `.json` files are modified.\n- After modifying `*.iml`, `BUILD.bazel`, or `.idea/` files: run `./build/jpsModelToBazel.cmd`.\n\n### After Writing Code\n\n- Use `lint_files` to check files for warnings when ijproxy or JetBrains MCP is available.\n  Fix any warnings related to the code changes made. You may ignore unrelated warnings.\n\n## Repository-wide rules\n\nPreserve IDE-serialized .iml files in canonical form. Do not:\n\n- add comments\n- auto-format\n- normalize (structure or whitespace)\n- add a trailing newline at end of file\n- prune (remove) empty tags\n- reorder elements or attributes\n\nUse `bun build/jps-module.mjs register <path-to-iml> --fix-iml-eof` for module registration and `.iml` EOF cleanup instead of hand-editing `.idea/modules.xml`. The canonical `modules.xml` order is by `.iml` basename without the `.iml` suffix, matching `org.jetbrains.intellij.build.ModulesXml`.\n\n## Tools\n\nNever use the `code-search` skill; the search tools below replace it.\n\n### File operations (read / edit / write / list)\n\nUse the file-operation mechanism supported by the active harness. ijproxy is reserved for search and semantic operations; it does not provide direct file read, edit, write, or directory-listing tools.\n\n- Read/List: use dedicated harness tools when available. If none are exposed, use `cat` or read-only `sed` for file content and `ls` for directory listings.\n- Edit/Write: use the mechanism provided by the active harness.\n\n### Search & navigation (ijproxy preferred)\n\nDefault to `search_symbol` for classes, methods, and fields; use `search_text` and `search_regex` mainly for strings, comments, and other non-symbol matches.\n\nCodex exposes these as `mcp__ijproxy__<name>`; inspect the deferred tool catalog (`ALL_TOOLS`) for them before using a shell or non-ijproxy fallback.\n\n- Search symbols: `search_symbol`\n- Find files (glob): `search_file`\n- Search text: `search_text`\n- Search regex: `search_regex`\n\n### Client fallback (no MCP)\n\n- **No MCP:** use `./tools/fd.cmd` (file search) and `./tools/rg.cmd` (text/regex search) as shell search fallbacks.\n\n### IDE-backed semantic tools\n\nAvailable via ijproxy or JetBrains MCP. Prefer a real refactoring over manual search/replace.\n\n- Inspections & symbol info: `lint_files`, `get_symbol_info`\n- Refactors: `rename` (ijproxy) / `rename_refactoring` (JetBrains MCP)\n- Formatting: `reformat_file`\n- Concurrency checks: `find_threading_requirements_usages`, `find_lock_requirements_usages`\n- Project structure & VCS: `get_project_modules`, `get_project_dependencies`, `get_repositories`, `git_status`\n- Run configs: `get_run_configurations`, `execute_run_configuration`\n\n### Tooling rules\n\n- For content/symbol **search** and semantic operations, prefer ijproxy; fall back to JetBrains MCP, then to the client fallback, only when ijproxy is unavailable.\n- For file **read / edit / write / directory listing**, use the active harness tools; ijproxy has none.\n- Don't shell for file **search** on repo paths, and expect this to be enforced: the `Glob` and `Grep` tools are denied outright, and so are the `grep` and `find` commands, in every pipeline position. Pipe into `./tools/rg.cmd` instead of `| grep` -- it reads stdin. Use ijproxy search, or `./tools/fd.cmd` and `./tools/rg.cmd` when no MCP is available.\n- The repo's documented wrapper commands are allowlisted, so prefer them over a hand-rolled equivalent: a spelling the list knows runs without a prompt, a novel one does not. The list is `community/.ai/tool-permissions.json`, rendered into each harness's own config; add an entry there and rerun `community/.ai/render-guides.mjs` rather than editing a harness allowlist by hand.\n- Shell is allowed where explicitly documented above and for git (prefer `git_status` if the tool is available), build/test.\n- Outside repo: native shell permitted, except for text/file search — use `./tools/rg.cmd` and `./tools/fd.cmd` (absolute paths OK) instead of native `grep`/`find`.\n- Windows/PowerShell exception: do not pass literal shell metacharacters such as `<`, `>`, `|`, or `&` through `.cmd` search wrappers, even inside quotes. For `rg.cmd` alternation, use repeated `-e` patterns (`./tools/rg.cmd -n -e \"foo\" -e \"bar\" path/to/file.kt`) instead of `\"foo|bar\"`. For single-file conflict-marker checks, use `Select-String -SimpleMatch -Pattern '<<<<<<<','=======','>>>>>>>' -Path <file>` instead of retrying `rg.cmd` with different quoting.\n- `fd.cmd` and `rg.cmd` skip dot-directories by default. Agent assets live in `.agents/`, `.claude/`, `.junie/`, `.opencode/` — pass `-H` (`--hidden`) when looking for skills, guidelines, or hooks, or you will conclude they do not exist.\n\n### Skills\n\nThe harness may list skill *names* only, without descriptions. When a task looks like something a skill covers, read the index for what each name does before improvising:\n\n- Skill index: [`.agents/skills/INDEX.md`](./.agents/skills/INDEX.md)\n\n## Individual Preferences\n\n**Local Preferences:** @./.ai/local.md\n","category":"root","tokens":1890}]}