From coding-skills
Use whenever adding, editing, or deleting any Compose Multiplatform resource — strings.xml entries, plurals, drawables (WebP/PNG/SVG), ImageVectors, fonts, anything under composeResources/ — or modifying call sites that reference Res.string.*, Res.drawable.*, Res.font.*, stringResource, pluralStringResource, painterResource. Covers image format selection, naming, sizing, apostrophe escaping (don't `\'` in CMP), positional plural specifiers (`%1$d` not `%d`), and the per-resource imports CMP requires for every Res.* accessor.
How this skill is triggered — by the user, by Claude, or both
Slash command
/coding-skills:compose-resource-conventions**/*.kt**/*.webp**/*.png**/*.xmlThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
No SVG in Android/CMP compose resources. Use:
No SVG in Android/CMP compose resources. Use:
Resize to 4x the display dp size and convert in one step:
# Lossless for sharp UI assets (e.g., 48dp icon → 192px)
cwebp -lossless -resize 192 192 input.png -o output.webp
# Lossy 80% for photos
cwebp -q 80 -resize 640 640 input.png -o output.webp
Skip resize if the original is already smaller than the 4x target.
Convert SVG path commands to Compose path commands and create ImageVector.
Match design name, no ic_ prefix. Create ImageVector via by lazy.
Icon uses LocalContentColor.current as default tint.
Icon renders at 24.dp by default regardless of the vector's intrinsic dimensions — apply Modifier.size() for non-standard sizes. Image with painterResource also needs explicit Modifier.size.
IconButton has 48dp touch target with 12dp internal padding. At screen edges, compensate for the internal padding so the icon aligns with the screen margin.
home_title (not title)._content_description.stringResource(Res.string.key, args) for formatted values — %1$d localizes digits, %1$s for strings.%1$s placeholders in string resources.Compose Multiplatform's Resources plugin generates each accessor as a top-level extension property in the Res object's package (e.g., Res.string.home_title is <res-package>.home_title). Unlike Android's R.string.* — where importing the R class covers every resource — every CMP accessor needs its own import. Adding a <string> / drawable / font without also adding import <res-package>.<name> in every consumer file produces "Unresolved reference ''" at compile time, which is easy to misdiagnose as a stale resource codegen or Gradle cache problem.
// GOOD — accessor imported alongside the call site
import com.example.app.home_title
stringResource(Res.string.home_title)
// BAD — fails with "Unresolved reference 'home_title'"
stringResource(Res.string.home_title)
When adding a resource and a call site in the same change, scan the consumer file for the existing import <res-package>.<other_resource> lines and add the new one alphabetically.
Don't escape apostrophes with \' in Compose Multiplatform string resources — the backslash renders literally (unlike Android resources).
Compose Multiplatform's string formatter only substitutes positional specifiers (%1$d, %2$s). Bare %d / %s are left as literal text — the UI will render %d items instead of 5 items. This applies to both stringResource and pluralStringResource.
<!-- GOOD -->
<plurals name="item_count">
<item quantity="one">%1$d item</item>
<item quantity="other">%1$d items</item>
</plurals>
<!-- BAD — %d renders literally -->
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
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 necatisozer/coding-skills --plugin coding-skills