CtrlK
BlogDocsLog inGet started
Tessl Logo

dart-use-ffigen

Guide agents to use `package:ffigen` to automatically generate FFI bindings instead of writing them manually. Use this skill when a task involves writing new FFI bindings, extending C/Objective-C/Swift integrations, or replacing hand-crafted `dart:ffi` setups.

74

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

85%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable with a complete, executable example and a well-validated workflow, and it is appropriately organized as a self-contained file. Its main weakness is conciseness: several constraints and the analyze/ignore_for_file handling are repeated across the workflow, example, and checklist sections.

Suggestions

Consolidate the dart analyze + ignore_for_file handling so it lives in one place (either Step 5 or the Verification Checklist) rather than being restated in Constraints and the Checklist, to reduce redundancy.

Trim editorial padding such as 'error-prone, brittle, and highly discouraged' and 'highly prone to ABI and structural mapping issues' since Claude already understands why generated bindings are preferable.

Consider moving the repeated path/extension conventions (lib/src/third_party/, .g.dart, record_use_mapping) into a single reference table in the Constraints section so the Example and Checklist can refer to it instead of restating it.

DimensionReasoningScore

Conciseness

Assumes Claude's competence (no explanation of what FFI/libraries are), but ~211 lines repeat guidance across Constraints, Step 5, and the Verification Checklist (dart analyze + ignore_for_file, .g.dart / lib/src/third_party/) and include editorial padding like 'error-prone, brittle, and highly discouraged'. It is mostly efficient yet could be tightened, matching level 2 rather than the 'every token earns its place' level 3.

2 / 3

Actionability

Provides fully executable code: a complete tool/ffigen.dart script with real imports, dynamic path resolution, and a working FfiGenerator(...).generate() call, plus copy-paste bash commands (dart pub add dev:ffigen, dart run tool/ffigen.dart, dart analyze).

3 / 3

Workflow Clarity

A clear 5-step sequence with explicit validation (dart analyze) and a feedback loop distinguishing warnings (fix via ignore_for_file) from errors (report to user / file an issue), reinforced by a Verification Checklist, matching the level-3 anchor for explicit validation steps and error-recovery loops.

3 / 3

Progressive Disclosure

No bundle files exist, so the single self-contained SKILL.md is appropriate; it is well-organized with a Contents/TOC of anchored links and clearly separated sections, satisfying the rubric note that skills needing no external references can score 3 with well-organized sections.

3 / 3

Total

11

/

12

Passed

Description

100%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, specific description that clearly states the skill's purpose and provides explicit, natural trigger conditions in third person. It concretely distinguishes ffigen-based generation from hand-written bindings with minimal fluff.

DimensionReasoningScore

Specificity

Lists multiple concrete actions including 'automatically generate FFI bindings', 'extending C/Objective-C/Swift integrations', and 'replacing hand-crafted dart:ffi setups', matching the anchor for multiple specific concrete actions rather than the partial-action level 2.

3 / 3

Completeness

Explicitly answers both what ('generate FFI bindings instead of writing them manually') and when via an explicit 'Use this skill when a task involves...' clause with concrete triggers, matching the level-3 anchor exactly.

3 / 3

Trigger Term Quality

Uses natural terms a Dart developer would actually say ('FFI bindings', 'C/Objective-C/Swift integrations', 'dart:ffi') with good coverage and variations, not just generic technical jargon.

3 / 3

Distinctiveness Conflict Risk

A clearly defined niche (Dart FFI binding generation via ffigen) with distinct triggers unlikely to overlap with other skills; written in third person with no voice penalty.

3 / 3

Total

12

/

12

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
flutter/agent-plugins
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.