XnaFiddle: Skill for Claude Code

.claude/skills/shaders/SKILL.md

shaders is a skill for Claude Code from vchelaru/XnaFiddle. It costs 110 tokens per session (3,055 once invoked), scanned A, original, MIT.

A skill for the HLSL shader system in XnaFiddle, a browser-based tool for writing and running graphics code. It covers compiling .fx shader files in the browser, loading the compiled effects, build settings, editor tabs, and sharing shader examples.

In plain words
What is it for?
Use it when changing shader compilation, .fx editor tabs, build configuration, content loading, or shader data in shared snippets and gists.
Why use it?
It documents the project-specific path from shader source to a browser-renderable effect, including the difference between browser and test builds.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is vchelaru/XnaFiddle's own configuration. It tells Claude Code how to work on XnaFiddle itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything XnaFiddle configures →

Reuse

Borrowing it

Nothing to install: this file belongs to vchelaru/XnaFiddle. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/vchelaru/XnaFiddle/main/.claude/skills/shaders/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/vchelaru/XnaFiddle

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for shaders

README.md
[![agentmods](https://agentmods.dev/badge/skills/vchelaru/xnafiddle/shaders.svg)](https://agentmods.dev/skills/vchelaru/xnafiddle/shaders)
Your own site
<a href="https://agentmods.dev/skills/vchelaru/xnafiddle/shaders"><img src="https://agentmods.dev/badge/skills/vchelaru/xnafiddle/shaders.svg" alt="Measured on agentmods" height="20"></a>
Per session 110 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,055 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00110 $0.03055
Opus 5 $0.00055 $0.01528
Sonnet 5 $0.00022 $0.00611
Haiku 4.5 $0.00011 $0.00305

Measured yesterday against content hash bc20dbc4e28d, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

shaders scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/shaders/SKILL.md · 88 lines

How it starts

The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Shaders

XnaFiddle compiles user HLSL .fx to KNI .mgfx entirely in the browser via the ShadowDusk.Wasm NuGet package (DXC + SPIRV-Cross WASM modules), then loads the result as an Effect through InMemoryContentManager. No MGCB/content pipeline, no server round-trip.

Build wiring

  • ShadowDusk.Wasm is a PackageReference conditioned to net10.0-browser (XnaFiddle.BlazorGL.csproj). It targets net8.0-browser1.0 in its own nuspec (its [JSImport] backends); a net10.0-browser consumer resolves it fine via NuGet's upward TFM compatibility, but a plain net10.0 reference still fails NU1201. This is the same browser-vs-test-build split as XnaFiddle.Core (issue #26): the test-only net10.0 build cannot reference it.
  • The SHADOWDUSK DefineConstants is set only for net10.0-browser. All shader-compile code is wrapped in #if SHADOWDUSK; the net10.0 build #ifs it out and CompileRegisteredShadersAsync becomes a no-op returning null.
  • Version is pinned by $(ShadowDuskVersion) in Directory.Build.props — the only file to touch when bumping (the number quoted in this skill drifts; read the prop for the live value). All ShadowDusk packages release in lockstep on one version, so this property feeds both the editor's ShadowDusk.Wasm reference and the exporter's PackageVersions.ShadowDusk (generated const) — because exported projects now compile their .fx at runtime via ShadowDusk too (issue #39, see "Export" below). 0.5.0+ is required for the exported path: it added InitializeAsync() + a synchronous Compile().
  • All three packages (ShadowDusk.Core / .Wasm / .Compiler) come from nuget.orgnot the KniSB submodule (the nuget.config comment about "sibling ShadowDusk projects" is misleading; that's a historical CPM/NU1507 note). Confirm a version exists before bumping: https://api.nuget.org/v3-flatcontainer/shadowdusk.core/index.json. After a bump, only XnaFiddle.BlazorGL exercises the new package at build time (web/editor side); exported projects are built later by the end user, so the exporter just writes the version string.
  • The DXC + SPIRV-Cross wasm modules ship inside the package as static web assets served automatically at _content/ShadowDusk.Wasm/. Nothing to copy or configure.

Read the full file on GitHub · 88 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 88 lines · 110 tokens per session scan A bc20dbc4e28d

Subscribe to this mod's changes

shaders is a skill published in the GitHub repository vchelaru/XnaFiddle (13 stars, last pushed yesterday), licensed MIT. It adds 110 tokens to every session and 3,055 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.