Compose Multiplatform Patterns
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
Drops support for an old IntelliJ platform version in the JetBrains Academy plugin — removes branches/<old code, moves shared platform-specific code to the main source set, and fixes BACKCOMPAT…
$ npx skills add JetBrains/educational-plugin --skill drop-platform-support -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JetBrains/educational-plugin drop-platform-support --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JetBrains/educational-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/drop-platform-support .claude/skills/drop-platform-support && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "drop-platform-support" agent skill from https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-support into .claude/skills/drop-platform-support/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drop-platform-support", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-supportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JetBrains/educational-plugin --skill drop-platform-support -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JetBrains/educational-plugin drop-platform-support --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/educational-plugin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/drop-platform-support .agents/skills/drop-platform-support && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "drop-platform-support" agent skill from https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-support into .agents/skills/drop-platform-support/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drop-platform-support", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/educational-plugin --skill drop-platform-support -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JetBrains/educational-plugin drop-platform-support --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/educational-plugin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/drop-platform-support .cursor/skills/drop-platform-support && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "drop-platform-support" agent skill from https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-support into .cursor/skills/drop-platform-support/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drop-platform-support", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JetBrains/educational-plugin.git --path .claude/skills/drop-platform-support--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JetBrains/educational-plugin --skill drop-platform-support -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JetBrains/educational-plugin drop-platform-support --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/educational-plugin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/drop-platform-support .gemini/skills/drop-platform-support && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "drop-platform-support" agent skill from https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-support into .gemini/skills/drop-platform-support/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drop-platform-support", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JetBrains/educational-plugin drop-platform-supportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JetBrains/educational-plugin --skill drop-platform-support -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JetBrains/educational-plugin.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/drop-platform-support .github/skills/drop-platform-support && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "drop-platform-support" agent skill from https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-support into .github/skills/drop-platform-support/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drop-platform-support", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/educational-plugin --skill drop-platform-support -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JetBrains/educational-plugin drop-platform-support --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/educational-plugin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/drop-platform-support .opencode/skills/drop-platform-support && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "drop-platform-support" agent skill from https://github.com/JetBrains/educational-plugin/tree/master/.claude/skills/drop-platform-support into .opencode/skills/drop-platform-support/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "drop-platform-support", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
drop-platform-supportDrops support for an old IntelliJ platform version in the JetBrains Academy plugin — removes branches/<old code, moves shared platform-specific code to the main source set, and fixes BACKCOMPAT…
Drop Platform Support is an agent skill from JetBrains/educational-plugin, published by the product's own GitHub organization. Drops support for an old IntelliJ platform version in the JetBrains Academy plugin — removes branches/<old code, moves shared platform-specific code to the main source set, and fixes BACKCOMPAT comments and isAtLeast<version checks. Use when asked to "drop platform 261", "drop 2026.1 support", or "remove support for an old IntelliJ platform version".
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile. It works with JetBrains IDEs and Kotlin. The repository describes itself as: Educational plugin to learn and teach programming languages such as Kotlin, Java, Python, JavaScript, and others right inside of JetBrains IntelliJ Platform based IDEs. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6857d90. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitpython3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
jetbrains.teamplugins.jetbrains.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Drop Platform Support loads about 4k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,813 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from JetBrains/educational-plugin at commit 6857d90, republished under its Apache-2.0 licence (© JetBrains). 1,813 words, ~3,991 tokens.
.claude/skills/drop-platform-support/SKILL.md (or your agent's skills folder).This skill runs the whole process of removing support for an old IntelliJ platform version in the JetBrains Academy plugin.
This skill implements the "Dropping the old platform version" section of
documentation/different-platform-versions.md
and adds more detail. If the two directly contradict each other, report the contradiction to the user.
Dropping platform support has three phases:
BACKCOMPAT comments and version checks that reference the old platform version (steps 4–6)helpers/drop_platform_support_local.py automates most of phases 1 and 2. It does not move a file if a file
with the same path already exists in the main source set. Those files stay in branches/<remaining>/ and have to be
merged by hand. Phase 3 is done by the agent.
The platform version to drop is the one the user asked for, referred to below as {platform_version}
(e.g. 261). Its dotted form is {dotted_version} (e.g. 2026.1, see below). If the user did not give a version, ask. Do not guess.
Platform versions appear in two forms. BACKCOMPAT comments in this repository use the dotted form.
To convert: NNN → 20 + first two digits + . + last digit.
Numeric (environmentName, branches/<v>, isAtLeast<v>) | Dotted (BACKCOMPAT comments) |
|---|---|
253 | 2025.3 |
261 | 2026.1 |
262 | 2026.2 |
The same conversion is Project.platformVersion in buildSrc/src/main/kotlin/intellijUtils.kt.
python3), run from the repository root.claude/worktrees/*). The script walks the whole
tree with os.walk(".") and would change their branches/ directories too.git add -u, so any unrelated change to a tracked file would end up in the commit.EDU-XXXX)git rev-parse --abbrev-ref HEADdrop-{platform_version}, continue on it. If that branch exists locally, switch to it with
git checkout drop-{platform_version}. Otherwise create it: git checkout -b drop-{platform_version}.drop-{platform_version} is the same branch name the CI script (helpers/drop_platform_support.py) pushes.
Check for a remote branch with git ls-remote --heads origin drop-{platform_version}. If one already exists,
tell the user and ask whether to continue on it rather than creating a separate local one.python3 helpers/drop_platform_support_local.py --platform_version={platform_version}branches/{platform_version}/, moves files that are identical in every remaining branches/<v>/
directory into the main source set, deletes gradle-{platform_version}.properties, and updates the
supported values line in gradle.properties.git status, and ask how to
proceed. Don't try to "finish" the changes by hand.git status, then commit it with the ticket ID:
git add -u && git commit -m "<ticket>: Drop {platform_version} support".gradle.properties: The script only rewrites the supported values line when {platform_version} is the
first entry, and it never touches environmentName. Check that:{platform_version} no longer appears in # supported values: ...environmentName is not {platform_version} (if it is, set it to a remaining version)*/branches/*/
(e.g. find . -path '*/branches/*' -type f -not -path '*/build/*' -not -path './.git/*' -not -path './.claude/*').
For each file that exists in every remaining version but was not moved (because the main source set already has a
file at that path), merge it by hand. The script removes only the immediate parent directory of deleted files, so
review and then delete empty directories left behind:
find . -path '*/branches/*' -type d -empty -not -path './.git/*' -not -path './.claude/*' -delete.branches/<v>/ of the modules in
ALWAYS_PLATFORM_SPECIFIC_MODULES (helpers/platform_support_common.py, e.g. intellij-plugin/integration-tests)
untouched. Don't move, merge, inline, or simplify those files, even if only one platform is left.branches/<v>/ whose path doesn't already exist in main.
Then also (except for the always platform-specific modules above):*platform*.xml files pulled in with xi:include into the main XML, if any remain
(e.g. educational-core-platform.xml included from educational-core.xml). Put the content exactly in place
of the xi:include line and don't reorder the other entriescompatibilityUtils.kt functions, *Base
classes, typealiases) — see "Tips and tricks" in the platform documentbranches/$environmentName/... source dirs in buildSrc/src/main/kotlin/intellij-plugin-common-conventions.gradle.kts:
they are needed again when the next platform is addedsupported values line in gradle.properties after step 3.261 and supported values: 262, 263 remain, the next oldest is 262.Prefer JetBrains MCP tools (search_regex, search_text, search_symbol). Fall back to grep.
BACKCOMPAT: 2026.1 and BACKCOMPAT 2026.1 exist):
grep -rnE "BACKCOMPAT:? *{dotted_version}" --exclude-dir=build --exclude-dir=.git --exclude-dir=localization --exclude-dir=.claude .
(escape the dot, e.g. 2026\.1).
Don't restrict file types — BACKCOMPAT notes appear in .kt, .java, .kts, .xml, .properties, .py, .md, etc.
.claude/ is excluded on purpose. The examples in this skill use real versions, so don't edit them as part of the drop.BACKCOMPAT.*{platform_version}) and bare BACKCOMPAT comments with no version
that mention the dropped platform.{platform_version} can be left over from past
drops. Fix them if they are simple. Otherwise list them in the summary for the user. Don't skip them silently.true):isAtLeast{NextOldestVersion} (defined in buildSrc/src/main/kotlin/intellijUtils.kt, used in
intellij-plugin/**/build.gradle.kts and buildSrc). Use search_symbol to find all usages.true or always false):BuildNumber\.fromString\("[0-9]{3} — this covers named constants (BUILD_242) and inline
checks (build < BuildNumber.fromString("252")!!) compared with ApplicationInfo.getInstance().build.
Checks for versions older than {NextOldestVersion} are leftovers from past drops. Treat them the same way as
older BACKCOMPAT comments: fix them if simple, otherwise report them.@MinPlatformVersion("...") whose version is ≤ the next oldest version
(intellij-plugin/educational-core/testSrc/com/jetbrains/edu/rules/ConditionalExecutionRule.kt)isAtLeast262, but leave isAtLeast263 alone — it still distinguishes 262 from 263.\b{platform_version}\b and {dotted_version} (excluding branches/, build,
.git, .claude, localization, and test data), and review the hits by hand. This catches hard-coded values
like environment("IDEA_BUILD_NUMBER", "261"). Don't auto-fix anything here. Many hits are legitimate, e.g. dependency
versions such as psiViewerPlugin=PsiViewer:2026.1 in gradle-262.properties or release history in
documentation/PluginVersionsInfo.md.For each BACKCOMPAT comment or version check:
git log -S / git blame for why it was added.Inline it → inline the declaration into all call sites (prefer an IDE inline refactoring if one is available), then remove it.
If the body is only a delegation to a newer API, call that API directly.Merge it with X → merge the class/file into X, update imports and references, delete the original.Drop it → delete the code and anything that becomes unused.Update value to X / Check ... → update the value, then either remove the comment or point it at the
next oldest platform if the check has to be repeated at the next drop.if (isAtLeastN) branch, or the else of if (!isAtLeastN) /
if (build < BUILD_N)), then remove the check definition once it has no usages. If a value was nullable only
because of the check, make it non-null and simplify its callers.See Common patterns below for concrete examples from this repository.
./gradlew testClasses -PenvironmentName=<v> for each <v> in supported values.buildSrc, build.gradle.kts) changed, this also checks it../gradlew <gradle-module-path>:test --continue -PexcludeTests=**/slow/**<ticket>: <subject> with the real ticket ID, e.g. EDU-1234: Fix BACKCOMPAT comments for 2026.1.Report:
branches/ and how they were mergedEducationalSupportedReleases in the intellij-teamcity-config repositoryThe examples assume dropping 261 (2026.1), with 262 as the next oldest version.
buildSrc// buildSrc/src/main/kotlin/intellijUtils.kt
// BACKCOMPAT: 2026.1. Drop it
val Project.isAtLeast262: Boolean get() = environmentName.toInt() >= 262Fix: Simplify every usage (patterns 2–4), then delete the property.
// intellij-plugin/Edu-Python/build.gradle.kts
intellijPlugins(pythonPlugin)
testIntellijPlugins(tomlPlugin)
if (isAtLeast262) {
intellijPlugins(testRunnerPlugin)
}Fix: Remove the condition and keep the body unconditionally:
intellijPlugins(pythonPlugin)
testIntellijPlugins(tomlPlugin)
intellijPlugins(testRunnerPlugin)val Project.commonTestPlugins: List<String> get() = listOfNotNull(
imagesPlugin,
if (isAtLeast262) "intellij.structureView.plugin" else null,
if (isAtLeast262) testRunnerPlugin else null,
jcefPlugin,
)Fix: Replace each ternary with its value. If nothing nullable is left, listOfNotNull can become listOf:
val Project.commonTestPlugins: List<String> get() = listOf(
imagesPlugin,
"intellij.structureView.plugin",
testRunnerPlugin,
jcefPlugin,
)// BACKCOMPAT: 2026.1. Always use `jcefPlugin` property and make it non-null
val Project.jcefPlugin: String? get() = if (isAtLeast262) resolvePluginPlaceholders(prop("jcefPlugin")) else nullFix: Make it non-null and update callers that handled null:
val Project.jcefPlugin: String get() = resolvePluginPlaceholders(prop("jcefPlugin"))val BUILD_262 = BuildNumber.fromString("262")!!
if (ApplicationInfo.getInstance().build < BUILD_262) {
oldImplementation()
} else {
newImplementation()
}Fix: Keep only newImplementation(). Delete BUILD_262 if it's no longer used.
These checks live in normal source files, not in branches/, so they are easy to miss — search for them explicitly.
// buildSrc/src/main/kotlin/common-conventions.gradle.kts
// BACKCOMPAT: 2026.1. Check the minimal required API version.
// Update this message and api version value if needed
apiVersion = KotlinVersion.KOTLIN_2_3Fix: Set apiVersion to the Kotlin version bundled with the oldest remaining platform
(see https://plugins.jetbrains.com/docs/intellij/using-kotlin.html#bundled-stdlib-versions). It must never be higher
than that version, because raising it is the risky direction. Keep it if unsure and report it.
Then update the comment to the next oldest platform:
// BACKCOMPAT: 2026.2. Check the minimal required API version.
// Update this message and api version value if needed
apiVersion = KotlinVersion.KOTLIN_2_3// BACKCOMPAT: 2026.1. Inline it
fun oldHelper() = newApi()Fix: Replace oldHelper() calls with newApi() and remove oldHelper.
Merge it with X and Drop it work the same way: move or delete the code, then fix references and imports.
2026.1) and numeric (261) forms, and don't require a colon after BACKCOMPAT.get_symbol_info to understand a symbol before removing it.buildSrc.© JetBrains, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/drop-platform-support of JetBrains/educational-plugin.
Open the folder on GitHubat commit 6857d90
Drop Platform Support next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Drop Platform Support this skillJetBrains/educational-plugin | 181 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 179 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Kotlin Tooling Kotlin ToolchainKotlin/kotlin-agent-skills | 1.1k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Migrate Intellij Utilflutter/flutter-intellij | 2k | — | ~600 | Automated safety check: Pass | BSD-3-Clause | |
| Setting Up Compose HotswanrosuH/EasyWatermark | 1.9k | 1 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Kotlin Tooling Agp9 MigrationJetBrains/skills | 363 | 2 repos | ~5.6k | Automated safety check: Pass | Apache-2.0 |
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
Kotlin/kotlin-agent-skills
Load when building, running, testing, packaging, linting, or configuring a Kotlin/Java project with the Kotlin Toolchain (JetBrains' unified CLI, formerly Amper), when scaffolding a new or…
flutter/flutter-intellij
Optimize memory usage, consistency, and performance by migrating standard Java/Kotlin classes to IntelliJ's specialized com.intellij.util implementations.
rosuH/EasyWatermark
A skill your agent uses to install and verify Compose HotSwan end to end so a developer goes from zero to working sub-second hot reload on a real device or emulator in one session.
JetBrains/skills
Migrates Kotlin Multiplatform (KMP) projects to Android Gradle Plugin 9.0+.
Amplicode/spring-skills
Reformat source code in this project using its own code-style settings — through the IntelliJ IDE when it's running, otherwise via the project's own formatter (Spotless / google-java-format /…
Works with
Categories
Drops support for an old IntelliJ platform version in the JetBrains Academy plugin — removes branches/<old code, moves shared platform-specific code to the main source set, and fixes BACKCOMPAT…. Drop Platform Support is an agent skill from JetBrains/educational-plugin, published by the product's own GitHub organization. Drops support for an old IntelliJ platform version in the JetBrains Academy plugin — removes branches/<old code, moves shared platform-specific code to the main source set, and fixes BACKCOMPAT comments and isAtLeast<version checks.
Drop Platform Support fits situations like: asked to drop platform 261; drop 2026.1 support; remove support for an old IntelliJ platform version.
Run `npx skills add JetBrains/educational-plugin --skill drop-platform-support -a claude-code`. Or copy the skill folder (.claude/skills/drop-platform-support in JetBrains/educational-plugin) into .claude/skills/drop-platform-support in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JetBrains/educational-plugin --skill drop-platform-support -a codex`. Or copy the skill folder (.claude/skills/drop-platform-support in JetBrains/educational-plugin) into .agents/skills/drop-platform-support in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/educational-plugin --skill drop-platform-support -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/drop-platform-support, .gemini/skills/drop-platform-support, .github/skills/drop-platform-support and .opencode/skills/drop-platform-support in your project.
Going by SKILL.md and its folder, Drop Platform Support needs the command-line tools its instructions call (git and python3). Our summary lists: Python 3.
SKILL.md names 2 domains. As links in the text: jetbrains.team and plugins.jetbrains.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Drop Platform Support is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Drop Platform Support: Compose Multiplatform Patterns (monta-app/ocpp-emulator, 179 stars), Kotlin Tooling Kotlin Toolchain (Kotlin/kotlin-agent-skills, 1.1k stars), Migrate Intellij Util (flutter/flutter-intellij, 2k stars) and Setting Up Compose Hotswan (rosuH/EasyWatermark, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/educational-plugin, which has 181 GitHub stars. The repository was last updated on October 6, 2026.
Source: JetBrains/educational-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.