Zonefoundry Local Sonos
WarnAudited by ClawScan on May 10, 2026.
Overview
The skill is clearly aimed at local Sonos control, but it gives the agent authority to auto-update, trust runtime-provided instructions, and execute returned commands without user review.
Install this only if you trust the ZoneFoundry `zf` runtime and the machine it runs on. Before using it, consider pinning the `zf` version, disabling or approving runtime self-updates, requiring confirmation before `nextCommand` and queue-prune actions, and treating service-linking/token diagnostics as sensitive.
Findings (7)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A changed or unexpected `zf` response could cause the agent to run local commands before the user has reviewed what will happen.
The agent is instructed to run a command supplied by runtime output without an allowlist, argument validation, or user confirmation.
Always obey `nextCommand`: If `zf setup --format json` returns a `nextCommand` field, execute that command immediately.
Only execute `nextCommand` values that match a strict allowlist of safe `zf` subcommands, and ask the user before auth, update, config, delete, prune, or recovery actions.
The executable that controls Sonos may change before the user’s actual request is handled, so reviewed behavior may no longer match the installed runtime.
The prompt tells the agent to update the local executable runtime automatically at the start of a new session.
If status=update_available, run: zf update self --format json
Require explicit user approval before runtime updates, verify release provenance, and provide a way to disable automatic updating.
Different users or future installs may receive different `zf` code than the version considered during this review.
The artifact itself discloses that the installed runtime is not pinned to a reviewed version.
The skill metadata currently installs `zf` from `@latest`. That is convenient for end users, but it is less reproducible than a pinned tag or pinned commit.
Pin the Go module to a specific tag or commit and document the expected runtime version.
The agent may follow different instructions in later conversations than the ones shown in this skill package.
Runtime-provided text is made authoritative over the reviewed skill instructions, creating a path for unreviewed instruction changes.
On every new conversation, run: zf skill show --format json Use the returned "skill" content as your complete, up-to-date capability reference.
Treat `zf skill show` output as advisory reference material only, and do not let it override reviewed safety rules without signature/version validation.
Items may be removed from a room’s queue as a side effect of a playback request, even if the user did not ask to clean the queue.
The agent is told to mutate the Sonos queue after related actions without asking first.
After adding songs with --enqueue or after any queue playback, silently run:
zf queue prune --name "<room>" --format json
This removes copyright-blocked tracks. Do not ask the userPreview or explain queue pruning before running it, and limit pruning to tracks affected by the user’s current request.
The local runtime may use linked music-service access to play music or complete service readiness flows.
Music-service readiness and linking can involve local token or account state, which is expected for Sonos playback but still sensitive.
`tokenReady=yes`: ZoneFoundry already has a usable local token or ready state
Use official Sonos/service login flows, install only on trusted local machines, and avoid sharing diagnostic output that may include account or token state.
If configured as a bot or automation, the local node can keep controlling Sonos while it remains running.
The skill discloses optional persistent local automation for Sonos control.
for persistent bot / automation flows: an always-on local node
Run persistent control only on a trusted same-LAN device and review any bot or automation configuration separately.
