add-data-modulelisted
Install: claude install-skill komodgn/meta-android
# Data Module Creation Skill
This skill creates a new implementation module in the `data/` package.
## Prerequisites & Pre-steps
Before generating the module, confirm:
1. **Module Naming**:
- `{domain}`: Must be **snake_case** (e.g., `photo_tag`).
- `{Domain}`: Must be **PascalCase** (e.g., `PhotoTag`).
2. **Corresponding domain module** (`domain.{domain}.api`) must already exist.
3. **Structure type** (see below — Simple or Full?)
4. **Data sources required** (Remote API, Room DB, DataStore, local file system)
---
## Structure Type
### Simple — `di/` + `repository/` only
Use when the module only wraps a local data source (Room DAO, DataStore, ContentProvider, system API).
No remote response mapping, no business logic beyond simple delegation.
**Real examples:** `data:device`, `data:gallery`, `data:file`
```
data/{domain}/impl/src/main/java/com/metasearch/android/data/{domain}/impl/
├── repository/
│ └── {Domain}RepositoryImpl.kt
└── di/
└── {Domain}DataGraph.kt
```
### Full — `di/` + `mapper/` + `repository/` + `usecase/`
Use when the module involves remote API calls (needs response-to-model mapping) or contains UseCase implementations with business logic.
**Real examples:** `data:analysis`, `data:person`, `data:search`
```
data/{domain}/impl/src/main/java/com/metasearch/android/data/{domain}/impl/
├── repository/
│ └── {Domain}RepositoryImpl.kt
├── usecase/
│ └── {Action}{Domain}UseCaseImpl.kt
├── mapper/
│ └── ResponseToModel.kt
└── di/
└