ShadowDusk: Skill for Claude Code

.claude/skills/release/SKILL.md

release is a skill for Claude Code from kaltinril/ShadowDusk. It costs 73 tokens per session (3,288 once invoked), scanned A, original, MIT.

A release workflow for the ShadowDusk project that updates the version, checks documentation, builds and tests the code, opens and merges a change, and triggers publishing.

In plain words
What is it for?
Use it to cut a ShadowDusk release, choose the appropriate version change, update release files, wait for CI, and trigger NuGet publishing.
Why use it?
It turns a long, error-prone release checklist into a defined sequence with checks before packages and binaries are published.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter. Also seen: mentions CLAUDE.md; mentions Claude Code.

This is kaltinril/ShadowDusk's own configuration. It tells Claude Code how to work on ShadowDusk 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 ShadowDusk configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is ./validation/run-windows-render-gates.ps1 # DX corpus + DX-modern (VTF) + DX Apos gallery + DX ShaderToy route + DX12 corpus + DX12 VS-driven/Apos .

Reuse

Borrowing it

Nothing to install: this file belongs to kaltinril/ShadowDusk. 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/kaltinril/ShadowDusk/main/.claude/skills/release/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/kaltinril/ShadowDusk

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 release

README.md
[![agentmods](https://agentmods.dev/badge/skills/kaltinril/shadowdusk/release.svg)](https://agentmods.dev/skills/kaltinril/shadowdusk/release)
Your own site
<a href="https://agentmods.dev/skills/kaltinril/shadowdusk/release"><img src="https://agentmods.dev/badge/skills/kaltinril/shadowdusk/release.svg" alt="Measured on agentmods" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,288 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00073 $0.03288
Opus 5 $0.00036 $0.01644
Sonnet 5 $0.00015 $0.00658
Haiku 4.5 $0.00007 $0.00329

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

Security

Grade A, and why

release 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/release/SKILL.md · 176 lines

How it starts

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

Release

Automate the full ShadowDusk release from version bump through PR merge to publish trigger.

A release publishes all eight ShadowDusk.* packages (Core, HLSL, GLSL, ShaderToy, Compiler, Cli, Wasm, MgcbPlugin) plus the ShadowDuskCLI dotnet tool to nuget.org, and attaches self-contained CLI binaries to a GitHub Release. The human runbook this automates is RELEASING.md.

Input

$ARGUMENTS is the version (e.g., 0.2.0). If omitted, read the current <Version> from Directory.Build.props and ask the user for the new one.

Choosing the version bump (0.y.z, pre-1.0 — verified against the actual CHANGELOG.md history, not just SemVer's letter):

  • MINOR (0.X.0) — the release ships a genuine new capability: a new backend/target, a new frontend, a new consumer-facing feature.
  • PATCH (0.X.Y) — fixes/maintenance only: bug fixes, doc corrections, CI/tooling reliability. A patch release can still carry a small accompanying addition (a README, a regression fixture) as long as the headline is a fix, not a feature.
  • MAJOR (1.0.0) is a deliberate decision the owner makes, not a numbering consequence of accumulated features — see plan/plan.md's named v1.0-gate phases for what "ready" means.
  • If a release doesn't cleanly fit one bucket, ask the user rather than guessing.

Steps

  1. Validate clean tree. git status; if dirty, warn and stop. Show current <Version> from Directory.Build.props. Then git checkout main && git pull so the gates in step 2 run against exactly the code that is about to ship.

  2. RENDER GATES FIRST — DX / FNA / KNI / Vulkan (required; CI cannot do this). Run BEFORE the version bump: it is the longest and likeliest step to fail, it is the only proof of the actual product promise, and release.yml does not check it, so a divergence must stop the release before any version churn, commit, PR, or CI time is spent.

    Run these from PowerShell 7 (pwsh), not Windows PowerShell 5.1. The script shells out to tools/restore.ps1, which carries #requires -Version 7.0; under 5.1 the run dies at the restore step with a ScriptRequiresUnmatchedPSVersion error that looks nothing like a render divergence.

Read the full file on GitHub · 176 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 · 176 lines · 73 tokens per session scan A 1107803a1233

Subscribe to this mod's changes

release is a skill published in the GitHub repository kaltinril/ShadowDusk (14 stars, last pushed 23d ago), licensed MIT. It adds 73 tokens to every session and 3,288 once invoked, about $0.0004 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.