Borrowing it
Nothing to install: this file belongs to kamwoh/yume. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kamwoh/yume/master/.claude/skills/yume-lighting-designer/SKILL.mdgit clone --depth 1 https://github.com/kamwoh/yumeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kamwoh/yume/yume-lighting-designer)<a href="https://agentmods.dev/skills/kamwoh/yume/yume-lighting-designer"><img src="https://agentmods.dev/badge/skills/kamwoh/yume/yume-lighting-designer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kamwoh/yume/yume-lighting-designer"><img src="https://agentmods.dev/badge/skills/kamwoh/yume/yume-lighting-designer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.03568 |
| Opus 5 | $0.00000 | $0.01784 |
| Sonnet 5 | $0.00000 | $0.00714 |
| Haiku 4.5 | $0.00000 | $0.00357 |
Grade A, and why
yume-lighting-designer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 304 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/yume-lighting-designer
You are the lighting designer for Yume — the specialist for the
lighting block in scene.json (per ADR 0025: declarative day/night).
This skill loads into the orchestrator's main context (Tier 2.6 — no subagent spawn). Created 2026-05-11 because Aldenmere's lighting felt too dim / cold / unintentional at boot; no skill existed to systematize the tuning pass.
Why this skill exists
Lighting is a load-bearing aesthetic layer. The same world can read as "warm afternoon village," "tense pre-storm dusk," or "frozen midnight death-march" depending on:
- directional_light color across time-of-day
- ambient color + energy (skylight fill)
- sky horizon color (sets the visible boundary)
- seasonal palette shifts
- per-location point lights (fire pit glow, lamps)
Without coordinated values, the result feels noisy: warm sun + cool ambient + neutral sky = stage-lit gray. With coordinated values, the same engine produces moody atmosphere.
Yume's lighting layer is fully declarative — engine code
(lighting_director.gd) reads scene.json.lighting and animates the
sun's basis + color + energy + ambient + sky each frame. The skill's
job is choosing the values.
Inputs you accept
- A GDD at
docs/games/<name>/GDD.md(aesthetic targets, voice-and-texture tone) - The current
data/demo_<name>/scene.json(existing lighting block) - Optional: a target reference image / mood word ("warm afternoon", "Bergman winter", "hand-painted-anime summer")
- Optional: a screenshot capture showing the current rendering
Outputs you produce
Direct edits to data/demo_<name>/scene.json's lighting block. No
intermediate design doc unless the game has 4+ distinct lighting
modes (per-act lighting, in which case author a
docs/games/<name>/lighting-design.md and reference it from the GDD).
What the lighting block supports
(Engine spec — lighting_director.gd. Sub-fields below are optional;
omitting them keeps engine defaults.)
"lighting": {
"directional_light": {
"enabled": true,
"binds_to": "world_clock.current_hour", // 0-24 float
"shadow_enabled": true,
"color_at_noon": "#fff8e0",
"color_at_dawn_dusk": "#ff9060",
"color_at_night": "#2a3870",
"energy_noon": 1.0, // float, suggested 0.8-1.4
"energy_horizon": 0.7, // dawn/dusk transition
"energy_night": 0.05, // very low (moonlight)
"_seasonal_noon_override": {
// Per `world_clock.season_phase` value, override noon color.
// 60-second crossfade when season_phase changes.
"autumn": "#ffd880",
"early_winter": "#e8eaf8",
"deep_winter": "#d0d8f8",
"late_winter": "#f0f4d0"
},
"_seasonal_night_override": { ... }
},
"ambient": {
"color_day": "#a0a0b0",
"color_night": "#181828",
"energy_day": 0.45, // higher = brighter shadowed surfaces
"energy_night": 0.08,
"_seasonal_ambient_day_override": { ... }
},
"sky": {
"horizon_day": "#78a0d8",
"horizon_night": "#0c1018",
"binds_to": "world_clock.current_hour",
"_seasonal_horizon_day_override": { ... }
},
"fire_pit_glow": {
// Optional point-light following any entity with matching tag.
"source_tag": "fire_pit",
"color": "#ff9040",
"radius_normal": 10.0,
"radius_solstice_boost": 18.0,
"intensity_fuel_full": 1.2,
"intensity_fuel_low": 0.4,
"intensity_extinguished": 0.0
},
"level_seed": 4412, // determinism for sky generation
// === 2026-05-18: composition pass — WorldEnvironment polish ===
// All five blocks below are OPTIONAL, applied ONCE at boot
// (atmospheric mood, not per-frame day/night curves). Maps 1:1
// to Godot Environment.* properties. Per ADR 0021 — pure exposure.
"fog": {
"enabled": true,
"light_color": "#c8b890", // warm gold for autumn
"light_energy": 1.0,
"sun_scatter": 0.25,
"density": 0.004, // 0.001-0.02 typical; higher=denser
"aerial_perspective": 0.3, // tints distant geometry sky-color
"height": -5.0, // above this y, falls off
"height_density": 0.04
},
"tonemap": {
"mode": "filmic", // linear|reinhardt|filmic|aces
"exposure": 1.05,
"white": 6.0
},
"glow": { // bloom on bright sources
"enabled": true,
"intensity": 0.25,
"strength": 0.9,
"bloom": 0.05,
"hdr_threshold": 1.1
},
"adjustments": { // global color grading
"enabled": true,
"brightness": 1.0,
"contrast": 1.15,
"saturation": 1.40 // 1.0=neutral; >1 = pop, <1 = muted
},
"ssao": { // ambient occlusion contact shadows
"enabled": true,
"radius": 1.0,
"intensity": 0.8
},
// === 2026-05-18: procedural sky-shader (ADR 0052) ===
// OPTIONAL — if `sky.shader` is set, swaps ProceduralSkyMaterial
// for ShaderMaterial backed by the .gdshader. Sky.process_mode
// is auto-switched to REALTIME so animation actually plays.
// sky_top_color / cloud_color / cloud_shadow_color uniforms can
// animate day/night via "<uniform>_day" + "<uniform>_night" keys
// alongside the existing horizon_day/horizon_night.
"sky": {
"horizon_day": "#5890d8",
"horizon_night": "#0c1018",
"shader": "res://data/lib/shaders/sky_clouds.gdshader",
"shader_params": {
"sky_top_color": [0.30, 0.55, 0.85],
"sky_horizon_color": [0.66, 0.80, 0.92],
"cloud_color": [0.96, 0.95, 0.92],
"cloud_shadow_color": [0.55, 0.60, 0.66],
"cloud_coverage": 0.55, // 0=clear, 1=overcast
"cloud_softness": 0.18, // 0=crisp, 1=hazy
"cloud_speed": 0.012,
"cloud_scale": 6.0
},
"sky_top_color_day": "#508cd8",
"sky_top_color_night": "#0a1530",
"cloud_color_day": "#f4f0e8",
"cloud_color_night": "#34384a",
"cloud_shadow_color_day": "#888884",
"cloud_shadow_color_night": "#181a26"
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 304 lines · 0 tokens per session scan A 62f51ce63c7c
yume-lighting-designer is a skill published in the GitHub repository kamwoh/yume (21 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 3,568 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
godot-engineer
!cat skills/shared/protocols/3d-spatial-foundations.md 2>/dev/null || true !cat skills/shared/game-visual-foundations.md 2>/dev/null || echo "=== Visual Foundations not loaded ===" !cat skills/shared/protocols/ux-protocol.md 2>/dev/null || true !cat skills/shared/protocols/game-test-protocol.md 2>/dev/null || true…
game-engineer
Meta-skill for game development that orchestrates specialized engine skills. Routes to the appropriate game engine skill (Unity, Unreal, Godot, Roblox, Phaser 3, Three.js) based on project requirements. Provides unified game development workflow.
self-evolve
Capture reusable patterns from a finished project and lift them into framework-level priors (contracts, modules, skeletons) that future projects inherit. Run only when the user explicitly requests self-evolution; the orchestrator executes the workflow.
fps-controller
Use when building an FPS, first-person movement, or a 3D character that walks, jumps, and reacts to external forces — production-quality first-person controller with WASD, mouse look, jump, coyote time, jump buffering, air control, and external-velocity handling. Trigger on "FPS", "first-person", "WASD", "character…
smoke
Use when authoring a smoke visual effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D. Trigger on "smoke", "smoke trail", "puff", "chimney smoke", "smoke from a fire", "steam", "fog cloud", "explosion smoke".
water-ripple
Use when authoring a water-ripple visual effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts. Trigger on "water ripple", "ripples on water", "raindrop ripple", "splash ripple", "rain on water", "footstep in puddle", "fish jumps".