Content
71%Weight 40%Scale 1-5Reviews 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.
| Dimension | Reasoning | Score |
|---|---|---|
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 |