implement-service-sdk

Implement the Fetchable trait and add Speaker struct fields for Sonos SDK service properties.

1|1|Updated Dec 6, 2025
One-click install
npx skills add https://github.com/tatimblin/sonos-sdk --skill implement-service-sdk
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: implement-service-sdk
Source: https://github.com/tatimblin/sonos-sdk/tree/main/.claude/skills/implement-service-sdk
Command: npx skills add https://github.com/tatimblin/sonos-sdk --skill implement-service-sdk

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill streamlines the process of integrating new service functionalities into the Sonos SDK by providing a structured approach to expose service properties, making them accessible through the SDK's API.

Core Features & Use Cases

  • Fetchable Trait Implementation: Enables fetching of service properties directly via API calls.
  • Type Alias Creation: Simplifies property access by defining convenient type aliases.
  • Speaker Struct Field Integration: Adds new property handles to the Speaker struct for unified access.
  • Use Case: After implementing a new service (e.g., a custom media service) in the backend, use this Skill to define how its properties (like current playback status or volume) are accessed and managed by the Sonos SDK.

Quick Start

Use the analyze_handles.py script to check which state properties already have SDK handles.

Frequently Asked Questions about implement-service-sdk

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I expose service properties through the Sonos SDK API in Rust?

To expose service properties through the Sonos SDK API, you implement the Fetchable trait, define type aliases, and add Speaker struct fields. This maps sonos-state properties to SDK handles for unified and discoverable access.

What is the Fetchable trait used for in Sonos SDK integration?

The Fetchable trait in Sonos SDK integration enables fetching service properties directly via API calls. It provides a consistent and discoverable interface for accessing service data through the SDK's structured property handles.

Can I use this to map sonos-state properties to SDK handles automatically?

Yes, this automates the integration of new service functionalities by mapping sonos-state properties to SDK handles and operations. It streamlines adding new properties to the Speaker struct for API accessibility.

How do I check which state properties already have SDK handles?

You can check which state properties already have SDK handles by running the analyze_handles.py script. This script helps identify existing property mappings to avoid duplication when adding new service functionalities.

What's the best way to add new property handles to the Speaker struct?

The best way to add new property handles to the Speaker struct is by implementing the Fetchable trait and creating type aliases. This ensures property access remains consistent and discoverable across the Sonos SDK API.

Do I need to define type aliases when exposing Sonos service properties?

Yes, defining type aliases is necessary when exposing Sonos service properties because it simplifies property access. Combined with Speaker struct field integration, it creates a unified interface for managing SDK operations.