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:
51
docs/04-ACCEPTANCE-CRITERIA.md
Normal file
51
docs/04-ACCEPTANCE-CRITERIA.md
Normal 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 1–4 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
|
||||
Reference in New Issue
Block a user