Image to Three.js Model
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
A skill your agent uses when explicitly asked to run a live or plan-only application test for a published Scenario skill.
$ npx skills add scenario-labs/skills --skill skills-validate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills skills-validate --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/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/skills-validate .claude/skills/skills-validate && 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 "skills-validate" agent skill from https://github.com/scenario-labs/skills/tree/main/.agents/skills/skills-validate into .claude/skills/skills-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skills-validate", 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/scenario-labs/skills/tree/main/.agents/skills/skills-validateType 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 scenario-labs/skills --skill skills-validate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills skills-validate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/skills-validate .agents/skills/skills-validate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skills-validate" agent skill from https://github.com/scenario-labs/skills/tree/main/.agents/skills/skills-validate into .agents/skills/skills-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skills-validate", 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 scenario-labs/skills --skill skills-validate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills skills-validate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/skills-validate .cursor/skills/skills-validate && 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 "skills-validate" agent skill from https://github.com/scenario-labs/skills/tree/main/.agents/skills/skills-validate into .cursor/skills/skills-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skills-validate", 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/scenario-labs/skills.git --path .agents/skills/skills-validate--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 scenario-labs/skills --skill skills-validate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills skills-validate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/skills-validate .gemini/skills/skills-validate && 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 "skills-validate" agent skill from https://github.com/scenario-labs/skills/tree/main/.agents/skills/skills-validate into .gemini/skills/skills-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skills-validate", 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 scenario-labs/skills skills-validateInstalls 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 scenario-labs/skills --skill skills-validate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/skills-validate .github/skills/skills-validate && 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 "skills-validate" agent skill from https://github.com/scenario-labs/skills/tree/main/.agents/skills/skills-validate into .github/skills/skills-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skills-validate", 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 scenario-labs/skills --skill skills-validate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scenario-labs/skills skills-validate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/skills-validate .opencode/skills/skills-validate && 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 "skills-validate" agent skill from https://github.com/scenario-labs/skills/tree/main/.agents/skills/skills-validate into .opencode/skills/skills-validate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skills-validate", 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.
skills-validateA skill your agent uses when explicitly asked to run a live or plan-only application test for a published Scenario skill.
Skills Validate is an agent skill from scenario-labs/skills. Use when explicitly asked to run a live or plan-only application test for a published Scenario skill.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Game Development. The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f6f8ab7. 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.
Shell commands in SKILL.md call:
claudenodepnpmghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
mcp.scenario.comFrom 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.
Skills Validate loads about 2.6k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 1,351 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); files beside SKILL.md are not scanned.
The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 1,351 words, ~2,561 tokens.
.claude/skills/skills-validate/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Validate the skill named in the invocation arguments by having a fresh agent do real work with it, then report where that agent got stuck. A defect here is a defect in the skill text, never in the agent.
Flags: --pr <number> targets a PR instead of detecting one, --plan-only runs the zero-cost planning protocol from AGENTS.md instead of live generation, --task "..." supplies the use case instead of writing one, --no-post stops before publishing anything, --keep keeps the run directory.
Live runs spend Scenario credits. Keep every generation the smallest one that still proves the point.
Read the skill's SKILL.md and every file it links; node scripts/lib/skills.mjs --dir <name> prints its folder, nested under skills/dcc/ or skills/game-engines/ for an expert tool. If no skill has that name, list the close ones and stop.
State, in your own words: the objective (one sentence), the triggering conditions the description claims, and the three to six non-obvious facts the skill exists to teach, the ones an agent would otherwise guess wrong (upload flow, jobs_wait re-calls, runs_as wiring, dry runs, launch semantics). Those facts are the traps the run has to spring.
One realistic task, in the words a user would actually use, that forces at least three of those traps and cannot be satisfied by generic MCP intuition (for an expert tool, generic knowledge of the application; its budget counts application runs, not generations). Give it explicit success criteria (which artifacts must exist, and what has to be true of them) and a hard budget (how many generations, which of them may be dry_run). Print the task and the criteria before spending anything. With --task, use the supplied task and still write the criteria.
They are free and they catch the cheap failures: pnpm spec (spec validation), plus pnpm test when the skill ships a script. Record the results and continue either way; the report carries both layers.
Build a run directory outside the repository and install the skill under test into it, from the working tree, so the run tests the version under review rather than the published one:
SKILL="<name>"
DIR=$(node scripts/lib/skills.mjs --dir "$SKILL")
RUN=$(mktemp -d "${TMPDIR:-/tmp}/skill-validate-$SKILL-XXXXXX")
mkdir -p "$RUN/.claude/skills" "$RUN/assets"
cp -R skills/scenario "$RUN/.claude/skills/"
case "$DIR" in
skills/*/*/*) cp -R "${DIR%/*}"/scenario-* "$RUN/.claude/skills/" ;; # expert tool: its whole family
*) cp -R "$DIR" "$RUN/.claude/skills/" ;;
esac
awk 'f; /^---$/ { if (++c == 2) f = 1 }' .claude/agents/skill-tester.md >"$RUN/contract.md"Copy scenario alongside every other skill: real installs ship both. An expert tool brings its whole family, since the specialists import the lead skill's scripts/, and a live run needs the application installed: ask which machine and application version the run may drive, and ask for a team and project only when the task hands off to a Scenario skill. Otherwise, ask which team and project the run should use before spending anything: every generation and upload lands in that scope, and the tester must never pick one (teams_list and projects_list enumerate the choices). Write the task from step 2 to $RUN/task.md, including the budget, the success criteria, the run directory path, and the team and project.
Then pick the strongest isolation available. If the Claude Code CLI is installed, run cd "$RUN" && claude mcp list; otherwise use the subagent route below.
Separate process (preferred, and a genuinely empty context) when that lists a connected Scenario server:
cd "$RUN" && claude -p --setting-sources user,project \
--append-system-prompt "$(cat "$RUN/contract.md")" \
--allowedTools "mcp__<server> Read Write Bash" \
--output-format json "$(cat "$RUN/task.md")" | tee "$RUN/result.json"Use the server name claude mcp list printed, normalized the way tool prefixes are: dots and spaces become underscores, so claude.ai Scenario is mcp__claude_ai_Scenario. The child loads the skills from $RUN/.claude/skills/ and never sees this repository, though --setting-sources user,project (which a user-scope connector needs) also carries the user's plugins and hooks into it; watch the transcript for injected noise.
Subagent when the CLI is unavailable or the list has no connected Scenario server. Spawn a fresh agent with the contract, the task, and the run directory path (Claude Code can use its skill-tester agent). Isolation is weaker: it can still see repository context, which is why the contract tells it to ignore it.
Say in the report which mode ran. With --plan-only, the same setup applies but the task asks for a numbered tool-call plan with exact tool names and argument shapes, executing nothing.
Fetch https://mcp.scenario.com/docs/tools fresh rather than recalling it, then judge. With --plan-only, judge the numbered plan by the same rubric: objective met asks whether the planned calls would reach the criteria, and the evidence table stays empty.
An expert tool is graded against its lead skill's execution channels and the application's own documentation instead of the tool reference: real names are the application's API, command, and UI names for the version the skill targets, the correct flow is the lead's loop (channel choice, stage gates, review renders or captures, audits), and the model-id and MCP bullets below do not apply.
model_schema_get, model_run, then jobs_wait re-called with pending_job_ids for any job still running (fast models return complete inline, and job_get polling is never correct), then asset_display or asset_download. Skills built on other loops (workflows, training, reporting) are graded against their own.recommend step (a capability) or a search step (a member known by name, or private). A named first-party tool model is not a violation when it is a sanctioned singleton or the member the skill under test is dedicated to; a named generative model always is.asset_download returned.guesses and friction entries are the shortest route to the missing sentence.Verdict: pass, pass with notes, or fail. Tie every defect to the exact line of SKILL.md to add or change. After a fix, re-run with a new fresh agent: an agent that already failed is contaminated by its own mistake.
git rev-parse --abbrev-ref HEAD, then look for an open PR with that head branch: gh pr view --json number,url,title when gh is available, otherwise the GitHub MCP tools (list_pull_requests with head: <owner>:<branch>). --pr overrides the detection. Say which context you found before acting on it.
Assemble the report with the template below. This repository is public: only publicly shareable language (see AGENTS.md), never a signed asset URL, which is a credential in itself, and never the team or project the run used. Assets travel as ids and local filenames. GitHub has no API for comment attachments, so images reach the thread only when a human drags them into the comment's edit box.
In a PR context, post it as a PR comment (gh pr comment <n> --body-file or the GitHub MCP add_issue_comment), ending with the attribution line, and print the comment URL. --no-post prints the report here instead.
With no PR, ask what to do with it: open a tracker issue for the defects (the scenario-report skill covers the forms and the redaction rules), save it to a file, post it to a PR number they name, or leave it in this conversation. Post nothing until they pick.
Finally, delete the run directory except $RUN/assets/ (keep all of it with --keep). When the run saved files there, end by asking whether to open that folder so the files can be dragged into the report comment, and open it (open on macOS, xdg-open on Linux) only on a yes.
## Skill validation: `<name>` (<verdict>)
Objective: <one sentence>
Use case: <the task, one or two sentences>
Run: <separate process|subagent>, model <model>, commit <sha>, <UTC timestamp>
### Mechanical checks
| Check | Result |
| --------- | ------ |
| pnpm spec | |
| pnpm test | |
### End to end
| # | Tool | Outcome |
| --- | ---- | ------- |
Objective met: yes/no. <one sentence on what the agent produced>
### Evidence
| Artifact | Asset id | Job id | Model id | File |
| -------- | -------- | ------ | -------- | ---- |
### Defects
1. `<skill folder>/SKILL.md:<line>` <what the agent got wrong> -> <the sentence to add or change>
### Re-run
`/skills:validate <name>` after the fix, with a fresh agent.
---
_Generated by <agent name and verified model>_© scenario-labs, MIT. 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 1 other file in .agents/skills/skills-validate of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Skills Validate 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 |
|---|---|---|---|---|---|---|
| Skills Validate this skillscenario-labs/skills | 946 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Web CloneJane-xiaoer/claude-skill-web-clone | 1k | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Threejs Game Directormajidmanzarpour/threejs-game-skills | 2.5k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Game Asset Generatorhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 |
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
majidmanzarpour/threejs-game-skills
Entrypoint for building, upgrading, and finishing Three.js browser games.
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
valkor-ai/loom
Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
scenario-labs/skills
A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.
scenario-labs/skills
A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…
scenario-labs/skills
A skill your agent uses when creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…
scenario-labs/skills
A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…
scenario-labs/skills
A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…
Categories
A skill your agent uses when explicitly asked to run a live or plan-only application test for a published Scenario skill. Skills Validate is an agent skill from scenario-labs/skills. Use when explicitly asked to run a live or plan-only application test for a published Scenario skill.
Skills Validate fits situations like: explicitly asked to run a live; plan-only application test for a published Scenario skill.
Run `npx skills add scenario-labs/skills --skill skills-validate -a claude-code`. Or copy the skill folder (.agents/skills/skills-validate in scenario-labs/skills) into .claude/skills/skills-validate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill skills-validate -a codex`. Or copy the skill folder (.agents/skills/skills-validate in scenario-labs/skills) into .agents/skills/skills-validate 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 scenario-labs/skills --skill skills-validate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skills-validate, .gemini/skills/skills-validate, .github/skills/skills-validate and .opencode/skills/skills-validate in your project.
Going by SKILL.md and its folder, Skills Validate needs the command-line tools its instructions call (claude, node, pnpm, gh and git).
SKILL.md names 1 domain. As links in the text: mcp.scenario.com. 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. Review the folder before installing.
Skills Validate is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Skills Validate: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.5k stars) and Game Asset Generator (htdt/godogen, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 2026.
Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.