en un clic
architecture-core
// Trigger: Data Flow & Modules. Implementing Repositories, managing cross-module boundaries, and handling async work with Coroutines.
// Trigger: Data Flow & Modules. Implementing Repositories, managing cross-module boundaries, and handling async work with Coroutines.
| name | architecture-core |
| description | Trigger: Data Flow & Modules. Implementing Repositories, managing cross-module boundaries, and handling async work with Coroutines. |
Repositories are the single source of truth for data. They abstract the data source (API, Cache) from the Presenter.
@InjectConstructor
class VideoRepository(private val client: SerenityClient) {
suspend fun fetchItemById(itemId: String): IMediaContainer = withContext(Dispatchers.IO) {
client.fetchItemById(itemId)
}
}
Presenters manage View state and coordinate data flow.
Use viewModelScope (or equivalent in Moxy) to launch coroutines.
fun loadData() {
launch {
try {
val data = repository.fetchData()
viewState.displayData(data)
} catch (e: Exception) {
viewState.showError(e.message)
}
}
}
:serenity-app: UI and Presenters.:emby-lib / :jellyfin-lib: API Clients and Provider-specific logic.:serenity-common: Shared POJOs and Interfaces.SerenityApplication: Global scope (APPLICATION_SCOPE).InjectingActivity / InjectingMvpActivity: Base classes for DI support.Test-driven development with red-green-refactor loop. MUST be triggered during ANY coding session involving feature implementation or bug fixes or specifications.
Evaluates skills based on discoverability, agent-friendliness, and consumption efficiency. Returns a Letter Grade (A+ to F) and actionable coaching.
Validating agent skills against the agentskills.io specification and generating compliance reports.
Trigger: Pre-Commit/Final Review. Validating code against Serenity’s 'Golden Standards' for architecture, security, performance, and testing before merging.
Trigger: Presenter Logic. Managing Moxy MVP state, Presenter lifecycle, and view delegation without @InjectPresenter.
Trigger: Dependency Injection. Managing Toothpick scopes, binding modules, and implementing constructor or provider-based injection.