Borrowing it
Nothing to install: this file belongs to oframe/ogpu. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/oframe/ogpu/main/.claude/skills/scaffold-app/SKILL.mdgit clone --depth 1 https://github.com/oframe/ogpuWrote 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.
[](https://agentmods.dev/skills/oframe/ogpu/scaffold-app)<a href="https://agentmods.dev/skills/oframe/ogpu/scaffold-app"><img src="https://agentmods.dev/badge/skills/oframe/ogpu/scaffold-app/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.
<a href="https://agentmods.dev/skills/oframe/ogpu/scaffold-app"><img src="https://agentmods.dev/badge/skills/oframe/ogpu/scaffold-app.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00139 | $0.01193 |
| Opus 5.5 | $0.00056 | $0.00477 |
| Sonnet 5.5 | $0.00028 | $0.00239 |
| Haiku 4.5 | $0.00014 | $0.00119 |
Grade A, and why
scaffold-app 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 12d 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.
How it starts
The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scaffold a OGPU example
Stand up a complete, runnable OGPU example: renderer boot, camera + orbit
controls, an update loop, and one spinning cube built the canonical way —
new Box(gpu) → new Shader(...) + new UniformBuffer(...) → new Mesh({ shader, state, bindGroups }). The point is a
clean, idiomatic starting point the user immediately builds on, not a finished
piece.
A shell script generates the two files (class + shader); you wire it into
src/main.js afterward. The split exists because file generation is fixed
boilerplate (delegate it) but the main.js edits are structured insertions into
an existing file (do them precisely with Edit).
Workflow
-
Get the example name. It's used verbatim as the class name; the directory and
?src=value are its lowercased form. Convention here is a PascalCase class in a lowercase dir (e.g.HelloWebGPUinhellowebgpu/). If the user gives a casual name, PascalCase it for the class. -
Run the generator from anywhere (it resolves the repo root itself):
.claude/skills/scaffold-app/scripts/scaffold-app.sh <Name>It creates
examples/<name>/<Name>.js+examples/<name>/cube.wgsland refuses to overwrite an existing example dir (surface the error, don't force). -
Wire
src/main.js— three insertions, matching the surrounding style:- an
import { <Name> } from '@examples/<name>/<Name>';with the others; - a
<name>: () => new <Name>(),entry in theviewsmap; - a
{ view: '<name>', label: '<Label>', folder: '<name>' },entry in theitemsarray insiderenderLanding(), under the most fitting{ section: '...' }header, so it shows on the gallery landing page.
- an
-
Validate the shader without a browser:
node scripts/validate-shaders.mjs examples/<name>/cube.wgsl(runsnaga). The generated cube always passes; re-run after any edits. -
Tell the user it boots at
?src=<name>(npm run dev, thenhttp://localhost:5173/?src=<name>).
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 12d ago Changed · +3 lines · +2 tokens per session bd652cdab98f
- 1mo ago Changed 5269ee762fbb
- 1mo ago First seen · 79 lines · 137 tokens per session scan A 8568929419c1
scaffold-app is a skill published in the GitHub repository oframe/ogpu (163 stars, last pushed 3d ago), licensed Unlicense. It adds 139 tokens to every session and 1,193 once invoked, about $0.0006 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-08-30.
Other skills, from other repositories
playtest-report
Structured playtest report template, or turn existing playtest notes into structured feedback.
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…
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.
unity-addressables
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based).
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.
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.