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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +39 -0
- package/README.md +135 -297
- package/THIRD_PARTY_NOTICES.md +221 -4
- package/agents/android-architect.md +89 -0
- package/agents/android-performance-engineer.md +92 -0
- package/agents/android-test-engineer.md +97 -0
- package/agents/flutter-test-engineer.md +2 -0
- package/agents/ios-architect.md +93 -0
- package/agents/ios-performance-engineer.md +92 -0
- package/agents/ios-test-engineer.md +95 -0
- package/agents/lead-mobile.md +10 -1
- package/agents/mobile-code-reviewer.md +2 -0
- package/agents/mobile-staff-engineer.md +1 -1
- package/agents/rn-architect.md +94 -0
- package/agents/rn-performance-engineer.md +92 -0
- package/agents/rn-test-engineer.md +98 -0
- package/bin/reis-mobile.mjs +59 -17
- package/commands/debate.md +10 -1
- package/commands/debug.md +60 -0
- package/commands/reis-mobile.md +7 -2
- package/core/config/project.mjs +59 -0
- package/core/registry/frontmatter.mjs +15 -4
- package/core/registry/registry.mjs +28 -1
- package/core/router/intents.mjs +2 -0
- package/core/router/router.mjs +10 -5
- package/package.json +24 -3
- package/skills/mobile-android/SKILL.md +29 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/GUIDE.md +87 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/android/build/migrate-to-built-in-kotlin.md +416 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/android/build/releases/agp-9-0-0-release-notes.md +554 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/buildconfig.md +54 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/ksp-kapt.md +39 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/paparazzi-gradle-9.md +30 -0
- package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/recipes.md +62 -0
- package/skills/mobile-android/references/build-and-performance/android-cli/GUIDE.md +450 -0
- package/skills/mobile-android/references/build-and-performance/android-cli/references/interact.md +113 -0
- package/skills/mobile-android/references/build-and-performance/android-cli/references/journeys.md +120 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/GUIDE.md +34 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/analysis_orchestrator.md +32 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-sql/perfetto_sql.md +28 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/perfetto_trace_analysis.md +121 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/guiding_principles.md +51 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/domain_hints_template.md +7 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_cpu.md +56 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_graphics.md +51 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_io.md +46 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_ipc.md +41 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_memory.md +55 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_power.md +33 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/per_candidate_analysis.md +172 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/triage.md +94 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/recording_orchestrator.md +36 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/perfetto_trace_recording.md +148 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/app_jank.pftxt +43 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/cpu_profile.pftxt +35 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/java_heap_dump.pftxt +21 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/long_background.pftxt +37 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/memory_counters.pftxt +45 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/native_heap.pftxt +21 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/sched_cpu.pftxt +33 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/trace_config_reference.md +102 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/references/env_setup.md +15 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/references/perfetto/setup.md +29 -0
- package/skills/mobile-android/references/build-and-performance/android-profiler/references/perfetto/sql.md +327 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/GUIDE.md +53 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/CONFIGURATION-ANALYZER.md +287 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/CONFIGURATION.md +44 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/KEEP-RULES-IMPACT-HIERARCHY.md +83 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REDUNDANT-RULES.md +222 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REFLECTION-GUIDE.md +139 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REPORT_FORMAT.md +51 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/android/topic/performance/app-optimization/enable-app-optimization.md +252 -0
- package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/android/training/testing/other-components/ui-automator.md +312 -0
- package/skills/mobile-android/references/build-and-performance.md +12 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/GUIDE.md +317 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/design/ui/ai-glasses/guides/interaction/inputs.md +67 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/button-samples-source.md +176 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/button-source.md +203 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/card-samples-source.md +296 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/card-source.md +515 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/deptheffect-source.md +224 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/deptheffectlevels-source.md +105 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/glimmersansflextypography-source.md +270 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/glimmertheme-source.md +182 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/icon-source.md +388 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/iconbutton-source.md +126 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/iconsizes-source.md +78 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/list-source.md +27 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/listitem-source.md +272 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/liststate-source.md +427 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/material-hct-source.md +217 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/projectedcontext-source.md +265 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stack-source.md +368 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stackitemscope-source.md +440 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stackstate-source.md +325 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/surface-source.md +1211 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/titlechip-samples-source.md +101 -0
- package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/titlechip-source.md +131 -0
- package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/GUIDE.md +707 -0
- package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/get-started/navigation.md +372 -0
- package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/playback/compose/browse.md +243 -0
- package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/playback/compose/index.md +153 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/GUIDE.md +341 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/android/training/wearables/compose/migrate-to-material3.md +677 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/AmbientModeSample.kt.md +123 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/AmbientModeSample.kt.md.txt +123 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/CurvedWorldSample.kt.md +430 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/CurvedWorldSample.kt.md.txt +430 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ExpandableSample.kt.md +99 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ExpandableSample.kt.md.txt +99 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/HierarchicalFocusSample.kt.md +141 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/HierarchicalFocusSample.kt.md.txt +141 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/PagerSamples.kt.md +56 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/PagerSamples.kt.md.txt +56 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/RotarySamples.kt.md +153 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/RotarySamples.kt.md.txt +153 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ScalingLazyColumnSample.kt.md +131 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ScalingLazyColumnSample.kt.md.txt +131 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToDismissBoxSample.kt.md +169 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToDismissBoxSample.kt.md.txt +169 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToRevealSample.kt.md +282 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToRevealSample.kt.md.txt +282 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/TransformingLazyColumnSample.kt.md +335 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/TransformingLazyColumnSample.kt.md.txt +335 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AlertDialogSample.kt.md +377 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AlertDialogSample.kt.md.txt +377 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AnimatedTextSample.kt.md +165 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AnimatedTextSample.kt.md.txt +165 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonGroupSample.kt.md +91 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonGroupSample.kt.md.txt +91 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonSample.kt.md +496 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonSample.kt.md.txt +496 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CardSample.kt.md +470 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CardSample.kt.md.txt +470 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CheckboxButtonSample.kt.md +67 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CheckboxButtonSample.kt.md.txt +67 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ConfirmationDialogSample.kt.md +162 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ConfirmationDialogSample.kt.md.txt +162 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CurvedTextSamples.kt.md +78 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CurvedTextSamples.kt.md.txt +78 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DatePickerSample.kt.md +131 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DatePickerSample.kt.md.txt +131 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DynamicColorSchemeSample.kt.md +74 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DynamicColorSchemeSample.kt.md.txt +74 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/EdgeButtonSample.kt.md +63 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/EdgeButtonSample.kt.md.txt +63 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/FadingExpandingLabelSample.kt.md +60 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/FadingExpandingLabelSample.kt.md.txt +60 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconButtonSample.kt.md +125 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconButtonSample.kt.md.txt +125 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconToggleButtonSample.kt.md +116 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconToggleButtonSample.kt.md.txt +116 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LevelIndicatorSample.kt.md +68 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LevelIndicatorSample.kt.md.txt +68 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LinearProgressIndicatorSample.kt.md +50 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LinearProgressIndicatorSample.kt.md.txt +50 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ListHeaderSample.kt.md +177 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ListHeaderSample.kt.md.txt +177 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OneHandedGestureSamples.kt.md +651 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OneHandedGestureSamples.kt.md.txt +651 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OpenOnPhoneDialogSample.kt.md +57 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OpenOnPhoneDialogSample.kt.md.txt +57 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PageIndicatorSample.kt.md +110 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PageIndicatorSample.kt.md.txt +110 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PagerScaffoldSample.kt.md +204 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PagerScaffoldSample.kt.md.txt +204 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerGroupSample.kt.md +139 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerGroupSample.kt.md.txt +139 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerSample.kt.md +111 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerSample.kt.md.txt +111 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PlaceholderSample.kt.md +184 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PlaceholderSample.kt.md.txt +184 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ProgressIndicatorSample.kt.md +263 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ProgressIndicatorSample.kt.md.txt +263 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/RadioButtonSample.kt.md +105 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/RadioButtonSample.kt.md.txt +105 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScaffoldSample.kt.md +146 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScaffoldSample.kt.md.txt +146 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollAwaySample.kt.md +97 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollAwaySample.kt.md.txt +97 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollIndicatorSample.kt.md +66 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollIndicatorSample.kt.md.txt +66 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SliderSample.kt.md +86 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SliderSample.kt.md.txt +86 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/StepperSample.kt.md +148 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/StepperSample.kt.md.txt +148 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SurfaceTransformationSample.kt.md +166 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SurfaceTransformationSample.kt.md.txt +166 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToDismissBoxSample.kt.md +172 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToDismissBoxSample.kt.md.txt +172 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToRevealSample.kt.md +367 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToRevealSample.kt.md.txt +367 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwitchButtonSample.kt.md +66 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwitchButtonSample.kt.md.txt +66 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextButtonSample.kt.md +115 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextButtonSample.kt.md.txt +115 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextToggleButtonSample.kt.md +71 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextToggleButtonSample.kt.md.txt +71 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimePickerSample.kt.md +151 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimePickerSample.kt.md.txt +151 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimeTextSample.kt.md +65 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimeTextSample.kt.md.txt +65 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformationSpecSample.kt.md +246 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformationSpecSample.kt.md.txt +246 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnNotificationsSample.kt.md +89 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnNotificationsSample.kt.md.txt +89 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnSample.kt.md +309 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnSample.kt.md.txt +309 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/navigation3/SwipeDismissableSceneStrategySample.kt.md +205 -0
- package/skills/mobile-android/references/devices/wear-compose-m3/references/navigation3/SwipeDismissableSceneStrategySample.kt.md.txt +205 -0
- package/skills/mobile-android/references/devices.md +11 -0
- package/skills/mobile-android/references/identity/restore-credentials/GUIDE.md +337 -0
- package/skills/mobile-android/references/identity/restore-credentials/references/android/guide/topics/manifest/application-element.md +832 -0
- package/skills/mobile-android/references/identity/restore-credentials/references/android/identity/passkeys/create-passkeys.md +327 -0
- package/skills/mobile-android/references/identity/restore-credentials/references/android/identity/passkeys/sign-in-with-passkeys.md +219 -0
- package/skills/mobile-android/references/identity/verified-email/GUIDE.md +405 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/credential-manager/index.md +67 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/credential-verifier.md +166 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/email-verification-implementation.md +313 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/email-verification.md +158 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/index.md +112 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/passkeys/create-passkeys.md +327 -0
- package/skills/mobile-android/references/identity/verified-email/references/android/identity/sign-in/credential-manager-webview.md +84 -0
- package/skills/mobile-android/references/identity.md +10 -0
- package/skills/mobile-android/references/media/camerax/GUIDE.md +106 -0
- package/skills/mobile-android/references/media/camerax/references/camera1-to-camerax.md +198 -0
- package/skills/mobile-android/references/media/camerax/references/camera2-to-camerax.md +193 -0
- package/skills/mobile-android/references/media/camerax/references/expert-blueprints.md +58 -0
- package/skills/mobile-android/references/media/camerax/references/foldables.md +83 -0
- package/skills/mobile-android/references/media/camerax/references/immutability.md +60 -0
- package/skills/mobile-android/references/media/camerax/references/low-light.md +124 -0
- package/skills/mobile-android/references/media/camerax/references/mlkit-spatial.md +75 -0
- package/skills/mobile-android/references/media/camerax/references/modern-apis.md +42 -0
- package/skills/mobile-android/references/media/camerax/references/testing.md +69 -0
- package/skills/mobile-android/references/media/camerax/references/thermals.md +85 -0
- package/skills/mobile-android/references/media/camerax/references/wear-os.md +76 -0
- package/skills/mobile-android/references/media/camerax/references/xr.md +54 -0
- package/skills/mobile-android/references/media/media3-cast-integration/GUIDE.md +213 -0
- package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/create-castplayer.md +390 -0
- package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/customize-castoptions.md +93 -0
- package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/index.md +21 -0
- package/skills/mobile-android/references/media.md +10 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/GUIDE.md +51 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/references/adb-interaction-testing.md +95 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/references/context.md +26 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/references/feature-discovery-analysis.md +71 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/references/implementation-configuration.md +282 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/references/kdoc-refinement-optimization.md +75 -0
- package/skills/mobile-android/references/on-device-ai/appfunctions/references/migrate-to-service-entry-point.md +226 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/GUIDE.md +105 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/get-started.md +272 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prefix-caching.md +146 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prompt-design.md +55 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prompt-optimization.md +74 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/structured-output.md +219 -0
- package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/system-instructions.md +71 -0
- package/skills/mobile-android/references/on-device-ai.md +10 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/GUIDE.md +112 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/faq.md +439 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/food.md +1149 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/healthandfitness.md +1055 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/listen.md +1050 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/otherverticals.md +1301 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/read.md +910 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/shopping.md +1224 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/social.md +719 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/travel.md +1413 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/continue-watching/index.md +19 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/entitlements.md +353 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/getting-started.md +202 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/recommendations.md +471 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/watch.md +1081 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/clusters.md +154 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/common.md +519 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/patterns.md +527 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/requests.md +260 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/food.md +509 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/listen.md +842 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/other.md +220 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/read.md +412 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/shopping.md +357 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/social.md +228 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/travel.md +923 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/tv.md +1226 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/watch.md +1137 -0
- package/skills/mobile-android/references/play/engage-sdk-integration/references/troubleshooting.md +39 -0
- package/skills/mobile-android/references/play/play-billing-library-version-upgrade/GUIDE.md +75 -0
- package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/android/google/play/billing/release-notes.md +1240 -0
- package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/migration-logic.md +78 -0
- package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/version-checklist.md +54 -0
- package/skills/mobile-android/references/play/play-policy-insights/GUIDE.md +130 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/common_mandates.md +100 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/compliance_report_template.md +59 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/critic.md +86 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/goal_data_safety.md +212 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/goal_permissions_and_apis.md +459 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/goal_user_account.md +106 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/policies.json +321 -0
- package/skills/mobile-android/references/play/play-policy-insights/resources/scanner_config.json +843 -0
- package/skills/mobile-android/references/play/play-policy-insights/scripts/generate_report.py +860 -0
- package/skills/mobile-android/references/play/play-policy-insights/scripts/orchestrator.py +1313 -0
- package/skills/mobile-android/references/play/play-policy-insights/scripts/play_store_scraper.py +410 -0
- package/skills/mobile-android/references/play/play-policy-insights/scripts/scanner.py +261 -0
- package/skills/mobile-android/references/play/play-policy-insights/scripts/template_engine.py +243 -0
- package/skills/mobile-android/references/play.md +11 -0
- package/skills/mobile-android/references/ui/adaptive/GUIDE.md +280 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +112 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +69 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +81 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +170 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +415 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +51 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +73 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +170 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +333 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/tooling/debug.md +114 -0
- package/skills/mobile-android/references/ui/adaptive/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
- package/skills/mobile-android/references/ui/edge-to-edge/GUIDE.md +409 -0
- package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/GUIDE.md +104 -0
- package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/analysis-of-the-project-and-layout.md +42 -0
- 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
- 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
- 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
- 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
- package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/identify-optimal-xml-candidate.md +31 -0
- package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/xml-layout-migration.md +86 -0
- package/skills/mobile-android/references/ui/navigation-3/GUIDE.md +86 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/index.md +51 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/migration-guide.md +670 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/animations.md +147 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basic.md +89 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +85 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +90 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +195 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/common-ui.md +200 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional-transitions.md +182 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional.md +230 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-custommatcher.md +176 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-staticuri.md +140 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-syntheticbackstack.md +184 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/dialog.md +107 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/lifecycle-owner.md +185 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +145 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +283 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +287 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +468 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +371 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-event.md +273 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-state.md +266 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +435 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +244 -0
- package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/type-safe-destinations.md +129 -0
- package/skills/mobile-android/references/ui/navigation-event/GUIDE.md +288 -0
- package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/dispatcher.md +134 -0
- package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/handle-back.md +217 -0
- package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/index.md +83 -0
- package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/setup.md +32 -0
- package/skills/mobile-android/references/ui/styles/GUIDE.md +209 -0
- package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/designsystems/custom.md +459 -0
- package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/fundamentals.md +421 -0
- package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/state-animations.md +461 -0
- package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +48 -0
- package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/theming.md +269 -0
- package/skills/mobile-android/references/ui.md +14 -0
- package/skills/mobile-architecture/SKILL.md +52 -0
- package/skills/mobile-architecture/references/android.md +54 -0
- package/skills/{flutter-app-architecture/SKILL.md → mobile-architecture/references/flutter/app-architecture.md} +1 -8
- package/skills/{bloc/SKILL.md → mobile-architecture/references/flutter/bloc.md} +1 -8
- package/skills/{flutter-change-notifier/SKILL.md → mobile-architecture/references/flutter/change-notifier.md} +1 -8
- package/skills/{architecture-feature-first/SKILL.md → mobile-architecture/references/flutter/feature-first.md} +1 -8
- package/skills/{flutter-login-usecase/SKILL.md → mobile-architecture/references/flutter/login-use-case.md} +0 -7
- package/skills/{flutter-managing-state/SKILL.md → mobile-architecture/references/flutter/managing-state.md} +2 -11
- package/skills/{provider/SKILL.md → mobile-architecture/references/flutter/provider.md} +1 -8
- package/skills/{flutter-apply-architecture-best-practices/SKILL.md → mobile-architecture/references/flutter/recommended-architecture.md} +2 -11
- package/skills/{riverpod/SKILL.md → mobile-architecture/references/flutter/riverpod.md} +1 -8
- package/skills/mobile-architecture/references/flutter.md +21 -0
- package/skills/mobile-architecture/references/ios.md +58 -0
- package/skills/mobile-architecture/references/react-native.md +61 -0
- package/skills/mobile-code-review/SKILL.md +70 -0
- package/skills/mobile-code-review/references/android.md +51 -0
- package/skills/{code-review/SKILL.md → mobile-code-review/references/flutter/pr-review.md} +1 -8
- package/skills/{flutter-project-audit/SKILL.md → mobile-code-review/references/flutter/project-audit.md} +0 -7
- package/skills/{dart-run-static-analysis/SKILL.md → mobile-code-review/references/flutter/static-analysis.md} +2 -11
- package/skills/{flutter-widget-review/SKILL.md → mobile-code-review/references/flutter/widget-review.md} +0 -7
- package/skills/mobile-code-review/references/flutter.md +18 -0
- package/skills/mobile-code-review/references/ios.md +49 -0
- package/skills/mobile-code-review/references/react-native.md +58 -0
- package/skills/mobile-debug/SKILL.md +50 -0
- package/skills/mobile-debug/references/android/gradle-build.md +63 -0
- package/skills/mobile-debug/references/android.md +26 -0
- package/skills/mobile-debug/references/flutter/build.md +58 -0
- package/skills/{flutter-errors/SKILL.md → mobile-debug/references/flutter/errors.md} +1 -8
- package/skills/{flutter-fix-layout-issues/SKILL.md → mobile-debug/references/flutter/layout-issues.md} +2 -11
- package/skills/{dart-resolve-package-conflicts/SKILL.md → mobile-debug/references/flutter/package-conflicts.md} +2 -11
- package/skills/{dart-fix-runtime-errors/SKILL.md → mobile-debug/references/flutter/runtime-errors.md} +2 -11
- package/skills/mobile-debug/references/flutter.md +23 -0
- package/skills/mobile-debug/references/ios/cocoapods.md +57 -0
- package/skills/mobile-debug/references/ios/xcode-build.md +58 -0
- package/skills/mobile-debug/references/ios.md +23 -0
- package/skills/mobile-debug/references/react-native.md +43 -0
- package/skills/{detect-mobile-stack → mobile-detect-stack}/SKILL.md +1 -1
- package/skills/mobile-firebase/SKILL.md +54 -0
- package/skills/mobile-firebase/references/android/ai-logic.md +31 -0
- package/skills/mobile-firebase/references/android/analytics.md +33 -0
- package/skills/mobile-firebase/references/android/app-check.md +36 -0
- package/skills/mobile-firebase/references/android/auth.md +44 -0
- package/skills/mobile-firebase/references/android/crashlytics.md +31 -0
- package/skills/mobile-firebase/references/android/firestore.md +44 -0
- package/skills/mobile-firebase/references/android/functions.md +33 -0
- package/skills/mobile-firebase/references/android/in-app-messaging.md +28 -0
- package/skills/mobile-firebase/references/android/messaging.md +41 -0
- package/skills/mobile-firebase/references/android/realtime-database.md +50 -0
- package/skills/mobile-firebase/references/android/remote-config.md +43 -0
- package/skills/mobile-firebase/references/android/sql-connect.md +31 -0
- package/skills/mobile-firebase/references/android/storage.md +39 -0
- package/skills/mobile-firebase/references/android.md +30 -0
- package/skills/{firebase-ai/SKILL.md → mobile-firebase/references/flutter/ai-logic.md} +2 -8
- package/skills/{firebase-analytics/SKILL.md → mobile-firebase/references/flutter/analytics.md} +2 -8
- package/skills/{firebase-app-check/SKILL.md → mobile-firebase/references/flutter/app-check.md} +2 -8
- package/skills/{firebase-auth/SKILL.md → mobile-firebase/references/flutter/auth.md} +2 -8
- package/skills/{firebase-crashlytics/SKILL.md → mobile-firebase/references/flutter/crashlytics.md} +2 -8
- package/skills/{firebase-cloud-firestore/SKILL.md → mobile-firebase/references/flutter/firestore.md} +2 -8
- package/skills/{firebase-cloud-functions/SKILL.md → mobile-firebase/references/flutter/functions.md} +2 -8
- package/skills/{firebase-in-app-messaging/SKILL.md → mobile-firebase/references/flutter/in-app-messaging.md} +2 -8
- package/skills/{firebase-messaging/SKILL.md → mobile-firebase/references/flutter/messaging.md} +2 -8
- package/skills/{firebase-database/SKILL.md → mobile-firebase/references/flutter/realtime-database.md} +2 -8
- package/skills/{firebase-remote-config/SKILL.md → mobile-firebase/references/flutter/remote-config.md} +2 -8
- package/skills/{flutterfire-configure/SKILL.md → mobile-firebase/references/flutter/setup-flutterfire.md} +1 -8
- package/skills/{firebase-data-connect/SKILL.md → mobile-firebase/references/flutter/sql-connect.md} +2 -8
- package/skills/{firebase-storage/SKILL.md → mobile-firebase/references/flutter/storage.md} +2 -8
- package/skills/mobile-firebase/references/flutter.md +36 -0
- package/skills/mobile-firebase/references/ios/ai-logic.md +30 -0
- package/skills/mobile-firebase/references/ios/analytics.md +33 -0
- package/skills/mobile-firebase/references/ios/app-check.md +36 -0
- package/skills/mobile-firebase/references/ios/auth.md +48 -0
- package/skills/mobile-firebase/references/ios/crashlytics.md +34 -0
- package/skills/mobile-firebase/references/ios/firestore.md +53 -0
- package/skills/mobile-firebase/references/ios/functions.md +35 -0
- package/skills/mobile-firebase/references/ios/in-app-messaging.md +26 -0
- package/skills/mobile-firebase/references/ios/messaging.md +45 -0
- package/skills/mobile-firebase/references/ios/realtime-database.md +49 -0
- package/skills/mobile-firebase/references/ios/remote-config.md +44 -0
- package/skills/mobile-firebase/references/ios/sql-connect.md +33 -0
- package/skills/mobile-firebase/references/ios/storage.md +36 -0
- package/skills/mobile-firebase/references/ios.md +28 -0
- package/skills/mobile-firebase/references/react-native/ai-logic.md +32 -0
- package/skills/mobile-firebase/references/react-native/analytics.md +43 -0
- package/skills/mobile-firebase/references/react-native/app-check.md +35 -0
- package/skills/mobile-firebase/references/react-native/auth.md +50 -0
- package/skills/mobile-firebase/references/react-native/crashlytics.md +36 -0
- package/skills/mobile-firebase/references/react-native/firestore.md +45 -0
- package/skills/mobile-firebase/references/react-native/functions.md +28 -0
- package/skills/mobile-firebase/references/react-native/in-app-messaging.md +27 -0
- package/skills/mobile-firebase/references/react-native/messaging.md +46 -0
- package/skills/mobile-firebase/references/react-native/realtime-database.md +46 -0
- package/skills/mobile-firebase/references/react-native/remote-config.md +32 -0
- package/skills/mobile-firebase/references/react-native/sql-connect.md +11 -0
- package/skills/mobile-firebase/references/react-native/storage.md +30 -0
- package/skills/mobile-firebase/references/react-native.md +29 -0
- package/skills/mobile-flutter/SKILL.md +30 -0
- package/skills/{flutter-improving-accessibility/SKILL.md → mobile-flutter/references/accessibility-i18n/accessibility.md} +2 -11
- package/skills/{flutter-setup-localization/SKILL.md → mobile-flutter/references/accessibility-i18n/localization.md} +2 -11
- package/skills/mobile-flutter/references/accessibility-i18n.md +8 -0
- package/skills/{dart-3-updates/SKILL.md → mobile-flutter/references/dart/dart-3.md} +1 -8
- package/skills/{effective-dart/SKILL.md → mobile-flutter/references/dart/effective-dart.md} +1 -8
- package/skills/{dart-use-pattern-matching/SKILL.md → mobile-flutter/references/dart/pattern-matching/GUIDE.md} +2 -18
- package/skills/mobile-flutter/references/dart.md +9 -0
- package/skills/{flutter-caching-data/SKILL.md → mobile-flutter/references/data/caching.md} +2 -11
- package/skills/{flutter-working-with-databases/SKILL.md → mobile-flutter/references/data/databases.md} +2 -11
- package/skills/{flutter-use-http-package/SKILL.md → mobile-flutter/references/data/http.md} +2 -11
- package/skills/{flutter-implement-json-serialization/SKILL.md → mobile-flutter/references/data/json-serialization.md} +2 -11
- package/skills/mobile-flutter/references/data.md +10 -0
- package/skills/{flutter-interoperating-with-native-apis/SKILL.md → mobile-flutter/references/native/native-apis.md} +2 -11
- package/skills/{flutter-embedding-native-views/SKILL.md → mobile-flutter/references/native/native-views.md} +2 -11
- package/skills/{flutter-building-plugins/SKILL.md → mobile-flutter/references/native/plugins.md} +2 -11
- package/skills/mobile-flutter/references/native.md +9 -0
- package/skills/{flutter-reducing-app-size/SKILL.md → mobile-flutter/references/performance/app-size.md} +2 -11
- package/skills/{flutter-handling-concurrency/SKILL.md → mobile-flutter/references/performance/concurrency.md} +2 -11
- package/skills/mobile-flutter/references/performance.md +8 -0
- package/skills/{flutter-setting-up-on-macos/SKILL.md → mobile-flutter/references/setup/macos.md} +2 -11
- package/skills/mobile-flutter/references/setup.md +7 -0
- package/skills/{flutter-animating-apps/SKILL.md → mobile-flutter/references/ui/animations.md} +2 -11
- package/skills/{flutter-building-forms/SKILL.md → mobile-flutter/references/ui/forms.md} +2 -11
- package/skills/{flutter-adding-home-screen-widgets/SKILL.md → mobile-flutter/references/ui/home-screen-widgets.md} +2 -11
- package/skills/{flutter-building-layouts/SKILL.md → mobile-flutter/references/ui/layouts.md} +2 -11
- package/skills/{flutter-build-responsive-layout/SKILL.md → mobile-flutter/references/ui/responsive-layout.md} +2 -11
- package/skills/{flutter-setup-declarative-routing/SKILL.md → mobile-flutter/references/ui/routing.md} +2 -11
- package/skills/{flutter-theming-apps/SKILL.md → mobile-flutter/references/ui/theming.md} +2 -11
- package/skills/{flutter-add-widget-preview/SKILL.md → mobile-flutter/references/ui/widget-previews.md} +2 -11
- package/skills/mobile-flutter/references/ui.md +14 -0
- package/skills/mobile-ios/SKILL.md +25 -0
- package/skills/mobile-ios/references/data-networking.md +70 -0
- package/skills/mobile-ios/references/performance-release.md +37 -0
- package/skills/mobile-ios/references/platform-features.md +52 -0
- package/skills/mobile-ios/references/ui-navigation.md +64 -0
- package/skills/mobile-rn/SKILL.md +26 -0
- package/skills/mobile-rn/references/data-networking.md +59 -0
- package/skills/mobile-rn/references/performance-release.md +46 -0
- package/skills/mobile-rn/references/platform-features.md +40 -0
- package/skills/mobile-rn/references/ui-navigation.md +62 -0
- package/skills/mobile-security/SKILL.md +82 -0
- package/skills/mobile-security/references/android/intent-security.md +523 -0
- package/skills/mobile-security/references/android.md +37 -0
- package/skills/{flutter-secure-token-store/SKILL.md → mobile-security/references/flutter/secure-token-store.md} +1 -8
- package/skills/mobile-security/references/flutter.md +30 -0
- package/skills/mobile-security/references/ios.md +27 -0
- package/skills/mobile-security/references/react-native.md +29 -0
- package/skills/mobile-test/SKILL.md +63 -0
- package/skills/mobile-test/references/android/setup/GUIDE.md +183 -0
- package/skills/mobile-test/references/android/setup/references/android/develop/ui/compose/testing/common-patterns.md +181 -0
- package/skills/mobile-test/references/android/setup/references/android/studio/preview/compose-screenshot-testing.md +255 -0
- package/skills/mobile-test/references/android/setup/references/android/training/dependency-injection/hilt-testing.md +447 -0
- package/skills/mobile-test/references/android.md +83 -0
- package/skills/{dart-collect-coverage/SKILL.md → mobile-test/references/flutter/coverage.md} +2 -11
- package/skills/{dart-generate-test-mocks/SKILL.md → mobile-test/references/flutter/generate-mocks.md} +2 -11
- package/skills/{flutter-add-integration-test/SKILL.md → mobile-test/references/flutter/integration-tests.md} +2 -11
- package/skills/{dart-migrate-to-checks-package/SKILL.md → mobile-test/references/flutter/migrate-to-checks.md} +2 -13
- package/skills/{mockito/SKILL.md → mobile-test/references/flutter/mockito.md} +1 -8
- package/skills/{mocktail/SKILL.md → mobile-test/references/flutter/mocktail.md} +1 -8
- package/skills/{patrol-e2e-testing/SKILL.md → mobile-test/references/flutter/patrol.md} +1 -8
- package/skills/{testing/SKILL.md → mobile-test/references/flutter/testing-guidelines.md} +1 -8
- package/skills/{dart-add-unit-test/SKILL.md → mobile-test/references/flutter/unit-tests.md} +2 -11
- package/skills/{flutter-add-widget-test/SKILL.md → mobile-test/references/flutter/widget-tests.md} +2 -11
- package/skills/mobile-test/references/flutter.md +44 -0
- package/skills/mobile-test/references/ios.md +79 -0
- package/skills/mobile-test/references/react-native.md +62 -0
- package/skills/mobile-security-audit/SKILL.md +0 -101
- /package/skills/{dart-use-pattern-matching → mobile-flutter/references/dart/pattern-matching}/examples/json_patterns.dart +0 -0
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
A mobile app is not a generic project. A code review that does not know about `BuildContext` after `await`, `android:exported`, `NSAllowsArbitraryLoads` or `Podfile.lock` lets through exactly the bugs that only show up on the device. **reis-mobile** detects your project's stack, picks the right specialist and loads only the skills that apply to Flutter, Android, iOS or React Native.
|
|
4
4
|
|
|
5
|
-
**AI agents for mobile
|
|
5
|
+
**AI agents and skills for mobile development — Flutter, Android, iOS and React Native.** A plugin for Claude Code and Codex with specialist agents and skills for code review, debugging, tests, architecture, security and Firebase.
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<a href="https://github.com/wrsilva/reis-mobile/actions/workflows/ci.yml"><img src="https://github.com/wrsilva/reis-mobile/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
9
|
-
<img src="https://img.shields.io/badge/Version-0.
|
|
9
|
+
<img src="https://img.shields.io/badge/Version-0.5.0-blue" alt="Version 0.5.0">
|
|
10
10
|
<img src="https://img.shields.io/badge/Claude_Code-plugin-blueviolet" alt="Claude Code plugin">
|
|
11
11
|
<img src="https://img.shields.io/badge/Node.js-22+-339933?logo=node.js&logoColor=white" alt="Node.js 22+">
|
|
12
12
|
<img src="https://img.shields.io/badge/Dependencies-0-brightgreen" alt="Zero dependencies">
|
|
@@ -23,7 +23,7 @@ A mobile app is not a generic project. A code review that does not know about `B
|
|
|
23
23
|
|
|
24
24
|
🔎 **Detects the stack on its own.** Flutter (app or plugin), React Native (including Expo), Kotlin Multiplatform, native Android and iOS, with languages and target platforms. A Flutter app with `android/` and `ios/` is still Flutter.
|
|
25
25
|
|
|
26
|
-
👥 **
|
|
26
|
+
👥 **16 agents and 11 mobile skills.** Architect, performance and test engineers for Flutter, native Android, native iOS and React Native, a staff engineer, a native plugin specialist, a code reviewer and a lead that coordinates them all, plus skills for Gradle, Xcode and CocoaPods builds, Jetpack Compose, BLoC, Riverpod, Firebase and testing on every platform, plugins and security.
|
|
27
27
|
|
|
28
28
|
🌐 **Answers in English or Portuguese.** `reis-mobile init eng` or `reis-mobile init pt` sets the language of reports, explanations and debates.
|
|
29
29
|
|
|
@@ -35,25 +35,27 @@ A mobile app is not a generic project. A code review that does not know about `B
|
|
|
35
35
|
|
|
36
36
|
🔒 **Secrets never reach the model.** The diff sent for review goes through a layer that masks API keys, tokens, JWTs, private keys and keystore passwords.
|
|
37
37
|
|
|
38
|
-
🪶 **
|
|
38
|
+
🪶 **Two commands to install.** `npm install -g reis-mobile` and `reis-mobile init eng` set it up in Claude Code and Codex, with zero npm dependencies, no hooks and no external provider.
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
|
|
42
42
|
## What's new
|
|
43
43
|
|
|
44
|
-
> 🆕 **v0.
|
|
44
|
+
> 🆕 **v0.4.0: every mobile stack.** Native Android, native iOS and React Native get their own architect, performance and test specialists, and `/reis-mobile:debug` finds the cause of a failing build with the toolchain versions in hand.
|
|
45
45
|
>
|
|
46
46
|
> ```bash
|
|
47
|
-
> /reis-mobile:
|
|
48
|
-
> /reis-mobile:
|
|
47
|
+
> /reis-mobile:debug Execution failed for task ':app:compileDebugKotlin'
|
|
48
|
+
> /reis-mobile:debug pod install could not find compatible versions for Firebase
|
|
49
49
|
> ```
|
|
50
50
|
>
|
|
51
|
-
>
|
|
51
|
+
> Tests and Firebase are one skill each — `mobile-test` and `mobile-firebase` — with a guide per platform, so a request loads only what your stack needs.
|
|
52
52
|
|
|
53
53
|
| Version | Highlights |
|
|
54
54
|
|--------|-----------|
|
|
55
|
-
| **v0.
|
|
56
|
-
| **v0.
|
|
55
|
+
| **v0.5.0** (current) | 11 skills instead of 60: topic skills with a guide per platform (`mobile-architecture`, `mobile-code-review`, `mobile-debug`, `mobile-test`, `mobile-security`, `mobile-firebase`) and platform skills (`mobile-flutter`, `mobile-android`, and the new `mobile-ios` and `mobile-rn`). Half the fixed context cost. |
|
|
56
|
+
| **v0.4.0** | Native Android, iOS and React Native: architect, performance and test agents for each; `/reis-mobile:debug` for Gradle, Xcode, CocoaPods and Flutter failures; `mobile-test` and `mobile-firebase` with a guide per platform; the Android team's skills; `.reis-mobile/config.yaml` for monorepos. Skills now use stack prefixes. |
|
|
57
|
+
| **v0.3.6** | `reis-mobile init eng` installs the plugin in Claude Code and Codex at once, skipping whichever is not installed; `init --uninstall` removes it from both. |
|
|
58
|
+
| **v0.3.5** | Installs through npm and the Claude Code and Codex plugins. |
|
|
57
59
|
| **v0.3.4** | Back to the `reis-mobile` name: `reis-mobile` CLI and `/reis-mobile:*` commands, undoing the `mobile` renames of v0.3.2 and v0.3.3. |
|
|
58
60
|
| **v0.3.1** | Answers in English or Portuguese: `reis-mobile init pt\|en` and `reis-mobile lang` save the language for reports, doctor explanations and debates. Agents, skills, commands and docs are now written in English. |
|
|
59
61
|
| **v0.3.0** | `/reis-mobile:debate` command: three specialists with conflicting priorities debate over two rounds and `lead-mobile` decides. Participants vary in role and model; `--external` adds Codex and Gemini. Brings forward the `council` planned for v0.8.0. |
|
|
@@ -65,24 +67,16 @@ A mobile app is not a generic project. A code review that does not know about `B
|
|
|
65
67
|
|
|
66
68
|
## Installation
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
You need **Node.js 22+** and **[Claude Code](https://claude.com/claude-code)**, the **Codex CLI**, or both.
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|---|---|
|
|
72
|
-
| **Claude Code plugin** | Everything: 7 agents, 67 skills and the `/reis-mobile:*` commands |
|
|
73
|
-
| **Codex plugin** | The skills |
|
|
74
|
-
| **npm** | The `reis-mobile` CLI: `init` installs both plugins, plus `doctor`, `route`, `review` and `lang` |
|
|
75
|
-
|
|
76
|
-
Requirements: **Node.js 22+**, and **[Claude Code](https://claude.com/claude-code)**, the **Codex CLI**, or both.
|
|
77
|
-
|
|
78
|
-
### Quick install (Claude Code and Codex)
|
|
72
|
+
### Install
|
|
79
73
|
|
|
80
74
|
```bash
|
|
81
75
|
npm install -g reis-mobile
|
|
82
76
|
reis-mobile init eng
|
|
83
77
|
```
|
|
84
78
|
|
|
85
|
-
`
|
|
79
|
+
`init` installs the plugin in Claude Code and Codex, whichever you have, and sets the answer language (`eng` or `pt`):
|
|
86
80
|
|
|
87
81
|
```text
|
|
88
82
|
✓ Claude Code installed
|
|
@@ -90,21 +84,35 @@ reis-mobile init eng
|
|
|
90
84
|
✓ Language en (~/.config/reis-mobile/config.json)
|
|
91
85
|
```
|
|
92
86
|
|
|
93
|
-
|
|
87
|
+
Restart Claude Code and Codex, open your app folder and try it:
|
|
94
88
|
|
|
95
|
-
|
|
89
|
+
| Tool | Try |
|
|
90
|
+
|---|---|
|
|
91
|
+
| Claude Code | `/reis-mobile:doctor`, then `/reis-mobile:review` |
|
|
92
|
+
| Codex | Type `$` to search the skills, or use `/skills` |
|
|
96
93
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
### Update
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm update -g reis-mobile
|
|
98
|
+
reis-mobile init eng
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Then restart Claude Code and Codex. See what changed in the [CHANGELOG](CHANGELOG.md).
|
|
102
|
+
|
|
103
|
+
### Uninstall
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
reis-mobile init --uninstall
|
|
107
|
+
npm uninstall -g reis-mobile
|
|
101
108
|
```
|
|
102
109
|
|
|
103
|
-
|
|
110
|
+
The first command removes the plugin from Claude Code and Codex and deletes the saved language; the second removes the CLI. Keep the `-g`: without it, npm looks for the package in the current folder and removes nothing.
|
|
104
111
|
|
|
105
|
-
|
|
112
|
+
<details>
|
|
113
|
+
<summary>Install without npm</summary>
|
|
106
114
|
|
|
107
|
-
|
|
115
|
+
Add the plugin straight from GitHub. The `marketplace add` line only needs to run once per machine.
|
|
108
116
|
|
|
109
117
|
```bash
|
|
110
118
|
# Claude Code
|
|
@@ -116,60 +124,62 @@ codex plugin marketplace add https://github.com/wrsilva/reis-mobile.git
|
|
|
116
124
|
codex plugin add reis-mobile@reis-mobile
|
|
117
125
|
```
|
|
118
126
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
### Using the CLI from Codex
|
|
127
|
+
To update, run `claude plugin marketplace update reis-mobile` and `claude plugin update reis-mobile@reis-mobile` in Claude Code, or `codex plugin marketplace upgrade reis-mobile` and `codex plugin add reis-mobile@reis-mobile` in Codex.
|
|
122
128
|
|
|
123
|
-
|
|
129
|
+
To uninstall:
|
|
124
130
|
|
|
125
131
|
```bash
|
|
126
|
-
|
|
127
|
-
reis-mobile
|
|
128
|
-
reis-mobile
|
|
129
|
-
```
|
|
132
|
+
# Claude Code
|
|
133
|
+
claude plugin uninstall reis-mobile@reis-mobile
|
|
134
|
+
claude plugin marketplace remove reis-mobile
|
|
130
135
|
|
|
131
|
-
|
|
136
|
+
# Codex
|
|
137
|
+
codex plugin remove reis-mobile@reis-mobile
|
|
138
|
+
codex plugin marketplace remove reis-mobile
|
|
139
|
+
```
|
|
140
|
+
</details>
|
|
132
141
|
|
|
133
|
-
|
|
142
|
+
<details>
|
|
143
|
+
<summary>Language</summary>
|
|
134
144
|
|
|
135
|
-
Agents, skills and commands are written in English
|
|
145
|
+
Agents, skills and commands are written in English. The language you choose is the one reis-mobile **answers** in: `/reis-mobile:review` reports, `/reis-mobile:doctor` explanations, and debate rounds and syntheses.
|
|
136
146
|
|
|
137
147
|
```bash
|
|
138
|
-
reis-mobile
|
|
139
|
-
reis-mobile
|
|
140
|
-
reis-mobile lang eng # change the language later, without reinstalling
|
|
148
|
+
reis-mobile lang pt # switch to Brazilian Portuguese without reinstalling
|
|
149
|
+
reis-mobile lang eng # switch to English
|
|
141
150
|
reis-mobile lang # show the current language
|
|
142
151
|
```
|
|
143
152
|
|
|
144
|
-
The choice is saved to `~/.config/reis-mobile/config.json` (`%APPDATA%\reis-mobile\config.json` on Windows)
|
|
153
|
+
The choice is saved to `~/.config/reis-mobile/config.json` (`%APPDATA%\reis-mobile\config.json` on Windows) and survives plugin updates. `--lang` on a single run and the `REIS_MOBILE_LANG` environment variable override it. With nothing set, each command answers in the language of your request. Agents that Claude Code triggers on its own, outside a `/reis-mobile:*` command, follow the language of the conversation.
|
|
154
|
+
</details>
|
|
145
155
|
|
|
146
156
|
<details>
|
|
147
|
-
<summary>
|
|
157
|
+
<summary>Using the CLI from Codex</summary>
|
|
158
|
+
|
|
159
|
+
The Codex plugin gives Codex the skills; the agents and the `/reis-mobile:*` commands are Claude Code formats and have not been validated in Codex. For routing and review context, run the CLI in the app folder:
|
|
148
160
|
|
|
149
161
|
```bash
|
|
150
|
-
reis-mobile
|
|
151
|
-
|
|
162
|
+
reis-mobile doctor
|
|
163
|
+
reis-mobile route "review architecture" --json
|
|
164
|
+
reis-mobile review --json
|
|
152
165
|
```
|
|
166
|
+
|
|
167
|
+
You can also ask Codex: *"Run `reis-mobile review --json`, read the instructions in the returned files and review the changes using that context."* The CLI selects the instructions and gathers the context; Codex does the analysis.
|
|
153
168
|
</details>
|
|
154
169
|
|
|
155
170
|
<details>
|
|
156
|
-
<summary>
|
|
157
|
-
|
|
158
|
-
Those channels were discontinued after v0.3.4. Remove them and install from npm:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
# Homebrew
|
|
162
|
-
brew uninstall reis-mobile && brew untap wrsilva/tap
|
|
171
|
+
<summary>Troubleshooting</summary>
|
|
163
172
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
173
|
+
| Symptom | Solution |
|
|
174
|
+
|---------|---------|
|
|
175
|
+
| Codex says `plugin reis-mobile was not found in marketplace reis-mobile` | The marketplace is not registered or is outdated. Run `reis-mobile init eng`, or `codex plugin marketplace add https://github.com/wrsilva/reis-mobile.git` followed by `codex plugin add reis-mobile@reis-mobile` |
|
|
176
|
+
| `claude plugin update` says it is already on the latest version, but the release is newer | Run `claude plugin marketplace update reis-mobile` before `update` |
|
|
177
|
+
| New agents or skills do not show up | Restart Claude Code or Codex: plugins only reload in a new session |
|
|
178
|
+
| `reis-mobile --version` still shows the old version after updating | Another `reis-mobile` comes first on the `PATH`; find it with `which -a reis-mobile` (`where.exe reis-mobile` on Windows) and remove it |
|
|
179
|
+
| `npm uninstall reis-mobile` says `up to date` and the command is still there | Add `-g`: `npm uninstall -g reis-mobile` |
|
|
180
|
+
| `/reis-mobile:*` commands missing after upgrading from v0.3.2 or v0.3.3 | Those versions named the plugin `mobile`. Run `reis-mobile init eng`: it installs `reis-mobile@reis-mobile` and removes `mobile@reis-mobile` |
|
|
181
|
+
| Plugin broken after updating | Reinstall: `reis-mobile init --uninstall`, then `reis-mobile init eng` |
|
|
167
182
|
|
|
168
|
-
```powershell
|
|
169
|
-
# PowerShell installer (Windows)
|
|
170
|
-
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\reis-mobile"
|
|
171
|
-
Remove-Item -Force "$HOME\.local\bin\reis-mobile.cmd"
|
|
172
|
-
```
|
|
173
183
|
</details>
|
|
174
184
|
|
|
175
185
|
<details>
|
|
@@ -183,53 +193,7 @@ reis-mobile init --local # plugin pointing at the clone
|
|
|
183
193
|
npm run check # validates and runs the tests
|
|
184
194
|
```
|
|
185
195
|
|
|
186
|
-
After editing agents, skills or commands, restart
|
|
187
|
-
</details>
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Updating
|
|
192
|
-
|
|
193
|
-
To see what changed, check the [CHANGELOG](CHANGELOG.md) or the [releases](https://github.com/wrsilva/reis-mobile/releases).
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
npm update -g reis-mobile
|
|
197
|
-
reis-mobile init eng # refreshes the marketplace and the plugin in Claude Code and Codex
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
Without npm, update each tool by hand:
|
|
201
|
-
|
|
202
|
-
```bash
|
|
203
|
-
# Claude Code
|
|
204
|
-
claude plugin marketplace update reis-mobile
|
|
205
|
-
claude plugin update reis-mobile@reis-mobile
|
|
206
|
-
|
|
207
|
-
# Codex
|
|
208
|
-
codex plugin marketplace upgrade reis-mobile
|
|
209
|
-
codex plugin add reis-mobile@reis-mobile
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Then **restart Claude Code or Codex**. The plugin update only happens when a new version is out; if you are already on the latest, Claude Code answers `already at the latest version`.
|
|
213
|
-
|
|
214
|
-
Check that the CLI and the plugin match:
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
reis-mobile --version
|
|
218
|
-
claude plugin list | grep -A1 reis-mobile
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
> **Installed v0.3.2 or v0.3.3?** Those versions renamed the plugin and the CLI to `mobile`; v0.3.4 goes back to `reis-mobile`. Run `reis-mobile init eng`: in Claude Code and Codex it installs `reis-mobile@reis-mobile` and removes `mobile@reis-mobile`.
|
|
222
|
-
|
|
223
|
-
<details>
|
|
224
|
-
<summary>Update troubleshooting</summary>
|
|
225
|
-
|
|
226
|
-
| Symptom | Solution |
|
|
227
|
-
|---------|---------|
|
|
228
|
-
| `claude plugin update` says it is already on the latest version, but the release is newer | Run `claude plugin marketplace update reis-mobile` before `update` |
|
|
229
|
-
| New agents or skills do not show up | Restart Claude Code: plugins only reload in a new session |
|
|
230
|
-
| `reis-mobile --version` is still old after `npm update -g` | Another `reis-mobile` comes first on the `PATH`, often from Homebrew or the old installers; check with `which -a reis-mobile` (`where.exe reis-mobile` on Windows) |
|
|
231
|
-
| Plugin broken after updating | Reinstall: `reis-mobile init --uninstall` and then `reis-mobile init eng` |
|
|
232
|
-
|
|
196
|
+
After editing agents, skills or commands, restart Claude Code or Codex.
|
|
233
197
|
</details>
|
|
234
198
|
|
|
235
199
|
---
|
|
@@ -244,10 +208,17 @@ claude plugin list | grep -A1 reis-mobile
|
|
|
244
208
|
/reis-mobile:review # Reviews uncommitted changes (or the whole project, if there are none)
|
|
245
209
|
/reis-mobile:review --base main # Reviews the current branch against main, pull request style
|
|
246
210
|
/reis-mobile:review --base main focus on security # Free-form focus, in English or Portuguese
|
|
211
|
+
/reis-mobile:debug pod install fails on CI # Finds the cause of a build or runtime failure and proposes the fix
|
|
247
212
|
/reis-mobile:debate Riverpod or BLoC in this app? # Debate between the specialists, with a decision by lead-mobile
|
|
248
213
|
/reis-mobile:debate --rounds 3 --external ... # More rounds; --external adds Codex and Gemini, if installed
|
|
249
214
|
```
|
|
250
215
|
|
|
216
|
+
### Debug
|
|
217
|
+
|
|
218
|
+
`/reis-mobile:debug` takes the error, the failing command or a description of the problem. It routes to the debug agent and to the skills for the stack and the build area it recognizes (`gradle`, `xcode`, `cocoapods`, `signing`, `pub`...), adds the doctor report with the installed toolchain versions, and answers with the cause, the evidence, the minimal fix and how to verify it.
|
|
219
|
+
|
|
220
|
+
It proposes; it does not change your project on its own. Commands that alter files or caches — `flutter clean`, `pod install`, deleting `DerivedData` or Gradle caches, dependency upgrades — only run after you ask it to apply the fix.
|
|
221
|
+
|
|
251
222
|
### Debate
|
|
252
223
|
|
|
253
224
|
`/reis-mobile:debate` puts three specialists with conflicting priorities to defend positions on the same question. Round 1 is blind, so the first to answer does not anchor the others; in round 2 each one rebuts specific points from the others; at the end, `lead-mobile` decides and delivers the action plan. The rounds are stored in `.reis-mobile/debates/`.
|
|
@@ -265,13 +236,13 @@ $ reis-mobile route "Execution failed for task ':app:compileDebugKotlin'"
|
|
|
265
236
|
Intent debug (confidence 0.5) · area gradle
|
|
266
237
|
Stack flutter · focus android
|
|
267
238
|
Agent mobile-staff-engineer
|
|
268
|
-
Skills
|
|
239
|
+
Skills mobile-debug
|
|
269
240
|
|
|
270
241
|
$ reis-mobile route "write tests for the login cubit"
|
|
271
242
|
Intent test (confidence 1)
|
|
272
243
|
Stack flutter
|
|
273
244
|
Agent flutter-test-engineer
|
|
274
|
-
Skills
|
|
245
|
+
Skills mobile-test
|
|
275
246
|
```
|
|
276
247
|
|
|
277
248
|
The router never invents a specialist: if no agent serves the intent, it warns you. You do not need to call agents by name, because Claude Code triggers them by their description when the request fits. To force one of them, ask: *"use reis-mobile:flutter-architect to review the architecture"*.
|
|
@@ -286,17 +257,16 @@ The router never invents a specialist: if no agent serves the intent, it warns y
|
|
|
286
257
|
| Review a PR or my changes | `/reis-mobile:review` | ✅ |
|
|
287
258
|
| Audit an entire Flutter project | `/reis-mobile:review` with no pending changes | ✅ |
|
|
288
259
|
| Find out a project's stack | `reis-mobile detect` | ✅ |
|
|
289
|
-
| Review the architecture of
|
|
290
|
-
| Find the cause of jank, rebuilds or leaks | agent `flutter-performance-engineer` | ✅ |
|
|
291
|
-
| Write or audit
|
|
292
|
-
| Debug a Gradle, Xcode or
|
|
260
|
+
| Review the architecture of an app | agent `flutter-architect`, `android-architect`, `ios-architect` or `rn-architect` | ✅ |
|
|
261
|
+
| Find the cause of jank, rebuilds, hangs or leaks | agent `flutter-`, `android-`, `ios-` or `rn-performance-engineer` | ✅ |
|
|
262
|
+
| Write or audit tests | agent `flutter-`, `android-`, `ios-` or `rn-test-engineer` | ✅ |
|
|
263
|
+
| Debug a Gradle, Xcode, CocoaPods or Flutter build | `/reis-mobile:debug` | ✅ |
|
|
293
264
|
| Build a plugin or debug MethodChannel/EventChannel | agent `plugin-native-expert` | ✅ |
|
|
294
265
|
| Full audit with several specialists | agent `lead-mobile` | ✅ |
|
|
295
266
|
| Decide between two architectures with a real trade-off | `/reis-mobile:debate` | ✅ |
|
|
296
|
-
| Dedicated
|
|
297
|
-
|
|
|
298
|
-
|
|
|
299
|
-
| Consolidated decision by consensus between agents | `/reis-mobile:council` | 🔜 v0.8 |
|
|
267
|
+
| Dedicated test command (including XCTest and Espresso) | `/reis-mobile:test` | 🔜 v0.6 |
|
|
268
|
+
| Check whether the app is ready for the store | `/reis-mobile:release` | 🔜 v0.7 |
|
|
269
|
+
| Consolidated decision by consensus between agents | `/reis-mobile:council` | 🔜 v0.9 |
|
|
300
270
|
|
|
301
271
|
<details>
|
|
302
272
|
<summary><strong>How is it different from plain Claude Code?</strong></summary>
|
|
@@ -307,8 +277,8 @@ The router never invents a specialist: if no agent serves the intent, it warns y
|
|
|
307
277
|
| **Project context** | You explain the stack | Deterministic detection of stack, platform and variant |
|
|
308
278
|
| **Review** | Generic | Mobile checklists: lifecycle, `BuildContext`, MASVS, manifest, ATS |
|
|
309
279
|
| **Secrets in the diff** | Sent as they are | Masked before reaching the model |
|
|
310
|
-
| **Specialists** | None |
|
|
311
|
-
| **Context cost** | Zero | ~
|
|
280
|
+
| **Specialists** | None | 16 agents and 11 mobile skills |
|
|
281
|
+
| **Context cost** | Zero | ~3,900 fixed tokens (agent and skill descriptions), no hooks |
|
|
312
282
|
| **Best for** | General tasks | Teams and developers working on mobile apps |
|
|
313
283
|
|
|
314
284
|
**In short:** Claude Code already knows how to code. reis-mobile makes it look at what matters in a mobile app.
|
|
@@ -325,7 +295,7 @@ The router never invents a specialist: if no agent serves the intent, it warns y
|
|
|
325
295
|
├─ detect stack ──────── pubspec.yaml → flutter (android, ios)
|
|
326
296
|
├─ detect intent ─────── review
|
|
327
297
|
├─ select agent ──────── mobile-code-reviewer
|
|
328
|
-
├─ select skills ─────── code-review ·
|
|
298
|
+
├─ select skills ─────── mobile-code-review · mobile-flutter · mobile-security
|
|
329
299
|
├─ collect context ───── git diff (lock files out, secrets masked)
|
|
330
300
|
└─ review report ─────── Summary · Critical · Bugs · Architecture · Security · Performance · Maintainability
|
|
331
301
|
```
|
|
@@ -350,180 +320,42 @@ The Node.js core decides **what** to load. The model decides **how** to review,
|
|
|
350
320
|
| `flutter-architect` | Flutter | architecture | Layers, feature-first, coupling, misplaced logic, refactoring plan |
|
|
351
321
|
| `flutter-performance-engineer` | Flutter | performance | Rebuilds, jank, lists, leaks, paint, startup, with a score and top 3 fixes |
|
|
352
322
|
| `flutter-test-engineer` | Flutter | test | Unit, BLoC/Cubit, widget and integration, coverage audit and fragile tests |
|
|
323
|
+
| `android-architect` | Android | architecture | UI, domain and data layers, Gradle modules, ViewModel and DI boundaries |
|
|
324
|
+
| `android-performance-engineer` | Android | performance | Compose recomposition, lists, ANRs, startup, leaks, app size |
|
|
325
|
+
| `android-test-engineer` | Android | test | ViewModel and coroutine tests, Compose and Espresso UI tests, flaky tests |
|
|
326
|
+
| `ios-architect` | iOS | architecture | SwiftUI and UIKit structure, packages, navigation, concurrency boundaries |
|
|
327
|
+
| `ios-performance-engineer` | iOS | performance | Hangs, SwiftUI updates, lists, launch time, retain cycles, memory |
|
|
328
|
+
| `ios-test-engineer` | iOS | test | Swift Testing and XCTest unit tests, async code, XCUITest flows |
|
|
329
|
+
| `rn-architect` | React Native | architecture | Feature structure, server vs client state, navigation, native modules |
|
|
330
|
+
| `rn-performance-engineer` | React Native | performance | Re-renders, lists, JavaScript thread, animations, startup, bundle size |
|
|
331
|
+
| `rn-test-engineer` | React Native | test | Jest, React Native Testing Library, native module mocks, Detox or Maestro |
|
|
353
332
|
| `mobile-staff-engineer` | all | debug, architecture, performance, test, security, release, migration, dependency, build, deployment, accessibility | Senior Flutter/Android/iOS specialist for whatever no specific agent covers |
|
|
354
333
|
| `plugin-native-expert` | Flutter | on demand | MethodChannel, EventChannel, Pigeon and Kotlin/Swift bridges, threading and lifecycle |
|
|
355
334
|
| `lead-mobile` | all | on demand | Coordinates the other agents and consolidates a single action plan |
|
|
356
335
|
|
|
357
|
-
When more than one agent serves the intent, the stack-specific one wins. In a Flutter app, `performance` goes to `flutter-performance-engineer`; in a native Android app,
|
|
336
|
+
When more than one agent serves the intent, the stack-specific one wins. In a Flutter app, `performance` goes to `flutter-performance-engineer`; in a native Android app, to `android-performance-engineer`. Intents without a stack specialist, such as `debug` or `release`, go to `mobile-staff-engineer`.
|
|
358
337
|
|
|
359
338
|
### Skills
|
|
360
339
|
|
|
361
|
-
**
|
|
362
|
-
|
|
363
|
-
<details>
|
|
364
|
-
<summary><strong>Review and quality</strong> (7)</summary>
|
|
365
|
-
|
|
366
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
367
|
-
|---|---|---|---|---|
|
|
368
|
-
| `code-review` | Performs thorough code reviews for Flutter/Dart pull requests and merge requests. | review | Flutter | evanca/flutter-ai-rules |
|
|
369
|
-
| `effective-dart` | Applies Effective Dart guidelines in Flutter/Dart code. | review | Flutter | evanca/flutter-ai-rules |
|
|
370
|
-
| `dart-run-static-analysis` | Execute `dart analyze` to identify warnings and errors, and use `dart fix --apply` to automatically resolve… | review | Flutter | dart-lang/skills |
|
|
371
|
-
| `flutter-project-audit` | Audits the health of a Flutter project as a whole — pubspec constraints and lock file, analysis_options and lints,… | review, architecture, dependency | Flutter | reis-mobile |
|
|
372
|
-
| `flutter-widget-review` | Reviews Flutter widget code for lifecycle bugs, BuildContext misuse across async gaps, missing dispose, side effects… | review, performance | Flutter | reis-mobile |
|
|
373
|
-
| `dart-3-updates` | Applies Dart 3 language features in Flutter/Dart code. | migration | Flutter | evanca/flutter-ai-rules |
|
|
374
|
-
| `dart-use-pattern-matching` | Applies Dart 3 pattern matching, switch expressions, and destructuring idiomatically to validate data schemas,… | — | Flutter | dart-lang/skills |
|
|
375
|
-
|
|
376
|
-
</details>
|
|
377
|
-
|
|
378
|
-
<details>
|
|
379
|
-
<summary><strong>Architecture and state</strong> (9)</summary>
|
|
380
|
-
|
|
381
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
382
|
-
|---|---|---|---|---|
|
|
383
|
-
| `architecture-feature-first` | Structures Flutter apps using layered architecture (UI / Logic / Data) with feature-first file organization. | architecture | Flutter | evanca/flutter-ai-rules |
|
|
384
|
-
| `flutter-app-architecture` | Provides best practices for Flutter app architecture, including layered architecture, data flow, state management… | architecture | Flutter | evanca/flutter-ai-rules |
|
|
385
|
-
| `flutter-apply-architecture-best-practices` | Architects a Flutter application using the recommended layered approach (UI, Logic, Data). | architecture | Flutter | flutter/skills |
|
|
386
|
-
| `flutter-managing-state` | Manages application and ephemeral state in a Flutter app. | architecture | Flutter | flutter/skills |
|
|
387
|
-
| `bloc` | Implements Flutter state management using the bloc library (Bloc and Cubit). | — | Flutter | evanca/flutter-ai-rules |
|
|
388
|
-
| `riverpod` | Uses Riverpod for state management in Flutter/Dart. | — | Flutter | evanca/flutter-ai-rules |
|
|
389
|
-
| `provider` | Uses the Provider package for dependency injection and state management in Flutter. | — | Flutter | evanca/flutter-ai-rules |
|
|
390
|
-
| `flutter-change-notifier` | Implements state management with ChangeNotifier and Provider in Flutter. | — | Flutter | evanca/flutter-ai-rules |
|
|
391
|
-
| `flutter-login-usecase` | Implements a Flutter login use case that authenticates through an injected repository and persists the access token… | — | Flutter | reis-mobile |
|
|
392
|
-
|
|
393
|
-
</details>
|
|
394
|
-
|
|
395
|
-
<details>
|
|
396
|
-
<summary><strong>Testing</strong> (10)</summary>
|
|
397
|
-
|
|
398
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
399
|
-
|---|---|---|---|---|
|
|
400
|
-
| `testing` | Writes and reviews Flutter/Dart tests. | test | Flutter | evanca/flutter-ai-rules |
|
|
401
|
-
| `dart-add-unit-test` | Write and organize unit tests for functions, methods, and classes using `package:test`. | test | Flutter | dart-lang/skills |
|
|
402
|
-
| `flutter-add-widget-test` | Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping,… | test | Flutter | flutter/skills |
|
|
403
|
-
| `flutter-add-integration-test` | Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. | test | Flutter | flutter/skills |
|
|
404
|
-
| `patrol-e2e-testing` | Generates and maintains end-to-end tests for Flutter apps using Patrol. | test | Flutter | evanca/flutter-ai-rules |
|
|
405
|
-
| `mocktail` | Uses the Mocktail package for mocking in Flutter/Dart tests. | test | Flutter | evanca/flutter-ai-rules |
|
|
406
|
-
| `mockito` | Uses the Mockito package for mocking in Flutter/Dart tests. | test | Flutter | evanca/flutter-ai-rules |
|
|
407
|
-
| `dart-generate-test-mocks` | Define and generate mock objects for external dependencies using `package:mockito` and `build_runner`. | test | Flutter | dart-lang/skills |
|
|
408
|
-
| `dart-collect-coverage` | Collect coverage using the coverage packge and create an LCOV report | test | Flutter | dart-lang/skills |
|
|
409
|
-
| `dart-migrate-to-checks-package` | Replace the usage of `expect` and similar functions from `package:matcher` to `package:checks` equivalents. | migration | Flutter | dart-lang/skills |
|
|
410
|
-
|
|
411
|
-
</details>
|
|
412
|
-
|
|
413
|
-
<details>
|
|
414
|
-
<summary><strong>Debug</strong> (4)</summary>
|
|
415
|
-
|
|
416
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
417
|
-
|---|---|---|---|---|
|
|
418
|
-
| `flutter-errors` | Diagnoses and fixes common Flutter errors. | debug | Flutter | evanca/flutter-ai-rules |
|
|
419
|
-
| `flutter-fix-layout-issues` | Fixes Flutter layout errors (overflows, unbounded constraints) using Dart and Flutter MCP tools. | debug | Flutter | flutter/skills |
|
|
420
|
-
| `dart-fix-runtime-errors` | Uses get_runtime_errors and lsp to fetch an active stack trace, locate the failing line, apply a fix, and verify… | debug | Flutter | dart-lang/skills |
|
|
421
|
-
| `dart-resolve-package-conflicts` | Workflow for fixing package version conflicts. | debug, dependency | Flutter | dart-lang/skills |
|
|
422
|
-
|
|
423
|
-
</details>
|
|
424
|
-
|
|
425
|
-
<details>
|
|
426
|
-
<summary><strong>Performance</strong> (3)</summary>
|
|
427
|
-
|
|
428
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
429
|
-
|---|---|---|---|---|
|
|
430
|
-
| `flutter-reducing-app-size` | Measures and optimizes the size of Flutter application bundles for deployment. | performance | Flutter | flutter/skills |
|
|
431
|
-
| `flutter-handling-concurrency` | Executes long-running tasks in background isolates to keep the UI responsive. | performance | Flutter | flutter/skills |
|
|
432
|
-
| `flutter-caching-data` | Implements caching strategies for Flutter apps to improve performance and offline support. | — | Flutter | flutter/skills |
|
|
433
|
-
|
|
434
|
-
</details>
|
|
435
|
-
|
|
436
|
-
<details>
|
|
437
|
-
<summary><strong>UI, layout and navigation</strong> (8)</summary>
|
|
438
|
-
|
|
439
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
440
|
-
|---|---|---|---|---|
|
|
441
|
-
| `flutter-building-layouts` | Builds Flutter layouts using the constraint system and layout widgets. | — | Flutter | flutter/skills |
|
|
442
|
-
| `flutter-build-responsive-layout` | Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. | — | Flutter | flutter/skills |
|
|
443
|
-
| `flutter-building-forms` | Builds Flutter forms with validation and user input handling. | — | Flutter | flutter/skills |
|
|
444
|
-
| `flutter-animating-apps` | Implements animated effects, transitions, and motion in a Flutter app. | — | Flutter | flutter/skills |
|
|
445
|
-
| `flutter-theming-apps` | Customizes the visual appearance of a Flutter app using the theming system. | — | Flutter | flutter/skills |
|
|
446
|
-
| `flutter-add-widget-preview` | Adds interactive widget previews to the project using the previews.dart system. | — | Flutter | flutter/skills |
|
|
447
|
-
| `flutter-setup-declarative-routing` | Configure `MaterialApp.router` using a package like `go_router` for advanced URL-based navigation. | — | Flutter | flutter/skills |
|
|
448
|
-
| `flutter-adding-home-screen-widgets` | Adds home screen widgets to a Flutter app for Android and iOS. | — | Flutter | flutter/skills |
|
|
449
|
-
|
|
450
|
-
</details>
|
|
451
|
-
|
|
452
|
-
<details>
|
|
453
|
-
<summary><strong>Data and networking</strong> (3)</summary>
|
|
340
|
+
Every skill starts with `mobile-`. **Topic** skills cover every stack with one reference per platform; **platform** skills hold what exists only on one stack. A request loads the skill, and the model then opens only the reference for your stack and task.
|
|
454
341
|
|
|
455
|
-
| Skill |
|
|
456
|
-
|
|
457
|
-
| `
|
|
458
|
-
| `
|
|
459
|
-
| `
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
342
|
+
| Skill | Covers | Auto-routed for | References |
|
|
343
|
+
|---|---|---|---|
|
|
344
|
+
| `mobile-architecture` | Layers, state management, modularization, DI, navigation | architecture | Flutter (BLoC, Riverpod, Provider, ChangeNotifier...), Android, iOS, React Native |
|
|
345
|
+
| `mobile-code-review` | Review process and checklists | review, performance | Flutter (PR review, widgets, project audit, static analysis), Android, iOS, React Native |
|
|
346
|
+
| `mobile-debug` | Failing builds and runtime errors | debug, build, dependency, migration | Flutter (build, runtime, layout, packages), Android (Gradle, crashes, ANRs), iOS (Xcode, CocoaPods, crash logs), React Native (Metro, native modules) |
|
|
347
|
+
| `mobile-test` | Unit, UI, integration and end-to-end tests | test | Flutter (widget, integration, Patrol, mocks, coverage), Android, iOS, React Native |
|
|
348
|
+
| `mobile-security` | OWASP MASVS security checks | review, security, release | Flutter (token storage), Android (intents), iOS, React Native |
|
|
349
|
+
| `mobile-firebase` | Firebase setup and 13 products | — | Flutter, Android, iOS, React Native, each with a guide per product |
|
|
350
|
+
| `mobile-flutter` | Flutter and Dart specifics | review, performance, accessibility, migration | UI and navigation, data, native code, performance, accessibility and i18n, Dart, setup |
|
|
351
|
+
| `mobile-android` | Native Android specifics, from the Android team | performance, release, migration, build, dependency | Compose UI, AGP 9 and R8, profiling, Google Play, identity, camera and media, on-device AI, Wear OS, TV, XR |
|
|
352
|
+
| `mobile-ios` | Native iOS specifics | performance, release, accessibility | UI and navigation, data and networking, platform features, performance and release |
|
|
353
|
+
| `mobile-rn` | React Native and Expo specifics | performance, release, accessibility | UI and navigation, data and networking, platform features, performance and release |
|
|
354
|
+
| `mobile-detect-stack` | Deterministic stack detection with the CLI | — | — |
|
|
465
355
|
|
|
466
|
-
|
|
467
|
-
|---|---|---|---|---|
|
|
468
|
-
| `flutter-building-plugins` | Builds Flutter plugins that provide native interop for other apps to use. | — | Flutter | flutter/skills |
|
|
469
|
-
| `flutter-interoperating-with-native-apis` | Interoperates with native platform APIs on Android, iOS, and the web. | — | Flutter | flutter/skills |
|
|
470
|
-
| `flutter-embedding-native-views` | Embeds native Android, iOS, or macOS views into a Flutter app. | — | Flutter | flutter/skills |
|
|
356
|
+
Skills marked — are triggered by Claude Code when the request matches their description, for example *"add push notifications with FCM"* → `mobile-firebase`.
|
|
471
357
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
<details>
|
|
475
|
-
<summary><strong>Security</strong> (3)</summary>
|
|
476
|
-
|
|
477
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
478
|
-
|---|---|---|---|---|
|
|
479
|
-
| `mobile-security-audit` | Security audit for mobile apps based on the OWASP MASVS categories — insecure token storage, hardcoded secrets,… | review, security, release | all | reis-mobile |
|
|
480
|
-
| `flutter-secure-token-store` | Stores JWT access tokens on Flutter with platform secure storage (Keychain on iOS, Keystore-backed storage on… | security | Flutter | reis-mobile |
|
|
481
|
-
| `firebase-app-check` | Integrates Firebase App Check into Flutter apps. | security | Flutter | evanca/flutter-ai-rules |
|
|
482
|
-
|
|
483
|
-
</details>
|
|
484
|
-
|
|
485
|
-
<details>
|
|
486
|
-
<summary><strong>Accessibility and internationalization</strong> (2)</summary>
|
|
487
|
-
|
|
488
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
489
|
-
|---|---|---|---|---|
|
|
490
|
-
| `flutter-improving-accessibility` | Configures a Flutter app to support assistive technologies like Screen Readers. | accessibility | Flutter | flutter/skills |
|
|
491
|
-
| `flutter-setup-localization` | Add `flutter_localizations` and `intl` dependencies, enable "generate true" in `pubspec.yaml`, and create an… | — | Flutter | flutter/skills |
|
|
492
|
-
|
|
493
|
-
</details>
|
|
494
|
-
|
|
495
|
-
<details>
|
|
496
|
-
<summary><strong>Firebase</strong> (13)</summary>
|
|
497
|
-
|
|
498
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
499
|
-
|---|---|---|---|---|
|
|
500
|
-
| `flutterfire-configure` | Sets up Firebase for Flutter apps using FlutterFire CLI. | — | Flutter | evanca/flutter-ai-rules |
|
|
501
|
-
| `firebase-auth` | Integrates Firebase Authentication into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
502
|
-
| `firebase-cloud-firestore` | Integrates Cloud Firestore into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
503
|
-
| `firebase-database` | Integrates Firebase Realtime Database into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
504
|
-
| `firebase-storage` | Integrates Firebase Cloud Storage into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
505
|
-
| `firebase-cloud-functions` | Calls Firebase Cloud Functions from Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
506
|
-
| `firebase-messaging` | Integrates Firebase Cloud Messaging (FCM) into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
507
|
-
| `firebase-in-app-messaging` | Integrates Firebase In-App Messaging into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
508
|
-
| `firebase-remote-config` | Integrates Firebase Remote Config into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
509
|
-
| `firebase-analytics` | Integrates Firebase Analytics into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
510
|
-
| `firebase-crashlytics` | Integrates Firebase Crashlytics into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
511
|
-
| `firebase-ai` | Integrates Firebase AI Logic into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
512
|
-
| `firebase-data-connect` | Integrates Firebase Data Connect into Flutter apps. | — | Flutter | evanca/flutter-ai-rules |
|
|
513
|
-
|
|
514
|
-
</details>
|
|
515
|
-
|
|
516
|
-
<details>
|
|
517
|
-
<summary><strong>Environment</strong> (2)</summary>
|
|
518
|
-
|
|
519
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
520
|
-
|---|---|---|---|---|
|
|
521
|
-
| `flutter-setting-up-on-macos` | Sets up a macOS environment for Flutter development. | — | Flutter | flutter/skills |
|
|
522
|
-
| `detect-mobile-stack` | Detects the mobile stack of the current project (Flutter, Android, iOS, React Native, Kotlin Multiplatform), its… | — | all | reis-mobile |
|
|
523
|
-
|
|
524
|
-
</details>
|
|
525
|
-
|
|
526
|
-
Third-party skills keep their original name and license. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
|
|
358
|
+
About 85 guides come from [flutter/skills](https://github.com/flutter/skills), [dart-lang/skills](https://github.com/dart-lang/skills), [evanca/flutter-ai-rules](https://github.com/evanca/flutter-ai-rules) and [android/skills](https://github.com/android/skills), unchanged and credited in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
|
|
527
359
|
|
|
528
360
|
---
|
|
529
361
|
|
|
@@ -533,11 +365,11 @@ Third-party skills keep their original name and license. See [THIRD_PARTY_NOTICE
|
|
|
533
365
|
|
|
534
366
|
**Secrets masked.** The diff goes through [`core/security/redact.mjs`](core/security/redact.mjs) before reaching the model. Lock files and generated code (`*.g.dart`, `*.freezed.dart`, `*.pbxproj`) stay out of the diff. Redaction is a protection layer, not a guarantee. See [SECURITY.md](SECURITY.md).
|
|
535
367
|
|
|
536
|
-
**No telemetry.** `detect`, `doctor`, `route` and `
|
|
368
|
+
**No telemetry.** `detect`, `doctor`, `route`, `review` and `debug` make no network calls. Only installation touches the network, to download the package and register the plugin. The Google Play policy guide in `mobile-android` runs Python scripts that download your app's public Google Play listing when the model uses it. The AI analysis uses the model of the session you are working in, such as Claude Code or Codex.
|
|
537
369
|
|
|
538
370
|
**Exception: `/reis-mobile:debate --external`.** This flag, and only this flag, sends the debate context — including excerpts of the files mentioned in the question — to the `codex` and `gemini` CLIs, which are third-party and have their own data policies. Without the flag, nothing leaves your session. The `review` diff is masked by `redact.mjs`, but the context you cite in a debate question does not go through that layer: check what you are sending before using `--external`.
|
|
539
371
|
|
|
540
|
-
**Context cost.** The descriptions of the
|
|
372
|
+
**Context cost.** The descriptions of the 16 agents and 11 skills add up to about 3,900 fixed tokens per session, estimated from their length (v0.3 measured about 4,800 with `claude plugin details reis-mobile`). The full content of each skill is only loaded when it is used.
|
|
541
373
|
|
|
542
374
|
**No hooks.** The plugin does not attach to Claude Code events. It only acts when you call a command or when a skill is relevant.
|
|
543
375
|
|
|
@@ -559,10 +391,10 @@ Third-party skills keep their original name and license. See [THIRD_PARTY_NOTICE
|
|
|
559
391
|
| v0.3.4 | Back to the `reis-mobile` name after the `mobile` renames of v0.3.2 and v0.3.3 | ✅ |
|
|
560
392
|
| v0.3.5 | Distribution through npm and the Claude Code and Codex plugins only | ✅ |
|
|
561
393
|
| v0.3.6 | `reis-mobile init` installs in Claude Code and Codex | ✅ |
|
|
562
|
-
| v0.4.0 | Native Android and iOS skills, `.reis-mobile/config.yaml` and `/reis-mobile:debug` (Gradle, Xcode, CocoaPods, Flutter) |
|
|
563
|
-
| v0.5.0 |
|
|
564
|
-
| v0.6.0 | `/reis-mobile:
|
|
565
|
-
| v0.7.0 |
|
|
394
|
+
| v0.4.0 | Native Android and iOS skills, architect, performance and test agents for Android, iOS and React Native, `.reis-mobile/config.yaml` and `/reis-mobile:debug` (Gradle, Xcode, CocoaPods, Flutter) | ✅ |
|
|
395
|
+
| v0.5.0 | Topic and platform skills (`mobile-*`), with guides for Flutter, Android, iOS and React Native in each; new `mobile-ios` and `mobile-rn` | ✅ |
|
|
396
|
+
| v0.6.0 | `/reis-mobile:test` and native tests (XCTest, Espresso) | ⏳ |
|
|
397
|
+
| v0.7.0 | `/reis-mobile:release` with quality gates | ⏳ |
|
|
566
398
|
| v0.8.0 | MCP server | ⏳ |
|
|
567
399
|
| v0.9.0 | Multi-provider (OpenAI, Gemini, OpenRouter, Ollama) beyond the debate's `--external` | ⏳ |
|
|
568
400
|
| v1.0.0 | First stable version: Flutter, Android, iOS and React Native | ⏳ |
|
|
@@ -575,16 +407,22 @@ Third-party skills keep their original name and license. See [THIRD_PARTY_NOTICE
|
|
|
575
407
|
Not for the review, which only reads code. `/reis-mobile:doctor` shows what is missing in case you want to build.
|
|
576
408
|
|
|
577
409
|
**My app lives inside a monorepo.**
|
|
578
|
-
|
|
410
|
+
Commit a `.reis-mobile/config.yaml` at the repository root pointing at the app:
|
|
411
|
+
|
|
412
|
+
```yaml
|
|
413
|
+
app: apps/mobile
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
Every command then analyzes `apps/mobile`, wherever in the repository you run it, and the review diff is restricted to that folder. Without the file, run from the app folder or pass `--dir apps/mobile`.
|
|
579
417
|
|
|
580
418
|
**Does it work with native Android and iOS?**
|
|
581
|
-
|
|
419
|
+
Yes. Native Android, native iOS and React Native each have architect, performance and test agents, and the cross-platform skills — `mobile-debug`, `mobile-code-review`, `mobile-test` and `mobile-firebase` — have a guide for each of them (Gradle and R8, Xcode and CocoaPods, Metro and native modules). The platform skills `mobile-android`, `mobile-ios` and `mobile-rn` add what exists only on each stack; `mobile-android` includes the Android team's guides from `android/skills` (Compose, AGP 9, R8, Play policy, Wear, TV and more).
|
|
582
420
|
|
|
583
421
|
**I already have skills with the same names in `~/.claude/skills`.**
|
|
584
422
|
The plugin's skills live in the `reis-mobile:` namespace and do not conflict, but Claude Code loads both descriptions. To save context, remove the global copies the plugin already covers.
|
|
585
423
|
|
|
586
424
|
**Does it work in Codex?**
|
|
587
|
-
|
|
425
|
+
Yes: `reis-mobile init eng` installs the plugin in Codex too. See [installation](#install). Installation does not confirm parity with the Claude Code agents and commands; the `reis-mobile` CLI can also be run by Codex to get diagnostics and context.
|
|
588
426
|
|
|
589
427
|
**Does it work in Cursor?**
|
|
590
428
|
The Cursor integration has not been validated yet. The MCP server remains on the roadmap for v0.8.0.
|
|
@@ -625,7 +463,7 @@ Questions: [Discussions](https://github.com/wrsilva/reis-mobile/discussions). Wh
|
|
|
625
463
|
- **[flutter/skills](https://github.com/flutter/skills)** (BSD-3-Clause): 25 Flutter skills.
|
|
626
464
|
- **[dart-lang/skills](https://github.com/dart-lang/skills)** (BSD-3-Clause): 8 Dart skills.
|
|
627
465
|
- **[evanca/flutter-ai-rules](https://github.com/evanca/flutter-ai-rules)** (MIT): 28 Flutter, testing and Firebase skills.
|
|
628
|
-
- **[OWASP MASVS](https://mas.owasp.org/MASVS/)**: categories used in the `mobile-security
|
|
466
|
+
- **[OWASP MASVS](https://mas.owasp.org/MASVS/)**: categories used in the `mobile-security` skill.
|
|
629
467
|
|
|
630
468
|
---
|
|
631
469
|
|