Skip to content

kinwisenz-devops/flutter-developer

v0.6.0MIT

Skills for writing, structuring, researching and maintaining Dart and Flutter code to the official Dart and Flutter guidance.

███████╗██╗     ██╗   ██╗████████╗████████╗███████╗██████╗
██╔════╝██║     ██║   ██║╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗
█████╗  ██║     ██║   ██║   ██║      ██║   █████╗  ██████╔╝
██╔══╝  ██║     ██║   ██║   ██║      ██║   ██╔══╝  ██╔══██╗
██║     ███████╗╚██████╔╝   ██║      ██║   ███████╗██║  ██║
╚═╝     ╚══════╝ ╚═════╝    ╚═╝      ╚═╝   ╚══════╝╚═╝  ╚═╝
██████╗ ███████╗██╗   ██╗███████╗██╗      ██████╗ ██████╗ ███████╗██████╗
██╔══██╗██╔════╝██║   ██║██╔════╝██║     ██╔═══██╗██╔══██╗██╔════╝██╔══██╗
██║  ██║█████╗  ██║   ██║█████╗  ██║     ██║   ██║██████╔╝█████╗  ██████╔╝
██║  ██║██╔══╝  ╚██╗ ██╔╝██╔══╝  ██║     ██║   ██║██╔═══╝ ██╔══╝  ██╔══██╗
██████╔╝███████╗ ╚████╔╝ ███████╗███████╗╚██████╔╝██║     ███████╗██║  ██║
╚═════╝ ╚══════╝  ╚═══╝  ╚══════╝╚══════╝ ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═╝

⚡ Flutter Developer

Agent skills that help developers write, structure, research and maintain Dart and Flutter code to the official guidance.

Validate skills License: MIT Agent skills Format Tooling

Table of contents:


Important

Principle: follow the official Dart and Flutter guidance, verify against the real code before changing it, and make the smallest correct change.

These skills turn the Dart team's Effective Dart guide, the Flutter team's architecture and theming guidance, the Django REST Framework and Simple JWT documentation, and the GNU Make manual into short, reasoned rules an agent can apply. Each rule carries its reason, so it still works when a situation is not named. They follow the open Agent Skills format and work in Claude Code, Codex, Cursor, Copilot, OpenCode or any SKILL.md-compatible agent.


🧩 Skills

SkillPurpose
dart-code-standardsApplies the official Effective Dart rules to written Dart code: identifier naming, import ordering, formatting, doc comments, null safety usage, collections, async, error handling, types, parameters, equality and public API design.
flutter-architectureApplies the Flutter team's app architecture recommendations: UI and data layers, MVVM, repositories, unidirectional data flow, immutable models, dependency injection, navigation, naming and testing with fakes.
flutter-design-systemApplies a design system in Flutter through the theme layer: ThemeData, ColorScheme, TextTheme, ThemeExtension design tokens, light and dark themes, shared themed widgets, accessibility checks and dashboard screens (stat strips, cards, adaptive layout).
flutter-developerRouter and shared guardrails for Dart and Flutter development work, including Django API integration and design systems: picks the right specialist skill and enforces verify-before-claiming, smallest-change and honest close-out rules.
flutter-django-integrationGuides the Flutter side of integrating with a Django REST Framework backend: service and repository layering, OpenAPI contract and client generation, JSON model mapping, JWT authentication and token storage, error and validation mapping, pagination, environments and web CORS.
flutter-migrationPlans and performs Flutter and Dart SDK upgrades and breaking-change migrations: deprecated API removals, Android Gradle Plugin and Kotlin build changes, and other changes listed on the Flutter breaking-changes page.
flutter-task-researchRuns a research-only investigation before a task is planned: reads the codebase and authoritative sources, records verified findings in one research note, weighs alternatives and converges on a single recommended approach without editing code.
flutter-tech-debt-planProduces a scored technical debt remediation plan for Flutter and Dart code, tests and documentation, with a summary table and a detailed plan per item, without changing code.
flutter-widget-fundamentalsApplies core Flutter widget practice when writing or fixing widget code: stateless versus stateful choice, const widgets, the State lifecycle and disposing controllers, keys in reorderable lists, layout constraint errors, updating state without mutating shared lists, forms and validation, basic screen navigation, implicit animations, adaptive layout and reading error messages.
make-automationWrites and reviews GNU Make Makefiles that wrap repeatable project commands such as code generation, analysis, tests and builds, covering structure, variables, phony targets, recipes, includes and portability.

🗺️ How they fit together

flowchart TD
    R["⚡ flutter-developer<br/>routes work and enforces shared guardrails"]
    R --> A["🧹 dart-code-standards<br/>Effective Dart style, usage and API design"]
    R --> B["🏗️ flutter-architecture<br/>layers, MVVM, repositories, testing"]
    R --> W["🧱 flutter-widget-fundamentals<br/>widgets, state, keys, layout, forms"]
    R --> C["🔍 flutter-task-research<br/>research-only investigation"]
    R --> D["📋 flutter-tech-debt-plan<br/>scored remediation plans"]
    R --> F["🔌 flutter-django-integration<br/>Django REST API client, auth, errors, pagination"]
    R --> G["🎨 flutter-design-system<br/>themes, design tokens, accessibility"]
    R --> E["🛠️ make-automation<br/>Makefiles for build and test commands"]
    R --> H["⬆️ flutter-migration<br/>SDK upgrades and breaking-change fixes"]

Most work starts at the router. Research comes before a change that needs understanding, and standards and architecture apply while the change is written.


📦 Install

Tip

Install the router skill plus every sibling skill it links to; routers reference siblings by relative path.

Claude Code plugin (installs the skills together):

/plugin marketplace add KinwiseNZ-DevOps/flutter-developer
/plugin install flutter-developer@flutter-developer-marketplace

ChatGPT desktop plugin (local, skills and bundled hooks):

This repo has a portable plugin.json manifest and a repo marketplace at .agents/plugins/marketplace.json. Open this repo as a trusted project and restart ChatGPT desktop, then install Flutter Developer from the Plugins Directory. Review and trust bundled hook scripts before they run.

For best results also install the optional companions flutter-optimiser (performance) and django-api-architect (Django server code). The integration skill names the exact companion skill to use for each concern.

Or copy or symlink the skills/ subfolders you want into your agent's skills directory:

AgentWhere skills live
Claude Code~/.claude/skills/ or a project's .claude/skills/
Codex · Cursor · Copilot · OpenCode · Windsurfthe agent's own SKILL.md discovery path

Always on

In Claude Code, Flutter Developer loads a short ruleset into every session as soon as the plugin is installed (official Dart and Flutter guidance, smallest change, honest verification). It tells you its state at the start of each session and costs roughly 450 tokens.

ModeWhat it does
on (default)The rules apply in every session
autoThe rules apply only in projects that look relevant: a Flutter pubspec.yaml is found
offThe rules do not load
  • Say "stop flutter mode" to pause it for the current session, and "start flutter mode" to resume.
  • Ask Claude to set the saved mode to on, off or auto. It writes that word into ~/.claude/.flutter-developer.mode. You can also edit that file yourself, and deleting it returns to the default (on).
  • It needs Node on the machine, because the start-up hook runs a small Node script. Without Node the hook quietly does nothing.
  • Other agents have no start-up hook here. Paste skills/flutter-developer/references/always-on-rules.md into that agent's instruction file instead.

Safety checks

The same hooks run a few checks while you work. Each one only asks, warns or adds a reminder; none changes your files on its own.

CheckWhat it doesOn by default
dangerGuardAsks before risky commands: force pushes, git reset --hard, rm -r, dropping data, docker compose down -v, publishing a packageYes
secretsGuardAsks before writing keys, tokens or .env filesYes
packageGuardAsks if a package about to be installed does not exist on PyPI, npm or pub.dev, because the name may be inventedYes
licenseGuardWarns after installing an npm or PyPI package with a GPL-family licenceYes
editSecurityReminds Claude about risky code it just wrote: eval, SQL built from strings, unescaped HTML, tokens in SharedPreferencesYes
promptGuardWarns when pasted text looks like it is trying to steer the agentYes
verifyReminderTells you at the end of a turn if code changed but no tests, lint or analysis ranYes
linkGuardWarns about links that return "not found" in Markdown, HTML and JSX files writtenNo
styleGuardWarns when a reply is over 200 words or uses an em or en dash (built for AI Kiwiniser's style)No
sessionLogWrites tool names and file names, never content, to ~/.claude/logs/flutter-developer/No
autoCommitSaves tracked changes as a local commit at the end of a turn. It never pushesNo

Switch any check with ~/.claude/.flutter-developer.features.json, for example {"packageGuard": false, "sessionLog": true}, or ask Claude to write it. The saved mode (on, off or auto) applies to every check. If several of these plugins are installed, each risky action is checked once, not once per plugin.

Privacy: packageGuard and licenseGuard send package names, and linkGuard sends the links it checks, to the public registry or site. Nothing else leaves your machine. Turn those checks off if that is a concern.

🚀 Usage

Tip

You never need to memorise skill names. Just describe the problem in plain words; the router picks the right skill automatically. But if you want short, reliable phrases that always work, use these:

The flow (this is all most people need):

1. "Research how this feature works"   → a verified research note, no code changes
2. "Make this change"                  → smallest correct change, then format, analyse and test
3. "Review this against Dart style"    → rule-by-rule findings with reasons

Short phrases that trigger each skill:

Just say…What you getSkill used
Where should this logic live?A layer decision with reasonsflutter-architecture
Why is my widget state wrong?The widget, key or constraint cause and a fixflutter-widget-fundamentals
Review my Dart styleFindings against Effective Dartdart-code-standards
Research this before we change itOne research note, one recommendationflutter-task-research
Audit tech debt in libA scored remediation planflutter-tech-debt-plan
Connect this screen to the Django APILayered client, auth, error and pagination handlingflutter-django-integration
Apply our design tokensTheme and ThemeExtension wiring, accessibility checksflutter-design-system
Add make targets for test and analyseA tidy Makefilemake-automation

Note

Skills also trigger on their own when your request matches. In Claude Code you can also invoke one explicitly with /flutter-developer, but the plain phrases above are shorter and work across every agent.


✅ Validate

python scripts/skills_tool.py check

Checks: frontmatter, name/folder match, description length and trigger, body under 500 lines, every relative link resolves (including README.md and AGENTS.md), agent profile naming with no more than two profiles per host and exactly one -workflow main agent, agent skills: entries that exist and no skills/<name>/SKILL.md paths in agent bodies, plugin manifests (.claude-plugin/plugin.json and marketplace.json: required fields, licence matches LICENSE, agents lists every Claude Code profile, no top-level agents/ folder), at least 3 eval cases per skill, catalogue freshness, no project-specific terms from reference-content/strip-terms.txt, and no em or en dashes in file names or in any text outside reference-content/. After the starter skill is deleted it also rejects leftover placeholders and setup-only paths that are tracked by Git or not ignored. Stdlib only, no dependencies.


🗂️ Layout

Repository layout

skills/<name>/SKILL.md      one folder per skill (+ references/ where needed)
.claude-plugin/             plugin.json and marketplace.json (Claude Code plugin)
hooks/                      always-on rules and safety checks for Claude Code
evals/cases.jsonl           3+ behavioural cases per skill
resources/agents/           optional host profiles copied by installer
scripts/install_agents.py   copy optional agent profiles into a project
scripts/skills_tool.py      validate, regenerate catalogue (stdlib only)
.github/workflows/          CI runs `skills_tool.py check` (free on public repos)
AGENTS.md                   agent-facing rules for this repo

📌 Status and limits

Note

  • Architecture advice keeps the Flutter team's priority labels (Strongly recommend, Recommend, Conditional) and is meant to be adapted, not applied blindly.
  • The Django integration skill covers the Flutter client only; server code belongs to the backend. Advice not stated by an official page is marked as inference in the skill references.
  • Performance profiling and optimisation are out of scope here. The skills hand off to the flutter-optimiser plugin (flutter-performance-specialist) and, for server code, to the django-api-architect plugin, when those are installed. Without them the skills still work and say the hand-off was skipped.
  • No agent profiles are supplied yet; the skills run directly in any compatible agent.
  • Licensed under MIT (see LICENSE).

⚡ Built on the Agent Skills open format · grounded in Effective Dart and the Flutter architecture guide