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.

59

Quality

68%

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/threejs-interaction/SKILL.md

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

SKILL.md
Quality
Evals
Security

Quality

Content

53%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 thorough, highly actionable Three.js interaction reference with real code for every major topic, undermined by duplication and a monolithic structure that should be split into reference files. Fixing the few non-executable snippets and factoring shared boilerplate would materially improve it.

Suggestions

Split the large controls and raycasting catalogs into separate reference files (e.g., CONTROLS.md, RAYCASTING.md) and keep SKILL.md as a concise overview with one-level-deep links, which would lift progressive_disclosure and conciseness.

Factor the repeated mouse-position conversion and raycaster setup into a single shared snippet to remove duplication across the Quick Start, Selection, Hover, and InteractionManager sections.

Fix the non-executable examples: declare moveForward/moveBackward with let in PointerLockControls, implement dispose() or label it as exercise-only, and replace the '// Raycast here' placeholder with real logic.

DimensionReasoningScore

Conciseness

The body is mostly executable code rather than prose explaining known concepts, but raycaster setup and mouse-position conversion boilerplate are repeated across Quick Start, Raycaster, Selection, Hover, and InteractionManager sections and could be factored out.

3 / 5

Actionability

Most examples are concrete, copy-paste-ready Three.js code, but a few have minor gaps: the PointerLockControls example reassigns a const (runtime error), dispose() is a stub, and one handler leaves a '// Raycast here' placeholder.

4 / 5

Workflow Clarity

This is a topic-organized reference cookbook rather than a multi-step process, so there is no overarching sequence or validation checkpoints; individual examples are coherent but no explicit workflow exists.

3 / 5

Progressive Disclosure

Roughly 660 lines of reference material (e.g., the full controls catalog, raycasting variants) are inlined into SKILL.md with no detail-file references, content that clearly belongs in separate reference files.

2 / 5

Total

12

/

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, third-person description that clearly conveys both capabilities and trigger conditions with concrete, natural keywords. It is comprehensive on the core interaction topics but could add a few synonyms and acknowledge overlap with closely related Three.js skills.

DimensionReasoningScore

Specificity

Names the domain and lists several concrete actions (raycasting, controls, mouse/touch input, object selection, click detection, camera controls), but omits several interaction modes (drag, hover, box selection, keyboard) so coverage is not fully comprehensive.

4 / 5

Completeness

Explicitly states both what it does and when to use it, with concrete trigger phrases: 'Use when handling user input, implementing click detection, adding camera controls, or creating interactive 3D experiences.'

5 / 5

Trigger Term Quality

Good natural keywords users would say (raycasting, camera controls, click detection, mouse/touch input, object selection), but common synonyms like 'picking', 'hover', and 'drag' are missing.

4 / 5

Distinctiveness Conflict Risk

Targets a clear Three.js interaction niche with specific triggers, but 'camera controls' and 'interactive 3D experiences' risk minor overlap with sibling skills like threejs-fundamentals.

4 / 5

Total

17

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

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

Warning

Total

15

/

16

Passed

Repository
calesthio/OpenMontage
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.