flutter-go-router-engineering

Installation
SKILL.md

Flutter go_router Engineering

Use go_router as a URL-aware navigation architecture, not as a mechanical replacement for every Navigator call.

Non-negotiable rules

  1. Inspect the current router, package versions, route tree, keys, redirects, shells, deep-link setup, web strategy, and tests before editing.
  2. Treat externally visible URLs as compatibility contracts.
  3. Keep one stable GoRouter instance and stable navigator keys.
  4. Keep route builders synchronous, predictable, and cheap.
  5. Put route-critical identity in path/query data, not only in extra.
  6. Validate path/query values as external input.
  7. Keep secrets out of ordinary URLs and route telemetry.
  8. Use go for canonical location changes; use push only for intentional stack history.
  9. Use ShellRoute for one nested stack under persistent chrome.
  10. Use StatefulShellRoute only for genuinely independent branch stacks.
  11. Use parentNavigatorKey only to express intentional Navigator ownership.
  12. Centralize global authentication routing.
  13. Model auth loading separately from signed-out state.
  14. Keep redirects deterministic and based on already-available state.
  15. Do not perform network/database work in redirect callbacks or route builders.
  16. Keep Bloc/Cubit/domain code independent of BuildContext and GoRouter where practical.
Installs
8
GitHub Stars
9
First Seen
Oct 12, 2026