# 1k Patch Package Workflow

> Create or regenerate patch-package patches, including resolutions failures and build-artifact verification.

- Skill: `onekeyhq/1k-patch-package-workflow` (Agent Skill)
- Install (CLI): `npx skillmds@latest add onekeyhq/1k-patch-package-workflow`
- Raw SKILL.md: https://api.skillmd.com/api/skills/onekeyhq/1k-patch-package-workflow/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: onekeyhq (https://skillmd.com/u/onekeyhq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/onekeyhq/1k-patch-package-workflow

---


# patch-package workflow

Patches live in `patches/<pkg>+<version>.patch` and auto-apply on install. Never hand-edit a `.patch` — edit the `node_modules/` source, then generate.

## Generate

1. Edit `node_modules/<pkg>/...`. Comment lines out (don't delete) with a `// OneKey patch: <why>` note above.
2. Generate — **must drop `resolutions` first** or it fails with `Couldn't find any versions for ...`:

```bash
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-exact
```

## Fallback (generate still fails: offline / private dep)

Diff the edited file against the pristine tarball in the Yarn cache:

```bash
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>.patch
```

## Verify (required)

```bash
git 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)
```

