reis-mobile 0.4.0 → 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 +15 -0
- package/README.md +35 -204
- package/THIRD_PARTY_NOTICES.md +10 -13
- package/agents/android-performance-engineer.md +2 -2
- package/agents/mobile-code-reviewer.md +2 -0
- package/agents/rn-architect.md +1 -1
- package/commands/debug.md +1 -1
- package/core/registry/registry.mjs +18 -11
- package/package.json +24 -3
- package/skills/mobile-android/SKILL.md +29 -0
- package/skills/{android-agp-9-upgrade/SKILL.md → mobile-android/references/build-and-performance/agp-9-upgrade/GUIDE.md} +1 -20
- package/skills/{android-cli/SKILL.md → mobile-android/references/build-and-performance/android-cli/GUIDE.md} +1 -25
- package/skills/{android-profiler/SKILL.md → mobile-android/references/build-and-performance/android-profiler/GUIDE.md} +1 -27
- package/skills/{android-r8-analyzer/SKILL.md → mobile-android/references/build-and-performance/r8-analyzer/GUIDE.md} +1 -20
- package/skills/mobile-android/references/build-and-performance.md +12 -0
- package/skills/{android-display-glasses-with-jetpack-compose-glimmer/SKILL.md → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/GUIDE.md} +1 -24
- package/skills/{android-leanback-to-compose-tv-migration/SKILL.md → mobile-android/references/devices/leanback-to-compose-tv-migration/GUIDE.md} +1 -37
- package/skills/{android-wear-compose-m3/SKILL.md → mobile-android/references/devices/wear-compose-m3/GUIDE.md} +1 -25
- package/skills/mobile-android/references/devices.md +11 -0
- package/skills/{android-restore-credentials/SKILL.md → mobile-android/references/identity/restore-credentials/GUIDE.md} +1 -23
- package/skills/{android-verified-email/SKILL.md → mobile-android/references/identity/verified-email/GUIDE.md} +1 -28
- package/skills/mobile-android/references/identity.md +10 -0
- package/skills/{android-camerax/SKILL.md → mobile-android/references/media/camerax/GUIDE.md} +1 -30
- package/skills/{android-media3-cast-integration/SKILL.md → mobile-android/references/media/media3-cast-integration/GUIDE.md} +1 -24
- package/skills/mobile-android/references/media.md +10 -0
- package/skills/{android-appfunctions/SKILL.md → mobile-android/references/on-device-ai/appfunctions/GUIDE.md} +1 -24
- package/skills/{android-ml-kit-genai-prompt-api/SKILL.md → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/GUIDE.md} +1 -20
- package/skills/mobile-android/references/on-device-ai.md +10 -0
- package/skills/{android-engage-sdk-integration/SKILL.md → mobile-android/references/play/engage-sdk-integration/GUIDE.md} +1 -19
- package/skills/{android-play-billing-library-version-upgrade/SKILL.md → mobile-android/references/play/play-billing-library-version-upgrade/GUIDE.md} +1 -22
- package/skills/{android-play-policy-insights/SKILL.md → mobile-android/references/play/play-policy-insights/GUIDE.md} +1 -43
- package/skills/mobile-android/references/play.md +11 -0
- package/skills/{android-adaptive/SKILL.md → mobile-android/references/ui/adaptive/GUIDE.md} +1 -25
- package/skills/{android-edge-to-edge/SKILL.md → mobile-android/references/ui/edge-to-edge/GUIDE.md} +1 -21
- package/skills/{android-migrate-xml-views-to-jetpack-compose/SKILL.md → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/GUIDE.md} +1 -24
- package/skills/{android-navigation-3/SKILL.md → mobile-android/references/ui/navigation-3/GUIDE.md} +1 -37
- package/skills/{android-navigation-event/SKILL.md → mobile-android/references/ui/navigation-event/GUIDE.md} +1 -25
- package/skills/{android-styles/SKILL.md → mobile-android/references/ui/styles/GUIDE.md} +1 -21
- 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/{flutter-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/{flutter-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/{flutter-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/{flutter-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/{android-code-review/SKILL.md → mobile-code-review/references/android.md} +1 -8
- package/skills/{flutter-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/{flutter-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/{ios-code-review/SKILL.md → mobile-code-review/references/ios.md} +1 -8
- package/skills/mobile-code-review/references/react-native.md +58 -0
- package/skills/mobile-debug/SKILL.md +50 -0
- package/skills/{android-gradle-build-debug/SKILL.md → mobile-debug/references/android/gradle-build.md} +0 -8
- package/skills/mobile-debug/references/android.md +26 -0
- package/skills/{flutter-build-debug/SKILL.md → mobile-debug/references/flutter/build.md} +5 -13
- 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/{flutter-dart-resolve-package-conflicts/SKILL.md → mobile-debug/references/flutter/package-conflicts.md} +2 -11
- package/skills/{flutter-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/{ios-cocoapods-debug/SKILL.md → mobile-debug/references/ios/cocoapods.md} +1 -9
- package/skills/{ios-xcode-build-debug/SKILL.md → mobile-debug/references/ios/xcode-build.md} +0 -8
- package/skills/mobile-debug/references/ios.md +23 -0
- package/skills/mobile-debug/references/react-native.md +43 -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/{flutter-dart-3-updates/SKILL.md → mobile-flutter/references/dart/dart-3.md} +1 -8
- package/skills/{flutter-effective-dart/SKILL.md → mobile-flutter/references/dart/effective-dart.md} +1 -8
- package/skills/{flutter-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/{android-intent-security/SKILL.md → mobile-security/references/android/intent-security.md} +1 -28
- 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-security-audit/SKILL.md +0 -101
- /package/skills/{android-agp-9-upgrade → mobile-android/references/build-and-performance/agp-9-upgrade}/references/android/build/migrate-to-built-in-kotlin.md +0 -0
- /package/skills/{android-agp-9-upgrade → mobile-android/references/build-and-performance/agp-9-upgrade}/references/android/build/releases/agp-9-0-0-release-notes.md +0 -0
- /package/skills/{android-agp-9-upgrade → mobile-android/references/build-and-performance/agp-9-upgrade}/references/buildconfig.md +0 -0
- /package/skills/{android-agp-9-upgrade → mobile-android/references/build-and-performance/agp-9-upgrade}/references/ksp-kapt.md +0 -0
- /package/skills/{android-agp-9-upgrade → mobile-android/references/build-and-performance/agp-9-upgrade}/references/paparazzi-gradle-9.md +0 -0
- /package/skills/{android-agp-9-upgrade → mobile-android/references/build-and-performance/agp-9-upgrade}/references/recipes.md +0 -0
- /package/skills/{android-cli → mobile-android/references/build-and-performance/android-cli}/references/interact.md +0 -0
- /package/skills/{android-cli → mobile-android/references/build-and-performance/android-cli}/references/journeys.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/analysis_orchestrator.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-sql/perfetto_sql.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/perfetto_trace_analysis.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/guiding_principles.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/domain_hints_template.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_cpu.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_graphics.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_io.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_ipc.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_memory.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_power.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/per_candidate_analysis.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/analysis/workflows/perfetto-trace-analysis/references/triage.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/recording_orchestrator.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/perfetto_trace_recording.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/app_jank.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/cpu_profile.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/java_heap_dump.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/long_background.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/memory_counters.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/native_heap.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/example-configs/sched_cpu.pftxt +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/recording/workflows/perfetto-trace-recording/references/trace_config_reference.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/references/env_setup.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/references/perfetto/setup.md +0 -0
- /package/skills/{android-profiler → mobile-android/references/build-and-performance/android-profiler}/references/perfetto/sql.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/CONFIGURATION-ANALYZER.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/CONFIGURATION.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/KEEP-RULES-IMPACT-HIERARCHY.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/REDUNDANT-RULES.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/REFLECTION-GUIDE.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/REPORT_FORMAT.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/android/topic/performance/app-optimization/enable-app-optimization.md +0 -0
- /package/skills/{android-r8-analyzer → mobile-android/references/build-and-performance/r8-analyzer}/references/android/training/testing/other-components/ui-automator.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/design/ui/ai-glasses/guides/interaction/inputs.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/access-hardware-projected-context.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/buttons.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/cards.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/focus.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/icons.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/text.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/title-chips.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/android/develop/xr/jetpack-xr-sdk/request-hardware-permissions.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/button-samples-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/button-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/card-samples-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/card-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/deptheffect-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/deptheffectlevels-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/glimmersansflextypography-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/glimmertheme-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/icon-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/iconbutton-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/iconsizes-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/list-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/listitem-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/liststate-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/material-hct-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/projectedcontext-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/stack-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/stackitemscope-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/stackstate-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/surface-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/titlechip-samples-source.md +0 -0
- /package/skills/{android-display-glasses-with-jetpack-compose-glimmer → mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer}/references/titlechip-source.md +0 -0
- /package/skills/{android-leanback-to-compose-tv-migration → mobile-android/references/devices/leanback-to-compose-tv-migration}/references/android/training/tv/get-started/navigation.md +0 -0
- /package/skills/{android-leanback-to-compose-tv-migration → mobile-android/references/devices/leanback-to-compose-tv-migration}/references/android/training/tv/playback/compose/browse.md +0 -0
- /package/skills/{android-leanback-to-compose-tv-migration → mobile-android/references/devices/leanback-to-compose-tv-migration}/references/android/training/tv/playback/compose/index.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/android/training/wearables/compose/migrate-to-material3.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/AmbientModeSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/AmbientModeSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/CurvedWorldSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/CurvedWorldSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/ExpandableSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/ExpandableSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/HierarchicalFocusSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/HierarchicalFocusSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/PagerSamples.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/PagerSamples.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/RotarySamples.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/RotarySamples.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/ScalingLazyColumnSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/ScalingLazyColumnSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/SwipeToDismissBoxSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/SwipeToDismissBoxSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/SwipeToRevealSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/SwipeToRevealSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/TransformingLazyColumnSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/foundation/TransformingLazyColumnSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/AlertDialogSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/AlertDialogSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/AnimatedTextSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/AnimatedTextSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ButtonGroupSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ButtonGroupSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/CardSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/CardSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/CheckboxButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/CheckboxButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ConfirmationDialogSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ConfirmationDialogSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/CurvedTextSamples.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/CurvedTextSamples.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/DatePickerSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/DatePickerSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/DynamicColorSchemeSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/DynamicColorSchemeSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/EdgeButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/EdgeButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/FadingExpandingLabelSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/FadingExpandingLabelSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/IconButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/IconButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/IconToggleButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/IconToggleButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/LevelIndicatorSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/LevelIndicatorSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/LinearProgressIndicatorSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/LinearProgressIndicatorSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ListHeaderSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ListHeaderSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/OneHandedGestureSamples.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/OneHandedGestureSamples.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/OpenOnPhoneDialogSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/OpenOnPhoneDialogSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PageIndicatorSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PageIndicatorSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PagerScaffoldSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PagerScaffoldSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PickerGroupSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PickerGroupSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PickerSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PickerSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PlaceholderSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/PlaceholderSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ProgressIndicatorSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ProgressIndicatorSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/RadioButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/RadioButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ScaffoldSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ScaffoldSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ScrollAwaySample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ScrollAwaySample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ScrollIndicatorSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/ScrollIndicatorSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SliderSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SliderSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/StepperSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/StepperSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SurfaceTransformationSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SurfaceTransformationSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SwipeToDismissBoxSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SwipeToDismissBoxSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SwipeToRevealSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SwipeToRevealSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SwitchButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/SwitchButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TextButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TextButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TextToggleButtonSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TextToggleButtonSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TimePickerSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TimePickerSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TimeTextSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TimeTextSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TransformationSpecSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TransformationSpecSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TransformingLazyColumnNotificationsSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TransformingLazyColumnNotificationsSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TransformingLazyColumnSample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/material3/TransformingLazyColumnSample.kt.md.txt +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/navigation3/SwipeDismissableSceneStrategySample.kt.md +0 -0
- /package/skills/{android-wear-compose-m3 → mobile-android/references/devices/wear-compose-m3}/references/navigation3/SwipeDismissableSceneStrategySample.kt.md.txt +0 -0
- /package/skills/{android-restore-credentials → mobile-android/references/identity/restore-credentials}/references/android/guide/topics/manifest/application-element.md +0 -0
- /package/skills/{android-restore-credentials → mobile-android/references/identity/restore-credentials}/references/android/identity/passkeys/create-passkeys.md +0 -0
- /package/skills/{android-restore-credentials → mobile-android/references/identity/restore-credentials}/references/android/identity/passkeys/sign-in-with-passkeys.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/credential-manager/index.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/digital-credentials/credential-verifier.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/digital-credentials/email-verification-implementation.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/digital-credentials/email-verification.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/digital-credentials/index.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/passkeys/create-passkeys.md +0 -0
- /package/skills/{android-verified-email → mobile-android/references/identity/verified-email}/references/android/identity/sign-in/credential-manager-webview.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/camera1-to-camerax.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/camera2-to-camerax.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/expert-blueprints.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/foldables.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/immutability.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/low-light.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/mlkit-spatial.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/modern-apis.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/testing.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/thermals.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/wear-os.md +0 -0
- /package/skills/{android-camerax → mobile-android/references/media/camerax}/references/xr.md +0 -0
- /package/skills/{android-media3-cast-integration → mobile-android/references/media/media3-cast-integration}/references/android/media/media3/cast/create-castplayer.md +0 -0
- /package/skills/{android-media3-cast-integration → mobile-android/references/media/media3-cast-integration}/references/android/media/media3/cast/customize-castoptions.md +0 -0
- /package/skills/{android-media3-cast-integration → mobile-android/references/media/media3-cast-integration}/references/android/media/media3/cast/index.md +0 -0
- /package/skills/{android-appfunctions → mobile-android/references/on-device-ai/appfunctions}/references/adb-interaction-testing.md +0 -0
- /package/skills/{android-appfunctions → mobile-android/references/on-device-ai/appfunctions}/references/context.md +0 -0
- /package/skills/{android-appfunctions → mobile-android/references/on-device-ai/appfunctions}/references/feature-discovery-analysis.md +0 -0
- /package/skills/{android-appfunctions → mobile-android/references/on-device-ai/appfunctions}/references/implementation-configuration.md +0 -0
- /package/skills/{android-appfunctions → mobile-android/references/on-device-ai/appfunctions}/references/kdoc-refinement-optimization.md +0 -0
- /package/skills/{android-appfunctions → mobile-android/references/on-device-ai/appfunctions}/references/migrate-to-service-entry-point.md +0 -0
- /package/skills/{android-ml-kit-genai-prompt-api → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api}/references/get-started.md +0 -0
- /package/skills/{android-ml-kit-genai-prompt-api → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api}/references/prefix-caching.md +0 -0
- /package/skills/{android-ml-kit-genai-prompt-api → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api}/references/prompt-design.md +0 -0
- /package/skills/{android-ml-kit-genai-prompt-api → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api}/references/prompt-optimization.md +0 -0
- /package/skills/{android-ml-kit-genai-prompt-api → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api}/references/structured-output.md +0 -0
- /package/skills/{android-ml-kit-genai-prompt-api → mobile-android/references/on-device-ai/ml-kit-genai-prompt-api}/references/system-instructions.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/faq.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/food.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/healthandfitness.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/listen.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/otherverticals.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/read.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/shopping.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/social.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/travel.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/tv/continue-watching/index.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/tv/entitlements.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/tv/getting-started.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/tv/recommendations.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/android/guide/playcore/engage/watch.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/clusters.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/common.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/patterns.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/requests.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/food.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/listen.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/other.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/read.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/shopping.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/social.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/travel.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/tv.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/schemas/watch.md +0 -0
- /package/skills/{android-engage-sdk-integration → mobile-android/references/play/engage-sdk-integration}/references/troubleshooting.md +0 -0
- /package/skills/{android-play-billing-library-version-upgrade → mobile-android/references/play/play-billing-library-version-upgrade}/references/android/google/play/billing/release-notes.md +0 -0
- /package/skills/{android-play-billing-library-version-upgrade → mobile-android/references/play/play-billing-library-version-upgrade}/references/migration-logic.md +0 -0
- /package/skills/{android-play-billing-library-version-upgrade → mobile-android/references/play/play-billing-library-version-upgrade}/references/version-checklist.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/common_mandates.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/compliance_report_template.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/critic.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/goal_data_safety.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/goal_permissions_and_apis.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/goal_user_account.md +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/policies.json +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/resources/scanner_config.json +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/scripts/generate_report.py +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/scripts/orchestrator.py +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/scripts/play_store_scraper.py +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/scripts/scanner.py +0 -0
- /package/skills/{android-play-policy-insights → mobile-android/references/play/play-policy-insights}/scripts/template_engine.py +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/develop/ui/compose/tooling/debug.md +0 -0
- /package/skills/{android-adaptive → mobile-android/references/ui/adaptive}/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/analysis-of-the-project-and-layout.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/android/develop/ui/compose/designsystems/migrate-xml-theme-to-compose.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/android/develop/ui/compose/migrate/interoperability-apis/compose-in-views.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/android/develop/ui/compose/migrate/interoperability-apis/views-in-compose.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/android/develop/ui/compose/setup-compose-dependencies-and-compiler.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/identify-optimal-xml-candidate.md +0 -0
- /package/skills/{android-migrate-xml-views-to-jetpack-compose → mobile-android/references/ui/migrate-xml-views-to-jetpack-compose}/references/xml-layout-migration.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/index.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/migration-guide.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/animations.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/basic.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/common-ui.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/conditional-transitions.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/conditional.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/deeplinks-custommatcher.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/deeplinks-staticuri.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/deeplinks-syntheticbackstack.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/dialog.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/lifecycle-owner.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/results-event.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/results-state.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +0 -0
- /package/skills/{android-navigation-3 → mobile-android/references/ui/navigation-3}/references/android/guide/navigation/type-safe-destinations.md +0 -0
- /package/skills/{android-navigation-event → mobile-android/references/ui/navigation-event}/references/android/guide/navigation/navigation-event/dispatcher.md +0 -0
- /package/skills/{android-navigation-event → mobile-android/references/ui/navigation-event}/references/android/guide/navigation/navigation-event/handle-back.md +0 -0
- /package/skills/{android-navigation-event → mobile-android/references/ui/navigation-event}/references/android/guide/navigation/navigation-event/index.md +0 -0
- /package/skills/{android-navigation-event → mobile-android/references/ui/navigation-event}/references/android/guide/navigation/navigation-event/setup.md +0 -0
- /package/skills/{android-styles → mobile-android/references/ui/styles}/references/android/develop/ui/compose/designsystems/custom.md +0 -0
- /package/skills/{android-styles → mobile-android/references/ui/styles}/references/android/develop/ui/compose/styles/fundamentals.md +0 -0
- /package/skills/{android-styles → mobile-android/references/ui/styles}/references/android/develop/ui/compose/styles/state-animations.md +0 -0
- /package/skills/{android-styles → mobile-android/references/ui/styles}/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +0 -0
- /package/skills/{android-styles → mobile-android/references/ui/styles}/references/android/develop/ui/compose/styles/theming.md +0 -0
- /package/skills/{flutter-dart-use-pattern-matching → mobile-flutter/references/dart/pattern-matching}/examples/json_patterns.dart +0 -0
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
7
|
"description": "AI agents for mobile engineering",
|
|
8
|
-
"version": "0.
|
|
8
|
+
"version": "0.5.0"
|
|
9
9
|
},
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "reis-mobile",
|
|
13
13
|
"source": "./",
|
|
14
14
|
"description": "AI agents, skills and workflows for Flutter, Android, iOS and React Native development.",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.5.0",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "Warleson Reis"
|
|
18
18
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reis-mobile",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "AI agents, skills and workflows for Flutter, Android, iOS and React Native development. Run /reis-mobile:doctor, then /reis-mobile:review.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Warleson Reis"
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The project follows [Semantic Versioning](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [0.5.0] - 2026-09-16
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **Breaking:** the review skills are consolidated into `mobile-code-review`, with the review process in `SKILL.md` and a checklist per platform: Flutter (the former `flutter-code-review`, `flutter-widget-review`, `flutter-project-audit` and `flutter-dart-run-static-analysis`, in `references/flutter/`), native Android (the former `android-code-review`), native iOS (the former `ios-code-review`) and a new React Native checklist. `mobile-security-audit`, `android-intent-security` and `flutter-effective-dart` stay separate. A review request on a Flutter app loads 3 skills instead of 6.
|
|
10
|
+
- **Breaking:** the debugging skills are consolidated into `mobile-debug`, with the debugging process in `SKILL.md` and a guide per platform and layer: Flutter (the former `flutter-build-debug`, `flutter-errors`, `flutter-fix-layout-issues`, `flutter-dart-fix-runtime-errors` and `flutter-dart-resolve-package-conflicts`, in `references/flutter/`), Android (the former `android-gradle-build-debug`, plus runtime crashes, R8 retrace and ANRs), iOS (the former `ios-xcode-build-debug` and `ios-cocoapods-debug`, plus crash logs and sanitizers) and a new React Native guide (Metro, native modules not found, Hermes). `/reis-mobile:debug` passes the detected area so the skill opens the right guide.
|
|
11
|
+
- **Breaking:** the security skills are consolidated into `mobile-security` (the former `mobile-security-audit`), with the OWASP MASVS checks for every stack in `SKILL.md` and a checklist per platform: Flutter (with the former `flutter-secure-token-store` guide), Android (with the former `android-intent-security` guide, plus `PendingIntent`s, app links and `FLAG_SECURE`), iOS (Data Protection, Keychain accessibility, privacy manifests) and React Native (bundled environment variables, Hermes, signed over-the-air updates). The audit no longer treats `google-services.json` and `GoogleService-Info.plist` as secrets, in line with `mobile-firebase`.
|
|
12
|
+
- **Breaking:** every skill starts with `mobile-`, and there are 11: topic skills with a reference per platform (`mobile-architecture`, `mobile-code-review`, `mobile-debug`, `mobile-test`, `mobile-security`, `mobile-firebase`, `mobile-detect-stack`) and platform skills with what exists only on one stack (`mobile-flutter`, `mobile-android`, `mobile-ios`, `mobile-rn`). `reis-mobile validate` enforces both kinds.
|
|
13
|
+
- `mobile-architecture` replaces the Flutter architecture and state management skills (`flutter-app-architecture`, `flutter-architecture-feature-first`, `flutter-apply-architecture-best-practices`, `flutter-managing-state`, `flutter-bloc`, `flutter-riverpod`, `flutter-provider`, `flutter-change-notifier`, `flutter-login-usecase`) and adds architecture guides for Android, iOS and React Native.
|
|
14
|
+
- `mobile-flutter` holds the other Flutter skills, grouped by theme: UI and navigation, data, native code, performance, accessibility and i18n, Dart, and setup.
|
|
15
|
+
- `mobile-android` holds the 22 remaining guides from `android/skills`, grouped by theme, each as a folder with its references and scripts.
|
|
16
|
+
- New `mobile-ios` and `mobile-rn` skills with guides for UI and navigation, data and networking, platform features, and performance and release.
|
|
17
|
+
- The plugin's fixed context cost drops to about 3,900 tokens per session.
|
|
18
|
+
- The npm description and keywords, and the README introduction, name the stacks and tools people search for (Flutter, iOS, React Native, Claude Code, Codex, agent skills).
|
|
19
|
+
|
|
5
20
|
## [0.4.0] - 2026-09-16
|
|
6
21
|
|
|
7
22
|
### Added
|
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
|
-
👥 **16 agents and
|
|
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
|
|
|
@@ -52,7 +52,8 @@ A mobile app is not a generic project. A code review that does not know about `B
|
|
|
52
52
|
|
|
53
53
|
| Version | Highlights |
|
|
54
54
|
|--------|-----------|
|
|
55
|
-
| **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. |
|
|
56
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. |
|
|
57
58
|
| **v0.3.5** | Installs through npm and the Claude Code and Codex plugins. |
|
|
58
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. |
|
|
@@ -235,7 +236,7 @@ $ reis-mobile route "Execution failed for task ':app:compileDebugKotlin'"
|
|
|
235
236
|
Intent debug (confidence 0.5) · area gradle
|
|
236
237
|
Stack flutter · focus android
|
|
237
238
|
Agent mobile-staff-engineer
|
|
238
|
-
Skills
|
|
239
|
+
Skills mobile-debug
|
|
239
240
|
|
|
240
241
|
$ reis-mobile route "write tests for the login cubit"
|
|
241
242
|
Intent test (confidence 1)
|
|
@@ -263,9 +264,9 @@ The router never invents a specialist: if no agent serves the intent, it warns y
|
|
|
263
264
|
| Build a plugin or debug MethodChannel/EventChannel | agent `plugin-native-expert` | ✅ |
|
|
264
265
|
| Full audit with several specialists | agent `lead-mobile` | ✅ |
|
|
265
266
|
| Decide between two architectures with a real trade-off | `/reis-mobile:debate` | ✅ |
|
|
266
|
-
| Dedicated test command (including XCTest and Espresso) | `/reis-mobile:test` | 🔜 v0.
|
|
267
|
-
| Check whether the app is ready for the store | `/reis-mobile:release` | 🔜 v0.
|
|
268
|
-
| Consolidated decision by consensus between agents | `/reis-mobile:council` | 🔜 v0.
|
|
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 |
|
|
269
270
|
|
|
270
271
|
<details>
|
|
271
272
|
<summary><strong>How is it different from plain Claude Code?</strong></summary>
|
|
@@ -276,8 +277,8 @@ The router never invents a specialist: if no agent serves the intent, it warns y
|
|
|
276
277
|
| **Project context** | You explain the stack | Deterministic detection of stack, platform and variant |
|
|
277
278
|
| **Review** | Generic | Mobile checklists: lifecycle, `BuildContext`, MASVS, manifest, ATS |
|
|
278
279
|
| **Secrets in the diff** | Sent as they are | Masked before reaching the model |
|
|
279
|
-
| **Specialists** | None | 16 agents and
|
|
280
|
-
| **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 |
|
|
281
282
|
| **Best for** | General tasks | Teams and developers working on mobile apps |
|
|
282
283
|
|
|
283
284
|
**In short:** Claude Code already knows how to code. reis-mobile makes it look at what matters in a mobile app.
|
|
@@ -294,7 +295,7 @@ The router never invents a specialist: if no agent serves the intent, it warns y
|
|
|
294
295
|
├─ detect stack ──────── pubspec.yaml → flutter (android, ios)
|
|
295
296
|
├─ detect intent ─────── review
|
|
296
297
|
├─ select agent ──────── mobile-code-reviewer
|
|
297
|
-
├─ select skills ───────
|
|
298
|
+
├─ select skills ─────── mobile-code-review · mobile-flutter · mobile-security
|
|
298
299
|
├─ collect context ───── git diff (lock files out, secrets masked)
|
|
299
300
|
└─ review report ─────── Summary · Critical · Bugs · Architecture · Security · Performance · Maintainability
|
|
300
301
|
```
|
|
@@ -336,195 +337,25 @@ When more than one agent serves the intent, the stack-specific one wins. In a Fl
|
|
|
336
337
|
|
|
337
338
|
### Skills
|
|
338
339
|
|
|
339
|
-
**
|
|
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.
|
|
340
341
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
|
345
|
-
|
|
346
|
-
| `
|
|
347
|
-
| `
|
|
348
|
-
| `
|
|
349
|
-
| `flutter
|
|
350
|
-
| `
|
|
351
|
-
| `
|
|
352
|
-
| `
|
|
353
|
-
|
|
354
|
-
</details>
|
|
355
|
-
|
|
356
|
-
<details>
|
|
357
|
-
<summary><strong>Architecture and state</strong> (9)</summary>
|
|
358
|
-
|
|
359
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
360
|
-
|---|---|---|---|---|
|
|
361
|
-
| `flutter-architecture-feature-first` | Structures Flutter apps using layered architecture (UI / Logic / Data) with feature-first file organization. | architecture | Flutter | evanca/flutter-ai-rules |
|
|
362
|
-
| `flutter-app-architecture` | Provides best practices for Flutter app architecture, including layered architecture, data flow, state management… | architecture | Flutter | evanca/flutter-ai-rules |
|
|
363
|
-
| `flutter-apply-architecture-best-practices` | Architects a Flutter application using the recommended layered approach (UI, Logic, Data). | architecture | Flutter | flutter/skills |
|
|
364
|
-
| `flutter-managing-state` | Manages application and ephemeral state in a Flutter app. | architecture | Flutter | flutter/skills |
|
|
365
|
-
| `flutter-bloc` | Implements Flutter state management using the bloc library (Bloc and Cubit). | — | Flutter | evanca/flutter-ai-rules |
|
|
366
|
-
| `flutter-riverpod` | Uses Riverpod for state management in Flutter/Dart. | — | Flutter | evanca/flutter-ai-rules |
|
|
367
|
-
| `flutter-provider` | Uses the Provider package for dependency injection and state management in Flutter. | — | Flutter | evanca/flutter-ai-rules |
|
|
368
|
-
| `flutter-change-notifier` | Implements state management with ChangeNotifier and Provider in Flutter. | — | Flutter | evanca/flutter-ai-rules |
|
|
369
|
-
| `flutter-login-usecase` | Implements a Flutter login use case that authenticates through an injected repository and persists the access token… | — | Flutter | reis-mobile |
|
|
370
|
-
|
|
371
|
-
</details>
|
|
372
|
-
|
|
373
|
-
<details>
|
|
374
|
-
<summary><strong>Testing</strong> (1)</summary>
|
|
375
|
-
|
|
376
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
377
|
-
|---|---|---|---|---|
|
|
378
|
-
| `mobile-test` | Unit, widget, integration and end-to-end tests, mocks and coverage for Flutter, native Android, native iOS and React Native, with one reference per platform. | test | all | reis-mobile, flutter/skills, dart-lang/skills, evanca/flutter-ai-rules, android/skills |
|
|
379
|
-
|
|
380
|
-
</details>
|
|
381
|
-
|
|
382
|
-
<details>
|
|
383
|
-
<summary><strong>Debug</strong> (5)</summary>
|
|
384
|
-
|
|
385
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
386
|
-
|---|---|---|---|---|
|
|
387
|
-
| `flutter-errors` | Diagnoses and fixes common Flutter errors. | debug | Flutter | evanca/flutter-ai-rules |
|
|
388
|
-
| `flutter-fix-layout-issues` | Fixes Flutter layout errors (overflows, unbounded constraints) using Dart and Flutter MCP tools. | debug | Flutter | flutter/skills |
|
|
389
|
-
| `flutter-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 |
|
|
390
|
-
| `flutter-dart-resolve-package-conflicts` | Workflow for fixing package version conflicts. | debug, dependency | Flutter | dart-lang/skills |
|
|
391
|
-
| `flutter-build-debug` | Diagnoses failing Flutter builds by locating the layer that broke — Dart compilation, pub version solving… | debug, build, dependency, migration | Flutter | reis-mobile |
|
|
392
|
-
|
|
393
|
-
</details>
|
|
394
|
-
|
|
395
|
-
<details>
|
|
396
|
-
<summary><strong>Performance</strong> (3)</summary>
|
|
397
|
-
|
|
398
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
399
|
-
|---|---|---|---|---|
|
|
400
|
-
| `flutter-reducing-app-size` | Measures and optimizes the size of Flutter application bundles for deployment. | performance | Flutter | flutter/skills |
|
|
401
|
-
| `flutter-handling-concurrency` | Executes long-running tasks in background isolates to keep the UI responsive. | performance | Flutter | flutter/skills |
|
|
402
|
-
| `flutter-caching-data` | Implements caching strategies for Flutter apps to improve performance and offline support. | — | Flutter | flutter/skills |
|
|
403
|
-
|
|
404
|
-
</details>
|
|
405
|
-
|
|
406
|
-
<details>
|
|
407
|
-
<summary><strong>UI, layout and navigation</strong> (8)</summary>
|
|
408
|
-
|
|
409
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
410
|
-
|---|---|---|---|---|
|
|
411
|
-
| `flutter-building-layouts` | Builds Flutter layouts using the constraint system and layout widgets. | — | Flutter | flutter/skills |
|
|
412
|
-
| `flutter-build-responsive-layout` | Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. | — | Flutter | flutter/skills |
|
|
413
|
-
| `flutter-building-forms` | Builds Flutter forms with validation and user input handling. | — | Flutter | flutter/skills |
|
|
414
|
-
| `flutter-animating-apps` | Implements animated effects, transitions, and motion in a Flutter app. | — | Flutter | flutter/skills |
|
|
415
|
-
| `flutter-theming-apps` | Customizes the visual appearance of a Flutter app using the theming system. | — | Flutter | flutter/skills |
|
|
416
|
-
| `flutter-add-widget-preview` | Adds interactive widget previews to the project using the previews.dart system. | — | Flutter | flutter/skills |
|
|
417
|
-
| `flutter-setup-declarative-routing` | Configure `MaterialApp.router` using a package like `go_router` for advanced URL-based navigation. | — | Flutter | flutter/skills |
|
|
418
|
-
| `flutter-adding-home-screen-widgets` | Adds home screen widgets to a Flutter app for Android and iOS. | — | Flutter | flutter/skills |
|
|
419
|
-
|
|
420
|
-
</details>
|
|
421
|
-
|
|
422
|
-
<details>
|
|
423
|
-
<summary><strong>Data and networking</strong> (3)</summary>
|
|
424
|
-
|
|
425
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
426
|
-
|---|---|---|---|---|
|
|
427
|
-
| `flutter-use-http-package` | Use the `http` package to execute GET, POST, PUT, or DELETE requests. | — | Flutter | flutter/skills |
|
|
428
|
-
| `flutter-implement-json-serialization` | Create model classes with `fromJson` and `toJson` methods using `dart:convert`. | — | Flutter | flutter/skills |
|
|
429
|
-
| `flutter-working-with-databases` | Manages local data persistence using SQLite or other database solutions. | — | Flutter | flutter/skills |
|
|
430
|
-
|
|
431
|
-
</details>
|
|
432
|
-
|
|
433
|
-
<details>
|
|
434
|
-
<summary><strong>Native and plugins</strong> (3)</summary>
|
|
435
|
-
|
|
436
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
437
|
-
|---|---|---|---|---|
|
|
438
|
-
| `flutter-building-plugins` | Builds Flutter plugins that provide native interop for other apps to use. | — | Flutter | flutter/skills |
|
|
439
|
-
| `flutter-interoperating-with-native-apis` | Interoperates with native platform APIs on Android, iOS, and the web. | — | Flutter | flutter/skills |
|
|
440
|
-
| `flutter-embedding-native-views` | Embeds native Android, iOS, or macOS views into a Flutter app. | — | Flutter | flutter/skills |
|
|
441
|
-
|
|
442
|
-
</details>
|
|
443
|
-
|
|
444
|
-
<details>
|
|
445
|
-
<summary><strong>Security</strong> (2)</summary>
|
|
446
|
-
|
|
447
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
448
|
-
|---|---|---|---|---|
|
|
449
|
-
| `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 |
|
|
450
|
-
| `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 |
|
|
451
|
-
|
|
452
|
-
</details>
|
|
453
|
-
|
|
454
|
-
<details>
|
|
455
|
-
<summary><strong>Accessibility and internationalization</strong> (2)</summary>
|
|
456
|
-
|
|
457
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
458
|
-
|---|---|---|---|---|
|
|
459
|
-
| `flutter-improving-accessibility` | Configures a Flutter app to support assistive technologies like Screen Readers. | accessibility | Flutter | flutter/skills |
|
|
460
|
-
| `flutter-setup-localization` | Add `flutter_localizations` and `intl` dependencies, enable "generate true" in `pubspec.yaml`, and create an… | — | Flutter | flutter/skills |
|
|
461
|
-
|
|
462
|
-
</details>
|
|
463
|
-
|
|
464
|
-
<details>
|
|
465
|
-
<summary><strong>Firebase</strong> (1)</summary>
|
|
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 | — | — |
|
|
466
355
|
|
|
467
|
-
|
|
468
|
-
|---|---|---|---|---|
|
|
469
|
-
| `mobile-firebase` | Firebase on Flutter, native Android, native iOS and React Native: setup, Authentication, Firestore, Realtime Database, Storage, Functions, Messaging, Analytics, Crashlytics, Remote Config, App Check, In-App Messaging, AI Logic and SQL Connect, with a guide per platform and product. | — | all | reis-mobile, evanca/flutter-ai-rules |
|
|
470
|
-
|
|
471
|
-
</details>
|
|
472
|
-
|
|
473
|
-
<details>
|
|
474
|
-
<summary><strong>Native Android</strong> (25)</summary>
|
|
475
|
-
|
|
476
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
477
|
-
|---|---|---|---|---|
|
|
478
|
-
| `android-code-review` | Reviews native Android code in Kotlin and Java for the bugs that reach production — lifecycle and Context leaks… | review, performance | Android, kotlin-multiplatform | reis-mobile |
|
|
479
|
-
| `android-gradle-build-debug` | Diagnoses failing Android Gradle builds — JDK, Gradle, Android Gradle Plugin and Kotlin version mismatches… | debug, build, dependency, migration | Android, kotlin-multiplatform | reis-mobile |
|
|
480
|
-
| `android-intent-security` | Best practices for Android Intent security. | security, review | Android | android/skills |
|
|
481
|
-
| `android-agp-9-upgrade` | Upgrades, or migrates, an Android project to use Android Gradle Plugin (AGP) version 9. | migration, build, dependency | Android | android/skills |
|
|
482
|
-
| `android-r8-analyzer` | Analyzes Android build files and R8 keep rules to identify redundancies, broad package-wide rules, and rules that… | performance, build | Android | android/skills |
|
|
483
|
-
| `android-profiler` | Manages Android performance profiling and debugging. | performance | Android | android/skills |
|
|
484
|
-
| `android-play-policy-insights` | Automated auditor designed to verify Android applications against Google Play Policy domains. | release | Android | android/skills |
|
|
485
|
-
| `android-play-billing-library-version-upgrade` | Use this skill when upgrading or migrating an Android project from any legacy Google Play Billing Library (PBL)… | — | Android | android/skills |
|
|
486
|
-
| `android-engage-sdk-integration` | Helps developers integrate, debug, and resolve Play Engage SDK implementation issues. | — | Android | android/skills |
|
|
487
|
-
| `android-migrate-xml-views-to-jetpack-compose` | Provides a structured workflow for migrating an Android XML View to Jetpack Compose. | — | Android | android/skills |
|
|
488
|
-
| `android-adaptive` | Instructions to make or update an app's UI so that it adapts to different Android devices including phones… | — | Android | android/skills |
|
|
489
|
-
| `android-edge-to-edge` | Use this skill to migrate your Jetpack Compose app to add adaptive edge-to-edge support and troubleshoot common… | — | Android | android/skills |
|
|
490
|
-
| `android-styles` | Use this skill to integrate the Jetpack Compose Styles API into an Android project. | — | Android | android/skills |
|
|
491
|
-
| `android-navigation-3` | Learn how to install and migrate to Jetpack Navigation 3, and how to implement features and patterns such as deep… | — | Android | android/skills |
|
|
492
|
-
| `android-navigation-event` | Intercept back gestures and run Predictive Back animations using the NavigationEvent (androidx.navigationevent)… | — | Android | android/skills |
|
|
493
|
-
| `android-camerax` | Provide technical guidance for Android camera development with CameraX. | — | Android | android/skills |
|
|
494
|
-
| `android-media3-cast-integration` | Implements Google Cast support in Android apps using Jetpack Media3. | — | Android | android/skills |
|
|
495
|
-
| `android-restore-credentials` | Provides knowledge and workflows to implement Android's Restore Credentials feature using the androidx.credentials… | — | Android | android/skills |
|
|
496
|
-
| `android-verified-email` | Provides a complete workflow for implementing verified email retrieval on Android Credential Manager API. | — | Android | android/skills |
|
|
497
|
-
| `android-appfunctions` | Analyzes Android apps to identify key user workflows for AppFunctions such as creating a note, playing media, or… | — | Android | android/skills |
|
|
498
|
-
| `android-ml-kit-genai-prompt-api` | Analyzes Android codebases to implement ML Kit GenAI Prompt API. | — | Android | android/skills |
|
|
499
|
-
| `android-wear-compose-m3` | Expert guidance for working with Wear OS Compose Material3. | — | Android | android/skills |
|
|
500
|
-
| `android-leanback-to-compose-tv-migration` | Provides instructions and architectural patterns for migrating Android TV applications from legacy Leanback UI… | — | Android | android/skills |
|
|
501
|
-
| `android-display-glasses-with-jetpack-compose-glimmer` | Provides guidelines for developing projected Android XR apps for display glasses using the Jetpack Compose Glimmer… | — | Android | android/skills |
|
|
502
|
-
| `android-cli` | Provides instructions for installing and using the `android` CLI. | — | Android | android/skills |
|
|
503
|
-
|
|
504
|
-
</details>
|
|
505
|
-
|
|
506
|
-
<details>
|
|
507
|
-
<summary><strong>Native iOS</strong> (3)</summary>
|
|
508
|
-
|
|
509
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
510
|
-
|---|---|---|---|---|
|
|
511
|
-
| `ios-code-review` | Reviews native iOS code in Swift and Objective-C for the bugs that reach production — retain cycles in closures… | review, performance | iOS | reis-mobile |
|
|
512
|
-
| `ios-xcode-build-debug` | Diagnoses failing iOS builds in Xcode and xcodebuild — code signing and provisioning, deployment target… | debug, build, release, migration | iOS | reis-mobile |
|
|
513
|
-
| `ios-cocoapods-debug` | Diagnoses CocoaPods failures in iOS, Flutter and React Native projects — "could not find compatible versions"… | debug, dependency, build, migration | iOS | reis-mobile |
|
|
514
|
-
|
|
515
|
-
</details>
|
|
516
|
-
|
|
517
|
-
<details>
|
|
518
|
-
<summary><strong>Environment</strong> (2)</summary>
|
|
519
|
-
|
|
520
|
-
| Skill | What it does | Auto-routed for | Stack | Origin |
|
|
521
|
-
|---|---|---|---|---|
|
|
522
|
-
| `flutter-setting-up-on-macos` | Sets up a macOS environment for Flutter development. | — | Flutter | flutter/skills |
|
|
523
|
-
| `mobile-detect-stack` | Detects the mobile stack of the current project (Flutter, Android, iOS, React Native, Kotlin Multiplatform), its… | — | all | reis-mobile |
|
|
524
|
-
|
|
525
|
-
</details>
|
|
356
|
+
Skills marked — are triggered by Claude Code when the request matches their description, for example *"add push notifications with FCM"* → `mobile-firebase`.
|
|
526
357
|
|
|
527
|
-
|
|
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).
|
|
528
359
|
|
|
529
360
|
---
|
|
530
361
|
|
|
@@ -534,11 +365,11 @@ Third-party skills keep their original name and license. See [THIRD_PARTY_NOTICE
|
|
|
534
365
|
|
|
535
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).
|
|
536
367
|
|
|
537
|
-
**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.
|
|
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.
|
|
538
369
|
|
|
539
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`.
|
|
540
371
|
|
|
541
|
-
**Context cost.** The descriptions of the 16 agents and
|
|
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.
|
|
542
373
|
|
|
543
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.
|
|
544
375
|
|
|
@@ -561,9 +392,9 @@ Third-party skills keep their original name and license. See [THIRD_PARTY_NOTICE
|
|
|
561
392
|
| v0.3.5 | Distribution through npm and the Claude Code and Codex plugins only | ✅ |
|
|
562
393
|
| v0.3.6 | `reis-mobile init` installs in Claude Code and Codex | ✅ |
|
|
563
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) | ✅ |
|
|
564
|
-
| v0.5.0 |
|
|
565
|
-
| v0.6.0 | `/reis-mobile:
|
|
566
|
-
| v0.7.0 |
|
|
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 | ⏳ |
|
|
567
398
|
| v0.8.0 | MCP server | ⏳ |
|
|
568
399
|
| v0.9.0 | Multi-provider (OpenAI, Gemini, OpenRouter, Ollama) beyond the debate's `--external` | ⏳ |
|
|
569
400
|
| v1.0.0 | First stable version: Flutter, Android, iOS and React Native | ⏳ |
|
|
@@ -585,7 +416,7 @@ app: apps/mobile
|
|
|
585
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`.
|
|
586
417
|
|
|
587
418
|
**Does it work with native Android and iOS?**
|
|
588
|
-
Yes. Native Android
|
|
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).
|
|
589
420
|
|
|
590
421
|
**I already have skills with the same names in `~/.claude/skills`.**
|
|
591
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.
|
|
@@ -632,7 +463,7 @@ Questions: [Discussions](https://github.com/wrsilva/reis-mobile/discussions). Wh
|
|
|
632
463
|
- **[flutter/skills](https://github.com/flutter/skills)** (BSD-3-Clause): 25 Flutter skills.
|
|
633
464
|
- **[dart-lang/skills](https://github.com/dart-lang/skills)** (BSD-3-Clause): 8 Dart skills.
|
|
634
465
|
- **[evanca/flutter-ai-rules](https://github.com/evanca/flutter-ai-rules)** (MIT): 28 Flutter, testing and Firebase skills.
|
|
635
|
-
- **[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.
|
|
636
467
|
|
|
637
468
|
---
|
|
638
469
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
reis-mobile is distributed under the MIT License (see [LICENSE](LICENSE)). The skills listed below were derived from third-party projects and remain under their original licenses. Each of these skills declares `source` and `license` in its `SKILL.md` frontmatter.
|
|
4
4
|
|
|
5
|
-
Changes made by reis-mobile:
|
|
5
|
+
Changes made by reis-mobile: every third-party skill was moved into a reis-mobile skill (`mobile-test`, `mobile-firebase`, `mobile-code-review`, `mobile-debug`, `mobile-security`, `mobile-architecture`, `mobile-flutter`, `mobile-android`). Its instructions are unchanged apart from a leading attribution line and the removed frontmatter; skills that shipped extra files (references, scripts, examples) moved as whole folders with the instructions in `GUIDE.md`, so their relative links still work. Each section lists the upstream skill and the file that holds it now. Some copies correspond to earlier revisions of the upstream files.
|
|
6
6
|
|
|
7
7
|
## evanca/flutter-ai-rules
|
|
8
8
|
|
|
9
9
|
- Source: https://github.com/evanca/flutter-ai-rules
|
|
10
10
|
- License: MIT
|
|
11
|
-
- Skills (
|
|
12
|
-
-
|
|
13
|
-
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `firebase-ai` → `mobile-firebase/references/flutter/ai-logic.md`, `firebase-analytics` → `mobile-firebase/references/flutter/analytics.md`, `firebase-app-check` → `mobile-firebase/references/flutter/app-check.md`, `firebase-auth` → `mobile-firebase/references/flutter/auth.md`, `firebase-crashlytics` → `mobile-firebase/references/flutter/crashlytics.md`, `firebase-cloud-firestore` → `mobile-firebase/references/flutter/firestore.md`, `firebase-cloud-functions` → `mobile-firebase/references/flutter/functions.md`, `firebase-in-app-messaging` → `mobile-firebase/references/flutter/in-app-messaging.md`, `firebase-messaging` → `mobile-firebase/references/flutter/messaging.md`, `firebase-database` → `mobile-firebase/references/flutter/realtime-database.md`, `firebase-remote-config` → `mobile-firebase/references/flutter/remote-config.md`, `flutterfire-configure` → `mobile-firebase/references/flutter/setup-flutterfire.md`, `firebase-data-connect` → `mobile-firebase/references/flutter/sql-connect.md`, `firebase-storage` → `mobile-firebase/references/flutter/storage.md`, `mockito` → `mobile-test/references/flutter/mockito.md`, `mocktail` → `mobile-test/references/flutter/mocktail.md`, `patrol-e2e-testing` → `mobile-test/references/flutter/patrol.md`, `testing` → `mobile-test/references/flutter/testing-guidelines.md`
|
|
11
|
+
- Skills (0): none as standalone skills; all of its content lives in the files listed below
|
|
12
|
+
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `flutter-app-architecture` → `mobile-architecture/references/flutter/app-architecture.md`, `bloc` → `mobile-architecture/references/flutter/bloc.md`, `flutter-change-notifier` → `mobile-architecture/references/flutter/change-notifier.md`, `architecture-feature-first` → `mobile-architecture/references/flutter/feature-first.md`, `provider` → `mobile-architecture/references/flutter/provider.md`, `riverpod` → `mobile-architecture/references/flutter/riverpod.md`, `code-review` → `mobile-code-review/references/flutter/pr-review.md`, `flutter-errors` → `mobile-debug/references/flutter/errors.md`, `firebase-ai` → `mobile-firebase/references/flutter/ai-logic.md`, `firebase-analytics` → `mobile-firebase/references/flutter/analytics.md`, `firebase-app-check` → `mobile-firebase/references/flutter/app-check.md`, `firebase-auth` → `mobile-firebase/references/flutter/auth.md`, `firebase-crashlytics` → `mobile-firebase/references/flutter/crashlytics.md`, `firebase-cloud-firestore` → `mobile-firebase/references/flutter/firestore.md`, `firebase-cloud-functions` → `mobile-firebase/references/flutter/functions.md`, `firebase-in-app-messaging` → `mobile-firebase/references/flutter/in-app-messaging.md`, `firebase-messaging` → `mobile-firebase/references/flutter/messaging.md`, `firebase-database` → `mobile-firebase/references/flutter/realtime-database.md`, `firebase-remote-config` → `mobile-firebase/references/flutter/remote-config.md`, `flutterfire-configure` → `mobile-firebase/references/flutter/setup-flutterfire.md`, `firebase-data-connect` → `mobile-firebase/references/flutter/sql-connect.md`, `firebase-storage` → `mobile-firebase/references/flutter/storage.md`, `dart-3-updates` → `mobile-flutter/references/dart/dart-3.md`, `effective-dart` → `mobile-flutter/references/dart/effective-dart.md`, `mockito` → `mobile-test/references/flutter/mockito.md`, `mocktail` → `mobile-test/references/flutter/mocktail.md`, `patrol-e2e-testing` → `mobile-test/references/flutter/patrol.md`, `testing` → `mobile-test/references/flutter/testing-guidelines.md`
|
|
14
13
|
|
|
15
14
|
```text
|
|
16
15
|
MIT License
|
|
@@ -40,9 +39,8 @@ SOFTWARE.
|
|
|
40
39
|
|
|
41
40
|
- Source: https://github.com/dart-lang/skills
|
|
42
41
|
- License: BSD-3-Clause
|
|
43
|
-
- Skills (
|
|
44
|
-
-
|
|
45
|
-
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `dart-collect-coverage` → `mobile-test/references/flutter/coverage.md`, `dart-generate-test-mocks` → `mobile-test/references/flutter/generate-mocks.md`, `dart-migrate-to-checks-package` → `mobile-test/references/flutter/migrate-to-checks.md`, `dart-add-unit-test` → `mobile-test/references/flutter/unit-tests.md`
|
|
42
|
+
- Skills (0): none as standalone skills; all of its content lives in the files listed below
|
|
43
|
+
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `dart-run-static-analysis` → `mobile-code-review/references/flutter/static-analysis.md`, `dart-resolve-package-conflicts` → `mobile-debug/references/flutter/package-conflicts.md`, `dart-fix-runtime-errors` → `mobile-debug/references/flutter/runtime-errors.md`, `dart-use-pattern-matching` → `mobile-flutter/references/dart/pattern-matching/GUIDE.md`, `dart-collect-coverage` → `mobile-test/references/flutter/coverage.md`, `dart-generate-test-mocks` → `mobile-test/references/flutter/generate-mocks.md`, `dart-migrate-to-checks-package` → `mobile-test/references/flutter/migrate-to-checks.md`, `dart-add-unit-test` → `mobile-test/references/flutter/unit-tests.md`
|
|
46
44
|
|
|
47
45
|
```text
|
|
48
46
|
Copyright 2012, the Dart project authors.
|
|
@@ -77,8 +75,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
77
75
|
|
|
78
76
|
- Source: https://github.com/flutter/skills
|
|
79
77
|
- License: BSD-3-Clause
|
|
80
|
-
- Skills (
|
|
81
|
-
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `flutter-add-integration-test` → `mobile-test/references/flutter/integration-tests.md`, `flutter-add-widget-test` → `mobile-test/references/flutter/widget-tests.md`
|
|
78
|
+
- Skills (0): none as standalone skills; all of its content lives in the files listed below
|
|
79
|
+
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `flutter-managing-state` → `mobile-architecture/references/flutter/managing-state.md`, `flutter-apply-architecture-best-practices` → `mobile-architecture/references/flutter/recommended-architecture.md`, `flutter-fix-layout-issues` → `mobile-debug/references/flutter/layout-issues.md`, `flutter-improving-accessibility` → `mobile-flutter/references/accessibility-i18n/accessibility.md`, `flutter-setup-localization` → `mobile-flutter/references/accessibility-i18n/localization.md`, `flutter-caching-data` → `mobile-flutter/references/data/caching.md`, `flutter-working-with-databases` → `mobile-flutter/references/data/databases.md`, `flutter-use-http-package` → `mobile-flutter/references/data/http.md`, `flutter-implement-json-serialization` → `mobile-flutter/references/data/json-serialization.md`, `flutter-interoperating-with-native-apis` → `mobile-flutter/references/native/native-apis.md`, `flutter-embedding-native-views` → `mobile-flutter/references/native/native-views.md`, `flutter-building-plugins` → `mobile-flutter/references/native/plugins.md`, `flutter-reducing-app-size` → `mobile-flutter/references/performance/app-size.md`, `flutter-handling-concurrency` → `mobile-flutter/references/performance/concurrency.md`, `flutter-setting-up-on-macos` → `mobile-flutter/references/setup/macos.md`, `flutter-animating-apps` → `mobile-flutter/references/ui/animations.md`, `flutter-building-forms` → `mobile-flutter/references/ui/forms.md`, `flutter-adding-home-screen-widgets` → `mobile-flutter/references/ui/home-screen-widgets.md`, `flutter-building-layouts` → `mobile-flutter/references/ui/layouts.md`, `flutter-build-responsive-layout` → `mobile-flutter/references/ui/responsive-layout.md`, `flutter-setup-declarative-routing` → `mobile-flutter/references/ui/routing.md`, `flutter-theming-apps` → `mobile-flutter/references/ui/theming.md`, `flutter-add-widget-preview` → `mobile-flutter/references/ui/widget-previews.md`, `flutter-add-integration-test` → `mobile-test/references/flutter/integration-tests.md`, `flutter-add-widget-test` → `mobile-test/references/flutter/widget-tests.md`
|
|
82
80
|
|
|
83
81
|
```text
|
|
84
82
|
Copyright 2026 The Flutter Authors. All rights reserved.
|
|
@@ -114,10 +112,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
114
112
|
- Source: https://github.com/android/skills
|
|
115
113
|
- Revision: `466e1b5c5beb86cde9d35c81c2ffd26c6aef0502` (2026-09-15)
|
|
116
114
|
- License: Apache-2.0
|
|
117
|
-
- Skills (
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
- Changes made by reis-mobile: each skill folder was moved from its category path (for example `performance/r8-analyzer/`) to `skills/<name>/` and renamed with the `android-` prefix where it did not have it; in each `SKILL.md` frontmatter, `license: Complete terms in LICENSE.txt` was replaced by `license: Apache-2.0` and `source`, `stacks` and `intents` or `routing` were added. The instructions, references, resources and scripts are unchanged.
|
|
115
|
+
- Skills (0): none as standalone skills; all of its content lives in the files listed below
|
|
116
|
+
- Adapted into reis-mobile skills (upstream skill → file under `skills/`): `agp-9-upgrade` → `mobile-android/references/build-and-performance/agp-9-upgrade/GUIDE.md`, `android-cli` → `mobile-android/references/build-and-performance/android-cli/GUIDE.md`, `android-profiler` → `mobile-android/references/build-and-performance/android-profiler/GUIDE.md`, `r8-analyzer` → `mobile-android/references/build-and-performance/r8-analyzer/GUIDE.md`, `display-glasses-with-jetpack-compose-glimmer` → `mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/GUIDE.md`, `leanback-to-compose-tv-migration` → `mobile-android/references/devices/leanback-to-compose-tv-migration/GUIDE.md`, `wear-compose-m3` → `mobile-android/references/devices/wear-compose-m3/GUIDE.md`, `restore-credentials` → `mobile-android/references/identity/restore-credentials/GUIDE.md`, `verified-email` → `mobile-android/references/identity/verified-email/GUIDE.md`, `camerax` → `mobile-android/references/media/camerax/GUIDE.md`, `media3-cast-integration` → `mobile-android/references/media/media3-cast-integration/GUIDE.md`, `appfunctions` → `mobile-android/references/on-device-ai/appfunctions/GUIDE.md`, `ml-kit-genai-prompt-api` → `mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/GUIDE.md`, `engage-sdk-integration` → `mobile-android/references/play/engage-sdk-integration/GUIDE.md`, `play-billing-library-version-upgrade` → `mobile-android/references/play/play-billing-library-version-upgrade/GUIDE.md`, `play-policy-insights` → `mobile-android/references/play/play-policy-insights/GUIDE.md`, `adaptive` → `mobile-android/references/ui/adaptive/GUIDE.md`, `edge-to-edge` → `mobile-android/references/ui/edge-to-edge/GUIDE.md`, `migrate-xml-views-to-jetpack-compose` → `mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/GUIDE.md`, `navigation-3` → `mobile-android/references/ui/navigation-3/GUIDE.md`, `navigation-event` → `mobile-android/references/ui/navigation-event/GUIDE.md`, `styles` → `mobile-android/references/ui/styles/GUIDE.md`, `android-intent-security` → `mobile-security/references/android/intent-security.md`, `testing-setup` → `mobile-test/references/android/setup/GUIDE.md`
|
|
117
|
+
- Changes made by reis-mobile: each skill folder was moved from its category path (for example `performance/r8-analyzer/`) into `skills/mobile-android/references/<topic>/<skill>/` (the testing and intent security skills into `mobile-test` and `mobile-security`), its `SKILL.md` renamed to `GUIDE.md` and its frontmatter replaced by an attribution line. The instructions, references, resources and scripts are unchanged.
|
|
121
118
|
|
|
122
119
|
```text
|
|
123
120
|
|
|
@@ -55,7 +55,7 @@ Your mission is to find and remove the bottlenecks users feel: dropped frames, A
|
|
|
55
55
|
|
|
56
56
|
### Background work, battery and size
|
|
57
57
|
- Periodic or long work outside `WorkManager`, wakelocks held too long, polling instead of push
|
|
58
|
-
- Release builds without R8 (`isMinifyEnabled`) and resource shrinking (`isShrinkResources`); keep rules that disable shrinking for whole packages (see the `android
|
|
58
|
+
- Release builds without R8 (`isMinifyEnabled`) and resource shrinking (`isShrinkResources`); keep rules that disable shrinking for whole packages (see the R8 guide in the `mobile-android` skill)
|
|
59
59
|
|
|
60
60
|
Confirm the AGP, Kotlin and Compose versions in the build files before recommending APIs or compiler options that depend on them.
|
|
61
61
|
|
|
@@ -67,7 +67,7 @@ Confirm the AGP, Kotlin and Compose versions in the build files before recommend
|
|
|
67
67
|
4. Check resource ownership and cancellation for leaks.
|
|
68
68
|
5. Review release build configuration for size.
|
|
69
69
|
|
|
70
|
-
Prefer measurements over inference when they exist: Android Studio profilers, Perfetto traces, Macrobenchmark results, Play Console vitals. The `android
|
|
70
|
+
Prefer measurements over inference when they exist: Android Studio profilers, Perfetto traces, Macrobenchmark results, Play Console vitals. The `mobile-android` skill's profiler guide covers recording and analyzing traces. Say which findings are inferred from code only.
|
|
71
71
|
|
|
72
72
|
## Output
|
|
73
73
|
|
|
@@ -16,6 +16,8 @@ You are a senior mobile engineer doing code review. Your job is to find what bre
|
|
|
16
16
|
- **Project audit.** There are no changes. Prioritize the entry points (`main.dart`, `Application`/`MainActivity`, `AppDelegate`/`@main`, `App.tsx`), the data layer, authentication and the most complex screens.
|
|
17
17
|
- **Called via /reis-mobile:review.** The command has already detected the stack and loaded the skills. Follow their checklists; do not redo the detection.
|
|
18
18
|
|
|
19
|
+
The `mobile-code-review` skill holds the review process and a checklist per platform (`references/flutter.md`, `android.md`, `ios.md`, `react-native.md`); read the one for the project's stack.
|
|
20
|
+
|
|
19
21
|
## Process
|
|
20
22
|
|
|
21
23
|
1. Confirm the stack and the target platforms (use the router result when available).
|
package/agents/rn-architect.md
CHANGED
|
@@ -62,7 +62,7 @@ src/
|
|
|
62
62
|
- Native modules called directly from many places instead of one wrapper
|
|
63
63
|
|
|
64
64
|
**Configuration**
|
|
65
|
-
- Secrets in `.env` files bundled into the app (see `mobile-security
|
|
65
|
+
- Secrets in `.env` files bundled into the app (see `mobile-security`)
|
|
66
66
|
- Missing or loose TypeScript settings (`strict` off) in a codebase that relies on types
|
|
67
67
|
|
|
68
68
|
## Process
|
package/commands/debug.md
CHANGED
|
@@ -37,7 +37,7 @@ The CLI output has a `Language` line. Write everything the user reads in that la
|
|
|
37
37
|
Read with the Read tool, in this order:
|
|
38
38
|
|
|
39
39
|
1. `${CLAUDE_PLUGIN_ROOT}/agents/<Agent>.md`;
|
|
40
|
-
2. `${CLAUDE_PLUGIN_ROOT}/skills/<skill>/SKILL.md` for each listed skill.
|
|
40
|
+
2. `${CLAUDE_PLUGIN_ROOT}/skills/<skill>/SKILL.md` for each listed skill. `mobile-debug` maps the stack and the `area` from step 1 to its platform references; read the reference for each layer the failure crosses (a Flutter build that fails inside Gradle needs the Flutter and the Android references).
|
|
41
41
|
|
|
42
42
|
## 3. Diagnose
|
|
43
43
|
|
|
@@ -8,14 +8,15 @@ import { parseFrontmatter } from './frontmatter.mjs';
|
|
|
8
8
|
|
|
9
9
|
export const ANY_STACK = '*';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
'
|
|
18
|
-
'
|
|
11
|
+
/**
|
|
12
|
+
* Every skill starts with `mobile-`. A topic skill covers every stack (`stacks: ["*"]`) with a
|
|
13
|
+
* reference per platform; a platform skill is named after the one stack it covers.
|
|
14
|
+
*/
|
|
15
|
+
export const PLATFORM_SKILLS = {
|
|
16
|
+
'mobile-flutter': 'flutter',
|
|
17
|
+
'mobile-android': 'android',
|
|
18
|
+
'mobile-ios': 'ios',
|
|
19
|
+
'mobile-rn': 'react-native',
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -119,9 +120,15 @@ export function validateRegistry({ stacks, agents, skills }) {
|
|
|
119
120
|
|
|
120
121
|
if (component.source && !component.license) errors.push(`${label}: "source" requires "license"`);
|
|
121
122
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
if (component.kind === 'skill' && component.name) {
|
|
124
|
+
const platform = PLATFORM_SKILLS[component.name];
|
|
125
|
+
if (!component.name.startsWith('mobile-')) {
|
|
126
|
+
errors.push(`${label}: skill name must start with "mobile-"`);
|
|
127
|
+
} else if (platform && !(component.stacks.length === 1 && component.stacks[0] === platform)) {
|
|
128
|
+
errors.push(`${label}: platform skill ${component.name} must declare stacks: [${platform}]`);
|
|
129
|
+
} else if (!platform && !(component.stacks.length === 1 && component.stacks[0] === ANY_STACK)) {
|
|
130
|
+
errors.push(`${label}: topic skill must declare stacks: ["*"], or be one of ${Object.keys(PLATFORM_SKILLS).join(', ')}`);
|
|
131
|
+
}
|
|
125
132
|
}
|
|
126
133
|
|
|
127
134
|
for (const intent of component.intents) {
|