Initialize project governance and baseline structure

Stoned.AI — live-streamed human + AI conversation show, both sides voiced
via local Kokoro TTS. Governance docs 00-09, README, .gitignore.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-12 21:55:46 +00:00
commit fcd93ee0af
12 changed files with 740 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
# Acceptance Criteria
## Functional Criteria
- Criterion 1: The host can open `/host`, start a session, type a message, and submit it.
- Criterion 2: The host's typed message is synthesized to WAV audio using the host's selected Kokoro voice and played back.
- Criterion 3: After the host submits, the AI backend generates a response and it is synthesized to WAV audio using the AI's selected Kokoro voice and played back.
- Criterion 4: Both the host message and the AI response appear as conversation cards in the feed on both `/host` and `/broadcast`.
- Criterion 5: The `/broadcast` view contains no interactive controls — only the scrolling conversation feed and audio playback.
- Criterion 6: OBS Studio can use `/broadcast` as a browser source and capture the conversation cards and audio.
- Criterion 7: The host and AI each have an independently selectable Kokoro voice.
- Criterion 8: The host can stop an in-progress session from the host view.
- Criterion 9: A new session can be started after a previous one ends without restarting the server.
## Non-Functional Criteria
- Performance: TTS synthesis must begin immediately after a turn is received. The next card must not appear until the current turn's audio has finished playing.
- Reliability: The server must not crash if the AI backend times out. A timeout must surface as an error card in the feed, not a silent hang.
- Security: The server is local-network only (`svc-ai`). No authentication is required. The WAV serving path must be sandboxed to the session audio directory to prevent path traversal.
- Maintainability: AI backends must be swappable without changes to the web server or TTS layer. Adding Claude in Phase 2 must require changes only to `ai.py` and `pyproject.toml`.
## Documentation Criteria
- `README.md` updated with installation and usage instructions.
- `docs/09-PROJECT-STATUS.md` updated to reflect completed phases.
- `docs/06-WORKER-HANDOFF.md` updated with current build state before each implementation handoff.
## Validation Criteria
- Test evidence required: unit tests for `tts.py` voice listing, `clean.py` noise filtering, `ai.py` CLI argument construction.
- Review evidence required: supervisor review of Phase 1 and Phase 2 output before Phase 3 begins.
- Manual validation required: OBS browser source audio capture verified by Jason.
## Definition Of Done
The project is done (Phase 14 complete) only when:
- all functional criteria above are satisfied
- the server runs stably on `svc-ai`
- OBS can capture the broadcast view end-to-end
- Jason has completed at least one test conversation from start to finish using the host view and the broadcast view simultaneously
- required documentation is updated
- supervisor review is complete
## Signature
- Document role: governing
- Created by: Claude (supervisor)
- Created at: 2026-04-12
- Revision status: initial
- Future revision rule: this document may be revised only by the user or by an explicitly authorized supervisor revision