reis-mobile 0.3.6 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +39 -0
  4. package/README.md +135 -297
  5. package/THIRD_PARTY_NOTICES.md +221 -4
  6. package/agents/android-architect.md +89 -0
  7. package/agents/android-performance-engineer.md +92 -0
  8. package/agents/android-test-engineer.md +97 -0
  9. package/agents/flutter-test-engineer.md +2 -0
  10. package/agents/ios-architect.md +93 -0
  11. package/agents/ios-performance-engineer.md +92 -0
  12. package/agents/ios-test-engineer.md +95 -0
  13. package/agents/lead-mobile.md +10 -1
  14. package/agents/mobile-code-reviewer.md +2 -0
  15. package/agents/mobile-staff-engineer.md +1 -1
  16. package/agents/rn-architect.md +94 -0
  17. package/agents/rn-performance-engineer.md +92 -0
  18. package/agents/rn-test-engineer.md +98 -0
  19. package/bin/reis-mobile.mjs +59 -17
  20. package/commands/debate.md +10 -1
  21. package/commands/debug.md +60 -0
  22. package/commands/reis-mobile.md +7 -2
  23. package/core/config/project.mjs +59 -0
  24. package/core/registry/frontmatter.mjs +15 -4
  25. package/core/registry/registry.mjs +28 -1
  26. package/core/router/intents.mjs +2 -0
  27. package/core/router/router.mjs +10 -5
  28. package/package.json +24 -3
  29. package/skills/mobile-android/SKILL.md +29 -0
  30. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/GUIDE.md +87 -0
  31. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/android/build/migrate-to-built-in-kotlin.md +416 -0
  32. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/android/build/releases/agp-9-0-0-release-notes.md +554 -0
  33. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/buildconfig.md +54 -0
  34. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/ksp-kapt.md +39 -0
  35. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/paparazzi-gradle-9.md +30 -0
  36. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/recipes.md +62 -0
  37. package/skills/mobile-android/references/build-and-performance/android-cli/GUIDE.md +450 -0
  38. package/skills/mobile-android/references/build-and-performance/android-cli/references/interact.md +113 -0
  39. package/skills/mobile-android/references/build-and-performance/android-cli/references/journeys.md +120 -0
  40. package/skills/mobile-android/references/build-and-performance/android-profiler/GUIDE.md +34 -0
  41. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/analysis_orchestrator.md +32 -0
  42. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-sql/perfetto_sql.md +28 -0
  43. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/perfetto_trace_analysis.md +121 -0
  44. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/guiding_principles.md +51 -0
  45. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/domain_hints_template.md +7 -0
  46. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_cpu.md +56 -0
  47. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_graphics.md +51 -0
  48. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_io.md +46 -0
  49. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_ipc.md +41 -0
  50. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_memory.md +55 -0
  51. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_power.md +33 -0
  52. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/per_candidate_analysis.md +172 -0
  53. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/triage.md +94 -0
  54. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/recording_orchestrator.md +36 -0
  55. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/perfetto_trace_recording.md +148 -0
  56. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/app_jank.pftxt +43 -0
  57. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/cpu_profile.pftxt +35 -0
  58. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/java_heap_dump.pftxt +21 -0
  59. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/long_background.pftxt +37 -0
  60. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/memory_counters.pftxt +45 -0
  61. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/native_heap.pftxt +21 -0
  62. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/sched_cpu.pftxt +33 -0
  63. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/trace_config_reference.md +102 -0
  64. package/skills/mobile-android/references/build-and-performance/android-profiler/references/env_setup.md +15 -0
  65. package/skills/mobile-android/references/build-and-performance/android-profiler/references/perfetto/setup.md +29 -0
  66. package/skills/mobile-android/references/build-and-performance/android-profiler/references/perfetto/sql.md +327 -0
  67. package/skills/mobile-android/references/build-and-performance/r8-analyzer/GUIDE.md +53 -0
  68. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/CONFIGURATION-ANALYZER.md +287 -0
  69. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/CONFIGURATION.md +44 -0
  70. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/KEEP-RULES-IMPACT-HIERARCHY.md +83 -0
  71. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REDUNDANT-RULES.md +222 -0
  72. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REFLECTION-GUIDE.md +139 -0
  73. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REPORT_FORMAT.md +51 -0
  74. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/android/topic/performance/app-optimization/enable-app-optimization.md +252 -0
  75. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/android/training/testing/other-components/ui-automator.md +312 -0
  76. package/skills/mobile-android/references/build-and-performance.md +12 -0
  77. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/GUIDE.md +317 -0
  78. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/design/ui/ai-glasses/guides/interaction/inputs.md +67 -0
  79. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/access-hardware-projected-context.md +388 -0
  80. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/buttons.md +139 -0
  81. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/cards.md +148 -0
  82. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/focus.md +107 -0
  83. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/icons.md +90 -0
  84. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/text.md +69 -0
  85. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/title-chips.md +82 -0
  86. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/request-hardware-permissions.md +213 -0
  87. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/button-samples-source.md +176 -0
  88. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/button-source.md +203 -0
  89. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/card-samples-source.md +296 -0
  90. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/card-source.md +515 -0
  91. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/deptheffect-source.md +224 -0
  92. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/deptheffectlevels-source.md +105 -0
  93. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/glimmersansflextypography-source.md +270 -0
  94. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/glimmertheme-source.md +182 -0
  95. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/icon-source.md +388 -0
  96. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/iconbutton-source.md +126 -0
  97. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/iconsizes-source.md +78 -0
  98. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/list-source.md +27 -0
  99. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/listitem-source.md +272 -0
  100. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/liststate-source.md +427 -0
  101. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/material-hct-source.md +217 -0
  102. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/projectedcontext-source.md +265 -0
  103. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stack-source.md +368 -0
  104. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stackitemscope-source.md +440 -0
  105. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stackstate-source.md +325 -0
  106. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/surface-source.md +1211 -0
  107. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/titlechip-samples-source.md +101 -0
  108. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/titlechip-source.md +131 -0
  109. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/GUIDE.md +707 -0
  110. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/get-started/navigation.md +372 -0
  111. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/playback/compose/browse.md +243 -0
  112. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/playback/compose/index.md +153 -0
  113. package/skills/mobile-android/references/devices/wear-compose-m3/GUIDE.md +341 -0
  114. package/skills/mobile-android/references/devices/wear-compose-m3/references/android/training/wearables/compose/migrate-to-material3.md +677 -0
  115. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/AmbientModeSample.kt.md +123 -0
  116. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/AmbientModeSample.kt.md.txt +123 -0
  117. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/CurvedWorldSample.kt.md +430 -0
  118. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/CurvedWorldSample.kt.md.txt +430 -0
  119. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ExpandableSample.kt.md +99 -0
  120. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ExpandableSample.kt.md.txt +99 -0
  121. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/HierarchicalFocusSample.kt.md +141 -0
  122. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/HierarchicalFocusSample.kt.md.txt +141 -0
  123. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/PagerSamples.kt.md +56 -0
  124. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/PagerSamples.kt.md.txt +56 -0
  125. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/RotarySamples.kt.md +153 -0
  126. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/RotarySamples.kt.md.txt +153 -0
  127. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ScalingLazyColumnSample.kt.md +131 -0
  128. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ScalingLazyColumnSample.kt.md.txt +131 -0
  129. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToDismissBoxSample.kt.md +169 -0
  130. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToDismissBoxSample.kt.md.txt +169 -0
  131. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToRevealSample.kt.md +282 -0
  132. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToRevealSample.kt.md.txt +282 -0
  133. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/TransformingLazyColumnSample.kt.md +335 -0
  134. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/TransformingLazyColumnSample.kt.md.txt +335 -0
  135. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AlertDialogSample.kt.md +377 -0
  136. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AlertDialogSample.kt.md.txt +377 -0
  137. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AnimatedTextSample.kt.md +165 -0
  138. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AnimatedTextSample.kt.md.txt +165 -0
  139. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonGroupSample.kt.md +91 -0
  140. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonGroupSample.kt.md.txt +91 -0
  141. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonSample.kt.md +496 -0
  142. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonSample.kt.md.txt +496 -0
  143. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CardSample.kt.md +470 -0
  144. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CardSample.kt.md.txt +470 -0
  145. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CheckboxButtonSample.kt.md +67 -0
  146. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CheckboxButtonSample.kt.md.txt +67 -0
  147. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ConfirmationDialogSample.kt.md +162 -0
  148. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ConfirmationDialogSample.kt.md.txt +162 -0
  149. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CurvedTextSamples.kt.md +78 -0
  150. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CurvedTextSamples.kt.md.txt +78 -0
  151. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DatePickerSample.kt.md +131 -0
  152. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DatePickerSample.kt.md.txt +131 -0
  153. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DynamicColorSchemeSample.kt.md +74 -0
  154. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DynamicColorSchemeSample.kt.md.txt +74 -0
  155. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/EdgeButtonSample.kt.md +63 -0
  156. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/EdgeButtonSample.kt.md.txt +63 -0
  157. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/FadingExpandingLabelSample.kt.md +60 -0
  158. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/FadingExpandingLabelSample.kt.md.txt +60 -0
  159. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconButtonSample.kt.md +125 -0
  160. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconButtonSample.kt.md.txt +125 -0
  161. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconToggleButtonSample.kt.md +116 -0
  162. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconToggleButtonSample.kt.md.txt +116 -0
  163. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LevelIndicatorSample.kt.md +68 -0
  164. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LevelIndicatorSample.kt.md.txt +68 -0
  165. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LinearProgressIndicatorSample.kt.md +50 -0
  166. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LinearProgressIndicatorSample.kt.md.txt +50 -0
  167. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ListHeaderSample.kt.md +177 -0
  168. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ListHeaderSample.kt.md.txt +177 -0
  169. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OneHandedGestureSamples.kt.md +651 -0
  170. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OneHandedGestureSamples.kt.md.txt +651 -0
  171. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OpenOnPhoneDialogSample.kt.md +57 -0
  172. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OpenOnPhoneDialogSample.kt.md.txt +57 -0
  173. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PageIndicatorSample.kt.md +110 -0
  174. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PageIndicatorSample.kt.md.txt +110 -0
  175. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PagerScaffoldSample.kt.md +204 -0
  176. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PagerScaffoldSample.kt.md.txt +204 -0
  177. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerGroupSample.kt.md +139 -0
  178. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerGroupSample.kt.md.txt +139 -0
  179. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerSample.kt.md +111 -0
  180. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerSample.kt.md.txt +111 -0
  181. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PlaceholderSample.kt.md +184 -0
  182. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PlaceholderSample.kt.md.txt +184 -0
  183. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ProgressIndicatorSample.kt.md +263 -0
  184. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ProgressIndicatorSample.kt.md.txt +263 -0
  185. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/RadioButtonSample.kt.md +105 -0
  186. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/RadioButtonSample.kt.md.txt +105 -0
  187. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScaffoldSample.kt.md +146 -0
  188. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScaffoldSample.kt.md.txt +146 -0
  189. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollAwaySample.kt.md +97 -0
  190. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollAwaySample.kt.md.txt +97 -0
  191. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollIndicatorSample.kt.md +66 -0
  192. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollIndicatorSample.kt.md.txt +66 -0
  193. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SliderSample.kt.md +86 -0
  194. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SliderSample.kt.md.txt +86 -0
  195. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/StepperSample.kt.md +148 -0
  196. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/StepperSample.kt.md.txt +148 -0
  197. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SurfaceTransformationSample.kt.md +166 -0
  198. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SurfaceTransformationSample.kt.md.txt +166 -0
  199. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToDismissBoxSample.kt.md +172 -0
  200. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToDismissBoxSample.kt.md.txt +172 -0
  201. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToRevealSample.kt.md +367 -0
  202. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToRevealSample.kt.md.txt +367 -0
  203. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwitchButtonSample.kt.md +66 -0
  204. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwitchButtonSample.kt.md.txt +66 -0
  205. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextButtonSample.kt.md +115 -0
  206. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextButtonSample.kt.md.txt +115 -0
  207. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextToggleButtonSample.kt.md +71 -0
  208. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextToggleButtonSample.kt.md.txt +71 -0
  209. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimePickerSample.kt.md +151 -0
  210. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimePickerSample.kt.md.txt +151 -0
  211. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimeTextSample.kt.md +65 -0
  212. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimeTextSample.kt.md.txt +65 -0
  213. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformationSpecSample.kt.md +246 -0
  214. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformationSpecSample.kt.md.txt +246 -0
  215. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnNotificationsSample.kt.md +89 -0
  216. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnNotificationsSample.kt.md.txt +89 -0
  217. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnSample.kt.md +309 -0
  218. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnSample.kt.md.txt +309 -0
  219. package/skills/mobile-android/references/devices/wear-compose-m3/references/navigation3/SwipeDismissableSceneStrategySample.kt.md +205 -0
  220. package/skills/mobile-android/references/devices/wear-compose-m3/references/navigation3/SwipeDismissableSceneStrategySample.kt.md.txt +205 -0
  221. package/skills/mobile-android/references/devices.md +11 -0
  222. package/skills/mobile-android/references/identity/restore-credentials/GUIDE.md +337 -0
  223. package/skills/mobile-android/references/identity/restore-credentials/references/android/guide/topics/manifest/application-element.md +832 -0
  224. package/skills/mobile-android/references/identity/restore-credentials/references/android/identity/passkeys/create-passkeys.md +327 -0
  225. package/skills/mobile-android/references/identity/restore-credentials/references/android/identity/passkeys/sign-in-with-passkeys.md +219 -0
  226. package/skills/mobile-android/references/identity/verified-email/GUIDE.md +405 -0
  227. package/skills/mobile-android/references/identity/verified-email/references/android/identity/credential-manager/index.md +67 -0
  228. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/credential-verifier.md +166 -0
  229. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/email-verification-implementation.md +313 -0
  230. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/email-verification.md +158 -0
  231. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/index.md +112 -0
  232. package/skills/mobile-android/references/identity/verified-email/references/android/identity/passkeys/create-passkeys.md +327 -0
  233. package/skills/mobile-android/references/identity/verified-email/references/android/identity/sign-in/credential-manager-webview.md +84 -0
  234. package/skills/mobile-android/references/identity.md +10 -0
  235. package/skills/mobile-android/references/media/camerax/GUIDE.md +106 -0
  236. package/skills/mobile-android/references/media/camerax/references/camera1-to-camerax.md +198 -0
  237. package/skills/mobile-android/references/media/camerax/references/camera2-to-camerax.md +193 -0
  238. package/skills/mobile-android/references/media/camerax/references/expert-blueprints.md +58 -0
  239. package/skills/mobile-android/references/media/camerax/references/foldables.md +83 -0
  240. package/skills/mobile-android/references/media/camerax/references/immutability.md +60 -0
  241. package/skills/mobile-android/references/media/camerax/references/low-light.md +124 -0
  242. package/skills/mobile-android/references/media/camerax/references/mlkit-spatial.md +75 -0
  243. package/skills/mobile-android/references/media/camerax/references/modern-apis.md +42 -0
  244. package/skills/mobile-android/references/media/camerax/references/testing.md +69 -0
  245. package/skills/mobile-android/references/media/camerax/references/thermals.md +85 -0
  246. package/skills/mobile-android/references/media/camerax/references/wear-os.md +76 -0
  247. package/skills/mobile-android/references/media/camerax/references/xr.md +54 -0
  248. package/skills/mobile-android/references/media/media3-cast-integration/GUIDE.md +213 -0
  249. package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/create-castplayer.md +390 -0
  250. package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/customize-castoptions.md +93 -0
  251. package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/index.md +21 -0
  252. package/skills/mobile-android/references/media.md +10 -0
  253. package/skills/mobile-android/references/on-device-ai/appfunctions/GUIDE.md +51 -0
  254. package/skills/mobile-android/references/on-device-ai/appfunctions/references/adb-interaction-testing.md +95 -0
  255. package/skills/mobile-android/references/on-device-ai/appfunctions/references/context.md +26 -0
  256. package/skills/mobile-android/references/on-device-ai/appfunctions/references/feature-discovery-analysis.md +71 -0
  257. package/skills/mobile-android/references/on-device-ai/appfunctions/references/implementation-configuration.md +282 -0
  258. package/skills/mobile-android/references/on-device-ai/appfunctions/references/kdoc-refinement-optimization.md +75 -0
  259. package/skills/mobile-android/references/on-device-ai/appfunctions/references/migrate-to-service-entry-point.md +226 -0
  260. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/GUIDE.md +105 -0
  261. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/get-started.md +272 -0
  262. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prefix-caching.md +146 -0
  263. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prompt-design.md +55 -0
  264. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prompt-optimization.md +74 -0
  265. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/structured-output.md +219 -0
  266. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/system-instructions.md +71 -0
  267. package/skills/mobile-android/references/on-device-ai.md +10 -0
  268. package/skills/mobile-android/references/play/engage-sdk-integration/GUIDE.md +112 -0
  269. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/faq.md +439 -0
  270. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/food.md +1149 -0
  271. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/healthandfitness.md +1055 -0
  272. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/listen.md +1050 -0
  273. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/otherverticals.md +1301 -0
  274. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/read.md +910 -0
  275. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/shopping.md +1224 -0
  276. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/social.md +719 -0
  277. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/travel.md +1413 -0
  278. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/continue-watching/index.md +19 -0
  279. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/entitlements.md +353 -0
  280. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/getting-started.md +202 -0
  281. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/recommendations.md +471 -0
  282. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/watch.md +1081 -0
  283. package/skills/mobile-android/references/play/engage-sdk-integration/references/clusters.md +154 -0
  284. package/skills/mobile-android/references/play/engage-sdk-integration/references/common.md +519 -0
  285. package/skills/mobile-android/references/play/engage-sdk-integration/references/patterns.md +527 -0
  286. package/skills/mobile-android/references/play/engage-sdk-integration/references/requests.md +260 -0
  287. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/food.md +509 -0
  288. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/listen.md +842 -0
  289. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/other.md +220 -0
  290. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/read.md +412 -0
  291. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/shopping.md +357 -0
  292. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/social.md +228 -0
  293. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/travel.md +923 -0
  294. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/tv.md +1226 -0
  295. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/watch.md +1137 -0
  296. package/skills/mobile-android/references/play/engage-sdk-integration/references/troubleshooting.md +39 -0
  297. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/GUIDE.md +75 -0
  298. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/android/google/play/billing/release-notes.md +1240 -0
  299. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/migration-logic.md +78 -0
  300. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/version-checklist.md +54 -0
  301. package/skills/mobile-android/references/play/play-policy-insights/GUIDE.md +130 -0
  302. package/skills/mobile-android/references/play/play-policy-insights/resources/common_mandates.md +100 -0
  303. package/skills/mobile-android/references/play/play-policy-insights/resources/compliance_report_template.md +59 -0
  304. package/skills/mobile-android/references/play/play-policy-insights/resources/critic.md +86 -0
  305. package/skills/mobile-android/references/play/play-policy-insights/resources/goal_data_safety.md +212 -0
  306. package/skills/mobile-android/references/play/play-policy-insights/resources/goal_permissions_and_apis.md +459 -0
  307. package/skills/mobile-android/references/play/play-policy-insights/resources/goal_user_account.md +106 -0
  308. package/skills/mobile-android/references/play/play-policy-insights/resources/policies.json +321 -0
  309. package/skills/mobile-android/references/play/play-policy-insights/resources/scanner_config.json +843 -0
  310. package/skills/mobile-android/references/play/play-policy-insights/scripts/generate_report.py +860 -0
  311. package/skills/mobile-android/references/play/play-policy-insights/scripts/orchestrator.py +1313 -0
  312. package/skills/mobile-android/references/play/play-policy-insights/scripts/play_store_scraper.py +410 -0
  313. package/skills/mobile-android/references/play/play-policy-insights/scripts/scanner.py +261 -0
  314. package/skills/mobile-android/references/play/play-policy-insights/scripts/template_engine.py +243 -0
  315. package/skills/mobile-android/references/play.md +11 -0
  316. package/skills/mobile-android/references/ui/adaptive/GUIDE.md +280 -0
  317. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +112 -0
  318. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +69 -0
  319. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +81 -0
  320. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +170 -0
  321. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +415 -0
  322. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +51 -0
  323. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +73 -0
  324. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +170 -0
  325. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +333 -0
  326. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/tooling/debug.md +114 -0
  327. package/skills/mobile-android/references/ui/adaptive/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  328. package/skills/mobile-android/references/ui/edge-to-edge/GUIDE.md +409 -0
  329. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/GUIDE.md +104 -0
  330. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/analysis-of-the-project-and-layout.md +42 -0
  331. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/designsystems/migrate-xml-theme-to-compose.md +171 -0
  332. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/migrate/interoperability-apis/compose-in-views.md +299 -0
  333. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/migrate/interoperability-apis/views-in-compose.md +286 -0
  334. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/setup-compose-dependencies-and-compiler.md +197 -0
  335. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/identify-optimal-xml-candidate.md +31 -0
  336. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/xml-layout-migration.md +86 -0
  337. package/skills/mobile-android/references/ui/navigation-3/GUIDE.md +86 -0
  338. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/index.md +51 -0
  339. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/migration-guide.md +670 -0
  340. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/animations.md +147 -0
  341. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basic.md +89 -0
  342. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +85 -0
  343. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +90 -0
  344. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +195 -0
  345. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/common-ui.md +200 -0
  346. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional-transitions.md +182 -0
  347. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional.md +230 -0
  348. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-custommatcher.md +176 -0
  349. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-staticuri.md +140 -0
  350. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-syntheticbackstack.md +184 -0
  351. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/dialog.md +107 -0
  352. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/lifecycle-owner.md +185 -0
  353. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  354. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +145 -0
  355. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +283 -0
  356. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +287 -0
  357. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +468 -0
  358. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +371 -0
  359. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-event.md +273 -0
  360. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-state.md +266 -0
  361. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +435 -0
  362. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +244 -0
  363. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/type-safe-destinations.md +129 -0
  364. package/skills/mobile-android/references/ui/navigation-event/GUIDE.md +288 -0
  365. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/dispatcher.md +134 -0
  366. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/handle-back.md +217 -0
  367. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/index.md +83 -0
  368. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/setup.md +32 -0
  369. package/skills/mobile-android/references/ui/styles/GUIDE.md +209 -0
  370. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/designsystems/custom.md +459 -0
  371. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/fundamentals.md +421 -0
  372. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/state-animations.md +461 -0
  373. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +48 -0
  374. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/theming.md +269 -0
  375. package/skills/mobile-android/references/ui.md +14 -0
  376. package/skills/mobile-architecture/SKILL.md +52 -0
  377. package/skills/mobile-architecture/references/android.md +54 -0
  378. package/skills/{flutter-app-architecture/SKILL.md → mobile-architecture/references/flutter/app-architecture.md} +1 -8
  379. package/skills/{bloc/SKILL.md → mobile-architecture/references/flutter/bloc.md} +1 -8
  380. package/skills/{flutter-change-notifier/SKILL.md → mobile-architecture/references/flutter/change-notifier.md} +1 -8
  381. package/skills/{architecture-feature-first/SKILL.md → mobile-architecture/references/flutter/feature-first.md} +1 -8
  382. package/skills/{flutter-login-usecase/SKILL.md → mobile-architecture/references/flutter/login-use-case.md} +0 -7
  383. package/skills/{flutter-managing-state/SKILL.md → mobile-architecture/references/flutter/managing-state.md} +2 -11
  384. package/skills/{provider/SKILL.md → mobile-architecture/references/flutter/provider.md} +1 -8
  385. package/skills/{flutter-apply-architecture-best-practices/SKILL.md → mobile-architecture/references/flutter/recommended-architecture.md} +2 -11
  386. package/skills/{riverpod/SKILL.md → mobile-architecture/references/flutter/riverpod.md} +1 -8
  387. package/skills/mobile-architecture/references/flutter.md +21 -0
  388. package/skills/mobile-architecture/references/ios.md +58 -0
  389. package/skills/mobile-architecture/references/react-native.md +61 -0
  390. package/skills/mobile-code-review/SKILL.md +70 -0
  391. package/skills/mobile-code-review/references/android.md +51 -0
  392. package/skills/{code-review/SKILL.md → mobile-code-review/references/flutter/pr-review.md} +1 -8
  393. package/skills/{flutter-project-audit/SKILL.md → mobile-code-review/references/flutter/project-audit.md} +0 -7
  394. package/skills/{dart-run-static-analysis/SKILL.md → mobile-code-review/references/flutter/static-analysis.md} +2 -11
  395. package/skills/{flutter-widget-review/SKILL.md → mobile-code-review/references/flutter/widget-review.md} +0 -7
  396. package/skills/mobile-code-review/references/flutter.md +18 -0
  397. package/skills/mobile-code-review/references/ios.md +49 -0
  398. package/skills/mobile-code-review/references/react-native.md +58 -0
  399. package/skills/mobile-debug/SKILL.md +50 -0
  400. package/skills/mobile-debug/references/android/gradle-build.md +63 -0
  401. package/skills/mobile-debug/references/android.md +26 -0
  402. package/skills/mobile-debug/references/flutter/build.md +58 -0
  403. package/skills/{flutter-errors/SKILL.md → mobile-debug/references/flutter/errors.md} +1 -8
  404. package/skills/{flutter-fix-layout-issues/SKILL.md → mobile-debug/references/flutter/layout-issues.md} +2 -11
  405. package/skills/{dart-resolve-package-conflicts/SKILL.md → mobile-debug/references/flutter/package-conflicts.md} +2 -11
  406. package/skills/{dart-fix-runtime-errors/SKILL.md → mobile-debug/references/flutter/runtime-errors.md} +2 -11
  407. package/skills/mobile-debug/references/flutter.md +23 -0
  408. package/skills/mobile-debug/references/ios/cocoapods.md +57 -0
  409. package/skills/mobile-debug/references/ios/xcode-build.md +58 -0
  410. package/skills/mobile-debug/references/ios.md +23 -0
  411. package/skills/mobile-debug/references/react-native.md +43 -0
  412. package/skills/{detect-mobile-stack → mobile-detect-stack}/SKILL.md +1 -1
  413. package/skills/mobile-firebase/SKILL.md +54 -0
  414. package/skills/mobile-firebase/references/android/ai-logic.md +31 -0
  415. package/skills/mobile-firebase/references/android/analytics.md +33 -0
  416. package/skills/mobile-firebase/references/android/app-check.md +36 -0
  417. package/skills/mobile-firebase/references/android/auth.md +44 -0
  418. package/skills/mobile-firebase/references/android/crashlytics.md +31 -0
  419. package/skills/mobile-firebase/references/android/firestore.md +44 -0
  420. package/skills/mobile-firebase/references/android/functions.md +33 -0
  421. package/skills/mobile-firebase/references/android/in-app-messaging.md +28 -0
  422. package/skills/mobile-firebase/references/android/messaging.md +41 -0
  423. package/skills/mobile-firebase/references/android/realtime-database.md +50 -0
  424. package/skills/mobile-firebase/references/android/remote-config.md +43 -0
  425. package/skills/mobile-firebase/references/android/sql-connect.md +31 -0
  426. package/skills/mobile-firebase/references/android/storage.md +39 -0
  427. package/skills/mobile-firebase/references/android.md +30 -0
  428. package/skills/{firebase-ai/SKILL.md → mobile-firebase/references/flutter/ai-logic.md} +2 -8
  429. package/skills/{firebase-analytics/SKILL.md → mobile-firebase/references/flutter/analytics.md} +2 -8
  430. package/skills/{firebase-app-check/SKILL.md → mobile-firebase/references/flutter/app-check.md} +2 -8
  431. package/skills/{firebase-auth/SKILL.md → mobile-firebase/references/flutter/auth.md} +2 -8
  432. package/skills/{firebase-crashlytics/SKILL.md → mobile-firebase/references/flutter/crashlytics.md} +2 -8
  433. package/skills/{firebase-cloud-firestore/SKILL.md → mobile-firebase/references/flutter/firestore.md} +2 -8
  434. package/skills/{firebase-cloud-functions/SKILL.md → mobile-firebase/references/flutter/functions.md} +2 -8
  435. package/skills/{firebase-in-app-messaging/SKILL.md → mobile-firebase/references/flutter/in-app-messaging.md} +2 -8
  436. package/skills/{firebase-messaging/SKILL.md → mobile-firebase/references/flutter/messaging.md} +2 -8
  437. package/skills/{firebase-database/SKILL.md → mobile-firebase/references/flutter/realtime-database.md} +2 -8
  438. package/skills/{firebase-remote-config/SKILL.md → mobile-firebase/references/flutter/remote-config.md} +2 -8
  439. package/skills/{flutterfire-configure/SKILL.md → mobile-firebase/references/flutter/setup-flutterfire.md} +1 -8
  440. package/skills/{firebase-data-connect/SKILL.md → mobile-firebase/references/flutter/sql-connect.md} +2 -8
  441. package/skills/{firebase-storage/SKILL.md → mobile-firebase/references/flutter/storage.md} +2 -8
  442. package/skills/mobile-firebase/references/flutter.md +36 -0
  443. package/skills/mobile-firebase/references/ios/ai-logic.md +30 -0
  444. package/skills/mobile-firebase/references/ios/analytics.md +33 -0
  445. package/skills/mobile-firebase/references/ios/app-check.md +36 -0
  446. package/skills/mobile-firebase/references/ios/auth.md +48 -0
  447. package/skills/mobile-firebase/references/ios/crashlytics.md +34 -0
  448. package/skills/mobile-firebase/references/ios/firestore.md +53 -0
  449. package/skills/mobile-firebase/references/ios/functions.md +35 -0
  450. package/skills/mobile-firebase/references/ios/in-app-messaging.md +26 -0
  451. package/skills/mobile-firebase/references/ios/messaging.md +45 -0
  452. package/skills/mobile-firebase/references/ios/realtime-database.md +49 -0
  453. package/skills/mobile-firebase/references/ios/remote-config.md +44 -0
  454. package/skills/mobile-firebase/references/ios/sql-connect.md +33 -0
  455. package/skills/mobile-firebase/references/ios/storage.md +36 -0
  456. package/skills/mobile-firebase/references/ios.md +28 -0
  457. package/skills/mobile-firebase/references/react-native/ai-logic.md +32 -0
  458. package/skills/mobile-firebase/references/react-native/analytics.md +43 -0
  459. package/skills/mobile-firebase/references/react-native/app-check.md +35 -0
  460. package/skills/mobile-firebase/references/react-native/auth.md +50 -0
  461. package/skills/mobile-firebase/references/react-native/crashlytics.md +36 -0
  462. package/skills/mobile-firebase/references/react-native/firestore.md +45 -0
  463. package/skills/mobile-firebase/references/react-native/functions.md +28 -0
  464. package/skills/mobile-firebase/references/react-native/in-app-messaging.md +27 -0
  465. package/skills/mobile-firebase/references/react-native/messaging.md +46 -0
  466. package/skills/mobile-firebase/references/react-native/realtime-database.md +46 -0
  467. package/skills/mobile-firebase/references/react-native/remote-config.md +32 -0
  468. package/skills/mobile-firebase/references/react-native/sql-connect.md +11 -0
  469. package/skills/mobile-firebase/references/react-native/storage.md +30 -0
  470. package/skills/mobile-firebase/references/react-native.md +29 -0
  471. package/skills/mobile-flutter/SKILL.md +30 -0
  472. package/skills/{flutter-improving-accessibility/SKILL.md → mobile-flutter/references/accessibility-i18n/accessibility.md} +2 -11
  473. package/skills/{flutter-setup-localization/SKILL.md → mobile-flutter/references/accessibility-i18n/localization.md} +2 -11
  474. package/skills/mobile-flutter/references/accessibility-i18n.md +8 -0
  475. package/skills/{dart-3-updates/SKILL.md → mobile-flutter/references/dart/dart-3.md} +1 -8
  476. package/skills/{effective-dart/SKILL.md → mobile-flutter/references/dart/effective-dart.md} +1 -8
  477. package/skills/{dart-use-pattern-matching/SKILL.md → mobile-flutter/references/dart/pattern-matching/GUIDE.md} +2 -18
  478. package/skills/mobile-flutter/references/dart.md +9 -0
  479. package/skills/{flutter-caching-data/SKILL.md → mobile-flutter/references/data/caching.md} +2 -11
  480. package/skills/{flutter-working-with-databases/SKILL.md → mobile-flutter/references/data/databases.md} +2 -11
  481. package/skills/{flutter-use-http-package/SKILL.md → mobile-flutter/references/data/http.md} +2 -11
  482. package/skills/{flutter-implement-json-serialization/SKILL.md → mobile-flutter/references/data/json-serialization.md} +2 -11
  483. package/skills/mobile-flutter/references/data.md +10 -0
  484. package/skills/{flutter-interoperating-with-native-apis/SKILL.md → mobile-flutter/references/native/native-apis.md} +2 -11
  485. package/skills/{flutter-embedding-native-views/SKILL.md → mobile-flutter/references/native/native-views.md} +2 -11
  486. package/skills/{flutter-building-plugins/SKILL.md → mobile-flutter/references/native/plugins.md} +2 -11
  487. package/skills/mobile-flutter/references/native.md +9 -0
  488. package/skills/{flutter-reducing-app-size/SKILL.md → mobile-flutter/references/performance/app-size.md} +2 -11
  489. package/skills/{flutter-handling-concurrency/SKILL.md → mobile-flutter/references/performance/concurrency.md} +2 -11
  490. package/skills/mobile-flutter/references/performance.md +8 -0
  491. package/skills/{flutter-setting-up-on-macos/SKILL.md → mobile-flutter/references/setup/macos.md} +2 -11
  492. package/skills/mobile-flutter/references/setup.md +7 -0
  493. package/skills/{flutter-animating-apps/SKILL.md → mobile-flutter/references/ui/animations.md} +2 -11
  494. package/skills/{flutter-building-forms/SKILL.md → mobile-flutter/references/ui/forms.md} +2 -11
  495. package/skills/{flutter-adding-home-screen-widgets/SKILL.md → mobile-flutter/references/ui/home-screen-widgets.md} +2 -11
  496. package/skills/{flutter-building-layouts/SKILL.md → mobile-flutter/references/ui/layouts.md} +2 -11
  497. package/skills/{flutter-build-responsive-layout/SKILL.md → mobile-flutter/references/ui/responsive-layout.md} +2 -11
  498. package/skills/{flutter-setup-declarative-routing/SKILL.md → mobile-flutter/references/ui/routing.md} +2 -11
  499. package/skills/{flutter-theming-apps/SKILL.md → mobile-flutter/references/ui/theming.md} +2 -11
  500. package/skills/{flutter-add-widget-preview/SKILL.md → mobile-flutter/references/ui/widget-previews.md} +2 -11
  501. package/skills/mobile-flutter/references/ui.md +14 -0
  502. package/skills/mobile-ios/SKILL.md +25 -0
  503. package/skills/mobile-ios/references/data-networking.md +70 -0
  504. package/skills/mobile-ios/references/performance-release.md +37 -0
  505. package/skills/mobile-ios/references/platform-features.md +52 -0
  506. package/skills/mobile-ios/references/ui-navigation.md +64 -0
  507. package/skills/mobile-rn/SKILL.md +26 -0
  508. package/skills/mobile-rn/references/data-networking.md +59 -0
  509. package/skills/mobile-rn/references/performance-release.md +46 -0
  510. package/skills/mobile-rn/references/platform-features.md +40 -0
  511. package/skills/mobile-rn/references/ui-navigation.md +62 -0
  512. package/skills/mobile-security/SKILL.md +82 -0
  513. package/skills/mobile-security/references/android/intent-security.md +523 -0
  514. package/skills/mobile-security/references/android.md +37 -0
  515. package/skills/{flutter-secure-token-store/SKILL.md → mobile-security/references/flutter/secure-token-store.md} +1 -8
  516. package/skills/mobile-security/references/flutter.md +30 -0
  517. package/skills/mobile-security/references/ios.md +27 -0
  518. package/skills/mobile-security/references/react-native.md +29 -0
  519. package/skills/mobile-test/SKILL.md +63 -0
  520. package/skills/mobile-test/references/android/setup/GUIDE.md +183 -0
  521. package/skills/mobile-test/references/android/setup/references/android/develop/ui/compose/testing/common-patterns.md +181 -0
  522. package/skills/mobile-test/references/android/setup/references/android/studio/preview/compose-screenshot-testing.md +255 -0
  523. package/skills/mobile-test/references/android/setup/references/android/training/dependency-injection/hilt-testing.md +447 -0
  524. package/skills/mobile-test/references/android.md +83 -0
  525. package/skills/{dart-collect-coverage/SKILL.md → mobile-test/references/flutter/coverage.md} +2 -11
  526. package/skills/{dart-generate-test-mocks/SKILL.md → mobile-test/references/flutter/generate-mocks.md} +2 -11
  527. package/skills/{flutter-add-integration-test/SKILL.md → mobile-test/references/flutter/integration-tests.md} +2 -11
  528. package/skills/{dart-migrate-to-checks-package/SKILL.md → mobile-test/references/flutter/migrate-to-checks.md} +2 -13
  529. package/skills/{mockito/SKILL.md → mobile-test/references/flutter/mockito.md} +1 -8
  530. package/skills/{mocktail/SKILL.md → mobile-test/references/flutter/mocktail.md} +1 -8
  531. package/skills/{patrol-e2e-testing/SKILL.md → mobile-test/references/flutter/patrol.md} +1 -8
  532. package/skills/{testing/SKILL.md → mobile-test/references/flutter/testing-guidelines.md} +1 -8
  533. package/skills/{dart-add-unit-test/SKILL.md → mobile-test/references/flutter/unit-tests.md} +2 -11
  534. package/skills/{flutter-add-widget-test/SKILL.md → mobile-test/references/flutter/widget-tests.md} +2 -11
  535. package/skills/mobile-test/references/flutter.md +44 -0
  536. package/skills/mobile-test/references/ios.md +79 -0
  537. package/skills/mobile-test/references/react-native.md +62 -0
  538. package/skills/mobile-security-audit/SKILL.md +0 -101
  539. /package/skills/{dart-use-pattern-matching → mobile-flutter/references/dart/pattern-matching}/examples/json_patterns.dart +0 -0
@@ -0,0 +1,113 @@
1
+ Run `android layout --help` and `android screen --help`.
2
+
3
+ ## UI Dump
4
+
5
+ `android layout` returns a flat JSON list of the UI elements on screen. `android
6
+ layout --diff` returns a flat JSON list of the UI elements that have changed
7
+ since the last call to `layout` or `layout --diff`
8
+
9
+ Each JSON object represents a UI element in the Android app. The following
10
+ properties may be present:
11
+
12
+ - `text` - any literal text the element contains
13
+ - `resourceId` - the Android resource id used to refer to the element
14
+ - `contentDesc` - a description of a UI element for use by accessibility tools
15
+ - `interactions` - the set of user interactions the element supports. May contain one or more of: `checkable`, `clickable`, `focusable`, `scrollable`, `long-clickable`, `password`
16
+ - `state` - the set of states the element is in. May contain one or more of `checked`, `focused`, `selected`
17
+ - `bounds` - the screen coordinates of the bounding rectangle of the element, in the format `[min X,min Y][max X, max Y]`
18
+ - `center` - the screen coordinates of the center of the element, in the format `[x,y]`
19
+ - `off-screen` - if true, the element is in the UI hierarchy but not visible; it may require scrolling to view.
20
+
21
+ Use `layout` as a primary means of examining an Android app. Use `layout --diff`
22
+ to focus on changes and to keep your context small. Example: When entering
23
+ digits into a calculator, use `layout --diff` to output only the digit readout
24
+ element.
25
+
26
+ `layout` may fail due to the app displaying a WebView or animation; in these
27
+ cases, use `android screen capture --annotate` to inspect the app. This failure
28
+ will likely resolve after navigating away from the current screen.
29
+
30
+ ## Screenshot
31
+
32
+ `android screen capture -o <file path>` saves a PNG of the current device screen
33
+ to `<file path>`
34
+
35
+ Use `screen capture` as a secondary means of examining an Android app
36
+ Examples:
37
+
38
+ - Understanding the content of an on-screen image
39
+ - Looking at a `WebView` (web content does not always appear in the ui dump)
40
+ - Trying to find a UI element by its visual appearance
41
+
42
+ **IMPORTANT** : Always *VISUALLY* examine the PNG image returned from `android
43
+ screen` BEFORE doing anything else.
44
+
45
+ ## Annotated Screenshot
46
+
47
+ `android screen capture --annotate -o <file path>`
48
+ `android screen resolve --screen <path> --string <string>`
49
+
50
+ The `--annotate` command adds numerical labels and bounding boxes around UI
51
+ elements. Use this command to locate UI elements that cannot be located in the
52
+ `layout` output.
53
+
54
+ **IMPORTANT** : When using `android screen --annotate`, always *VISUALLY* examine
55
+ the resulting PNG file.
56
+
57
+ To refer to these labels in input commands, use `screen resolve` to convert
58
+ labels into coordinates:
59
+
60
+ `android screen resolve --screen <file path> --string "#3"` returns `<x coord of
61
+ region 3> <y coord of region 3>`
62
+
63
+ To save turns, you can combine shell commands:
64
+
65
+ `adb shell input $(android screen resolve --screen screen.png --string "tap #34")`
66
+
67
+ This command taps on region #34 from `screen.png`
68
+
69
+ ## Input
70
+
71
+ Use `adb shell input` for interacting with Android devices. Refer to the
72
+ `"interactions"` property of an element for what interactions can be performed
73
+ on a particular element.
74
+
75
+ Interact with UI elements with their `center` coordinate or their `bounds`
76
+ coordinates:
77
+ `json
78
+ {
79
+ "key": -248568265,
80
+ "class": "android.widget.Button",
81
+ "bounds": "[138,9][167,38]",
82
+ "center": "[152,23]"
83
+ }`
84
+
85
+ To tap on this button, you would execute `adb shell input tap 152 23`. This taps
86
+ the center.
87
+
88
+ {
89
+ "key": 12487234,
90
+ "class": "com.example.ui.ScrollableList",
91
+ "bounds": "[100,200][400,600]",
92
+ "center": "[250,400]"
93
+ }
94
+
95
+ To scroll down on this list, you would execute `adb shell input swipe 250 400
96
+ 250 200 500`. This swipes from the center to the top over 500ms.
97
+
98
+ ### Text Input
99
+
100
+ To enter text, ensure the field is focused and execute `adb shell input text
101
+ "<text>"`.
102
+
103
+ - **Spaces (`%s`):** Replace spaces with `%s` (Android ignores text after raw spaces): `adb shell input text "Hello%sworld"` (enters `"Hello world"`).
104
+ - **Special characters:** Escape shell metacharacters (`&`, `$`, `(`, `)`, `!`): `adb shell input text "AT\&T"` or `adb shell input text 'Price:\$10'`.
105
+ - **Submit / Enter:** `adb shell input keyevent 66`
106
+
107
+ ## Android Interaction Rules
108
+
109
+ 1. Always ensure text input fields have `"focused"` in their `"state"` list before entering text.
110
+ 2. If an element has `"scrollable"` in its `"interactions"` list, try scrolling it when looking for missing UI elements.
111
+ 3. Always scroll slowly when executing scroll inputs. The 5th argument to `adb
112
+ shell input swipe` controls scroll duration.
113
+ 4. Content may take time to load; if a `layout` is missing information after you take an action, wait a few seconds, then perform `layout --diff` to see if anything changes.
@@ -0,0 +1,120 @@
1
+ A journey is an XML-specified test of an Android app's behavior. It consists of
2
+ a list of `<action>` elements. For example:
3
+ `xml
4
+ <journey name="My Journey">
5
+ <description>
6
+ A sample journey to illustrate the format
7
+ </description>
8
+ <actions>
9
+ <action>
10
+ Tap the "Home" icon
11
+ </action>
12
+ <action>
13
+ Verify that the app is on its Home screen
14
+ </action>
15
+ </actions>
16
+ </journey>`
17
+
18
+ Evaluate a journey by proceeding through the `<actions>` list in sequential
19
+ order. Evaluate each `<action>` block individually.
20
+ A journey succeeds if all elements in the `<actions>` list succeed.
21
+
22
+ A journey is a test case for an app. The journey XML is the source of truth; if
23
+ the app disagrees with the journey, the app has failed.
24
+ Additionally, if the app exits, crashes, or freezes, journey evaluation stops
25
+ and the journey fails.
26
+
27
+ **IMPORTANT** - Execute each step EXACTLY as written, and independently of other
28
+ steps! If an action says to `"tap the first search result"`,
29
+ you MUST find the search results and tap the first one. Do this even if you
30
+ believe you know the intent behind the action.
31
+
32
+ ## Taking Actions
33
+
34
+ Some `<action>` elements specify UI interactions to perform on the running
35
+ Android app. Perform the interaction and verify that the app does
36
+ not crash or behave in an unexpected manner. This is the *only* verification
37
+ you should perform for an `<action>`.
38
+
39
+ If the interaction cannot be performed as specified, the journey fails.
40
+ Example:
41
+ `<action>Click the red button</action>`
42
+ If you determine a red button is not present in the UI, the journey fails.
43
+
44
+ If the text of an `<action>` specifies a list of actions, break it into
45
+ sub-actions and evaluate them individually:
46
+ Example:
47
+ `<action>Search for soda and add the first result to the cart</action>`
48
+ This should be evaluated as:
49
+ `<action>Search for soda</action>
50
+ <action>Add the first result to the cart</action>`
51
+
52
+ If an `<action>` contains something that is not a specification for a UI
53
+ interaction, alert the user that the journey is malformed and exit
54
+ early, specifying the error in question.
55
+
56
+ ## Verifying Expectations
57
+
58
+ `<action>` elements that begin with "check" or "verify" specify expectations
59
+ for the current state of the Android app. Determine the current
60
+ state of the app and check if the expectations are met.
61
+
62
+ Determine the current state of the app by inspecting the current screen of the
63
+ device without interacting with it.
64
+ Example:
65
+ `<action>Check if "Switch 2" is visible on the screen</action>`
66
+ This requires only inspecting the current screen, not scrolling or interacting.
67
+ If "Switch 2" is not currently visible, the action fails.
68
+
69
+ If the expectations are not met, mark the `<action>` as a failure and the
70
+ journey evaluation ends. A single `<action>` may contain
71
+ multiple expectations.
72
+ Example:
73
+ `<action>Verify that the app is on the Home screen, the Home icon is blue, and the temperature is displayed</action>`
74
+ This `<action>` fails if ANY of the following are false:
75
+
76
+ - The app is on the Home screen
77
+ - There is a Home icon, and it is blue
78
+ - A temperature is displayed
79
+
80
+ ## Handling failure
81
+
82
+ When running a journey, evaluate it as a test. Failure is acceptable, and often
83
+ expected. Proper reporting of failures is the priority.
84
+
85
+ Keep debugging and troubleshooting to a minimum; assume that tools are showing
86
+ you the correct output every time. The goal is to determine
87
+ if the *current* Android app can correctly handle the *current* steps outlined
88
+ in the journey. Suggestions for bug fixes, clarification, or
89
+ other improvements should be kept to journey evaluation summary at the end.
90
+
91
+ ## Summarizing
92
+
93
+ After evaluating the whole journey, output a markdown (.md) file describing the
94
+ results.
95
+
96
+ The file should have the following format:
97
+
98
+ # Journey: <Name of the journey>
99
+
100
+ ## Results
101
+
102
+ <!-- Append "✅" to the action header if the instruction was evaluated or "❌" if the instruction could not be evaluated -->
103
+ ### Action: Click the blue button ✅
104
+ - **Commands**:
105
+ <!-- A list of the ADB commands executed while evaluating the instruction -->
106
+ - `adb shell input swipe 490 200 500 500 500`
107
+ - `adb shell input tap 45 920`
108
+
109
+ <!-- Failure reasons, feedback, or other useful information -->
110
+ - **Comment**: The journey step doesn't specify that the button requires scrolling to see
111
+
112
+ ### Action: Check if "Switch 2" is visible on the screen ✅
113
+ - **Screenshot**: [switch_2_screenshot.png](path/to/screenshot)
114
+ - **Comment**: Confirmed both in layout and visually
115
+
116
+ ### Action: The home screen is shown ❌
117
+ - **Comment**: The settings page was shown
118
+
119
+ <!-- Append nothing to the action header if the action was not evaluated because the journey execution ended early -->
120
+ ### Action: Swipe down to view active notifications
@@ -0,0 +1,34 @@
1
+ > Adapted from the `android-profiler` skill in [android/skills](https://github.com/android/skills) (Apache-2.0). See `THIRD_PARTY_NOTICES.md`.
2
+
3
+ # Android Profiler Orchestrator
4
+
5
+ Your primary role is **Intent Disambiguation and Routing**; route the user to
6
+ the correct workflow or prepare an execution plan for the user. Work with the
7
+ user to finalize the plan and then proceed with the plan execution, addressing
8
+ singular as well as composite needs.
9
+
10
+ ## Prerequisites and Setup
11
+
12
+ Before executing any workflows, read
13
+ [`references/env_setup.md`](references/env_setup.md) (it sits next to this file
14
+ in the skill root). It defines what to set `$SKILL_ROOT` to - the anchor every
15
+ other path in this skill is written against.
16
+
17
+ ## Intent Disambiguation
18
+
19
+ Do not guess the user's intent. If the user request is not clear, **ask the
20
+ user** what they want to do before proceeding.
21
+
22
+ ## Recording
23
+
24
+ Route all recording requests through
25
+ `$SKILL_ROOT/recording/recording_orchestrator.md`. This defines guidelines and
26
+ pre-flight checks or dependency checks that apply to all recording workflows,
27
+ and ensures you have the necessary setup to proceed. Read the orchestrator and
28
+ execute the plan it describes based on what the user wants to record (for
29
+ example, a system trace or a heap dump).
30
+
31
+ ## Analysis
32
+
33
+ Route all analysis requests through
34
+ `$SKILL_ROOT/analysis/analysis_orchestrator.md`.
@@ -0,0 +1,32 @@
1
+ # Analysis Orchestrator
2
+
3
+ Use the guidelines below to find the right analysis workflow to execute based
4
+ on the user intent (for example, analyzing a system trace or a heap dump).
5
+
6
+ Ensure you can answer the following: "User intends to
7
+ [analyze/query/investigate] ______". For example,
8
+ "User intends to analyze a heap dump to investigate a memory leak".
9
+
10
+ ## Handling Composite Requests
11
+
12
+ If the user's request involves multiple distinct analysis goals (for example,
13
+ analyzing a trace for jank AND checking for memory leaks or GPU issues),
14
+ do not execute them simultaneously.
15
+
16
+ 1. Break down the request and propose a sequential execution plan to the user.
17
+ 2. Ask the user for confirmation to start the first step.
18
+ 3. Do not proceed to the next workflow until the current one is completed.
19
+
20
+ ## Workflow Discovery and Routing
21
+
22
+ This skill supports multiple specialized analysis workflows. To determine the
23
+ right workflows to use:
24
+
25
+ 1. Use your file search tools (for example, `grep_search`) to recursively scan
26
+ the `$SKILL_ROOT/analysis/workflows/` directory for workflow entrypoints
27
+ (markdown files defining a top-level `name:` key in their frontmatter,
28
+ ignoring internal `references/` subdirectories).
29
+ 2. Compare the user's request and intent against the `name:`, `description:`,
30
+ and `keywords:` fields to identify matching workflows. If multiple are
31
+ found, present them as options to the user and proceed with the
32
+ user's selection.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: perfetto-sql
3
+ description: >
4
+ Translates natural language data intents into syntactically valid PerfettoSQL
5
+ queries and/or executes them against a trace file, if provided. Use this
6
+ workflow to draft, debug, or execute queries extracting slice, thread, or
7
+ memory data from Android Perfetto traces using trace_processor.
8
+ keywords:
9
+ - Perfetto SQL
10
+ - SQL Guidelines
11
+ - SQL Best Practices
12
+ - Ad-hoc Query
13
+ - Trace Processor
14
+ - SPAN_JOIN
15
+ - Idempotency
16
+ ---
17
+
18
+ # Ad-Hoc PerfettoSQL Querying
19
+
20
+ Use this workflow to write, debug, or execute PerfettoSQL queries:
21
+
22
+ - **Executing against a trace:** If a trace file path or URL is provided, verify
23
+ environment prerequisites in `$SKILL_ROOT/references/perfetto/setup.md` and
24
+ follow the session execution workflow in
25
+ `$SKILL_ROOT/references/perfetto/sql.md`.
26
+ - **Static query authoring or debugging:** If no trace is attached, draft,
27
+ optimize, or debug the queries using the syntax, schema guidelines, and
28
+ standard library best practices in `$SKILL_ROOT/references/perfetto/sql.md`.
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: perfetto-trace-analysis
3
+ description: >
4
+ Analyzes Perfetto traces to find the root cause of performance issues in
5
+ user or system Android apps (for example, janks, app startup, memory, or
6
+ latency stalls).
7
+ keywords:
8
+ - perfetto
9
+ - trace
10
+ - jank
11
+ - startup
12
+ - latency
13
+ - stall
14
+ - thread
15
+ - bottleneck
16
+ ---
17
+
18
+ # Perfetto Trace Analysis
19
+
20
+ Use this workflow to diagnose general Android performance issues: jank, app
21
+ startup, latency, stall, or a thread-blocking problem.
22
+
23
+ Follow these steps in order:
24
+
25
+ ## Step 1: Identify what to investigate first
26
+
27
+ Work with the user (for example, ask questions, present options) to
28
+ understand the following:
29
+
30
+ - _What is the symptom_: Do they want to investigate frame drops, jank,
31
+ startup issues, app crash, system crash, ANR?
32
+ - _Who is the victim:_ Where did they observe the symptom? For example, "a
33
+ frame drop in `com.example.sample`".
34
+
35
+ > **Input Trace Required:** Confirm that the user has provided a trace file
36
+ > path or URL (for example, `.pftrace`, `.perfetto-trace`, or a Perfetto UI
37
+ > link). If none is provided, pause and ask the user to provide one before
38
+ > proceeding.
39
+
40
+ > If you do not know the symptom, pause and ask the user for clarification.
41
+
42
+ > If you know the symptom but not the victim, proceed to Step 2 (Triage) to
43
+ > discover candidates. Present the 3-5 most severe instances to the user and
44
+ > proceed with the user selection.
45
+
46
+ > **A/B Trace Comparison:** If the user provides multiple traces (for
47
+ > example, a baseline and an issue trace), explicitly clarify which is the
48
+ > baseline. You will pass both paths to the subagents in Step 3 so they can
49
+ > use the baseline trace to establish expected behavior.
50
+
51
+ ## Step 2: Run a system-wide triage
52
+
53
+ Spin off a subagent/task and instruct it to follow instructions from
54
+ `$SKILL_ROOT/analysis/workflows/perfetto-trace-analysis/references/triage.md`
55
+ to run a system-wide triage. (Do not read this file yourself. Pass this path
56
+ in the sub-agent prompt so it loads the file and performs the triage steps).
57
+
58
+ Note the output produced by the subagent to identify the filtered list of
59
+ **candidates** that we need to investigate.
60
+
61
+ > **Note:**
62
+ > - If no candidates are found, ask the user for symptom clarification and
63
+ > specific timestamps.
64
+ > - If the triage reveals multiple candidates, select the top 2 or 3 most
65
+ > severe, representative candidates and ask the user before proceeding
66
+ > which ones to investigate. The user may choose one or more.
67
+
68
+ **Expected outcome:** Confirmation on which candidate(s) to investigate
69
+ before proceeding.
70
+
71
+ ## Step 3: Investigate each branch in parallel
72
+
73
+ For **every** candidate (one or more) identified in the previous step, spin
74
+ off a task/subagent to investigate these tracks _in parallel_.
75
+
76
+ Construct a prompt for each candidate containing:
77
+ ```markdown
78
+ Trace path: [path]
79
+ Baseline Trace Path: [path, if provided]
80
+ Candidate Info: [`utid`, `upid`, thread_name, process_name, `render_thread_utid` (if applicable)]
81
+ Symptom Window: [start_ts, end_ts, duration]
82
+ System Vitals: [payload from Step 2]
83
+ Budget: [expected duration, if applicable]
84
+ Execution Protocol: Read
85
+ `$SKILL_ROOT/analysis/workflows/perfetto-trace-analysis/references/per_candidate_analysis.md`
86
+ and follow its instructions end-to-end.
87
+ ```
88
+
89
+ SPAWN the subagent(s) in parallel and await completion of all subagents before
90
+ proceeding to Step 4.
91
+
92
+ ## Step 4: Final report and consolidation
93
+
94
+ Read the output from every spawned subagent and generate a consolidated "Trace
95
+ Analysis Report" adhering to these instructions:
96
+
97
+ 1. **Summary and Root Cause:** State the findings in simple, clear language
98
+ and classify root causes (hardware, software/code, scheduling policy,
99
+ system exhaustion, or external dependency).
100
+ 2. **Dependency Chain:** Map the full path from symptom to root cause.
101
+ Include thread names, `UTID`s, blocking states, and exact timestamps at
102
+ every hop.
103
+ 3. **Evidence Tags:** Tag every single claim with `[SQL]` (backed by data),
104
+ `[INFERRED]` (logical deduction), or `[GAP]` (partial or missing data),
105
+ and briefly define these tags at the start.
106
+ 4. **Platform Context:** Explain Android system behaviors _only_ by citing
107
+ specific retrieved slice names, values, and timestamps.
108
+ **What's bad:** "SurfaceFlinger does X around vsync"
109
+ **What's a good explanation:** "SurfaceFlinger's composition slice at
110
+ `ts=142.3ms` ran `4ms` after the vsync signal at `ts=138.1ms`, consistent
111
+ with X".
112
+ 5. **Partial Suspects:** List all branches that were investigated but did not
113
+ reach a terminal root cause, ranked by evidence strength. Include what
114
+ was found and where verification fell short. A partial suspect can be the
115
+ real contributor - report it even if a terminal root cause was found
116
+ elsewhere.
117
+
118
+ > If evidence is evenly split between multiple potential causes, report each
119
+ > suspicion with its supporting data and evidence so that engineers can
120
+ > evaluate probabilities without false certainty. Do not arbitrarily pick
121
+ > a winner.
@@ -0,0 +1,51 @@
1
+ # Guiding Principles for Trace Analysis
2
+
3
+ Whether you are augmented with domain-specific knowledge or doing a standard
4
+ workflow analysis, follow these rules.
5
+
6
+ **Why:** Performance analysis is complex. It is entirely possible to end up
7
+ identifying a root cause while the reality is different (for example, a hardware
8
+ bottleneck causing a cascade of failures). The principles below keep your
9
+ analysis grounded in truth and ensure that you investigate the entire causal
10
+ chain to discover the true bottleneck.
11
+
12
+ 1. **Schema Validation via Intrinsic Discovery:**
13
+ Read `$SKILL_ROOT/references/perfetto/sql.md` and query table schemas
14
+ using `LIMIT 0` before drafting queries.
15
+ - **Why:** Trace processor schemas evolve across versions; discovering
16
+ schema directly prevents invalid assumptions and syntax failures.
17
+ 2. **Empirical Data Grounding:** Support every claim with tool output or
18
+ queried timestamps, slice durations or counter values (`[SQL]`).
19
+ - **Why:** General Android heuristics cannot substitute for ground-truth
20
+ trace metrics. When queries return empty results, broaden search
21
+ constraints using fuzzy matching or wider time windows.
22
+ 3. **Causation vs. Correlation:** Verify that the blocker's active execution
23
+ overlaps with the victim's wait interval.
24
+ - **Why:** Concurrent anomalies are only causally linked if their
25
+ execution lifetimes intersect. For example, just because thread A was busy
26
+ while thread B was waiting does not necessarily mean thread A caused the
27
+ wait.
28
+ 4. **Follow Evidence:** Follow dependency chains across thread, process and
29
+ kernel boundaries to the terminal root cause. Keep going as long as
30
+ **each hop meaningfully explains the symptom**.
31
+ - **Why:** Halting blocker traversal prematurely reports intermediate
32
+ symptoms rather than the true origin.
33
+ 5. **Explicit Uncertainty Reporting:** Categorize unverified execution paths
34
+ as `[GAP]` or partial suspects.
35
+ - **Why:** Transparent reporting of missing data enables engineers to evaluate
36
+ probabilities without false certainty.
37
+ 6. **Evidence-First Explanation:** Cite concrete retrieved metrics and slice
38
+ timestamps before asserting platform behavioral context.
39
+ - **Why:** Contextual explanations are only reliable when anchored in
40
+ empirical trace observations.
41
+ 7. **Systemic Confound Sweeps:** Before attributing a bottleneck to
42
+ application software, verify that thermal throttling, CPU capping
43
+ (`cpufreq`), scheduling (`sched_slice`), or LMKD pressure isn't uniformly
44
+ degrading the system. Report such confounds as root cause modifiers.
45
+ > To uncover short-lived anomalies that get mathematically missed by simple
46
+ > averages or aggregate queries, isolate and look around the symptom window
47
+ > and query for individual event spikes or percentiles.
48
+ 8. **Systematic Step Adherence:** At every step of your investigation, strictly
49
+ follow the defined investigation steps.
50
+ - **Why:** Structured verification prevents analytical blind spots and
51
+ premature conclusions on obvious but non-critical anomalies.
@@ -0,0 +1,7 @@
1
+ ---
2
+ domain: The specific domain or product.
3
+ description: Description of the domain/subsystem for effective routing
4
+ keywords:
5
+ - List of symptoms and keywords where these hints are applicable,
6
+ for example, 'jank', 'surfaceflinger', 'vulkan'.
7
+ ---
@@ -0,0 +1,56 @@
1
+ ---
2
+ subsystem: cpu
3
+ description: >
4
+ Expert hints for CPU scheduling, thread states, CPU contention, and
5
+ frequency scaling.
6
+ keywords:
7
+ - cpu
8
+ - scheduling
9
+ - latency
10
+ - runnable
11
+ - running
12
+ - thread state
13
+ - governor
14
+ - core
15
+ - frequency
16
+ ---
17
+
18
+ # CPU & Scheduling Expert Hints
19
+
20
+ - When debugging a long slice: Examine its thread states to understand what the
21
+ thread was doing (running, sleeping, blocked on I/O).
22
+ - When debugging a long slice for latency issues: Check if its duration is
23
+ caused by one or more long-running child slices. Apply recursively.
24
+ - When a thread is woken up but there is a delay before it runs, check the
25
+ "IRQ" track for the corresponding CPU to see if an interrupt is the cause.
26
+ - Check if kernel threads associated with hardware are running with real-time
27
+ priority; if not, they can be preempted.
28
+ - When analysis of the primary application package does not reveal root cause,
29
+ expand to all threads and processes. Search for other runnable threads on the
30
+ same CPU or high-priority kernel threads.
31
+ - When investigating app startup, use an SQL query to aggregate reasons for
32
+ uninterruptible sleep on the main thread.
33
+ - Check the "cpu_frequency" counter for CPU cores that ran the main process.
34
+ Missing frequency data or stuck frequencies indicate a kernel-level bug in
35
+ the governor.
36
+ - Query raw "ftrace" events for logs related to the governor thread (for
37
+ example, "su_gov").
38
+ - To find concurrency issues, search for critical threads (for example,
39
+ 'RenderThread') in a blocked state (`thread_state.state = 'D'`) and join with
40
+ scheduling data to find the waker.
41
+ - Compare time spent in userspace functions vs kernel (slices with [k] prefix).
42
+ - To detect a 'catch-up storm', look for threads with long gaps in
43
+ thread_state/cpu_slice activity immediately followed by a high-density burst.
44
+ - Quantify scheduler contention by calculating scheduling latency (measure
45
+ duration of preceding 'Runnable' state using
46
+ `preceding_sched_slice_for_thread`). Search for maximums and high percentiles
47
+ (p95/p99).
48
+ - If a task exhibits high scheduling latency, check if other CPUs were idle
49
+ (running swapper or idle thread).
50
+ - Check the `cpu_id` for key threads; if consistently scheduled on slower
51
+ cores, it signals a potential performance gain by allowing them on big cores.
52
+ - For a struggling thread, analyze 'Runnable' vs 'Running' state time. A large
53
+ 'Runnable' time indicates CPU contention.
54
+ - If a slice's wall duration increases but the percentage of 'Running' time is
55
+ unchanged, it strongly suggests a lower CPU frequency. Check `sched_switch`
56
+ to focus on the correct cores.
@@ -0,0 +1,51 @@
1
+ ---
2
+ subsystem: graphics
3
+ description: >
4
+ Expert hints for graphics performance, UI jank, GPU memory, and frame
5
+ rendering.
6
+ keywords:
7
+ - graphics
8
+ - ui jank
9
+ - gpu
10
+ - frame
11
+ - vsync
12
+ - render
13
+ - surfaceflinger
14
+ - texture
15
+ - bitmap
16
+ ---
17
+
18
+ # Graphics & UI Jank Expert Hints
19
+
20
+ - When investigating UI jank, check for long-running slices on the main
21
+ thread; if a slice like "ConstraintLayout.onMeasure" is taking a long time
22
+ (for example, >8ms), it is a likely cause of the jank.
23
+ - When a `bitmap_write_to_parcel` slice takes milliseconds instead of
24
+ microseconds, investigate its children slices to see how time is spent. Long
25
+ durations often point to suboptimal kernel operations like memory mapping
26
+ (`mmap`) or unnecessary data zeroing.
27
+ - For a high-level overview of graphics memory usage, track `gpu_mem_total`
28
+ counter for a specific process (`upid`).
29
+ - To find the largest graphics allocations, query the `android_graphics_allocs`
30
+ table and sort by `size_bytes` in descending order. Compare width and height
31
+ against the device's display resolution.
32
+ - To detect the "double memory cost" of an image existing on both CPU and GPU,
33
+ look for a large buffer in `android_graphics_allocs` and a simultaneous CPU
34
+ memory allocation of a similar size (`rss_anon_bytes` or `heap_graph`).
35
+ - To find potentially costly intermediate render targets, look for large
36
+ buffers in `android_graphics_allocs` where `usage_bits` lack a
37
+ `COMPOSER_OVERLAY` flag.
38
+ - To check if an allocation is actually presented on screen, correlate
39
+ `buffer_id` with SurfaceFlinger events.
40
+ - To see if high graphics memory is causing performance issues, check the frame
41
+ duration in `actual_frame_timeline_slice`. Durations over vsync (for
42
+ example, 16.6ms) correlating with `gpu_mem_total` spikes suggest memory
43
+ pressure jank.
44
+ - Within the main thread of a janky graphics application, look for frequent or
45
+ long-running `texture_upload` slices.
46
+ - Analyze the duration of `eglSwapBuffersWithDamageKHR` or similar buffer-swap
47
+ slices in the graphics rendering thread. Consistently long durations suggest
48
+ a large "damage area" being redrawn every frame.
49
+ - To identify UI jank, compare `actual_frame_timeline` against the
50
+ `expected_frame_timeline` on the main process; a significant deviation
51
+ indicates missed frames.
@@ -0,0 +1,46 @@
1
+ ---
2
+ subsystem: io
3
+ description: >
4
+ Expert hints for I/O and storage bottlenecks, uninterruptible sleep, and
5
+ page cache.
6
+ keywords:
7
+ - i/o
8
+ - storage
9
+ - disk
10
+ - uninterruptible sleep
11
+ - d state
12
+ - page fault
13
+ - dm-verity
14
+ - file
15
+ - syscall
16
+ ---
17
+
18
+ # I/O & Storage Expert Hints
19
+
20
+ - When debugging a long, uninterruptible sleep state related to I/O: Check for
21
+ overlapping slices with "verity" in their name (dm-verity).
22
+ - When a thread is stuck in an uninterruptible sleep with no `blocked_function`,
23
+ look for other threads that might be holding the memory lock (for example,
24
+ "jit-thread-pool", memory mapping ops).
25
+ - When analyzing a long uninterruptible sleep, check the `blocked_function` in
26
+ the thread state details (from `sched_blocked_reason` ftrace event).
27
+ - A lot of time spent in `do_page_fault` during app startup is a strong
28
+ indicator of I/O contention.
29
+ - For file integrity mechanisms like DM-Verity, search for events like
30
+ `dm_verity_fec_prefetch`.
31
+ - To find the specific kernel dependency of a stalled app thread, locate the
32
+ thread in state 'D', then look for kworker or kernel threads that become
33
+ runnable immediately after.
34
+ - For app stalls caused by I/O, analyze the scheduling latency of the relevant
35
+ kworker threads handling the request.
36
+ - To find inefficient file I/O, query the syscall table for a high frequency
37
+ of small, sequential `read()` or `pread()` syscalls on a single fd.
38
+ - If a thread spends significant time in 'Uninterruptible Sleep', check if
39
+ `blocked_function` is `page_cache_readahead`. Correlate waking timestamps
40
+ with `filemap_add_to_page_cache` ftrace events.
41
+ - Aggregate counts of `filemap_add_to_page_cache` grouping by `inode` to find
42
+ the specific file causing I/O pressure.
43
+ - Inspect `nr_sector` in `block_rq_issue` ftrace events to understand file
44
+ read-ahead size.
45
+ - If an I/O issue disappears on subsequent launches, it is a 'cold start'
46
+ problem (populating page cache).