Borrowing it
Nothing to install: this file belongs to brunobrown/claude-flet-plugin. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/brunobrown/claude-flet-plugin/main/.agents/skills/flet-extension-workflow/SKILL.mdgit clone --depth 1 https://github.com/brunobrown/claude-flet-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/brunobrown/claude-flet-plugin/flet-extension-workflow)<a href="https://agentmods.dev/skills/brunobrown/claude-flet-plugin/flet-extension-workflow"><img src="https://agentmods.dev/badge/skills/brunobrown/claude-flet-plugin/flet-extension-workflow/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/brunobrown/claude-flet-plugin/flet-extension-workflow"><img src="https://agentmods.dev/badge/skills/brunobrown/claude-flet-plugin/flet-extension-workflow.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.01150 |
| Opus 5 | $0.00016 | $0.00575 |
| Sonnet 5 | $0.00006 | $0.00230 |
| Haiku 4.5 | $0.00003 | $0.00115 |
Grade A, and why
flet-extension-workflow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Flet Extension Workflow
You are guiding the user through creating a Flet extension package step by step. Follow these 6 phases in order.
Before starting, ask the user what Flutter package they want to wrap and whether it's a Service (no UI) or UI Control (visual widget).
Phase 1: Planning
- Identify the Flutter package — name on pub.dev, latest version
- Determine extension type:
- Service (
ft.Service) — for SDKs, background services, platform APIs - UI Control (
ft.LayoutControl) — for widgets that render on screen
- Service (
- Review the Flutter API — key classes, methods, events, callbacks
- Plan the Python API:
- Properties (sent to Flutter)
- Methods (invoke Flutter methods)
- Events (receive from Flutter)
- Sub-modules (if complex SDK with namespaces)
- Plan type mappings — Dart types → Python types
Summarize the plan before proceeding.
Phase 2: Scaffold
Use flet-pkg CLI to generate the project skeleton:
# Auto-analyze the Flutter package (recommended)
flet-pkg create my-extension --analyze
# Or manually if flet-pkg is not available
If scaffolding manually, create:
flet-my-extension/
├── pyproject.toml
└── src/
├── flet_my_extension/
│ ├── __init__.py
│ ├── my_control.py
│ └── types.py
└── flutter/flet_my_extension/
├── pubspec.yaml
└── lib/
├── flet_my_extension.dart
└── src/
├── extension.dart
└── my_service.dart
Ensure pyproject.toml includes:
[tool.setuptools.package-data]
"flutter.flet_my_extension" = ["**/*"]
Phase 3: Review Generated Code
Check and fix the generated code:
- Type mappings — verify Dart→Python type conversions are correct
- Method names —
camel_to_snakeconversion from Dart - Invoke keys —
_invoke_method("key")must match Dart switch cases - Event names —
triggerEvent("name")→on_name: EventHandler - @ft.control name — must match
control.typeswitch in Dart - Enum values — string values that match Dart representations
- Platform validation — service-only or cross-platform?
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 145 lines · 32 tokens per session scan A bbc775ea0740
flet-extension-workflow is a skill published in the GitHub repository brunobrown/claude-flet-plugin (3 stars, last pushed 4mo ago), licensed MIT. It adds 32 tokens to every session and 1,150 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
huggingface-gradio
Build Gradio web UIs and demos in Python. Use when creating or editing Gradio apps, components, event listeners, layouts, or chatbots.
shiny-for-python
Building, styling, testing, debugging, or observing a Shiny for Python (py-shiny) reactive web app - from shiny import ..., shiny run app.py. Index skill: read this, then open the linked reference for the task. Covers dashboard design and visual QA; card toolbars and accessible icons; interactive Plotly charts and…
gpui-toolkit
Use when building or modifying GPUI applications in the gpui-toolkit workspace, especially when choosing reusable toolkit crates, composing UI, adding components, charts, themes, layouts, audio controls, mobile surfaces, or validation coverage. Prefer existing toolkit APIs over custom one-off implementations.
streamlit
Streamlit Python web application framework. Covers session state, caching, layouts, widgets, multipage apps, and deployment. Use when building interactive Python data apps or dashboards. USE WHEN: user mentions "streamlit", "st.sessionstate", "st.cachedata", "streamlit app", "python dashboard", "python web app"…
fast-dash
Build a Fast Dash web app from a Python function. Use when the user wants to turn a function into an interactive app, add a UI to an existing function, or build a dashboard / form / wizard. Fast Dash infers UI components from type hints, so a well-typed function becomes an app with one decorator.
textual-builder
Build Text User Interface (TUI) applications using the Textual Python framework (v0.86.0+). Use when creating terminal-based applications, prototyping card games or interactive CLIs, or when the user mentions Textual, TUI, or terminal UI. Includes comprehensive reference documentation, card game starter template, and…