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 how well the solution uses @expo/config-plugins base mod utilities to register and run platform file providers for transport security settings on Android and iOS. Focuses on leveraging the package to read/write native files and apply manifest/plist mutations through the mod pipeline instead of manual file handling. Scoring rewards direct use of the package's base mod, manifest, and plist helpers that align with the spec's behaviors.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Base mods",
"description": "Registers platform base mods with package helpers (withBaseMod/withAndroidBaseMods/withIosBaseMods) so Android manifest and Info.plist IO happen through the mod pipeline instead of manual file access.",
"max_score": 25
},
{
"name": "Android IO",
"description": "Uses AndroidConfig.Manifest.readAndroidManifestAsync and AndroidConfig.Manifest.writeAndroidManifestAsync (or equivalent package manifest IO) inside the Android mod action rather than custom XML parsing.",
"max_score": 20
},
{
"name": "Android mutation",
"description": "Sets the usesCleartextTraffic attribute via package manifest helpers such as AndroidConfig.Manifest.getMainApplicationOrThrow or related utilities instead of hand-editing XML strings.",
"max_score": 15
},
{
"name": "iOS IO",
"description": "Reads and writes Info.plist through IOSConfig.Plist.readPlistAsync and IOSConfig.Plist.writePlistAsync (or equivalent) within the iOS base mod, avoiding raw file system operations.",
"max_score": 20
},
{
"name": "ATS mutation",
"description": "Builds the NSAppTransportSecurity dictionary and per-domain exceptions using package plist utilities (e.g., IOSConfig.Plist helpers) rather than manual string replacement, keeping NSAllowsArbitraryLoads and exception keys set through the provided modResults object.",
"max_score": 20
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10