M2b: Android skeleton, :core:model contract, :domain passing all vectors

Gradle project in android/ with every module of SPEC §6.2 (build-logic convention plugins, version catalog,
architecture check in check), :core:model types and repository interfaces of §14.2.4 and §14.5, :domain
implementing §14.5.2 and §14.5.4 (125 vector cases), scenario-driven fakes with the empty scenario, Room 3
entities and KvittDatabase v1 with exported schema, :app shell with Hilt, en/sv strings with MissingTranslation
as a lint error, Roborazzi goldens of the empty screen in light and dark.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 21:23:43 +02:00
parent 76ee957f41
commit c277ee37c2
93 changed files with 4915 additions and 1 deletions
+42
View File
@@ -0,0 +1,42 @@
plugins {
`kotlin-dsl`
}
dependencies {
compileOnly(libs.android.gradle.plugin)
compileOnly(libs.kotlin.gradle.plugin)
compileOnly(libs.compose.compiler.gradle.plugin)
}
gradlePlugin {
plugins {
register("kvittJvmLibrary") {
id = "kvitt.jvm.library"
implementationClass = "se.hagstedt.kvitt.buildlogic.JvmLibraryPlugin"
}
register("kvittAndroidLibrary") {
id = "kvitt.android.library"
implementationClass = "se.hagstedt.kvitt.buildlogic.AndroidLibraryPlugin"
}
register("kvittAndroidCompose") {
id = "kvitt.android.compose"
implementationClass = "se.hagstedt.kvitt.buildlogic.AndroidComposePlugin"
}
register("kvittAndroidFeature") {
id = "kvitt.android.feature"
implementationClass = "se.hagstedt.kvitt.buildlogic.AndroidFeaturePlugin"
}
register("kvittAndroidApplication") {
id = "kvitt.android.application"
implementationClass = "se.hagstedt.kvitt.buildlogic.AndroidApplicationPlugin"
}
register("kvittAndroidHilt") {
id = "kvitt.android.hilt"
implementationClass = "se.hagstedt.kvitt.buildlogic.HiltPlugin"
}
register("kvittArchitecture") {
id = "kvitt.architecture"
implementationClass = "se.hagstedt.kvitt.buildlogic.ArchitecturePlugin"
}
}
}