๐ฆ๐๐ป๐ฑ๐ฎ๐ ๐๐ผ๐ณ๐ณ๐ฒ๐ฒ & ๐๐ผ๐ฑ๐ฒ: ๐ง๐ต๐ฒ ๐๐๐น๐ฏ ๐ง๐ต๐ฎ๐ ๐ฆ๐ฎ๐ถ๐ฑ ๐ก๐ผ (๐ฎ๐ป๐ฑ ๐๐ผ๐บ๐ฒ ๐ข๐ฝ๐ฒ๐ป๐ฆ๐ฝ๐ฒ๐ฐ)
Iโm building an agent that acts in the physical world - simple one out of the gate, turns the porch light on when Iโm nearly home taking into account the time of day, how light it is and the weather. Before anything can decide when, something has to be able to turn the light on at all. So this weekend was the smallest piece: giving a future agent a way to talk to one WiZ bulb.
To get that done Claude and I added an MCP interface to the bulb. The bulb speaks over UDP, mostly useless to an agent, because thereโs nothing to call. I didnโt need to write that part: Stephan Traub pywizlight) already speaks it, so the job was an MCP server on top - eight named tools with typed arguments. Whatever speaks to the bulb underneath, that surface doesnโt change.
I also swapped GitHubโs spec-kit for OpenSpec to see how it felt on a small real project. It bought me what the SDD approaches are good at - arguing with myself before writing code - the contract for โread the lightโs stateโ is what surfaced the question of what happens when the bulb is off, which produced the polling design. Overall experience was that OpenSpec to completed code plus harness consumed 49% of my session capacity (Opus 5 on medium) and 6% of my weekly model capacity.
Then I pointed it at the real bulb. Reads worked immediately. Every write failed: error -32602, Invalid params - not โmethod not found.โ The bulb knew exactly what I was asking. It wanted the command signed, and the library sends no signature at all. I nearly wrote the weekend up as a well-specified read-only lightbulb. The actual ๐ณ๐ถ๐ ๐๐ฎ๐ ๐ณ๐ผ๐๐ฟ ๐๐ฎ๐ฝ๐: ๐ช๐ถ๐ญ ๐ฎ๐ฝ๐ฝ โ ๐ฆ๐ฒ๐๐๐ถ๐ป๐ด๐ โ ๐ฆ๐ฒ๐ฐ๐๐ฟ๐ถ๐๐ โ โ๐๐น๐น๐ผ๐ ๐ฎ๐น๐น ๐ฐ๐ผ๐ป๐๐ฟ๐ผ๐น๐.โ Thirty checks out of thirty against real hardware, without changing a line of code. (๐๐ฆ๐ด๐ด๐ข๐จ๐ฆ ๐ด๐ฆ๐ค๐ถ๐ณ๐ช๐ต๐บ ๐ฐ๐ฏ ๐ข ๐ญ๐ช๐จ๐ฉ๐ต๐ฃ๐ถ๐ญ๐ฃ - ๐ข๐ฎ๐ข๐ป๐ช๐ฏ๐จ ๐ต๐ฆ๐ค๐ฉ ๐ต๐ฐ ๐ด๐ฆ๐ฆ.)
Next week will be the agent build, monitoring my location and managing the bulb.
Remember: Think, Model, Act (back to tea this weekend).
