impeccable_flutter 0.1.4
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 opubspec.yamlcorreto. - 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.mdque demonstram o uso programático do scanner--fastem snippet inline com 3 anti-padrões. Cobre o requisito pana "Package has an example". - Dangling library doc comment:
bin/impeccable_flutter.darttinha///no header semlibrary;antes dos imports. Trocado por//regular. Resolve o INFO dodangling_library_doc_commentslint.
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 edart pub global activate impeccable_flutterdeixa o binário "instalado mas inacessível". Snippet copy-paste com~/.zshrc/~/.bashrcresolve. - Workaround sem alterar PATH documentado:
dart pub global run impeccable_flutter:impeccable_flutter <args>. - Seção
skills installcorrigida: 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 installinviável para skills hoje.
0.1.1 #
Adicionado #
- Schema JSON unificado entre
detect --fast --format=jsonedetect --format=json(full mode). Os dois agora emitem o mesmo array[{antipattern, name, description, file, line, snippet, severity, column}], com paridade ao schema doimpeccable(web) original. Antes: o full mode emitia o schema bruto docustom_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 repotarcisiojr/impeccable-flutter(shallow viagit) 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,--allpara todos os 11 suportados.skills update— igual a install mas sobrescreve harness dirs existentes (force overwrite).skills check— compara versão local (lida doSKILL.mdfrontmatter num harness dir) com versão remota (lida doplugin.jsonno GitHub raw). RetornaAtualizadoouAtualização disponível.
Sem dependências novas: usa git shell + dart:io HttpClient.
Mudou #
- Description do
pubspec.yamlreflete a realidade: CLI tem--fastpróprio + delega aocustom_lintpara modo full + agora gerencia o skill viaskills install/update/check.
0.0.1 (initial release) #
Adicionados — subcomandos #
detect [path]— wrapper sobredart run custom_lint. Roda as regras doimpeccable_flutter_lintssobre o projeto. Suporta--format=human|jsone--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 emskill/reference/live.md). v0.2 ganha overlay de seleção via VM Service.version— imprime versão do CLI.
Testes #
- 13 unit tests do
--fastscanner viadart 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).
liveoverlay v0.2 (HTTP server + VM Service + WidgetInspector).