docs: split spec 03 into 03-01 brain-harness + 03-02 ducking [spec 03-01] - #1
Merged
Conversation
…-01] Define spec 03 (music-provider, L1 "radio feel") as two single-purpose sub-specs, and lock a master-level decision about the brain. - DESIGN §3.2: lock "the brain is a harnessed agent, not a one-shot LLM call" — isolation from the user's local Claude env is preserved, but the brain gets murmur's own tools/skills; bounded surface + off the live loop. - DESIGN §5: record musicdl / unofficial NetEase / Spotify-via-librespot as optional, user-installed gray providers (personal-experiment tier), never in the shipped default stack. - DESIGN §9.4/§10: split spec 03 into 03-01 + 03-02, reorder (harness first, ducking second), mark spec 02 code-implemented. - specs/03-01-brain-harness.md: general tool/skill harness seam + first capability (habit-based, Claude-driven music search/recommend/pull; yt-dlp default, musicdl optional) + Director talk<->music scheduling. A terminal submit_pick tool ends the agentic loop and hands back the AudioClip. - specs/03-02-ducking.md: source-agnostic mixing engine (ffmpeg->PCM + numpy) with gain-envelope ducking; a typed interjection ducks music, not hard-stop (forks the spec-01 Director arbitration, §3.5). - specs/01-core-loop.md, contracts.py: realign spec references to 03-01/03-02. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
wine-fall
force-pushed
the
zachg-0702--spec-03-split
branch
from
July 2, 2026 07:41
97217f7 to
fcafbd4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Defines and splits spec 03 (
music-provider, milestone L1 "radio feel") into two single-purpose sub-specs, and locks a master-level decision about the brain.specs/03-01-brain-harness.md— the general brain-harness seam (turn the isolated brain into a tool/skill-using agent, preserving local-env isolation). First capability: habit-based, Claude-driven music search & recommendation (MusicProviderimpl; yt-dlp default, musicdl optional) + Director talk↔music scheduling. Music plays sequentially via the existing player.specs/03-02-ducking.md— a source-agnostic mixing audio engine (ffmpeg→PCM + numpy) that replaces the afplayAudioPlayer, with gain-envelope ducking; a typed interjection ducks the music instead of hard-stopping it.Build order:
01 → 03-01 (harness + music) → 03-02 (ducking); both are L1, both depend only on 01 (03-02 also integrates 03-01).AI coding brief
nousresearch/hermes-agent(model would hurt the soul now; harness would cede control of the custom radio loop).🤖 Generated with Claude Code