From agent-skills
Use when Codex writes, refactors, or reviews IntelliJ Platform / JetBrains IDE plugin Kotlin/Java code. Keywords and triggers: IntelliJ Platform, JetBrains IDE, plugin, Project, Application, Service, project service, application service, CoroutineScope, Disposable, Disposer, parentDisposable, asDisposable, disposeOnCompletion, com.intellij.util.CoroutineScopeKt, childScope, com.intellij.platform.util.coroutines.childScope, MessageBus, DocumentListener, LineStatusTracker, FileEditor, editor, viewer, panel, control, listener subscriptions, lifecycle, memory leak, cleanup, isReleased, AtomicReference, CAS. Pair with kotlin-java-code-guides for generic JVM design rules.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agent-skills:intellij-platform-kotlin-guidesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill for IntelliJ Platform-specific lifetime and subscription decisions. Keep generic Kotlin/Java design guidance in `kotlin-java-code-guides`; use this skill only for platform APIs, platform lifecycle owners, and JetBrains IDE UI/editor/viewer code.
Use this skill for IntelliJ Platform-specific lifetime and subscription decisions. Keep generic Kotlin/Java design guidance in kotlin-java-code-guides; use this skill only for platform APIs, platform lifecycle owners, and JetBrains IDE UI/editor/viewer code.
Before non-trivial IntelliJ Platform edits, load the focused references below instead of rediscovering lifecycle rules from scratch.
Disposer interop, scope-first lifecycle, project/application scope injection, and editor/viewer lifetime: read references/01-lifetimes-and-coroutines.md.references/02-subscriptions-and-state.md.references/04-review-checklist.md.Project or Application as Disposable parents.Disposable. Prefer CoroutineScope.CoroutineScope. A private or nested service is fine.CoroutineScope exists, it owns the lifetime. Use scope.asDisposable() only for legacy Disposable APIs, and never dispose that adapter manually.Disposable, attach it to the owning scope with com.intellij.util.CoroutineScopeKt#disposeOnCompletion. Do not wire scope/disposable cleanup by hand.com.intellij.platform.util.coroutines.childScope, called as parentScope.childScope(...), or the local helper.parentDisposable or coroutine-native APIs. Avoid manual add/remove pairs.var fields, CAS, AtomicReference, isReleased, and uninstallCurrent... for ordinary UI/editor lifecycle.CoroutineScope; create a service if the owner is project/application-wide.asDisposable() or disposeOnCompletion only at legacy API boundaries.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub nerzhulart/agent-skills --plugin agent-skills