# Testing Guide for Agent Team Collaboration Framework ## What to Observe ### 1. Parallel Execution - **Expected**: When master assigns tasks to multiple members, they should appear in the UI **simultaneously** (not sequentially) - **How to verify**: Watch the frontend - you should see streaming output from both 合同律师 and 合规专员 at the same time ### 2. Shared Blackboard - **Expected**: Each member's draft output is added to the board - **How to verify**: Check the board context in the master's feedback message ### 3. Challenge Round - **Expected**: After parallel execution, members with `can_challenge: true` review the board - **How to verify**: - Look for events with `role: "challenge"` in the event stream - Frontend should show challenge phase output - If a member outputs `CHALLENGE:...`, it appears in the board ### 4. Master Integration - **Expected**: Master receives complete board (drafts + challenges) before making final decision - **How to verify**: Master's feedback message includes `` section with all entries ## Test Scenario: Employee Termination Send a question like: ``` 我们需要辞退一名员工,请帮我们制定一个合法的辞退方案。 ``` Expected flow: 1. Master analyzes and assigns tasks to both 合同律师 and 合规专员 2. Both members work in parallel (visible in UI) 3. Challenge round begins - members review each other's work 4. If 合规专员 finds compliance issues in 合同律师's draft, outputs `CHALLENGE:...` 5. Master sees complete board and makes final decision ## Key Events to Monitor - `EvtAgentMessage` with `role: "member"` - parallel execution - `EvtAgentMessage` with `role: "challenge"` - challenge round - `EvtRoomStatus` - status transitions (thinking → working → thinking → pending) - Board context in master's feedback messages ## Code Locations - Parallel execution: `room.go:runMembersParallel()` - Challenge round: `room.go:runChallengeRound()` - Main flow: `room.go:HandleUserMessage()` (lines 281-362) - SharedBoard: `room.go:SharedBoard` type (lines 90-114)