CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

tinyworld-shader-fx

Use when adding or changing GLSL effects in Tiny World Builder — landscape water, waterfalls, foam, smoke, explosions, damage/wear overlays, or the reusable TinyShaderFX library. Covers where shaders live, the override relationship between LandscapeEngine.js and engine/landscape/*.js, and the procedural-noise toolkit.

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

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

An exemplarily dense, project-specific reference that assumes Claude's competence and surfaces real gotchas (override relationship, cache-key requirement, r185 UV/colorspace pitfalls). Its main gaps are the undocumented factory opts and the absence of a minimal usage example, plus topic-based rather than sequenced workflows.

Suggestions

Document the opts for the TinyShaderFX factories (makeWaterfallMaterial, applyWear, etc.) or add one short copy-paste usage example so the API is immediately executable.

Add a short sequenced 'add a new effect' workflow (create material via factory -> drive uniform -> track() -> verify with check.js) with an explicit validation checkpoint.

Consider moving the ocean-uniform reference and factory API details into a references/ file, keeping SKILL.md as a lean overview with clearly signaled one-level-deep pointers.

DimensionReasoningScore

Conciseness

Lean and dense with zero padding: every line is project-specific ('~9 value-noise taps', 'refract(-viewDir, norm, 0.7502)', "anchors on `<project_vertex>` and `<dithering_fragment>`"), assumes competence in three.js/GLSL, and explains nothing Claude already knows. Nothing to trim.

5 / 5

Actionability

Highly concrete throughout — exact file paths ('engine/landscape/water.js', '04-textures.js'), function/uniform names ('applyFlowingWaterUVs', 'vTwWaterSurfaceUv', 'uEnhance'), and mandatory steps ('customProgramCacheKey is mandatory'). Falls short of 5 because the factory API is listed without any executable example and the opts for makeWaterfallMaterial/applyWear are undocumented, so it is not copy-paste ready.

4 / 5

Workflow Clarity

Per-task direction is clear (edit the split files not the inline copies, keep the check.js-guarded names, include `<colorspace_fragment>`, wire new files via the script tag) and validation is named (check.js per-file syntax check + duplicate-decl scan). Falls short of 5 because common workflows like adding a new effect or flipping the enhanced-water toggle are described across topic sections rather than as an explicit sequenced validate-fix-retry flow.

4 / 5

Progressive Disclosure

Well-organized topical sections with clear headers and no buried references (no bundle files exist, and the body references only real in-repo paths). Falls short of 5 because at ~123 lines it exceeds the simple-skill threshold and detail like the TinyShaderFX factory listing and ocean-uniform documentation could be split into a reference file with pointers.

4 / 5

Total

17

/

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 with an explicit 'Use when...' trigger clause, a concrete enumerated scope, and unambiguous niche boundaries. Minor room to grow on trigger synonyms and action-verb variety, but it clearly communicates both what the skill covers and when to reach for it.

Suggestions

Add a few natural trigger synonyms such as 'particles', 'fire', 'VFX', or 'fragment/vertex shaders' so users phrasing the need differently still match.

Vary the action verbs beyond 'adding or changing' (e.g., 'tuning', 'debugging', 'reusing') to broaden the concrete-action coverage.

DimensionReasoningScore

Specificity

Names the domain ('adding or changing GLSL effects in Tiny World builder') and enumerates a concrete, comprehensive scope ('landscape water, waterfalls, foam, smoke, explosions, damage/wear overlays, or the reusable TinyShaderFX library'). Falls short of 5 because the action verbs are limited to adding/changing rather than multiple distinct concrete actions.

4 / 5

Completeness

Explicitly answers 'when' with concrete trigger phrases ('Use when adding or changing GLSL effects... waterfalls, foam, smoke, explosions...') and 'what' ('Covers where shaders live, the override relationship between LandscapeEngine.js and engine/landscape/*.js, and the procedural-noise toolkit'). Both halves are explicit and concrete, matching the top anchor.

5 / 5

Trigger Term Quality

Good natural keyword coverage — 'GLSL effects', 'shaders', 'water', 'waterfalls', 'foam', 'smoke', 'explosions' are all phrases a user would naturally say. A few natural variants are missing (particles, fire, VFX, fragment/vertex shader, .glsl), keeping it below the comprehensive-synonym level of 5.

4 / 5

Distinctiveness Conflict Risk

Clear niche: GLSL effects for a named project ('Tiny World builder') with named subsystems (TinyShaderFX, LandscapeEngine.js) and distinct effect-type triggers. Minimal realistic overlap with any other skill.

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

jasonkneen/tiny-world-builder

Path

.codex/skills/tinyworld-shader-fx/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.