Agent skill

Kmp Starter Architecture

by DevAtrii in DevAtrii/Kmp-Starter-Template

Clean Architecture module and package layout for KMP Starter Template features — data/domain/presentation layers, core dependency rule, screen-based package organization, the Screen vs Content…

MITAuto-check passedDevelopment

Install Kmp Starter Architecture

skills CLI
$ npx skills add DevAtrii/Kmp-Starter-Template --skill kmp-starter-architecture -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DevAtrii/Kmp-Starter-Template kmp-starter-architecture --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/DevAtrii/Kmp-Starter-Template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/kmp-starter/architecture .claude/skills/kmp-starter-architecture && rm -rf skills-src

Use ~/.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/

Facts

Skill name
kmp-starter-architecture
GitHub stars
167
Token cost
~1.6k tokens
SKILL.md length
424 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Clean Architecture module and package layout for KMP Starter Template features — data/domain/presentation layers, core dependency rule, screen-based package organization, the Screen vs Content…

  • Works in 2 steps: Screen Composable — the "brain": gets… → Content Composable — display only: takes…
  • Tasks that involve Project scaffolding
  • SKILL.md covers Layers, Module map (from…, Core dependency rule and Feature structure, plus 5 more sections
  • Reaches starter.atherio.dev

What it does

Kmp Starter Architecture is an agent skill from DevAtrii/Kmp-Starter-Template. Clean Architecture module and package layout for KMP Starter Template features — data/domain/presentation layers, core dependency rule, screen-based package organization, the Screen vs Content composable split, and dialog/bottom-sheet (BaseDialog/BaseBottomSheet) conventions.

Its SKILL.md is about 1.6k 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 Development, covering Project scaffolding and Design patterns. The repository describes itself as: Starter template is a multi-module KMP boilerplate for Android & iOS with clean architecture and high-quality code. It handles basics like remote config, in-app purchases, and… The licence is MIT.

When your agent uses it

  • Tasks that involve Project scaffolding
  • Tasks that involve Design patterns

Example prompts

  • “/kmp-starter-architecture”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Screen Composable — the "brain": gets data from the ViewModel, handles navigation callbacks, observes UI events, knows where data comes…
  2. Content Composable — display only: takes state and callbacks like onAction. No ViewModel or data-source knowledge.

What it can do on your machine

Read from SKILL.md and the folder at commit a8f7b27. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are kotlin).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • starter.atherio.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kmp Starter Architecture loads about 1.6k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 424 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from DevAtrii/Kmp-Starter-Template at commit a8f7b27, republished under its MIT licence (© DevAtrii). 424 words, ~1,570 tokens.

Download SKILL.mdSave it as .claude/skills/kmp-starter-architecture/SKILL.md (or your agent's skills folder).
name
kmp-starter-architecture
description
Clean Architecture module and package layout for KMP Starter Template features — data/domain/presentation layers, core dependency rule, screen-based package organization, the Screen vs Content composable split, and dialog/bottom-sheet (BaseDialog/BaseBottomSheet) conventions.
author
DevAtrii
license
MIT

Architecture

Layers

Every feature follows Clean Architecture with three layers:

features/{FeatureName}/
    data/         # repositories, data sources, DI
    domain/       # Logics (use cases), repositories (interfaces), models
    presentation/ # UI, ViewModels, State, Actions, Events
  • data → implementations of domain interfaces.
  • domain → the blueprint: Logics, repository interfaces, models.
  • presentation → Compose UI + MVI.

Module map (from settings.gradle.kts)

  • composeApp — shared Compose code, glues all modules.
  • androidApp — Android host app.
  • features/{feature}/* — one module per feature, split into layers.
  • features/core/* — shared foundation (data/domain/presentation).
  • features/database, navigation, resources, analytics, purchases, remote_config, notifications, locale — infra features.
  • starter/* — reusable starter modules (core, utils, ui utils, ui components, ui layouts, native bindings).

Core dependency rule

All features may depend on core. core must never depend on a feature.

features/* → core   (correct)
core → features/*   (wrong)

Put shared code in features/core/* only when multiple features need it: shared auth, common DataStores, base repos/Logics, splash, onboarding, shared UI, global helpers.

Feature structure

A placeholder module lives at features/your-feature/. Rename it to your feature (e.g. notes) and develop there. Refer to https://starter.atherio.dev/fundamentals/12-writing-your-code/ for the rename steps (settings.gradle.kts + project accessors + package rename).

Package organization — by screens

Organize by screen, not technical category. Mirror the same package structure across layers:

presentation/notes/{list,details,edit}/_components/  _utils/
domain/notes/{list,details,edit}/
data/notes/{list,details,edit}/
  • Keep related code close together.
  • Promote code upward only after multiple consumers exist.
  • Shared infra inside a feature uses _ prefix: _components, _utils, _navigation, _mappers.

Screen vs Content composable

Split every screen into two parts:

  1. Screen Composable — the "brain": gets data from the ViewModel, handles navigation callbacks, observes UI events, knows where data comes from (DI / nav params).
  2. Content Composable — display only: takes state and callbacks like onAction. No ViewModel or data-source knowledge.
kotlin
@Composable
fun HomeScreen(
    viewModel: HomeViewModel = koinViewModel(),
    onTaskComplete: () -> Unit,
) {
    val state by viewModel.state.collectAsState()
    ObserveAsEvents(flow = viewModel.uiEvents) { event ->
        when (event) {
            is HomeEvents.ShowSnackbar -> SnackbarController.sendMessage(event.message)
            HomeEvents.OnTaskComplete -> onTaskComplete()
        }
    }
    HomeScreenContent(state = state, onAction = viewModel::onAction)
}

@Composable
private fun HomeScreenContent(state: HomeState, onAction: (HomeActions) -> Unit) {
    Scaffold { /* build UI from state + onAction */ }
}

This makes screens previewable, testable, and reusable.

Dialogs & bottom sheets

Always build on Starter's popup primitives. Do not call raw Dialog / ModalBottomSheet directly.

  • starter/ui/utils/.../ui_utils/popups/dialogs/BaseDialog.kt
  • starter/ui/utils/.../ui_utils/popups/bottom_sheets/BaseBottomSheet.kt
Show full SKILL.md (162 more words)Show less
BaseDialog
kotlin
BaseDialog(onDismiss = { showDialog = false }) {
    // content; already wrapped in a themed Surface (90% width, rounded corners)
}

BaseDialog wraps Dialog + a Surface (fillMaxWidth(0.9f), RoundedCornerShape(20.dp), surfaceContainerLowest). Default DialogProperties dismiss on back press and outside click.

BaseBottomSheet
kotlin
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun MyBottomSheet(
    sheetState: SheetState,
    onResult: (T) -> Unit,
    onDismiss: () -> Unit,
) {
    BaseBottomSheet(sheetState = sheetState, onDismiss = onDismiss) {
        // ColumnScope content
    }
}
  • Requires a SheetState — create with rememberModalBottomSheetState(skipPartiallyExpanded = true).
  • Dismiss cleanly with the hideProperly util (runs onDismiss only after the hide animation finishes):
kotlin
val scope = rememberCoroutineScope()
// inside a click handler:
scope.launch { sheetState.hideProperly { onDismiss() } }
  • In the screen, drive visibility with a boolean: var showX by rememberSaveable { mutableStateOf(false) }; onDismiss = { showX = false }. Never store sheet/dialog visibility in State (see core-rules).
Placement convention
  • One-off dialogs → .../_components/dialogs/
  • One-off bottom sheets → .../_components/sheets/
  • Keep the wrapper (popup shell) separate from its *Content composable, mirroring the Screen/Content split. Keep transient popup state (text fields, picker state) inside the popup composable, not the ViewModel.

Reusable Starter UI

Reuse these instead of hand-rolling equivalents (Golden Rule):

  • starter/ui/components — CupertinoSection, CupertinoSectionRow, PillActionButton, PillActionsContainer, CoilImage, ScrollableColumn, CupertinoDropdownMenu, FormTextField, LoadingButton, SearchTextField, FiltrationChip, etc.
  • starter/ui/layouts — LoadingLayout, EmptyStateWithAction.
  • starter/ui/utils — Dimens (spacing/sizing), VerticalSpacer, toActualString().

Reference the canonical onboarding slice in features/core/ for layout and composable structure.

Reference implementation

Mirror the onboarding slice in features/core/:

  • features/core/domain/.../repositories/OnboardingRepository.kt — interface
  • features/core/data/.../repositories/OnboardingRepositoryImpl.kt — impl
  • features/core/domain/.../logics/ — Logics
  • features/core/presentation/.../viewmodels/OnboardingViewModel.kt — MVI

© DevAtrii, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/kmp-starter/architecture of DevAtrii/Kmp-Starter-Template.

Open the folder on GitHubat commit a8f7b27

Compare with similar skills

Kmp Starter Architecture 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.

Kmp Starter Architecture compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kmp Starter Architecture this skillDevAtrii/Kmp-Starter-Template167—~1.6kAutomated safety check: PassMIT
Scaffoldcodewithmukesh/dotnet-claude-kit751—~1.7kAutomated safety check: PassMIT
Senior Fullstackdavila7/claude-code-templates32k7 repos~1.1kAutomated safety check: NotesMIT
AI Firstifytechwolf-ai/ai-first-toolkit132—~646Automated safety check: PassMIT
Angular Clean Architecturefmflurry/settings-opencode171—~3.6kAutomated safety check: PassMIT
Flutter App Architectureevanca/flutter-ai-rules649—~1.7kAutomated safety check: PassMIT

Similar skills

  • Scaffold

    codewithmukesh/dotnet-claude-kit

    Architecture-aware feature scaffolding for .NET 10 projects.

    751 GitHub stars~1.7k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Senior Fullstack

    davila7/claude-code-templates

    Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL.

    32k GitHub starsUsed in 7 repos~1.1k tokens
    DevelopmentAuto-check: notes
  • AI Firstify

    techwolf-ai/ai-first-toolkit

    Analyze, re-engineer, or bootstrap projects to align with AI-first design principles.

    132 GitHub stars~646 tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Angular Clean Architecture

    fmflurry/settings-opencode

    Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…

    171 GitHub stars~3.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Flutter App Architecture

    evanca/flutter-ai-rules

    A skill your agent uses when scaffolding a project, refactoring into layers, creating view models/repositories, configuring dependency injection, or implementing unidirectional data flow (MVVM).

    649 GitHub stars~1.7k tokensUpdated 24 days ago
    DevelopmentAuto-check passed
  • System Design

    aiskillstore/marketplace

    CTO's deputy for software architecture using Clean/Hexagonal Architecture principles.

    430 GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from DevAtrii/Kmp-Starter-Template

All 23 skills in this repo
  • Kmp Starter

    DevAtrii/Kmp-Starter-Template

    Build production Android & iOS apps on the KMP Starter Template (Clean Architecture, MVI, Koin, Compose Multiplatform).

    167 GitHub stars~3.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Kmp Starter Memory

    DevAtrii/Kmp-Starter-Template

    Persistent per-project memory for KMP Starter Template apps.

    167 GitHub stars~963 tokensUpdated 1 mo ago
    Auto-check passed
  • Kmp Starter Create Fresh App

    DevAtrii/Kmp-Starter-Template

    Research and plan a brand-new app before scaffolding it on the KMP Starter Template.

    167 GitHub stars~1.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Kmp Starter Data

    DevAtrii/Kmp-Starter-Template

    Data layer on the KMP Starter Template — repositories and data sources, Logics guidance, DataStore persistence, Room database, StarterFileManager, and the Calf file picker.

    167 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Kmp Starter Feature Analytics

    DevAtrii/Kmp-Starter-Template

    The KMP Starter Template analytics system — AppEvent/EventsTracker, Analytics routing, Mixpanel + Firebase providers, combining providers, and runtime swaps.

    167 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Kmp Starter Feature Database

    DevAtrii/Kmp-Starter-Template

    The KMP Starter Template Room database — entities, DAOs, migrations, and DB configuration in features/database.

    167 GitHub stars~806 tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Kmp Starter Architecture

What does Kmp Starter Architecture do?

Clean Architecture module and package layout for KMP Starter Template features — data/domain/presentation layers, core dependency rule, screen-based package organization, the Screen vs Content…. Kmp Starter Architecture is an agent skill from DevAtrii/Kmp-Starter-Template. Clean Architecture module and package layout for KMP Starter Template features — data/domain/presentation layers, core dependency rule, screen-based package organization, the Screen vs Content composable split, and dialog/bottom-sheet (BaseDialog/BaseBottomSheet) conventions.

When should I use Kmp Starter Architecture?

Kmp Starter Architecture fits situations like: tasks that involve Project scaffolding; tasks that involve Design patterns.

How do I install Kmp Starter Architecture in Claude Code?

Run `npx skills add DevAtrii/Kmp-Starter-Template --skill kmp-starter-architecture -a claude-code`. Or copy the skill folder (.agents/skills/kmp-starter/architecture in DevAtrii/Kmp-Starter-Template) into .claude/skills/kmp-starter-architecture in your project. Claude Code loads it when a task matches its description.

How do I install Kmp Starter Architecture in Codex?

Run `npx skills add DevAtrii/Kmp-Starter-Template --skill kmp-starter-architecture -a codex`. Or copy the skill folder (.agents/skills/kmp-starter/architecture in DevAtrii/Kmp-Starter-Template) into .agents/skills/kmp-starter-architecture in your project. Codex loads it when a task matches its description.

Can I use Kmp Starter Architecture in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DevAtrii/Kmp-Starter-Template --skill kmp-starter-architecture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kmp-starter-architecture, .gemini/skills/kmp-starter-architecture, .github/skills/kmp-starter-architecture and .opencode/skills/kmp-starter-architecture in your project.

What does Kmp Starter Architecture need to run?

SKILL.md names no scripts, command-line tools or credentials: Kmp Starter Architecture is instructions for the agent only.

Does Kmp Starter Architecture access the network?

SKILL.md names 1 domain. In commands or code: starter.atherio.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Kmp Starter Architecture safe to install?

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.

What licence does Kmp Starter Architecture use?

Kmp Starter Architecture is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kmp Starter Architecture use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kmp Starter Architecture?

Skills that share tags, products or a category with Kmp Starter Architecture: Scaffold (codewithmukesh/dotnet-claude-kit, 751 stars), Senior Fullstack (davila7/claude-code-templates, 32k stars), AI Firstify (techwolf-ai/ai-first-toolkit, 132 stars) and Angular Clean Architecture (fmflurry/settings-opencode, 171 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kmp Starter Architecture?

DevAtrii (a GitHub user) maintains it in DevAtrii/Kmp-Starter-Template, which has 167 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on September 1, 2026.

Source: DevAtrii/Kmp-Starter-Template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.