Standardization Pass: Added 00-09 core governance set (Arena Integration Pivot)
This commit is contained in:
@@ -23,42 +23,31 @@
|
||||
|
||||
## Phases
|
||||
|
||||
### Phase 1: Project Scaffold and Core Backend
|
||||
### Phase 1: Arena Core Enhancements
|
||||
|
||||
- Objective: Establish the Python package, TTS layer, cleaning engine, and AI backend abstraction.
|
||||
- Objective: Update the Arena project to support human speakers and the /broadcast view.
|
||||
- Files affected (in the Arena project):
|
||||
- `src/arena/agents.py` — add `human` runner.
|
||||
- `src/arena/web.py` — add `/broadcast` route and UI message input.
|
||||
- `src/arena/core.py` — ensure `run_conversation` handles the human backend.
|
||||
- Risks: Breaking existing AI-vs-AI modes in Arena.
|
||||
- Exit criteria: Arena can successfully pause a conversation loop to wait for human input from the Web UI.
|
||||
|
||||
### Phase 2: Stoned Mode Presets
|
||||
|
||||
- Objective: Define the specific prompt envelopes and cleaning rules for the Stoned.AI show.
|
||||
- Files likely affected:
|
||||
- `pyproject.toml`
|
||||
- `src/stoned_ai/__init__.py`
|
||||
- `src/stoned_ai/tts.py`
|
||||
- `src/stoned_ai/clean.py`
|
||||
- `src/stoned_ai/ai.py`
|
||||
- `scripts/install.sh`
|
||||
- Risks: `pykokoro` import paths may differ slightly from Arena's. Verify import compatibility before writing TTS layer.
|
||||
- Exit criteria: `stoned_ai.tts` can synthesize a WAV from text using a Kokoro voice. `stoned_ai.ai` can call Codex or Gemini and return a clean string.
|
||||
- `src/arena/core.py` — add `MODE_STONED` preset.
|
||||
- `src/arena/clean.py` — update regex for high-quality show output.
|
||||
- Exit criteria: Jason can select "Stoned Mode" in Arena and it loads the correct speaker labels and roles.
|
||||
|
||||
### Phase 2: Web Server and SSE Delivery
|
||||
### Phase 3: OBS Broadcast View
|
||||
|
||||
- Objective: Build the HTTP server, session state management, SSE event stream, and WAV file serving.
|
||||
- Objective: Build the read-only, styled broadcast page within Arena.
|
||||
- Files likely affected:
|
||||
- `src/stoned_ai/web.py`
|
||||
- Risks: Session state must be thread-safe. SSE connections from both `/host` and `/broadcast` must receive the same events.
|
||||
- Exit criteria: A session can be started. A host message can be submitted. The AI responds. Both turns are pushed over SSE. Both turns are voiced.
|
||||
- `src/arena/web.py`
|
||||
- Exit criteria: `/broadcast` is accessible and OBS captures audio/video end-to-end.
|
||||
|
||||
### Phase 3: Host View (`/host`)
|
||||
|
||||
- Objective: Build the host's control panel HTML/CSS/JS page.
|
||||
- Files likely affected:
|
||||
- `src/stoned_ai/web.py` (inline HTML or template)
|
||||
- Risks: Voice selection dropdown must populate from the live Kokoro voice list. If the voice list is slow to load, display a loading state.
|
||||
- Exit criteria: Jason can open `/host`, start a session, pick voices, type and send a message, hear his voice, hear the AI's voice, and stop the session.
|
||||
|
||||
### Phase 4: Broadcast View (`/broadcast`)
|
||||
|
||||
- Objective: Build the clean, OBS-capturable broadcast page.
|
||||
- Files likely affected:
|
||||
- `src/stoned_ai/web.py` (inline HTML or template)
|
||||
- Risks: OBS browser source must auto-play audio. Verify OBS audio capture works with the WAV playback approach before marking complete.
|
||||
- Exit criteria: `/broadcast` shows only conversation cards. No controls are visible. OBS captures the page. Audio plays in OBS without manual permission prompts.
|
||||
|
||||
### Phase 5: Claude API Backend (Post-Launch)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user