Implement typed routing, nested routes, and auth guards using auto_route in Flutter. Use when the task explicitly uses auto_route or its generated router; defer generic deep-link setup and other routing libraries.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill flutter-auto-route-navigation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Flutter Auto Route Navigation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-flutter-auto-route-navigation)More formats (shields.io, HTML) on the badges page.
---
name: flutter-auto-route-navigation
description: Implement typed routing, nested routes, and auth guards using auto_route in Flutter. Use when the task explicitly uses auto_route or its generated router; defer generic deep-link setup and other routing libraries.
metadata:
triggers:
files:
- '**/router.dart'
- '**/app_router.dart'
keywords:
- AutoRoute
- AutoRouter
- router
- guards
- navigate
- push
---
# AutoRoute Navigation
## **Priority: P1 (HIGH)**
## Structure
```text
core/router/
├── app_router.dart # Router configuration
└── app_router.gr.dart # Generated routes
```
## Implementation Workflow
1. **Annotate pages** — Mark all screen/page widgets with `@RoutePage()`.
2. **Configure router** — Extend `_$AppRouter` and annotate with `@AutoRouterConfig`.
3. **Navigate with types** — Use generated route classes (e.g., `HomeRoute()`). Never use strings.
4. **Add guards** — Implement `AutoRouteGuard` for authentication/authorization logic.
5. **Handle parameters** — Constructors of `@RoutePage` widgets automatically become route parameters.
6. **Prefer declarative calls** — Use `context.pushRoute()` or `context.replaceRoute()`.
### Nested Routes & Tabs
Use `children` in `AutoRoute` for tabs. Pass `children` parameter to define initial active sub-route.
See [implementation examples](references/implementation.md) for nested route navigation and router configuration patterns.
## Reference & Examples
For full Router configuration and Auth Guard implementation:
See [references/REFERENCE.md](references/REFERENCE.md).
## Anti-Patterns
- **No string-based navigation**: Use generated typed route classes (e.g., `OrderDetailRoute(id: 123)`).
- **No protected screen without AutoRouteGuard**: Every protected route must declare guard; don't rely on UI-level checks.
- **No navigation calls from BLoC**: Emit state and let Presentation layer navigate.
## References
- [go-router-navigation](../flutter-navigation/SKILL.md) | [layer-based-clean-architecture](../../common/common-clean-architecture/SKILL.md)
## Canonical response anchors
When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
- Use generated
- Additional task-grounded exact anchors: generated typedIs this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!