impeccable_flutter 0.1.4 copy "impeccable_flutter: ^0.1.4" to clipboard
impeccable_flutter: ^0.1.4 copied to clipboard

CLI Dart para detectar anti-padrões de design em apps Flutter. Modo --fast (regex), full (custom_lint) e subcomando skills install.

Changelog #

Todos os releases do impeccable_flutter (CLI). Segue Keep a Changelog e SemVer.

0.1.4 #

Documentação — pana score fix complementar #

Pana v0.1.3 ainda flagrou "Repository has multiple matching pubspec.yaml with name: impeccable_flutter" mesmo com repository: apontando para tree/main/cli_dart. Causa: o pubspec.yaml da raiz do monorepo tinha name: impeccable_flutter (idêntico ao do CLI publicado), e pana clona o repo inteiro para validar. Fix: renomeado o pubspec raiz para impeccable_flutter_workspace (não publicável, publish_to: none). Pana agora encontra apenas um match em cli_dart/pubspec.yaml.

Sem mudança de código.

0.1.3 #

Documentação e empacotamento — pana score fixes #

Pana (analisador do pub.dev) flagrou 5 issues que penalizavam o score. Todas corrigidas:

  • Description: encurtada de 391 para 131 chars (pana exige 60-180). Mantém o essencial: detect (--fast/full) + skills install.
  • Repository URL: agora aponta para o subpath exato do monorepo (tree/main/cli_dart) em vez da raiz, permitindo pana validar o pubspec.yaml correto.
  • LICENSE: substituído pelo boilerplate Apache 2.0 canônico (sem indentação no header). Detector SPDX do pana agora reconhece a licença.
  • Example: criado example/main.dart + example/README.md que demonstram o uso programático do scanner --fast em snippet inline com 3 anti-padrões. Cobre o requisito pana "Package has an example".
  • Dangling library doc comment: bin/impeccable_flutter.dart tinha /// no header sem library; antes dos imports. Trocado por // regular. Resolve o INFO do dangling_library_doc_comments lint.

Sem mudança de API ou comportamento. Score esperado: 160/160.

0.1.2 #

Documentação #

  • README ganha seção explícita "Adicionar ao PATH" para macOS/Linux com zsh ou bash. Por default, ~/.pub-cache/bin/ não está no PATH e dart pub global activate impeccable_flutter deixa o binário "instalado mas inacessível". Snippet copy-paste com ~/.zshrc / ~/.bashrc resolve.
  • Workaround sem alterar PATH documentado: dart pub global run impeccable_flutter:impeccable_flutter <args>.
  • Seção skills install corrigida: agora é o caminho recomendado para Claude Code também (não mais "para harnesses sem marketplace"). Inclui referência ao bug anthropics/claude-code#18949 que torna o flow /plugin install inviável para skills hoje.

0.1.1 #

Adicionado #

  • Schema JSON unificado entre detect --fast --format=json e detect --format=json (full mode). Os dois agora emitem o mesmo array [{antipattern, name, description, file, line, snippet, severity, column}], com paridade ao schema do impeccable (web) original. Antes: o full mode emitia o schema bruto do custom_lint ({version, diagnostics: [{code, location: {range: ...}, ...}]}) e o fast mode emitia um schema próprio ({mode, count, findings: [...]}). Agora um único parser cobre ambos os modos para CI e ferramentas downstream.

Documentação #

  • README reescrito refletindo o estado real do CLI: removido o "pré-MVP, empacotamento pub.dev TODO" e a roadmap que listava --fast, JSON e empacotamento como TODO. Substituído pelo subcomandos atuais (detect com full e --fast e --json, skills install/update/check, live, version), workflow E2E e schema do output JSON.

0.1.0 #

Adicionado — subcomando skills #

Reduz o gap entre o CLI Dart e o impeccable (Node, web upstream):

  • skills install — clona o repo tarcisiojr/impeccable-flutter (shallow via git) e copia o skill bundlado para os harness dirs do projeto atual (.claude/skills/impeccable-flutter/, .cursor/skills/..., etc.). Detecta automaticamente harness dirs já presentes; default .claude/ quando nada é detectado. Flags: --target=<harness> para um único, --all para todos os 11 suportados.
  • skills update — igual a install mas sobrescreve harness dirs existentes (force overwrite).
  • skills check — compara versão local (lida do SKILL.md frontmatter num harness dir) com versão remota (lida do plugin.json no GitHub raw). Retorna Atualizado ou Atualização disponível.

Sem dependências novas: usa git shell + dart:io HttpClient.

Mudou #

  • Description do pubspec.yaml reflete a realidade: CLI tem --fast próprio + delega ao custom_lint para modo full + agora gerencia o skill via skills install/update/check.

0.0.1 (initial release) #

Adicionados — subcomandos #

  • detect [path] — wrapper sobre dart run custom_lint. Roda as regras do impeccable_flutter_lints sobre o projeto. Suporta --format=human|json e --fast.
  • detect --fast [path] — scanner regex puro, sem analyzer. Cobre 9 regras (deep_purple_seed, bounce_elastic_curve, black_white_literal, justified_text, use_material3_false, ai_color_palette, overused_font, monotonous_spacing, everything_centered). Útil para CI rápido pré-commit ou codebases >500 arquivos.
  • live — stub MVP. Documenta o workflow manual via hot reload (descrito em skill/reference/live.md). v0.2 ganha overlay de seleção via VM Service.
  • version — imprime versão do CLI.

Testes #

  • 13 unit tests do --fast scanner via dart test. Cobrem todas as 9 regras + casos negativos (clean code, comments, generated files).

Conhecido — pendente #

  • Empacotamento pub.dev (homepage/repository links no pubspec, polish do README, badges).
  • live overlay v0.2 (HTTP server + VM Service + WidgetInspector).
1
likes
160
points
19
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

CLI Dart para detectar anti-padrões de design em apps Flutter. Modo --fast (regex), full (custom_lint) e subcomando skills install.

Homepage
Repository (GitHub)
View/report issues

Topics

#lints #design #flutter #cli

License

Apache-2.0 (license)

Dependencies

args, io, path

More

Packages that depend on impeccable_flutter