A library for generating native app code from JavaScript config through Expo config plugins
46
Pending
Does it follow best practices?
Impact
46%
1.02xAverage score across 10 eval scenarios
Pending
The risk profile of this skill
{
"context": "Evaluates use of @expo/config-plugins to compile and introspect mods without touching native files, ensuring ordered phase output and correct handling of duplicate plugins. Focus stays on invoking the package's mod compilation APIs rather than reimplementing them.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Introspection compile",
"description": "Invokes compileModsAsync or evalModsAsync with introspection:true to execute mods read-only and wires through ignoreExistingNative so missing platform folders do not throw.",
"max_score": 35
},
{
"name": "Base mods",
"description": "Sets up platform containers with withDefaultBaseMods, withAndroidBaseMods, or withIosBaseMods before compiling so custom registrations run inside the standard dangerous→pre→default→xcodeproj→finalized phases.",
"max_score": 15
},
{
"name": "Run-once handling",
"description": "Wraps plugin registrations with createRunOncePlugin or withRunOnce (or equivalent run-once helper) so repeat plugin identifiers are marked skipped instead of executing twice.",
"max_score": 20
},
{
"name": "Phase ordering",
"description": "Relies on the package's evaluation order (via compileModsAsync/evalModsAsync) to derive phase labels rather than manual sorting, preserving dangerous→pre→default→xcodeproj→finalized sequencing in the report.",
"max_score": 15
},
{
"name": "History extraction",
"description": "Builds report rows from the package outputs (mods/modResults/history returned by compileModsAsync or evalModsAsync) to capture pluginName, modName, platform, and skipped/applied status instead of reconstructing data manually.",
"max_score": 15
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10