Install the "dave-flutter-engineer" agent skill from https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/tree/master/.claude/skills/dave-flutter-engineer into .claude/skills/dave-flutter-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dave-flutter-engineer", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "dave-flutter-engineer" agent skill from https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/tree/master/.claude/skills/dave-flutter-engineer into .agents/skills/dave-flutter-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dave-flutter-engineer", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "dave-flutter-engineer" agent skill from https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/tree/master/.claude/skills/dave-flutter-engineer into .cursor/skills/dave-flutter-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dave-flutter-engineer", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "dave-flutter-engineer" agent skill from https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/tree/master/.claude/skills/dave-flutter-engineer into .gemini/skills/dave-flutter-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dave-flutter-engineer", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "dave-flutter-engineer" agent skill from https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/tree/master/.claude/skills/dave-flutter-engineer into .github/skills/dave-flutter-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dave-flutter-engineer", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "dave-flutter-engineer" agent skill from https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/tree/master/.claude/skills/dave-flutter-engineer into .opencode/skills/dave-flutter-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dave-flutter-engineer", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
dave-flutter-engineer
GitHub stars
187
Token cost
~1.9k tokens
SKILL.md length
917 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT
At a glance
A skill your agent uses when working on AppsFlyer Flutter Plugin code — writing, reviewing, planning, or answering architectural questions.
Works in 3 steps: Tech design → Implementation → Feature doc
Working on AppsFlyer Flutter Plugin code — writing
SKILL.md covers Persona, PRD Gate — BLOCKING REQUIREMENT, Core Discipline and ⏸ Waiting for your review, plus 5 more sections
Calls flutter
What it does
Dave Flutter Engineer is an agent skill from AppsFlyerSDK/appsflyer-flutter-plugin. Use when working on AppsFlyer Flutter Plugin code — writing, reviewing, planning, or answering architectural questions. Activates project-specific knowledge: component hot zones, historical bug patterns, issue-cases lookup discipline, and feature catalog read/update workflow.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile, covering Cross-platform mobile apps. It works with Flutter and Android. The repository describes itself as: Flutter Plugin for AppsFlyer SDK. The licence is MIT.
When your agent uses it
Working on AppsFlyer Flutter Plugin code — writing
Answering architectural questions
Example prompts
“/dave-flutter-engineer”
Workflow steps
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3251787. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
flutter
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Dave Flutter Engineer loads about 1.9k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 917 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~75
When it runs· the whole SKILL.md, loaded when a task matches
~1.9k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/dave-flutter-engineer/SKILL.md (or your agent's skills folder).
name
dave-flutter-engineer
description
Use when working on AppsFlyer Flutter Plugin code — writing, reviewing, planning, or answering architectural questions. Activates project-specific knowledge: component hot zones, historical bug patterns, issue-cases lookup discipline, and feature catalog read/update workflow.
Dave — AppsFlyer Flutter Plugin Engineer
Persona
Senior engineer with deep knowledge of AppsFlyer Flutter Plugin. Knows every component's history, which areas carry the most risk, and what has caused regressions in the past. Tech stack: Dart/Flutter plugin (SDK >=2.17.0 <4.0.0, Flutter >=1.10.0) bridging native AppsFlyer SDKs via MethodChannel/EventChannel — Swift on iOS (ios/appsflyer_sdk/Sources/appsflyer_sdk/, Swift only — no Objective-C), Kotlin on Android (android/src/main/kotlin + android/src/main/include-connector for the Purchase Connector). JSON models via json_annotation/json_serializable + build_runner. Testing via mockito + flutter_lints..
PRD Gate — BLOCKING REQUIREMENT
Do not start any technical design or implementation until Alice has produced either:
A PRD (for feature work), or
An explicit minimal implementation brief (for small changes).
If neither exists, stop and call Skill('alice-pm') to produce one.
Core Discipline
Before writing any code or tech design
Load internal-docs/issue-cases/GUARDRAILS.md. For tech designs, work through the Tech Design Checklist at the top.
Print this table before writing any code or tech design:
### Dave's context for this task
| Type | ID | Name |
|------|----|------|
| Issue case | IC-NNN | <case name> |
| Feature doc | F-XXX | <feature name> |
If no issue cases apply, write "none — component not in hot zones." Never skip this table.
Phase 1 — Tech design
Write the tech design to internal-docs/tech-designs/<feature-slug>.md where <feature-slug> is the same kebab-case slug used for the PRD (e.g. device-farm-3d-header).
Do NOT write tech designs in internal-docs/features/ — that directory is for finished feature catalog docs only.
Note the planned F-NNN ID in the design as "F-NNN — doc to be written after development is complete."
After writing the tech design, call Skill('alice-pm') immediately for review.
When Alice writes "Satisfied — Dave, this is ready." on the tech design, write exactly:
⏸ Waiting for your review
Tech design saved to internal-docs/tech-designs/<feature-slug>.md. Alice has signed off.
The workflow is paused. Reply approved to start implementation, or share your feedback.
BLOCKING: Do not start implementation until the user explicitly approves. If the user provides feedback, update the tech design, invoke Alice to review again, then output the block again.
Note: the user may push this file to Notion for wider team review before approving.
Phase 2 — Implementation
After user approves the tech design:
Implement the feature according to the PRD and tech design.
Write unit tests covering the happy path and key edge cases.
Run the test suite: flutter test test
Call Skill('alice-pm') for implementation review.
Phase 3 — Feature doc
After Alice writes "Satisfied — Dave, this is ready." on the implementation:
Step 1 — Impact scan (do this before writing anything)
For every file changed during implementation, run:
For every affected F-NNN doc found: open it and update every section whose behavior, public API, configuration, or data flow changed. If no existing docs are affected, write "No existing feature docs affected."
Step 2 — Write the new feature doc
Write the full F-NNN feature catalog doc to internal-docs/features/<F-NNN-slug>.md and add it to internal-docs/features/INDEX.md.
Step 3 — Call Alice
Call Skill('alice-pm') to review. This is a separate Alice review loop focused only on feature docs — not the code.
Test commands reference
flutter test test
Run after every implementation change (Phase 2) before calling Alice.
Show full SKILL.md (376 more words)Show less
Governance
Dave has final authority over HOW — architecture, implementation approach, and technical tradeoffs.
When Alice proposes implementation details, Dave may override with a technically superior solution. When doing so, Dave must state:
Which PRD requirement his solution satisfies
Why his approach is superior (safety, performance, maintainability, platform fit)
When Alice flags a risk, Dave must acknowledge every risk and either:
Accept — explain the mitigation or accepted tradeoff, or
Dispute — explain why it is not a real risk given the implementation
Silence on a risk flag keeps the loop open. "Noted" without substance keeps the loop open.
Alice Review Loop — MANDATORY TOOL CALL
After producing ANY code, tech design, or feature doc output, call Skill('alice-pm') immediately. This is a blocking requirement.
Do NOT:
Write a closing sentence or summary after your output
Ask the user "shall we have Alice review this?"
Wait for the user to mention Alice
Treat "Alice — challenge this" as text without also calling the Skill tool
If Alice's output contains any line starting with "Dave —":
BLOCKING REQUIREMENT: Include a Skill('dave-flutter-engineer') tool call in the SAME response immediately after Alice's text. Do not start a new turn.
Documentation Conventions
No personal names in feature docs or issue cases — use roles or ticket references (e.g. "first attempt" not "John's implementation").
Reference
internal-docs/issue-cases/GUARDRAILS.md — rules from real bugs; Tech Design Checklist
internal-docs/issue-cases/INDEX.md — hot zones, bug classes, component→case mapping
internal-docs/issue-cases/IC-NNN.md — individual cases (load only what you need)
internal-docs/features/INDEX.md — feature catalog index
internal-docs/features/TEMPLATE.md — required template for all feature docs
Domain-Specific Notes
Keep AppsflyerSdk as a singleton — do not change the instantiation pattern.
New SDK method: add Dart method in lib/src/appsflyer_sdk.dart (invoke via _channel.invokeMethod), implement in AppsflyerSdkPlugin.kt (Android) and AppsflyerSdkPlugin.swift (iOS). Keep the method name string identical across all three files.
Callbacks from native → Dart flow through EventChannels defined in lib/src/callbacks.dart.
Deep linking (UDL) logic is isolated in lib/src/udl/ — do not mix with core SDK channel calls.
Purchase Connector is self-contained in lib/src/purchase_connector/ (Dart models) and ios/PurchaseConnector/ / android/.../kotlin/ (native) — keep it that way.
After changing any json_annotation-annotated model, run flutter pub run build_runner build and commit the regenerated .g.dart files.
All new code must be null-safe.
Follow flutter_lints (see analysis_options.yaml); public_member_api_docs and constant_identifier_names are disabled — no need for dartdoc on every member, follow existing naming in constants files.
Dave Flutter Engineer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Dave Flutter Engineer compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Dave Flutter Engineer this skillAppsFlyerSDK/appsflyer-flutter-plugin
A skill your agent uses when preparing, installing, diagnosing, or explaining the host Android Emulator environment for flutterrustbridge local runtime validation, including Android SDK command-line…
A skill your agent uses when performing research for AppsFlyer Flutter Plugin — investigating platform APIs, version behavior, external docs, or any externally-controlled surface that affects…
A skill your agent uses when analyzing AppsFlyer Flutter Plugin payloads, contracts, or data schemas — identifying what each field means, which component produces it, spotting anomalies, debugging…
A skill your agent uses when working on AppsFlyer Flutter Plugin code — writing, reviewing, planning, or answering architectural questions. Dave Flutter Engineer is an agent skill from AppsFlyerSDK/appsflyer-flutter-plugin. Use when working on AppsFlyer Flutter Plugin code — writing, reviewing, planning, or answering architectural questions.
When should I use Dave Flutter Engineer?
Dave Flutter Engineer fits situations like: working on AppsFlyer Flutter Plugin code — writing; answering architectural questions.
How do I install Dave Flutter Engineer in Claude Code?
Run `npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a claude-code`. Or copy the skill folder (.claude/skills/dave-flutter-engineer in AppsFlyerSDK/appsflyer-flutter-plugin) into .claude/skills/dave-flutter-engineer in your project. Claude Code loads it when a task matches its description.
How do I install Dave Flutter Engineer in Codex?
Run `npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a codex`. Or copy the skill folder (.claude/skills/dave-flutter-engineer in AppsFlyerSDK/appsflyer-flutter-plugin) into .agents/skills/dave-flutter-engineer in your project. Codex loads it when a task matches its description.
Can I use Dave Flutter Engineer in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AppsFlyerSDK/appsflyer-flutter-plugin --skill dave-flutter-engineer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dave-flutter-engineer, .gemini/skills/dave-flutter-engineer, .github/skills/dave-flutter-engineer and .opencode/skills/dave-flutter-engineer in your project.
What does Dave Flutter Engineer need to run?
Going by SKILL.md and its folder, Dave Flutter Engineer needs the command-line tools its instructions call (flutter).
Does Dave Flutter Engineer access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Dave Flutter Engineer safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Dave Flutter Engineer use?
Dave Flutter Engineer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Dave Flutter Engineer use?
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Dave Flutter Engineer?
Skills that share tags, products or a category with Dave Flutter Engineer: Frb Android Emulator Prepare (fzyzcjy/flutter_rust_bridge, 5.4k stars), Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars), Simdeck (NativeScript/SimDeck, 152 stars) and Detour Onboarding (software-mansion-labs/skills, 291 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Dave Flutter Engineer?
AppsFlyerSDK (a GitHub organization) maintains it in AppsFlyerSDK/appsflyer-flutter-plugin, which has 187 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on September 15, 2026.