@startuml title Orchestrated Discussions Turn Orchestration Process actor User participant "run-turn.sh" as Script participant "discussion-parser" as Parser participant "discussion-mention-router" as Router participant "discussion-*" as Participants participant "discussion-turn-appender" as Appender participant "discussion-vote-counter" as VoteCounter participant "discussion-status-promoter" as StatusPromoter database "Discussion.md" as DiscussionFile database "Work Directory" as WorkDir User -> Script: Execute script with discussion.md Script -> DiscussionFile: Read discussion content Script -> Parser: discussion.md content Parser -> WorkDir: Save state.json Script -> Router: state.json Router -> WorkDir: Save routing.json loop For each participant Script -> Participants: discussion.md + callout Participants -> Script: JSON response Script -> WorkDir: Append to responses.json end Script -> Appender: discussion.md + responses.json Appender -> WorkDir: Save discussion-updated.md Script -> Parser: discussion-updated.md Parser -> VoteCounter: Parsed state VoteCounter -> WorkDir: Save votes.json Script -> StatusPromoter: votes.json + current status/phase StatusPromoter -> WorkDir: Save promotion.json Script -> User: Display results and cleanup instructions @enduml