CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

threejs-lighting

Three.js lighting - light types, shadows, environment lighting. Use when adding lights, configuring shadows, setting up IBL, or optimizing lighting performance.

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

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

SKILL.md
Quality
Evals
Security

Quality

Content

71%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 well-organized, highly actionable reference with concrete, executable examples covering light types, shadows, IBL, common setups, and performance. Its main weaknesses are the monolithic single-file structure that inlines advanced material better suited to reference files, some duplicated shadow/helper content, and one broken import (ContactShadows).

Suggestions

Split advanced material into reference files (e.g., references/shadows.md, references/environment-lighting.md, references/light-probes.md), keeping SKILL.md to the Quick Start, light-type overview table, and setup recipes with clearly signaled links.

Deduplicate content: merge the 'Optimizing Shadows' bias/frustum guidance with the per-light shadow sections, and remove the repeated RectAreaLightHelper import/example from 'Light Helpers'.

Fix the Contact Shadows example: ContactShadows is a @react-three/drei component, not 'three/examples/jsm/objects/ContactShadows.js'; either correct the import or replace it with a vanilla three.js technique.

DimensionReasoningScore

Conciseness

The body is largely lean: terse one-line descriptions ('Illuminates all objects equally. No direction, no shadows.') followed by code. However, shadow bias/frustum configuration is duplicated between 'DirectionalLight Shadows' and 'Optimizing Shadows', and the RectAreaLightHelper import/example appears in both the RectAreaLight and Light Helpers sections. Fits anchor 4 (efficient, minor instances that could be trimmed) rather than 5.

4 / 5

Actionability

Nearly all examples are executable copy-paste code with concrete values (e.g., 'dirLight.shadow.mapSize.width = 2048', 'dirLight.shadow.bias = -0.0001', 'RectAreaLightUniformsLib.init()'). One defect: 'import { ContactShadows } from "three/examples/jsm/objects/ContactShadows.js"' — ContactShadows is a @react-three/drei component and does not exist in three's examples directory, so that snippet fails to import. Mostly executable with minor gaps = anchor 4, not 5.

4 / 5

Workflow Clarity

Shadow setup is presented as a clear numbered sequence ('1. Enable on renderer', '2. Enable on light', '3. Enable on objects') with error-recovery guidance for shadow acne via bias/normalBias, and helper update guidance. This is a reference skill without destructive or batch operations, so no validation cap applies; fits anchor 4 (clear sequence, most checkpoints present) rather than 5, which expects explicit validation loops.

4 / 5

Progressive Disclosure

The single file is well-organized with clear section headers and a Quick Start, but at ~480 lines it inlines everything: per-light shadow API detail, IBL, light probes, and animation would each fit a references/ file. The rubric's 50-line single-file exception does not apply, and no bundle references exist, so this matches anchor 3 ('content that should be separate is inline') rather than 4, which expects most bulk detail split out with clear references.

3 / 5

Total

15

/

20

Passed

Description

87%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: concise, third-person, and it explicitly states both what the skill covers and when to use it with concrete trigger phrases. The only improvement is expanding the 'what' clause into concrete actions and adding a few more natural synonyms (e.g., 'HDR environment maps', 'ambient light').

DimensionReasoningScore

Specificity

The 'when' clause lists several concrete actions ('adding lights, configuring shadows, setting up IBL, or optimizing lighting performance'), but the 'what' half is stated as topic nouns ('light types, shadows, environment lighting') rather than concrete verbs. This matches anchor 4 (several specific actions, minor gaps) better than 5, whose example lists multiple concrete actions with comprehensive coverage.

4 / 5

Completeness

Explicitly answers both questions: the what ('Three.js lighting - light types, shadows, environment lighting') and the when ('Use when adding lights, configuring shadows, setting up IBL, or optimizing lighting performance') with concrete trigger phrases. It is not anchor 4, since the 'when' is fully explicit with specific triggers rather than needing more specificity.

5 / 5

Trigger Term Quality

Includes natural phrases users would actually say ('adding lights', 'configuring shadows', 'setting up IBL', 'optimizing lighting performance'). Common synonyms and variations like 'HDR', 'environment maps', or specific light names ('ambient light', 'spotlight', 'shadows not working') are missing, so it fits anchor 4 (good coverage, a few natural terms missing) rather than 5.

4 / 5

Distinctiveness Conflict Risk

'Three.js lighting' establishes a clear niche, and all triggers (shadows, IBL, lighting performance) are lighting-specific and would not plausibly fire a materials, textures, or post-processing skill. Minimal conflict risk matches anchor 5 rather than 4's 'minor overlap risk with closely related skills'.

5 / 5

Total

18

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

calesthio/OpenMontage

Path

.agents/skills/threejs-lighting/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.