# flutter-navigation

Скилл для ИИ-агента, который разбирается с навигацией во Flutter: Navigator, go_router, диплинки, редиректы и история браузера.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 589 установок · ★ 110
- Автор: Stanislav \[MADTeacher\] Chernyshev
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/MADTeacher/mad-agents-skills/tree/HEAD/flutter-navigation/SKILL.md
- Обновлён: 2026-05-01
- HTML: https://affpapa.org/nevibecode/skills/flutter-navigation

## Что делает

Скилл превращает агента в исполнителя по навигации Flutter. Он берётся за переходы между экранами, передачу и возврат данных, миграцию роутов, `ShellRoute` и `StatefulShellRoute`, вложенные `Navigator`, редиректы авторизации, обработку 404 и тесты роутов. Внутри — рабочий процесс из семи шагов и таблица решений: когда хватит `Navigator` с `MaterialPageRoute`, а когда нужен `go_router`.

Сначала агент смотрит на проект: `pubspec.yaml`, `lib/`, корень приложения, существующие роуты, провайдеры состояния и авторизации, платформенные папки, конфиг веб-хостинга и тесты. Потом выбирает минимальную модель роутинга под задачу и правит код в стиле приложения. Есть отдельные справочники по `go_router`, диплинкам, вебу и паттернам навигации, плюс стартовые примеры вроде `navigator_basic.dart` и `go_router_basic.dart` — их копируют только после адаптации имён классов.

Правила жёсткие: не смешивать модели навигации без нужды, не передавать `queryParameters` в `context.push` или `context.go`, не хранить в URL сложное состояние, не класть в `extra` данные, которые должны пережить перезагрузку. Для iOS Universal Links домены настраиваются в Xcode или `ios/Runner/Runner.entitlements`, а не в `Info.plist`. Если приложение уже использует `go_router`, переходы на `Navigator` для основных роутов сломают диплинки — это повод проверить, чем именно вызывается переход.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add MADTeacher/mad-agents-skills --skill flutter-navigation -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/flutter-navigation/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/flutter-navigation/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add MADTeacher/mad-agents-skills --skill flutter-navigation -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/flutter-navigation/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add MADTeacher/mad-agents-skills --skill flutter-navigation -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/flutter-navigation/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install MADTeacher/mad-agents-skills flutter-navigation
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/flutter-navigation/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add MADTeacher/mad-agents-skills --skill flutter-navigation -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/MADTeacher/mad-agents-skills --path flutter-navigation
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/flutter-navigation/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add MADTeacher/mad-agents-skills --skill flutter-navigation -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/MADTeacher/mad-agents-skills/tree/HEAD/flutter-navigation/SKILL.md

## Когда брать
- выбрать между `Navigator` и `go_router` под конкретную задачу
- настроить редирект на логин с возвратом на исходный экран
- сделать вкладки с независимыми стеками через `StatefulShellRoute`
- починить URL и историю браузера во Flutter web
- развести Android App Links и iOS Universal Links по платформам

## Примеры запросов агенту
- настрой go_router с редиректом на логин и возвратом на исходный роут
- почему у меня ломается история браузера после перехода на path URL strategy
- добавь тесты на парсинг роутов и экран 404

## Похожие
- [flutter-development](https://affpapa.org/nevibecode/skills/flutter-development.md) — скилл · 719 установок
- [flutter](https://affpapa.org/nevibecode/skills/alinaqi-flutter.md) — скилл · 736 установок
- [flutter-setup-declarative-routing](https://affpapa.org/nevibecode/skills/flutter-setup-declarative-routing.md) — скилл · 37800 установок
- [navigation-3](https://affpapa.org/nevibecode/skills/navigation-3.md) — скилл · 3200 установок
- [flutter-build-responsive-layout](https://affpapa.org/nevibecode/skills/flutter-build-responsive-layout.md) — скилл · 42500 установок
- [flutter-expert](https://affpapa.org/nevibecode/skills/httpsgithubcomjeffallan-flutter-expert.md) — скилл · 14300 установок

Из того же набора: [madteacher/mad-agents-skills](https://affpapa.org/nevibecode/by/madteacher/mad-agents-skills.md) — 10 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
