@hoangnguyen0403/flutter-navigation
AImplement route configuration, go_router/deep linking, and named routes in Flutter. Use for route declarations, route guards, and URL-to-screen mapping; defer transition-only animation, state-transfer/BLoC questions, auto_route-specific setup, and generic app-bar controls.
Install
agr install @hoangnguyen0403/flutter-navigation --target claudeWrites 1 file into .claude/skills/, pinned to git-6f583f73.
- .claude/skills/flutter-navigation/SKILL.md
Document
name: flutter-navigation description: Implement route configuration, go_router/deep linking, and named routes in Flutter. Use for route declarations, route guards, and URL-to-screen mapping; defer transition-only animation, state-transfer/BLoC questions, auto_route-specific setup, and generic app-bar controls. metadata: triggers: files: - '/*_route.dart' - '/*_router.dart' - '**/main.dart' keywords: - Navigator - GoRouter - routes - deep link - go_router - AutoRoute
Flutter Navigation
Priority: P1 (HIGH)
Implementation Workflow
- Choose router — Use
go_routerfor modern, declarative routing. - Define routes — Use constants or code generation for route paths; never hardcode strings.
- Configure deep links — Set up
AndroidManifest.xmland the iOS URL-type settings for app URL schemes. - Validate parameters — Check parameters in
redirectlogic before navigation. - Preserve tab state — Use
StatefulShellRouteorIndexedStackfor bottom navigation.
Route Configuration Example
See implementation examples for GoRouter configuration with parameter validation and redirects.
Anti-Patterns
- No Manual URL Parsing: Use
go_routerbuilt-in parsing instead ofUri.parse(url) - No Manual Tab State Management: Use
IndexedStackorStatefulShellRouteto preserve state - No Unvalidated Deep Link IDs: Always check existence in
redirect - No Hardcoded Route Strings: Use constants (e.g.,
Routes.orders) or code-gen instead of'/orders'
Related Topics
flutter-design-system | flutter-notifications | mobile-ux-core
Canonical response anchors
When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
- Android
- iOS URL-type
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-6f583f7333952026-07-31