IntelliJ `AnAction` 클래스를 구현하거나 수정하고 `plugin.xml`에 등록하도록 안내합니다. 표시 이름과 설명은 메시지 번들에 두고, 필요하면 아이콘을 설정하며, 이벤트 코루틴 범위에서 중단 함수를 실행해 동기식 처리로 IDE가 멈추는 일을 방지합니다.
- IDE 메뉴에 새 동작 추가
- 동작 등록이나 아이콘 변경
- 동작 이름과 설명 정리
IntelliJ JPS 테스트 모듈을 Bazel로 옮기고 Bazel에서만 발생하는 실패를 조사하는 안내서입니다. 의존성, 플러그인, 테스트 데이터와 runfiles 문제를 확인하고 생성된 대상과 이전된 테스트를 검증합니다.
Migrate IntelliJ JPS module tests to Bazel; debug Bazel-only failures.
실행 점수 미검증
설치 방법 보기이 안내서는 IntelliJ JPS 테스트 모듈을 Bazel로 이전하고 Bazel 환경에서만 나타나는 실패를 조사하는 방법을 설명합니다. 실제 테스트 모듈과 Bazel 라벨을 확인하고, .iml을 의존성의 기준으로 삼아 BUILD.bazel을 다시 생성한 다음 실행할 대상을 검증하는 흐름을 다룹니다. 컴파일 단계의 의존성 누락, 실행 중 찾을 수 없는 클래스나 리소스, 플러그인 등록, 테스트 데이터, runfiles처럼 자주 나타나는 증상별로 확인할 지점도 안내합니다. TeamCity에서 테스트가 느려지거나 시간 초과되는 경우에는 처음으로 비용이 커지는 작업을 추적하는 방법을 설명합니다. 범위를 좁힌 테스트 실행에서 시작해 이전 대상 전체를 검증할 수 있습니다.
기존 JPS 테스트 모듈을 Bazel로 옮길 때, Bazel에서만 테스트가 실패할 때, 또는 이전이 완료되었는지 확인할 때 활용할 수 있습니다. 의존성, 플러그인, 테스트 데이터 설정을 검토할 때도 유용합니다.
이전과 검증 절차에는 Bazel 명령과 저장소의 빌드 스크립트가 필요합니다. 실패를 숨기기 위해 테스트를 제외하거나 단언을 변경하지 않도록 안내합니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.
점수에는 넣지 않았습니다. 2026년 10월 28일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Use this skill when switching an IntelliJ JPS test module to Bazel, fixing a Bazel-only test failure, or reviewing migration wiring.
Identify the real test module and Bazel label.
@community//....//....Treat .iml as the source of truth.
.iml first.scope="TEST" for new test-only dependencies.RUNTIME only when the dependency must be present as a runtime plugin/resource/classpath entry and TEST is not enough.BUILD.bazel sections except for intentionally custom jps_test sections protected by ### skip generation section.Regenerate after every .iml or BUILD.bazel metadata change.
community/tools/bun.cmd build/jps-module.mjs register path/to/module.iml --fix-iml-eof
./build/jpsModelToBazel.cmd
./bazel.cmd test --cache_test_results=no @community//path/to/package:target_test
For a community-only module in a standalone community checkout, run the same package as //path/to/package:target_test.
jps_test sections at the top when a module already needs custom test options.### skip generation section `test module.name`
tags, timeout, env, jvm_flags, and data.community/build/bazel-migrated-test-modules.txt only after the target is fully migrated and verified. The community JPS aggregator then skips the module, and tests.cmd refuses it. The file documents its format.copy_file to patch missing jars or descriptors into runfiles. Prefer normal .iml dependencies, target runtime/data dependencies, or the existing shared mechanism for that class of test.Use the smallest dependency that matches what failed:
.iml.jps_test.data or ensure the existing generator includes it; do not rely on source-tree paths under Bazel.Before changing tests, verify whether the failure is really a test assertion issue or just missing runtime/plugin/testdata wiring.
Check that test classes are in the generated *_test_lib, the Bazel target points to that test library, and the class names match the runner convention. If the module truly has no tests, there may be nothing to migrate.
Search for the extension/action/inspection id and identify the descriptor that registers it. Add the owning plugin/module dependency. Do not manually register production extensions in test setup unless the test is explicitly about a local fake extension.
Example: an action registered into EditorGutterVcsPopupMenu needs the VCS implementation descriptor that owns that group, not just VCS API classes.
If plugin A registers an action into a group contributed by plugin/module B, plugin A must depend on B or move the action registration into a B-aware optional/content descriptor. Fix the descriptor dependency when production loading is also inconsistent; fix the test dependency only when the test product intentionally omits an otherwise valid product plugin.
When integration tests invoke JPS compilation, failures like missing JPS jars or compile-server plugin classpaths usually mean Bazel runfiles cannot resolve a plugin/module path the same way JPS does.
If code expects Bazel-only properties such as target mappings or runfiles metadata, pass them through the jps_test target using the established option (jvm_flags, env, or data) and add the backing file to runfiles.
Re-check labels, repo mappings, and generated runfiles. A target can pass as @community//... from Ultimate and fail as //... in standalone community if the test relies on parent-repo runfiles or missing repo mapping.
Look for the first expensive operation under Bazel: indexing, plugin loading, coroutine dispatch, first service initialization, or filesystem/runfiles traversal. Prefer moving one-time initialization to setup or making the test wait for the actual condition. Avoid raising timeouts as the first fix.
Keep test edits minimal.
BUILD.bazel.idea.log, test.log, and JUnit XML if present..iml files.runtime_deps, deps, data, env, and jvm_flags..iml or plugin descriptors.--cache_test_results=no.git diff --check before finishing.A module is migrated only when:
--cache_test_results=no;BUILD.bazel matches .iml;아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
IntelliJ `AnAction` 클래스를 구현하거나 수정하고 `plugin.xml`에 등록하도록 안내합니다. 표시 이름과 설명은 메시지 번들에 두고, 필요하면 아이콘을 설정하며, 이벤트 코루틴 범위에서 중단 함수를 실행해 동기식 처리로 IDE가 멈추는 일을 방지합니다.
IntelliJ 프로젝트 규칙에 맞춰 Kotlin과 Java 코드를 작성하거나 검토합니다. 언어 선택, 서식, 봉인 타입, 스레드 주석, 제어 흐름 예외 처리를 확인합니다.
이 가이드는 IntelliJ 프로젝트의 변경 사항을 목적별로 나누고 프로젝트 형식에 맞는 커밋 메시지를 작성하도록 돕습니다. 티켓이 있으면 번호와 변경 설명을, 없으면 레이블과 하위 시스템명을 사용하며 필요에 따라 이유와 판단을 본문에 담습니다.
여러 Python 타입 검사기로 코드 조각이나 파일의 타입 추론과 오류 판정을 비교합니다. 도구별 결과, 실행 시간, 진단 내용을 Markdown 보고서로 모아 저장할 수 있습니다.
Compose Desktop 화면을 구성할 때 컴포저블은 렌더링을 맡고 프레젠터나 코디네이터는 앱 결정을 맡도록 구조를 정리합니다. 상태 소유권, Effect, 재사용 컴포넌트 API, 지연 목록 키, 애니메이션과 성능을 개별 UI 변경에 맞춰 살펴봅니다.
Compose Desktop UI 코드의 구조와 런타임 문제를 감사합니다. 상태 소유권, 부수 효과, 코루틴, 지연 목록, 애니메이션, 재구성을 살펴보고 우선순위별 결과를 제시합니다.