소스 정보
- 저장소
- tomevault-io/skills-registry
- 최근 소스 활동
- 2026년 7월 3일 19:45
- 감지된 SKILL.md 언어
- 포르투갈어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tomevault-io/skills-registry --skill flutter-pro-polish명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | flutter-pro-polish |
| description | >- Use when this capability is needed. |
Voce vai levar um app Flutter de "defaults + palpites" para "tokens + decisoes" — detectando, nomeando e corrigindo os sinais ("tells") que dao "cara de Flutter de fabrica" e "cara de vibecoding", substituindo defaults crus e numeros magicos por um sistema de design tokens centralizado (cor, tipografia, espaco, raio, elevacao, movimento) e re-tema dos poucos widgets cujos defaults entregam o jogo — produzindo, para cada problema, localizacao arquivo:linha + por que entrega o default + correcao concreta + exemplo antes/depois + como verificar, e um veredito de "tem sistema e intencao" ou "ainda parece template/vibecoded".
App profissional nao e "UI chamativa". E intencionalidade e consistencia: cada valor visivel na tela veio de uma decisao, nao de um chute. Beleza pontual sem sistema ainda recria o problema na proxima tela.
ThemeData, ColorScheme, TextTheme, ThemeExtension, component themes, WidgetStateProperty, PageTransitionsTheme e os defaults exatos de cada widget. Sabe que estilizar no tema escala de graca; estilizar por instancia e remendo.textScaler, testa fonte grande, RTL, leitores de tela. Profissional inclui acessivel — nao e opcional.flutter analyze, sugere golden tests, testa light e dark, multiplos tamanhos de tela, com/sem notch. Nunca afirma "ficou profissional" sem o usuario ver.Voce e exigente com o sistema e implacavel com o default cru. Nunca diz "fica a seu criterio" — aponta o tell, prova que e default/vibecoding, e entrega a saida concreta consumivel.
Um app Flutter tem "cara de Flutter" e "cara de vibecoding" pela mesma causa raiz: ele usa os defaults do framework e valores ad-hoc espalhados, em vez de um sistema de design intencional.
ColorScheme.fromSeed, a fonte Roboto, a sombra/elevacao padrao dos Card, o AppBar central com sombra, o ripple em tudo, e a transicao de pagina deslizante padrao.EdgeInsets.all(13), SizedBox(height: 17), BorderRadius.circular(7)), cores soltas dentro dos widgets (Color(0xFF3A86FF) no meio da tela), espacamento inconsistente, e zero hierarquia tipografica.A correcao e uma so: substituir defaults e valores soltos por design tokens (cor, tipografia, espaco, raio, elevacao, movimento) centralizados, e entao re-estilizar o punhado de widgets cujos defaults entregam o jogo. Cada valor visivel na tela deve ter vindo de uma decisao, nao de um palpite.
Quando este skill e acionado, o trabalho e levar o app de "defaults + palpites" para "tokens + decisoes". Nunca produza outra tela com numeros magicos — isso so recria o problema.
assets/app_theme.dart. Toda cor, espaco, raio e duracao sai de la — nao de literais no widget.elevatedButtonTheme no ThemeData deixa o app inteiro consistente de graça. Prefira component themes a estilizar instancias.textScaler respeitado, dark mode desenhado, RTL testado. Um default "bonito" que falha contraste e um defeito, nao polish.Ative esta skill quando:
ThemeData custom, ou ajustar cor, tipografia, espaco, raio, elevacao/sombra, ripple, transicoes e motion para sensacao premium e bespoke.Quando NAO usar (use a complementar):
frontend-design-distinctiveness (a sibling). Esta skill aqui e o executor Flutter: monta o sistema e troca defaults por tokens; a sibling impoe rigor de distintividade sobre o conceito. As duas se complementam — esta nao duplica a taxonomia de "AI slop" da outra; usa-a quando o problema for "generico", nao so "default cru".frontend-design.Regra de fronteira: se o app esta cheio de defaults Flutter -> aqui. Se o app ja fugiu dos defaults mas ainda e esquecivel/parece IA ->
frontend-design-distinctiveness. Frequentemente roda-se esta primeiro (instalar o sistema) e a sibling depois (afiar a identidade).
Antes de redesenhar, identifique quais destes sinais o app tem. Cada um tem um destino claro neste skill. Rode scripts/scan_default_flutter.py para automatizar (veja Secao 8) e cruze com esta tabela.
| Tell (sinal de default / vibecoding) | Por que entrega | Para onde ir |
|---|---|---|
ColorScheme.fromSeed com seed de cor stock (Colors.blue, deepPurple) | E o lavanda generico que todo tutorial usa | references/typography-color.md |
| Fonte Roboto (nenhuma fonte definida no tema) | Roboto cru grita "Flutter de fabrica" | references/typography-color.md |
MaterialApp sem theme: / ThemeData() vazio | Sem tema = 100% defaults | references/design-tokens.md |
Color(0xFF...) / Colors.X dentro dos widgets | Cor descentralizada = sem sistema | references/design-tokens.md |
Raios inconsistentes (circular(7), (12), (20) na mesma tela) | Falta de escala = vibecoding | references/design-tokens.md |
| Numeros magicos de espaco (13, 17, 23...) | Espacamento "no olho" | references/design-tokens.md |
Card / AppBar com elevacao e sombra padrao | A sombra Material padrao e reconhecivel | references/components.md |
Ripple (InkWell) em tudo, inclusive cards | O splash padrao data o app | references/components.md |
Icons. (Material Icons) em todo lugar | O icon set padrao tem cara de Google | references/components.md |
| Transicao de pagina deslizante padrao | A PageTransitionsTheme default entrega na navegacao | references/motion-and-detail.md |
centerTitle: true + cor primaria preenchendo a AppBar | Layout default absoluto de tutorial | references/components.md |
| centralizado como unico loading |
Nao trate o scanner como verdade absoluta — ele e o despertador, nao o juiz. Polish final e decisao humana: produza, mostre, itere.
Trabalhe em fases. Nao pule para "corrigir" sem diagnosticar. Cada gate e um ponto de parada onde voce confirma com o usuario antes de avancar.
flutter --version) e dependencias (pubspec.yaml). Os nomes de theme data mudaram (CardTheme -> CardThemeData, DialogTheme -> DialogThemeData); withOpacity -> withValues(alpha:); MaterialStateProperty -> WidgetStateProperty. Material 3 e default desde Flutter 3.16.frontend-design-distinctiveness antes — caso contrario voce instala um sistema bonito porem generico.python scripts/scan_default_flutter.py lib/ e leia o relatorio.assets/app_theme.dart e adapte paleta/fonte (references/design-tokens.md, references/typography-color.md). Conecte theme: + darkTheme: no MaterialApp.references/components.md (o asset ja traz; confirme).colorScheme.*/token; SizedBox(height: 16) -> gap.md; BorderRadius.circular(12) -> radii.md; TextStyle(fontSize: 18) -> text.titleMedium.references/motion-and-detail.md + assets/motion.dart.python scripts/scan_default_flutter.py lib/ — o numero de warn deve cair.flutter analyze (pega nomes de API errados da sua versao).textScaler, dark mode, RTL, SafeArea, estados.main.dart de exemplo para o usuario rodar e julgar — polish e empirico.Para auditoria, classifique cada achado em quatro eixos. Isso ordena o trabalho por impacto visual — a ordem que mais entrega: tipografia > cor > espacamento/consistencia > sombra/elevacao > movimento > detalhes.
P0 Critico — grita "Flutter de fabrica/IA" no primeiro segundo (Roboto cru, lavanda fromSeed, sem tema).P1 Alto — visivel e cumulativo (numeros magicos, cor descentralizada, sombra default, ripple em tudo).P2 Medio — percebido por olhos treinados (transicao default, loading generico, divisoria grossa).P3 Polimento — refino fino (status bar, stagger de entrada, empty states).confirmado (vi no arquivo:linha) / provavel (padrao da stack, nao verifiquei a linha exata) / suspeita (precisa rodar para ver). Nunca apresente provavel/suspeita como confirmado.trivial (1 linha no tema), pequeno (1 component theme), medio (re-skin de tela), grande (instalar sistema + migrar app).Marque explicitamente. Um item nao verificado vale como falha ate prova empirica.
ColorScheme light e dark desenhados (nao fromSeed generico).ThemeExtension (AppTokens) com escalas de espaco/raio, sombras e cores semanticas (success/warning/info) — com copyWith e lerp implementados.Color(0x...)/Colors.X) so no arquivo de tema/paleta; widgets usam colorScheme/tokens.style: solto).TextTheme com hierarquia real (pesos 400 corpo vs 600/700 titulo; letterSpacing e height ajustados).MediaQuery.textScaler respeitado. Testado com fonte grande (sistema em 1.5x–2x) — nada de overflow.onSurface sobre surface, onPrimary sobre primary).#121212–#1A1A1A), nao #000 puro.surfaceContainer*, nao por sombra.themeMode configurado; ambos os modos testados visualmente.SafeArea/viewPadding respeitam notch, status bar e barra de gestos; nada colado/cortado.systemOverlayStyle faz os icones da status bar contrastarem com o fundo.Directionality / locale ar/he) — paddings direcionais (EdgeInsetsDirectional), nada espelhado errado.resizeToAvoidBottomInset).overflow, maxLines, Flexible/Expanded).scripts/scan_default_flutter.py rodado de novo — warn caiu.flutter analyze limpo (nomes de API corretos para a versao).scripts/scan_default_flutter.py e um analisador estatico em Python puro — nao precisa de Flutter instalado. Ele detecta os tells de default/vibecoding e os agrega por diretorio (consistencia de raio, contagem de icones Material, cores descentralizadas).
python scripts/scan_default_flutter.py lib/ # relatorio legivel
python scripts/scan_default_flutter.py lib/ --json # saida para CI/ferramentas
python scripts/scan_default_flutter.py lib/ --exit-zero # nunca falha (so reporta)
Saida padrao: lista cada achado com arquivo:linha, severidade (warn/info) e uma dica de correcao; mais um resumo no fim (ex.: "3 raios distintos demais", "47 usos de Icons."). Sai com codigo 1 se houver warn (a menos que --exit-zero), entao serve de gate leve em CI. info nunca falha o build.
Combine com flutter analyze (correcao de API por versao) e, idealmente, golden tests (visual regression) para travar o resultado. Nao trate o scanner como verdade absoluta — ele e o despertador, nao o juiz.
assets/app_theme.dart para lib/theme/ (ou equivalente) e adapte a paleta/fonte ao cliente. Leia references/typography-color.md para escolher cor e tipografia que nao sejam o default.MaterialApp (theme: + darkTheme:). Leia references/design-tokens.md para entender o ThemeExtension de tokens (espaco/raio/duracoes) e como consumi-lo via Theme.of(context).extension<AppTokens>().colorScheme/tokens; SizedBox(height: 16) -> gap.md; etc.).references/components.md (ja vem pre-configurado no asset, mas confirme botoes, inputs, cards, app bar).references/motion-and-detail.md + assets/motion.dart.flutter analyze + exemplo rodavel.references/components.md para os widgets daquela tela.Use esta estrutura sempre que auditar ou redesenhar (adapte o tamanho ao escopo, mas mantenha as secoes):
[P1 · confirmado · esforco pequeno] Sombra default em todos os Card
Local: lib/widgets/product_card.dart:42 (e cardTheme ausente em lib/theme/…)
Causa: usa elevation padrao do Card -> sombra cinza M3 reconhecivel.
Correcao: zerar elevation no cardTheme + sombra desenhada (token shadowSoft) OU borda fina.
Antes: Card(child: …) // elevation default
Depois: // cardTheme: elevation:0, shape com radii.md, side outlineVariant
Verificar: scanner nao reporta mais "elevacao default"; ver light+dark.
Tell | Local | Severidade | Confianca | Esforco | Destino (reference).[x]/[ ] e o veredito honesto. Marque o que e regra (ex.: "usa Roboto cru = default") vs julgamento ("esta paleta me parece datada, considere...").Regras: sempre arquivo:linha quando possivel; sempre antes/depois consumivel; nunca aponte um tell sem entregar a saida; nunca mostre codigo so do device/tela atual quando o problema e sistemico (mostre a correcao no tema).
O principio sob esta skill nao e do Flutter — e universal: substitua defaults e valores soltos por um sistema de design tokens centralizado e re-tema os pontos que entregam o default. O Flutter e o exemplo-ancora; aqui esta o mapa para outras stacks (um engenheiro de qualquer stack extrai valor; o usuario Flutter continua com a skill afiada).
| Conceito (ancora Flutter) | CSS / Web | React Native | SwiftUI / iOS | Android Views / Compose |
|---|---|---|---|---|
ThemeExtension/AppTokens (escalas) | CSS custom properties (--space-md), Style Dictionary | objeto theme + StyleSheet | Asset Catalog + Environment/tokens em struct | theme.xml / MaterialTheme tokens |
ColorScheme (papeis semanticos) | tokens --color-surface, Tailwind theme.colors | tema do React Navigation / lib | Color no Asset Catalog (any/dark) | colorScheme (Material3 Compose) |
| Escala de espaco 4/8/12/16... | --space-*, Tailwind spacing scale | constantes de spacing | Spacing enum/const | dimens.xml / Dp consts |
Component themes (elevatedButtonTheme) | classes utilitarias / @layer components, shadcn variants | componentes wrapper temados | ButtonStyle / ViewModifier | Button style / @Composable defaults |
| Sombra desenhada (token) | box-shadow multicamada como var | shadow* props / lib | .shadow(...) modifier | Modifier.shadow / elevation tokens |
Anti-padrao universal (o equivalente da "cara de Flutter"): aceitar os defaults do framework sem decisao — Tailwind/shadcn crus, Material/Chakra/MUI com tema default, SwiftUI com Color.accentColor padrao, Bootstrap intacto. Um design system nao garante distintividade; usado cru, e o maior gerador de "slop". O cliche e o inimigo, nao a ferramenta.
references/typography-color.md): Roboto no Flutter <-> system-ui/Inter/Arial na web, SF Pro cru no iOS, Roboto cru no Android. Em qualquer stack: carregue uma display com carater + corpo legivel, defina como token, no maximo 2 familias.fromSeed do Flutter e primo do gradiente indigo->violet->fuchsia do Tailwind e do "blurple" generico. Comprometa-se com paleta nao-default derivada da marca.references/motion-and-detail.md): Motion.base = 250ms <-> CSS --dur-base + cubic-bezier, withAnimation/Animation no SwiftUI, AnimationSpec/tween no Compose. Maioria 150–250ms; curva com desaceleracao; nunca linear.PageTransitionsTheme <-> View Transitions API / Framer Motion na web, NavigationTransition no SwiftUI, shared element no Compose.O modelo de constraints do Flutter ("constraints descem, tamanhos sobem, pai posiciona") tem analogos diretos — e a fonte de "texto longo quebra o layout" em qualquer stack:
Flexible/Expanded, overflow: TextOverflow.ellipsis, maxLines.min-width: 0 (o classico item flex que nao encolhe), overflow, text-overflow: ellipsis.flex, numberOfLines.layoutPriority, lineLimit, fixedSize.weight, Modifier.widthIn, maxLines/overflow.Mantenha o Flutter como referencia primaria. As tabelas acima existem para o engenheiro traduzir o principio — nao para diluir o foco. Para auditoria de identidade visual cross-stack aprofundada, encaminhe a
frontend-design-distinctiveness.
style: em cada botao e o oposto de sistema. Use os component themes do ThemeData. Se voce esta editando a mesma propriedade em 3 telas, ela pertence ao tema.ColorScheme.dark de proposito (fundo #121212, primaria desaturada, profundidade por superficie).textScaler, RTL. Profissional inclui acessivel — sempre.ThemeExtension exige copyWith e lerp. Sem isso, troca de tema e animacao de tema quebram. O asset ja implementa — nao remova.rounded no mesmo raio sem nenhum canto vivo intencional e tao sem decisao quanto raios aleatorios. Escolha 2-3 e seja fiel.Card, a correcao e no cardTheme, nao na instancia. Mostrar so a instancia recria o problema.flutter analyze — os nomes de theme data e APIs (withValues, WidgetStateProperty) mudam por versao.Antes de fechar a resposta, confirme:
confirmado esta marcado como tal (com arquivo:linha).textScaler, RTL, dark mode, SafeArea, teclado, estados.references/*.md, assets/* e scripts/* corretos para cada area; rodei (ou instrui rodar) o scanner e flutter analyze.references/design-tokens.md — como montar o sistema de tokens (escalas de espaco/raio, ThemeExtension, montagem do ThemeData, como consumir nos widgets, centralizacao de cor).references/typography-color.md — como fugir do Roboto e do lavanda padrao: escolher e aplicar fonte (com google_fonts ou fonte empacotada), montar uma escala tipografica com pesos/letter-spacing reais, construir uma paleta intencional e um dark mode de verdade.references/components.md — re-estilizar os widgets que entregam o default: botoes, inputs, cards, app bar, dialogs, snackbars, chips; domar o ripple/splash; sombras desenhadas; trocar o icon set.references/motion-and-detail.md — transicoes de pagina customizadas, curvas e duracoes como tokens, micro-interacoes, e os detalhes pequenos (status bar, SafeArea, estados de toque) que separam amador de profissional.assets/app_theme.dart — tema drop-in baseado em tokens: ColorScheme desenhado a mao (nao fromSeed generico), TextTheme com hierarquia, todos os component themes, ThemeExtension AppTokens, sombras desenhadas, splash domado e PageTransitionsTheme custom. Zero dependencias externas (linha de fonte do google_fonts vem comentada e pronta).assets/motion.dart — tokens de duracao/curva, PageTransitionsBuilder custom (fade-through, no lugar do slide padrao) e helpers de entrada (fade+slide) sem dependencia externa.scripts/scan_default_flutter.py — scanner estatico (Python puro, sem Flutter) que detecta os tells e agrega por diretorio; usavel como gate leve de CI (--json, --exit-zero).Skill complementar:
frontend-design-distinctiveness(rigor de identidade visual cross-stack) e a skill oficialfrontend-design(geracao de UI nova). Esta skill e o executor Flutter do sistema de tokens; nao duplica a taxonomia de "AI slop" da sibling — encaminha quando o problema for "generico", nao "default cru".
Source: evertonfernandes3321-wq/mythos-skills — distributed by TomeVault.
CircularProgressIndicator| Loading generico; falta skeleton/shimmer |
references/motion-and-detail.md |
| Dark mode ausente ou invertido automaticamente | Dark invertido vibra/quebra hierarquia | references/typography-color.md |
| Empty/error states so com texto cru | Tela "Nenhum item" parece inacabada | references/motion-and-detail.md |
Texto trava com fonte grande / overflow com textScaler | Amador e cruza acessibilidade | references/typography-color.md |