game-audio-guide — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited game-audio-guide (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Steps apply to both Wwise and FMOD unless noted.
| Middleware | Effect plugin | Source plugin | Mixer plugin |
|---|---|---|---|
| Wwise | IAkInPlaceEffectPlugin or IAkOutOfPlaceEffectPlugin | IAkSourcePlugin | IAkMixerEffectPlugin |
| FMOD | FMOD_DSP_DESCRIPTION (process callback) | FMOD_DSP_DESCRIPTION (generatetone or read) | FMOD_DSP_DESCRIPTION on a bus |
Wwise:
AkPluginInfo struct with your company ID, plugin ID, and plugin type.GetPluginInfo() to return it from your plugin class.CreateXxx factory function and register it with AK::SoundEngine::RegisterPlugin.AkPluginParamBase subclass for parameter storage.FMOD:
FMOD_DSP_DESCRIPTION struct with name, version, channel counts, and all callback pointers.FMOD_DSP_PARAMETER_DESC entries for every parameter the DSP exposes.FMODGetDSPDescription() function (or pass the struct directly to FMOD::System::createDSP).Wwise (`Execute`):
AkAudioBuffer at runtime — never hardcode.io_pBuffer->GetChannel(ch) to access per-channel float pointers.Init with the AK::IAkPluginMemAlloc* allocator; never allocate inside Execute.uValidFrames == 0 to avoid processing silent tail unnecessarily.FMOD (`read` or `process`):
inchannels and outchannels from the callback signature — do not assume stereo.dsp_state->functions->alloc / free; never allocate inside read / process.FMOD_OK after producing valid output; return FMOD_ERR_DSP_SILENCE only when the DSP intentionally produces silence.Wwise RTPC binding:
SetParam on your AkPluginParamBase subclass to copy incoming values into your struct.Execute — read from the struct, not from SetParam directly.FMOD parameter system:
FMOD_DSP_PARAMETER_DESC per parameter in your FMOD_DSP_DESCRIPTION.setparameterfloat / getparameterfloat callbacks to read/write from your plugin state.paramdesc; do not rely on magic numbers.FMOD_DSP_PARAMETER_DESC with FMOD_DSP_PARAMETER_TYPE_FLOAT and the appropriate float mapping (LINEAR, AUTO, or piecewise linear) so Studio renders controls correctly.AK::SoundEngine::RegisterPlugin during engine init before loading banks; ship a .dll/.so plus a .xml authoring descriptor.FMOD_DSP_DESCRIPTION to createDSP or load via loadPlugin; ship as .plugin.dll/.so.#ifndef AK_OPTIMIZED (Wwise) or equivalent release flag (FMOD).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.