CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

threejs-loaders

Three.js asset loading - GLTF, textures, images, models, async patterns. Use when loading 3D models, textures, HDR environments, or managing loading progress.

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

The canonical home for this skill is threejs-loaders in CloudAI-X/threejs-skills

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, well-organized reference: copy-paste-ready code for every major Three.js loader and async pattern, with no conceptual padding. The main gaps are structural — everything lives inline in one long SKILL.md with no progressive disclosure into reference files — plus minor duplication (Quick Start vs. Texture Loading, repeated Promise helpers).

Suggestions

Split format-specific content (OBJ/FBX/STL/PLY loaders, the custom AssetManager class, error-handling patterns) into reference files (e.g., references/formats.md, references/error-handling.md) and keep SKILL.md as a concise overview with clearly signaled one-level-deep links.

Remove duplication: drop the Quick Start texture snippet in favor of a pointer to the Texture Loading section, and consolidate the three near-identical Promise-wrapper helpers (loadModel/loadGLTF/loadTexture) into one generic promisify example.

Move version-sensitive URLs (Draco decoder 1.5.6, three@0.160.0 KTX2 transcoder path) into a single noted section so they can be updated in one place without drifting.

DimensionReasoningScore

Conciseness

The body is dominated by lean, executable code with terse one-line framing ("Coordinate multiple loaders and track progress.", "For environment maps and skyboxes.") and no padding explaining concepts Claude already knows. Minor trimming is possible: the Quick Start block duplicates the later Texture Loading section, and three separate near-identical Promise-wrapper helpers are shown (loadModel, then loadGLTF/loadRGBE/loadTexture) — anchor 4 (efficient with minor instances that could be trimmed) rather than anchor 5's every-token-earns-its-place.

4 / 5

Actionability

Nearly every section is copy-paste-ready executable JavaScript covering the common cases: GLTF with animations, Draco and KTX2 setup with working decoder URLs, promisified loading, Promise.all batching, caching, blob/data-URL sources, and fallback/retry/timeout error handling. This matches anchor 5 (fully executable, common cases covered); it is clearly above anchor 4, which allows minor gaps.

5 / 5

Workflow Clarity

This is a reference-style skill, and the sequences it does present are clear and complete: LoadingManager onStart/onProgress/onLoad/onError wired to concrete actions, PMREM load → generate → dispose, Draco/KTX2 setup → attach → load, and error-recovery loops (retry with backoff, fallback URL, AbortController timeout). Validation checkpoints are largely inapplicable (loading is non-destructive) and errors are handled via onError callbacks and try/catch, placing it at anchor 4 rather than anchor 5's explicit validate-before-proceed pattern.

4 / 5

Progressive Disclosure

The body is a single ~620-line file with good section headers but no bundle files at all — format-specific guides (OBJ/FBX/STL/PLY), the custom AssetManager class, and error-handling patterns are all inlined where anchor 3 places content that should be separate. It is above anchor 2 (which requires minimal structure or buried references) thanks to clear, well-organized headers and a "See Also" section, but below anchor 4 because no reference files exist to move the bulk of the detail into.

3 / 5

Total

16

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: third-person, concise, with a clear 'what' and an explicit, concrete 'Use when...' trigger clause. Its weaknesses are modest — noun-based capability listing instead of action verbs, missing file-extension synonyms (.glb, .obj, .fbx), and some overlap risk with sibling threejs texture/material skills.

DimensionReasoningScore

Specificity

"Three.js asset loading - GLTF, textures, images, models, async patterns" enumerates several specific capability areas (GLTF, textures, images, models, async patterns) with only minor gaps (e.g., Draco/KTX2 compression, caching, error handling are not named). It lists several specifics rather than only 1-2 concrete actions, but the items are nouns/categories rather than action verbs like the anchor-5 example's "Extract text and tables... fill forms, merge documents", so it sits between anchors 3 and 4, noticeably above the midpoint.

4 / 5

Completeness

It explicitly answers both questions: the "what" is "Three.js asset loading - GLTF, textures, images, models, async patterns" and the "when" is the concrete trigger clause "Use when loading 3D models, textures, HDR environments, or managing loading progress." This matches the anchor-5 example's structure (clear what + explicit 'Use when...' with concrete trigger phrases), not merely the anchor-4 pattern where the 'when' is generic like "when working with PDF files".

5 / 5

Trigger Term Quality

"GLTF, textures, images, models", "3D models", "HDR environments", "loading progress" are natural phrases users would say when needing this skill, giving good keyword coverage. However, common synonyms and file extensions users often mention (.glb, .gltf, .obj, .fbx, .hdr) are missing, which keeps it below the anchor-5 comprehensive-synonym level.

4 / 5

Distinctiveness Conflict Risk

"Three.js asset loading" with GLTF/HDR/progress triggers carves a clear niche, but the generic terms "textures, images, models" overlap with closely related skills the body itself references ("threejs-textures", "threejs-materials"), so texture-centric requests could trigger the wrong skill. This is anchor 4 (mostly distinct, minor overlap risk with closely related skills) rather than anchor 5's minimal-conflict niche.

4 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (624 lines); consider splitting into references/ and linking

Warning

referenced_paths_exist

Referenced path issues: 3 missing, 1 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository

calesthio/OpenMontage

Path

.agents/skills/threejs-loaders/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.