Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Setup

ASecurity

Verify and provision the gaming plugin's DLSS 5 mod prerequisites on Windows. check (read-only): pwsh, NVIDIA GPU and driver, data directory, runtime DLL, installed games per launcher (Steam, Epic, EA app, Battle.net, GOG, Ubisoft Connect, Xbox app), provisioned fork builds, orphaned state. apply: create the data directory, seed the ledger, place the runtime DLL from a configured path, an installed DLSS 5 title, or the configured runtime source, and download the pinned fork builds. Use when: ...

17 stars
0 votes
0 copies
0 views
Added 9/23/2026
ai-agentsgoshellbashgitapi

Works with

claude codeapi

Security Analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned 10/4/2026

$npx -y skills add melodic-software/claude-code-plugins --skill setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Setup?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/melodic-software-setup-22c97107/badge)](https://www.skillsdirectory.com/skills/melodic-software-setup-22c97107)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
description: "Verify and provision the gaming plugin's DLSS 5 mod prerequisites on Windows. check (read-only): pwsh, NVIDIA GPU and driver, data directory, runtime DLL, installed games per launcher (Steam, Epic, EA app, Battle.net, GOG, Ubisoft Connect, Xbox app), provisioned fork builds, orphaned state. apply: create the data directory, seed the ledger, place the runtime DLL from a configured path, an installed DLSS 5 title, or the configured runtime source, and download the pinned fork builds. Use when: 'set up the gaming plugin', 'set up DLSS 5', 'is my DLSS 5 setup ready', 'provision the DLSS 5 mod'. Re-runnable and safe."
argument-hint: "[check|apply]"
user-invocable: true
disable-model-invocation: true
---

## Purpose

Verify and provision the prerequisites for `/gaming:dlss5`, per the uniform setup contract
(`docs/plugin-philosophy.md` "Setup is explicit and repeatable" in the marketplace repository).
No argument or `check` runs the read-only check; `apply` runs `check`, provisions through the
script's own verbs, then runs `check` again. Windows only.

All provisioning goes through `${CLAUDE_PLUGIN_ROOT}/skills/dlss5/scripts/Invoke-Dlss5Mod.ps1`
(below: the script). Its `provision` verbs own download, hash verification, extraction and the
runtime gate, and its selftest covers them; this body calls them and never restates their logic.

## Resolving paths (do this first)

Resolve each option to a literal value before composing any command. A command line carries the
resolved path, never a `${user_config.*}` token: an unset option leaves the token in place, and
Bash then fails with `bad substitution` before pwsh starts.

| Option | Resolution | Passed as |
|---|---|---|
| **`<data-dir>`** | `${user_config.data_dir}` when non-empty and not still showing the unexpanded token; otherwise the output of the default command below. Changing it after an apply is a MOVE of the directory, not a reconfiguration: every manifest stays at the old root | `-DataDir '<data-dir>'` on every call |
| **`<runtime-dll>`** | `${user_config.runtime_dll}` when set; otherwise `<data-dir>\runtime\nvngx_dlssnr.dll` | `-RuntimeDll` ONLY when the option is set. Passing the default path marks it configured, and `provision -Runtime` then refuses a failing file without scanning |
| **`<runtime-source>`** | `${user_config.runtime_source}` when set; otherwise none | `-RuntimeSource` ONLY when set. A path or a plain `https://` URL. The value is stored in plain text in `settings.json`, so a URL with a query string (where signed-URL credentials live) is refused. A private store is synced to a path by the user's own tooling |

The default `data_dir` follows OneDrive Known Folder Move, which `$env:USERPROFILE\Documents`
does not:

```bash
pwsh -NoProfile -Command "Join-Path ([Environment]::GetFolderPath('MyDocuments')) 'Gaming\dlss5'"
```

`<script>` is `${CLAUDE_PLUGIN_ROOT}/skills/dlss5/scripts/Invoke-Dlss5Mod.ps1`. Pass Windows-form
paths in single quotes (`'D:\Gaming'`), never a Git Bash `/d/...` path. Run the multi-line probe
in step 5 through the PowerShell tool: it contains single quotes, so a single-quoted Bash argument
cannot carry it, and a double-quoted one lets Bash expand `$` before pwsh starts. A one-line probe with no single quote in it (step 1) runs from Bash in single quotes.

## `check` (read-only)

Report a PASS/FAIL/INFO table with one remediation line per FAIL. Write nothing, copy nothing,
download nothing, and never call `provision` in any form.

1. **pwsh 7.** `pwsh -NoProfile -Command '$PSVersionTable.PSVersion.ToString()'`. FAIL when absent
   or below 7: the script declares `#Requires -Version 7`.
2. **NVIDIA GPU and driver.** `nvidia-smi --query-gpu=name,driver_version --format=csv,noheader`.
   FAIL when `nvidia-smi` is absent or lists no GPU. Report the name and driver. A GPU outside the
   RTX 50 series is FAIL (see the verification record below).
3. **Data directory.** Absent is INFO (`apply` creates it). Present is PASS. `check` does not test
   writability, because that takes a write; the directory creation in `apply` is the test.
4. **Ledger.** `<data-dir>\LEDGER.md` present is PASS; absent is INFO (`apply` seeds it).
5. **Runtime DLL.** Hash `<runtime-dll>`:

   ```powershell
   $dll = '<runtime-dll>'
   if (Test-Path -LiteralPath $dll) {
     (Get-FileHash -LiteralPath $dll -Algorithm SHA256).Hash
     $s = Get-AuthenticodeSignature -LiteralPath $dll; "$($s.Status) $($s.SignerCertificate.Subject)"
     $v = (Get-Item -LiteralPath $dll).VersionInfo; '{0}.{1}.{2}.{3}' -f $v.FileMajorPart, $v.FileMinorPart, $v.FileBuildPart, $v.FilePrivatePart
   }
   ```

   PASS when the hash is the known-good value. An NVIDIA-signed file (status `Valid`, signer
   subject containing `CN=NVIDIA Corporation`) at 310.8.0.0 or later with a
   different hash is FAIL: the gate refuses it unless `-AllowUnknownRuntime` is passed, which is
   the user's explicit call and never a default. A missing or refused file is FAIL. When
   `runtime_dll` is set, the remediation is to fix or unset it: `provision -Runtime` refuses a
   configured file without looking further. When it is unset, report what `apply` would do:
   use the step 7 scan and name each candidate with its gate result, and say whether
   `<runtime-source>` is set. The remediation then names the three remedies in the order
   `provision -Runtime` tries them: set `runtime_dll` to a copy you already have; install a DLSS 5
   title on this machine; set `runtime_source` to a copy you control. The plugin names no source
   of its own for this file.
6. **Runtime source.** INFO: set or not. A URL with a query string, or a URL scheme other than
   `https://`, is FAIL: the script refuses it.
7. **Game library scan.** Read-only; it lists games and runtime candidates and copies nothing:
   `pwsh -NoProfile -File "<script>" -Verb discover`. It prints JSON:
   - `games`: every installed game found, each with `launcher` (Steam, Epic Games Launcher, EA
     app, Origin, Battle.net, GOG Galaxy, Ubisoft Connect, Xbox app), `name`, `installDir` and the
     `source` record it came from. Report the count per launcher as INFO; the locations are in
     `skills/dlss5/reference/launchers.md`.
   - `unchecked`: what it could not read, such as the EA app's encrypted install list, Battle.net's
     `product.db`, or a malformed `.GamingRoot`. Report each as INFO.
   - `runtimeCandidates`: every `nvngx_dlssnr.dll` under a discovered install folder, with
     `version`, `sha256`, `passes`, `known`, `reason` and `besideOptiScalerIni`. `passes` is the
     script's own gate: the known-good hash, or a `Valid` signature whose signer subject contains
     `CN=NVIDIA Corporation` at 310.8.0.0 or later plus `-AllowUnknownRuntime`. A candidate beside
     an `OptiScaler.ini` is a copy the mod placed in a game, not a native title; step 9 uses it.
8. **Fork builds.** For `dagherbou` and `wilsjo2`, read `<data-dir>\builds\<build>\.provisioned.json`: <!-- portability-ok: Windows path, not a shell regex -->
   - no marker, directory absent or empty: INFO, never provisioned (`apply` provisions it);
   - marker present and every allow-list entry present (dagherbou: `OptiScaler.dll`,
     `OptiScaler.ini`, `OptiScaler\`, `Licenses\`, `nvngx.dll_dlssnr.dll`; wilsjo2: the first
     four), marker `sha256` equal to the pin below: PASS;
   - marker present, an allow-list entry missing: FAIL, provisioned then emptied. `provision` treats
     a matching marker as done, so the remediation is to delete `<data-dir>\builds\<build>\`, then <!-- portability-ok: Windows path, not a shell regex -->
     run `apply`;
   - marker `sha256` differing from the pin: FAIL, provisioned from an unexpected asset. `apply`
     re-provisions it.
9. **Orphaned state.** Read `gameDir` from each `<data-dir>\state\*\snapshot.json`, <!-- portability-ok: Windows path, not a shell regex -->
   `manifest.json` and `pending.json`. A `pending.json` is FAIL (an interrupted apply; run
   `/gaming:dlss5 remove <gameDir>`). A `manifest.json` whose `gameDir` no longer exists is FAIL
   (the game moved or was uninstalled; move it back and run `remove`, or delete that state
   directory if it is gone for good). A snapshot-only directory whose `gameDir` is gone is INFO.
   Two probes for a `data_dir` changed after an apply, since nothing on disk records the previous
   root: a step 7 candidate beside an `OptiScaler.ini` whose directory no manifest under
   `<data-dir>` names as `gameDir` is FAIL (a modded game this data directory does not track); and
   another directory whose `state\` has entries is FAIL: the default (`Gaming\dlss5` under
   Documents) when `<data-dir>` is not the default, or the legacy default (`Gaming` under
   Documents) when `<data-dir>\state\` is absent or empty. The remediation for both is to MOVE the <!-- portability-ok: Windows path, not a shell regex -->
   old directory's contents (`runtime\`, `state\`, `builds\`, `cache\` and `LEDGER.md`) to
   `<data-dir>`; without its manifest, `remove` cannot undo the mod. When `<data-dir>` is the
   default, the script refuses every verb but `refetch` and `selftest` on the legacy case.
10. **`gh`.** INFO only: `gh --version`. `refetch` needs it; setup and apply do not, because
    `provision` downloads by direct release URL.

## `apply` (idempotent)

Run `check`, then these steps in order; stop before step 1 when step 9 reports another
directory holding `state\`, since step 1 would start an empty state tree beside it. `<script>` is
`${CLAUDE_PLUGIN_ROOT}/skills/dlss5/scripts/Invoke-Dlss5Mod.ps1`.

1. Create the tree:
   `pwsh -NoProfile -Command "New-Item -ItemType Directory -Force -Path '<data-dir>\state','<data-dir>\runtime','<data-dir>\builds','<data-dir>\cache' | Out-Null"`. <!-- portability-ok: Windows paths inside a pwsh argument, not a shell regex -->
2. Seed the ledger only when `<data-dir>\LEDGER.md` is absent: copy `reference/ledger-template.md`
   there, replacing `<data-dir>` with the resolved path. Never overwrite an existing ledger.
3. Place the runtime DLL, adding `-RuntimeDll` and `-RuntimeSource` only per the resolution table:
   `pwsh -NoProfile -File "<script>" -Verb provision -Runtime -DataDir '<data-dir>'`.
   When the user has explicitly asked to accept an NVIDIA-signed runtime that fails the hash, add
   `-AllowUnknownRuntime` and say so in the report; never add it otherwise. On a non-zero exit,
   relay the printed remedies and refusals verbatim and continue to step 4.
4. Provision both pinned fork builds, so an apply that falls back to `dagherbou` finds its files:
   `pwsh -NoProfile -File "<script>" -Verb provision -Build wilsjo2 -DataDir '<data-dir>'`, then
   the same with `-Build dagherbou`.
5. Run `check` again and report its actual table; never report success from an exit code alone.

Re-running `apply` changes nothing: the directories exist, the ledger is kept, `provision -Runtime`
prints `runtime ok` and copies nothing, and `provision` prints `already provisioned` for a build
whose marker matches its pin.

Two hard rules. `apply` never runs `setup_windows.bat`, and neither may you by hand: it is
interactive, and `provision` never extracts it. And `apply` never fetches the runtime DLL from
anywhere but the three sources `provision -Runtime` tries.

## Verification record

| Claim | Basis | As of | Recheck trigger |
|---|---|---|---|
| Known-good runtime: `nvngx_dlssnr.dll` 310.8.0.0, SHA-256 `E16BCF15E16E13F527491CDF7845B2FE6521A738D8F7C9C721866A8496E1FC8E` | `$ModelHash` in the script, hashed from a working install | 2026-09-22 | `/gaming:dlss5 refetch` reports a different runtime version, or an NVIDIA-signed runtime fails the hash |
| Default fork pin: `wilsjo2/OptiScaler-DLSSNR-PreSR-Multipass` tag `v0.8.3`, asset `OptiScaler-NR-v0.8.3.zip`, SHA-256 `3F2D26FB136D964A394BF50896D082156173153A2A55B88E1995277B4DABE3C8` | `gh api repos/wilsjo2/OptiScaler-DLSSNR-PreSR-Multipass/releases`; the hash matches the release's own `.sha256` sidecar | 2026-09-24 | a new non-prerelease on that repo, or `refetch` reports a tag change |
| Fallback fork pin: `Dagherbou/OptiScaler_DLSSNR` tag `v0.2.0-patch1` (a prerelease), asset `OptiScaler-DLSSNR-v0.2.0-onimusha-fix.zip`, SHA-256 `5DB547216FA8A7DBD8AB0A193DA1E3BCE0EA4BD71F91189AFA4ED2EDE8BB9561` | `gh api repos/Dagherbou/OptiScaler_DLSSNR/releases`; the release publishes no checksum, so the hash is a local-copy attestation | 2026-09-21 | a new release on that repo, or `refetch` reports a tag change |
| DLSS 5 officially supports RTX 50-series GPUs only | https://www.nvidia.com/en-us/geforce/news/dlss-5-3d-guided-neural-rendering/ | 2026-09-20 | NVIDIA ships DLSS 5 support for another GPU series |

## Next

/gaming:dlss5 assess <game-dir>

## Gotchas

- **`VersionInfo.FileVersion` misreads the runtime DLL.** NVIDIA's `nvngx_dlssnr.dll` reports
  `310,8,0,0` there. Read the numeric `FileMajorPart` to `FilePrivatePart` fields, as steps 5 and 7
  do; `refetch` reports the same numeric form.
- **A probe containing single quotes cannot run from Bash in single quotes.** Run it through the
  PowerShell tool instead of switching to double quotes, which let Bash expand every `$`.

## What this skill does NOT do

- Apply, remove or tune the mod in a game. That is `/gaming:dlss5`.
- Write Claude Code user settings or `pluginConfigs`. Reconfigure with
  `/plugin configure gaming@<marketplace>`, then rerun `check` in a fresh session.
- Delete anything. Emptied builds and orphaned state are reported with a remediation the user runs.
- Name, bundle or download a source for the runtime DLL beyond the three the user controls.

Attribution

melodic-softwaremelodic-software
View sourceSee grades on GitHubMore from melodic-software →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →