What problem does it solve?
Updating SkiaSharp's fork of the Skia graphics library to a new Chrome milestone is a high-risk, multi-repository operation: upstream merges can silently drop fork patches, C API shims break on struct and enum changes, bindings must be regenerated, and dependency revisions must be reconciled with Component Governance metadata. This Skill orchestrates that entire workflow with deterministic gates so no fork patch, dependency decision, or test failure slips through.
Core Features & Use Cases
- Audited upstream merge: Performs a genuine two-parent merge in mono/skia and audits every fork patch with evidence-backed dispositions (preserved, adapted, upstreamed, obsolete) via
audit_fork_patches.py.
- Version and dependency synchronization:
update_versions.py updates VERSIONS.txt, pipeline variables, SK_C_INCREMENT, and cgmanifest.json, and enforces semantic-version review for every changed DEPS entry.
- Binding regeneration and full testing:
regenerate_bindings.py regenerates all P/Invoke bindings, reverts HarfBuzz changes, and the workflow requires an unfiltered tests/SkiaSharp.Tests.Console.slnx pass across every GPU backend before shipping dual-repo PRs.
- Use Case: When a new Chrome milestone (e.g., m133) ships, run this Skill to merge upstream into mono/skia, adapt the C API, regenerate managed bindings, validate all test hosts, and produce coordinated PRs in both repositories.
Quick Start
Ask the agent to update Skia to the latest Chrome milestone in the SkiaSharp repository and prepare the paired mono/skia and SkiaSharp pull requests.