docs: add icon-jetbrains skill for authoring JetBrains plugin icons - #12711
Conversation
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (1 file)
NotesIncremental review of What the new commit adds, and how it holds up:
No findings carried forward from the previous pass — all prior inline threads are on lines outside this incremental diff and GitHub reports them as outdated. Fix these issues in Kilo Cloud Previous Review Summaries (7 snapshots, latest commit 5bd6fc0)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 5bd6fc0)Status: No Issues Found | Recommendation: Merge Files Reviewed (2 files)
NotesIncremental review of All four findings from the previous pass are resolved:
Also confirmed: kebab-case is the correct rule for this repo — every SVG under The open thread on Previous review (commit 049e270)Status: 4 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (2 files)
NotesIncremental review of Resolved since the last pass:
Fix these issues in Kilo Cloud Previous review (commit 55ea1c2)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (3 files)
NotesIncremental review of Resolved since the last pass:
Fix these issues in Kilo Cloud Previous review (commit a1c7108)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (1 file)
NotesIncremental review of Resolved since the last pass:
Two earlier suggestions remain open as active inline comments on files untouched by these commits (duplicate-identical warning-dark glyph paths in Fix these issues in Kilo Cloud Previous review (commit aa79e0f)Status: 4 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (4 files)
NotesIncremental review of Fix these issues in Kilo Cloud Previous review (commit fa8d5d1)Status: 4 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (5 files)
NotesIncremental review of Fix these issues in Kilo Cloud Previous review (commit ce8781c)Status: 5 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (3 files)
NotesDocs-only change; no CI-covered concerns raised. The palette tables were spot-checked for internal consistency against the light→dark swap map and matched. Findings are all about applicability of the copied upstream guidance to this repo, where the JetBrains plugin loads flat kebab-case icons from Reviewed by claude-opus-5 · Input: 26 · Output: 7.4K · Cached: 631.5K Review guidance: REVIEW.md from base branch |
…thoring Remove duplicated sizing, dark variant, and palette guidance from packages/kilo-jetbrains/AGENTS.md that conflicted with the skill (e.g. 13×13 classic vs the correct 16×16 legacy tool-window size). AGENTS.md now explicitly defers to the skill for all SVG authoring details and retains only Kotlin/runtime integration guidance.
…of truth Remove duplicated sizing, dark variant, and New UI support details from AGENTS.md that conflicted with the authoritative Icon roles table in the icon-jetbrains skill. Replace with a single reference pointing to the skill.
- Change golden rule #8 from camelCase to kebab-case to match the actual convention used by all 47+ icons in the plugin - Acknowledge the icons/views/ subfolder in the roles intro and placement section
| - **One semantic meaning per icon.** A status badge, an accent dot, or a "+" overlay is fine; two unrelated glyphs in one icon is not. | ||
| - **Optical centering, not geometric.** Plus/arrow/refresh glyphs sit slightly above center; round badges (class, method, status) are centered on `(cx=8, cy=8)` for 16×16 and `(cx=10, cy=10)` for 20×20. | ||
| - **Outer keep-out**: leave at least **1 px** of empty padding on each side of a 16×16 icon (so meaningful geometry lives within `1..15`). For 20×20 use **2 px** of padding. Stripe icons must stay visually balanced inside their 20×20 cell. | ||
| - **Round caps overshoot the endpoint.** A round `stroke-linecap`/`stroke-linejoin` extends **half the stroke width past the endpoint**, so a 1px round-capped stroke ending at `0` or `16` is clipped by the canvas. Keep stroke endpoints within `0.5..15.5` (this is stricter than the fill keep-out). |
There was a problem hiding this comment.
SUGGESTION: The 0.5..15.5 bound only holds for 1px strokes, and it is looser — not stricter — than the keep-out rule above it.
Three things a reader following this literally will get wrong:
- "stricter than the fill keep-out" is inverted. Line 61 requires meaningful geometry within
1..15(1 px padding per side).0.5..15.5is a wider range, so it permits geometry the keep-out forbids — a 1px stroke centered at0.5visually spans0..1and touches the canvas edge, consuming the entire padding. Better to frame it as a different constraint (stroke centerline vs. rendered extent), or reconcile it with the 1 px keep-out. - The number is stroke-width dependent. Half the stroke width is
0.5only atstroke-width="1". Rule 6 explicitly allows1.5and2for badge hero glyphs, where the safe range becomes0.75..15.25and1..15. Phrasing it as "keep endpoints at least half the stroke width in from each edge" stays correct for all three weights and also generalizes to the non-16 canvases in the roles table (20×20, 14×14, 12×12, 9×9) — as written,0.5..15.5here and the same figure at lines 117 and 130 silently assume 16×16 with a 1px stroke. stroke-linejoindoesn't overshoot an endpoint. A round join is inscribed within the stroke width at a vertex between two segments; onlystroke-linecapextends past a path endpoint (stroke-miterlimitis what governs spikes at joins). Droppingstroke-linejoinfrom this bullet keeps the claim accurate.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
docs: add icon-jetbrains skill for authoring JetBrains plugin icons
Context
Creating and reviewing IntelliJ plugin icons for the JetBrains package requires knowing a lot of implicit conventions — canvas sizes per icon role, the New UI color palette, light/dark variant rules, how the IntelliJ SVG loader recolors by literal hex match, and where icons live in this repo. That knowledge wasn't written down anywhere, so agents and contributors had to rediscover it each time and frequently got it wrong (off-palette colors, missing
_darkvariants,currentColor, wrong sizes).This PR adds an
icon-jetbrainsskill that captures those rules in one place and wires it into the JetBrains docs so it gets used whenever someone creates, modifies, or reviews an icon.What this is for
currentColor/CSS.AGENTS.mdand the plugin architecture docs point at it, and defer to it as the source of truth for icon authoring rather than duplicating (and drifting from) sizing/palette guidance.The skill is documentation only — it changes no runtime behavior.
Gaps from the upstream skill that we fixed
This skill started as a port of JetBrains' upstream
.agents/skills/iconsskill, which is written for the IntelliJ Community monorepo. Adapting it to this repo — and applying it to our actual icons (see the follow-up icon PRs) — surfaced several gaps that we corrected here so the guidance is both accurate for this repo and more correct in general:expui/...paths and left some example path data truncated. Our examples use complete, valid path data and name real files in this repo, so an agent can grep and confirm them.@2xguidance. Clarified that SVGs are resolution-independent (ship one vector per theme, never@2xraster variants) and that fine sub-pixel detail blurs at fractional scale — a point the upstream skill doesn't make.stroke-widthto1fattens hairlines and geometry-coupled strokes (badge rings), and (2) round caps overshoot the endpoint by half the stroke width, so endpoints at the canvas edge clip. The skill now teaches scaling non-primary strokes with the geometry, keeping endpoints within0.5..15.5, and a dedicated "adapting/rescaling an existing icon" workflow.How to Test
Manual/local verification
AGENTS.mdand plugin architecture doc reference the skill and no longer duplicate its sizing/palette guidance.Reviewer test steps
.kilo/skills/icon-jetbrains/SKILL.mdand confirm the roles, palette, naming, and placement guidance is coherent and matches this repo (flaticons/folder, kebab-case names).packages/kilo-jetbrains/AGENTS.mdand the JetBrains architecture doc point to the skill for icon authoring.Blocked checks and substitute verification
Checklist