Create or regenerate patch-package patches, including resolutions failures and build-artifact verification.
69
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Patches live in patches/<pkg>+<version>.patch and auto-apply on install. Never hand-edit a .patch — edit the node_modules/ source, then generate.
@onekeyfe/* packagesIn @onekeyfe/* packages, including npm aliases such as react-native-pager-view → @onekeyfe/react-native-pager-view, a committed patch may only change .js/.jsx/.ts/.tsx files. yarn lint:onekeyfe-patches enforces this.
For native code (Objective-C, Swift, Java, Kotlin, C/C++) and native build files:
node_modules/, then rebuild with yarn workspace @onekeyhq/mobile dev-shell --platform <android|ios> --shell local. The default --shell auto reuses a cached shell because the shell key ignores edits inside node_modules.apps/mobile/out-dir-bundle/dev-shell/local-cache/<platform>. The --shell local build is cached under the unchanged key, so --shell auto would keep installing it. Upgrading changes yarn.lock, and with it the key.node_modules/<pkg>/.... Comment lines out (don't delete) with a // OneKey patch: <why> note above.resolutions first or it fails with Couldn't find any versions for ...:cp package.json /tmp/pkg.bak
node -e "const fs=require('fs');const p=require('./package.json');delete p.resolutions;fs.writeFileSync('package.json',JSON.stringify(p,null,2)+'\n')"
npx patch-package <pkg> # npx, not yarn
cp /tmp/pkg.bak package.json # restore byte-exactDiff the edited file against the pristine tarball in the Yarn cache:
EXTRACT=$(mktemp -d); unzip -q .yarn/cache/<pkg>-npm-<ver>-*.zip -d "$EXTRACT"
PRISTINE=$(find "$EXTRACT" -path "*<rel/path/File.ext>"); SUB="node_modules/<pkg>/<rel/path/File.ext>"
REPO=$(mktemp -d); (cd "$REPO" && git init -q && mkdir -p "$(dirname "$SUB")" \
&& cp "$PRISTINE" "$SUB" && git add -A && git -c user.email=x -c user.name=x commit -qm base \
&& cp "$OLDPWD/$SUB" "$SUB" && git diff) > patches/<pkg>+<version>.patchgit apply --check -p1 patches/<pkg>+<version>.patch # must pass against a pristine file
grep -c android/build patches/<pkg>+<version>.patch # must be 0 (else rm -rf node_modules/<pkg>/android/build, regenerate)356c24e
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.