实现或修改 IntelliJ `AnAction`,并在 `plugin.xml` 中注册。将显示名称和说明写入消息资源文件,按需设置图标,并通过事件协程作用域启动挂起任务,避免同步处理阻塞 IDE。
- 为 IDE 菜单添加操作
- 修改操作注册或图标
- 整理操作名称和说明
整理 Compose Desktop 界面中的状态和副作用,让可组合函数负责绘制,由展示器或协调器处理应用决策。了解状态归属、Effect、可复用组件接口、延迟列表键、动画和性能,适用于单项界面修改。
Write Compose Desktop UI state, effects, and presenter boundaries.
实测评分 未实测
查看安装方法修改 Compose Desktop 界面时,本技能帮助梳理可组合函数、展示器或协调器,以及状态持有层各自的职责。基本原则是界面负责绘制,展示器负责决策。悬停、焦点等只影响显示的临时状态可以留在界面中;应用状态、持久化、通信、文件操作、权限和业务判断应交给持有状态的层处理。检查内容还包括 remember 和各类 Effect 的键、可复用组件的 Modifier、不可变数据与事件回调、延迟列表的稳定键和 contentType、动画,以及重组开销。
为 Compose 界面添加功能时,可用它检查界面是否承载了过多状态或业务逻辑。调整 Effect 的依赖关系、可复用组件接口、列表或动画实现时也适用。本技能针对单项界面修改;资料指出,针对整个代码库的系统性架构评估应使用另一项技能。
LaunchedEffect 的键和处理范围。”如果项目有架构文档,且内容与本指引不同,应以项目文档为准。Jewel 组件选择以及 Swing/AWT 集成由相关技能负责。
本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。
AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。
不计入评分。 由 AI(OpenAI Codex)于 2026年10月28日 评估。仅供参考,安装前请同时查看原文。
安装前可以查看交给 AI 代理的指令内容。
Use this skill to keep Compose Desktop UI code architecturally correct while editing IntelliJ-style desktop surfaces.
This skill provides authoring and review guardrails for individual changes. When the user asks for a systemic Compose UI
architecture assessment across a codebase, use compose-ui-audit instead.
For general post-change review or cleanup, use the review subagents available in the current harness instead of stretching this skill beyond UI architecture. If subagent delegation is unavailable, run those review passes sequentially yourself.
Do not use this skill to replace project docs. If the project has architecture docs, treat them as authoritative when details conflict.
Pair it with:
jewel-ui when selecting Jewel components, theme wrappers, icons, typography, and
IntelliJ-style controls.jewel-swing-interop when configuring Swing/AWT hosting, ComposePanel, LocalComponent,
popups, and bridge theme mechanics.Defer these adjacent tasks instead of stretching this skill:
jewel-ui for component choice, label rules, icons, theme wrappers, typography, and Jewel visual style.jewel-swing-interop for ComposePanel, AWT popup forwarding, LocalComponent, and host Swing component access.compose-ui-audit for a whole-surface systemic Compose UI architecture assessment.Be precise with names:
ViewModel roughly maps to a desktop UI presenter/coordinator layer.ScreenState, RowModel, or SurfaceModel. Avoid ambiguity by naming whether you mean lifecycle owner or render
model.ViewModel, Hilt/Koin, Android lifecycle, or Navigation guidance into desktop Compose UI
unless the project already uses those concepts.Compositions render. Presenters decide.
Composables may own ephemeral visual state: hover, focus, animation progress, expansion toggles, tooltip visibility, and layout wiring. They must not own app state, persistence, RPC, file/process/network work, JSON parsing, model selection, permission policy, review workflow decisions, or workspace/config lookup.
Route those through presenters/coordinators or equivalent state-owning layers and expose ready-to-render view models to UI.
Before returning Compose UI code, silently check these questions:
modifier: Modifier = Modifier to the outermost layout?key = parameter and a matching
contentType = parameter?remember, and read per-frame values in the layout or draw phase?If an answer is no, fix the shape before writing more code rather than documenting the violation.
Also check for false positives. Local hover state, focus requesters, text-field state, expansion toggles, scroll commands, and one-shot UI labels are usually fine in composition when they do not shadow app/session state.
Read only the reference files needed for the current task:
references/state-boundaries.md for rules on presenter/coordinator vs. state-holder vs. composition boundaries,
desktop lifecycle, flow collection, CompositionLocal guardrails, and testing ownership.references/effects.md for rules on remember, LaunchedEffect, DisposableEffect, snapshotFlow, coroutine
scopes, and effect keys.references/animation.md when choosing animation APIs, remembering Animatable state, launching target-driven
effects, deferring animated reads, or using AnimatedContent, infinite transitions, and gesture-driven motion.references/component-api-lists-performance.md for rules on reusable composable API shape, modifier contracts,
lazy-list keys and content types, recomposition and performance smells, and healthy patterns to preserve.references/desktop-seams-review-output.md for guidance on desktop dialogs, popups, shortcuts, clipboard and URI
opening, window state, protocol and runtime seams, and the file-grounded review output format.When reviewing code with this skill, keep output short and file-grounded:
### path/to/File.kt
- Issue: [rule name]
- Why it matters: [one sentence]
- Fix: [specific direction or tiny before/after]
End with the top three fixes, highest impact first. Do not list clean files.
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
实现或修改 IntelliJ `AnAction`,并在 `plugin.xml` 中注册。将显示名称和说明写入消息资源文件,按需设置图标,并通过事件协程作用域启动挂起任务,避免同步处理阻塞 IDE。
将 IntelliJ JPS 测试模块迁移到 Bazel,并排查仅在 Bazel 中出现的失败。根据症状检查依赖、插件、测试数据和 runfiles,重新生成并验证目标。
按 IntelliJ 项目规范编写或审查 Kotlin 和 Java 代码,涵盖语言选择、格式、密封类型、线程注解及控制流异常处理。
本指南帮助您按 IntelliJ 项目规则拆分更改并撰写提交信息:有工单时使用编号和变更说明,无工单时使用标签与子系统名,并在需要时说明原因和决定。
使用多个 Python 类型检查器比较代码片段或文件的类型推断和报错判断,并汇总各工具的结论、耗时与诊断信息,可保存为 Markdown 报告。
审查 Compose Desktop 界面代码的架构和运行时问题,检查状态管理、副作用、协程、延迟列表、动画与重组,并按优先级列出发现。