agentleFS
krutikJainkrutikJain/android-agent-skills/.github/skills/android-modularization/SKILL.md

android-modularization

Skill14 starsChanged 8 months agoMITView on GitHub

Design Android repositories with feature, core, and build-logic modules that scale without cyclic dependencies.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 6 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the request is about: android module split, feature modularization in android, break cyclic module dependency.

    line 17
  2. Very specific:

    Keep api vs implementation, public surface area, and test fixture ownership explicit so the new boundary stays stable.

    line 28
  3. Distinctive:

    Prefer official Android and Kotlin guidance over custom local conventions when they conflict.

    line 32
  4. Distinctive:

    Keep public APIs boring and explicit.

    line 33
  5. Distinctive:

    Do not mix architectural cleanup with product behavior changes unless the request explicitly needs both.

    line 34
  6. Distinctive:

    Document any compatibility constraints that will affect old modules or generated code.

    line 35
  7. Distinctive:

    Avoid over-modularizing a small codebase when the real need is a single clearer ownership boundary.

    line 36

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Android Modularization

When To Use

  • Use this skill when the request is about: android module split, feature modularization in android, break cyclic module dependency.
  • Primary outcome: Design Android repositories with feature, core, and build-logic modules that scale without cyclic dependencies.
  • Reach for this skill when the problem is dependency direction, API ownership, or feature/data/core boundaries, not task-level build speed tuning.
  • Handoff skills when the scope expands:
  • android-gradle-build-logic
  • android-architecture-clean

Workflow

  1. Map the current module graph first: app, feature, data, core, build-logic, and any dynamic-feature or test-only modules.
  2. Identify which direction is wrong: feature-to-feature coupling, framework leakage into domain/data, API surface too wide, or duplicated shared code with unclear ownership.
  3. Split by ownership and change rate, not by abstract theory; create the smallest module boundary that removes the current coupling problem.
  4. Keep api vs implementation, public surface area, and test fixture ownership explicit so the new boundary stays stable.
  5. Hand off build-speed or plugin-architecture issues only after the module graph itself is coherent.

Guardrails

  • Prefer official Android and Kotlin guidance over custom local conventions when they conflict.
  • Keep public APIs boring and explicit; avoid clever abstractions that hide Android lifecycle costs.
  • Do not mix architectural cleanup with product behavior changes unless the request explicitly needs both.
  • Document any compatibility constraints that will affect old modules or generated code.
  • Avoid over-modularizing a small codebase when the real need is a single clearer ownership boundary.

Anti-Patterns

  • Sprinkling helpers across modules without a clear ownership boundary.
  • Introducing framework-specific code into pure domain or data layers.
  • Refactoring every adjacent file when only one contract needed to change.
  • Leaving migration notes implied instead of writing them down.
  • Treating module count as the goal instead of build isolation and dependency clarity.

Examples

Happy path

  • Scenario: Review the fixture apps as app modules and map the next split into feature/core layers.
  • Command: cd examples/orbittasks-compose && ./gradlew :app:projects

Edge case

  • Scenario: Keep shared XML resources and manifest placeholders from leaking across modules.
  • Command: cd examples/orbittasks-xml && ./gradlew :app:dependencies

Failure recovery

  • Scenario: Differentiate modularization requests from architecture-clean and build-logic prompts.
  • Command: python3 scripts/eval_triggers.py --skill android-modularization

Done Checklist

  • The implementation path is explicit, minimal, and tied to the right Android surface.
  • Relevant example commands and benchmark prompts have been exercised or updated.
  • Handoffs to adjacent skills are documented when the request crosses boundaries.
  • Official references cover the chosen pattern and the main migration or troubleshooting path.

Official References

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.