foss-vs-proprietary-module-pairs
Installation
SKILL.md
Twin modules: <feature> and <feature>-empty
Two modules, same package, same declarations. One wraps the real integration; the other returns values that make every caller take the "not available" path without knowing there is one.
// adapted — <feature>-empty/src/…/<Feature>.kt
package com.example.app.<feature>
// STUB build: <feature> is not available. Every function is a safe no-op so callers
// never branch on the build.
fun init<Feature>(context: Context): Boolean {
Logger.d(TAG, UNAVAILABLE)
return false
}
fun is<Feature>Available(): Boolean = false