← ClaudeAtlas

flutterlisted

Flutter 게임 개발 절차 — 순수 코어, 위젯·골든 테스트, 플레이버 다작, Flame(쓸 때와 안 쓸 때), 폰게임 축. 트리거 "플러터", "Flutter", "Dart 게임", "Flame", "플레이버", "폰 게임".
snwlee/Nereus · ★ 2 · AI & Automation · score 75
Install: claude install-skill snwlee/Nereus
# flutter nereus:common 규칙을 따른다. 워크플로는 **nereus 코어가 소유한다**. 제작 층 판단(코어 루프 · 계층 경계 · 수직 슬라이스 · 서버 권위)은 `nereus-game:craft` 가 하고 여기서 되풀이하지 않는다. 이 스킬은 **Flutter 고유 절차**만 담는다. ## 1. 스택 판정은 코어 것을 쓴다 코어가 이미 `pubspec.yaml` → `flutter`, `dev_dependencies` 의 `flutter_test` → `flutter test` 를 판정한다. **`nereus-extension.json` 의 `stacks` 에 flutter 를 넣지 않는다** — 같은 것을 두 곳이 정하면 어긋날 때 어느 쪽이 진실인지 알 수 없다. 여기는 **게임에 필요한 사실**을 얹는다: ```bash echo '{"root":"."}' | node "${CLAUDE_PLUGIN_ROOT}/lib/flutter-stack.mjs" ``` `detectFlutterGame` 한 번이면 다른 검사기의 입력이 전부 나온다: ``` detectFlutterGame → { runner, flame, flavors, layers, notes } ↓ ↓ parity-check purity-check ``` **`flavors` 가 `null` 이면 "없다"가 아니라 "못 찾았다"** 이고 이유가 `notes` 에 실린다. 빈 배열을 넘기면 `parity-check` 가 플레이버 없는 프로젝트로 읽어 검사 대상이 아니라고 판정한다. ## 2. 순수 코어 — Flutter 에서 무엇이 순수인가 `craft` 의 판정 질문을 그대로 쓴다: **위젯 트리와 기기 없이 호출해 결과를 단언할 수 있는가.** 순수 층에 들어오면 안 되는 것: `package:flutter/` · `dart:ui` · `dart:io` · 플러그인 패키지(저장·광고·Firebase·경로) · 상태 관리 패키지. `layers.json` 의 flutter 경계가 이것을 데이터로 들고 있고 `purity-check` 가 집행한다. **`dart:ui` 가 특히 새기 쉽다.** `Color` · `Offset` · `Size` 가 거기 있어서 "이 정도는 값 타입인데" 하고 들이게 된다. 들이는 순간 그 파일은 순수가 아니고, 색·좌표 계산을 위젯 없이 골든으로 고정할 수 없게 된다. 자기 값 타입을 쓰고 표현 층에서 변환한다. **설정과 규칙을 같은 층에 두지 않는다.** 원격 설정이 규칙 층에 스며들면 플래그 하나가 규칙을 바꾸는 경로가 숨는다. 규칙은 값을 인자로 받고, 어디서 읽는지는 몰라야 한다. ## 3. 테스트 — 층마다 도구가 다르다 | 층 | 도구 | 특징 | |---|---|---| | 순수 규칙 | `test` (순수 Dart) | 밀리초. 여기로 최대한 민다 |