mit einem Klick
new-module-checklist
// Step-by-step module creation checklist. Use when adding a new Gradle module and wiring build, DI, and architecture integration correctly.
// Step-by-step module creation checklist. Use when adding a new Gradle module and wiring build, DI, and architecture integration correctly.
| name | new-module-checklist |
| description | Step-by-step module creation checklist. Use when adding a new Gradle module and wiring build, DI, and architecture integration correctly. |
The build system is convention-driven: naming a module correctly causes buildSrc/CorePlugin to
automatically apply the right plugins, dependencies, and Room options. Follow this checklist when
adding any new Gradle module.
Before creating a new module, confirm the work does not belong in an existing :android:* or
:app:core helper surface. Theme/configuration, notification, deep-link, drawer, and general
Android utility work often extends those modules rather than introducing a new module.
buildSrc/src/main/java/co/anitrend/buildSrc/module/Modules.kt — central registry of all
module paths; must be updated for every new modulebuildSrc/src/main/java/co/anitrend/buildSrc/plugins/CorePlugin.kt — the convention plugin
applied to every modulebuildSrc/src/main/java/co/anitrend/buildSrc/plugins/components/ProjectDependencies.kt —
determines which libraries are automatically injected based on module typesettings.gradle.kts — where the include(":your:new:module") declaration lives:android:*, :app:core, and
.github/skills/android-platform-patterns/SKILL.md first.feature/, data/, common/, etc.).build.gradle.kts applying the CorePlugin (copy from a similar existing module).src/main/kotlin/ and src/main/AndroidManifest.xml (for Android library modules).include(":your:new:module") to settings.gradle.kts.Modules.kt under the correct category
(Feature, Data, Common, Android, Task, etc.).<module>/src/main/kotlin/.../koin/Modules.kt (see .github/skills/koin-module-wiring/SKILL.md).app/core/src/main/kotlin/co/anitrend/core/koin/Modules.kt for top-level modules, including
:android:* modules).tag for simple query-only, media for
multi-contract reads, medialist or review for hybrid flows, favourite for mutation-only.:domain; for hybrid modules split it by operation
(Detail, Paged, Save, Delete, etc.) instead of one broad interface.:domain; do not keep repository contracts or
concrete interactor implementations inside the module Types.kt.Types.kt.usecase/; simple modules may use
XxxUseCaseImpl, while multi-operation modules may use nested XxxInteractor classes.:task:* worker and router plumbing instead of calling the mutation interactor directly from
feature code..github/skills/room-entity-pattern/SKILL.md)../gradlew :your:new:module:assembleDebug to verify plugin and dependency resolution../gradlew spotlessCheck to validate formatting.data/schemas/.| Module prefix | Auto-included libraries |
|---|---|
:feature:* | support-arch UI/domain/data, Compose, AndroidX core, Koin, Timber |
:data:* | Room + KSP, Retrofit, OkHttp, Kotlinx Serialization, Chucker (debug) |
:common:* | support-arch UI, Compose (if name matches pattern), Koin |
:task:* | WorkManager, support-arch, Koin |
:android:* | AndroidX core, support-arch, Koin |
Use ADB to connect devices, install Android debug builds, and troubleshoot deployment failures. Use for device detection errors, install failures, launch failures, package selection across flavors, and first-pass process checks. For deeper runtime investigation, prefer the Argent workflow.
Investigate Android runtime bugs with evidence-first Argent workflows. Use for emulator targeting, runtime console/network inspection, UI hierarchy capture, optional native traffic inspection, and root-cause analysis before changing code.
Capture quick Android UI evidence with explicit launches, UIAutomator dumps, and adb screenshots for fast visual debugging and reproducible repro notes.
Instruction-to-skill navigation map. Use when routing tasks to the right instruction and skill files or migrating legacy guidance to the split-doc model.
Android platform/helper layer guide for AniTrend. Use when working in `:android:*` modules or deciding whether to reuse or extend existing Android-side helpers for configuration/theme, context or fragment utilities, notification permission flows, deep links, drawer/app-shell behavior, or other platform APIs.
Diagnose and fix silent empty-UI bugs caused by CacheRequest enum collisions in AniTrend. Use when a new offline-first source variant produces blank UI with no crash, no exception, and the Room tables have zero rows. Covers: cache_log collision diagnosis, ADB Room database forensics, WAL checkpoint, Chucker traffic check, CacheRequest isolation fix, and Koin factory update pattern.