Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/joker-x-dev/flutterkit/fkit-setupnpx skills add Joker-x-dev/FlutterKit --skill fkit-setupgit clone --depth 1 https://github.com/Joker-x-dev/FlutterKitWhat 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 | $0.00089 | $0.01340 |
| Opus 5 | $0.00044 | $0.00670 |
| Sonnet 5 | $0.00018 | $0.00268 |
| Haiku 4.5 | $0.00009 | $0.00134 |
Grade A, and why
fkit-setup 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 2d 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 — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FKit Setup
必读资料
先阅读仓库根目录 AGENTS.md、docs/flutter-kit/扩展/assets.md、README.md 的构建章节,以及 .agents/skills/fkit-native/SKILL.md。修改配置前检查当前六端原生文件、pubspec.yaml、图标与启动页 YAML,不凭记忆猜测 Flutter 模板字段。
收集项目身份
在写入前取得以下信息;缺失的关键标识必须向用户确认,不自行创造:
| 信息 | 格式与用途 |
|---|---|
| 应用显示名称 | 用户可见名称,可包含空格和中文 |
| Dart 包名 | snake_case,用于 pubspec.yaml 与 package: import |
| Application/Bundle ID | 小写反向域名,例如 com.example.product |
| 项目描述 | pubspec.yaml、商店或 README 简介 |
| 公司与版权 | Windows、macOS 等原生元数据 |
| 仓库、文档、Demo 地址 | 关于页与 README;缺失时保留或删除,禁止假地址 |
| Logo、图标、启动页源图 | 运行时 Logo、通用图标、iOS 安全边距图、Android 12 启动图 |
| 目标平台 | Android、iOS、macOS、Linux、Windows、Web 的实际支持范围 |
先建立旧值到新值的明确映射,区分显示名称、Dart 包名、原生 ID、二进制名和品牌资源,不做单一字符串的全仓库替换。
保留 FlutterKit 框架身份
应用改名不等于抹除框架来源。默认保留以下内容中的 FlutterKit/FKit 名称:
docs/flutter-kit/与docs/tdesign-flutter/框架参考文档。.agents/skills/目录中的fkit-*项目 Skill 名称和触发描述。AGENTS.md中的框架技术规范。- README 中用户明确要求保留的框架致谢、来源或上游仓库链接。
只修改运行时身份、应用专属说明和用户明确要求重写的仓库资料。完成后按允许列表审查旧标识残留,不把框架文档中的合法名称当作错误。
多端修改清单
| 范围 | 重点位置与操作 |
|---|---|
| Flutter/Dart | 修改 pubspec.yaml 的 name、description;Dart 包名变化时更新 lib/、test/ 中全部 package: import |
| 运行时文案 | 修改应用名称国际化、关于页名称、项目链接和业务品牌文案,不改框架文档术语 |
| Android | 修改 namespace、applicationId、Manifest label;同步移动 MainActivity 包目录并修改 Kotlin package 声明 |
| iOS | 修改 Runner 与 RunnerTests 的 PRODUCT_BUNDLE_IDENTIFIER,同步 CFBundleDisplayName、CFBundleName |
| macOS | 修改 PRODUCT_NAME、Bundle ID、RunnerTests ID、版权、.app 引用、Scheme 与测试宿主路径 |
| Linux | 修改 BINARY_NAME、APPLICATION_ID 和窗口标题 |
| Windows | 修改 CMake project/binary、窗口标题、Runner.rc 的公司、描述、内部名、文件名、产品名和版权 |
| Web | 修改 manifest name、short_name,以及 index 的页面标题和 Apple Web App 名称 |
| 品牌资源 | 更新 assets/image/logo.png 与 assets/dev/ 生成源图,核对两个 YAML 后运行图标和启动页生成器 |
| 项目资料 | 按用户决定更新 README、关于页、仓库、文档和 Demo 地址,禁止保留 example.com 等占位链接 |
执行顺序
- 记录工作区状态,使用精确文本搜索建立当前身份清单,保护用户已有修改。
- 先修改 Dart 包名和运行时文案,再修改各平台 ID、显示名称与原生入口路径。
- 使用文件移动保持 Android Kotlin 包目录与声明一致;编辑 Xcode/CMake/RC 文件时同时更新测试和构建引用。
- 替换运行时 Logo、图标与启动页源图,按
fkit-native流程检查尺寸、Alpha、透明边距和 Android 12 安全区。 - 运行 FlutterGen、图标和启动页生成命令,只接受与配置对应的生成差异。
- 搜索旧 Dart 包名、旧原生 ID、旧二进制名、占位 URL 和旧运行时显示名称;对框架文档中的合法 FlutterKit 名称使用允许列表。
- 更新测试期望和必要项目说明,不修改生成文件的手写内容。
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.
- 2d ago First seen · 73 lines · 89 tokens per session scan A 2aeeb7e008a7
fkit-setup is a skill published in the GitHub repository Joker-x-dev/FlutterKit (108 stars, last pushed 1mo ago), licensed MIT. It adds 89 tokens to every session and 1,340 once invoked, about $0.0004 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-30.
Other skills, from other repositories
orca-emulator-android
Control an Android emulator / device from inside Orca using the orca CLI. Use for listing/booting AVDs, taps, swipes, typing, hardware buttons (incl. Back and Recents), rotation, app install/launch, runtime permissions, the accessibility tree, and logcat — driving a real adb-connected device or emulator.…
speckit-analyze
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
add-sample
Create a SamplesApp sample page with correct theming and attributes. Use when adding UI samples for controls.
mapping-to-snomed
Maps clinical concept spans extracted by OpenMed to SNOMED CT concepts through a USER-SUPPLIED terminology server (the user's own Ontoserver, Snowstorm, or UMLS/UTS), never a bundled vocabulary. Use when the user wants to code findings, disorders, procedures, body structures, or substances to SNOMED CT, run an ECL…
android-tombstone-symbolication
Symbolicate the .NET runtime frames in an Android tombstone file. Extracts BuildIds and PC offsets from the native backtrace, downloads debug symbols from the Microsoft symbol server, and runs llvm-symbolizer to produce function names with source file and line numbers. USE FOR triaging a .NET MAUI or Mono Android app…
auditing-subgroup-fairness
Audit an OpenMed NER or de-identification model for performance disparities across demographic subgroups (sex, age band, race/ethnicity when available) using openmed.eval.fairnessreport. Use when the user wants per-subgroup recall and leakage, wants to check whether de-identification under-protects a group, wants to…