> flutter-go-router-navigation

Typed routes, route state, and redirection using go_router. Use when implementing go_router typed routes, guards, or redirects in Flutter. (triggers: **/router.dart, **/app_router.dart, GoRouter, GoRoute, StatefulShellRoute, redirection, typed-routes)

fetch
$curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/flutter-go-router-navigation?format=md"
SKILL.mdflutter-go-router-navigation

GoRouter Navigation

Priority: P0 (CRITICAL)

Type-safe deep linking and routing system using go_router and go_router_builder.

Structure

core/router/
├── app_router.dart # Router configuration
└── routes.dart # Typed route definitions (GoRouteData)

Implementation Guidelines

  • Typed Routes: Always use GoRouteData and @TypedGoRoute from go_router_builder. Never use raw path strings.
  • Parameters: Define strongly-typed parameters in the route class (e.g., class OrderDetailRoute extends GoRouteData { final String id; }) with paths like '/orders/:id'.
  • Root Router: One global GoRouter instance registered in DI.
  • Sub-Routes: Nest related routes using TypedGoRoute and children lists.
  • Redirection: Handle Auth (Login check) in the redirect callback of the GoRouter config: redirect: (context, state) => isLoggedIn ? null : '/login'. Do NOT check auth inside the page widget.
  • Tabs: Use StatefulShellRoute with branches for a bottom tab bar (Home, Orders, Profile) so each tab maintains its own navigation stack.
  • Transitions: Define standard transitions (Fade, Slide) in buildPage.
  • Navigation: Use MyRoute().go(context) or MyRoute().push(context). Using OrderDetailRoute(id: id).go(context) is the only allowed way to navigate.

Code

// Route Definition
@TypedGoRoute<HomeRoute>(path: '/')
class HomeRoute extends GoRouteData {
  @override
  Widget build(context, state) => const HomePage();
}

// Router Config
final router = GoRouter(
  routes: $appRoutes,
  redirect: (context, state) {
    if (notAuthenticated) return '/login';
    return null;
  },
);

Anti-Patterns

  • context.go('/orders/123') with a raw string path — always use typed GoRouteData classes (e.g., OrderDetailRoute(id: 123).go(context))
  • ❌ Auth check inside the page widget's build() — redirect logic belongs in the GoRouter.redirect callback, not the UI
  • ❌ Multiple GoRouter instances — register one global instance in DI and share it throughout the app
  • ❌ Navigating to a deep link without validating the ID in redirect — always verify IDs/parameters exist before building the route

Related Topics

layer-based-clean-architecture | auto-route-navigation | security

> related_skills --same-repo

> common-store-changelog

Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve

> golang-tooling

Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)

> common-ui-design

Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)

> common-owasp

OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)

┌ stats

installs/wk0
░░░░░░░░░░
github stars452
██████████
first seenMar 17, 2026
└────────────

┌ repo

HoangNguyen0403/agent-skills-standard
by HoangNguyen0403
└────────────

┌ tags

└────────────