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,243 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/github.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/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for shaders

Your own site · 80×15
<a href="https://agentmods.dev/skills/vchelaru/xnafiddle/shaders"><img src="https://agentmods.dev/badge/skills/vchelaru/xnafiddle/shaders.svg" alt="Reviewed on agentmods" width="80" 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,243 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.03243
Opus 5.5 $0.00044 $0.01297
Sonnet 5.5 $0.00022 $0.00649
Haiku 4.5 $0.00011 $0.00324

Measured 1mo ago against content hash 0f20f43110b9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, 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 1mo ago.

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 · 91 lines

How it starts

The opening of the file, as written. The whole thing — 91 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.org — not 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 · 91 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. 1mo ago Changed · +3 lines 0f20f43110b9
  2. 1mo ago 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 (14 stars, last pushed today), licensed MIT. It adds 110 tokens to every session and 3,243 once invoked, about $0.0004 per session on Opus 5.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.

Related

Other skills, from other repositories

playtest-report

Structured playtest report template, or turn existing playtest notes into structured feedback.

Donchitos/Claude-Code-Game-Studios · 20 tokens

godot-signals-groups

Build event-driven, decoupled Godot 4.7 gameplay with signals and node groups: declare and emit custom signals, connect with Callables (incl. bind/one-shot), and broadcast to many nodes via groups and callgroup. Use when wiring node communication in a Godot project, replacing tight references with signals…

gamedev-skills/awesome-gamedev-agent-skills · 95 tokens

motion

Reconstruct a skeleton from calibrated mesh projections and sequential VLM joint annotations, then fit joints and skin weights. Generate motion from joint-position trajectories, rhythm and contact constraints through IK; refine bone orientation against the action, then export, retarget and validate on the target mesh.

OpenDCAI/GameFactory-3A · 0 tokens

unity-addressables

Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based).

Besty0728/Unity-Skills · 25 tokens

threejs-exposure-color-grading

Build a measured exposure and grading path in Three.js. Use for a 64x36 encoded luminance meter, asynchronous readback, weighted log-average exposure, asymmetric adaptation, single tone-map ownership, and a generated 32-cube post-tone-map LUT.

scottstts/Threejs-Awesome-Graphics-Agent-Skills · 60 tokens

unity-manual-component

Manually add, configure, reorder, and copy components on GameObjects using Unity Editor UI. For one-off Inspector workflows that do not need REST automation.

Besty0728/Unity-Skills · 36 tokens