Material 3
hamen/material-3-skill
Implement Google's Material Design 3 (Material You) UI system.
A skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…
$ npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install makifbaysal/tasktrooper android-compose-patterns --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .claude/skills && cp -r skills-src/catalog/agents/mobile-developer/skills/android-compose-patterns .claude/skills/android-compose-patterns && rm -rf skills-srcUse ~/.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/
Install the "android-compose-patterns" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patterns into .claude/skills/android-compose-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-compose-patterns", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patternsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install makifbaysal/tasktrooper android-compose-patterns --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .agents/skills && cp -r skills-src/catalog/agents/mobile-developer/skills/android-compose-patterns .agents/skills/android-compose-patterns && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "android-compose-patterns" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patterns into .agents/skills/android-compose-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-compose-patterns", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install makifbaysal/tasktrooper android-compose-patterns --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/catalog/agents/mobile-developer/skills/android-compose-patterns .cursor/skills/android-compose-patterns && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "android-compose-patterns" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patterns into .cursor/skills/android-compose-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-compose-patterns", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/makifbaysal/tasktrooper.git --path catalog/agents/mobile-developer/skills/android-compose-patterns--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install makifbaysal/tasktrooper android-compose-patterns --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/catalog/agents/mobile-developer/skills/android-compose-patterns .gemini/skills/android-compose-patterns && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "android-compose-patterns" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patterns into .gemini/skills/android-compose-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-compose-patterns", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install makifbaysal/tasktrooper android-compose-patternsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .github/skills && cp -r skills-src/catalog/agents/mobile-developer/skills/android-compose-patterns .github/skills/android-compose-patterns && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "android-compose-patterns" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patterns into .github/skills/android-compose-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-compose-patterns", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install makifbaysal/tasktrooper android-compose-patterns --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makifbaysal/tasktrooper.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/catalog/agents/mobile-developer/skills/android-compose-patterns .opencode/skills/android-compose-patterns && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "android-compose-patterns" agent skill from https://github.com/makifbaysal/tasktrooper/tree/main/catalog/agents/mobile-developer/skills/android-compose-patterns into .opencode/skills/android-compose-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-compose-patterns", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
android-compose-patternsA skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…
Android Compose Patterns is an agent skill from makifbaysal/tasktrooper. Use when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic components, and Material theming over hardcoded values
Its SKILL.md is about 1.9k 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, covering Android development, Responsive design and Theming and dark mode. It works with Android and Jetpack Compose. The repository describes itself as: Local-first agent platform: board + role agents + agent CLI runs (Claude Code, Cursor, Antigravity, OpenCode) or local and API models (Ollama, LM Studio), all on your own Mac. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit f3d59b5. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are kotlin).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Android Compose Patterns loads about 1.9k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 730 words of instructions outside code blocks.
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.
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.
The full file from makifbaysal/tasktrooper at commit f3d59b5, republished under its Apache-2.0 licence (© makifbaysal). 730 words, ~1,897 tokens.
.claude/skills/android-compose-patterns/SKILL.md (or your agent's skills folder).Native Android (Jetpack Compose) is chosen when a task needs deep Android integration or the app is already native (see native-vs-flutter-decision). Same discipline as Flutter/SwiftUI: small stateless composables, state hoisted out, reusable atomic components.
Core principle: Composables are stateless functions of state. State is hoisted to a ViewModel; composables emit events upward.
onXxx) — it does not own app state. The screen-level composable connects a ViewModel to the stateless UI.ViewModel owns state and logic, exposed as StateFlow/UiState; the composable collects it with collectAsStateWithLifecycle(). Networking/business rules live in the ViewModel + repository, never in the composable.Loading | Data | Empty | Error — when over it renders every branch. No happy-path-only screens.MaterialTheme.colorScheme / typography / a spacing tokens object (MaterialTheme.spacing, see mobile-design-system-foundation) — never scattered Color(0xFF...) and magic dp. Support dark theme + dynamic color.remember/derivedStateOf to avoid recomputation; hoist remembered state only when it's genuinely local (scroll, text field).@Preview reusable composables in their key states, and across the matrix (see below).enableEdgeToEdge() before setContent in the activity — the opt-out is gone at targetSdk 35+.Scaffold: use its innerPadding and Modifier.consumeWindowInsets(innerPadding) on the content so a nested scrollable doesn't double-apply it.Modifier.imePadding() once, at the container that should move with the keyboard — applying it a second time further down the tree produces extra empty space.android:windowSoftInputMode="adjustResize" in the manifest for screens with text input.NavigationSuiteScaffold does not automatically propagate its padding to the content slot — apply insets explicitly inside it, don't assume it's handled.onBackPressed() / OnBackPressedCallback without isEnabled toggling is not called the same way once predictive back is the default — use BackHandler (simple) or PredictiveBackHandler (custom transition) in Compose, or Navigation 3's built-in handling.currentWindowAdaptiveInfo().windowSizeClass to branch layout by available width/height — never by Configuration.orientation or a hardcoded device check.NavigationSuiteScaffold switches a bottom nav bar to a nav rail automatically at the window-size-class breakpoint — prefer it over hand-rolling the switch.GridCells.Adaptive(minWidth) for grids that should reflow by available width.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY) and Android 17/API 37 (no opt-out) ignore screenOrientation/resizeableActivity restrictions on screens ≥600dp — design every screen to work in both orientations and at tablet width; don't rely on an orientation lock to avoid building the wider layout.@PreviewScreenSizes, @PreviewFontScale, @PreviewLightDark, or a custom multi-preview with Devices.PHONE/Devices.TABLET — see mobile-visual-self-review for the full size/text-scale/dark matrix.DeviceConfigurationOverride(ForcedSize(...) then FontScale(...) then DarkMode(...)) for instrumented matrix tests.rule.enableAccessibilityChecks() on an API 34+ device/emulator before UI-mutating test actions (inconclusive on Robolectric — say so if that's all you ran); see mobile-accessibility.contentDescription on every Image/Icon that carries meaning; null explicitly for a purely decorative one.Modifier.semantics(mergeDescendants = true) on a composite row so a screen reader announces it once.Modifier.size/minimumInteractiveComponentSize().// ViewModel owns state + logic (unit-testable, no Compose)
class TaskListViewModel(private val repo: TaskRepository) : ViewModel() {
private val _state = MutableStateFlow<UiState<List<Task>>>(UiState.Loading)
val state: StateFlow<UiState<List<Task>>> = _state
fun load() = viewModelScope.launch {
_state.value = UiState.Loading
_state.value = try {
val items = repo.list()
if (items.isEmpty()) UiState.Empty else UiState.Data(items)
} catch (e: CancellationException) {
throw e // never swallow cancellation
} catch (e: Exception) {
UiState.Error(e)
}
}
}
// stateless composable renders state, emits events
@Composable
fun TaskListScreen(state: UiState<List<Task>>, onRetry: () -> Unit) = when (state) {
is UiState.Loading -> AppSpinner()
is UiState.Error -> AppErrorView(message = state.cause.message, onRetry = onRetry)
is UiState.Data -> TaskList(tasks = state.value)
is UiState.Empty -> EmptyView()
}The fix from the previous version: runCatching { } wrapped around a suspend call inside viewModelScope.launch catches CancellationException along with real errors, which breaks structured concurrency (a cancelled screen keeps "loading" instead of stopping) — use try/catch and rethrow CancellationException explicitly. The Empty branch is now actually emitted when the list comes back empty, not just declared and never reached.
ViewModel with a fake/mockk repository and a test dispatcher — no Compose.createComposeRule) assert visible behavior and clicks. Test-first.MaterialTheme + tokens.collectAsStateWithLifecycle (leaks/waste).Empty declared but never emitted.runCatching around a suspend call, swallowing CancellationException.@Composable that imports a repository or Retrofit service.Color(0xFF...)/magic dp outside the theme.when.enableEdgeToEdge() missing from a new or recently targetSdk-bumped activity.© makifbaysal, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in catalog/agents/mobile-developer/skills/android-compose-patterns of makifbaysal/tasktrooper.
Open the folder on GitHubat commit f3d59b5
Android Compose Patterns 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Android Compose Patterns this skillmakifbaysal/tasktrooper | 109 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Material 3hamen/material-3-skill | 1.5k | 2 repos | ~7.8k | Automated safety check: Pass | MIT | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 179 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Android Material Guidelineszoonk/zoonk | 157 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Migrate XML Views To Jetpack Composearindamxd/camerax-android | 132 | 5 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Hz Metavrx Layout SDKmeta-quest/agentic-tools | 213 | — | ~855 | Automated safety check: Pass | Apache-2.0 |
hamen/material-3-skill
Implement Google's Material Design 3 (Material You) UI system.
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
zoonk/zoonk
A skill your agent uses when designing, reviewing, or implementing Android UI or features for phones, tablets, foldables, ChromeOS, desktop windowing, Wear OS, Android TV, Android for Cars, Android…
arindamxd/camerax-android
Provides a structured workflow for migrating an Android XML View to Jetpack Compose.
meta-quest/agentic-tools
Build multi-window Meta Horizon OS experiences with the MetaVrx Layout SDK in Jetpack Compose or React Native.
ModinMobileSTS/SlayTheAmethystModded
Design system imported from the SlayTheAmethyst Android Jetpack Compose launcher: Material 3 surfaces, user-selected seed colors, light and dark themes and typography rules.
makifbaysal/tasktrooper
A skill your agent uses when a task adds or changes an HTTP endpoint, its request/response shape, status codes, auth or error format - the request matrix, curl templates and what counts as a…
makifbaysal/tasktrooper
A skill your agent uses when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
makifbaysal/tasktrooper
A skill your agent uses when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
makifbaysal/tasktrooper
A skill your agent uses when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation
makifbaysal/tasktrooper
A skill your agent uses when you write or revise the analiz deliverable - the ONE self-contained HTML report (spec and plan as sections) a human reviews passage by passage
makifbaysal/tasktrooper
A skill your agent uses when you finish an analiz report - the human must approve the analysis before any implementation task is created, via the analizreview column
Works with
Categories
A skill your agent uses when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic…. Android Compose Patterns is an agent skill from makifbaysal/tasktrooper.
Android Compose Patterns fits situations like: building native Android with Jetpack Compose - stateless composables; viewModel-owned state; predictive back; adaptive layout.
Run `npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a claude-code`. Or copy the skill folder (catalog/agents/mobile-developer/skills/android-compose-patterns in makifbaysal/tasktrooper) into .claude/skills/android-compose-patterns in your project. Claude Code loads it when a task matches its description.
Run `npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -a codex`. Or copy the skill folder (catalog/agents/mobile-developer/skills/android-compose-patterns in makifbaysal/tasktrooper) into .agents/skills/android-compose-patterns in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add makifbaysal/tasktrooper --skill android-compose-patterns -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-compose-patterns, .gemini/skills/android-compose-patterns, .github/skills/android-compose-patterns and .opencode/skills/android-compose-patterns in your project.
SKILL.md names no scripts, command-line tools or credentials: Android Compose Patterns is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Android Compose Patterns is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Android Compose Patterns: Material 3 (hamen/material-3-skill, 1.5k stars), Compose Multiplatform Patterns (monta-app/ocpp-emulator, 179 stars), Android Material Guidelines (zoonk/zoonk, 157 stars) and Migrate XML Views To Jetpack Compose (arindamxd/camerax-android, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
makifbaysal (a GitHub user) maintains it in makifbaysal/tasktrooper, which has 109 GitHub stars. The repository holds 99 skills in this directory. The repository was last updated on October 6, 2026.
Source: makifbaysal/tasktrooper on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.