CtrlK
BlogDocsLog inGet started
Tessl Logo

dart-setup-ffi-assets

Guides agents in compiling and packaging C/C++ source code into dynamic or static libraries (Code Assets) using Dart's Native Assets hook system (via hook/build.dart and hook/link.dart utilizing package:hooks and package:native_toolchain_c). Use when a user asks to: 'setup native assets', 'compile C/C++ source code', 'bundle dynamic libraries', 'build native C code', 'link native assets', 'implement build.dart or link.dart hooks', or 'integrate C/C++ interop in Dart/Flutter'. Helps agents avoid manual toolchain orchestration and configures secure hash-validated binary downloads or advanced linker tree-shaking with package:record_use mapping.

70

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

77%Weight 40%Scale 1-5

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

The body delivers highly actionable, executable guidance with an excellent verification checklist and clear step sequencing, but it is a monolithic single-file skill: both full integration methods and all verification detail are inlined rather than split into referenced files, and some rationale/TOC padding could be trimmed. Placeholder hashes and URLs also keep the examples from being fully copy-paste ready.

Suggestions

Split the full Method 1 and Method 2 implementations (and the detailed verification procedures) into reference files such as references/local-compilation.md and references/precompiled-downloads.md, keeping SKILL.md as a concise overview with clearly signaled one-level-deep links.

Remove the duplicated anchor-link table of contents and trim rationale sections (e.g., "Why Download Precompiled Binaries?") that restate tradeoffs already captured in the decision table.

Resolve the CLibrary vs CBuilder API inconsistency between the two methods and clearly mark the hash table and GitHub release URL as placeholders to be filled in by the user.

DimensionReasoningScore

Conciseness

The body is mostly dense, technical content with real code and commands, but the full anchor-link table of contents, the "Why Download Precompiled Binaries?" rationale section, and benefit prose like "executes in milliseconds compared to potentially long multi-minute compilation processes" are padding that could be trimmed. This fits 'efficient with minor over-explanation' rather than the lean top anchor.

4 / 5

Actionability

Guidance is largely executable: `dart pub add` commands, complete pubspec blocks, full hook/build.dart and hook/link.dart scripts, a download helper with hash verification, and per-OS verification commands (nm, dumpbin). Minor gaps keep it below copy-paste-ready: placeholder MD5 hashes, a placeholder GitHub release URL, and API inconsistency between methods (CLibrary in Method 1 vs CBuilder in Method 2).

4 / 5

Workflow Clarity

The workflow is clearly sequenced (4 numbered steps, a decision table for choosing Method 1 vs 2, then per-method walkthroughs) and closes with an explicit verification checklist including tree-shaking symbol verification, the no-bundle scenario, and an offline-compliance test with `local_build: true`. This matches the top anchor: clear sequence, explicit validation checkpoints, and error-recovery guidance.

5 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so ~420 lines are entirely inline in SKILL.md. Section headers and a TOC provide real structure, but content that clearly belongs in separate reference files — the full Method 1 and Method 2 implementations and the detailed verification procedures — is inlined with no external references signaled, matching the 'content that should be separate is inline' anchor.

3 / 5

Total

16

/

20

Passed

Description

96%Weight 40%Scale 1-5

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 description: it states concrete capabilities, names the exact mechanism (hook/build.dart and hook/link.dart with package:hooks and native_toolchain_c), and provides an explicit 'Use when' clause with quoted natural trigger phrases. The only weakness is that a few trigger terms are generic enough to overlap with plain C/C++ build skills outside Dart.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "compiling and packaging C/C++ source code into dynamic or static libraries (Code Assets)", "secure hash-validated binary downloads", and "advanced linker tree-shaking" — tied to named mechanisms (hook/build.dart, hook/link.dart, package:record_use). Coverage is comprehensive rather than gapped, matching the top anchor.

5 / 5

Completeness

It clearly answers both 'what' (compile/package C/C++ into Code Assets via build/link hooks with tree-shaking or hash-verified downloads) and 'when' via an explicit "Use when a user asks to:" clause with concrete trigger phrases. The when-clause is fully explicit, so it exceeds the 4 anchor.

5 / 5

Trigger Term Quality

It quotes explicit natural trigger phrases: 'setup native assets', 'compile C/C++ source code', 'bundle dynamic libraries', 'build native C code', 'link native assets', 'implement build.dart or link.dart hooks', 'integrate C/C++ interop in Dart/Flutter'. This covers synonyms and phrasings a user would naturally say, matching the comprehensive-synonyms anchor.

5 / 5

Distinctiveness Conflict Risk

The Dart Native Assets hook niche is distinct and the file-path triggers (build.dart/link.dart) are unlikely to collide, but generic phrases like 'compile C/C++ source code' and 'build native C code' could fire in non-Dart C build contexts, giving minor overlap risk — between the 4 and 5 anchors, closer to 4.

4 / 5

Total

19

/

20

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.

Validation — 15 / 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.