# Review Checklist ## Review Goal Compare the implementation against the governing docs. Confirm the build matches the charter, architecture, and acceptance criteria before Jason signs off. ## Check These First - Does the implementation match the charter? (One human, one AI, both voiced, two browser views) - Does it respect architecture decisions? (Reused Kokoro backend, separate host/broadcast URLs, CLI backends first) - Does it remain inside scope? (No microphone, no STT, no Claude API yet) - Are acceptance criteria satisfied? (See `04-ACCEPTANCE-CRITERIA.md` for full list) - Are risks handled or explicitly accepted? (See `05-RISK-REGISTER.md`) ## Technical Review - Correctness: - Does `/host` accept host text input and submit it to the server? - Does the server call the AI backend and return a clean response? - Does TTS synthesis run for both host and AI turns? - Are WAV files served correctly and played in sequence? - Do both `/host` and `/broadcast` receive SSE events? - Behavioral regressions: - Does a timeout on the AI backend produce a visible error, not a hang? - Can the host start a new session after ending a previous one without restarting the server? - Does the broadcast view contain zero interactive elements? - Missing tests: - Is there a unit test for `clean.py` noise stripping? - Is there a unit test for `ai.py` CLI argument construction? - Is there a unit test for `tts.py` voice listing? - Hidden complexity: - Is session state thread-safe? - Is the WAV serving path sandboxed to the session directory? - Security concerns: - Path traversal: can a crafted URL escape the generated audio directory? - Operational concerns: - Is `scripts/install.sh` present and functional? - Does `stoned-web` start cleanly and bind to `0.0.0.0:8766` (or similar, not conflicting with Arena's 8765)? ## Documentation Review - `README.md` updated with install and usage instructions: yes/no - `docs/09-PROJECT-STATUS.md` updated to reflect completed phases: yes/no - `docs/06-WORKER-HANDOFF.md` updated with current build state: yes/no ## Final Decision - Accept - Reject - Request revision ## Notes - Findings: - Required follow-up: