Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Reproduce a SkiaSharp issue systematically and capture structured reproduction results.
$ npx skills add mono/SkiaSharp --skill issue-repro -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mono/SkiaSharp issue-repro --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/issue-repro .claude/skills/issue-repro && 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 "issue-repro" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/issue-repro into .claude/skills/issue-repro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-repro", 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/issue-reproType 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 issue-repro -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mono/SkiaSharp issue-repro --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/issue-repro .agents/skills/issue-repro && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "issue-repro" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/issue-repro into .agents/skills/issue-repro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-repro", 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 issue-repro -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mono/SkiaSharp issue-repro --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/issue-repro .cursor/skills/issue-repro && 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 "issue-repro" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/issue-repro into .cursor/skills/issue-repro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-repro", 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/issue-repro--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 issue-repro -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mono/SkiaSharp issue-repro --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/issue-repro .gemini/skills/issue-repro && 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 "issue-repro" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/issue-repro into .gemini/skills/issue-repro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-repro", 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 issue-reproInstalls 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 issue-repro -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/issue-repro .github/skills/issue-repro && 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 "issue-repro" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/issue-repro into .github/skills/issue-repro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-repro", 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 issue-repro -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 issue-repro --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/issue-repro .opencode/skills/issue-repro && 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 "issue-repro" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/issue-repro into .opencode/skills/issue-repro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-repro", 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.
issue-reproReproduce a SkiaSharp issue systematically and capture structured reproduction results.
Issue Repro is an agent skill from mono/SkiaSharp. Reproduce a SkiaSharp issue systematically and capture structured reproduction results. Handles bugs (verify reported behavior) and enhancements (confirm feature is missing). Produces schema-validated JSON with step-by-step commands, outputs, environment details, and conclusion. Triggers: "repro 123", "reproduce 123", "reproduce issue", "try to reproduce", "can you reproduce", "repro this bug", "create reproduction".
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts and reference files (for example `references/anti-patterns.md`, `references/bug-categories.md` and `references/conclusion-guide.md`).
It sits in Development. 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.
6 steps, taken from the step headings in SKILL.md.
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 3 files in scripts/ (PowerShell and Python), which the agent can run.
Shell commands in SKILL.md call:
dotnetgitdockerpwshpython3ghxcodebuildFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, docker and gh, which can reach the network depending on how they are called.
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.
Issue Repro loads about 4.7k tokens when it runs, and up to ~34k if it reads all its reference files. Until then it costs about 109 tokens; SKILL.md has 1,964 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,964 words, ~4,668 tokens.
.claude/skills/issue-repro/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.Issue pipeline: Step 2 of 3 (Repro). See documentation/dev/issue-pipeline.md.
Systematically reproduce a SkiaSharp issue and produce structured, schema-validated reproduction JSON.
These 3 reads are REQUIRED. Do not proceed to Phase 1 until all three are loaded.
Quick flow:
- Load issue + any prior triage JSON
- Read references: schema-cheatsheet, anti-patterns
- Create brief plan (5-10 lines: strategy, platform, expected outcome)
- Check environment:
docker info,dotnet --version, available simulators- Build repro project and attempt reproduction
- Test multiple SkiaSharp versions (3A reporter's → 3B latest → 3C main)
- Generate JSON → validate → persist
Phase 1 (Fetch) → Phase 2 (Assess) → Phase 3 (Reproduce) → Phase 4 (JSON + Output) → Phase 5 (Validate) → Phase 6 (Persist & Present)CACHE=".data-cache/repos/mono-SkiaSharp"
[ -d ".data-cache" ] || git worktree add .data-cache docs-data-cache
git -C .data-cache pull --rebase origin docs-data-cache
cat $CACHE/github/items/{number}.jsongh issue view {number} --repo mono/SkiaSharp --json title,body,labels,comments,state,createdAt,closedAt,author$CACHE/ai-triage/{number}.json exists, extract classification.platforms[], evidence.bugSignals, analysis.nextQuestions[], and output.actionability.suggestedReproPlatform as hints (verify independently). The suggestedReproPlatform (linux|macos|windows) indicates which CI runner was selected for reproduction.Read references/bug-categories.md to classify the issue type and determine the reproduction strategy. That file covers bugs (Sections 1–6), enhancements (Section 7), platform parity gaps (Section 8), and documentation issues (Section 9) — including which conclusion values and layer to use for each.
{reporter_version}: exact SkiaSharp NuGet version{reporter_tfm}: target framework (e.g., net10.0){reporter_code}: reproduction code from the issueIf not stated, use the latest stable release. .NET is forward-compatible — net8.0 libraries work on net10.0 apps. Never say "doesn't support .NET X" for newer TFMs.
⚠️ Run dotnet --info in /tmp/skiasharp/repro/{timestamp}/{number}/ (NOT the SkiaSharp repo, which has global.json pinning SDK 8.0). Record SDK version, workload versions, and runtime version. {timestamp} is the current UTC time in yyyyMMdd-HHmmss format.
Also check: Docker (docker --version), Playwright MCP tools, GPU availability, .NET workloads (dotnet workload list). Install missing workloads now — don't wait.
| Priority | Signals | Platform file |
|---|---|---|
| 1 | Blazor, WASM, WebAssembly, SKHtmlCanvas, browser error | platform-wasm-blazor.md |
| 2 | WPF, WinForms, WinUI, UWP | platform-windows-desktop.md |
| 3 | iOS, Android, MAUI, Xamarin | platform-mobile.md |
| 4 | Linux, Docker, container, NativeAssets.Linux | platform-docker-linux.md |
| 5 | (none) | platform-console.md |
All platform files fall back to platform-console.md for core SkiaSharp bugs.
Tie-breaking: If multiple platform signals (e.g., "WASM + WPF"), use the highest priority. If reporter says "works on X, fails on Y", reproduce on Y first, test X in Phase 3D.
Read the selected platform file. Follow its Create → Build → Run → Verify steps, substituting {reporter_version}, {reporter_tfm}, and {reporter_code}.
Output a brief plan before executing (5-10 lines: what platform, what version, what approach).
Read references/anti-patterns.md for the full list. Critical rules:
issue-fix skill's job.reproduced — even if by-design.rm -rf bin/ obj/ between versions.not-reproduced and needs-platform are VALID SUCCESS conclusions. Reporting inability to reproduce is correct behavior, NOT failure. NEVER invent output you did not observe from an actual command execution.binding/, externals/, samples/, source/, tests/, utils/, or any other product source during reproduction. Repro creates NEW test projects in /tmp/skiasharp/repro/{timestamp}/ only ({timestamp} is the current UTC time in yyyyMMdd-HHmmss format). If you find yourself editing SkiaSharp source, you have crossed into fix territory — stop.store_memory. Reproduction produces JSON artifacts, not memories. Storing unverified observations as permanent facts pollutes all future sessions.validate-repro.ps1 (or .py fallback) and see ✅ before persisting. Mentally checking fields is not validation. If the script isn't run, the reproduction is invalid.Intermittent bugs: If results are inconsistent, run 3–5 times. Reproduced ≥1 time → reproduced with note "Intermittent: X/Y runs". Never reproduced after 5 → not-reproduced.
Effort budget: Phases 1–2: ~5 min. Phase 3A: ~15–20 min. Phases 3B–3D: ~10–15 min. Total: ~30–50 min. If stuck after 3+ substantially different approaches, conclude with what you have.
Pre-flight — confirm before reproducing:
- Issue data loaded (cache JSON or GitHub API)
- Prior triage JSON loaded (if exists in
ai-triage/)- Read references/schema-cheatsheet.md for required fields and enums
- Read references/anti-patterns.md — at least the critical rules
- Environment checked:
docker info(if needed),dotnet --version,xcodebuild -showsdks(if iOS)- Created a brief plan (5-10 lines: reproduction strategy, which platform, what you expect)
- Never use
sudo— if a command requires it, find an alternative approach
Overview — you will test up to 4 configurations:
- 3A: Reporter's version on primary platform (always)
- 3B: Latest stable release (always)
- 3C: Main branch source (MANDATORY if 3B still reproduced)
- 3D: Cross-platform verification (conditional — see table below)
🛑 MINIMUM 2 VERSIONS REQUIRED. You must test at least the reporter's version (3A) AND latest stable (3B). Single-version reproductions are incomplete and will fail schema validation. This applies to ALL conclusion types — bugs (
reproduced/not-reproduced) AND enhancements (confirmed/not-confirmed). For enhancements: a feature may exist in one version but not another, or may have been removed. Version testing reveals this.
Follow the platform file from Phase 2.4. For each step, capture:
| Field | Limit |
|---|---|
command | Exact command (redact paths) |
exitCode | 0=success, non-zero=failure |
output | 2KB success, 4KB failure |
filesCreated | Filename + source code content for repro files |
layer | setup / csharp / c-api / native / deployment / investigation |
result | success / failure / wrong-output / skip |
Step result = what actually happened (technical outcome), not whether it was expected. A build that fails is result: "failure" even if that confirms the bug. See references/anti-patterns.md for details.
Note: Use
layer: "investigation"for source-code analysis steps in enhancement confirmations (grep, file reading). See Phase 2.1 for the full enhancement flow.
Push hard. Don't bail early. Only conclude not-reproduced after genuinely exhausting approaches.
⚠️ Clean build required: Create a fresh project directory per version (
/tmp/skiasharp/repro/{timestamp}/{number}-latest/) orrm -rf bin/ obj/before building. Never justsedthe version — stale native binaries produce unreliable results. See references/anti-patterns.md #7.
Use the same platform strategy from 3A with the latest stable SkiaSharp. Record in versionResults.
🛑 Do NOT skip when reproduced on latest. If the bug reproduces on the latest stable release, testing main is MANDATORY — it tells us whether a fix exists but hasn't been released.
[ -d "output/native" ] && ls output/native/ | head -5 || dotnet cake --target=externals-downloadsamples/Basic/<platform>/. Each platform file has a "Main Source Testing (Phase 3C)" section — follow it.Clean up: Revert sample file changes with
git checkout -- samples/.
| Primary result | Run 3D? |
|---|---|
reproduced (platform-specific) | Yes — test alternative platform |
not-reproduced + reporter on different platform | Yes |
reproduced (pure API bug, no platform signals) | Skip — note why |
not-reproduced + same platform as reporter | No |
Time cap: 5 minutes. Default alternative: Docker Linux x64.
| Primary | Best alternative |
|---|---|
| Console macOS | Docker Linux x64 |
| WASM/Blazor | Console on host |
| Docker Linux | Console on host |
| Windows (reported) | Console + Docker Linux |
Test reporter's version only. Derive scope: reproduced on ≥2 platforms → "universal", primary only → "platform-specific/{platform}", skipped → "unknown".
For confirmed/not-confirmed conclusions: Derive scope from your investigation — if the gap exists in ALL platform views → "universal", if the gap is specific to one platform's view (e.g., Blazor only) → "platform-specific/{platform}". Always set scope for confirmed conclusions (schema requires it).
Some bugs live in framework-specific code (MAUI views, WPF handlers, Uno controls) that can't be run in a console app. Use this escalation order — only move to the next level if the previous one fails:
When to simulate: Only when steps 1-4 are impossible (wrong OS, no SDK, no device). Example: a WPF bug on a macOS host with no Windows VM.
How to simulate: Extract the suspect code path into a standalone console app. Model the framework inputs (e.g., resize events, binding updates) and verify the logic path triggers the bug.
Recording: Set reproProject.type: "simulation" in the JSON. The triage's classifiedPlatform vs repro's type: "simulation" shows the gap clearly.
Example: Opus reproduced SKXamlCanvas NRE (#3430) by extracting the resize handler logic into a console app, feeding 73 dimension combinations, and confirming 100% NRE rate when width/height were 0.
Read references/conclusion-guide.md. Key question: did the reported claim hold true?
| Conclusion | When | Issue Types |
|---|---|---|
reproduced | Reported behavior occurred, including wrong/incomplete output (even if by-design) | Bugs |
not-reproduced | Reported behavior did not occur | Bugs |
confirmed | Reporter's claim verified (feature IS missing, docs ARE wrong) | Enhancements, features, docs |
not-confirmed | Reporter's claim not verified (feature exists, docs are correct) | Enhancements, features, docs |
needs-platform / needs-hardware | Requires unavailable platform/hardware | Any |
partial / inconclusive | Partial or ambiguous results | Any |
Write to /tmp/skiasharp/repro/{timestamp}/{number}.json. Use the exact literal path /tmp/skiasharp/repro/{timestamp}/ — do NOT substitute $TMPDIR or any other variable. {timestamp} is the current UTC time in yyyyMMdd-HHmmss format. Run mkdir -p /tmp/skiasharp/repro/{timestamp} first if needed.
Schema: references/repro-schema.json. See references/repro-examples.md for full worked examples.
Key rules (schema enforces the rest):
nullenvironment.dotnetSdkVersion: exact SDK from dotnet --info. Include wasmToolsVersion for WASM.versionResults: include platform field (e.g., "host-macos-arm64", "docker-linux-x64")/Users/{name}/ → $HOME/), tokens, credentials.If reproduction contradicts triage, record in feedback.corrections[]:
{ "source": "triage", "topic": "classification", "upstream": "...", "corrected": "..." }When conclusion is reproduced, not-reproduced, confirmed, or not-confirmed, generate the output object with actionability, actions, and a proposed response. Skip for blocked conclusions (needs-platform, needs-hardware, partial, inconclusive).
| Scenario | suggestedAction | Confidence |
|---|---|---|
| Reproduced on all versions including latest/main | needs-investigation | 0.90+ |
| Reproduced on reporter's version, fixed on latest | close-as-fixed | 0.85+ |
| Reproduced on reporter's version, fixed on main (unreleased) | keep-open | 0.80+ |
| Not reproduced — likely environment/config issue | request-info | 0.70+ |
| Not reproduced — works on all tested versions | close-as-fixed | 0.75+ |
| Wrong output confirmed | needs-investigation | 0.85+ |
| Reproduced but appears working-as-designed | close-with-docs | 0.70+ |
| Confirmed — feature/docs gap verified | needs-investigation | 0.85+ |
| Not confirmed — feature/docs actually exist | close-with-docs | 0.75+ |
See references/response-guidelines.md for tone, evidence requirements, status thresholds (ready/needs-human-edit/do-not-post), and conclusion-specific templates.
If reproduction testing reveals a workaround (version upgrade, config change, workload install, API alternative), add to output.workarounds[] as simple strings and include in the proposed response body.
When conclusion is not-reproduced or the response asks for more details, populate output.missingInfo[] with specific items needed (e.g., "Exact .NET SDK version", "Full exception stack trace", "Minimal reproduction project"). Reference these in proposedResponse.body.
Use the same action types as triage. Common repro actions:
| Action | When | Risk |
|---|---|---|
update-labels | Add platform labels confirmed by repro, remove incorrect ones | low |
close-issue | Bug fixed in latest + reporter can upgrade | medium |
set-milestone | Bug confirmed, target a release | low |
link-related | Discovered related issue during repro | low |
🛑 PHASE GATE: You CANNOT persist without passing validation. Skipping validation = INVALID reproduction. The task is incomplete.
# Try pwsh first, fall back to python3
pwsh .agents/skills/issue-repro/scripts/validate-repro.ps1 /tmp/skiasharp/repro/{timestamp}/{number}.json \
|| python3 .agents/skills/issue-repro/scripts/validate-repro.py /tmp/skiasharp/repro/{timestamp}/{number}.json⚠️ NEVER hand-roll your own validation. NEVER assume it passes. RUN THE SCRIPT. If you have not seen ✅ from the validator, DO NOT proceed to Phase 6.
🛑 PHASE GATE: Validator MUST have printed ✅ before proceeding to Phase 6.
Copy the validated JSON to output/ai/ for collection.
pwsh .agents/skills/issue-repro/scripts/persist-repro.ps1 /tmp/skiasharp/repro/{timestamp}/{number}.jsonThis copies the JSON to output/ai/ mirroring the data-cache structure.
✅ Reproduction: ai-repro/{number}.json
Conclusion: reproduced
Steps: 5 (3 success, 1 failure, 1 skip)
Environment: macOS arm64, SDK 10.0.102
Version results:
SkiaSharp 2.88.9 (reporter): ❌ REPRODUCED
SkiaSharp 3.116.1 (latest): ❌ REPRODUCED
main (source): ✅ not-reproduced© 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 15 other files (scripts, references) in .agents/skills/issue-repro of mono/SkiaSharp.
Open the folder on GitHubat commit cb51ed5
Issue Repro 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 |
|---|---|---|---|---|---|---|
| Issue Repro this skillmono/SkiaSharp | 5.6k | — | ~4.7k | Automated safety check: Pass | MIT | |
| Vercel Composition Patternssupabase/supabase | 111k | 58 repos | ~726 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Typescript Advanced Typesrolling-scopes/rsschool-app | 10k | 25 repos | ~4.2k | Automated safety check: Pass | MPL-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT |
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
rolling-scopes/rsschool-app
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
mono/SkiaSharp
Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.
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.
mono/SkiaSharp
Analyze Skia features for SkiaSharp - produces a unified analysis of what shipped (upstream engine benefits, PR links, migration guides) and what's missing (impact/priority/effort scoring, hidden…
Categories
Reproduce a SkiaSharp issue systematically and capture structured reproduction results. Issue Repro is an agent skill from mono/SkiaSharp. Reproduce a SkiaSharp issue systematically and capture structured reproduction results.
Issue Repro fits situations like: development work in your project.
Run `npx skills add mono/SkiaSharp --skill issue-repro -a claude-code`. Or copy the skill folder (.agents/skills/issue-repro in mono/SkiaSharp) into .claude/skills/issue-repro in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mono/SkiaSharp --skill issue-repro -a codex`. Or copy the skill folder (.agents/skills/issue-repro in mono/SkiaSharp) into .agents/skills/issue-repro 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 issue-repro -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/issue-repro, .gemini/skills/issue-repro, .github/skills/issue-repro and .opencode/skills/issue-repro in your project.
Going by SKILL.md and its folder, Issue Repro needs PowerShell and Python for the scripts in its folder and the command-line tools its instructions call (dotnet, git, docker, pwsh, python3 and gh). Our summary lists: Python 3; PowerShell; Docker.
SKILL.md contains no URLs. Its commands use git, docker and gh, which can reach the network depending on how they are called. 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.
Issue Repro is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k 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 29k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Issue Repro: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k 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.