LoopX PR Program Manager
loopx-project/loopx
Tracks a group of pull or merge requests across repositories as durable LoopX state: inventory, reconcile changes, keep priorities and a roadmap, and monitor over time.
Update the Skia graphics library to a new Chrome milestone in SkiaSharp's mono/skia fork.
$ npx skills add mono/SkiaSharp --skill update-skia -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mono/SkiaSharp update-skia --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/update-skia .claude/skills/update-skia && rm -rf skills-srcUse ~/.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/
Install the "update-skia" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skia into .claude/skills/update-skia/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-skia", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skiaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mono/SkiaSharp --skill update-skia -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mono/SkiaSharp update-skia --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/update-skia .agents/skills/update-skia && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update-skia" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skia into .agents/skills/update-skia/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-skia", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mono/SkiaSharp --skill update-skia -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mono/SkiaSharp update-skia --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/update-skia .cursor/skills/update-skia && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "update-skia" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skia into .cursor/skills/update-skia/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-skia", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mono/SkiaSharp.git --path .agents/skills/update-skia--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mono/SkiaSharp --skill update-skia -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mono/SkiaSharp update-skia --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/update-skia .gemini/skills/update-skia && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "update-skia" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skia into .gemini/skills/update-skia/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-skia", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mono/SkiaSharp update-skiaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mono/SkiaSharp --skill update-skia -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/update-skia .github/skills/update-skia && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "update-skia" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skia into .github/skills/update-skia/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-skia", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mono/SkiaSharp --skill update-skia -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mono/SkiaSharp update-skia --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/update-skia .opencode/skills/update-skia && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "update-skia" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/update-skia into .opencode/skills/update-skia/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-skia", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
update-skiaUpdate the Skia graphics library to a new Chrome milestone in SkiaSharp's mono/skia fork.
Update Skia is an agent skill from mono/SkiaSharp. Update the Skia graphics library to a new Chrome milestone in SkiaSharp's mono/skia fork. Handles upstream merge, fork-patch preservation, dependency compatibility, C API adaptation, binding regeneration, full backend testing, and coordinated dual-repo PRs. Use whenever the user asks to update/bump Skia, merge upstream Skia, update the Skia submodule, sync a milestone or release line, merge upstream main, or check the current Skia milestone/version. For an individual dependency update, use native-dependency-update.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts and reference files (for example `references/breaking-changes-checklist.md`, `references/known-gotchas.md` and `references/phases/01-03-research.md`).
It sits in Development, covering Project management and Dependency 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.
Read from SKILL.md and the folder at commit cb51ed5. It shows what the files ask for, not the result of running them.
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.
Ships 8 files in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Update Skia loads about 2.4k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 133 tokens; SKILL.md has 1,064 words of instructions outside code blocks.
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.
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.
The full file from mono/SkiaSharp at commit cb51ed5, republished under its MIT licence (© mono). 1,064 words, ~2,407 tokens.
.claude/skills/update-skia/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.Use this skill as the source of truth for both a developer-run update and the automated sync. The workflow only supplies resolved inputs, a prepared host, and automated PR delivery.
Skia C++ -> SkiaSharp C API -> generated P/Invoke -> managed wrappers
Run from the mono/SkiaSharp repository root. Each phase lives in a separate reference so only the current work enters context.
Automation exports the SKIA_SYNC_* variables below. A local run resolves them in Phase 01.
Never replace supplied automation values with assumptions about main, skiasharp, or branch
names.
| Runtime value | Environment variable | Meaning |
|---|---|---|
{CURRENT} | SKIA_SYNC_CURRENT | Milestone on the parent base |
{TARGET} | SKIA_SYNC_TARGET | Requested target milestone |
{UPSTREAM_REF} | SKIA_SYNC_UPSTREAM_REF | chrome/m{TARGET} or main |
{BASE_BRANCH} | SKIA_SYNC_BASE_BRANCH | Parent PR base |
{PARENT_BASE_SHA} | SKIA_SYNC_PARENT_BASE_SHA | Exact parent base commit used for metadata comparison |
{SKIA_BASE_BRANCH} | SKIA_SYNC_SKIA_BASE_BRANCH | mono/skia PR base |
{SKIA_BASE_SHA} | SKIA_SYNC_SKIA_BASE_SHA | Exact mono/skia commit recorded by the parent base |
{HEAD_BRANCH} | SKIA_SYNC_HEAD_BRANCH | Feature branch used in both repositories |
{IS_RELEASE} | SKIA_SYNC_IS_RELEASE | Whether the selected base is a release line |
{BASE_UPSTREAM_SHA} | SKIA_SYNC_BASE_UPSTREAM_SHA | Exact upstream commit recorded by the parent base |
{TARGET_UPSTREAM_SHA} | SKIA_SYNC_TARGET_UPSTREAM_SHA | Exact fetched target upstream commit |
{PLATFORM} | SKIA_SYNC_PLATFORM | Native Cake target suffix |
{ARCH} | SKIA_SYNC_ARCH | Native architecture |
SKIA_SYNC_AUTOMATION=1 selects the automation handoff in Phase 11. Without it, use the
repository PR templates and normal developer pushes.
Initialize the artifact directory once:
ARTIFACT_DIR="${SKIA_SYNC_ARTIFACT_DIR:-${TMPDIR:-/tmp}/skia-sync-agent}"
mkdir -p "$ARTIFACT_DIR"An update is complete only when:
tests/SkiaSharp.Tests.Console.slnx run passes every host, including
every GPU backend required by GpuPolicy on the validation host.upstreamed only after enumerating every independent behavior in its old
delta and locating each one in the target; one upstreamed hunk does not cover another lost hunk.DEPS as ground truth: every enabled revision that differs from the fork base must
have a matching final decision, exact-SHA evidence, and reconciled Component Governance metadata.
A dependency recorded as preserved must still equal the fork-base revision.update_versions.py identify dependency changes from exact base/final DEPS. For every tracked
changed dependency, and every legacy tracked registration missing verification evidence, derive
the semantic version from checked-out source and complete the skia_dependency fields before the
helper can pass. Never update a manifest version when its DEPS identity did not change.externals-download after a submodule/native/C API change./// comment trivia are allowed when regeneration preserves them.GpuPolicy for its platform.nohup, &, or agent-turn progress polling. If the shell tool keeps a command running, block on
that existing session and inspect its output once after it exits.$ARTIFACT_DIR; inspect bounded excerpts instead of
streaming large generated files, manifests, or successful build/test logs into model context.| Mode | Version behavior |
|---|---|
| Normal milestone | Advance milestone, soname, assembly/file, and package versions |
| Release-line bug-fix | Keep versions; advance Skia hashes only |
Upstream main tip | Keep versions; still regenerate, build, and test because APIs may change |
CURRENT == TARGET means bug-fix behavior only when {UPSTREAM_REF} != main.
Open the router's exact linked phase file once, complete its gate, then move to the next row. Do not glob for alternate phase names or reread an unchanged phase file.
| Phases | Read when starting | Required outcome |
|---|---|---|
| 01–03 Resolve & research | references/phases/01-03-research.md | Authoritative runtime state, diff analysis, and independent review |
| 04–05 Branch & merge | references/phases/04-05-branch-and-merge.md | Correct branches and audited two-parent upstream merge |
| 06–07 Update & native build | references/phases/06-07-update-and-build.md | Version files consistent and updated native source builds |
| 08–10 Bindings & tests | references/phases/08-10-bindings-and-tests.md | Bindings reviewed and final unfiltered solution green |
| 11–11 Ship | references/phases/11-11-ship.md | Local PRs or automation handoff; no merge without approval |
Do not preload other phase files. The current phase file names any narrower reference section needed for that phase.
SKIA_SYNC_SKILL_DIR. After changing the product branch, continue reading phase references and
running helpers from that staged directory rather than the branch-local .agents tree.scripts/update_versions.py updates and validates version surfaces, Skia hashes, and deterministic
DEPS-to-Component-Governance identity/review signals.scripts/regenerate_bindings.py runs every binding configuration from the checked-out
source and reports new native functions.scripts/audit_fork_patches.py compares the old and new fork deltas and fails while any
added, removed, or changed patch lacks a final evidence-backed disposition.These scripts are idempotent and are the source of truth for their phases. Do not manually recreate their behavior.
cgmanifest.json model.Report the upstream ref/SHA, fork-patch and dependency decisions, C API/binding changes, exact build and per-host test results, both PR links, and unresolved cross-platform review. Do not merge either PR without explicit approval.
© mono, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 17 other files (scripts, references) in .agents/skills/update-skia of mono/SkiaSharp.
Open the folder on GitHubat commit cb51ed5
Update Skia 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Update Skia this skillmono/SkiaSharp | 5.6k | — | ~2.4k | Automated safety check: Pass | MIT | |
| LoopX PR Program Managerloopx-project/loopx | 6.2k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Code Reviewcroffasia/itsaplan | 913 | — | ~2k | Automated safety check: Pass | AGPL-3.0 | |
| GitHub Issue Bulk Assignercodewhale-hq/Codewhale | 41k | — | ~953 | Automated safety check: Pass | MIT | |
| Maintainability Reviewpmndrs/glyph | 395 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Releases-morgan-jeffries/apple-mail-fast-mcp | 104 | — | ~1.3k | Automated safety check: Pass | MIT |
loopx-project/loopx
Tracks a group of pull or merge requests across repositories as durable LoopX state: inventory, reconcile changes, keep priorities and a roadmap, and monitor over time.
croffasia/itsaplan
A skill your agent uses when reviewing code — a diff, a merge request, a file, a directory, or a feature.
codewhale-hq/Codewhale
Moves a list of GitHub issues into a milestone or assigns them to owners with the gh CLI, checking each one before and after the change.
pmndrs/glyph
Audit and improve repository code milestone by milestone for correctness, clarity, local reasoning, DRY design, explicit state modeling, panic resistance, and trustworthy TypeScript boundaries.
s-morgan-jeffries/apple-mail-fast-mcp
A skill your agent uses when the user wants to release a new version.
curiositech/some_claude_skills
Translate multi-agent ecosystem activity into human-readable status briefings, decision requests, and progress summaries.
mono/SkiaSharp
Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.
mono/SkiaSharp
Reproduce a SkiaSharp issue systematically and capture structured reproduction results.
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.
mono/SkiaSharp
Update native dependencies (libpng, libexpat, zlib, libwebp, harfbuzz, freetype, libjpeg-turbo, etc.) in SkiaSharp's Skia fork.
mono/SkiaSharp
Review a Skia upstream merge PR in mono/skia. An agent skill from mono/SkiaSharp.
mono/SkiaSharp
Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.
Categories
Update the Skia graphics library to a new Chrome milestone in SkiaSharp's mono/skia fork. Update Skia is an agent skill from mono/SkiaSharp. Update the Skia graphics library to a new Chrome milestone in SkiaSharp's mono/skia fork.
Update Skia fits situations like: the user asks to update/bump Skia; merge upstream Skia; update the Skia submodule; sync a milestone.
Run `npx skills add mono/SkiaSharp --skill update-skia -a claude-code`. Or copy the skill folder (.agents/skills/update-skia in mono/SkiaSharp) into .claude/skills/update-skia in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mono/SkiaSharp --skill update-skia -a codex`. Or copy the skill folder (.agents/skills/update-skia in mono/SkiaSharp) into .agents/skills/update-skia in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mono/SkiaSharp --skill update-skia -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-skia, .gemini/skills/update-skia, .github/skills/update-skia and .opencode/skills/update-skia in your project.
Going by SKILL.md and its folder, Update Skia needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Update Skia is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 14k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Update Skia: LoopX PR Program Manager (loopx-project/loopx, 6.2k stars), Code Review (croffasia/itsaplan, 913 stars), GitHub Issue Bulk Assigner (codewhale-hq/Codewhale, 41k stars) and Maintainability Review (pmndrs/glyph, 395 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mono (a GitHub organization) maintains it in mono/SkiaSharp, which has 5,587 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 9, 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.