Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add HermeticOrmus/claude-code-game-development --skill audio-patternsgit clone --depth 1 https://github.com/HermeticOrmus/claude-code-game-developmentWrote 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/hermeticormus/claude-code-game-development/audio-patterns)<a href="https://agentmods.dev/skills/hermeticormus/claude-code-game-development/audio-patterns"><img src="https://agentmods.dev/badge/skills/hermeticormus/claude-code-game-development/audio-patterns/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/hermeticormus/claude-code-game-development/audio-patterns"><img src="https://agentmods.dev/badge/skills/hermeticormus/claude-code-game-development/audio-patterns.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.00061 | $0.02402 |
| Opus 5.5 | $0.00024 | $0.00961 |
| Sonnet 5.5 | $0.00012 | $0.00480 |
| Haiku 4.5 | $0.00006 | $0.00240 |
Grade A, and why
audio-patterns 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 15d 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 — 258 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Audio Patterns
Audio Bus Architecture (Godot)
# AudioBusLayout setup - configure programmatically or in AudioBusLayout editor
# Bus hierarchy: Master -> Music, SFX, Voice, Ambient
# Each sub-bus routes to Master, apply effects on sub-buses
class_name AudioManager extends Node
# Bus names must match AudioBusLayout asset
const BUS_MASTER := &"Master"
const BUS_MUSIC := &"Music"
const BUS_SFX := &"SFX"
const BUS_VOICE := &"Voice"
const BUS_AMBIENT := &"Ambient"
func set_music_volume(db: float) -> void:
var bus_idx := AudioServer.get_bus_index(BUS_MUSIC)
AudioServer.set_bus_volume_db(bus_idx, db)
func duck_music(duck_db: float = -12.0, duration: float = 0.3) -> void:
# Duck music when important SFX or voice plays
var bus_idx := AudioServer.get_bus_index(BUS_MUSIC)
var tween := create_tween()
tween.tween_method(
func(v: float): AudioServer.set_bus_volume_db(bus_idx, v),
AudioServer.get_bus_volume_db(bus_idx),
duck_db,
duration
)
func unduck_music(duration: float = 0.5) -> void:
var bus_idx := AudioServer.get_bus_index(BUS_MUSIC)
var tween := create_tween()
tween.tween_method(
func(v: float): AudioServer.set_bus_volume_db(bus_idx, v),
AudioServer.get_bus_volume_db(bus_idx),
0.0,
duration
)
Audio Pool Implementation
# Fixed-size audio pool prevents per-sound node allocation
class_name AudioPool extends Node
const POOL_SIZE := 16
var _players: Array[AudioStreamPlayer] = []
var _priorities: Array[float] = []
func _ready() -> void:
for i in POOL_SIZE:
var player := AudioStreamPlayer.new()
player.bus = &"SFX"
add_child(player)
player.finished.connect(_on_player_finished.bind(i))
_players.append(player)
_priorities.append(0.0)
func play(stream: AudioStream, volume_db: float = 0.0, priority: float = 1.0) -> AudioStreamPlayer:
# Find free player
for i in POOL_SIZE:
if not _players[i].playing:
return _start_player(i, stream, volume_db, priority)
# Pool exhausted: steal lowest priority
var lowest_idx := 0
for i in POOL_SIZE:
if _priorities[i] < _priorities[lowest_idx]:
lowest_idx = i
return _start_player(lowest_idx, stream, volume_db, priority)
func _start_player(idx: int, stream: AudioStream, volume_db: float, priority: float) -> AudioStreamPlayer:
_players[idx].stream = stream
_players[idx].volume_db = volume_db
_players[idx].play()
_priorities[idx] = priority
return _players[idx]
func _on_player_finished(idx: int) -> void:
_priorities[idx] = 0.0
# 3D variant - takes world position for spatialized pool
class AudioPool3D extends Node:
# Same pattern but uses AudioStreamPlayer3D with position assignment
pass
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.
- 15d ago First seen · 258 lines · 61 tokens per session scan A ab0df2c02313
audio-patterns is a skill published in the GitHub repository HermeticOrmus/claude-code-game-development (70 stars, last pushed 11d ago), licensed MIT. It adds 61 tokens to every session and 2,402 once invoked, about $0.0002 per session on Opus 5.5. 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-10-01.
Other skills, from other repositories
pygame-core
Structure a pygame (pygame-ce) game in Python: the init/event/update/draw loop, delta-time movement, Surface/Rect blitting, keyboard/mouse input, and Sprite/Group management with collision. Use when building or debugging a pygame game — when the user mentions pygame, pygame-ce, the game loop, blit, Surface, Rect…
cgs-adopt
Use for adopt tasks that inventory existing source, assets, docs, and tests before mapping work into CGS structure; produce verification evidence, changed or proposed files, and handoff boundaries.
cgs-architecture-decision
Use for architecture decision tasks that write an ADR with context, options, decision, consequences, validation, and rollback; produce verification evidence, changed or proposed files, and handoff boundaries.
cgs-architecture-review
Use for architecture review tasks that review architecture for layer violations, scalability risks, engine misuse, testing seams, and production readiness; produce verification evidence, changed or proposed files, and handoff boundaries.
cgs-art-bible
Use for art bible tasks that define visual identity, shape language, palette, camera, animation, UI style, and asset constraints; produce verification evidence, changed or proposed files, and handoff boundaries.
cgs-asset-audit
Use for asset audit tasks that audit game assets for completeness, naming, import settings, ownership, licensing, and production risk; produce verification evidence, changed or proposed files, and handoff boundaries.