Native Skia
React Native Skia canvas animations, drawing primitives, Reanimated integration, CanvasKit/web caveats, performance, memory, and Expo/native validation.
Operating Contract
Use this skill as a compact router plus domain checklist. Load references only
when the current task matches their condition. Do not cite local scrape paths,
machine cache paths, or hidden source locations. Verify API details against the
target repo's installed package versions before editing.
Source Order
- Inspect the target repo's installed packages, framework/runtime versions,
local design tokens, accessibility policy, and existing motion patterns.
- Use the bundled references below for skill-specific gotchas and copied source
excerpts.
- Use official current docs/package source as API truth when local code or
bundled notes are version-sensitive.
Decision Boundaries
- Use native-motion-core for ordinary view motion.
- Use native-three-r3f for 3D scenes.
- Use native-lottie/native-rive for designer-authored assets.
Workflow
- Check Skia, Expo SDK, platform support, and web requirements.
- Keep drawing state and animation values in the appropriate runtime.
- Avoid many animated native views when one canvas is the right surface.
- Validate memory, resize, background/foreground, and platform rendering.
Gotchas
- Skia web may require CanvasKit setup.
- Canvas output needs accessible surrounding UI.
- Large paths/images/shaders need memory and lifecycle ownership.
Bundled Resources
references/skia-canvas-patterns.md - Skia canvas animation patterns. Read when building or reviewing Skia drawing/animation code.
references/skia-performance-lifecycle.md - Skia performance and lifecycle. Read for memory, resource, image/path/shader, and frame pressure review.
references/skia-web-expo-boundaries.md - Skia web and Expo boundaries. Read for CanvasKit, Expo package compatibility, and platform proof.
references/skia-reanimated-interoperability.md - Skia and Reanimated interoperability. Read when Skia drawing state is animated by Reanimated shared values, gestures, or UI-thread updates.
references/image-font-shader-resource-cache.md - Skia image, font, shader, and resource cache policy. Read when Skia code loads images, fonts, paths, shaders, color filters, or large resources.
references/docs-react-native-skia-api-notes.md - Copied source excerpt. Load only when exact upstream wording or API detail is needed.
references/docs-react-native-skia-installation.md - Copied source excerpt. Load only when exact upstream wording or API detail is needed.
references/docs-software-mansion-canvas-animations.md - Copied source excerpt. Load only when exact upstream wording or API detail is needed.
references/docs-software-mansion-canvas-atlas.md - Copied source excerpt. Load only when exact upstream wording or API detail is needed.
references/index.md - Complete reference inventory and routing summary.
references/source-ledger.md - Source list, checked date, and copy policy.
references/provenance.json - Machine-readable source and local-resource metadata.
scripts/audit.mjs - Self-contained audit CLI; run doctor before scan when setup is unclear.
assets/templates/native-skia-audit-report.md - Audit response/report template.
assets/templates/native-skia-review-checklist.md - Manual review checklist.
assets/examples/native-skia-starter.tsx - Starter fixture/example for this skill.
evals/trigger-queries.json - Trigger/near-miss eval set for description tuning.
evals/evals.json - Task-quality evals with assertions.
Audit CLI
node scripts/audit.mjs doctor --root . --format json
node scripts/audit.mjs scan --root . --format markdown
node scripts/audit.mjs scan --root . --format json --output native-skia-audit.json
Treat script findings as leads. Verify every finding against current code before
changing behavior or reporting it as valid.
Closeout
Before finalizing, run the repo's focused validation command, this skill's audit
CLI when relevant, and any browser/device/manual proof required by the changed
surface. Report commands run, findings fixed, findings skipped with reasons,
and residual risk.
1---2name: native-skia3description: Use this skill for React Native Skia canvas animations, drawing primitives, Reanimated integration, CanvasKit/web caveats, performance, memory, and Expo/native validation. Trigger on React Native Skia, @shopify/react-native-skia, Skia Canvas, CanvasKit, Skia animation. Do not use for near-miss tasks outside these boundaries; route to adjacent motion or platform skills when they own the implementation.4license: MIT5---67# Native Skia89React Native Skia canvas animations, drawing primitives, Reanimated integration, CanvasKit/web caveats, performance, memory, and Expo/native validation.1011## Operating Contract1213Use this skill as a compact router plus domain checklist. Load references only14when the current task matches their condition. Do not cite local scrape paths,15machine cache paths, or hidden source locations. Verify API details against the16target repo's installed package versions before editing.1718## Source Order19201. Inspect the target repo's installed packages, framework/runtime versions,21 local design tokens, accessibility policy, and existing motion patterns.222. Use the bundled references below for skill-specific gotchas and copied source23 excerpts.243. Use official current docs/package source as API truth when local code or25 bundled notes are version-sensitive.2627## Decision Boundaries2829- Use native-motion-core for ordinary view motion.30- Use native-three-r3f for 3D scenes.31- Use native-lottie/native-rive for designer-authored assets.3233## Workflow34351. Check Skia, Expo SDK, platform support, and web requirements.362. Keep drawing state and animation values in the appropriate runtime.373. Avoid many animated native views when one canvas is the right surface.384. Validate memory, resize, background/foreground, and platform rendering.3940## Gotchas4142- Skia web may require CanvasKit setup.43- Canvas output needs accessible surrounding UI.44- Large paths/images/shaders need memory and lifecycle ownership.4546<!-- skill-resources:start -->47## Bundled Resources4849- `references/skia-canvas-patterns.md` - Skia canvas animation patterns. Read when building or reviewing Skia drawing/animation code.50- `references/skia-performance-lifecycle.md` - Skia performance and lifecycle. Read for memory, resource, image/path/shader, and frame pressure review.51- `references/skia-web-expo-boundaries.md` - Skia web and Expo boundaries. Read for CanvasKit, Expo package compatibility, and platform proof.52- `references/skia-reanimated-interoperability.md` - Skia and Reanimated interoperability. Read when Skia drawing state is animated by Reanimated shared values, gestures, or UI-thread updates.53- `references/image-font-shader-resource-cache.md` - Skia image, font, shader, and resource cache policy. Read when Skia code loads images, fonts, paths, shaders, color filters, or large resources.54- `references/docs-react-native-skia-api-notes.md` - Copied source excerpt. Load only when exact upstream wording or API detail is needed.55- `references/docs-react-native-skia-installation.md` - Copied source excerpt. Load only when exact upstream wording or API detail is needed.56- `references/docs-software-mansion-canvas-animations.md` - Copied source excerpt. Load only when exact upstream wording or API detail is needed.57- `references/docs-software-mansion-canvas-atlas.md` - Copied source excerpt. Load only when exact upstream wording or API detail is needed.58- `references/index.md` - Complete reference inventory and routing summary.59- `references/source-ledger.md` - Source list, checked date, and copy policy.60- `references/provenance.json` - Machine-readable source and local-resource metadata.61- `scripts/audit.mjs` - Self-contained audit CLI; run `doctor` before `scan` when setup is unclear.62- `assets/templates/native-skia-audit-report.md` - Audit response/report template.63- `assets/templates/native-skia-review-checklist.md` - Manual review checklist.64- `assets/examples/native-skia-starter.tsx` - Starter fixture/example for this skill.65- `evals/trigger-queries.json` - Trigger/near-miss eval set for description tuning.66- `evals/evals.json` - Task-quality evals with assertions.67<!-- skill-resources:end -->6869## Audit CLI7071```bash72node scripts/audit.mjs doctor --root . --format json73node scripts/audit.mjs scan --root . --format markdown74node scripts/audit.mjs scan --root . --format json --output native-skia-audit.json75```7677Treat script findings as leads. Verify every finding against current code before78changing behavior or reporting it as valid.7980## Closeout8182Before finalizing, run the repo's focused validation command, this skill's audit83CLI when relevant, and any browser/device/manual proof required by the changed84surface. Report commands run, findings fixed, findings skipped with reasons,85and residual risk.