This is a Kotlin Multiplatform project targeting Android, iOS.
-
/composeApp is for code that will be shared across your Compose Multiplatform applications. It contains several subfolders:
- commonMain is for code that’s common for all targets.
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name. For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app, the iosMain folder would be the right place for such calls. Similarly, if you want to edit the Desktop (JVM) specific part, the jvmMain folder is the appropriate location.
-
/iosApp contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
To build and run the development version of the Android app, use the run configuration from the run widget in your IDE’s toolbar or build it directly from the terminal:
- on macOS/Linux
gradle :composeApp:assembleDebug
- on Windows
gradle :composeApp:assembleDebug
Both require mise (mise install in the repo root), which pins Java, Gradle,
Ruby, ktlint and gh from mise.toml. Run mise run sdk-components once to install the Android platform AGP
compiles against.
To build and run the development version of the iOS app, use the run configuration from the run widget in your IDE’s toolbar or open the /iosApp directory in Xcode and run it from there.
Start with AGENTS.md for Mergen's architecture, generated API rules,
and validation commands. It asks agents to use Ponytail
in full mode and Ponytail review before
handing off a coding change.
For example, ask: "Use Ponytail full to fix this bug" or
"Use ponytail-review to review this branch against main."
You can request lite, ultra, or off; the default is full.
Skill discovery and command syntax depend on the agent. If your tool does not
discover .agents/skills or read AGENTS.md automatically, explicitly ask it to
read those files. These are repository instructions, not an automatically
enforced CI review or an installed lifecycle hook.
The two skill files are vendored from
DietrichGebert/ponytail at 96608e0.
Each includes the upstream MIT license alongside SKILL.md. The only local
skill-file adaptation is removing Ponytail's argument-hint metadata for
compatibility with skill validators; the instruction bodies are unchanged.
Mergen-specific behavior, including response language and validation, lives in
AGENTS.md. To update the vendored skills, review the upstream diff, replace
both skills and their licenses together, and update this pinned source reference.
Learn more about Kotlin Multiplatform…
Mergen uses the existing Chronos notification API. Configure these public Android
Firebase parameters as GitHub repository Variables (or Secrets):
MERGEN_FCM_APP_ID, MERGEN_FCM_SENDER_ID, MERGEN_FCM_API_KEY,
MERGEN_FCM_PROJECT_ID. The values must match the backend Firebase project.
Do not put Firebase service-account credentials in the Android application.
For local Android builds, export those four environment variables or use
-PmergenFcmAppId, -PmergenFcmSenderId, -PmergenFcmApiKey,
-PmergenFcmProjectId. Debug builds work without them, but push is disabled.
Android release workflows fail when Firebase configuration is missing.
Chronos currently sends data.type=notification, with no notification category
or ID. Push taps open the inbox, where users can select substitutions. Android
13+ requires notification permission.