CtrlK
BlogDocsLog inGet started
Tessl Logo

threejs-interaction

Three.js interaction - raycasting, controls, mouse/touch input, object selection. Use when handling user input, implementing click detection, adding camera controls, or creating interactive 3D experiences.

62

Quality

75%

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 ./skills/threejs-interaction/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%Scale 1-5

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

This is a highly actionable Three.js interaction reference with excellent, executable code examples covering raycasting, multiple control types, selection systems, and coordinate conversion. Its main weakness is that it's overly long and monolithic — the extensive control type catalog and selection patterns should be split into separate reference files to improve token efficiency and progressive disclosure. The content quality is high but the structure doesn't respect the token budget.

Suggestions

Move detailed control type examples (FlyControls, FirstPersonControls, PointerLockControls, TrackballControls, MapControls) to a separate CONTROLS_REFERENCE.md file, keeping only OrbitControls as the primary example in SKILL.md

Move the SelectionBox, TransformControls, and DragControls sections to a separate ADVANCED_INTERACTION.md file, with brief one-line descriptions and links in the main skill

Trim the intersection result type comment block — Claude already knows TypeScript/JSDoc-style type annotations and can infer the structure from usage examples

DimensionReasoningScore

Conciseness

The skill is quite long (~400+ lines) and covers many control types exhaustively. While it avoids explaining basic concepts, it includes several control types (TrackballControls, MapControls, FlyControls) that could be trimmed or moved to a reference file. The intersection result comment block and some patterns are repeated across sections.

3 / 5

Actionability

Every section provides fully executable, copy-paste ready code examples. Import paths are specified, event handlers are complete, and the code covers common use cases including touch support, canvas-specific mouse coordinates, and the InteractionManager class pattern.

5 / 5

Workflow Clarity

For a reference/API-style skill, the sections are well-sequenced from basic raycasting through controls to complete interaction systems. The InteractionManager class shows a clear pattern for combining techniques. However, there are no explicit validation steps or error handling patterns (e.g., checking if raycaster returns valid results, handling missing objects), which is a minor gap.

4 / 5

Progressive Disclosure

The skill is a monolithic ~400+ line file with no bundle files to offload detailed content. The extensive control type listings (OrbitControls, FlyControls, FirstPersonControls, PointerLockControls, TrackballControls, MapControls, TransformControls, DragControls) should be split into a separate reference file. The 'See Also' section references other skills but the body itself needs better content splitting.

2 / 5

Total

14

/

20

Passed

Description

83%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.

This is a well-crafted skill description that clearly identifies its domain (Three.js interaction), lists concrete capabilities, and includes an explicit 'Use when' clause with natural trigger phrases. The description is concise, uses proper third-person voice, and would be easily distinguishable from other Three.js-related skills. Minor improvements could include additional synonym coverage for trigger terms.

DimensionReasoningScore

Specificity

Lists several specific actions: raycasting, controls, mouse/touch input, object selection. These are concrete capabilities within the Three.js interaction domain, though it could be slightly more detailed about what each entails (e.g., 'OrbitControls', 'drag-and-drop').

4 / 5

Completeness

Clearly answers both 'what' (raycasting, controls, mouse/touch input, object selection) and 'when' with an explicit 'Use when' clause listing concrete trigger scenarios: handling user input, click detection, camera controls, interactive 3D experiences.

5 / 5

Trigger Term Quality

Includes strong natural keywords like 'raycasting', 'mouse/touch input', 'object selection', 'click detection', 'camera controls', 'interactive 3D'. Missing some synonyms like 'hover', 'drag', 'pointer events', 'picking', or 'OrbitControls' that users might naturally use.

4 / 5

Distinctiveness Conflict Risk

Clearly scoped to Three.js interaction/input handling, which distinguishes it from general Three.js rendering, scene setup, or animation skills. Minor overlap risk with a general Three.js skill or a broader 'user input handling' skill, but the specific mention of raycasting and camera controls narrows the niche well.

4 / 5

Total

17

/

20

Passed

Validation

81%

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

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

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

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

9

/

11

Passed

Repository
administrakt0r/AI-Agents-Safe-Coding-Skills
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.