CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

android-clean-architecture

Android と Kotlin Multiplatform プロジェクトのクリーンアーキテクチャパターン — モジュール構造、依存関係ルール、UseCase、Repository、データ層パターン。

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./docs/ja-JP/skills/android-clean-architecture/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

83%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is an excellent lean pattern reference: terse rules plus complete, executable Kotlin/SQL covering every layer, with no wasted tokens. Its main weaknesses are the absence of an explicit application workflow with validation checkpoints, and inlining of detailed tool-specific content that could live in one-level-deep reference files. Overall a strong, high-actionability skill body.

Suggestions

Add an explicit ordered workflow for applying the patterns (e.g., 1. define module layout and dependency rules, 2. write domain models/repository interfaces, 3. implement data layer + mappers, 4. wire DI) with a validation step such as running ./gradlew :domain:dependencies to verify the domain module has no framework dependencies — this addresses the workflow_clarity gap.

Convert the "避けるべきアンチパターン" list into a post-implementation checklist with concrete verification commands (e.g., grep the domain module's imports for 'android' to enforce "純粋な Kotlin のみ").

Move the tool-specific deep dives (Room/SQLDelight/Ktor data-source code, Gradle convention plugins) into references/ files such as references/data-layer.md and references/gradle-conventions.md, keeping SKILL.md as an overview with clearly signaled one-level-deep links.

DimensionReasoningScore

Conciseness

Every section is a single terse rule followed by executable code ("各 UseCase は 1 つのビジネス操作を表します"; "ドメインモデルはプレーンな Kotlin データクラス — フレームワークのアノテーションなし"; "マッパーはデータモデルの近くに拡張関数として保持する") with no padding and no explanation of concepts Claude already knows — every token earns its place.

5 / 5

Actionability

Fully executable, copy-paste-ready examples cover the common cases: UseCases with "suspend operator fun invoke", a complete ItemRepositoryImpl coordinating local/remote sources with runCatching, mapper extension functions, Room @Entity/@Dao with @Upsert and Flow queries, SQLDelight .sq schema, Ktor client with ContentNegotiation, Koin and Hilt modules, and sealed AppError/Try types.

5 / 5

Workflow Clarity

The body is organized as a pattern reference with an implicit layer ordering (module structure → domain → data → DI → error handling) but no explicit step sequence for applying the patterns and no validation checkpoints (e.g., how to verify the domain module stays framework-free); the "避けるべきアンチパターン" list partially acts as a review checklist, which keeps it at anchor 3 rather than 2, but it does not reach 4 since no sequenced workflow with checkpoints is actually written.

3 / 5

Progressive Disclosure

Clear section headers ("モジュール構造", "ドメイン層", "データ層", "依存性注入", "エラー処理") make the single ~330-line file easy to navigate, and the cross-skill pointers are clearly signaled ("UI パターンは compose-multiplatform-patterns を参照"); not 5 because tool-specific deep dives (Room/SQLDelight/Ktor code, Gradle convention plugins) are inlined where one-level-deep reference files would keep SKILL.md an overview — no bundle files exist, so there are no broken references to penalize.

4 / 5

Total

17

/

20

Passed

Description

66%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific and domain-scoped with strong natural trigger terms, but it completely lacks an explicit 'Use when...' trigger clause, capping its completeness. Adding trigger guidance and the KMP abbreviation would make it fully effective. Low conflict risk given the well-defined Android/KMP clean-architecture niche.

Suggestions

Add an explicit trigger clause, e.g. "Use when structuring Android/KMP project modules, implementing UseCase/Repository/DataSource, or setting up layered architecture with Room, SQLDelight, Ktor, Koin, or Hilt" — this removes the completeness cap of 3.

Include the natural abbreviation "KMP" and common variations such as "layered architecture" / "マルチモジュール" so trigger-term coverage matches how users actually phrase these requests.

Mention the DI frameworks (Koin/Hilt) and persistence tools (Room/SQLDelight/Ktor) that the body actually covers, so the description's capability list is not missing major content areas.

DimensionReasoningScore

Specificity

The description explicitly lists five concrete covered areas ("モジュール構造、依存関係ルール、UseCase、Repository、データ層パターン") rather than generic language, matching the 'several specific items with minor gaps' anchor; it is below 5 because the items are topic nouns rather than actions and coverage gaps exist (DI, error handling are covered in the body but not mentioned).

4 / 5

Completeness

It has a clear 'what' ("クリーンアーキテクチャパターン — モジュール構造、…データ層パターン") but no 'Use when...' clause or equivalent explicit trigger guidance; the scoping phrase "Android と Kotlin Multiplatform プロジェクトの" only weakly implies 'when', which caps completeness at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

Natural terms a user would say are present — "Android", "Kotlin Multiplatform", "クリーンアーキテクチャ", "UseCase", "Repository", "モジュール構造" — giving good keyword coverage; not 5 because common variations like the abbreviation "KMP", "layered architecture / マルチモジュール", and tool names (Room, Koin, Hilt) are missing.

4 / 5

Distinctiveness Conflict Risk

The niche is clear (clean architecture for Android/KMP with UseCase/Repository/dependency-rule triggers) with only minor overlap risk against closely related skills such as general Kotlin or Compose UI pattern skills the bundle itself cross-references; not 5 because broadly used terms like "Repository" and "データ層" could still collide with other architecture or data-layer skills.

4 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

affaan-m/ECC

Path

docs/ja-JP/skills/android-clean-architecture/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.