Skip to content
Agentmart
Submit a tool

android-clean-architecture

Android/Kotlin platform adapter for `clean-architecture-core` that maps the core contract to Gradle modules, Kotlin packages, Hilt, Retrofit data sources, and…

Skill by chonamdoo

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/chonamdoo-android-clean-architecture

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Android/Kotlin platform adapter for `clean-architecture-core` that maps the core contract to Gradle modules, Kotlin packages, Hilt, Retrofit data sources, and Android platform boundaries. Use when applying Clean Architecture to Android modules or reviewing module/data/DI boundaries; pair with android-clean-presentation-architecture for ViewModel, UiState, Compose screen, or presentation-only work.

Use cases: documents, presentations, data

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/android-clean-architecture

What's inside

Skill name
android-clean-architecture
Description
Android/Kotlin platform adapter for `clean-architecture-core` that maps the core contract to Gradle modules, Kotlin packages, Hilt, Retrofit data sources, and Android platform boundaries. Use when applying Clean Architecture to Android modules or reviewing module/data/DI boundaries; pair with android-clean-presentation-architecture for ViewModel, UiState, Compose screen, or presentation-only work.
License
MIT
Instructions
86 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Android Clean Architecture

This is not a standalone Clean Architecture guide. Load [`clean-architecture-core`](../clean-architecture-core/SKILL.md) first; this skill adds Android/Kotlin module, package, DI, and platform-boundary details only.

## Quick start

1. Apply the layer, dependency-direction, and review rules from `clean-architecture-core`.
2. Use this adapter only to translate those rules into Android Gradle modules, Kotlin packages, Hilt bindings, Retrofit/OkHttp boundaries, and Android platform adapters.
3. If the task is only ViewModel, UiState, Compose screen wiring, or one-shot presentation effects, pair with `android-clean-presentation-architecture` before applying presentation details.

## Module Boundaries

Discover the project's Gradle modules, Kotlin source sets, dependency declarations,
and active architecture role mappings. Preserve an adopted layout; roles do not
require a new module or a fixed folder tree. Kotlin `internal` is a compilation
module boundary, not package-private visibility.

Map source sets as well as module ownership. Repeated package names do not prove
the dependency direction, and a role outside lint activation has not been checked.

## Roles

- `app-shell` owns Android Application/activity entry and Hilt composition.
- If the project has a shared database role, data adapters may depend on it.
  Database code does not depend on data implementations, features, or AppShell;
  pure domain policy does not depend on the database. Otherwise keep persistence
  inside the existing data adapter boundary.
- Network/platform roles own Android client qualifiers and native capabilities.

Apply the required core's **Semantic Layers** for all other role ownership.

## Hilt DI

- Use `@HiltAndroidApp` on the `Application`.
- Use `@AndroidEntryPoint` on activity/fragment hosts.
- Use `@HiltViewModel` for ViewModels.
- Put `@Provides` for third-party builders/factory logic.
- Put `@Binds` for interface-to-implementation mappings.
- Keep Retrofit/OkHttp construction at the network adapter/composition edge.
- Keep API providers and repository bindings at the data adapter/composition edge.
- An adopted application use-case `@Inject constructor` needs no redundant Hilt
  module. This is application wiring metadata, not permission for Hilt or Android
  types inside pure domain policy. Use external factories for a fully pure action.
- Assisted ViewModel factories pass only route values; other dependencies stay
  normal Hilt injections.

## Data Boundary

Keep Retrofit interfaces and their outbound DTOs in the owning data/network
adapter. Discover the existing binding locations rather than moving files to
match an example layout. Apply the required core's **Repository And Source
Boundary** and **Mapping Boundary**, including their recorded exceptions.

## Presentation Boundary

For ViewModel, UI state, route wiring, or Compose rendering, load
`android-clean-presentation-architecture` through the core's **Required
Application** rule. That skill owns Android state/lifecycle/stateless-rendering
rules; this adapter does not select presentation work for a data-only change.

## Review Additions

```text
android-clean-architecture: applied
gradle-module-boundary: pass|fail
kotlin-package-boundary: pass|fail
hilt-composition-root: pass|fail
repository-impl-direct-api-service: pass|fail
remote-data-source-boundary: pass|fail
feature-api-public-contract-only: pass|fail
viewmodel-dependency-boundary: usecase|single-context-repository|mixed|no-domain-dependency|fail|n/a
compose-route-screen-split: pass|fail|n/a
```

`viewmodel-dependency-boundary` records which allowed shape the ViewModel used:
`usecase` for use cases only, `single-context-repository` for a direct repository
interface from one context, `mixed` when both appear, `no-domain-dependency` when
the ViewModel injects only platform/UI abstractions, `fail` for a repository
implementation, data source, or API service, and `n/a` when no ViewModel changed.

## Evidence Basis

Hilt Android docs, Android ViewModel docs, Android UI layer docs, Compose state
docs, StateFlow and SharedFlow docs.

From chonamdoo/agent-flow, MIT.

More from chonamdoo/agent-flow

Signals

Stars
0
Forks
0
Open issues
21
Last commit (this folder)
Sep 14, 2026 (1 month ago)
Last release
Oct 21, 2026 (9 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from chonamdoo

Cite this page

android-clean-architecture skill. Agent Mart. https://agentmart.dev/skills/chonamdoo-android-clean-architecture (last updated 2026-10-24)