Skip to content
Back to skills

Murmur Smoke

ASecurity

Use when you need to see murmur's REAL behavior instead of the fakes the unit suite uses — the real Claude brain (run_task / run_guide via claude-agent-sdk), real yt-dlp, audio playback, or the interactive guide — or when a change is unit-test-green but might be broken at the claude-agent-sdk / real-integration boundary, or you're troubleshooting a real-run failure or a stochastic/sensory behavior. The murmur companion to writing unit tests (murmur-build-spec).

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsbashnodetestingdebugginggitapi

Works with

  • terminal
  • api
  • mcp

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add wine-fall/murmur --skill murmur-smoke --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Murmur Smoke?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Murmur Smoke
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wine-fall-murmur-smoke/badge)](https://www.skillsdirectory.com/skills/wine-fall-murmur-smoke)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: murmur-smoke
description: Use when you need to see murmur's REAL behavior instead of the fakes the unit suite uses — the real Claude brain (run_task / run_guide via claude-agent-sdk), real yt-dlp, audio playback, or the interactive guide — or when a change is unit-test-green but might be broken at the claude-agent-sdk / real-integration boundary, or you're troubleshooting a real-run failure or a stochastic/sensory behavior. The murmur companion to writing unit tests (murmur-build-spec).
---

# murmur-smoke

## Overview

murmur's unit suite runs on **fakes** (`StubBrain`/`FakeBrain`, `FakeVoice`, `FakeMusicProvider`, `FakeGuideBrain`) and **deliberately never touches** the real Claude brain, `yt-dlp`, audio, or the interactive guide (DESIGN §11). That is exactly where bugs hide: this project has shipped **unit-green code that was broken at the real/SDK boundary** — tool results missing the MCP `content` shape, and `can_use_tool` needing streaming mode — neither of which a fake can catch. A **throwaway script that runs the real thing** is how you see it work and debug it.

This does **not** replace unit tests. It is the companion for the real / integration / interactive / sensory layer, and its findings get **folded back into a test**.

## When to use

- Observe REAL behavior: `Brain.run_task` / `run_guide` with the real Claude brain, real `yt-dlp` search/resolve, audio, or the guide conversation.
- A change is **unit-green but possibly broken** at the `claude-agent-sdk` seam (fakes bypass the SDK).
- Debugging a real-run failure, or a stochastic/sensory behavior a unit test cannot assert.

**Not for** deterministic logic — that is a unit test, written test-first (see `murmur-build-spec`). Don't smoke what you can assert.

## Where scripts live

`scratch/` at the repo root — **gitignored, never committed**. Durable across sessions, rerunnable. One script per thing you probe; delete freely. Seed examples already there: `scratch/ts_smoke_music.ts` (find + pull) and `scratch/smoke_guide.ts` (guide harness).

## The flow

1. **Name the ONE thing to observe** ("does `run_guide` get the model to call `submit_pick`?"). One question per script.
2. **Write the smallest runnable script** in `scratch/`: import from `src/`, build the *real* component, print the observable output. No abstraction.
3. **Run it** (see run notes) and read the output.
4. **Add signal + iterate**: print the harness's SDK messages (tool calls, tool results, text) from the script; add prints; rerun.
5. **Fold the finding into a test** — the script is throwaway; the *artifact* is a deterministic unit test (or an `integration`-tagged test) that locks the behavior/bug.

## Run notes (murmur-specific)

- **Run**: `node scratch/x.ts` — Node ≥24 runs TS directly (imports from `src/` use explicit `.ts` extensions).
- **Real Claude**: needs `claude` logged in (subscription OAuth, no API key). Harness runs Haiku (find-music) / Opus (guide).
- **Real yt-dlp / ffmpeg**: unbound external binaries (master §10.1) — `brew install ffmpeg yt-dlp`; both must be on PATH; needs network.
- **Corporate MITM proxy** (e.g. Cloudflare Gateway): yt-dlp fails TLS verify (`CERTIFICATE_VERIFY_FAILED`) because it uses `certifi`, not the system CA bundle — **not a murmur bug** (it's what the guide harness fixes). For a smoke, run off that network or point `certifi` at the corp CA.
- **Sandboxed Bash**: network may be TLS-intercepted; run the script unsandboxed (with the user's OK) or have the user run it in their terminal.
- **Interactive flows** (the guide): need a real stdin to answer prompts — cannot be fully smoked headless; run in a real terminal.
- **`bypassPermissions`**: never for an unsupervised run; the guide uses `default` (per-action confirm).

## Common mistakes

- Committing scratch scripts — they live in gitignored `scratch/` only.
- Smoke-testing deterministic logic instead of writing a unit test (test-first, `murmur-build-spec`).
- Stopping at "it worked in the script" — fold the finding into a test so it is locked against recurrence.
- Running the guide agent with `bypassPermissions` unsupervised.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.