Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 33 additions & 33 deletions .agents/skills-sources.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
"name": "adaptive",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "jetpack-compose/adaptive",
"license": "Apache-2.0"
},
{
"name": "agp-9-upgrade",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "build-system/agp/agp-9-upgrade",
"license": "Apache-2.0"
},
Expand All @@ -37,7 +37,7 @@
"name": "android-cli",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "devtools/android-cli",
"license": "Apache-2.0"
},
Expand Down Expand Up @@ -69,7 +69,7 @@
"name": "android-for-cars-parked-apps",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "cars/android-for-cars-parked-apps",
"license": "Apache-2.0"
},
Expand All @@ -85,23 +85,23 @@
"name": "android-intent-security",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "security/android-intent-security",
"license": "Apache-2.0"
},
{
"name": "android-permissions-security",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "security/android-permissions-security",
"license": "Apache-2.0"
},
{
"name": "android-profiler",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "profilers/android-profiler",
"license": "Apache-2.0"
},
Expand All @@ -125,23 +125,23 @@
"name": "anr-audit-and-fix",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "performance/anr-audit-and-fix",
"license": "Apache-2.0"
},
{
"name": "appfunctions",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "device-ai/appfunctions",
"license": "Apache-2.0"
},
{
"name": "camerax",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "camera/camerax",
"license": "Apache-2.0"
},
Expand All @@ -165,31 +165,31 @@
"name": "display-glasses-with-jetpack-compose-glimmer",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "xr/display-glasses-with-jetpack-compose-glimmer",
"license": "Apache-2.0"
},
{
"name": "edge-to-edge",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "system/edge-to-edge",
"license": "Apache-2.0"
},
{
"name": "engage-sdk-integration",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "play/engage-sdk-integration",
"license": "Apache-2.0"
},
{
"name": "glance-canonical-layouts",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "system/glance-canonical-layouts",
"license": "Apache-2.0"
},
Expand All @@ -205,7 +205,7 @@
"name": "jetpack-compose-performance",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "jetpack-compose/jetpack-compose-performance",
"license": "Apache-2.0"
},
Expand All @@ -221,103 +221,103 @@
"name": "leanback-to-compose-tv-migration",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "tv/leanback-to-compose-tv-migration",
"license": "Apache-2.0"
},
{
"name": "litert-lm",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "device-ai/litert/litert-lm",
"license": "Apache-2.0"
},
{
"name": "litert-runtime",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "device-ai/litert/litert-runtime",
"license": "Apache-2.0"
},
{
"name": "media3-cast-integration",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "media/media3-cast-integration",
"license": "Apache-2.0"
},
{
"name": "migrate-xml-views-to-jetpack-compose",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "jetpack-compose/migration/migrate-xml-views-to-jetpack-compose",
"license": "Apache-2.0"
},
{
"name": "ml-kit-genai-prompt-api",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "device-ai/ml-kit-genai-prompt-api",
"license": "Apache-2.0"
},
{
"name": "navigation-3",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "navigation/navigation-3",
"license": "Apache-2.0"
},
{
"name": "navigation-event",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "navigation/navigation-event",
"license": "Apache-2.0"
},
{
"name": "play-billing-library-version-upgrade",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "play/play-billing-library-version-upgrade",
"license": "Apache-2.0"
},
{
"name": "play-policy-insights",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "play/play-policy-insights",
"license": "Apache-2.0"
},
{
"name": "projected-hardware",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "xr/projected-hardware",
"license": "Apache-2.0"
},
{
"name": "r8-analyzer",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "performance/r8-analyzer",
"license": "Apache-2.0"
},
{
"name": "restore-credentials",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "identity/restore-credentials",
"license": "Apache-2.0"
},
Expand All @@ -333,39 +333,39 @@
"name": "styles",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "jetpack-compose/theming/styles",
"license": "Apache-2.0"
},
{
"name": "testing-setup",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "testing/testing-setup",
"license": "Apache-2.0"
},
{
"name": "verified-email",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "identity/verified-email",
"license": "Apache-2.0"
},
{
"name": "wear-compose-m3",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "wear/wear-compose-m3",
"license": "Apache-2.0"
},
{
"name": "wear-widgets",
"source": "android",
"repository": "https://github.com/android/skills.git",
"revision": "95ea931a1ad8f9b2be132ae0cfb2aad964d71118",
"revision": "4ebabf2b0fd6c04b7150023c8b612f80592a6226",
"path": "wear/wear-widgets",
"license": "Apache-2.0"
}
Expand Down
41 changes: 32 additions & 9 deletions .agents/skills/adaptive/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,24 @@ description: Instructions to make or update an app's UI so that it adapts to dif
or resizing a window). It also covers multi-pane layouts using Navigation3 Scenes,
adaptive UI components (such as buttons) with varying target sizes, and adaptive
layouts (including navigation areas - nav rails and nav bars) using the Compose
Grid and FlexBox APIs.
Grid and FlexBox APIs. It also covers desktop experiences with keyboard shortcuts,
tooltips and custom cursors.
license: Complete terms in LICENSE.txt
metadata:
author: Google LLC
last-updated: '2026-10-16'
last-updated: '2026-10-22'
keywords:
- Jetpack Compose
- Adaptive UI
- Navigation
- Multi-pane
- Layouts
- Responsive Design
- android
- ui
- adaptive
- Grid
- FlexBox
- MediaQuery
- Android Development
- navigation
- foldables
- state
- resizability
- configuration-changes
---

## Prerequisites
Expand All @@ -45,6 +47,7 @@ task.
- Step 4: Make vertical lists adaptive by changing the number of columns
- Step 5: Hide app bars when scrolling
- Step 6: Preserve UI state across configuration changes
- Step 7: Add desktop experiences

## Step 1. Verify current UI

Expand Down Expand Up @@ -414,6 +417,26 @@ private fun rememberExoPlayer(@RawRes videoResId: Int, fromUri: Unit.(Uri) -> Me

<br />

## Step 7: Add desktop experiences

### Step 7.1: Identify the required desktop feature

Look at the user's prompt, requirements, or uploaded files to determine which
desktop feature needs to be implemented.

### Step 7.2: Run feature-specific processing

Based on the feature identified, you must read the corresponding reference file
and follow its instructions:

- **Keyboard Shortcuts** -\> read [`references/keyboard_shortcuts.md`](references/keyboard_shortcuts.md)
- **Tooltips** -\> read [`references/tooltips.md`](references/tooltips.md)
- **Custom Cursors** -\> read [`references/custom_cursors.md`](references/custom_cursors.md)

Each reference starts by searching the whole app for the targets of that
feature. Write that list down first, implement all of it (not only the first
screen you open), and re-check the list before you finish.

## Final step: Build and test

Build the app and run the local tests. If the project has screenshot tests, run
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This page describes how to implement basic `FlexBox` layouts.
`lib.versions.toml`.

[versions]
compose = "1.13.0-beta01"
compose = "1.13.0-beta02"

[libraries]
androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout", version.ref = "compose" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This page describes how to implement basic [`Grid`](https://developer.android.co
`lib.versions.toml`.

[versions]
compose = "1.13.0-beta01"
compose = "1.13.0-beta02"

[libraries]
androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout", version.ref = "compose" }
Expand Down
Loading