Official agent skill

Android New Module

by SAP in SAP/project-foxhound

Guide for creating new Android gradle modules in the android-components project.

OfficialGPL-3.0Auto-check passedMobile

Install Android New Module

skills CLI
$ npx skills add SAP/project-foxhound --skill android-new-module -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SAP/project-foxhound android-new-module --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SAP/project-foxhound.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/android-new-module .claude/skills/android-new-module && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
android-new-module
GitHub stars
180
Used in
2 other repos
Token cost
~1.8k tokens
SKILL.md length
637 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
GPL-3.0

At a glance

Guide for creating new Android gradle modules in the android-components project.

  • Works in 9 steps: Determine Component Type and Name → Create Directory Structure → Create build.gradle → …
  • Mobile work in your project
  • SKILL.md covers Overview, Component Categories, Steps to Create a New Component and Common Patterns, plus 2 more sections
  • Reaches mozilla.org

What it does

Android New Module is an agent skill from SAP/project-foxhound, published by the product's own GitHub organization. Guide for creating new Android gradle modules in the android-components project.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile. It works with Android, Gradle and Kotlin. The repository describes itself as: A web browser with dynamic data-flow tracking enabled in the Javascript engine and DOM, based on Mozilla Firefox (https://github.com/mozilla-firefox/firefox). It can be used to… The licence is GPL-3.0.

When your agent uses it

  • Mobile work in your project

Example prompts

  • “/android-new-module”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Determine Component Type and Name
  2. Create Directory Structure
  3. Create build.gradle
  4. Create AndroidManifest.xml
  5. (Optional) Create Main Kotlin Source
  6. (Optional) Create Test File
  7. Create Robolectric Configuration
  8. Create README.md
  9. Register in .buildconfig.yml

What it can do on your machine

Read from SKILL.md and the folder at commit 9dcb850. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash, xml, properties and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • mozilla.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Android New Module loads about 1.8k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 637 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~25
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SAP/project-foxhound at commit 9dcb850, republished under its GPL-3.0 licence (© SAP). 637 words, ~1,828 tokens.

Download SKILL.mdSave it as .claude/skills/android-new-module/SKILL.md (or your agent's skills folder).
name
android-new-module
description
Guide for creating new Android gradle modules in the android-components project.

Overview

This skill helps you create new Android gradle modules following Mozilla's conventions and structure. Components are organized into categories: browser, concept, feature, lib, service, support, ui, and compose.

Component Categories

  • browser - High-level browser components (engine, menu, state, etc.)
  • compose - Jetpack Compose components
  • concept - Abstract API contracts and interfaces
  • feature - Feature modules for browser functionality
  • lib - Standalone libraries (utilities, tools)
  • service - Services (push, sync, etc.)
  • support - Support/utility modules
  • tooling - Support modules for the build or tools.
  • ui - UI components; has overlap with Compose components.

Steps to Create a New Component

Create a plan to execute the steps. The plan should include all nine steps below.

1. Determine Component Type and Name

Ask the user:

  • What category? (feature, lib, browser, etc.)
  • What should it be named? (lowercase with hyphens, e.g., my-component)
  • What will it do? (for description)
  • Will it be published to Maven? (most are publish: true, examples are publish: false)
2. Create Directory Structure
bash
mkdir -p mobile/android/android-components/components/{category}/{name}/src/main/java/mozilla/components/{category}/{name}
mkdir -p mobile/android/android-components/components/{category}/{name}/src/test/java/mozilla/components/{category}/{name}
mkdir -p mobile/android/android-components/components/{category}/{name}/src/test/resources
3. Create build.gradle

Reference the example at mobile/android/android-components/components/feature/example/build.gradle for the standard structure.

Key elements:

  • Apply plugins: com.android.library and kotlin-android
  • Set namespace: mozilla.components.{category}.{name}
  • Include common dependencies: androidx.core.ktx, kotlinx.coroutines
  • Include test dependencies: junit.bom, junit4, robolectric, kotlinx.coroutines.test
  • Apply common config and publish scripts

Add dependencies as needed:

  • Support base (for LifecycleAwareFeature): implementation project(':components:support-base')
  • Lifecycle: libs.androidx.lifecycle.runtime
  • Compose: Add platform(libs.androidx.compose.bom) and compose dependencies
  • State management: implementation project(':components:lib-state')
  • Browser state: implementation project(':components:browser-state')
  • Other components: implementation project(':components:{category}:{component-name}')
4. Create AndroidManifest.xml

File: src/main/AndroidManifest.xml

xml
<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<manifest />
5. (Optional) Create Main Kotlin Source

File: src/main/java/mozilla/components/{category}/{name}/{ComponentName}.kt

Reference the example at mobile/android/android-components/components/feature/example/src/main/java/mozilla/components/feature/example/ExampleFeature.kt.

Key elements for a feature component:

  • MPL 2.0 license header
  • Package: mozilla.components.{category}.{name}
  • Implement LifecycleAwareFeature for lifecycle-aware features
  • Use dependency injection for testability (e.g., inject CoroutineDispatcher)
  • Include coroutine scope for async operations
  • Override lifecycle methods (start(), stop())

For simpler library components, a basic class with the necessary methods is sufficient.

6. (Optional) Create Test File

File: src/test/java/mozilla/components/{category}/{name}/{ComponentName}Test.kt

Reference the example at mobile/android/android-components/components/feature/example/src/test/java/mozilla/components/feature/example/ExampleFeatureTest.kt.

Key elements:

  • MPL 2.0 license header
  • Use StandardTestDispatcher from kotlinx.coroutines.test for testing coroutines
  • Inject the test dispatcher into the component being tested
  • Use runTest(testDispatcher) to run tests with coroutine support
  • Use testDispatcher.scheduler.advanceUntilIdle() to advance virtual time
  • Track actual callback invocations instead of using mocks
  • Write descriptive test names using backticks (e.g., `start triggers onUpdate callback`)
  • Use JUnit assertions to verify behavior
7. Create Robolectric Configuration

File: src/test/resources/robolectric.properties

properties
sdk=35

This configures Robolectric to use Android SDK 35 for unit tests.

Show full SKILL.md (256 more words)Show less
8. Create README.md

File: README.md

Reference the example at mobile/android/android-components/components/feature/example/README.md.

Key elements:

  • Title with breadcrumb navigation: # [android-components](../../../README.md) > {Category} > {Name}
  • Brief description of the component
  • Usage section with dependency setup
  • Code examples showing how to use the component
  • MPL 2.0 license footer
9. Register in .buildconfig.yml

Add the component to .buildconfig.yml in alphabetical order within its category:

yaml
  components:{category}-{name}:
    description: {Brief description}
    path: components/{category}/{name}
    publish: true

Find the correct insertion point by searching for the category (e.g., components:feature- for feature modules) and inserting in alphabetical order.

Then update the upstream_dependencies for the new buildconfig with this mach command:

bash
./mach android update-buildconfig android-components

Also update taskcluster/config.yml to add the new module's display name to treeherder.group-names. Without this step, CI will fail with a buildconfig mismatch error.

Common Patterns

Package Naming
  • Pattern: mozilla.components.{category}.{name}
  • Example: mozilla.components.feature.example
Class Naming
  • Convert kebab-case to PascalCase
  • Example: my-component → MyComponent
Dependency Types
  • api - For interfaces and contracts (concept modules)
  • implementation - For internal dependencies
  • testImplementation - For testing dependencies
  • androidTestImplementation - For instrumented tests
Code Style
  • Use MPL 2.0 license headers on all files
  • Minimal comments (only for non-obvious code)
  • Use @VisibleForTesting for test-only visibility
  • Follow Kotlin coding conventions

Verification

After creating the component, verify it builds with the debug variant:

bash
./mach gradle :components:{category}-{name}:buildDebug

Run tests:

bash
./mach gradle :components:{category}-{name}:testDebug

Format and lint:

bash
./mach lint --fix mobile/android/android-components/components/{category}/{name}

Notes

  • Always use ./mach gradle instead of gradlew to ensure the build system is executed in its entirety.
  • Component names use kebab-case (hyphens).
  • Package names use lowercase without separators.
  • Class names use PascalCase
  • Set publish: false for example/sample components because we do not want them to be distributed through the maven mirrors.
  • The module will be automatically included in the build after registering in .buildconfig.yml.

© SAP, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/android-new-module of SAP/project-foxhound.

Open the folder on GitHubat commit 9dcb850

Used in 3 other repositories

We found 7 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in SAP/project-foxhound, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Android New Module next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Android New Module compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Android New Module this skillSAP/project-foxhound1802 repos~1.8kAutomated safety check: PassGPL-3.0
Android Developmentdpconde/claude-android-skill336—~1.7kAutomated safety check: PassMIT
Claude Android NinjaDrjacky/claude-android-ninja124—~5.2kAutomated safety check: PassApache-2.0
Expo Brownfield Integrationmweinbach/agent-coworker1562 repos~900Automated safety check: NotesCustom licence
Wear Compose M3jameshnsears/QuoteUnquote1001 repos~3.2kAutomated safety check: PassApache-2.0
Build Foremannekomangaorg/Neko2.8k—~807Automated safety check: PassApache-2.0

Similar skills

  • Android Development

    dpconde/claude-android-skill

    Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.

    336 GitHub stars~1.7k tokensUpdated 10 mo ago
    MobileAuto-check passed
  • Claude Android Ninja

    Drjacky/claude-android-ninja

    Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.

    124 GitHub stars~5.2k tokensUpdated 8 days ago
    MobileAuto-check passed
  • Expo Brownfield Integration

    mweinbach/agent-coworker

    Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.

    156 GitHub starsUsed in 2 repos~900 tokens
    MobileAuto-check: notes
  • Wear Compose M3

    jameshnsears/QuoteUnquote

    Expert guidance for working with Wear OS Compose Material3. An agent skill from jameshnsears/QuoteUnquote.

    100 GitHub starsUsed in 1 repo~3.2k tokens
    MobileAuto-check passed
  • Build Foreman

    nekomangaorg/Neko

    Optimizes Gradle build scripts, compilation times, and Android Studio sync performance.

    2.8k GitHub stars~807 tokensUpdated today
    MobileAuto-check passed
  • Android Audio E2E

    hyochan/react-native-nitro-sound

    Build and run device-backed Android end-to-end checks for react-native-nitro-sound permissions, recording, playback, listeners, pause/resume, seek, speed, audio focus, lifecycle behavior, and rapid…

    961 GitHub stars~814 tokensUpdated 8 days ago
    MobileAuto-check passed

More from SAP/project-foxhound

All 10 skills in this repo
  • Accessibility Frontend Review

    SAP/project-foxhound

    Official

    Performs an accessibility code review of a local diff or Phabricator revision in the style of the Firefox accessibility team.

    180 GitHub starsUsed in 2 repos~3.2k tokens
    Auto-check passed
  • JS Perf Investigation

    SAP/project-foxhound

    Official

    Structured performance opportunity investigation for SpiderMonkey (the Firefox JavaScript engine).

    180 GitHub starsUsed in 2 repos~4.1k tokens
    Auto-check passed
  • Bug Filing

    SAP/project-foxhound

    Official

    File a Bugzilla bug for Firefox/Gecko work, or draft a bug summary and description.

    180 GitHub starsUsed in 2 repos~828 tokens
    Auto-check passed
  • Specmap

    SAP/project-foxhound

    Official

    Map relationships between a web spec section, its Firefox implementation code, and Web Platform Tests.

    180 GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check passed
  • Stmo

    SAP/project-foxhound

    Official

    Manage Redash queries and dashboards on Mozilla's STMO (sql.telemetry.mozilla.org) using stmo-cli.

    180 GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Profiler Analysis

    SAP/project-foxhound

    Official

    Analyze Firefox performance profiles using the profiler-cli CLI tool.

    180 GitHub starsUsed in 2 repos~1.1k tokens
    Auto-check passed

Categories

Questions about Android New Module

What does Android New Module do?

Guide for creating new Android gradle modules in the android-components project. Android New Module is an agent skill from SAP/project-foxhound, published by the product's own GitHub organization. Guide for creating new Android gradle modules in the android-components project.

When should I use Android New Module?

Android New Module fits situations like: mobile work in your project.

How do I install Android New Module in Claude Code?

Run `npx skills add SAP/project-foxhound --skill android-new-module -a claude-code`. Or copy the skill folder (.agents/skills/android-new-module in SAP/project-foxhound) into .claude/skills/android-new-module in your project. Claude Code loads it when a task matches its description.

How do I install Android New Module in Codex?

Run `npx skills add SAP/project-foxhound --skill android-new-module -a codex`. Or copy the skill folder (.agents/skills/android-new-module in SAP/project-foxhound) into .agents/skills/android-new-module in your project. Codex loads it when a task matches its description.

Can I use Android New Module in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SAP/project-foxhound --skill android-new-module -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/android-new-module, .gemini/skills/android-new-module, .github/skills/android-new-module and .opencode/skills/android-new-module in your project.

What does Android New Module need to run?

SKILL.md names no scripts, command-line tools or credentials: Android New Module is instructions for the agent only.

Does Android New Module access the network?

SKILL.md names 1 domain. In commands or code: mozilla.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Android New Module safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Android New Module use?

Android New Module is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Android New Module use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Android New Module?

Skills that share tags, products or a category with Android New Module: Android Development (dpconde/claude-android-skill, 336 stars), Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars), Expo Brownfield Integration (mweinbach/agent-coworker, 156 stars) and Wear Compose M3 (jameshnsears/QuoteUnquote, 100 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Android New Module?

SAP (a GitHub organization, an official publisher) maintains it in SAP/project-foxhound, which has 180 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

Source: SAP/project-foxhound on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.