kotlin-project-modularization

Define and enforce Kotlin Multiplatform module boundaries with explicit dependency direction.

63|6|Updated Mar 27, 2026
One-click install
npx skills add https://github.com/mmiani/kotlin-kmp-claude-agent-skills --skill kotlin-project-modularization-mmiani
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kotlin-project-modularization
Source: https://github.com/mmiani/kotlin-kmp-claude-agent-skills/tree/main/skills/kotlin-project-modularization
Command: npx skills add https://github.com/mmiani/kotlin-kmp-claude-agent-skills --skill kotlin-project-modularization-mmiani

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps teams design, review, and refactor Kotlin Multiplatform module boundaries across feature, data, app, and common layers, ensuring clear ownership, controlled visibility, and clean dependency direction.

Core Features & Use Cases

  • Enforces explicit module boundaries and ownership to reduce coupling and improve build performance.
  • Guides placement and visibility of shared code, data sources, and cross-cutting concerns to avoid leakage.
  • Use Case: When reorganizing a growing KMP project, apply this skill to align modules with features and data domains while preserving platform-specific boundaries.

Quick Start

Outline the modularization strategy for a Kotlin Multiplatform project by assessing module boundaries and guiding separation of features, data, and common code.

Frequently Asked Questions about kotlin-project-modularization

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure Kotlin Multiplatform module boundaries to prevent cyclic dependencies?

To establish Kotlin Multiplatform module boundaries, separate feature, data, app, and common modules with explicit dependency direction and visibility control. This structure enforces clear ownership and prevents cross-cutting concerns and cyclic dependencies.

What is the best way to organize a growing Android project by features and data domains?

Organizing Android project modules by features and data domains requires establishing explicit module types and ownership. Aligning modules with specific features and data domains while preserving platform-specific boundaries reduces coupling and improves build performance.

Does this modularization approach work for both Kotlin Multiplatform and Android project structures?

Yes, this modularization approach applies to both Kotlin Multiplatform and Android project structures. It guides the placement of shared code, data sources, and cross-cutting concerns across feature, data, app, and common layers for both platforms.

How do I control visibility of shared code and data sources in KMP modules?

To control visibility of shared code and data sources in KMP modules, define explicit module boundaries and enforce dependency direction. This prevents leakage of shared code and data sources across feature, data, app, and common layers.

When do I need to refactor Kotlin module boundaries for better maintainability?

You need to refactor Kotlin module boundaries when a growing project experiences increased coupling, unclear ownership, or build performance issues. Realigning modules with features and data domains while enforcing explicit entry points resolves these maintainability concerns.