# navigation

> Claude/Codex skill by [@verygoodopensource](https://omgskills.com/library/verygoodopensource/index.md) · 173 stars · Updated 2026-10-20

Best practices for navigation and routing in Flutter using GoRouter, covering hierarchical route trees, type-safe \`@TypedGoRoute\` definitions, named navigation, redirects, and deep linking setup. Use when creating, modifying, or reviewing routes, deep links, redirects, or navigation logic that uses package:go\_router or package:go\_router\_builder, including widget tests that mock GoRouter or provide it through \`InheritedGoRouter\`. Also use for call-site navigation, however small: an \`onTap\`, button, or tap handler that takes the user from one screen to another, choosing between \`context.go\`, \`goNamed\`, \`context.push\`, \`pushNamed\`, or \`pop\`, navigating to a path such as \`/products/p1\`, passing data to a destination, or returning a result to the caller. A one-line navigation call is still navigation work. Route motion belongs to the animations skill, even inside a \`GoRouteData\` subclass.

Tags: a11y, ai, best-practices, bloc, claude-code, dart, flutter, i18n, l10n, plugin, skills, state-management, testing, very-good-analysis, very-good-cli

## Install

```sh
git clone https://github.com/VeryGoodOpenSource/vgv-ai-flutter-plugin /tmp/vgv-ai-flutter-plugin && ln -s /tmp/vgv-ai-flutter-plugin/skills/navigation ~/.claude/skills/navigation
```

## From README

Navigation Routing and navigation best practices for Flutter applications using GoRouter, the Flutter team's recommended routing package built on the Navigator 2.0 API. Core Standards Apply these standards to all navigation work: Use package:gorouter for all navigation — never raw Navigator 2.0 or Navigator 1.0 push/pop Use @TypedGoRoute annotations for type-safe routes — never raw string paths in route definitions Prefer go() over push() — use push() only when expecting return data from the destination Never use the extra parameter — it breaks deep linking and does not work on the web Hierarchical sub-routes for proper back navigation — structure routes as parent-child trees, not flat lists Hyphens for URL word separation — never underscores or camelCase in URL paths Navigate by route name, not raw path strings — use named route navigation to decouple from path changes Use BuildContext extensions for navigation — prefer context.goNamed() over GoRouter.of(context).goNamed() Route...

## Links

- HTML page: https://omgskills.com/library/verygoodopensource/vgv-ai-flutter-plugin/skills/navigation/
- GitHub: https://github.com/VeryGoodOpenSource/vgv-ai-flutter-plugin
- Author: [@verygoodopensource](https://omgskills.com/library/verygoodopensource/index.md)

## More from this repo

- [accessibility](https://omgskills.com/library/verygoodopensource/vgv-ai-flutter-plugin/skills/accessibility/index.md) — Audits or remediates Flutter widgets against WCAG 2.2 conformance levels A, AA, or AAA across iOS, Android, Web, macOS,...
   - [@verygoodopensource](https://omgskills.com/library/verygoodopensource/index.md) · 173 stars
- [animations](https://omgskills.com/library/verygoodopensource/vgv-ai-flutter-plugin/skills/animations/index.md) — Best practices for Flutter animations using the built-in animation framework, covering implicit animations, explicit...
   - [@verygoodopensource](https://omgskills.com/library/verygoodopensource/index.md) · 173 stars
- [bloc](https://omgskills.com/library/verygoodopensource/vgv-ai-flutter-plugin/skills/bloc/index.md) — Best practices for Bloc state management in Flutter/Dart, covering Cubit versus Bloc, event and state naming, sealed...
   - [@verygoodopensource](https://omgskills.com/library/verygoodopensource/index.md) · 173 stars
