# Sonic-Forage Signal Office — Multi-Channel Entity Plan

Status: `review_only_closed_until_human_yes`

This is the next shell/entity layer: a fake-real broadcast office where different AI entities appear to be operating different channels in realtime. It should feel alive, but stay operator-gated.

## Always-on channels

### Signal Control — The Conductor / Jimsky Ops
- Purpose: Keeps the 30-day stream coherent: program clock, safe scene routing, panic privacy, proof hub checks.
- OBS scene: `STREAM_CAPTAIN_STATUS`
- Inputs: OBS state, GitHub Pages status, stream watchdog state
- Outputs: operator next move, status card, safe handoff
- Gates: no stream start without approval, no secrets on screen

### Breach Radio — The Glitch DJ
- Purpose: Generates station IDs, reboot bumpers, 4:19 drops, hacked transmissions, and low-risk intermissions.
- OBS scene: `INTERGALACTIC_BREACH_RADIO`
- Inputs: program clock, viewer color votes, approved prompts
- Outputs: MP4 bumpers, audio beds, queue manifests
- Gates: owned/generated only, audio QA required

### Retro Forge Arcade — The Code Sprite
- Purpose: Runs homebrew browser mini-games and AI takeover segments; viewers vote on mutations.
- OBS scene: `RETRO_FORGE_ARCADE`
- Inputs: channel point votes, operator hotkeys
- Outputs: static HTML games, scoreboard, mutation cards
- Gates: no ROMs, no gambling, localStorage only

### AI Game Lab — The Block Goblin
- Purpose: Prepares safe AI-plays-Minecraft/Mineflayer experiments and later other games.
- OBS scene: `AI_GAME_LAB`
- Inputs: viewer goal vote, private local Minecraft server state
- Outputs: agent goal card, highlight clip candidate
- Gates: private server first, no public griefing, operator kill switch

### Field Transmission — Reality Shard Reporter
- Purpose: Supports real-world Jimsky pop-ins/interviews/walkthroughs with psychedelic overlays and safe prompt cards.
- OBS scene: `FIELD_TRANSMISSION_JIMSKY`
- Inputs: phone camera/OBS source, approved interview prompts
- Outputs: overlay cards, transcript notes, clip candidates
- Gates: panic privacy, no private faces/info without consent

### Avatar Oracle — The Afterparty Oracle
- Purpose: VTuber/avatar host layer for TTS, captions, oracle answers, and chat-safe presence.
- OBS scene: `AFTERPARTY_ORACLE`
- Inputs: approved chat prompts, channel points, TTS voice queue
- Outputs: TTS clips, caption cards, avatar scene cues
- Gates: moderated prompts only, clean audio QA

### Clip Factory — The Memory Scribe
- Purpose: Turns owned-stream moments into manual-review clip candidates, social copy, and proof cards.
- OBS scene: `PROOF_HUB`
- Inputs: own stream recordings, operator marks, approved highlights
- Outputs: clip manifests, titles, manual post copy
- Gates: no auto-post, own content only, no private leaks

### Toolsmith Lab — The Toolsmith
- Purpose: Queues tool/API experiments: Twitch CLI, Kick docs, OBS websocket, Streamer.bot, Mix It Up, LiveKit, Open-LLM-VTuber, Modal jobs.
- OBS scene: `BUILD_WALL`
- Inputs: repo/tool docs, API auth availability
- Outputs: integration cards, dry-run scripts, verifier tasks
- Gates: no paid jobs without cap, no exposed keys

## Tool/API queue

### OBS WebSocket
- Category: stream-control
- Why: Local scene/source switching, media source restart, status overlays.
- First test: localhost-only scene list and manual scene switch with panic scene present
- Risk: Can reveal private scenes if misconfigured
- Gate: operator local-only approval

### Streamer.bot
- Category: viewer-events
- Why: Twitch chat/events/channel points to OBS actions; mature ecosystem.
- First test: manual reward -> text file/overlay only
- Risk: Powerful automation can execute commands
- Gate: disable shell/actions; only queue files

### Mix It Up
- Category: viewer-events
- Why: Free Twitch bot with OBS websocket support and channel point workflows.
- First test: local reward simulation -> OBS overlay card
- Risk: Twitch-focused; automation complexity
- Gate: no command execution, no auto-post

### twitch-cli
- Category: developer-tool
- Why: Test Twitch EventSub/chat/channel point flows locally. Fork already queued under Sonic-Forage.
- First test: CLI auth/status and mock EventSub tests after rotated keys
- Risk: OAuth/token exposure
- Gate: rotated credentials only, env-only

### KickDevDocs
- Category: platform-docs
- Why: Canonical Kick API/documentation workbench. Fork already queued under Sonic-Forage.
- First test: extract docs into integration cards, no credentials
- Risk: API gaps / access requirements
- Gate: read-only until official app creds

### Open-LLM-VTuber
- Category: avatar-host
- Why: Avatar/LLM/TTS host layer that can become the Oracle/field cohost.
- First test: local avatar browser source with text-only prompt queue
- Risk: chat prompt injection / weird speech
- Gate: moderated prompts, captions visible

### LiveKit
- Category: guest/voice
- Why: Guest beam-in/out, realtime voice agent, field transmission routing.
- First test: private room with mute/panic controls
- Risk: guest privacy/audio leaks
- Gate: operator preview before live

### Mineflayer
- Category: ai-game
- Why: Open-source Minecraft bot framework; good for controlled AI-game lab.
- First test: private local server bot walks/follows/goes to coordinates
- Risk: public server griefing
- Gate: private server only

### Voyager / MineDojo pattern
- Category: ai-game-research
- Why: Longer-term Minecraft autonomous skill-learning inspiration.
- First test: paper/code review -> bounded goal-card design
- Risk: cost, complexity, uncontrolled autonomy
- Gate: no paid LLM loop without approval

### Modal
- Category: compute
- Why: Scheduled media generation, readiness jobs, video/image factory later.
- First test: CPU-only readiness/job status; no GPU unless approved
- Risk: spend
- Gate: explicit spend cap and job name

### Replicate / Happy Horse
- Category: video-generation
- Why: Prompt-to-video commercials and field transmission stingers.
- First test: after key rotation: one 3-5s 720p test with spend cap
- Risk: paid API + exposed key
- Gate: rotate key first; exact cost approval

## First build recommendation

Build **Signal Office v0** as a static OBS browser source first: cards for each entity, live queue counters, current scene, next transmission, and a red PANIC PRIVACY badge. Then wire one input at a time: channel points queue, OBS websocket, avatar TTS, Mineflayer lab.

## Safety rule

Viewer input can change the vibe, vote, and request prompts. It cannot execute shell, spend money, publish, start streams, expose keys, or control public game servers.
