Claude Code skills · updated 2026-10-03
F-Droid inclusion skill for Claude Code — non-free deps, foss flavour
Finds every Gradle line that keeps your Android app out of F-Droid
On one 40-line app/build.gradle.kts it printed 14 findings (10 errors, 4 warnings) from 25 rules, each with file:line and the free replacement.
Get it on Whop - $12 onceGet it on Gumroad
Who it's for
For Android maintainers who want their app in F-Droid while the Play build keeps Firebase and Play Services.
What breaks, and when
While one non-free artifact sits on an unflavoured line, fdroidserver's scanner rejects the build; apps built on AdMob are not found in the F-Droid repo at all.
What it printed on the bundled example
== F-Droid Inclusion Gate — 14 findings (10 errors, 4 warnings) in 1 file · 25 rules
WARN app/build.gradle.kts:4 [google-services-plugin]
google-services Gradle plugin → Apply it only when the play flavour is built (it reads google-services.json for Firebase/GMS); the foss build needs neither
fix: Apply it only when the play flavour is built (it reads google-services.json for Firebase/GMS); the foss build needs neither
ERROR app/build.gradle.kts:5 [crashlytics]
Crashlytics / closed crash reporter (non-free, forbidden by the F-Droid Inclusion Policy) → implementation("ch.acra:acra-mail") (ACRA, Apache-2.0), opt-in and off by default, or F-Droid adds the Tracking anti-feature
fix: implementation("ch.acra:acra-mail") (ACRA, Apache-2.0), opt-in and off by default, or F-Droid adds the Tracking anti-feature
WARN app/build.gradle.kts:23 [jcenter]
jcenter() repository → mavenCentral(): jcenter is not in fdroidserver's allowed repository list
What you get
- A scanner Claude runs over every .gradle, .kts and .toml file - not a guess from memory
- 25 rules from the F-Droid Inclusion Policy and fdroidserver scanner.py: GMS, Firebase, Play Core, Billing, ML Kit
- Each finding names its anti-feature and a free swap: UnifiedPush, ACRA, osmdroid, ZXing
- Claude drafts the foss/play flavour split and edits only after you say yes; exit 1 in CI on any error
Install
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "We want to publish our Android app on F-Droid but it uses Firebase and Google Play Services. Can you go through our Gradle files and tell me what they would reject and what a foss build would need instead? Don't edit anything yet.". Needs Node 16+.
unzip fdroid-inclusion-check.zip -d ~/.claude/skills/
Ask Claude
“We want to publish our Android app on F-Droid but it uses Firebase and Google Play Services. Can you go through our Gradle files and tell me what they would reject and what a foss build would need instead? Don't edit anything yet.”
What it does not do
Reads Gradle text only; it does not run Gradle, resolve transitive dependencies or scan .aar/.jar binaries.
FAQ
What is a Claude Code skill?
A folder with a SKILL.md and scripts that Claude Code loads when your request matches it. You ask in plain words and Claude runs the scanner the skill carries.
How is this different from asking Claude without the skill?
The skill carries a dated rule table and a scanner that reads every file, so Claude quotes the exact date and line instead of answering from memory.
Does it send my code anywhere?
Reads Gradle text only; it does not run Gradle, resolve transitive dependencies or scan .aar/.jar binaries.
How do I install it?
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "We want to publish our Android app on F-Droid but it uses Firebase and Google Play Services. Can you go through our Gradle files and tell me what they would reject and what a foss build would need instead? Don't edit anything yet.". Needs Node 16+.
What do I get when I buy?
The zip. On Whop it is in your library as a download lesson with the zip attached; on Gumroad it is the product file.