Agent skill

Merge Skia Update

by mono in mono/SkiaSharp

Guide a maintainer through manually landing an already reviewed Skia update.

MITAuto-check passedProduct & Project Management

Install Merge Skia Update

skills CLI
$ npx skills add mono/SkiaSharp --skill merge-skia-update -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mono/SkiaSharp merge-skia-update --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/merge-skia-update .claude/skills/merge-skia-update && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
merge-skia-update
GitHub stars
5.6k
Token cost
~2k tokens
SKILL.md length
1,064 words
Files
4 (incl. scripts)
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Guide a maintainer through manually landing an already reviewed Skia update.

  • Works in 6 steps: Resolve and confirm → Preserve the previous release line for… → Prepare the mono/skia merge → …
  • Tasks that involve Project management
  • SKILL.md covers 1. Resolve and confirm, 2. Preserve the previous…, 3. Prepare the mono/skia merge and 4. Repin the existing…, plus 3 more sections
  • Runs PowerShell scripts from its folder; calls pwsh and gh

What it does

Merge Skia Update is an agent skill from mono/SkiaSharp. Guide a maintainer through manually landing an already reviewed Skia update. Use after review-skia-update has completed and the maintainer is happy with the paired mono/skia and mono/SkiaSharp PRs. Optionally preserves the previous release line, prepares the mono/skia merge message, pauses for the manual native merge, repins the existing parent PR to the actual merged commit, then prepares the SkiaSharp merge message. This skill never merges either PR.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `evals/evals.json`). Compatibility notes: Requires git, gh, and PowerShell 7.4+ with access to mono/skia and mono/SkiaSharp.

It sits in Product & Project Management, covering Project management. The repository describes itself as: SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile… The licence is MIT.

When your agent uses it

  • Tasks that involve Project management

Example prompts

  • “/merge-skia-update”

Requirements

  • PowerShell
  • Compatibility (from SKILL.md): Requires git, gh, and PowerShell 7.4+ with access to mono/skia and mono/SkiaSharp.

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Resolve and confirm
  2. Preserve the previous release line for milestone bumps
  3. Prepare the mono/skia merge
  4. Repin the existing SkiaSharp PR
  5. Prepare the mono/SkiaSharp merge
  6. Post-merge check

What it can do on your machine

Read from SKILL.md and the folder at commit 6e0e83e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (PowerShell), which the agent can run.

    Shell commands in SKILL.md call:

    • pwsh
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires git, gh, and PowerShell 7.4+ with access to mono/skia and mono/SkiaSharp.

    From compatibility in the SKILL.md frontmatter.

Context cost

Merge Skia Update loads about 2k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 1,064 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from mono/SkiaSharp at commit 6e0e83e, republished under its MIT licence (© mono). 1,064 words, ~1,995 tokens.

Download SKILL.mdSave it as .claude/skills/merge-skia-update/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
merge-skia-update
description
Guide a maintainer through manually landing an already reviewed Skia update. Use after review-skia-update has completed and the maintainer is happy with the paired mono/skia and mono/SkiaSharp PRs. Optionally preserves the previous release line, prepares the mono/skia merge message, pauses for the manual native merge, repins the existing parent PR to the actual merged commit, then prepares the SkiaSharp merge message. This skill never merges either PR.
compatibility
Requires git, gh, and PowerShell 7.4+ with access to mono/skia and mono/SkiaSharp.

Merge Skia Update

Help with the mechanical work around two manual merges. Do not repeat the review and do not merge either PR.

1. Resolve and confirm

Resolve the PR pair before asking for any landing confirmation.

If the maintainer supplied either PR, use its reciprocal link to find the companion PR. If they supplied both PRs, require each reciprocal link to point to the other; stop on any mismatch. Otherwise, search the open Skia update PRs and pair them using their reciprocal links and shared sync branches.

  • If exactly one pair is found, present it.
  • If multiple pairs are found, present the candidates and ask the maintainer which pair to land.
  • If no pair can be resolved, ask for either PR number and stop until it is provided.

For the selected pair, resolve and present:

  • the mono/skia PR number, head branch, and base branch;
  • the mono/SkiaSharp PR number, head branch, and base branch;
  • whether the parent targets main or an existing release/A.B.x branch.

Only after the maintainer sees the exact selected pair, ask them to confirm:

  • review-skia-update has run;
  • they are happy with the review and approve the update;
  • required CI was green;
  • they want to begin the manual landing.

If they do not confirm, stop. Do not independently re-audit reviews, labels, milestones, CI, packages, DEPS, bindings, or release notes.

2. Preserve the previous release line for milestone bumps

Run the script with the branch names already resolved by the AI:

powershell
pwsh .agents/skills/merge-skia-update/scripts/Prepare-SkiaReleaseBranches.ps1 `
  -SkiaSharpBaseBranch <parent-base> `
  -SkiaSharpHeadBranch <parent-head> `
  -SkiaBaseBranch <native-base>

The script determines the release action from the parent base branch:

  • main: compares the committed chrome_milestone on the parent base and head; when the milestone increases, it reads the base's committed SkiaSharp package version from scripts/VERSIONS.txt and derives release/A.B.x for the previous line;
  • main with no milestone change: reports a same-milestone sync and exits without creating refs;
  • release/A.B.x: reports a servicing sync and exits without creating refs.

The script always defaults to a dry run. For a milestone bump targeting main, it reads the current SkiaSharp base tip and the exact mono/skia commit referenced by its externals/skia gitlink. It requires the supplied mono/skia base branch to point at that commit and preflights the derived release branch in both repositories.

When the script reports a milestone bump, show the output and obtain confirmation. Rerun with the same inputs plus -Push. The script checks the source and destination refs again, creates the mono/skia release branch first, then the mono/SkiaSharp release branch, and verifies both. It never moves an existing branch. When it reports a same-milestone or servicing sync, continue without a push confirmation.

3. Prepare the mono/skia merge

Invoke pr-commit-message for the resolved mono/skia PR and give its title and body to the maintainer.

Tell the maintainer to merge mono/skia manually using Create a merge commit. Squash and rebase must not be used because upstream merge ancestry is part of the update history.

Stop. Continue only after the maintainer says mono/skia is merged.

4. Repin the existing SkiaSharp PR

Check whether the current checkout is clean, on the resolved SkiaSharp PR head branch, and matches its remote tip. Never discard or overwrite local changes.

If the current checkout is suitable, use it directly:

powershell
pwsh .agents/skills/merge-skia-update/scripts/Update-SkiaSharpSkiaCommit.ps1 `
  -SkiaSharpBranch <parent-head> `
  -SkiaBranch <native-base>

The default is a dry run. The script:

  1. reads the reviewed mono/skia commit from the parent PR gitlink;
  2. resolves the new tip of the supplied mono/skia base branch;
  3. requires that tip to be a two-parent merge containing the reviewed commit;
  4. requires the merged tree to equal the reviewed tree.

Show the output. If it is correct, rerun with -Push. The script updates only externals/skia and the mono/skia commitHash in cgmanifest.json, commits the change, and pushes the existing SkiaSharp PR branch without force.

If the current checkout is unsuitable, ask whether the maintainer wants to check out the parent PR branch or avoid a local checkout. For the no-checkout option, first verify the same two-parent ancestry and tree-equality conditions, record the exact verified mono/skia merge SHA, then trigger the existing workflow:

shell
gh workflow run auto-skia-submodule-sync.yml --repo mono/SkiaSharp \
  -f target_branch=<parent-head> \
  -f skia_branch=<native-base>

The workflow opens or updates a small dependent PR targeting the existing SkiaSharp PR branch. Before showing that PR to the maintainer, confirm it changes only externals/skia and cgmanifest.json and that both files point to the exact verified merge SHA. Recheck that SHA's ancestry and tree equality against the reviewed native commit. Stop if the workflow captured any SHA other than the recorded verified one. Wait for the maintainer to merge the dependent PR manually, then verify the parent PR still points to that exact SHA. Do not generate the parent merge message until the dependent PR is merged.

Show full SKILL.md (308 more words)Show less

5. Prepare the mono/SkiaSharp merge

Invoke pr-commit-message for the updated mono/SkiaSharp PR and give its title and body to the maintainer.

Tell the maintainer to merge it manually using the repository's normal merge method. Do not wait for another PR CI run: the repin script proved that the merged mono/skia tree is identical to the reviewed PR tree. CI on the resolved parent base branch validates the resulting merge.

Stop. Continue only after the maintainer says mono/SkiaSharp is merged.

6. Post-merge check

Confirm:

  • both PRs are merged;
  • the resolved mono/SkiaSharp parent base branch points its gitlink and cgmanifest at the actual mono/skia merge commit;
  • CI has started on that parent base branch for the resulting SkiaSharp commit.

Report both merged SHAs and the preserved release branch, if created. Do not wait for the parent base branch CI to finish.

Stop conditions

Stop when:

  • the maintainer does not confirm the initial checklist;
  • the PR pair or branch names cannot be resolved or the maintainer has not selected one of multiple candidate pairs;
  • supplied PR numbers do not reciprocally link to each other;
  • the parent base is neither main nor release/A.B.x;
  • the current product line cannot be derived from scripts/VERSIONS.txt;
  • a supplied native base branch does not match the parent base gitlink;
  • an existing release branch points at a different SHA;
  • a release source changes between dry run and -Push;
  • the parent head milestone regresses;
  • mono/skia was not merged with a two-parent merge commit;
  • that merge does not contain the parent PR's reviewed native commit;
  • the merged and reviewed native trees differ;
  • local repin was selected but the current checkout is not clean, on the parent PR branch, and at its remote tip;
  • the workflow repin changes unexpected files, captures a different native SHA, or its dependent PR is not merged;
  • the repin would change anything except externals/skia and cgmanifest.json.

© mono, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts) in .agents/skills/merge-skia-update of mono/SkiaSharp.

  • SKILL.md
  • evals/evals.json
  • scripts/Prepare-SkiaReleaseBranches.ps1
  • scripts/Update-SkiaSharpSkiaCommit.ps1

Open the folder on GitHubat commit 6e0e83e

Compare with similar skills

Merge Skia Update next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Merge Skia Update compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Merge Skia Update this skillmono/SkiaSharp5.6k—~2kAutomated safety check: PassMIT
CCPM Project Managementautomazeio/ccpm8.4k—~1.1kAutomated safety check: PassMIT
Ichartjswanghetommy/ichartjs352—~4.3kAutomated safety check: PassApache-2.0
Shep Workstreamsshep-ai/shep264—~2.5kAutomated safety check: PassMIT
Version Bound Cleanuppdparchitect/noodle160—~650Automated safety check: PassApache-2.0
Vc Review Situationwithkynam/vibecode-pro-max-kit1.1k—~2.2kAutomated safety check: PassMIT

Similar skills

  • Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.

    8.4k GitHub stars~1.1k tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Ichartjs

    wanghetommy/ichartjs

    Plan, validate, render, explain, and safely edit iChart.js visualizations from tabular, project, or diagram data.

    352 GitHub stars~4.3k tokensUpdated 2 days ago
    Product & Project ManagementAuto-check passed
  • Shep Workstreams

    shep-ai/shep

    A skill your agent uses when a large body of work (a version milestone, an epic, a roadmap, a set of PRDs/design docs) needs to be broken into parallel workstreams and executed with the shep CLI.

    264 GitHub stars~2.5k tokensUpdated 2 days ago
    Product & Project ManagementAuto-check passed
  • Version Bound Cleanup

    pdparchitect/noodle

    Gating migrations and clean-up code behind an update milestone.

    160 GitHub stars~650 tokensUpdated today
    Product & Project ManagementAuto-check passed
  • Vc Review Situation

    withkynam/vibecode-pro-max-kit

    A skill your agent uses when you need a read-only situation review and handoff summary of current branch state, local/remote refs, worktrees, active project plans, selected-plan hints, and suggested…

    1.1k GitHub stars~2.2k tokensUpdated 3 mo ago
    Product & Project ManagementAuto-check passed
  • Roadmap

    cloudposse/atmos

    Maintain and update the Atmos roadmap page (website/src/data/roadmap.js): milestone/initiative/quarter schema, progress-percentage math, the curated featured[] cap (max 6, never auto-modified), and…

    1.4k GitHub stars~2.5k tokensUpdated today
    Product & Project ManagementAuto-check passed

More from mono/SkiaSharp

All 21 skills in this repo
  • Issue Fix

    mono/SkiaSharp

    Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.

    5.6k GitHub stars~5.1k tokensUpdated yesterday
    Auto-check passed
  • Issue Repro

    mono/SkiaSharp

    Reproduce a SkiaSharp issue systematically and capture structured reproduction results.

    5.6k GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Issue Triage

    mono/SkiaSharp

    Triage a SkiaSharp GitHub issue or PR into structured JSON with classification (type, area, platform, severity), suggested response, automatable actions, and companion Markdown/HTML reports.

    5.6k GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Update native dependencies (libpng, libexpat, zlib, libwebp, harfbuzz, freetype, libjpeg-turbo, etc.) in SkiaSharp's Skia fork.

    5.6k GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed
  • Review Skia Update

    mono/SkiaSharp

    Review a Skia upstream merge PR in mono/skia. An agent skill from mono/SkiaSharp.

    5.6k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Sample Scout

    mono/SkiaSharp

    Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.

    5.6k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed

Questions about Merge Skia Update

What does Merge Skia Update do?

Guide a maintainer through manually landing an already reviewed Skia update. Merge Skia Update is an agent skill from mono/SkiaSharp. Guide a maintainer through manually landing an already reviewed Skia update.

When should I use Merge Skia Update?

Merge Skia Update fits situations like: tasks that involve Project management.

How do I install Merge Skia Update in Claude Code?

Run `npx skills add mono/SkiaSharp --skill merge-skia-update -a claude-code`. Or copy the skill folder (.agents/skills/merge-skia-update in mono/SkiaSharp) into .claude/skills/merge-skia-update in your project. Claude Code loads it when a task matches its description.

How do I install Merge Skia Update in Codex?

Run `npx skills add mono/SkiaSharp --skill merge-skia-update -a codex`. Or copy the skill folder (.agents/skills/merge-skia-update in mono/SkiaSharp) into .agents/skills/merge-skia-update in your project. Codex loads it when a task matches its description.

Can I use Merge Skia Update in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mono/SkiaSharp --skill merge-skia-update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/merge-skia-update, .gemini/skills/merge-skia-update, .github/skills/merge-skia-update and .opencode/skills/merge-skia-update in your project.

What does Merge Skia Update need to run?

Going by SKILL.md and its folder, Merge Skia Update needs PowerShell for the scripts in its folder and the command-line tools its instructions call (pwsh and gh). Our summary lists: PowerShell. Compatibility (from SKILL.md): Requires git, gh, and PowerShell 7.4+ with access to mono/skia and mono/SkiaSharp..

Does Merge Skia Update access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Merge Skia Update safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Merge Skia Update use?

Merge Skia Update is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Merge Skia Update use?

About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Merge Skia Update?

Skills that share tags, products or a category with Merge Skia Update: CCPM Project Management (automazeio/ccpm, 8.4k stars), Ichartjs (wanghetommy/ichartjs, 352 stars), Shep Workstreams (shep-ai/shep, 264 stars) and Version Bound Cleanup (pdparchitect/noodle, 160 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Merge Skia Update?

mono (a GitHub organization) maintains it in mono/SkiaSharp, which has 5,589 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 10, 2026.

Source: mono/SkiaSharp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.