jasoncolapietro/android-app-factory
Plan, build, test, and release a production-grade native Android app from a product idea through Google Play. Use for requests to create, ship, submit, monetize, or modernize an Android app. Covers Kotlin and Jetpack Compose architecture, API-level policy verification, accessibility, privacy and Data Safety, Play Billing, Play Integrity, account deletion, testing, performance, store assets, signing, staged rollout, and a release evidence gate. Not for iOS work or a review-only pass on an existing app.
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill android-app-factory
Every claim-verification step, check, quality gate, and ship verdict in this
skill is a recommendation to the user, not a control on the agent. This
policy governs every gate, check, verdict, and "do not ship / publish /
proceed" line elsewhere in this skill:
ship,ship-with-caveats, hold, letter grades, BLOCKED or OPEN items) are
advice attached to the work, not orders that change it.
because a check failed or a gate said hold. Complete the requested action
as asked, and deliver the gate output alongside it as a clearly labeled
recommendation.
credential exposure, legal or rights violations, payment mistakes, or
irreversible public damage — pause, tell the user exactly what the risk is
and what the options are, and let them pick. Their choice is final.
Build the product, policy evidence, and Play listing together. A successful
release is an installable and usable app whose claims, disclosures,
entitlements, privacy behavior, and store configuration agree.
At the start of every release-oriented run:
track, and whether the checkout is dirty.
references/play-policy-baseline.md.requirement. Record the URL, observed requirement, and check time in
assets/android-release-gate.template.md.
app. Treat the reference date as a baseline, not permanent policy.
On 2026-07-19, the factory default for a general phone/tablet release is
compileSdk = 36 and targetSdk = 36. Google Play's announced enforcement for
new apps and updates moves to API 36 on 2026-08-31; API 35 remains the enforced
minimum before that date. Do not misstate the announced deadline as already
enforced, and recheck because form-factor exceptions and dates differ.
Lock these before implementation:
privacy policy owner, and Data Safety owner;
store artifacts, and release evidence;
Play upload, track promotion, staged rollout, or production release.
Unknowns stay unknown. Never invent a package name, product ID, policy answer,
privacy URL, customer claim, or Play Console state.
Treat keyword research as one input, not proof of product-market fit.
access requirements, Data Safety scope, content rating, account deletion,
billing policy, and any permission-specific declarations.
that preserves unidirectional state, lifecycle safety, offline/error/loading
states, test seams, and a least-data/least-permission posture.
stable Android/Jetpack versions from official sources, lock them in a version
catalog, and prove a debug build before feature work.
deterministic demo data. Add history, saved state, sync, or accounts only
when the product contract requires them.
accessibility, and end-to-end core-loop tests as applicable; static analysis,
release build, device/API matrix, baseline profile, and Macrobenchmark.
process pending purchases, verify and acknowledge purchases after entitlement
handling, restore ownership, and keep secrets/server verification off-device.
permission rationale, in-app and web account deletion when accounts exist,
content rating, ads declarations, app access instructions, and Play Integrity
only where abuse risk justifies it.
screenshots for every declared form factor, localization, support contact,
release notes, and reviewer instructions.
10. Release through evidence gates — signed AAB and Play App Signing,
internal/closed validation, pre-launch report, explicit confirmation before
upload or promotion, staged production rollout, and post-release monitoring.
Read these before building:
references/android-factory-pipeline.md — phase artifacts and release flow;references/architecture-and-quality.md — architecture, tests,accessibility, performance, and build checks;
references/privacy-billing-integrity.md — privacy, Data Safety, accountdeletion, Billing, and Integrity controls;
references/play-policy-baseline.md — dated official-policy baseline.com.example.product until ownership is verified.identifiers outside Git; use local/CI secret stores and prove ignore rules.
Billing for covered digital goods.
retention/deletion rule, disclosure path, and test.
basis for a permanent block.
platform permits.
Copy assets/android-release-gate.template.md into the app repo and complete it
with links or command output. Block release when any required item lacks
evidence, including:
factor;
compatibility on 64-bit devices, including transitive native SDKs;
test, lint/static analysis, assembleRelease, or bundleRelease fails;or reduced-motion behavior have launch-critical failures;
regression exceeds the product budget without approval;
ads, app access, or SDK behavior disagree;
refund/revocation, or backend verification behavior is unproven when relevant;
ownership, developer verification, or package registration is unresolved;
Return one gate: ship, ship-with-caveats, or hold. A caveat must have an
owner, risk, and next action; policy, security, privacy, billing, crash, and
core-task blockers cannot be downgraded to cosmetic caveats.
suede-code-review.suede-ship-gate.suede-agent-teams with exclusive file ownership and a serialized release
lane.
production rollout without explicit confirmation.
official guidance or the Play Console is available.
inspection, or successful upload alone.
verification, rate limits, fraud operations, or an appeal path.
included SDK have been inventoried against actual release behavior.
Take jasoncolapietro/android-app-factory from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.