Files
stoned-ai/docs/04-ACCEPTANCE-CRITERIA.md
Jason Hall fcd93ee0af 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>
2026-04-12 21:55:46 +00:00

2.9 KiB
Raw Permalink Blame History

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