CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

r3f-lighting

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

64

Quality

80%

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

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/r3f-lighting/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

60%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 R3F lighting reference with concrete copy-paste examples throughout, undermined by being a monolithic 670-line SKILL.md. It explains basic light concepts Claude already knows and inlines an entire component API catalog that should live in one-level-deep reference files.

Suggestions

Split the bulk into bundle references (e.g., references/light-types.md, references/drei-helpers.md, references/common-setups.md) and keep SKILL.md as a lean overview with clearly signaled one-level-deep links, per the Quick Start + 'See [FILE].md' pattern.

Delete explanations of basic three.js semantics (e.g., 'Emits light in all directions. Like a light bulb.') and deduplicate repeated import statements and component boilerplate across snippets.

Fix subtly broken examples — pass the ref (not lightRef.current?.shadow.camera) to useHelper, include React imports in component snippets — and add a short decision guide for choosing between ContactShadows, AccumulativeShadows, and shadow-map approaches.

DimensionReasoningScore

Conciseness

The body is mostly lean, prop-annotated code, but it explains basic three.js concepts Claude already knows ("Illuminates all objects equally. No direction, no shadows.", "Emits light in all directions. Like a light bulb.") and repeats import/boilerplate across many snippets. It could be tightened, matching the 'mostly efficient but includes some unnecessary explanation' anchor rather than the fully lean anchor 4.

3 / 5

Actionability

Nearly all guidance is concrete, executable TSX covering the common cases (Quick Start, every light type, Environment, Stage, ContactShadows), but there are minor gaps: component snippets omit React imports, and "useHelper(lightRef.current?.shadow.camera, CameraHelper)" passes a resolved value where a ref is required. This fits 'mostly executable guidance with minor gaps' rather than the fully copy-paste-ready anchor 5.

4 / 5

Workflow Clarity

Sections are clearly organized (overview table, per-type reference, complete ready-made setups like Three-Point Lighting and Studio Lighting) and no destructive/batch operations require validation. However, there is no guidance for choosing among the overlapping shadow/lighting approaches (e.g., ContactShadows vs AccumulativeShadows vs shadow maps), leaving the apply-which-one workflow implicit, so it stops short of anchor 5.

4 / 5

Progressive Disclosure

All ~670 lines live inline in SKILL.md with zero bundle files or reference pointers — the per-light prop reference, the entire drei helpers catalog (Environment, Lightformer, Sky, Stars, Stage, ContactShadows, AccumulativeShadows, SoftShadows, BakeShadows), common setups, and animation patterns are content that clearly belongs in separate reference files. In-file section headers are better than anchor 2's 'no section headers' example, but the complete absence of any cross-file disclosure for a 670-line reference puts it noticeably below the midpoint between anchors 2 and 3.

2 / 5

Total

13

/

20

Passed

Description

92%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: concrete capabilities, an explicit 'Use when' clause with multiple natural trigger phrases, and a clearly bounded niche within the R3f skill family. The only weakness is slightly incomplete synonym coverage (missing HDR/HDRI-style variations users might say).

DimensionReasoningScore

Specificity

It names the domain ("React Three Fiber lighting") plus concrete topics ("light types, shadows, Environment component, IBL") and multiple concrete actions ("adding lights, configuring shadows, setting up environment lighting, or optimizing lighting performance") that comprehensively span the lighting domain, matching the multiple-specific-actions anchor. It is not anchor 4 because the enumerated actions leave no significant coverage gap for this domain.

5 / 5

Completeness

It explicitly answers both what ("light types, shadows, Environment component, IBL") and when ("Use when adding lights, configuring shadows, setting up environment lighting, or optimizing lighting performance") with concrete trigger phrases, exactly matching the anchor 5 example pattern. Not anchor 4, since the 'when' clause is fully explicit with multiple concrete triggers.

5 / 5

Trigger Term Quality

Natural phrases users would actually say are present ("adding lights", "configuring shadows", "environment lighting", "lighting performance"), giving good keyword coverage. It falls short of anchor 5's comprehensive synonym coverage: common variations like "HDR/HDRI", "light setup", or "illumination" are missing.

4 / 5

Distinctiveness Conflict Risk

"React Three Fiber lighting" carves out a clear niche with distinct triggers; adjacent skills (r3f-materials, r3f-textures, r3f-postprocessing) cover different concerns, and only minimal overlap exists (e.g., bloom effects). It matches the clear-niche/minimal-conflict anchor rather than the minor-overlap anchor 4.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

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

Warning

Total

15

/

16

Passed

Repository

AzizBelhassan/timeverse

Path

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