Nx Generate
nomcopter/react-mosaic
Generate code using nx generators. An agent skill from nomcopter/react-mosaic.
Scaffold a new simple WGSL shader for the OGPU engine, wired for a RenderPipeline + Mesh.
$ npx skills add oframe/ogpu --skill scaffold-shader -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oframe/ogpu scaffold-shader --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/oframe/ogpu.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/scaffold-shader .claude/skills/scaffold-shader && 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 "scaffold-shader" agent skill from https://github.com/oframe/ogpu/tree/main/.claude/skills/scaffold-shader into .claude/skills/scaffold-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scaffold-shader", 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/oframe/ogpu/tree/main/.claude/skills/scaffold-shaderType 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 oframe/ogpu --skill scaffold-shader -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oframe/ogpu scaffold-shader --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oframe/ogpu.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/scaffold-shader .agents/skills/scaffold-shader && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scaffold-shader" agent skill from https://github.com/oframe/ogpu/tree/main/.claude/skills/scaffold-shader into .agents/skills/scaffold-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scaffold-shader", 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 oframe/ogpu --skill scaffold-shader -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oframe/ogpu scaffold-shader --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oframe/ogpu.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/scaffold-shader .cursor/skills/scaffold-shader && 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 "scaffold-shader" agent skill from https://github.com/oframe/ogpu/tree/main/.claude/skills/scaffold-shader into .cursor/skills/scaffold-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scaffold-shader", 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/oframe/ogpu.git --path .claude/skills/scaffold-shader--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 oframe/ogpu --skill scaffold-shader -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oframe/ogpu scaffold-shader --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oframe/ogpu.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/scaffold-shader .gemini/skills/scaffold-shader && 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 "scaffold-shader" agent skill from https://github.com/oframe/ogpu/tree/main/.claude/skills/scaffold-shader into .gemini/skills/scaffold-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scaffold-shader", 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 oframe/ogpu scaffold-shaderInstalls 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 oframe/ogpu --skill scaffold-shader -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oframe/ogpu.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/scaffold-shader .github/skills/scaffold-shader && 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 "scaffold-shader" agent skill from https://github.com/oframe/ogpu/tree/main/.claude/skills/scaffold-shader into .github/skills/scaffold-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scaffold-shader", 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 oframe/ogpu --skill scaffold-shader -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oframe/ogpu scaffold-shader --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oframe/ogpu.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/scaffold-shader .opencode/skills/scaffold-shader && 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 "scaffold-shader" agent skill from https://github.com/oframe/ogpu/tree/main/.claude/skills/scaffold-shader into .opencode/skills/scaffold-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scaffold-shader", 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.
scaffold-shaderScaffold a new simple WGSL shader for the OGPU engine, wired for a RenderPipeline + Mesh.
Scaffold Shader is an agent skill from oframe/ogpu. Scaffold a new simple WGSL shader for the OGPU engine, wired for a RenderPipeline + Mesh. Use whenever the user wants to create a new shader, start a shader from scratch, add a .wgsl file for a mesh, get a shader boilerplate/template/starting point, or "make me a basic shader" / "scaffold a shader". Produces a minimal vs/fs WGSL file following the engine's reflection conventions, optionally with the JS pipeline wiring.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/js-wiring.md` and `scripts/scaffold.py`).
It sits in Development, covering Project scaffolding. The repository describes itself as: Minimal WebGPU Library. The licence is Unlicense.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 65e0a1a. 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 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
brewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Scaffold Shader loads about 1.4k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 651 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 oframe/ogpu at commit 65e0a1a, republished under its Unlicense licence (© oframe). 651 words, ~1,428 tokens.
.claude/skills/scaffold-shader/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Generate a minimal, correct WGSL file (plus optional JS wiring) for a mesh
rendered through RenderPipeline + Mesh. The base shader is deliberately bare
— vs/fs with the standard transform uniforms and a fragment that outputs the
normal mapped to 0..1. No custom uniforms, no textures: those are modifications
you layer on top after generating, per the task. The reference shape is
examples/hellowebgpu/cube.wgsl (same conventions).
These come from webgpu-utils reflection in RenderPipeline/Mesh — get one
wrong and the pipeline silently shades garbage or fails construction:
@group(0) @binding(0) var<uniform> uniforms : Uniforms.
Lowercase uniforms, struct typed (commonly Uniforms). RenderPipeline
reads this.defs.uniforms.uniforms by that exact name.vs, fragment MUST be fs. Hardcoded.Mesh.draw writes standard uniforms BY NAME into the struct — only the fields
that exist are written. Available: projectionMatrix, viewMatrix,
modelViewMatrix, modelMatrix, objectMatrix (inverse model),
normalMatrix (mat3x3f), cameraPosition (vec3f), cameraQuaternion (vec4f),
resolution (vec2f), time (f32). Declare only the subset the shader uses,
spelled exactly. Custom uniforms (e.g. uScale, uAlpha) go after them and
are set via mesh.uniforms.set({...}) — the Mesh owns the uniform values,
not the pipeline.@location is assigned by declaration ORDER in the
geometry's data object, not by name. Standard primitives (@core/primitives
Box/Sphere/…) emit position (loc 0), normal (loc 1), uv (loc 2).
The Vertex struct must match that order.t<Name> (e.g. tMap). Samplers keep descriptive
names. Only add these if the shader actually samples a texture — a declared
binding with no bind-group entry throws at pipeline creation.Ask/confirm only what changes the output (skip if obvious from the request):
examples/<name>/<name>.wgsl, or ./<name>.wgsl next to the caller)..wgsl? Default: just
the .wgsl unless they're clearly starting a new example.Generate the base .wgsl by RUNNING the scaffold script — don't hand-write
the boilerplate. The script emits a guaranteed-correct vs/fs skeleton with
the bindings/struct/attribute order already right, so you spend your effort
on the task-specific shading, not on re-deriving reflection rules:
python .claude/skills/scaffold-shader/scripts/scaffold.py \
--out examples/<name>/<name>.wgsl \
# --std projectionMatrix,modelViewMatrix,normalMatrix,time # override std fields
# --force # overwrite an existing file It refuses to clobber an existing file unless --force. Run scaffold.py -h
for the full flag list.
Layer the requested modifications ON TOP of the generated file with Edit — the script output is a bare starting point (normal→0..1 fragment), not the finished shader. This is where the user's actual intent lands: custom uniforms, textures, custom fragment math, extra varyings, displacement in the vertex stage, sampling logic, etc. Keep the reflection conventions intact while you edit:
Uniforms, set via
mesh.uniforms.set({...});t<Name> + a sampler at the next free @binding, and need a
matching bind-group entry (see references/js-wiring.md).Validate the WGSL without a browser — node scripts/validate-shaders.mjs <file> runs naga. The freshly-generated base always passes; run it again
after your edits to catch syntax/type errors before the user loads the page.
(If naga is absent the script exits 2 — brew install naga-cli, not naga.)
If JS wiring requested, write it from references/js-wiring.md (no-texture
variant is the short path; texture variant adds the sampler/texture bind-group
entries via pipeline.defs.samplers.* / pipeline.defs.textures.*).
Tell the user how to render it: new RenderPipeline(gpu, { code, vertexBuffers: geometry.bufferLayouts }) → new Mesh(gpu, { pipeline, geometry, bindGroups }) → mesh.setParent(scene). The Mesh REQUIRES a
bindGroups factory (pipeline serves layouts only — see
references/js-wiring.md). Custom uniforms set with mesh.uniforms.set({...})
(Mesh.draw uploads each frame).
Hot reload works automatically — every *.wgsl?raw import is an HMR boundary, so
editing the new file reloads the pipeline live (ShaderReload).
scripts/scaffold.py — the generator. Emits the bare vs/fs base
(normal→0..1); flags: --out, --std, --force.references/shader-template.wgsl — annotated reference of the shape the
script emits (read it to understand the output, not to hand-copy it).references/js-wiring.md — pipeline + mesh wiring, no-texture and texture
variants.© oframe, Unlicense. 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 3 other files (scripts, references) in .claude/skills/scaffold-shader of oframe/ogpu.
Open the folder on GitHubat commit 65e0a1a
Scaffold Shader 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 |
|---|---|---|---|---|---|---|
| Scaffold Shader this skilloframe/ogpu | 151 | — | ~1.4k | Automated safety check: Pass | Unlicense | |
| Nx Generatenomcopter/react-mosaic | 4.8k | 7 repos | ~1.9k | Automated safety check: Pass | Custom licence | |
| PonytailDavidObando/gsharp | 565 | 8 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Run Nx Generatornrwl/nx | 29k | 2 repos | ~592 | Automated safety check: Notes | MIT | |
| Conductor Setupgemini-cli-extensions/conductor | 3.8k | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Mirage VFS Adapter Authoringstrukto-ai/mirage | 3.7k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
nomcopter/react-mosaic
Generate code using nx generators. An agent skill from nomcopter/react-mosaic.
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
nrwl/nx
Run Nx generators with prioritization for workspace-plugin generators.
gemini-cli-extensions/conductor
Scaffolds the project and sets up the Conductor environment.
strukto-ai/mirage
Builds or extends a custom Mirage virtual filesystem adapter for an API, database, object store or app data, with a working mount configuration and filesystem tests.
siteboon/claudecodeui
Enforces this repository's TypeScript backend module architecture under server/: feature folders, barrel exports, and where shared types and utilities belong.
oframe/ogpu
Scaffold a new OGPU example/app from scratch — a Renderer + Camera + Orbit + update loop and a single spinning cube wired through the vanilla Box primitive - RenderPipeline - Mesh setup.
oframe/ogpu
Ground any answer about the webgpu-utils library (greggman/webgpu-utils) in its actual API before responding.
oframe/ogpu
Get naga WGSL validation working in a repo — installs the naga/jq toolchain, a PostToolUse hook that compiles every .wgsl on write, and a batch validate-shaders script, so shader checking then…
oframe/ogpu
Ground any answer about the WebGPU platform itself — browser support/compatibility, feature availability, limits, what's shipping or behind a flag, and exact spec behavior — in the live Chrome…
oframe/ogpu
Fold PBR/IBL shading into a RenderPipeline in the OGPU engine.
oframe/ogpu
Fold real-time shadow mapping into an existing RenderPipeline/shader in the OGPU engine.
Categories
Scaffold a new simple WGSL shader for the OGPU engine, wired for a RenderPipeline + Mesh. Scaffold Shader is an agent skill from oframe/ogpu. Scaffold a new simple WGSL shader for the OGPU engine, wired for a RenderPipeline + Mesh.
Scaffold Shader fits situations like: the user wants to create a new shader; start a shader from scratch; add a .wgsl file for a mesh; get a shader boilerplate/template/starting point.
Run `npx skills add oframe/ogpu --skill scaffold-shader -a claude-code`. Or copy the skill folder (.claude/skills/scaffold-shader in oframe/ogpu) into .claude/skills/scaffold-shader in your project. Claude Code loads it when a task matches its description.
Run `npx skills add oframe/ogpu --skill scaffold-shader -a codex`. Or copy the skill folder (.claude/skills/scaffold-shader in oframe/ogpu) into .agents/skills/scaffold-shader 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 oframe/ogpu --skill scaffold-shader -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scaffold-shader, .gemini/skills/scaffold-shader, .github/skills/scaffold-shader and .opencode/skills/scaffold-shader in your project.
Going by SKILL.md and its folder, Scaffold Shader needs Python for the scripts in its folder and the command-line tools its instructions call (brew). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Scaffold Shader is published under the Unlicense licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.7k 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 1.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Scaffold Shader: Nx Generate (nomcopter/react-mosaic, 4.8k stars), Ponytail (DavidObando/gsharp, 565 stars), Run Nx Generator (nrwl/nx, 29k stars) and Conductor Setup (gemini-cli-extensions/conductor, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
oframe (a GitHub organization) maintains it in oframe/ogpu, which has 151 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 26, 2026.
Source: oframe/ogpu on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.