.claude/skills/write-design-system-component/SKILL.md
Use when implementing a new Kuvio component for the Alkaa Design System after design spec and structure decisions are finalized
npx skillsauth add igorescodro/alkaa write-design-system-componentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Kuvio is the Alkaa Design System's component library. This skill guides implementation of theme-aware, multiplatform Compose Multiplatform components following strict naming, structure, and styling conventions.
Prerequisite: Design spec must be finalized (variants, layout, interactive states) before using this skill. If not, use superpowers:brainstorming first.
references/IMPLEMENTATION_GUIDE.mdreferences/IMPLEMENTATION_GUIDE.mdreferences/IMPLEMENTATION_GUIDE.mdreferences/IMPLEMENTATION_GUIDE.mdlocalization skill for all user-visible stringsreferences/IMPLEMENTATION_GUIDE.mdscripts/verify_quality.shreferences/IMPLEMENTATION_GUIDE.md| Rule | Correct | Wrong |
|------|---------|-------|
| Naming | KuvioTaskChip | TaskChip, TASK_CHIP |
| Strings | stringResource(Res.string.kuvio_component_label) | "Add task" |
| Colors | MaterialTheme.colorScheme.primary | Color(0xFF123456) |
| Text | KuvioBodyMediumText() | Text(fontSize=14.sp, ...) |
| Size | ~60 lines, max 3 nesting levels | 200+ lines, deeply nested |
| Slots | icon: (@Composable () -> Unit)? | iconColor: Color, iconSize: Dp, ... |
| Constants | private const val AddTaskPlaceholder | private const val ADD_TASK_PLACEHOLDER |
Before Implementation:
superpowers:brainstorming first.During Implementation:
MaterialTheme.colorScheme.*Text() instead of Kuvio text primitive → Use KuvioBodyMediumText() etc.resources/strings.xmlAfter Writing Code:
scripts/verify_quality.sh| Mistake | Fix |
|---------|-----|
| Hardcoding colors | Breaks dark mode — use MaterialTheme.colorScheme.* |
| Raw Text() instead of Kuvio text | Inconsistent typography — use KuvioBodyMediumText() etc. |
| Strings in code | Not localizable — move to resources/strings.xml |
| Function > 60 lines | Hard to read — extract private sub-composables |
| Deep nesting (4+ levels) | Extract logical chunks to private composables |
| Configuration objects | Hard to extend — use composable (@Composable () -> Unit)? slots |
| Skipping previews | Can't verify visually — add light/dark pair for each variant |
| Canvas for shapes | Hard to theme — use Box, clip, background modifiers |
libraries/designsystem/ — Kuvio components, theme, tokensresources/ — Strings, colors, spacing/assets/designsystem/alkaa-ds.htmldevelopment
A skill for reviewing Android code before it is pushed to production.
documentation
Use when writing a new ViewModel or modifying an existing one in the Alkaa project. Triggers on tasks like "add a ViewModel", "create VM for X screen", "implement state handling", or "connect use case to UI".
testing
Use when writing or modifying unit tests in the Alkaa project — triggers on tasks like "add a test", "write tests for X", "test this ViewModel", "cover this use case with tests", or "add unit test coverage".
testing
Use when writing or modifying UI/Compose instrumented tests in the Alkaa project — triggers on tasks like "add a UI test", "test this composable", "add instrumented test", "test this screen behavior".